diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..993d8f2 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "dav-cli", + "skipFiles": [ + "/**" + ], + "program": "${workspaceFolder}/src/index.js", + "args": [ + "--start" + ] + } + ] +} diff --git a/contracts/BasicMission.json b/contracts/BasicMission.json new file mode 100644 index 0000000..d2b2397 --- /dev/null +++ b/contracts/BasicMission.json @@ -0,0 +1,5762 @@ +{ + "contractName": "BasicMission", + "abi": [ + { + "inputs": [ + { + "name": "_identityContract", + "type": "address" + }, + { + "name": "_davTokenContract", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "id", + "type": "bytes32" + }, + { + "indexed": false, + "name": "sellerId", + "type": "address" + }, + { + "indexed": false, + "name": "buyerId", + "type": "address" + } + ], + "name": "Create", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "id", + "type": "bytes32" + } + ], + "name": "Signed", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sellerId", + "type": "address" + }, + { + "name": "_buyerId", + "type": "address" + }, + { + "name": "_cost", + "type": "uint256" + } + ], + "name": "create", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_missionId", + "type": "bytes32" + }, + { + "name": "_buyerId", + "type": "address" + } + ], + "name": "fulfilled", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6060604052341561000f57600080fd5b604051604080610d208339810160405280805190602001909190805190602001909190505081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610c59806100c76000396000f30060606040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806389198fed14610051578063ffe5725f14610097575b600080fd5b341561005c57600080fd5b61009560048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506100f8565b005b34156100a257600080fd5b6100f6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610667565b005b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630795736082336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15156101e857600080fd5b5af115156101f557600080fd5b50505060405180519050151561020a57600080fd5b6000151560016000846000191660001916815260200190815260200160002060040160009054906101000a900460ff16151514151561024857600080fd5b600160008360001916600019168152602001908152602001600020600201546001600084600019166000191681526020019081526020016000206003015414151561029257600080fd5b6001806000846000191660001916815260200190815260200160002060040160006101000a81548160ff021916908315150217905550600060016000846000191660001916815260200190815260200160002060030181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b330600160008660001916600019168152602001908152602001600020600201546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156103ce57600080fd5b5af115156103db57600080fd5b5050506040518051905050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b5bd74160016000886000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561051f57600080fd5b5af1151561052c57600080fd5b50505060405180519050600160008760001916600019168152602001908152602001600020600201546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561060c57600080fd5b5af1151561061957600080fd5b50505060405180519050507f2563bf12e759147ae41a036dffeece03c4db05da3b738a30dd100821f498c57c8260405180826000191660001916815260200191505060405180910390a15050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630795736084336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b151561075957600080fd5b5af1151561076657600080fd5b50505060405180519050151561077b57600080fd5b81600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f8b2cb4f856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561083857600080fd5b5af1151561084557600080fd5b505050604051805190501015151561085c57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561095457600080fd5b5af1151561096157600080fd5b50505060405180519050504384846000808154809291906001019190505560405180807f42617369634d697373696f6e0000000000000000000000000000000000000000815250600c018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019450505050506040518091039020905060a0604051908101604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018381526020016000151581525060016000836000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015560808201518160040160006101000a81548160ff0219169083151502179055509050507f0d87513b68afc9f4f16272206a73bfde370c86b8e9dadd0e4ab99f763b1d61168185856040518084600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a1505050505600a165627a7a72305820006608751890d90fce9167034a0cb532f6482ced975f5feab5727317e84326c80029", + "deployedBytecode": "0x60606040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806389198fed14610051578063ffe5725f14610097575b600080fd5b341561005c57600080fd5b61009560048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506100f8565b005b34156100a257600080fd5b6100f6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610667565b005b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630795736082336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15156101e857600080fd5b5af115156101f557600080fd5b50505060405180519050151561020a57600080fd5b6000151560016000846000191660001916815260200190815260200160002060040160009054906101000a900460ff16151514151561024857600080fd5b600160008360001916600019168152602001908152602001600020600201546001600084600019166000191681526020019081526020016000206003015414151561029257600080fd5b6001806000846000191660001916815260200190815260200160002060040160006101000a81548160ff021916908315150217905550600060016000846000191660001916815260200190815260200160002060030181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b330600160008660001916600019168152602001908152602001600020600201546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156103ce57600080fd5b5af115156103db57600080fd5b5050506040518051905050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b5bd74160016000886000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561051f57600080fd5b5af1151561052c57600080fd5b50505060405180519050600160008760001916600019168152602001908152602001600020600201546040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561060c57600080fd5b5af1151561061957600080fd5b50505060405180519050507f2563bf12e759147ae41a036dffeece03c4db05da3b738a30dd100821f498c57c8260405180826000191660001916815260200191505060405180910390a15050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630795736084336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b151561075957600080fd5b5af1151561076657600080fd5b50505060405180519050151561077b57600080fd5b81600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f8b2cb4f856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561083857600080fd5b5af1151561084557600080fd5b505050604051805190501015151561085c57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561095457600080fd5b5af1151561096157600080fd5b50505060405180519050504384846000808154809291906001019190505560405180807f42617369634d697373696f6e0000000000000000000000000000000000000000815250600c018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019450505050506040518091039020905060a0604051908101604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018381526020016000151581525060016000836000191660001916815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015560808201518160040160006101000a81548160ff0219169083151502179055509050507f0d87513b68afc9f4f16272206a73bfde370c86b8e9dadd0e4ab99f763b1d61168185856040518084600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a1505050505600a165627a7a72305820006608751890d90fce9167034a0cb532f6482ced975f5feab5727317e84326c80029", + "sourceMap": "412:2625:0:-;;;1013:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1115:17;1104:8;;:28;;;;;;;;;;;;;;;;;;1146:17;1138:5;;:25;;;;;;;;;;;;;;;;;;1013:155;;412:2625;;;;;;", + "deployedSourceMap": "412:2625:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2345:689;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1434:753;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2345:689;2493:8;;;;;;;;;;;:24;;;2518:8;2528:10;2493:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2478:67;;;;;;;;2604:5;2571:38;;:8;:20;2580:10;2571:20;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:38;;;2556:59;;;;;;;;2669:8;:20;2678:10;2669:20;;;;;;;;;;;;;;;;;:25;;;2637:8;:20;2646:10;2637:20;;;;;;;;;;;;;;;;;:28;;;:57;2622:78;;;;;;;;2783:4;2751:8;:20;2760:10;2751:20;;;;;;;;;;;;;;;;;:29;;;:36;;;;;;;;;;;;;;;;;;2824:1;2793:8;:20;2802:10;2793:20;;;;;;;;;;;;;;;;;:28;;:32;;;;2831:5;;;;;;;;;;;:13;;;2845:4;2851:8;:20;2860:10;2851:20;;;;;;;;;;;;;;;;;:25;;;2831:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2883:5;;;;;;;;;;;:18;;;2902:4;2908:8;;;;;;;;;;;:26;;;2935:8;:20;2944:10;2935:20;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;2908:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2965:8;:20;2974:10;2965:20;;;;;;;;;;;;;;;;;:25;;;2883:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3011:18;3018:10;3011:18;;;;;;;;;;;;;;;;;;;;;;;;2345:689;;:::o;1434:753::-;1880:17;1592:8;;;;;;;;;;;:24;;;1617:8;1627:10;1592:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1577:67;;;;;;;;1743:5;1710:8;;;;;;;;;;;:19;;;1730:8;1710:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;1695:59;;;;;;;;1808:5;;;;;;;;;;;:18;;;1827:10;1839:4;1845:5;1808:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1926:12;1940:9;1951:8;1961:5;;:7;;;;;;;;;;;;1900:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1880:89;;1997:127;;;;;;;;;2021:9;1997:127;;;;;;2045:8;1997:127;;;;;;2067:5;1997:127;;;;2089:5;1997:127;;;;2112:5;1997:127;;;;;1975:8;:19;1984:9;1975:19;;;;;;;;;;;;;;;;;:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2144:38;2151:9;2162;2173:8;2144:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1434:753;;;;:::o", + "source": "pragma solidity ^0.4.15;\n\nimport './Identity.sol';\nimport './DAVToken.sol';\n\n\n/**\n * @title BasicMission\n * @dev The most basic contract for conducting Missions.\n *\n * This contract represents the very basic interface of a mission contract.\n * In the real world, there is very little reason to use this and not one of the\n * contracts that extend it. Consider this an interface, more than an implementation.\n */\ncontract BasicMission {\n\n uint256 private nonce;\n\n struct Mission {\n address seller;\n address buyer;\n uint256 cost;\n uint256 balance;\n bool isSigned;\n mapping (uint8 => bool) resolvers;\n }\n\n mapping (bytes32 => Mission) private missions;\n\n event Create(\n bytes32 id,\n address sellerId,\n address buyerId\n );\n\n event Signed(\n bytes32 id\n );\n\n DAVToken private token;\n Identity private identity;\n\n /**\n * @dev Constructor\n *\n * @param _identityContract address of the Identity contract\n * @param _davTokenContract address of the DAVToken contract\n */\n function BasicMission(Identity _identityContract, DAVToken _davTokenContract) public {\n identity = _identityContract;\n token = _davTokenContract;\n }\n\n /**\n * @notice Create a new mission\n * @param _sellerId The DAV Identity of the person providing the service\n * @param _buyerId The DAV Identity of the person ordering the service\n * @param _cost The total cost of the mission to be paid by buyer\n */\n function create(address _sellerId, address _buyerId, uint256 _cost) public {\n // Verify that message sender controls the buyer's wallet\n require(\n identity.verifyOwnership(_buyerId, msg.sender)\n );\n\n // Verify buyer's balance is sufficient\n require(\n identity.getBalance(_buyerId) >= _cost\n );\n\n // Transfer tokens to the mission contract\n token.transferFrom(msg.sender, this, _cost);\n\n // Create mission\n bytes32 missionId = keccak256('BasicMission', block.number, _sellerId, _buyerId, nonce++);\n missions[missionId] = Mission({\n seller: _sellerId,\n buyer: _buyerId,\n cost: _cost,\n balance: _cost,\n isSigned: false\n });\n\n // Event\n Create(missionId, _sellerId, _buyerId);\n }\n\n /**\n * @notice Fund a mission\n * @param _missionId The id of the mission\n * @param _buyerId The DAV Identity of the person ordering the service\n */\n function fulfilled(bytes32 _missionId, address _buyerId) public {\n // Verify that message sender controls the seller's wallet\n require(\n identity.verifyOwnership(_buyerId, msg.sender)\n );\n \n require(\n missions[_missionId].isSigned == false\n );\n\n require(\n missions[_missionId].balance == missions[_missionId].cost\n );\n \n \n // designate mission as signed\n missions[_missionId].isSigned = true;\n missions[_missionId].balance = 0;\n token.approve(this, missions[_missionId].cost);\n token.transferFrom(this, identity.getIdentityWallet(missions[_missionId].seller), missions[_missionId].cost);\n\n // Event\n Signed(_missionId);\n }\n\n}\n", + "sourcePath": "/contracts/contracts/BasicMission.sol", + "ast": { + "absolutePath": "/contracts/contracts/BasicMission.sol", + "exportedSymbols": { + "BasicMission": [ + 207 + ] + }, + "id": 208, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.4", + ".15" + ], + "nodeType": "PragmaDirective", + "src": "0:24:0" + }, + { + "absolutePath": "/contracts/contracts/Identity.sol", + "file": "./Identity.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 208, + "sourceUnit": 508, + "src": "26:24:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/contracts/contracts/DAVToken.sol", + "file": "./DAVToken.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 208, + "sourceUnit": 344, + "src": "51:24:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title BasicMission\n@dev The most basic contract for conducting Missions.\n * This contract represents the very basic interface of a mission contract.\nIn the real world, there is very little reason to use this and not one of the\ncontracts that extend it. Consider this an interface, more than an implementation.", + "fullyImplemented": true, + "id": 207, + "linearizedBaseContracts": [ + 207 + ], + "name": "BasicMission", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 5, + "name": "nonce", + "nodeType": "VariableDeclaration", + "scope": 207, + "src": "439:21:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "439:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "private" + }, + { + "canonicalName": "BasicMission.Mission", + "id": 20, + "members": [ + { + "constant": false, + "id": 7, + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "486:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "486:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9, + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "506:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "506:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "525:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "525:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "543:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "543:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15, + "name": "isSigned", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "564:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "564:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19, + "name": "resolvers", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "583:33:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_bool_$", + "typeString": "mapping(uint8 => bool)" + }, + "typeName": { + "id": 18, + "keyType": { + "id": 16, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "592:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "583:23:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_bool_$", + "typeString": "mapping(uint8 => bool)" + }, + "valueType": { + "id": 17, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "601:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Mission", + "nodeType": "StructDefinition", + "scope": 207, + "src": "465:156:0", + "visibility": "public" + }, + { + "constant": false, + "id": 24, + "name": "missions", + "nodeType": "VariableDeclaration", + "scope": 207, + "src": "625:45:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + }, + "typeName": { + "id": 23, + "keyType": { + "id": 21, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "634:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "625:28:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + }, + "valueType": { + "contractScope": null, + "id": 22, + "name": "Mission", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20, + "src": "645:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage_ptr", + "typeString": "struct BasicMission.Mission storage pointer" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 32, + "name": "Create", + "nodeType": "EventDefinition", + "parameters": { + "id": 31, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 32, + "src": "693:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 25, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "693:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "indexed": false, + "name": "sellerId", + "nodeType": "VariableDeclaration", + "scope": 32, + "src": "709:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 30, + "indexed": false, + "name": "buyerId", + "nodeType": "VariableDeclaration", + "scope": 32, + "src": "731:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "731:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "687:63:0" + }, + "src": "675:76:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 36, + "name": "Signed", + "nodeType": "EventDefinition", + "parameters": { + "id": 35, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "773:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 33, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "773:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "767:20:0" + }, + "src": "755:33:0" + }, + { + "constant": false, + "id": 38, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 207, + "src": "792:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + }, + "typeName": { + "contractScope": null, + "id": 37, + "name": "DAVToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 343, + "src": "792:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 40, + "name": "identity", + "nodeType": "VariableDeclaration", + "scope": 207, + "src": "818:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + }, + "typeName": { + "contractScope": null, + "id": 39, + "name": "Identity", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 507, + "src": "818:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 55, + "nodeType": "Block", + "src": "1098:70:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 47, + "name": "identity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "1104:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 48, + "name": "_identityContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "1115:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "src": "1104:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "id": 50, + "nodeType": "ExpressionStatement", + "src": "1104:28:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 51, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "1138:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 52, + "name": "_davTokenContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44, + "src": "1146:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "src": "1138:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "id": 54, + "nodeType": "ExpressionStatement", + "src": "1138:25:0" + } + ] + }, + "documentation": "@dev Constructor\n * @param _identityContract address of the Identity contract\n@param _davTokenContract address of the DAVToken contract", + "id": 56, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "BasicMission", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 45, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "name": "_identityContract", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "1035:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + }, + "typeName": { + "contractScope": null, + "id": 41, + "name": "Identity", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 507, + "src": "1035:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "name": "_davTokenContract", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "1063:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + }, + "typeName": { + "contractScope": null, + "id": 43, + "name": "DAVToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 343, + "src": "1063:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1034:56:0" + }, + "payable": false, + "returnParameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [], + "src": "1098:0:0" + }, + "scope": 207, + "src": "1013:155:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 122, + "nodeType": "Block", + "src": "1509:678:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 68, + "name": "_buyerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "1617:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 69, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "1627:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 70, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1627:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 66, + "name": "identity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "1592:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "verifyOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 478, + "src": "1592:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view external returns (bool)" + } + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1592:46:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 65, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "1577:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1577:67:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 73, + "nodeType": "ExpressionStatement", + "src": "1577:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 77, + "name": "_buyerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "1730:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 75, + "name": "identity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "1710:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 461, + "src": "1710:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1710:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 79, + "name": "_cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "1743:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1710:38:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 74, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "1695:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1695:59:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 82, + "nodeType": "ExpressionStatement", + "src": "1695:59:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 86, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "1827:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 87, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1827:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 88, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1259, + "src": "1839:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BasicMission_$207", + "typeString": "contract BasicMission" + } + }, + { + "argumentTypes": null, + "id": 89, + "name": "_cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "1845:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_BasicMission_$207", + "typeString": "contract BasicMission" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 83, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "1808:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "id": 85, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 288, + "src": "1808:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1808:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 91, + "nodeType": "ExpressionStatement", + "src": "1808:43:0" + }, + { + "assignments": [ + 93 + ], + "declarations": [ + { + "constant": false, + "id": 93, + "name": "missionId", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "1880:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 92, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1880:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 103, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "42617369634d697373696f6e", + "id": 95, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1910:14:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6f28747ca3bf61320646bbe8fce0609ed0cb6ef483ba3b71713bc1d9ed5bd450", + "typeString": "literal_string \"BasicMission\"" + }, + "value": "BasicMission" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 96, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1221, + "src": "1926:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 97, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1926:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 98, + "name": "_sellerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "1940:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 99, + "name": "_buyerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "1951:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1961:7:0", + "subExpression": { + "argumentTypes": null, + "id": 100, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5, + "src": "1961:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_6f28747ca3bf61320646bbe8fce0609ed0cb6ef483ba3b71713bc1d9ed5bd450", + "typeString": "literal_string \"BasicMission\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 94, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "1900:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1900:69:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1880:89:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 104, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "1975:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 106, + "indexExpression": { + "argumentTypes": null, + "id": 105, + "name": "missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "1984:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1975:19:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 108, + "name": "_sellerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "2021:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 109, + "name": "_buyerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "2045:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 110, + "name": "_cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "2067:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 111, + "name": "_cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "2089:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2112:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": null, + "id": 107, + "name": "Mission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20, + "src": "1997:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Mission_$20_storage_ptr_$", + "typeString": "type(struct BasicMission.Mission storage pointer)" + } + }, + "id": 113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "seller", + "buyer", + "cost", + "balance", + "isSigned" + ], + "nodeType": "FunctionCall", + "src": "1997:127:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_memory", + "typeString": "struct BasicMission.Mission memory" + } + }, + "src": "1975:149:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 115, + "nodeType": "ExpressionStatement", + "src": "1975:149:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 117, + "name": "missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "2151:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 118, + "name": "_sellerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "2162:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 119, + "name": "_buyerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "2173:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 116, + "name": "Create", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32, + "src": "2144:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2144:38:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 121, + "nodeType": "ExpressionStatement", + "src": "2144:38:0" + } + ] + }, + "documentation": "@notice Create a new mission\n@param _sellerId The DAV Identity of the person providing the service\n@param _buyerId The DAV Identity of the person ordering the service\n@param _cost The total cost of the mission to be paid by buyer", + "id": 123, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "create", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 58, + "name": "_sellerId", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "1450:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 57, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1450:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "name": "_buyerId", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "1469:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 59, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1469:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "name": "_cost", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "1487:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 61, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1487:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1449:52:0" + }, + "payable": false, + "returnParameters": { + "id": 64, + "nodeType": "ParameterList", + "parameters": [], + "src": "1509:0:0" + }, + "scope": 207, + "src": "1434:753:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 205, + "nodeType": "Block", + "src": "2409:625:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 133, + "name": "_buyerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 127, + "src": "2518:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 134, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "2528:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2528:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 131, + "name": "identity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "2493:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "verifyOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 478, + "src": "2493:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view external returns (bool)" + } + }, + "id": 136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2493:46:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 130, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "2478:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2478:67:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 138, + "nodeType": "ExpressionStatement", + "src": "2478:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 140, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2571:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 142, + "indexExpression": { + "argumentTypes": null, + "id": 141, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2580:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2571:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 143, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSigned", + "nodeType": "MemberAccess", + "referencedDeclaration": 15, + "src": "2571:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2604:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2571:38:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 139, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "2556:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2556:59:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 147, + "nodeType": "ExpressionStatement", + "src": "2556:59:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 149, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2637:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 151, + "indexExpression": { + "argumentTypes": null, + "id": 150, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2646:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2637:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 152, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "2637:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 153, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2669:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 155, + "indexExpression": { + "argumentTypes": null, + "id": 154, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2678:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2669:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 156, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "cost", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "2669:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2637:57:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 148, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "2622:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2622:78:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 159, + "nodeType": "ExpressionStatement", + "src": "2622:78:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 160, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2751:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 162, + "indexExpression": { + "argumentTypes": null, + "id": 161, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2760:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2751:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 163, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isSigned", + "nodeType": "MemberAccess", + "referencedDeclaration": 15, + "src": "2751:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2783:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2751:36:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 166, + "nodeType": "ExpressionStatement", + "src": "2751:36:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 167, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2793:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 169, + "indexExpression": { + "argumentTypes": null, + "id": 168, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2802:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2793:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 170, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "2793:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2824:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2793:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 173, + "nodeType": "ExpressionStatement", + "src": "2793:32:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 177, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1259, + "src": "2845:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BasicMission_$207", + "typeString": "contract BasicMission" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 178, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2851:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 180, + "indexExpression": { + "argumentTypes": null, + "id": 179, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2860:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2851:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 181, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "cost", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "2851:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BasicMission_$207", + "typeString": "contract BasicMission" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 174, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "2831:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 306, + "src": "2831:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2831:46:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 183, + "nodeType": "ExpressionStatement", + "src": "2831:46:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 187, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1259, + "src": "2902:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BasicMission_$207", + "typeString": "contract BasicMission" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 190, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2935:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 192, + "indexExpression": { + "argumentTypes": null, + "id": 191, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2944:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2935:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 193, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 7, + "src": "2935:27:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 188, + "name": "identity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "2908:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getIdentityWallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 506, + "src": "2908:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", + "typeString": "function (address) view external returns (address)" + } + }, + "id": 194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:55:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 195, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2965:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 197, + "indexExpression": { + "argumentTypes": null, + "id": 196, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2974:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2965:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 198, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "cost", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "2965:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BasicMission_$207", + "typeString": "contract BasicMission" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 184, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "2883:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 288, + "src": "2883:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2883:108:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 200, + "nodeType": "ExpressionStatement", + "src": "2883:108:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 202, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "3018:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 201, + "name": "Signed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36, + "src": "3011:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3011:18:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 204, + "nodeType": "ExpressionStatement", + "src": "3011:18:0" + } + ] + }, + "documentation": "@notice Fund a mission\n@param _missionId The id of the mission\n@param _buyerId The DAV Identity of the person ordering the service", + "id": 206, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "fulfilled", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 125, + "name": "_missionId", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "2364:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 124, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2364:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 127, + "name": "_buyerId", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "2384:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2384:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2363:38:0" + }, + "payable": false, + "returnParameters": { + "id": 129, + "nodeType": "ParameterList", + "parameters": [], + "src": "2409:0:0" + }, + "scope": 207, + "src": "2345:689:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 208, + "src": "412:2625:0" + } + ], + "src": "0:3038:0" + }, + "legacyAST": { + "absolutePath": "/contracts/contracts/BasicMission.sol", + "exportedSymbols": { + "BasicMission": [ + 207 + ] + }, + "id": 208, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.4", + ".15" + ], + "nodeType": "PragmaDirective", + "src": "0:24:0" + }, + { + "absolutePath": "/contracts/contracts/Identity.sol", + "file": "./Identity.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 208, + "sourceUnit": 508, + "src": "26:24:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/contracts/contracts/DAVToken.sol", + "file": "./DAVToken.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 208, + "sourceUnit": 344, + "src": "51:24:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title BasicMission\n@dev The most basic contract for conducting Missions.\n * This contract represents the very basic interface of a mission contract.\nIn the real world, there is very little reason to use this and not one of the\ncontracts that extend it. Consider this an interface, more than an implementation.", + "fullyImplemented": true, + "id": 207, + "linearizedBaseContracts": [ + 207 + ], + "name": "BasicMission", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 5, + "name": "nonce", + "nodeType": "VariableDeclaration", + "scope": 207, + "src": "439:21:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "439:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "private" + }, + { + "canonicalName": "BasicMission.Mission", + "id": 20, + "members": [ + { + "constant": false, + "id": 7, + "name": "seller", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "486:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "486:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9, + "name": "buyer", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "506:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "506:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "525:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "525:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "543:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "543:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 15, + "name": "isSigned", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "564:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "564:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19, + "name": "resolvers", + "nodeType": "VariableDeclaration", + "scope": 20, + "src": "583:33:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_bool_$", + "typeString": "mapping(uint8 => bool)" + }, + "typeName": { + "id": 18, + "keyType": { + "id": 16, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "592:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "583:23:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_bool_$", + "typeString": "mapping(uint8 => bool)" + }, + "valueType": { + "id": 17, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "601:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Mission", + "nodeType": "StructDefinition", + "scope": 207, + "src": "465:156:0", + "visibility": "public" + }, + { + "constant": false, + "id": 24, + "name": "missions", + "nodeType": "VariableDeclaration", + "scope": 207, + "src": "625:45:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + }, + "typeName": { + "id": 23, + "keyType": { + "id": 21, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "634:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "625:28:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + }, + "valueType": { + "contractScope": null, + "id": 22, + "name": "Mission", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20, + "src": "645:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage_ptr", + "typeString": "struct BasicMission.Mission storage pointer" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 32, + "name": "Create", + "nodeType": "EventDefinition", + "parameters": { + "id": 31, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 32, + "src": "693:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 25, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "693:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "indexed": false, + "name": "sellerId", + "nodeType": "VariableDeclaration", + "scope": 32, + "src": "709:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 30, + "indexed": false, + "name": "buyerId", + "nodeType": "VariableDeclaration", + "scope": 32, + "src": "731:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "731:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "687:63:0" + }, + "src": "675:76:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 36, + "name": "Signed", + "nodeType": "EventDefinition", + "parameters": { + "id": 35, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34, + "indexed": false, + "name": "id", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "773:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 33, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "773:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "767:20:0" + }, + "src": "755:33:0" + }, + { + "constant": false, + "id": 38, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 207, + "src": "792:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + }, + "typeName": { + "contractScope": null, + "id": 37, + "name": "DAVToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 343, + "src": "792:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 40, + "name": "identity", + "nodeType": "VariableDeclaration", + "scope": 207, + "src": "818:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + }, + "typeName": { + "contractScope": null, + "id": 39, + "name": "Identity", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 507, + "src": "818:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 55, + "nodeType": "Block", + "src": "1098:70:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 47, + "name": "identity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "1104:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 48, + "name": "_identityContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "1115:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "src": "1104:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "id": 50, + "nodeType": "ExpressionStatement", + "src": "1104:28:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 51, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "1138:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 52, + "name": "_davTokenContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44, + "src": "1146:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "src": "1138:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "id": 54, + "nodeType": "ExpressionStatement", + "src": "1138:25:0" + } + ] + }, + "documentation": "@dev Constructor\n * @param _identityContract address of the Identity contract\n@param _davTokenContract address of the DAVToken contract", + "id": 56, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "BasicMission", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 45, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "name": "_identityContract", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "1035:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + }, + "typeName": { + "contractScope": null, + "id": 41, + "name": "Identity", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 507, + "src": "1035:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "name": "_davTokenContract", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "1063:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + }, + "typeName": { + "contractScope": null, + "id": 43, + "name": "DAVToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 343, + "src": "1063:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1034:56:0" + }, + "payable": false, + "returnParameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [], + "src": "1098:0:0" + }, + "scope": 207, + "src": "1013:155:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 122, + "nodeType": "Block", + "src": "1509:678:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 68, + "name": "_buyerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "1617:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 69, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "1627:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 70, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1627:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 66, + "name": "identity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "1592:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "verifyOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 478, + "src": "1592:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view external returns (bool)" + } + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1592:46:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 65, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "1577:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1577:67:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 73, + "nodeType": "ExpressionStatement", + "src": "1577:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 77, + "name": "_buyerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "1730:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 75, + "name": "identity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "1710:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 461, + "src": "1710:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1710:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 79, + "name": "_cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "1743:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1710:38:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 74, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "1695:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1695:59:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 82, + "nodeType": "ExpressionStatement", + "src": "1695:59:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 86, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "1827:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 87, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1827:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 88, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1259, + "src": "1839:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BasicMission_$207", + "typeString": "contract BasicMission" + } + }, + { + "argumentTypes": null, + "id": 89, + "name": "_cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "1845:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_BasicMission_$207", + "typeString": "contract BasicMission" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 83, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "1808:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "id": 85, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 288, + "src": "1808:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1808:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 91, + "nodeType": "ExpressionStatement", + "src": "1808:43:0" + }, + { + "assignments": [ + 93 + ], + "declarations": [ + { + "constant": false, + "id": 93, + "name": "missionId", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "1880:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 92, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1880:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 103, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "42617369634d697373696f6e", + "id": 95, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1910:14:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6f28747ca3bf61320646bbe8fce0609ed0cb6ef483ba3b71713bc1d9ed5bd450", + "typeString": "literal_string \"BasicMission\"" + }, + "value": "BasicMission" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 96, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1221, + "src": "1926:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 97, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1926:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 98, + "name": "_sellerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "1940:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 99, + "name": "_buyerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "1951:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1961:7:0", + "subExpression": { + "argumentTypes": null, + "id": 100, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5, + "src": "1961:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_6f28747ca3bf61320646bbe8fce0609ed0cb6ef483ba3b71713bc1d9ed5bd450", + "typeString": "literal_string \"BasicMission\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 94, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "1900:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1900:69:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1880:89:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 104, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "1975:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 106, + "indexExpression": { + "argumentTypes": null, + "id": 105, + "name": "missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "1984:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1975:19:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 108, + "name": "_sellerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "2021:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 109, + "name": "_buyerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "2045:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 110, + "name": "_cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "2067:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 111, + "name": "_cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "2089:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2112:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": null, + "id": 107, + "name": "Mission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20, + "src": "1997:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Mission_$20_storage_ptr_$", + "typeString": "type(struct BasicMission.Mission storage pointer)" + } + }, + "id": 113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "seller", + "buyer", + "cost", + "balance", + "isSigned" + ], + "nodeType": "FunctionCall", + "src": "1997:127:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_memory", + "typeString": "struct BasicMission.Mission memory" + } + }, + "src": "1975:149:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 115, + "nodeType": "ExpressionStatement", + "src": "1975:149:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 117, + "name": "missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "2151:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 118, + "name": "_sellerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "2162:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 119, + "name": "_buyerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "2173:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 116, + "name": "Create", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32, + "src": "2144:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2144:38:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 121, + "nodeType": "ExpressionStatement", + "src": "2144:38:0" + } + ] + }, + "documentation": "@notice Create a new mission\n@param _sellerId The DAV Identity of the person providing the service\n@param _buyerId The DAV Identity of the person ordering the service\n@param _cost The total cost of the mission to be paid by buyer", + "id": 123, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "create", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 58, + "name": "_sellerId", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "1450:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 57, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1450:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "name": "_buyerId", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "1469:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 59, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1469:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "name": "_cost", + "nodeType": "VariableDeclaration", + "scope": 123, + "src": "1487:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 61, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1487:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1449:52:0" + }, + "payable": false, + "returnParameters": { + "id": 64, + "nodeType": "ParameterList", + "parameters": [], + "src": "1509:0:0" + }, + "scope": 207, + "src": "1434:753:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 205, + "nodeType": "Block", + "src": "2409:625:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 133, + "name": "_buyerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 127, + "src": "2518:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 134, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "2528:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2528:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 131, + "name": "identity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "2493:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "verifyOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 478, + "src": "2493:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view external returns (bool)" + } + }, + "id": 136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2493:46:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 130, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "2478:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2478:67:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 138, + "nodeType": "ExpressionStatement", + "src": "2478:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 140, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2571:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 142, + "indexExpression": { + "argumentTypes": null, + "id": 141, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2580:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2571:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 143, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isSigned", + "nodeType": "MemberAccess", + "referencedDeclaration": 15, + "src": "2571:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2604:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2571:38:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 139, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "2556:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2556:59:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 147, + "nodeType": "ExpressionStatement", + "src": "2556:59:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 149, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2637:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 151, + "indexExpression": { + "argumentTypes": null, + "id": 150, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2646:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2637:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 152, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "2637:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 153, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2669:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 155, + "indexExpression": { + "argumentTypes": null, + "id": 154, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2678:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2669:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 156, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "cost", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "2669:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2637:57:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 148, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "2622:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2622:78:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 159, + "nodeType": "ExpressionStatement", + "src": "2622:78:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 160, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2751:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 162, + "indexExpression": { + "argumentTypes": null, + "id": 161, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2760:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2751:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 163, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isSigned", + "nodeType": "MemberAccess", + "referencedDeclaration": 15, + "src": "2751:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2783:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2751:36:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 166, + "nodeType": "ExpressionStatement", + "src": "2751:36:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 167, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2793:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 169, + "indexExpression": { + "argumentTypes": null, + "id": 168, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2802:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2793:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 170, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "2793:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2824:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2793:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 173, + "nodeType": "ExpressionStatement", + "src": "2793:32:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 177, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1259, + "src": "2845:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BasicMission_$207", + "typeString": "contract BasicMission" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 178, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2851:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 180, + "indexExpression": { + "argumentTypes": null, + "id": 179, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2860:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2851:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 181, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "cost", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "2851:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BasicMission_$207", + "typeString": "contract BasicMission" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 174, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "2831:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 306, + "src": "2831:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2831:46:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 183, + "nodeType": "ExpressionStatement", + "src": "2831:46:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 187, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1259, + "src": "2902:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BasicMission_$207", + "typeString": "contract BasicMission" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 190, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2935:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 192, + "indexExpression": { + "argumentTypes": null, + "id": 191, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2944:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2935:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 193, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "seller", + "nodeType": "MemberAccess", + "referencedDeclaration": 7, + "src": "2935:27:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 188, + "name": "identity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "2908:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Identity_$507", + "typeString": "contract Identity" + } + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getIdentityWallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 506, + "src": "2908:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", + "typeString": "function (address) view external returns (address)" + } + }, + "id": 194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:55:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 195, + "name": "missions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2965:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Mission_$20_storage_$", + "typeString": "mapping(bytes32 => struct BasicMission.Mission storage ref)" + } + }, + "id": 197, + "indexExpression": { + "argumentTypes": null, + "id": 196, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2974:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2965:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Mission_$20_storage", + "typeString": "struct BasicMission.Mission storage ref" + } + }, + "id": 198, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "cost", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "2965:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BasicMission_$207", + "typeString": "contract BasicMission" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 184, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "2883:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 288, + "src": "2883:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2883:108:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 200, + "nodeType": "ExpressionStatement", + "src": "2883:108:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 202, + "name": "_missionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "3018:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 201, + "name": "Signed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36, + "src": "3011:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3011:18:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 204, + "nodeType": "ExpressionStatement", + "src": "3011:18:0" + } + ] + }, + "documentation": "@notice Fund a mission\n@param _missionId The id of the mission\n@param _buyerId The DAV Identity of the person ordering the service", + "id": 206, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "fulfilled", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 125, + "name": "_missionId", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "2364:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 124, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2364:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 127, + "name": "_buyerId", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "2384:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2384:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2363:38:0" + }, + "payable": false, + "returnParameters": { + "id": 129, + "nodeType": "ParameterList", + "parameters": [], + "src": "2409:0:0" + }, + "scope": 207, + "src": "2345:689:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 208, + "src": "412:2625:0" + } + ], + "src": "0:3038:0" + }, + "compiler": { + "name": "solc", + "version": "0.4.21+commit.dfe3193c.Emscripten.clang" + }, + "networks": { + "1522384426618": { + "events": {}, + "links": {}, + "address": "0x9561c133dd8580860b6b7e504bc5aa500f0f06a7", + "transactionHash": "0x0fe74fd5ea2ad5db560047b91b5c485bd9f07959aeb93d8fefd43ca5edf42285" + }, + "1522386448255": { + "events": {}, + "links": {}, + "address": "0x9561c133dd8580860b6b7e504bc5aa500f0f06a7", + "transactionHash": "0x0fe74fd5ea2ad5db560047b91b5c485bd9f07959aeb93d8fefd43ca5edf42285" + }, + "1522396860561": { + "events": {}, + "links": {}, + "address": "0x9561c133dd8580860b6b7e504bc5aa500f0f06a7", + "transactionHash": "0x0fe74fd5ea2ad5db560047b91b5c485bd9f07959aeb93d8fefd43ca5edf42285" + }, + "1522400781888": { + "events": {}, + "links": {}, + "address": "0x9561c133dd8580860b6b7e504bc5aa500f0f06a7", + "transactionHash": "0x0fe74fd5ea2ad5db560047b91b5c485bd9f07959aeb93d8fefd43ca5edf42285" + }, + "1522401188121": { + "events": {}, + "links": {}, + "address": "0x9561c133dd8580860b6b7e504bc5aa500f0f06a7", + "transactionHash": "0x0fe74fd5ea2ad5db560047b91b5c485bd9f07959aeb93d8fefd43ca5edf42285" + }, + "1522401217746": { + "events": {}, + "links": {}, + "address": "0x9561c133dd8580860b6b7e504bc5aa500f0f06a7", + "transactionHash": "0x0fe74fd5ea2ad5db560047b91b5c485bd9f07959aeb93d8fefd43ca5edf42285" + }, + "1522401305207": { + "events": {}, + "links": {}, + "address": "0x9561c133dd8580860b6b7e504bc5aa500f0f06a7", + "transactionHash": "0x0fe74fd5ea2ad5db560047b91b5c485bd9f07959aeb93d8fefd43ca5edf42285" + }, + "1522401342972": { + "events": {}, + "links": {}, + "address": "0x9561c133dd8580860b6b7e504bc5aa500f0f06a7", + "transactionHash": "0x0fe74fd5ea2ad5db560047b91b5c485bd9f07959aeb93d8fefd43ca5edf42285" + } + }, + "schemaVersion": "2.0.0", + "updatedAt": "2018-03-30T09:15:51.015Z" +} \ No newline at end of file diff --git a/contracts/DAVToken.json b/contracts/DAVToken.json index cd7b855..bae7165 100644 --- a/contracts/DAVToken.json +++ b/contracts/DAVToken.json @@ -1,20 +1,6 @@ { "contractName": "DAVToken", "abi": [ - { - "constant": true, - "inputs": [], - "name": "mintingFinished", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": true, "inputs": [], @@ -29,29 +15,6 @@ "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": [], @@ -67,30 +30,17 @@ "type": "function" }, { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", + "constant": true, + "inputs": [], + "name": "INITIAL_SUPPLY", "outputs": [ { "name": "", - "type": "bool" + "type": "uint256" } ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { @@ -116,43 +66,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_value", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [], @@ -167,29 +80,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseApproval", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [ @@ -209,20 +99,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [], - "name": "finishMinting", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": false, "inputs": [], @@ -260,52 +136,6 @@ "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": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [ @@ -366,16 +196,16 @@ "inputs": [ { "indexed": true, - "name": "burner", + "name": "previousOwner", "type": "address" }, { - "indexed": false, - "name": "value", - "type": "uint256" + "indexed": true, + "name": "newOwner", + "type": "address" } ], - "name": "Burn", + "name": "OwnershipTransferred", "type": "event" }, { @@ -383,22 +213,21 @@ "inputs": [ { "indexed": true, - "name": "to", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", "type": "address" }, { "indexed": false, - "name": "amount", + "name": "value", "type": "uint256" } ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "MintFinished", + "name": "Approval", "type": "event" }, { @@ -406,131 +235,189 @@ "inputs": [ { "indexed": true, - "name": "previousOwner", + "name": "from", "type": "address" }, { "indexed": true, - "name": "newOwner", + "name": "to", "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" } ], - "name": "OwnershipTransferred", + "name": "Transfer", "type": "event" }, { - "anonymous": false, + "constant": false, "inputs": [ { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", + "name": "_to", "type": "address" }, { - "indexed": false, - "name": "value", + "name": "_value", "type": "uint256" } ], - "name": "Approval", - "type": "event" + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, + "constant": false, "inputs": [ { - "indexed": true, - "name": "from", + "name": "_from", "type": "address" }, { - "indexed": true, - "name": "to", + "name": "_to", "type": "address" }, { - "indexed": false, - "name": "value", + "name": "_value", "type": "uint256" } ], - "name": "Transfer", - "type": "event" - } - ], - "bytecode": "0x60606040526000600360146101000a81548160ff0219169083151502179055506000600360156101000a81548160ff0219169083151502179055506040805190810160405280600981526020017f44415620546f6b656e00000000000000000000000000000000000000000000008152506004908051906020019062000087929190620001af565b506040805190810160405280600381526020017f444156000000000000000000000000000000000000000000000000000000000081525060059080519060200190620000d5929190620001af565b506012600660006101000a81548160ff021916908360ff1602179055503415620000fe57600080fd5b600033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900460ff1660ff16600a0a620f424002905080600181905550806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550506200025e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f257805160ff191683800117855562000223565b8280016001018555821562000223579182015b828111156200022257825182559160200191906001019062000205565b5b50905062000232919062000236565b5090565b6200025b91905b80821115620002575760008160009055506001016200023d565b5090565b90565b611cdb806200026e6000396000f300606060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461011757806306fdde0314610144578063095ea7b3146101d257806318160ddd1461022c57806323b872dd14610255578063313ce567146102ce5780633f4ba83a146102fd57806340c10f191461031257806342966c681461036c5780635c975abb1461038f57806366188463146103bc57806370a08231146104165780637d64bcb4146104635780638456cb59146104905780638da5cb5b146104a557806395d89b41146104fa578063a9059cbb14610588578063d73dd623146105e2578063dd62ed3e1461063c578063f2fde38b146106a8575b600080fd5b341561012257600080fd5b61012a6106e1565b604051808215151515815260200191505060405180910390f35b341561014f57600080fd5b6101576106f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019757808201518184015260208101905061017c565b50505050905090810190601f1680156101c45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101dd57600080fd5b610212600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610792565b604051808215151515815260200191505060405180910390f35b341561023757600080fd5b61023f6107c2565b6040518082815260200191505060405180910390f35b341561026057600080fd5b6102b4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506107cc565b604051808215151515815260200191505060405180910390f35b34156102d957600080fd5b6102e16107fe565b604051808260ff1660ff16815260200191505060405180910390f35b341561030857600080fd5b610310610811565b005b341561031d57600080fd5b610352600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108d1565b604051808215151515815260200191505060405180910390f35b341561037757600080fd5b61038d6004808035906020019091905050610ab7565b005b341561039a57600080fd5b6103a2610c09565b604051808215151515815260200191505060405180910390f35b34156103c757600080fd5b6103fc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c1c565b604051808215151515815260200191505060405180910390f35b341561042157600080fd5b61044d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c4c565b6040518082815260200191505060405180910390f35b341561046e57600080fd5b610476610c94565b604051808215151515815260200191505060405180910390f35b341561049b57600080fd5b6104a3610d5c565b005b34156104b057600080fd5b6104b8610e1d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561050557600080fd5b61050d610e43565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054d578082015181840152602081019050610532565b50505050905090810190601f16801561057a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561059357600080fd5b6105c8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ee1565b604051808215151515815260200191505060405180910390f35b34156105ed57600080fd5b610622600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610f11565b604051808215151515815260200191505060405180910390f35b341561064757600080fd5b610692600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f41565b6040518082815260200191505060405180910390f35b34156106b357600080fd5b6106df600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610fc8565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561078a5780601f1061075f5761010080835404028352916020019161078a565b820191906000526020600020905b81548152906001019060200180831161076d57829003601f168201915b505050505081565b6000600360159054906101000a900460ff161515156107b057600080fd5b6107ba8383611120565b905092915050565b6000600154905090565b6000600360159054906101000a900460ff161515156107ea57600080fd5b6107f5848484611212565b90509392505050565b600660009054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561086d57600080fd5b600360159054906101000a900460ff16151561088857600080fd5b6000600360156101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092f57600080fd5b600360149054906101000a900460ff1615151561094b57600080fd5b610960826001546115cc90919063ffffffff16565b6001819055506109b7826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610b0657600080fd5b339050610b5a826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ea90919063ffffffff16565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bb1826001546115ea90919063ffffffff16565b6001819055508073ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a25050565b600360159054906101000a900460ff1681565b6000600360159054906101000a900460ff16151515610c3a57600080fd5b610c448383611603565b905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cf257600080fd5b600360149054906101000a900460ff16151515610d0e57600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610db857600080fd5b600360159054906101000a900460ff16151515610dd457600080fd5b6001600360156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed95780601f10610eae57610100808354040283529160200191610ed9565b820191906000526020600020905b815481529060010190602001808311610ebc57829003601f168201915b505050505081565b6000600360159054906101000a900460ff16151515610eff57600080fd5b610f098383611894565b905092915050565b6000600360159054906101000a900460ff16151515610f2f57600080fd5b610f398383611ab3565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561102457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561106057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561124f57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561129c57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561132757600080fd5b611378826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ea90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061140b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114dc82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ea90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008082840190508381101515156115e057fe5b8091505092915050565b60008282111515156115f857fe5b818303905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611714576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a8565b61172783826115ea90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156118d157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561191e57600080fd5b61196f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ea90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a02826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000611b4482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a360019050929150505600a165627a7a7230582079f572803446df5e6c345c2bff34b4c24e3f87ed7a6032d8618797081e48a0b30029", - "deployedBytecode": "0x606060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461011757806306fdde0314610144578063095ea7b3146101d257806318160ddd1461022c57806323b872dd14610255578063313ce567146102ce5780633f4ba83a146102fd57806340c10f191461031257806342966c681461036c5780635c975abb1461038f57806366188463146103bc57806370a08231146104165780637d64bcb4146104635780638456cb59146104905780638da5cb5b146104a557806395d89b41146104fa578063a9059cbb14610588578063d73dd623146105e2578063dd62ed3e1461063c578063f2fde38b146106a8575b600080fd5b341561012257600080fd5b61012a6106e1565b604051808215151515815260200191505060405180910390f35b341561014f57600080fd5b6101576106f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019757808201518184015260208101905061017c565b50505050905090810190601f1680156101c45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101dd57600080fd5b610212600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610792565b604051808215151515815260200191505060405180910390f35b341561023757600080fd5b61023f6107c2565b6040518082815260200191505060405180910390f35b341561026057600080fd5b6102b4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506107cc565b604051808215151515815260200191505060405180910390f35b34156102d957600080fd5b6102e16107fe565b604051808260ff1660ff16815260200191505060405180910390f35b341561030857600080fd5b610310610811565b005b341561031d57600080fd5b610352600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108d1565b604051808215151515815260200191505060405180910390f35b341561037757600080fd5b61038d6004808035906020019091905050610ab7565b005b341561039a57600080fd5b6103a2610c09565b604051808215151515815260200191505060405180910390f35b34156103c757600080fd5b6103fc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c1c565b604051808215151515815260200191505060405180910390f35b341561042157600080fd5b61044d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c4c565b6040518082815260200191505060405180910390f35b341561046e57600080fd5b610476610c94565b604051808215151515815260200191505060405180910390f35b341561049b57600080fd5b6104a3610d5c565b005b34156104b057600080fd5b6104b8610e1d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561050557600080fd5b61050d610e43565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054d578082015181840152602081019050610532565b50505050905090810190601f16801561057a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561059357600080fd5b6105c8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ee1565b604051808215151515815260200191505060405180910390f35b34156105ed57600080fd5b610622600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610f11565b604051808215151515815260200191505060405180910390f35b341561064757600080fd5b610692600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f41565b6040518082815260200191505060405180910390f35b34156106b357600080fd5b6106df600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610fc8565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561078a5780601f1061075f5761010080835404028352916020019161078a565b820191906000526020600020905b81548152906001019060200180831161076d57829003601f168201915b505050505081565b6000600360159054906101000a900460ff161515156107b057600080fd5b6107ba8383611120565b905092915050565b6000600154905090565b6000600360159054906101000a900460ff161515156107ea57600080fd5b6107f5848484611212565b90509392505050565b600660009054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561086d57600080fd5b600360159054906101000a900460ff16151561088857600080fd5b6000600360156101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092f57600080fd5b600360149054906101000a900460ff1615151561094b57600080fd5b610960826001546115cc90919063ffffffff16565b6001819055506109b7826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610b0657600080fd5b339050610b5a826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ea90919063ffffffff16565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bb1826001546115ea90919063ffffffff16565b6001819055508073ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a25050565b600360159054906101000a900460ff1681565b6000600360159054906101000a900460ff16151515610c3a57600080fd5b610c448383611603565b905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cf257600080fd5b600360149054906101000a900460ff16151515610d0e57600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610db857600080fd5b600360159054906101000a900460ff16151515610dd457600080fd5b6001600360156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed95780601f10610eae57610100808354040283529160200191610ed9565b820191906000526020600020905b815481529060010190602001808311610ebc57829003601f168201915b505050505081565b6000600360159054906101000a900460ff16151515610eff57600080fd5b610f098383611894565b905092915050565b6000600360159054906101000a900460ff16151515610f2f57600080fd5b610f398383611ab3565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561102457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561106057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561124f57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561129c57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561132757600080fd5b611378826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ea90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061140b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114dc82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ea90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008082840190508381101515156115e057fe5b8091505092915050565b60008282111515156115f857fe5b818303905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611714576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a8565b61172783826115ea90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156118d157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561191e57600080fd5b61196f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ea90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a02826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000611b4482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a360019050929150505600a165627a7a7230582079f572803446df5e6c345c2bff34b4c24e3f87ed7a6032d8618797081e48a0b30029", - "sourceMap": "317:688:1:-;;;544:5:15;514:35;;;;;;;;;;;;;;;;;;;;268:5:8;247:26;;;;;;;;;;;;;;;;;;;;543:32:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;579:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;635:2;611:26;;;;;;;;;;;;;;;;;;;;765:237;;;;;;;;798:21;509:10:10;501:5;;:18;;;;;;;;;;;;;;;;;;847:8:1;;;;;;;;;;;839:17;;833:2;:23;822:7;:35;798:59;;942:13;927:12;:28;;;;984:13;961:8;:20;970:10;961:20;;;;;;;;;;;;;;;:36;;;;765:237;317:688;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "317:688:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;514:35:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;543:32:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:136:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;374:158:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;611:26:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;833:87:8;;;;;;;;;;;;;;853:264:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:416:12;;;;;;;;;;;;;;;;;;;;;;;;;;247:26:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;849:179:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1189:107:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:135:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:85:8;;;;;;;;;;;;;;238:20:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;579:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;242:128:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;676:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2300:126:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:169:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;514:35:15;;;;;;;;;;;;;:::o;543:32:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;536:136:16:-;617:4;416:6:8;;;;;;;;;;;415:7;407:16;;;;;;;;636:31:16;650:8;660:6;636:13;:31::i;:::-;629:38;;536:136;;;;:::o;371:83:11:-;415:7;437:12;;430:19;;371:83;:::o;374:158:16:-;470:4;416:6:8;;;;;;;;;;;415:7;407:16;;;;;;;;489:38:16;508:5;515:3;520:6;489:18;:38::i;:::-;482:45;;374:158;;;;;:::o;611:26:1:-;;;;;;;;;;;;;:::o;833:87:8:-;653:5:10;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;568:6:8;;;;;;;;;;;560:15;;;;;;;;895:5;886:6;;:14;;;;;;;;;;;;;;;;;;906:9;;;;;;;;;;833:87::o;853:264:15:-;931:4;653:5:10;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;589:15:15;;;;;;;;;;;588:16;580:25;;;;;;;;958;975:7;958:12;;:16;;:25;;;;:::i;:::-;943:12;:40;;;;1005:26;1023:7;1005:8;:13;1014:3;1005:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;989:8;:13;998:3;989:13;;;;;;;;;;;;;;;:42;;;;1042:3;1037:18;;;1047:7;1037:18;;;;;;;;;;;;;;;;;;1082:3;1061:34;;1078:1;1061:34;;;1087:7;1061:34;;;;;;;;;;;;;;;;;;1108:4;1101:11;;853:264;;;;:::o;353:416:12:-;613:14;414:8;:20;423:10;414:20;;;;;;;;;;;;;;;;404:6;:30;;396:39;;;;;;;;630:10;613:27;;665:28;686:6;665:8;:16;674:6;665:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;646:8;:16;655:6;646:16;;;;;;;;;;;;;;;:47;;;;714:24;731:6;714:12;;:16;;:24;;;;:::i;:::-;699:12;:39;;;;749:6;744:20;;;757:6;744:20;;;;;;;;;;;;;;;;;;353:416;;:::o;247:26:8:-;;;;;;;;;;;;;:::o;849:179:16:-;946:12;416:6:8;;;;;;;;;;;415:7;407:16;;;;;;;;973:50:16;996:8;1006:16;973:22;:50::i;:::-;966:57;;849:179;;;;:::o;1189:107:11:-;1245:15;1275:8;:16;1284:6;1275:16;;;;;;;;;;;;;;;;1268:23;;1189:107;;;:::o;1231:135:15:-;1290:4;653:5:10;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;589:15:15;;;;;;;;;;;588:16;580:25;;;;;;;;1320:4;1302:15;;:22;;;;;;;;;;;;;;;;;;1330:14;;;;;;;;;;1357:4;1350:11;;1231:135;:::o;666:85:8:-;653:5:10;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;416:6:8;;;;;;;;;;;415:7;407:16;;;;;;;;729:4;720:6;;:13;;;;;;;;;;;;;;;;;;739:7;;;;;;;;;;666:85::o;238:20:10:-;;;;;;;;;;;;;:::o;579:28:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;242:128:16:-;319:4;416:6:8;;;;;;;;;;;415:7;407:16;;;;;;;;338:27:16;353:3;358:6;338:14;:27::i;:::-;331:34;;242:128;;;;:::o;676:169::-;768:12;416:6:8;;;;;;;;;;;415:7;407:16;;;;;;;;795:45:16;818:8;828:11;795:22;:45::i;:::-;788:52;;676:169;;;;:::o;2300:126:17:-;2374:7;2396;:15;2404:6;2396:15;;;;;;;;;;;;;;;:25;2412:8;2396:25;;;;;;;;;;;;;;;;2389:32;;2300:126;;;;:::o;832:169:10:-;653:5;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;928:1;908:22;;:8;:22;;;;900:31;;;;;;;;965:8;937:37;;958:5;;;;;;;;;;;937:37;;;;;;;;;;;;988:8;980:5;;:16;;;;;;;;;;;;;;;;;;832:169;:::o;1798:183:17:-;1865:4;1909:6;1877:7;:19;1885:10;1877:19;;;;;;;;;;;;;;;:29;1897:8;1877:29;;;;;;;;;;;;;;;:38;;;;1942:8;1921:38;;1930:10;1921:38;;;1952:6;1921:38;;;;;;;;;;;;;;;;;;1972:4;1965:11;;1798:183;;;;:::o;736:439::-;818:4;853:1;838:17;;:3;:17;;;;830:26;;;;;;;;880:8;:15;889:5;880:15;;;;;;;;;;;;;;;;870:6;:25;;862:34;;;;;;;;920:7;:14;928:5;920:14;;;;;;;;;;;;;;;:26;935:10;920:26;;;;;;;;;;;;;;;;910:6;:36;;902:45;;;;;;;;972:27;992:6;972:8;:15;981:5;972:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;954:8;:15;963:5;954:15;;;;;;;;;;;;;;;:45;;;;1021:25;1039:6;1021:8;:13;1030:3;1021:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1005:8;:13;1014:3;1005:13;;;;;;;;;;;;;;;:41;;;;1081:38;1112:6;1081:7;:14;1089:5;1081:14;;;;;;;;;;;;;;;:26;1096:10;1081:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1052:7;:14;1060:5;1052:14;;;;;;;;;;;;;;;:26;1067:10;1052:26;;;;;;;;;;;;;;;:67;;;;1141:3;1125:28;;1134:5;1125:28;;;1146:6;1125:28;;;;;;;;;;;;;;;;;;1166:4;1159:11;;736:439;;;;;:::o;1008:129:9:-;1066:7;1081:9;1097:1;1093;:5;1081:17;;1116:1;1111;:6;;1104:14;;;;;;1131:1;1124:8;;1008:129;;;;;:::o;836:110::-;894:7;921:1;916;:6;;909:14;;;;;;940:1;936;:5;929:12;;836:110;;;;:::o;3602:398:17:-;3685:4;3697:13;3713:7;:19;3721:10;3713:19;;;;;;;;;;;;;;;:29;3733:8;3713:29;;;;;;;;;;;;;;;;3697:45;;3771:8;3752:16;:27;3748:164;;;3821:1;3789:7;:19;3797:10;3789:19;;;;;;;;;;;;;;;:29;3809:8;3789:29;;;;;;;;;;;;;;;:33;;;;3748:164;;;3875:30;3888:16;3875:8;:12;;:30;;;;:::i;:::-;3843:7;:19;3851:10;3843:19;;;;;;;;;;;;;;;:29;3863:8;3843:29;;;;;;;;;;;;;;;:62;;;;3748:164;3938:8;3917:61;;3926:10;3917:61;;;3948:7;:19;3956:10;3948:19;;;;;;;;;;;;;;;:29;3968:8;3948:29;;;;;;;;;;;;;;;;3917:61;;;;;;;;;;;;;;;;;;3991:4;3984:11;;3602:398;;;;;:::o;608:379:11:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;847:32;872:6;847:8;:20;856:10;847:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;824:8;:20;833:10;824:20;;;;;;;;;;;;;;;:55;;;;901:25;919:6;901:8;:13;910:3;901:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;885:8;:13;894:3;885:13;;;;;;;;;;;;;;;:41;;;;953:3;932:33;;941:10;932:33;;;958:6;932:33;;;;;;;;;;;;;;;;;;978:4;971:11;;608:379;;;;:::o;2883:257:17:-;2961:4;3005:46;3039:11;3005:7;:19;3013:10;3005:19;;;;;;;;;;;;;;;:29;3025:8;3005:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;2973:7;:19;2981:10;2973:19;;;;;;;;;;;;;;;:29;2993:8;2973:29;;;;;;;;;;;;;;;:78;;;;3078:8;3057:61;;3066:10;3057:61;;;3088:7;:19;3096:10;3088:19;;;;;;;;;;;;;;;:29;3108:8;3088:29;;;;;;;;;;;;;;;;3057:61;;;;;;;;;;;;;;;;;;3131:4;3124:11;;2883:257;;;;:::o", - "source": "pragma solidity ^0.4.18;\n\nimport './interfaces/IDAVToken.sol';\nimport 'zeppelin-solidity/contracts/token/ERC20/MintableToken.sol';\nimport 'zeppelin-solidity/contracts/token/ERC20/BurnableToken.sol';\nimport 'zeppelin-solidity/contracts/token/ERC20/PausableToken.sol';\n\n\n/**\n * @title DAV Token\n * @dev ERC20 token\n */\ncontract DAVToken is IDAVToken, MintableToken, BurnableToken, PausableToken {\n\n // Token constants\n // NOTE: These are placeholder values used during development. Final inital supply will be determined and announced later\n string public name = 'DAV Token';\n string public symbol = 'DAV';\n uint8 public decimals = 18;\n\n /**\n * @notice DAVToken constructor\n * Runs once on initial contract creation. Sets total supply and balances.\n */\n function DAVToken() public {\n uint256 initialSupply = 1000000 * (10 ** uint256(decimals)); // Number of tokens padded with 0s for number of decimal places\n totalSupply_ = initialSupply;\n balances[msg.sender] = initialSupply;\n }\n\n}\n", - "sourcePath": "/Users/tal/Dropbox/mysite/DAV/contracts/contracts/DAVToken.sol", - "ast": { - "absolutePath": "/Users/tal/Dropbox/mysite/DAV/contracts/contracts/DAVToken.sol", - "exportedSymbols": { - "DAVToken": [ - 74 - ] - }, - "id": 75, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 26, - "literals": [ + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "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": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60606040526000600360146101000a81548160ff021916908315150217905550341561002a57600080fd5b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a620f424002600181905550601260ff16600a0a620f4240026000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611731806100dc6000396000f3006060604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100f6578063095ea7b31461018457806318160ddd146101de57806323b872dd146102075780632ff2e9dc14610280578063313ce567146102a95780633f4ba83a146102d85780635c975abb146102ed578063661884631461031a57806370a08231146103745780638456cb59146103c15780638da5cb5b146103d657806395d89b411461042b578063a9059cbb146104b9578063d73dd62314610513578063dd62ed3e1461056d578063f2fde38b146105d9575b600080fd5b341561010157600080fd5b610109610612565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014957808201518184015260208101905061012e565b50505050905090810190601f1680156101765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018f57600080fd5b6101c4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061064b565b604051808215151515815260200191505060405180910390f35b34156101e957600080fd5b6101f161067b565b6040518082815260200191505060405180910390f35b341561021257600080fd5b610266600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610685565b604051808215151515815260200191505060405180910390f35b341561028b57600080fd5b6102936106b7565b6040518082815260200191505060405180910390f35b34156102b457600080fd5b6102bc6106c7565b604051808260ff1660ff16815260200191505060405180910390f35b34156102e357600080fd5b6102eb6106cc565b005b34156102f857600080fd5b61030061078c565b604051808215151515815260200191505060405180910390f35b341561032557600080fd5b61035a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061079f565b604051808215151515815260200191505060405180910390f35b341561037f57600080fd5b6103ab600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506107cf565b6040518082815260200191505060405180910390f35b34156103cc57600080fd5b6103d4610817565b005b34156103e157600080fd5b6103e96108d8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561043657600080fd5b61043e6108fe565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047e578082015181840152602081019050610463565b50505050905090810190601f1680156104ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104c457600080fd5b6104f9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610937565b604051808215151515815260200191505060405180910390f35b341561051e57600080fd5b610553600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610967565b604051808215151515815260200191505060405180910390f35b341561057857600080fd5b6105c3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610997565b6040518082815260200191505060405180910390f35b34156105e457600080fd5b610610600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a1e565b005b6040805190810160405280600981526020017f44415620546f6b656e000000000000000000000000000000000000000000000081525081565b6000600360149054906101000a900460ff1615151561066957600080fd5b6106738383610b76565b905092915050565b6000600154905090565b6000600360149054906101000a900460ff161515156106a357600080fd5b6106ae848484610c68565b90509392505050565b601260ff16600a0a620f42400281565b601281565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561072857600080fd5b600360149054906101000a900460ff16151561074357600080fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600360149054906101000a900460ff1681565b6000600360149054906101000a900460ff161515156107bd57600080fd5b6107c78383611022565b905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561087357600080fd5b600360149054906101000a900460ff1615151561088f57600080fd5b6001600360146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f444156000000000000000000000000000000000000000000000000000000000081525081565b6000600360149054906101000a900460ff1615151561095557600080fd5b61095f83836112b3565b905092915050565b6000600360149054906101000a900460ff1615151561098557600080fd5b61098f83836114d2565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a7a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ab657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610ca557600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610cf257600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d7d57600080fd5b610dce826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ce90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e61826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116e790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f3282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ce90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611133576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111c7565b61114683826116ce90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156112f057600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561133d57600080fd5b61138e826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ce90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611421826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116e790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061156382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116e790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008282111515156116dc57fe5b818303905092915050565b60008082840190508381101515156116fb57fe5b80915050929150505600a165627a7a723058201a5d5f604eede5253650c520c45cbaedcb47e10469c7344bcd12397f415e38510029", + "deployedBytecode": "0x6060604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100f6578063095ea7b31461018457806318160ddd146101de57806323b872dd146102075780632ff2e9dc14610280578063313ce567146102a95780633f4ba83a146102d85780635c975abb146102ed578063661884631461031a57806370a08231146103745780638456cb59146103c15780638da5cb5b146103d657806395d89b411461042b578063a9059cbb146104b9578063d73dd62314610513578063dd62ed3e1461056d578063f2fde38b146105d9575b600080fd5b341561010157600080fd5b610109610612565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014957808201518184015260208101905061012e565b50505050905090810190601f1680156101765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018f57600080fd5b6101c4600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061064b565b604051808215151515815260200191505060405180910390f35b34156101e957600080fd5b6101f161067b565b6040518082815260200191505060405180910390f35b341561021257600080fd5b610266600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610685565b604051808215151515815260200191505060405180910390f35b341561028b57600080fd5b6102936106b7565b6040518082815260200191505060405180910390f35b34156102b457600080fd5b6102bc6106c7565b604051808260ff1660ff16815260200191505060405180910390f35b34156102e357600080fd5b6102eb6106cc565b005b34156102f857600080fd5b61030061078c565b604051808215151515815260200191505060405180910390f35b341561032557600080fd5b61035a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061079f565b604051808215151515815260200191505060405180910390f35b341561037f57600080fd5b6103ab600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506107cf565b6040518082815260200191505060405180910390f35b34156103cc57600080fd5b6103d4610817565b005b34156103e157600080fd5b6103e96108d8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561043657600080fd5b61043e6108fe565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047e578082015181840152602081019050610463565b50505050905090810190601f1680156104ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104c457600080fd5b6104f9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610937565b604051808215151515815260200191505060405180910390f35b341561051e57600080fd5b610553600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610967565b604051808215151515815260200191505060405180910390f35b341561057857600080fd5b6105c3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610997565b6040518082815260200191505060405180910390f35b34156105e457600080fd5b610610600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a1e565b005b6040805190810160405280600981526020017f44415620546f6b656e000000000000000000000000000000000000000000000081525081565b6000600360149054906101000a900460ff1615151561066957600080fd5b6106738383610b76565b905092915050565b6000600154905090565b6000600360149054906101000a900460ff161515156106a357600080fd5b6106ae848484610c68565b90509392505050565b601260ff16600a0a620f42400281565b601281565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561072857600080fd5b600360149054906101000a900460ff16151561074357600080fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600360149054906101000a900460ff1681565b6000600360149054906101000a900460ff161515156107bd57600080fd5b6107c78383611022565b905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561087357600080fd5b600360149054906101000a900460ff1615151561088f57600080fd5b6001600360146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f444156000000000000000000000000000000000000000000000000000000000081525081565b6000600360149054906101000a900460ff1615151561095557600080fd5b61095f83836112b3565b905092915050565b6000600360149054906101000a900460ff1615151561098557600080fd5b61098f83836114d2565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a7a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ab657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610ca557600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610cf257600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d7d57600080fd5b610dce826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ce90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e61826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116e790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f3282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ce90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611133576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111c7565b61114683826116ce90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156112f057600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561133d57600080fd5b61138e826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ce90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611421826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116e790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061156382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116e790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008282111515156116dc57fe5b818303905092915050565b60008082840190508381101515156116fb57fe5b80915050929150505600a165627a7a723058201a5d5f604eede5253650c520c45cbaedcb47e10469c7344bcd12397f415e38510029", + "sourceMap": "233:3451:1:-;;;268:5:5;247:26;;;;;;;;;;;;;;;;;;;;813:110:1;;;;;;;;509:10:7;501:5;;:18;;;;;;;;;;;;;;;;;;539:2:1;603:17;;597:2;:23;586:7;:35;846:12;:29;;;;539:2;603:17;;597:2;:23;586:7;:35;881:8;:20;890:10;881:20;;;;;;;;;;;;;;;:37;;;;233:3451;;;;;;", + "deployedSourceMap": "233:3451:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;420:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;420:41:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2270:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1486:158:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;545:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;506:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;833:87:5;;;;;;;;;;;;;;247:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3503:179:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1189:107:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:85:5;;;;;;;;;;;;;;238:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;465:37:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;465:37:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1080:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2869:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2300:126:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:169:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;420:41:1;;;;;;;;;;;;;;;;;;;;:::o;2270:136::-;2351:4;416:6:5;;;;;;;;;;;415:7;407:16;;;;;;;;2370:31:1;2384:8;2394:6;2370:13;:31::i;:::-;2363:38;;2270:136;;;;:::o;371:83:8:-;415:7;437:12;;430:19;;371:83;:::o;1486:158:1:-;1582:4;416:6:5;;;;;;;;;;;415:7;407:16;;;;;;;;1601:38:1;1620:5;1627:3;1632:6;1601:18;:38::i;:::-;1594:45;;1486:158;;;;;:::o;545:76::-;539:2;603:17;;597:2;:23;586:7;:35;545:76;:::o;506:35::-;539:2;506:35;:::o;833:87:5:-;653:5:7;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;568:6:5;;;;;;;;;;;560:15;;;;;;;;895:5;886:6;;:14;;;;;;;;;;;;;;;;;;906:9;;;;;;;;;;833:87::o;247:26::-;;;;;;;;;;;;;:::o;3503:179:1:-;3600:12;416:6:5;;;;;;;;;;;415:7;407:16;;;;;;;;3627:50:1;3650:8;3660:16;3627:22;:50::i;:::-;3620:57;;3503:179;;;;:::o;1189:107:8:-;1245:15;1275:8;:16;1284:6;1275:16;;;;;;;;;;;;;;;;1268:23;;1189:107;;;:::o;666:85:5:-;653:5:7;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;416:6:5;;;;;;;;;;;415:7;407:16;;;;;;;;729:4;720:6;;:13;;;;;;;;;;;;;;;;;;739:7;;;;;;;;;;666:85::o;238:20:7:-;;;;;;;;;;;;;:::o;465:37:1:-;;;;;;;;;;;;;;;;;;;;:::o;1080:128::-;1157:4;416:6:5;;;;;;;;;;;415:7;407:16;;;;;;;;1176:27:1;1191:3;1196:6;1176:14;:27::i;:::-;1169:34;;1080:128;;;;:::o;2869:169::-;2961:12;416:6:5;;;;;;;;;;;415:7;407:16;;;;;;;;2988:45:1;3011:8;3021:11;2988:22;:45::i;:::-;2981:52;;2869:169;;;;:::o;2300:126:11:-;2374:7;2396;:15;2404:6;2396:15;;;;;;;;;;;;;;;:25;2412:8;2396:25;;;;;;;;;;;;;;;;2389:32;;2300:126;;;;:::o;832:169:7:-;653:5;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;928:1;908:22;;:8;:22;;;;900:31;;;;;;;;965:8;937:37;;958:5;;;;;;;;;;;937:37;;;;;;;;;;;;988:8;980:5;;:16;;;;;;;;;;;;;;;;;;832:169;:::o;1798:183:11:-;1865:4;1909:6;1877:7;:19;1885:10;1877:19;;;;;;;;;;;;;;;:29;1897:8;1877:29;;;;;;;;;;;;;;;:38;;;;1942:8;1921:38;;1930:10;1921:38;;;1952:6;1921:38;;;;;;;;;;;;;;;;;;1972:4;1965:11;;1798:183;;;;:::o;736:439::-;818:4;853:1;838:17;;:3;:17;;;;830:26;;;;;;;;880:8;:15;889:5;880:15;;;;;;;;;;;;;;;;870:6;:25;;862:34;;;;;;;;920:7;:14;928:5;920:14;;;;;;;;;;;;;;;:26;935:10;920:26;;;;;;;;;;;;;;;;910:6;:36;;902:45;;;;;;;;972:27;992:6;972:8;:15;981:5;972:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;954:8;:15;963:5;954:15;;;;;;;;;;;;;;;:45;;;;1021:25;1039:6;1021:8;:13;1030:3;1021:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1005:8;:13;1014:3;1005:13;;;;;;;;;;;;;;;:41;;;;1081:38;1112:6;1081:7;:14;1089:5;1081:14;;;;;;;;;;;;;;;:26;1096:10;1081:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1052:7;:14;1060:5;1052:14;;;;;;;;;;;;;;;:26;1067:10;1052:26;;;;;;;;;;;;;;;:67;;;;1141:3;1125:28;;1134:5;1125:28;;;1146:6;1125:28;;;;;;;;;;;;;;;;;;1166:4;1159:11;;736:439;;;;;:::o;3602:398::-;3685:4;3697:13;3713:7;:19;3721:10;3713:19;;;;;;;;;;;;;;;:29;3733:8;3713:29;;;;;;;;;;;;;;;;3697:45;;3771:8;3752:16;:27;3748:164;;;3821:1;3789:7;:19;3797:10;3789:19;;;;;;;;;;;;;;;:29;3809:8;3789:29;;;;;;;;;;;;;;;:33;;;;3748:164;;;3875:30;3888:16;3875:8;:12;;:30;;;;:::i;:::-;3843:7;:19;3851:10;3843:19;;;;;;;;;;;;;;;:29;3863:8;3843:29;;;;;;;;;;;;;;;:62;;;;3748:164;3938:8;3917:61;;3926:10;3917:61;;;3948:7;:19;3956:10;3948:19;;;;;;;;;;;;;;;:29;3968:8;3948:29;;;;;;;;;;;;;;;;3917:61;;;;;;;;;;;;;;;;;;3991:4;3984:11;;3602:398;;;;;:::o;608:379:8:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;847:32;872:6;847:8;:20;856:10;847:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;824:8;:20;833:10;824:20;;;;;;;;;;;;;;;:55;;;;901:25;919:6;901:8;:13;910:3;901:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;885:8;:13;894:3;885:13;;;;;;;;;;;;;;;:41;;;;953:3;932:33;;941:10;932:33;;;958:6;932:33;;;;;;;;;;;;;;;;;;978:4;971:11;;608:379;;;;:::o;2883:257:11:-;2961:4;3005:46;3039:11;3005:7;:19;3013:10;3005:19;;;;;;;;;;;;;;;:29;3025:8;3005:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;2973:7;:19;2981:10;2973:19;;;;;;;;;;;;;;;:29;2993:8;2973:29;;;;;;;;;;;;;;;:78;;;;3078:8;3057:61;;3066:10;3057:61;;;3088:7;:19;3096:10;3088:19;;;;;;;;;;;;;;;:29;3108:8;3088:29;;;;;;;;;;;;;;;;3057:61;;;;;;;;;;;;;;;;;;3131:4;3124:11;;2883:257;;;;:::o;836:110:6:-;894:7;921:1;916;:6;;909:14;;;;;;940:1;936;:5;929:12;;836:110;;;;:::o;1008:129::-;1066:7;1081:9;1097:1;1093;:5;1081:17;;1116:1;1111;:6;;1104:14;;;;;;1131:1;1124:8;;1008:129;;;;;:::o", + "source": "pragma solidity ^0.4.15;\n\n// solium-disable uppercase\nimport 'zeppelin-solidity/contracts/token/ERC20/StandardToken.sol';\nimport 'zeppelin-solidity/contracts/lifecycle/Pausable.sol';\n\n\n/**\n * @title DAV Token\n * @dev ERC20 token\n */\ncontract DAVToken is StandardToken, Pausable {\n\n // Token constants\n // NOTE: These are placeholder values used during development. Final supply and precision to be determined later.\n string public constant name = 'DAV Token';\n string public constant symbol = 'DAV';\n uint8 public constant decimals = 18;\n uint256 public constant INITIAL_SUPPLY = 1000000 * (10 ** uint256(decimals)); // Number of tokens padded with 0s for number of decimal places\n\n /**\n * @notice DAVToken constructor\n * Runs once on initial contract creation. Sets total supply and balances.\n */\n function DAVToken() public {\n totalSupply_ = INITIAL_SUPPLY;\n balances[msg.sender] = INITIAL_SUPPLY;\n }\n\n /**\n * @notice 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 whenNotPaused returns (bool) {\n return super.transfer(_to, _value);\n }\n\n /**\n * @notice 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(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {\n return super.transferFrom(_from, _to, _value);\n }\n\n /**\n * @notice 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 whenNotPaused returns (bool) {\n return super.approve(_spender, _value);\n }\n\n /**\n * @notice Increase the amount of tokens that an owner is 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(address _spender, uint _addedValue) public whenNotPaused returns (bool success) {\n return super.increaseApproval(_spender, _addedValue);\n }\n\n /**\n * @notice 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(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) {\n return super.decreaseApproval(_spender, _subtractedValue);\n }\n}\n", + "sourcePath": "/contracts/contracts/DAVToken.sol", + "ast": { + "absolutePath": "/contracts/contracts/DAVToken.sol", + "exportedSymbols": { + "DAVToken": [ + 343 + ] + }, + "id": 344, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 209, + "literals": [ "solidity", "^", "0.4", - ".18" + ".15" ], "nodeType": "PragmaDirective", "src": "0:24:1" }, { - "absolutePath": "/Users/tal/Dropbox/mysite/DAV/contracts/contracts/interfaces/IDAVToken.sol", - "file": "./interfaces/IDAVToken.sol", - "id": 27, - "nodeType": "ImportDirective", - "scope": 75, - "sourceUnit": 248, - "src": "26:36:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", - "id": 28, - "nodeType": "ImportDirective", - "scope": 75, - "sourceUnit": 1053, - "src": "63:67:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/BurnableToken.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/BurnableToken.sol", - "id": 29, + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "id": 210, "nodeType": "ImportDirective", - "scope": 75, - "sourceUnit": 883, - "src": "131:67:1", + "scope": 344, + "sourceUnit": 1218, + "src": "54:67:1", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/PausableToken.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/PausableToken.sol", - "id": 30, + "absolutePath": "zeppelin-solidity/contracts/lifecycle/Pausable.sol", + "file": "zeppelin-solidity/contracts/lifecycle/Pausable.sol", + "id": 211, "nodeType": "ImportDirective", - "scope": 75, - "sourceUnit": 1155, - "src": "199:67:1", + "scope": 344, + "sourceUnit": 647, + "src": "122:60:1", "symbolAliases": [], "unitAlias": "" }, @@ -540,125 +427,81 @@ "arguments": [], "baseName": { "contractScope": null, - "id": 31, - "name": "IDAVToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 247, - "src": "338:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDAVToken_$247", - "typeString": "contract IDAVToken" - } - }, - "id": 32, - "nodeType": "InheritanceSpecifier", - "src": "338:9:1" - }, - { - "arguments": [], - "baseName": { - "contractScope": null, - "id": 33, - "name": "MintableToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1052, - "src": "349:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MintableToken_$1052", - "typeString": "contract MintableToken" - } - }, - "id": 34, - "nodeType": "InheritanceSpecifier", - "src": "349:13:1" - }, - { - "arguments": [], - "baseName": { - "contractScope": null, - "id": 35, - "name": "BurnableToken", + "id": 212, + "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 882, - "src": "364:13:1", + "referencedDeclaration": 1217, + "src": "254:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_BurnableToken_$882", - "typeString": "contract BurnableToken" + "typeIdentifier": "t_contract$_StandardToken_$1217", + "typeString": "contract StandardToken" } }, - "id": 36, + "id": 213, "nodeType": "InheritanceSpecifier", - "src": "364:13:1" + "src": "254:13:1" }, { "arguments": [], "baseName": { "contractScope": null, - "id": 37, - "name": "PausableToken", + "id": 214, + "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1154, - "src": "379:13:1", + "referencedDeclaration": 646, + "src": "269:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_PausableToken_$1154", - "typeString": "contract PausableToken" + "typeIdentifier": "t_contract$_Pausable_$646", + "typeString": "contract Pausable" } }, - "id": 38, + "id": 215, "nodeType": "InheritanceSpecifier", - "src": "379:13:1" + "src": "269:8:1" } ], "contractDependencies": [ - 247, - 577, - 731, - 827, - 882, - 925, - 957, - 1052, - 1154, - 1400 + 646, + 800, + 896, + 939, + 971, + 1217 ], "contractKind": "contract", "documentation": "@title DAV Token\n@dev ERC20 token", "fullyImplemented": true, - "id": 74, + "id": 343, "linearizedBaseContracts": [ - 74, - 1154, - 577, - 882, - 1052, - 731, - 1400, - 827, - 247, - 925, - 957 + 343, + 646, + 800, + 1217, + 896, + 939, + 971 ], "name": "DAVToken", "nodeType": "ContractDefinition", "nodes": [ { - "constant": false, - "id": 41, + "constant": true, + "id": 218, "name": "name", "nodeType": "VariableDeclaration", - "scope": 74, - "src": "543:32:1", + "scope": 343, + "src": "420:41:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" }, "typeName": { - "id": 39, + "id": 216, "name": "string", "nodeType": "ElementaryTypeName", - "src": "543:6:1", + "src": "420:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string storage pointer" @@ -667,14 +510,14 @@ "value": { "argumentTypes": null, "hexValue": "44415620546f6b656e", - "id": 40, + "id": 217, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "564:11:1", + "src": "450:11:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a3aeff9fd921030cd609843bb7ccb973fa7b1cea0b5811568ec0b96e473afb9f", @@ -685,23 +528,23 @@ "visibility": "public" }, { - "constant": false, - "id": 44, + "constant": true, + "id": 221, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 74, - "src": "579:28:1", + "scope": 343, + "src": "465:37:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" }, "typeName": { - "id": 42, + "id": 219, "name": "string", "nodeType": "ElementaryTypeName", - "src": "579:6:1", + "src": "465:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string storage pointer" @@ -710,14 +553,14 @@ "value": { "argumentTypes": null, "hexValue": "444156", - "id": 43, + "id": 220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "602:5:1", + "src": "497:5:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f12e4a671ff413835d47c9a78729402d619e1c0248a8cd54a43dfd5008905692", @@ -728,12 +571,12 @@ "visibility": "public" }, { - "constant": false, - "id": 47, + "constant": true, + "id": 224, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 74, - "src": "611:26:1", + "scope": 343, + "src": "506:35:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -741,10 +584,10 @@ "typeString": "uint8" }, "typeName": { - "id": 45, + "id": 222, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "611:5:1", + "src": "506:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -753,14 +596,14 @@ "value": { "argumentTypes": null, "hexValue": "3138", - "id": 46, + "id": 223, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "635:2:1", + "src": "539:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -771,207 +614,194 @@ "visibility": "public" }, { - "body": { - "id": 72, - "nodeType": "Block", - "src": "792:210:1", - "statements": [ - { - "assignments": [ - 51 - ], - "declarations": [ - { - "constant": false, - "id": 51, - "name": "initialSupply", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "798:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 50, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "798:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 60, - "initialValue": { + "constant": true, + "id": 234, + "name": "INITIAL_SUPPLY", + "nodeType": "VariableDeclaration", + "scope": 343, + "src": "545:76:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 225, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "586:7:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1000000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 59, + "id": 231, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "hexValue": "31303030303030", - "id": 52, + "hexValue": "3130", + "id": 227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "822:7:1", + "src": "597:2:1", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" }, - "value": "1000000" + "value": "10" }, "nodeType": "BinaryOperation", - "operator": "*", + "operator": "**", "rightExpression": { "argumentTypes": null, - "components": [ + "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 57, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 53, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "833:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 55, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 47 - ], - "referencedDeclaration": 47, - "src": "847:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 54, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 56, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "833:23:1", + "id": 229, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "611:8:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } } ], - "id": 58, + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "603:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 230, "isConstant": false, - "isInlineArray": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "832:25:1", + "names": [], + "nodeType": "FunctionCall", + "src": "603:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "822:35:1", + "src": "597:23:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "798:59:1" - }, + } + ], + "id": 232, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "596:25:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "586:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 248, + "nodeType": "Block", + "src": "840:83:1", + "statements": [ { "expression": { "argumentTypes": null, - "id": 63, + "id": 239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 61, + "id": 237, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 746, - "src": "927:12:1", + "referencedDeclaration": 815, + "src": "846:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -981,31 +811,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 62, - "name": "initialSupply", + "id": 238, + "name": "INITIAL_SUPPLY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 51, - "src": "942:13:1", + "referencedDeclaration": 234, + "src": "861:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "927:28:1", + "src": "846:29:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 64, + "id": 240, "nodeType": "ExpressionStatement", - "src": "927:28:1" + "src": "846:29:1" }, { "expression": { "argumentTypes": null, - "id": 70, + "id": 246, "isConstant": false, "isLValue": false, "isPure": false, @@ -1014,34 +844,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 65, + "id": 241, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "961:8:1", + "referencedDeclaration": 813, + "src": "881:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 68, + "id": 244, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 66, + "id": 242, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "970:3:1", + "referencedDeclaration": 1230, + "src": "890:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 67, + "id": 243, "isConstant": false, "isLValue": false, "isPure": false, @@ -1049,7 +879,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "970:10:1", + "src": "890:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1060,7 +890,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "961:20:1", + "src": "881:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1070,30 +900,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 69, - "name": "initialSupply", + "id": 245, + "name": "INITIAL_SUPPLY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 51, - "src": "984:13:1", + "referencedDeclaration": 234, + "src": "904:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "961:36:1", + "src": "881:37:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 71, + "id": 247, "nodeType": "ExpressionStatement", - "src": "961:36:1" + "src": "881:37:1" } ] }, - "id": 73, + "documentation": "@notice DAVToken constructor\nRuns once on initial contract creation. Sets total supply and balances.", + "id": 249, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1101,693 +932,2980 @@ "name": "DAVToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 48, + "id": 235, "nodeType": "ParameterList", "parameters": [], - "src": "782:2:1" + "src": "830:2:1" }, "payable": false, "returnParameters": { - "id": 49, + "id": 236, "nodeType": "ParameterList", "parameters": [], - "src": "792:0:1" + "src": "840:0:1" }, - "scope": 74, - "src": "765:237:1", + "scope": 343, + "src": "813:110:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" - } - ], - "scope": 75, - "src": "317:688:1" - } - ], - "src": "0:1006:1" - }, - "legacyAST": { - "absolutePath": "/Users/tal/Dropbox/mysite/DAV/contracts/contracts/DAVToken.sol", - "exportedSymbols": { - "DAVToken": [ - 74 - ] - }, - "id": 75, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 26, - "literals": [ - "solidity", - "^", - "0.4", - ".18" - ], - "nodeType": "PragmaDirective", - "src": "0:24:1" - }, - { - "absolutePath": "/Users/tal/Dropbox/mysite/DAV/contracts/contracts/interfaces/IDAVToken.sol", - "file": "./interfaces/IDAVToken.sol", - "id": 27, - "nodeType": "ImportDirective", - "scope": 75, - "sourceUnit": 248, - "src": "26:36:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", - "id": 28, - "nodeType": "ImportDirective", - "scope": 75, - "sourceUnit": 1053, - "src": "63:67:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/BurnableToken.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/BurnableToken.sol", - "id": 29, - "nodeType": "ImportDirective", - "scope": 75, - "sourceUnit": 883, - "src": "131:67:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/PausableToken.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/PausableToken.sol", - "id": 30, - "nodeType": "ImportDirective", - "scope": 75, - "sourceUnit": 1155, - "src": "199:67:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": [], - "baseName": { - "contractScope": null, - "id": 31, - "name": "IDAVToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 247, - "src": "338:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDAVToken_$247", - "typeString": "contract IDAVToken" - } - }, - "id": 32, - "nodeType": "InheritanceSpecifier", - "src": "338:9:1" - }, - { - "arguments": [], - "baseName": { - "contractScope": null, - "id": 33, - "name": "MintableToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1052, - "src": "349:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MintableToken_$1052", - "typeString": "contract MintableToken" - } - }, - "id": 34, - "nodeType": "InheritanceSpecifier", - "src": "349:13:1" }, { - "arguments": [], - "baseName": { - "contractScope": null, - "id": 35, - "name": "BurnableToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 882, - "src": "364:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BurnableToken_$882", - "typeString": "contract BurnableToken" - } - }, - "id": 36, - "nodeType": "InheritanceSpecifier", - "src": "364:13:1" - }, - { - "arguments": [], - "baseName": { - "contractScope": null, - "id": 37, - "name": "PausableToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1154, - "src": "379:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PausableToken_$1154", - "typeString": "contract PausableToken" - } + "body": { + "id": 266, + "nodeType": "Block", + "src": "1163:45:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 262, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "1191:3:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 263, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 253, + "src": "1196:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 260, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1256, + "src": "1176:5:1", + "typeDescriptions": { + "typeIdentifier": "t_super$_DAVToken_$343", + "typeString": "contract super DAVToken" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 883, + "src": "1176:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1176:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 259, + "id": 265, + "nodeType": "Return", + "src": "1169:34:1" + } + ] + }, + "documentation": "@notice transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 267, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [], + "id": 256, + "modifierName": { + "argumentTypes": null, + "id": 255, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "1134:13:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1134:13:1" + } + ], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 254, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 251, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 267, + "src": "1098:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 250, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 253, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 267, + "src": "1111:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 252, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1111:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1097:29:1" + }, + "payable": false, + "returnParameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 258, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 267, + "src": "1157:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 257, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1157:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1156:6:1" + }, + "scope": 343, + "src": "1080:128:1", + "stateMutability": "nonpayable", + "superFunction": 883, + "visibility": "public" + }, + { + "body": { + "id": 287, + "nodeType": "Block", + "src": "1588:56:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 282, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "1620:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 283, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "1627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 284, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "1632: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": 280, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1256, + "src": "1601:5:1", + "typeDescriptions": { + "typeIdentifier": "t_super$_DAVToken_$343", + "typeString": "contract super DAVToken" + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1071, + "src": "1601: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": 285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1601:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 279, + "id": 286, + "nodeType": "Return", + "src": "1594:45:1" + } + ] + }, + "documentation": "@notice 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": 288, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [], + "id": 276, + "modifierName": { + "argumentTypes": null, + "id": 275, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "1559:13:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1559:13:1" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "1508:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1508:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 271, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "1523:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 270, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1523:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 273, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "1536:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 272, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1507:44:1" + }, + "payable": false, + "returnParameters": { + "id": 279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 278, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "1582:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1582:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1581:6:1" + }, + "scope": 343, + "src": "1486:158:1", + "stateMutability": "nonpayable", + "superFunction": 1071, + "visibility": "public" + }, + { + "body": { + "id": 305, + "nodeType": "Block", + "src": "2357:49:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 301, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 290, + "src": "2384:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 302, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "2394:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 299, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1256, + "src": "2370:5:1", + "typeDescriptions": { + "typeIdentifier": "t_super$_DAVToken_$343", + "typeString": "contract super DAVToken" + } + }, + "id": 300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 1099, + "src": "2370:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2370:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 298, + "id": 304, + "nodeType": "Return", + "src": "2363:38:1" + } + ] + }, + "documentation": "@notice 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": 306, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [], + "id": 295, + "modifierName": { + "argumentTypes": null, + "id": 294, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "2328:13:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2328:13:1" + } + ], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 290, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2287:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 289, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 292, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2305:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 291, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2286:34:1" + }, + "payable": false, + "returnParameters": { + "id": 298, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 297, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2351:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 296, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2351:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2350:6:1" + }, + "scope": 343, + "src": "2270:136:1", + "stateMutability": "nonpayable", + "superFunction": 1099, + "visibility": "public" + }, + { + "body": { + "id": 323, + "nodeType": "Block", + "src": "2975:63:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 319, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "3011:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 320, + "name": "_addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "3021:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 317, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1256, + "src": "2988:5:1", + "typeDescriptions": { + "typeIdentifier": "t_super$_DAVToken_$343", + "typeString": "contract super DAVToken" + } + }, + "id": 318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "increaseApproval", + "nodeType": "MemberAccess", + "referencedDeclaration": 1156, + "src": "2988:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2988:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 316, + "id": 322, + "nodeType": "Return", + "src": "2981:52:1" + } + ] + }, + "documentation": "@notice Increase the amount of tokens that an owner is 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": 324, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [], + "id": 313, + "modifierName": { + "argumentTypes": null, + "id": 312, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "2938:13:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2938:13:1" + } + ], + "name": "increaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 308, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 324, + "src": "2895:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 307, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2895:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 310, + "name": "_addedValue", + "nodeType": "VariableDeclaration", + "scope": 324, + "src": "2913:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 309, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2913:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2894:36:1" + }, + "payable": false, + "returnParameters": { + "id": 316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 315, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 324, + "src": "2961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 314, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2960:14:1" + }, + "scope": 343, + "src": "2869:169:1", + "stateMutability": "nonpayable", + "superFunction": 1156, + "visibility": "public" + }, + { + "body": { + "id": 341, + "nodeType": "Block", + "src": "3614:68:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 337, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "3650:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 338, + "name": "_subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 328, + "src": "3660:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 335, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1256, + "src": "3627:5:1", + "typeDescriptions": { + "typeIdentifier": "t_super$_DAVToken_$343", + "typeString": "contract super DAVToken" + } + }, + "id": 336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decreaseApproval", + "nodeType": "MemberAccess", + "referencedDeclaration": 1216, + "src": "3627:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3627:50:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 334, + "id": 340, + "nodeType": "Return", + "src": "3620:57:1" + } + ] + }, + "documentation": "@notice 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": 342, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [], + "id": 331, + "modifierName": { + "argumentTypes": null, + "id": 330, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "3577:13:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3577:13:1" + } + ], + "name": "decreaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 326, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 342, + "src": "3529:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3529:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 328, + "name": "_subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 342, + "src": "3547:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 327, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3547:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3528:41:1" + }, + "payable": false, + "returnParameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 333, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 342, + "src": "3600:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 332, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3600:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3599:14:1" + }, + "scope": 343, + "src": "3503:179:1", + "stateMutability": "nonpayable", + "superFunction": 1216, + "visibility": "public" + } + ], + "scope": 344, + "src": "233:3451:1" + } + ], + "src": "0:3685:1" + }, + "legacyAST": { + "absolutePath": "/contracts/contracts/DAVToken.sol", + "exportedSymbols": { + "DAVToken": [ + 343 + ] + }, + "id": 344, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 209, + "literals": [ + "solidity", + "^", + "0.4", + ".15" + ], + "nodeType": "PragmaDirective", + "src": "0:24:1" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "id": 210, + "nodeType": "ImportDirective", + "scope": 344, + "sourceUnit": 1218, + "src": "54:67:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/lifecycle/Pausable.sol", + "file": "zeppelin-solidity/contracts/lifecycle/Pausable.sol", + "id": 211, + "nodeType": "ImportDirective", + "scope": 344, + "sourceUnit": 647, + "src": "122:60:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": [], + "baseName": { + "contractScope": null, + "id": 212, + "name": "StandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1217, + "src": "254:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardToken_$1217", + "typeString": "contract StandardToken" + } + }, + "id": 213, + "nodeType": "InheritanceSpecifier", + "src": "254:13:1" + }, + { + "arguments": [], + "baseName": { + "contractScope": null, + "id": 214, + "name": "Pausable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 646, + "src": "269:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pausable_$646", + "typeString": "contract Pausable" + } + }, + "id": 215, + "nodeType": "InheritanceSpecifier", + "src": "269:8:1" + } + ], + "contractDependencies": [ + 646, + 800, + 896, + 939, + 971, + 1217 + ], + "contractKind": "contract", + "documentation": "@title DAV Token\n@dev ERC20 token", + "fullyImplemented": true, + "id": 343, + "linearizedBaseContracts": [ + 343, + 646, + 800, + 1217, + 896, + 939, + 971 + ], + "name": "DAVToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 218, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 343, + "src": "420:41:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + }, + "typeName": { + "id": 216, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "420:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string storage pointer" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "44415620546f6b656e", + "id": 217, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "450:11:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a3aeff9fd921030cd609843bb7ccb973fa7b1cea0b5811568ec0b96e473afb9f", + "typeString": "literal_string \"DAV Token\"" + }, + "value": "DAV Token" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 221, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 343, + "src": "465:37:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + }, + "typeName": { + "id": 219, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "465:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string storage pointer" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "444156", + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "497:5:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f12e4a671ff413835d47c9a78729402d619e1c0248a8cd54a43dfd5008905692", + "typeString": "literal_string \"DAV\"" + }, + "value": "DAV" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 224, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 343, + "src": "506:35:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 222, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "539:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 234, + "name": "INITIAL_SUPPLY", + "nodeType": "VariableDeclaration", + "scope": 343, + "src": "545:76:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 225, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "586:7:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1000000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "597:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 229, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "611:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "603:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "603:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "597:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 232, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "596:25:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "586:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "id": 38, - "nodeType": "InheritanceSpecifier", - "src": "379:13:1" - } - ], - "contractDependencies": [ - 247, - 577, - 731, - 827, - 882, - 925, - 957, - 1052, - 1154, - 1400 - ], - "contractKind": "contract", - "documentation": "@title DAV Token\n@dev ERC20 token", - "fullyImplemented": true, - "id": 74, - "linearizedBaseContracts": [ - 74, - 1154, - 577, - 882, - 1052, - 731, - 1400, - 827, - 247, - 925, - 957 - ], - "name": "DAVToken", - "nodeType": "ContractDefinition", - "nodes": [ + "visibility": "public" + }, { - "constant": false, - "id": 41, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 74, - "src": "543:32:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "body": { + "id": 248, + "nodeType": "Block", + "src": "840:83:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 237, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 815, + "src": "846:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 238, + "name": "INITIAL_SUPPLY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "861:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "846:29:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 240, + "nodeType": "ExpressionStatement", + "src": "846:29:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 241, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "881:8:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 244, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 242, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "890:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "890:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "881:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 245, + "name": "INITIAL_SUPPLY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "904:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "881:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 247, + "nodeType": "ExpressionStatement", + "src": "881:37:1" + } + ] }, - "typeName": { - "id": 39, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "543:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string storage pointer" + "documentation": "@notice DAVToken constructor\nRuns once on initial contract creation. Sets total supply and balances.", + "id": 249, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "DAVToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 235, + "nodeType": "ParameterList", + "parameters": [], + "src": "830:2:1" + }, + "payable": false, + "returnParameters": { + "id": 236, + "nodeType": "ParameterList", + "parameters": [], + "src": "840:0:1" + }, + "scope": 343, + "src": "813:110:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 266, + "nodeType": "Block", + "src": "1163:45:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 262, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "1191:3:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 263, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 253, + "src": "1196:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 260, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1256, + "src": "1176:5:1", + "typeDescriptions": { + "typeIdentifier": "t_super$_DAVToken_$343", + "typeString": "contract super DAVToken" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 883, + "src": "1176:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1176:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 259, + "id": 265, + "nodeType": "Return", + "src": "1169:34:1" + } + ] + }, + "documentation": "@notice transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 267, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [], + "id": 256, + "modifierName": { + "argumentTypes": null, + "id": 255, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "1134:13:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1134:13:1" } + ], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 254, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 251, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 267, + "src": "1098:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 250, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 253, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 267, + "src": "1111:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 252, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1111:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1097:29:1" }, - "value": { - "argumentTypes": null, - "hexValue": "44415620546f6b656e", - "id": 40, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "564:11:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3aeff9fd921030cd609843bb7ccb973fa7b1cea0b5811568ec0b96e473afb9f", - "typeString": "literal_string \"DAV Token\"" - }, - "value": "DAV Token" + "payable": false, + "returnParameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 258, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 267, + "src": "1157:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 257, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1157:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1156:6:1" }, + "scope": 343, + "src": "1080:128:1", + "stateMutability": "nonpayable", + "superFunction": 883, "visibility": "public" }, { - "constant": false, - "id": 44, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 74, - "src": "579:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "body": { + "id": 287, + "nodeType": "Block", + "src": "1588:56:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 282, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "1620:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 283, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "1627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 284, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "1632: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": 280, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1256, + "src": "1601:5:1", + "typeDescriptions": { + "typeIdentifier": "t_super$_DAVToken_$343", + "typeString": "contract super DAVToken" + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1071, + "src": "1601: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": 285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1601:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 279, + "id": 286, + "nodeType": "Return", + "src": "1594:45:1" + } + ] }, - "typeName": { - "id": 42, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "579:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string storage pointer" + "documentation": "@notice 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": 288, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [], + "id": 276, + "modifierName": { + "argumentTypes": null, + "id": 275, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "1559:13:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1559:13:1" } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 269, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "1508:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1508:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 271, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "1523:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 270, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1523:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 273, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "1536:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 272, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1507:44:1" }, - "value": { - "argumentTypes": null, - "hexValue": "444156", - "id": 43, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "602:5:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f12e4a671ff413835d47c9a78729402d619e1c0248a8cd54a43dfd5008905692", - "typeString": "literal_string \"DAV\"" - }, - "value": "DAV" + "payable": false, + "returnParameters": { + "id": 279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 278, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 288, + "src": "1582:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1582:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1581:6:1" }, + "scope": 343, + "src": "1486:158:1", + "stateMutability": "nonpayable", + "superFunction": 1071, "visibility": "public" }, { - "constant": false, - "id": 47, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 74, - "src": "611:26:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "body": { + "id": 305, + "nodeType": "Block", + "src": "2357:49:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 301, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 290, + "src": "2384:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 302, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "2394:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 299, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1256, + "src": "2370:5:1", + "typeDescriptions": { + "typeIdentifier": "t_super$_DAVToken_$343", + "typeString": "contract super DAVToken" + } + }, + "id": 300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 1099, + "src": "2370:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2370:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 298, + "id": 304, + "nodeType": "Return", + "src": "2363:38:1" + } + ] }, - "typeName": { - "id": 45, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "611:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "documentation": "@notice 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": 306, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [], + "id": 295, + "modifierName": { + "argumentTypes": null, + "id": 294, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "2328:13:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2328:13:1" } + ], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 290, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2287:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 289, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 292, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2305:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 291, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2286:34:1" + }, + "payable": false, + "returnParameters": { + "id": 298, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 297, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2351:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 296, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2351:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2350:6:1" }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 46, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "635:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, + "scope": 343, + "src": "2270:136:1", + "stateMutability": "nonpayable", + "superFunction": 1099, "visibility": "public" }, { "body": { - "id": 72, + "id": 323, "nodeType": "Block", - "src": "792:210:1", + "src": "2975:63:1", "statements": [ { - "assignments": [ - 51 - ], - "declarations": [ - { - "constant": false, - "id": 51, - "name": "initialSupply", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "798:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 319, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "3011:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "typeName": { - "id": 50, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "798:7:1", + { + "argumentTypes": null, + "id": 320, + "name": "_addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "3021:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 60, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 59, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 52, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "822:7:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ + } + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 57, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 53, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "833:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 55, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 47 - ], - "referencedDeclaration": 47, - "src": "847:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 54, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 56, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "833:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 58, + "expression": { + "argumentTypes": null, + "id": 317, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1256, + "src": "2988:5:1", + "typeDescriptions": { + "typeIdentifier": "t_super$_DAVToken_$343", + "typeString": "contract super DAVToken" + } + }, + "id": 318, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "832:25:1", + "memberName": "increaseApproval", + "nodeType": "MemberAccess", + "referencedDeclaration": 1156, + "src": "2988:22:1", "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": "822:35:1", + "id": 321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2988:45:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "798:59:1" + "functionReturnParameters": 316, + "id": 322, + "nodeType": "Return", + "src": "2981:52:1" + } + ] + }, + "documentation": "@notice Increase the amount of tokens that an owner is 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": 324, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [], + "id": 313, + "modifierName": { + "argumentTypes": null, + "id": 312, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "2938:13:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "2938:13:1" + } + ], + "name": "increaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 311, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "id": 63, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 61, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 746, - "src": "927:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 62, - "name": "initialSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51, - "src": "942:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "927:28:1", + "constant": false, + "id": 308, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 324, + "src": "2895:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 307, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2895:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 310, + "name": "_addedValue", + "nodeType": "VariableDeclaration", + "scope": 324, + "src": "2913:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 309, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2913:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 64, - "nodeType": "ExpressionStatement", - "src": "927:28:1" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "2894:36:1" + }, + "payable": false, + "returnParameters": { + "id": 316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 315, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 324, + "src": "2961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 314, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2960:14:1" + }, + "scope": 343, + "src": "2869:169:1", + "stateMutability": "nonpayable", + "superFunction": 1156, + "visibility": "public" + }, + { + "body": { + "id": 341, + "nodeType": "Block", + "src": "3614:68:1", + "statements": [ { "expression": { "argumentTypes": null, - "id": 70, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 65, - "name": "balances", + "id": 337, + "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "961:8:1", + "referencedDeclaration": 326, + "src": "3650:8:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 68, - "indexExpression": { + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 66, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "970:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 67, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "970:10:1", + "id": 338, + "name": "_subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 328, + "src": "3660:16:1", "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_address", "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 335, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1256, + "src": "3627:5:1", + "typeDescriptions": { + "typeIdentifier": "t_super$_DAVToken_$343", + "typeString": "contract super DAVToken" } }, + "id": 336, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "961:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 69, - "name": "initialSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51, - "src": "984:13:1", + "lValueRequested": false, + "memberName": "decreaseApproval", + "nodeType": "MemberAccess", + "referencedDeclaration": 1216, + "src": "3627:22:1", "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": "961:36:1", + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3627:50:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 71, - "nodeType": "ExpressionStatement", - "src": "961:36:1" + "functionReturnParameters": 334, + "id": 340, + "nodeType": "Return", + "src": "3620:57:1" } ] }, - "id": 73, + "documentation": "@notice 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": 342, "implemented": true, - "isConstructor": true, + "isConstructor": false, "isDeclaredConst": false, - "modifiers": [], - "name": "DAVToken", + "modifiers": [ + { + "arguments": [], + "id": 331, + "modifierName": { + "argumentTypes": null, + "id": 330, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "3577:13:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3577:13:1" + } + ], + "name": "decreaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 48, + "id": 329, "nodeType": "ParameterList", - "parameters": [], - "src": "782:2:1" + "parameters": [ + { + "constant": false, + "id": 326, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 342, + "src": "3529:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3529:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 328, + "name": "_subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 342, + "src": "3547:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 327, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3547:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3528:41:1" }, "payable": false, "returnParameters": { - "id": 49, + "id": 334, "nodeType": "ParameterList", - "parameters": [], - "src": "792:0:1" + "parameters": [ + { + "constant": false, + "id": 333, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 342, + "src": "3600:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 332, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3600:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3599:14:1" }, - "scope": 74, - "src": "765:237:1", + "scope": 343, + "src": "3503:179:1", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 1216, "visibility": "public" } ], - "scope": 75, - "src": "317:688:1" + "scope": 344, + "src": "233:3451:1" } ], - "src": "0:1006:1" + "src": "0:3685:1" }, "compiler": { "name": "solc", - "version": "0.4.19+commit.c4cbbb05.Emscripten.clang" + "version": "0.4.21+commit.dfe3193c.Emscripten.clang" + }, + "networks": { + "1522384426618": { + "events": {}, + "links": {}, + "address": "0xcfeb869f69431e42cdb54a4f4f105c19c080a601", + "transactionHash": "0x7066a5bb6416f0907ae0e81a9db13d21f51023354770af45c51d7085e97c61e0" + }, + "1522386448255": { + "events": {}, + "links": {}, + "address": "0xcfeb869f69431e42cdb54a4f4f105c19c080a601", + "transactionHash": "0x7066a5bb6416f0907ae0e81a9db13d21f51023354770af45c51d7085e97c61e0" + }, + "1522396860561": { + "events": {}, + "links": {}, + "address": "0xcfeb869f69431e42cdb54a4f4f105c19c080a601", + "transactionHash": "0x7066a5bb6416f0907ae0e81a9db13d21f51023354770af45c51d7085e97c61e0" + }, + "1522400781888": { + "events": {}, + "links": {}, + "address": "0xcfeb869f69431e42cdb54a4f4f105c19c080a601", + "transactionHash": "0x7066a5bb6416f0907ae0e81a9db13d21f51023354770af45c51d7085e97c61e0" + }, + "1522401188121": { + "events": {}, + "links": {}, + "address": "0xcfeb869f69431e42cdb54a4f4f105c19c080a601", + "transactionHash": "0x7066a5bb6416f0907ae0e81a9db13d21f51023354770af45c51d7085e97c61e0" + }, + "1522401217746": { + "events": {}, + "links": {}, + "address": "0xcfeb869f69431e42cdb54a4f4f105c19c080a601", + "transactionHash": "0x7066a5bb6416f0907ae0e81a9db13d21f51023354770af45c51d7085e97c61e0" + }, + "1522401305207": { + "events": {}, + "links": {}, + "address": "0xcfeb869f69431e42cdb54a4f4f105c19c080a601", + "transactionHash": "0x7066a5bb6416f0907ae0e81a9db13d21f51023354770af45c51d7085e97c61e0" + }, + "1522401342972": { + "events": {}, + "links": {}, + "address": "0xcfeb869f69431e42cdb54a4f4f105c19c080a601", + "transactionHash": "0x7066a5bb6416f0907ae0e81a9db13d21f51023354770af45c51d7085e97c61e0" + } }, - "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-03-22T11:25:14.907Z" + "updatedAt": "2018-03-30T09:15:51.002Z" } \ No newline at end of file diff --git a/contracts/Identity.json b/contracts/Identity.json new file mode 100644 index 0000000..6c0ec1a --- /dev/null +++ b/contracts/Identity.json @@ -0,0 +1,4475 @@ +{ + "contractName": "Identity", + "abi": [ + { + "inputs": [ + { + "name": "_davTokenContract", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": false, + "inputs": [ + { + "name": "_id", + "type": "address" + }, + { + "name": "_v", + "type": "uint8" + }, + { + "name": "_r", + "type": "bytes32" + }, + { + "name": "_s", + "type": "bytes32" + } + ], + "name": "register", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "registerSimple", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_id", + "type": "address" + } + ], + "name": "getBalance", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_id", + "type": "address" + }, + { + "name": "_wallet", + "type": "address" + } + ], + "name": "verifyOwnership", + "outputs": [ + { + "name": "verified", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_id", + "type": "address" + } + ], + "name": "isRegistered", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_id", + "type": "address" + } + ], + "name": "getIdentityWallet", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x6060604052341561000f57600080fd5b6040516020806109aa8339810160405280805190602001909190505080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061092e8061007c6000396000f300606060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063079573601461007d5780633c56e2ae146100ed5780635db3f9631461014c5780637b5bd74114610161578063c3c5a547146101da578063f8b2cb4f1461022b575b600080fd5b341561008857600080fd5b6100d3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610278565b604051808215151515815260200191505060405180910390f35b34156100f857600080fd5b61014a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050610312565b005b341561015757600080fd5b61015f6105a0565b005b341561016c57600080fd5b610198600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506106d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101e557600080fd5b610211600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610741565b604051808215151515815260200191505060405180910390f35b341561023657600080fd5b610262600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506107c5565b6040518082815260200191505060405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b6000806000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561039957600080fd5b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000007f444156204964656e7469747920526567697374726174696f6e00000000000000604051808266ffffffffffffff191666ffffffffffffff191681526019019150506040518091039020604051808363ffffffff191663ffffffff19168152601c01826000191660001916815260200192505050604051809103902090508473ffffffffffffffffffffffffffffffffffffffff16600182868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115156104c057600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161415156104eb57600080fd5b6020604051908101604052803373ffffffffffffffffffffffffffffffffffffffff168152506000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050505050505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561062657600080fd5b6020604051908101604052803373ffffffffffffffffffffffffffffffffffffffff168152506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082316000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156108e457600080fd5b5af115156108f157600080fd5b5050506040518051905090509190505600a165627a7a7230582033bdd5e0c16e72cc272e48191d2942ceab8efe2bf0e8574ea55dba9ef184640b0029", + "deployedBytecode": "0x606060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063079573601461007d5780633c56e2ae146100ed5780635db3f9631461014c5780637b5bd74114610161578063c3c5a547146101da578063f8b2cb4f1461022b575b600080fd5b341561008857600080fd5b6100d3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610278565b604051808215151515815260200191505060405180910390f35b34156100f857600080fd5b61014a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050610312565b005b341561015757600080fd5b61015f6105a0565b005b341561016c57600080fd5b610198600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506106d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101e557600080fd5b610211600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610741565b604051808215151515815260200191505060405180910390f35b341561023657600080fd5b610262600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506107c5565b6040518082815260200191505060405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b6000806000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561039957600080fd5b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000007f444156204964656e7469747920526567697374726174696f6e00000000000000604051808266ffffffffffffff191666ffffffffffffff191681526019019150506040518091039020604051808363ffffffff191663ffffffff19168152601c01826000191660001916815260200192505050604051809103902090508473ffffffffffffffffffffffffffffffffffffffff16600182868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115156104c057600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161415156104eb57600080fd5b6020604051908101604052803373ffffffffffffffffffffffffffffffffffffffff168152506000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050505050505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561062657600080fd5b6020604051908101604052803373ffffffffffffffffffffffffffffffffffffffff168152506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082316000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156108e457600080fd5b5af115156108f157600080fd5b5050506040518051905090509190505600a165627a7a7230582033bdd5e0c16e72cc272e48191d2942ceab8efe2bf0e8574ea55dba9ef184640b0029", + "sourceMap": "80:1927:2:-;;;559:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:17;618:5;;:25;;;;;;;;;;;;;;;;;;559:89;80:1927;;;;;;", + "deployedSourceMap": "80:1927:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1571:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;652:518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1174:261;;;;;;;;;;;;;;1895:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1757:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1439:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1571:142;1647:13;1701:7;1675:33;;:10;:15;1686:3;1675:15;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:33;;;1668:40;;1571:142;;;;:::o;652:518::-;860:20;816:3;790:10;:15;801:3;790:15;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:29;;;775:50;;;;;;;;893:25;930:24;920:35;;;;;;;;;;;;;;;;;;;;;;;;883:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:96;;1048:3;1009:42;;:35;1019:12;1033:2;1037;1041;1009:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;994:63;;;;;;;;1120:45;;;;;;;;;1148:10;1120:45;;;;;1102:10;:15;1113:3;1102:15;;;;;;;;;;;;;;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;652:518;;;;;:::o;1174:261::-;1306:3;1273:10;:22;1284:10;1273:22;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:36;;;1258:57;;;;;;;;1385:45;;;;;;;;;1413:10;1385:45;;;;;1360:10;:22;1371:10;1360:22;;;;;;;;;;;;;;;:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1174:261::o;1895:110::-;1956:7;1978:10;:15;1989:3;1978:15;;;;;;;;;;;;;;;:22;;;;;;;;;;;;1971:29;;1895:110;;;:::o;1757:109::-;1813:4;1858:3;1832:10;:15;1843:3;1832:15;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:29;;;;1825:36;;1757:109;;;:::o;1439:128::-;1493:15;1523:5;;;;;;;;;;;:15;;;1539:10;:15;1550:3;1539:15;;;;;;;;;;;;;;;:22;;;;;;;;;;;;1523:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1516:46;;1439:128;;;:::o", + "source": "pragma solidity ^0.4.15;\n\nimport './DAVToken.sol';\n\n\n/**\n * @title Identity\n */\ncontract Identity {\n\n struct DAVIdentity {\n address wallet;\n }\n\n mapping (address => DAVIdentity) private identities;\n\n DAVToken private token;\n\n // Prefix to added to messages signed by web3\n bytes28 private constant ETH_SIGNED_MESSAGE_PREFIX = '\\x19Ethereum Signed Message:\\n32';\n bytes25 private constant DAV_REGISTRATION_REQUEST = 'DAV Identity Registration';\n\n /**\n * @dev Constructor\n *\n * @param _davTokenContract address of the DAVToken contract\n */\n function Identity(DAVToken _davTokenContract) public {\n token = _davTokenContract;\n }\n\n function register(address _id, uint8 _v, bytes32 _r, bytes32 _s) public {\n // Make sure id isn't registered already\n require(\n identities[_id].wallet == 0x0\n );\n // Generate message hash\n bytes32 prefixedHash = keccak256(ETH_SIGNED_MESSAGE_PREFIX, keccak256(DAV_REGISTRATION_REQUEST));\n // Verify message signature\n require(\n ecrecover(prefixedHash, _v, _r, _s) == _id\n );\n\n // Register in identities mapping\n identities[_id] = DAVIdentity({\n wallet: msg.sender\n });\n }\n\n function registerSimple() public {\n // Make sure id isn't registered already\n require(\n identities[msg.sender].wallet == 0x0\n );\n\n // Register in identities mapping\n identities[msg.sender] = DAVIdentity({\n wallet: msg.sender\n });\n }\n\n function getBalance(address _id) public view returns (uint256 balance) {\n return token.balanceOf(identities[_id].wallet);\n }\n\n function verifyOwnership(address _id, address _wallet) public view returns (bool verified) {\n return identities[_id].wallet == _wallet;\n }\n\n // Check identity registration status\n function isRegistered(address _id) public view returns (bool) {\n return identities[_id].wallet != 0x0;\n }\n\n // Get identity wallet\n function getIdentityWallet(address _id) public view returns (address) {\n return identities[_id].wallet;\n }\n}\n", + "sourcePath": "/contracts/contracts/Identity.sol", + "ast": { + "absolutePath": "/contracts/contracts/Identity.sol", + "exportedSymbols": { + "Identity": [ + 507 + ] + }, + "id": 508, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 345, + "literals": [ + "solidity", + "^", + "0.4", + ".15" + ], + "nodeType": "PragmaDirective", + "src": "0:24:2" + }, + { + "absolutePath": "/contracts/contracts/DAVToken.sol", + "file": "./DAVToken.sol", + "id": 346, + "nodeType": "ImportDirective", + "scope": 508, + "sourceUnit": 344, + "src": "26:24:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title Identity", + "fullyImplemented": true, + "id": 507, + "linearizedBaseContracts": [ + 507 + ], + "name": "Identity", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Identity.DAVIdentity", + "id": 349, + "members": [ + { + "constant": false, + "id": 348, + "name": "wallet", + "nodeType": "VariableDeclaration", + "scope": 349, + "src": "128:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 347, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "128:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "DAVIdentity", + "nodeType": "StructDefinition", + "scope": 507, + "src": "103:44:2", + "visibility": "public" + }, + { + "constant": false, + "id": 353, + "name": "identities", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "151:51:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + }, + "typeName": { + "id": 352, + "keyType": { + "id": 350, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "160:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "151:32:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + }, + "valueType": { + "contractScope": null, + "id": 351, + "name": "DAVIdentity", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 349, + "src": "171:11:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage_ptr", + "typeString": "struct Identity.DAVIdentity storage pointer" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 355, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "207:22:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + }, + "typeName": { + "contractScope": null, + "id": 354, + "name": "DAVToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 343, + "src": "207:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": true, + "id": 358, + "name": "ETH_SIGNED_MESSAGE_PREFIX", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "282:87:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes28", + "typeString": "bytes28" + }, + "typeName": { + "id": 356, + "name": "bytes28", + "nodeType": "ElementaryTypeName", + "src": "282:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes28", + "typeString": "bytes28" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "335:34:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", + "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + }, + "value": "\u0019Ethereum Signed Message:\n32" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 361, + "name": "DAV_REGISTRATION_REQUEST", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "373:79:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes25", + "typeString": "bytes25" + }, + "typeName": { + "id": 359, + "name": "bytes25", + "nodeType": "ElementaryTypeName", + "src": "373:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes25", + "typeString": "bytes25" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "444156204964656e7469747920526567697374726174696f6e", + "id": 360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "425:27:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3d75604157f80934d3965cbdf5676395ddaf5f92b8d7c90caf745f93d35d2066", + "typeString": "literal_string \"DAV Identity Registration\"" + }, + "value": "DAV Identity Registration" + }, + "visibility": "private" + }, + { + "body": { + "id": 370, + "nodeType": "Block", + "src": "612:36:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 366, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 355, + "src": "618:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 367, + "name": "_davTokenContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "626:17:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "src": "618:25:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "id": 369, + "nodeType": "ExpressionStatement", + "src": "618:25:2" + } + ] + }, + "documentation": "@dev Constructor\n * @param _davTokenContract address of the DAVToken contract", + "id": 371, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "Identity", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 363, + "name": "_davTokenContract", + "nodeType": "VariableDeclaration", + "scope": 371, + "src": "577:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + }, + "typeName": { + "contractScope": null, + "id": 362, + "name": "DAVToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 343, + "src": "577:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "576:28:2" + }, + "payable": false, + "returnParameters": { + "id": 365, + "nodeType": "ParameterList", + "parameters": [], + "src": "612:0:2" + }, + "scope": 507, + "src": "559:89:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 420, + "nodeType": "Block", + "src": "724:446:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 383, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "790:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 385, + "indexExpression": { + "argumentTypes": null, + "id": 384, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "801:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "790:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 386, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 348, + "src": "790:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830", + "id": 387, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "816:3:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "src": "790:29:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 382, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "775:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "775:50:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 390, + "nodeType": "ExpressionStatement", + "src": "775:50:2" + }, + { + "assignments": [ + 392 + ], + "declarations": [ + { + "constant": false, + "id": 392, + "name": "prefixedHash", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "860:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 391, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "860:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 399, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 394, + "name": "ETH_SIGNED_MESSAGE_PREFIX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 358, + "src": "893:25:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes28", + "typeString": "bytes28" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 396, + "name": "DAV_REGISTRATION_REQUEST", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 361, + "src": "930:24:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes25", + "typeString": "bytes25" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes25", + "typeString": "bytes25" + } + ], + "id": 395, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "920:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "920:35:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes28", + "typeString": "bytes28" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 393, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "883:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "883:73:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "860:96:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 402, + "name": "prefixedHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "1019:12:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 403, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 375, + "src": "1033:2:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 404, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 377, + "src": "1037:2:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 405, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "1041:2:2", + "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": 401, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "1009:9:2", + "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": 406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1009:35:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 407, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "1048:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1009:42:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 400, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "994:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "994:63:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 410, + "nodeType": "ExpressionStatement", + "src": "994:63:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 411, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1102:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 413, + "indexExpression": { + "argumentTypes": null, + "id": 412, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "1113:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1102:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 415, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "1148:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1148:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 414, + "name": "DAVIdentity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "1120:11:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_DAVIdentity_$349_storage_ptr_$", + "typeString": "type(struct Identity.DAVIdentity storage pointer)" + } + }, + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "wallet" + ], + "nodeType": "FunctionCall", + "src": "1120:45:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_memory", + "typeString": "struct Identity.DAVIdentity memory" + } + }, + "src": "1102:63:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 419, + "nodeType": "ExpressionStatement", + "src": "1102:63:2" + } + ] + }, + "documentation": null, + "id": 421, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "register", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 373, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "670:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "670:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 375, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "683:8:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 374, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "683:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 377, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "693:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 376, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "693:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 379, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "705:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 378, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "705:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "669:47:2" + }, + "payable": false, + "returnParameters": { + "id": 381, + "nodeType": "ParameterList", + "parameters": [], + "src": "724:0:2" + }, + "scope": 507, + "src": "652:518:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 444, + "nodeType": "Block", + "src": "1207:228:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 425, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1273:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 428, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 426, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "1284:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1284:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1273:22:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 429, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 348, + "src": "1273:29:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830", + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1306:3:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "src": "1273:36:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 424, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "1258:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1258:57:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 433, + "nodeType": "ExpressionStatement", + "src": "1258:57:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 434, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1360:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 437, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 435, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "1371:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1371:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1360:22:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 439, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "1413:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1413:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 438, + "name": "DAVIdentity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "1385:11:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_DAVIdentity_$349_storage_ptr_$", + "typeString": "type(struct Identity.DAVIdentity storage pointer)" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "wallet" + ], + "nodeType": "FunctionCall", + "src": "1385:45:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_memory", + "typeString": "struct Identity.DAVIdentity memory" + } + }, + "src": "1360:70:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 443, + "nodeType": "ExpressionStatement", + "src": "1360:70:2" + } + ] + }, + "documentation": null, + "id": 445, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "registerSimple", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 422, + "nodeType": "ParameterList", + "parameters": [], + "src": "1197:2:2" + }, + "payable": false, + "returnParameters": { + "id": 423, + "nodeType": "ParameterList", + "parameters": [], + "src": "1207:0:2" + }, + "scope": 507, + "src": "1174:261:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 460, + "nodeType": "Block", + "src": "1510:57:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 454, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1539:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 456, + "indexExpression": { + "argumentTypes": null, + "id": 455, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 447, + "src": "1550:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1539:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 457, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 348, + "src": "1539:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 452, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 355, + "src": "1523:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 895, + "src": "1523:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1523:39:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 451, + "id": 459, + "nodeType": "Return", + "src": "1516:46:2" + } + ] + }, + "documentation": null, + "id": 461, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 447, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 461, + "src": "1459:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1459:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1458:13:2" + }, + "payable": false, + "returnParameters": { + "id": 451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 450, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 461, + "src": "1493:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 449, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1493:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1492:17:2" + }, + "scope": 507, + "src": "1439:128:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 477, + "nodeType": "Block", + "src": "1662:51:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 470, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1675:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 472, + "indexExpression": { + "argumentTypes": null, + "id": 471, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 463, + "src": "1686:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1675:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 473, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 348, + "src": "1675:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 474, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 465, + "src": "1701:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1675:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 469, + "id": 476, + "nodeType": "Return", + "src": "1668:40:2" + } + ] + }, + "documentation": null, + "id": 478, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "verifyOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 463, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 478, + "src": "1596:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1596:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 465, + "name": "_wallet", + "nodeType": "VariableDeclaration", + "scope": 478, + "src": "1609:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1609:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1595:30:2" + }, + "payable": false, + "returnParameters": { + "id": 469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 468, + "name": "verified", + "nodeType": "VariableDeclaration", + "scope": 478, + "src": "1647:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 467, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1647:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1646:15:2" + }, + "scope": 507, + "src": "1571:142:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 492, + "nodeType": "Block", + "src": "1819:47:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 485, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1832:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 487, + "indexExpression": { + "argumentTypes": null, + "id": 486, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "1843:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1832:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 488, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 348, + "src": "1832:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830", + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1858:3:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "src": "1832:29:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 484, + "id": 491, + "nodeType": "Return", + "src": "1825:36:2" + } + ] + }, + "documentation": null, + "id": 493, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isRegistered", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 480, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 493, + "src": "1779:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1779:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1778:13:2" + }, + "payable": false, + "returnParameters": { + "id": 484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 483, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 493, + "src": "1813:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 482, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1813:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1812:6:2" + }, + "scope": 507, + "src": "1757:109:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 505, + "nodeType": "Block", + "src": "1965:40:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 500, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1978:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 502, + "indexExpression": { + "argumentTypes": null, + "id": 501, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "1989:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1978:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 503, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 348, + "src": "1978:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 499, + "id": 504, + "nodeType": "Return", + "src": "1971:29:2" + } + ] + }, + "documentation": null, + "id": 506, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getIdentityWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 495, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 506, + "src": "1922:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 494, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1922:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1921:13:2" + }, + "payable": false, + "returnParameters": { + "id": 499, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 498, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 506, + "src": "1956:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1956:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1955:9:2" + }, + "scope": 507, + "src": "1895:110:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 508, + "src": "80:1927:2" + } + ], + "src": "0:2008:2" + }, + "legacyAST": { + "absolutePath": "/contracts/contracts/Identity.sol", + "exportedSymbols": { + "Identity": [ + 507 + ] + }, + "id": 508, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 345, + "literals": [ + "solidity", + "^", + "0.4", + ".15" + ], + "nodeType": "PragmaDirective", + "src": "0:24:2" + }, + { + "absolutePath": "/contracts/contracts/DAVToken.sol", + "file": "./DAVToken.sol", + "id": 346, + "nodeType": "ImportDirective", + "scope": 508, + "sourceUnit": 344, + "src": "26:24:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title Identity", + "fullyImplemented": true, + "id": 507, + "linearizedBaseContracts": [ + 507 + ], + "name": "Identity", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Identity.DAVIdentity", + "id": 349, + "members": [ + { + "constant": false, + "id": 348, + "name": "wallet", + "nodeType": "VariableDeclaration", + "scope": 349, + "src": "128:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 347, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "128:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "DAVIdentity", + "nodeType": "StructDefinition", + "scope": 507, + "src": "103:44:2", + "visibility": "public" + }, + { + "constant": false, + "id": 353, + "name": "identities", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "151:51:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + }, + "typeName": { + "id": 352, + "keyType": { + "id": 350, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "160:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "151:32:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + }, + "valueType": { + "contractScope": null, + "id": 351, + "name": "DAVIdentity", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 349, + "src": "171:11:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage_ptr", + "typeString": "struct Identity.DAVIdentity storage pointer" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 355, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "207:22:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + }, + "typeName": { + "contractScope": null, + "id": 354, + "name": "DAVToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 343, + "src": "207:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": true, + "id": 358, + "name": "ETH_SIGNED_MESSAGE_PREFIX", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "282:87:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes28", + "typeString": "bytes28" + }, + "typeName": { + "id": 356, + "name": "bytes28", + "nodeType": "ElementaryTypeName", + "src": "282:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes28", + "typeString": "bytes28" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "335:34:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", + "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + }, + "value": "\u0019Ethereum Signed Message:\n32" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 361, + "name": "DAV_REGISTRATION_REQUEST", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "373:79:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes25", + "typeString": "bytes25" + }, + "typeName": { + "id": 359, + "name": "bytes25", + "nodeType": "ElementaryTypeName", + "src": "373:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes25", + "typeString": "bytes25" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "444156204964656e7469747920526567697374726174696f6e", + "id": 360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "425:27:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3d75604157f80934d3965cbdf5676395ddaf5f92b8d7c90caf745f93d35d2066", + "typeString": "literal_string \"DAV Identity Registration\"" + }, + "value": "DAV Identity Registration" + }, + "visibility": "private" + }, + { + "body": { + "id": 370, + "nodeType": "Block", + "src": "612:36:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 366, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 355, + "src": "618:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 367, + "name": "_davTokenContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "626:17:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "src": "618:25:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "id": 369, + "nodeType": "ExpressionStatement", + "src": "618:25:2" + } + ] + }, + "documentation": "@dev Constructor\n * @param _davTokenContract address of the DAVToken contract", + "id": 371, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "Identity", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 363, + "name": "_davTokenContract", + "nodeType": "VariableDeclaration", + "scope": 371, + "src": "577:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + }, + "typeName": { + "contractScope": null, + "id": 362, + "name": "DAVToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 343, + "src": "577:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "576:28:2" + }, + "payable": false, + "returnParameters": { + "id": 365, + "nodeType": "ParameterList", + "parameters": [], + "src": "612:0:2" + }, + "scope": 507, + "src": "559:89:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 420, + "nodeType": "Block", + "src": "724:446:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 383, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "790:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 385, + "indexExpression": { + "argumentTypes": null, + "id": 384, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "801:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "790:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 386, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 348, + "src": "790:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830", + "id": 387, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "816:3:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "src": "790:29:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 382, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "775:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "775:50:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 390, + "nodeType": "ExpressionStatement", + "src": "775:50:2" + }, + { + "assignments": [ + 392 + ], + "declarations": [ + { + "constant": false, + "id": 392, + "name": "prefixedHash", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "860:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 391, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "860:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 399, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 394, + "name": "ETH_SIGNED_MESSAGE_PREFIX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 358, + "src": "893:25:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes28", + "typeString": "bytes28" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 396, + "name": "DAV_REGISTRATION_REQUEST", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 361, + "src": "930:24:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes25", + "typeString": "bytes25" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes25", + "typeString": "bytes25" + } + ], + "id": 395, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "920:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "920:35:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes28", + "typeString": "bytes28" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 393, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "883:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "883:73:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "860:96:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 402, + "name": "prefixedHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "1019:12:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 403, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 375, + "src": "1033:2:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 404, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 377, + "src": "1037:2:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 405, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "1041:2:2", + "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": 401, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "1009:9:2", + "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": 406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1009:35:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 407, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "1048:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1009:42:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 400, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "994:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "994:63:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 410, + "nodeType": "ExpressionStatement", + "src": "994:63:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 411, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1102:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 413, + "indexExpression": { + "argumentTypes": null, + "id": 412, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "1113:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1102:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 415, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "1148:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1148:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 414, + "name": "DAVIdentity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "1120:11:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_DAVIdentity_$349_storage_ptr_$", + "typeString": "type(struct Identity.DAVIdentity storage pointer)" + } + }, + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "wallet" + ], + "nodeType": "FunctionCall", + "src": "1120:45:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_memory", + "typeString": "struct Identity.DAVIdentity memory" + } + }, + "src": "1102:63:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 419, + "nodeType": "ExpressionStatement", + "src": "1102:63:2" + } + ] + }, + "documentation": null, + "id": 421, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "register", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 373, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "670:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "670:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 375, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "683:8:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 374, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "683:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 377, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "693:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 376, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "693:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 379, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "705:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 378, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "705:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "669:47:2" + }, + "payable": false, + "returnParameters": { + "id": 381, + "nodeType": "ParameterList", + "parameters": [], + "src": "724:0:2" + }, + "scope": 507, + "src": "652:518:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 444, + "nodeType": "Block", + "src": "1207:228:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 425, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1273:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 428, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 426, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "1284:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1284:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1273:22:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 429, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 348, + "src": "1273:29:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830", + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1306:3:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "src": "1273:36:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 424, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1233, + "src": "1258:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1258:57:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 433, + "nodeType": "ExpressionStatement", + "src": "1258:57:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 434, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1360:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 437, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 435, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "1371:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1371:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1360:22:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 439, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "1413:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1413:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 438, + "name": "DAVIdentity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "1385:11:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_DAVIdentity_$349_storage_ptr_$", + "typeString": "type(struct Identity.DAVIdentity storage pointer)" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "wallet" + ], + "nodeType": "FunctionCall", + "src": "1385:45:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_memory", + "typeString": "struct Identity.DAVIdentity memory" + } + }, + "src": "1360:70:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 443, + "nodeType": "ExpressionStatement", + "src": "1360:70:2" + } + ] + }, + "documentation": null, + "id": 445, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "registerSimple", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 422, + "nodeType": "ParameterList", + "parameters": [], + "src": "1197:2:2" + }, + "payable": false, + "returnParameters": { + "id": 423, + "nodeType": "ParameterList", + "parameters": [], + "src": "1207:0:2" + }, + "scope": 507, + "src": "1174:261:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 460, + "nodeType": "Block", + "src": "1510:57:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 454, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1539:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 456, + "indexExpression": { + "argumentTypes": null, + "id": 455, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 447, + "src": "1550:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1539:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 457, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 348, + "src": "1539:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 452, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 355, + "src": "1523:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DAVToken_$343", + "typeString": "contract DAVToken" + } + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 895, + "src": "1523:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1523:39:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 451, + "id": 459, + "nodeType": "Return", + "src": "1516:46:2" + } + ] + }, + "documentation": null, + "id": 461, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 447, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 461, + "src": "1459:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1459:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1458:13:2" + }, + "payable": false, + "returnParameters": { + "id": 451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 450, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 461, + "src": "1493:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 449, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1493:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1492:17:2" + }, + "scope": 507, + "src": "1439:128:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 477, + "nodeType": "Block", + "src": "1662:51:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 470, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1675:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 472, + "indexExpression": { + "argumentTypes": null, + "id": 471, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 463, + "src": "1686:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1675:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 473, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 348, + "src": "1675:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 474, + "name": "_wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 465, + "src": "1701:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1675:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 469, + "id": 476, + "nodeType": "Return", + "src": "1668:40:2" + } + ] + }, + "documentation": null, + "id": 478, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "verifyOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 463, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 478, + "src": "1596:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1596:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 465, + "name": "_wallet", + "nodeType": "VariableDeclaration", + "scope": 478, + "src": "1609:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1609:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1595:30:2" + }, + "payable": false, + "returnParameters": { + "id": 469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 468, + "name": "verified", + "nodeType": "VariableDeclaration", + "scope": 478, + "src": "1647:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 467, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1647:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1646:15:2" + }, + "scope": 507, + "src": "1571:142:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 492, + "nodeType": "Block", + "src": "1819:47:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 485, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1832:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 487, + "indexExpression": { + "argumentTypes": null, + "id": 486, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "1843:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1832:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 488, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 348, + "src": "1832:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830", + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1858:3:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "src": "1832:29:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 484, + "id": 491, + "nodeType": "Return", + "src": "1825:36:2" + } + ] + }, + "documentation": null, + "id": 493, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isRegistered", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 480, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 493, + "src": "1779:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1779:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1778:13:2" + }, + "payable": false, + "returnParameters": { + "id": 484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 483, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 493, + "src": "1813:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 482, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1813:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1812:6:2" + }, + "scope": 507, + "src": "1757:109:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 505, + "nodeType": "Block", + "src": "1965:40:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 500, + "name": "identities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 353, + "src": "1978:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DAVIdentity_$349_storage_$", + "typeString": "mapping(address => struct Identity.DAVIdentity storage ref)" + } + }, + "id": 502, + "indexExpression": { + "argumentTypes": null, + "id": 501, + "name": "_id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "1989:3:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1978:15:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DAVIdentity_$349_storage", + "typeString": "struct Identity.DAVIdentity storage ref" + } + }, + "id": 503, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "wallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 348, + "src": "1978:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 499, + "id": 504, + "nodeType": "Return", + "src": "1971:29:2" + } + ] + }, + "documentation": null, + "id": 506, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getIdentityWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 495, + "name": "_id", + "nodeType": "VariableDeclaration", + "scope": 506, + "src": "1922:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 494, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1922:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1921:13:2" + }, + "payable": false, + "returnParameters": { + "id": 499, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 498, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 506, + "src": "1956:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1956:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1955:9:2" + }, + "scope": 507, + "src": "1895:110:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 508, + "src": "80:1927:2" + } + ], + "src": "0:2008:2" + }, + "compiler": { + "name": "solc", + "version": "0.4.21+commit.dfe3193c.Emscripten.clang" + }, + "networks": { + "1522384426618": { + "events": {}, + "links": {}, + "address": "0xc89ce4735882c9f0f0fe26686c53074e09b0d550", + "transactionHash": "0xa55dbbdb669e9d14ba05d3133b0cd1651c92c2e0b3596b4a096b1d3b15722e4e" + }, + "1522386448255": { + "events": {}, + "links": {}, + "address": "0xc89ce4735882c9f0f0fe26686c53074e09b0d550", + "transactionHash": "0xa55dbbdb669e9d14ba05d3133b0cd1651c92c2e0b3596b4a096b1d3b15722e4e" + }, + "1522396860561": { + "events": {}, + "links": {}, + "address": "0xc89ce4735882c9f0f0fe26686c53074e09b0d550", + "transactionHash": "0xa55dbbdb669e9d14ba05d3133b0cd1651c92c2e0b3596b4a096b1d3b15722e4e" + }, + "1522400781888": { + "events": {}, + "links": {}, + "address": "0xc89ce4735882c9f0f0fe26686c53074e09b0d550", + "transactionHash": "0xa55dbbdb669e9d14ba05d3133b0cd1651c92c2e0b3596b4a096b1d3b15722e4e" + }, + "1522401188121": { + "events": {}, + "links": {}, + "address": "0xc89ce4735882c9f0f0fe26686c53074e09b0d550", + "transactionHash": "0xa55dbbdb669e9d14ba05d3133b0cd1651c92c2e0b3596b4a096b1d3b15722e4e" + }, + "1522401217746": { + "events": {}, + "links": {}, + "address": "0xc89ce4735882c9f0f0fe26686c53074e09b0d550", + "transactionHash": "0xa55dbbdb669e9d14ba05d3133b0cd1651c92c2e0b3596b4a096b1d3b15722e4e" + }, + "1522401305207": { + "events": {}, + "links": {}, + "address": "0xc89ce4735882c9f0f0fe26686c53074e09b0d550", + "transactionHash": "0xa55dbbdb669e9d14ba05d3133b0cd1651c92c2e0b3596b4a096b1d3b15722e4e" + }, + "1522401342972": { + "events": {}, + "links": {}, + "address": "0xc89ce4735882c9f0f0fe26686c53074e09b0d550", + "transactionHash": "0xa55dbbdb669e9d14ba05d3133b0cd1651c92c2e0b3596b4a096b1d3b15722e4e" + } + }, + "schemaVersion": "2.0.0", + "updatedAt": "2018-03-30T09:15:51.011Z" +} \ No newline at end of file diff --git a/package.json b/package.json index 40581ee..b326be7 100644 --- a/package.json +++ b/package.json @@ -34,4 +34,4 @@ "prettier": "^1.17.0" }, "preferGlobal": true -} \ No newline at end of file +} diff --git a/src/index.js b/src/index.js old mode 100644 new mode 100755 index 0c3c407..80a5259 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,5 @@ +#!/usr/bin/env node + const program = require('commander'); const version = require('./lib/version'); const { EOL } = require('os'); diff --git a/src/lib/contracts.js b/src/lib/contracts.js index ea003b9..6a08b95 100644 --- a/src/lib/contracts.js +++ b/src/lib/contracts.js @@ -1,35 +1,47 @@ const chalk = require('chalk'); +const util = require('util'); -const deployContract = async (web3, contractDetails) => { +const deployContract = async (web3, contractDetails, args) => { const deployingAccount = (await web3.eth.getAccounts())[0]; // Create contract instance const contract = new web3.eth.Contract(contractDetails.abi, { - data: contractDetails.bytecode, + data: contractDetails.bytecode }); // Estimate gas const gasLimit = await web3.eth.estimateGas({ - data: contractDetails.bytecode, + data: contractDetails.bytecode }); // Deploy contract - return await contract.deploy().send({ + return await contract.deploy({ arguments: args }).send({ from: deployingAccount, - gasLimit: gasLimit, + gasLimit: gasLimit }); }; +const contractJsonDAVToken = require('../../contracts/DAVToken.json'); +const contractJsonIdentity = require('../../contracts/Identity.json'); +const contractJsonBasicMission = require('../../contracts/BasicMission.json'); + const deployContracts = async web3 => { - const DAVToken = await deployContract( - web3, - require('../../contracts/DAVToken.json'), - ); - console.log( - 'DAVToken contract: ' + chalk.green.bold(DAVToken.options.address), - ); + try { + const contractDAVToken = await deploySingleContract(web3, contractJsonDAVToken, null); + const contractIdentity = await deploySingleContract(web3, contractJsonIdentity, [contractDAVToken.options.address]); + const contractBasicMission = await deploySingleContract(web3, contractJsonBasicMission, [contractIdentity.options.address, contractDAVToken.options.address]); + } catch (err) { + console.error(util.inspect(err)); + } }; +async function deploySingleContract(web3, contractJson, args) { + console.log(`Deploying ${contractJson.contractName}...`); + const contract = await deployContract(web3, contractJson, args); + console.log(`${contractJson.contractName} contract: ${chalk.green.bold(contract.options.address)}`); + return contract; +} + module.exports = { - deployContracts, + deployContracts };