diff --git a/README.md b/README.md index 34316aa..b22fb85 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ # DCC -Decentralized Carbon Credits in an ERC20 by neetsec \ No newline at end of file +Decentralized Carbon Credits in an ERC20 by neetsec + +# In order to run tests: +- npm i -g ganache-cli +- edit last line at run-rpc.sh, fix to the correct path to your ganache-cli +- open shell and execute "./run-rpc.sh" +- open second shell, and execute "truffle tests diff --git a/build/contracts/Context.json b/build/contracts/Context.json index e973c78..de56a76 100644 --- a/build/contracts/Context.json +++ b/build/contracts/Context.json @@ -19,14 +19,14 @@ "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "exportedSymbols": { "Context": [ - 381 + 417 ] }, - "id": 382, + "id": 418, "nodeType": "SourceUnit", "nodes": [ { - "id": 356, + "id": 392, "literals": [ "solidity", "^", @@ -42,40 +42,40 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 381, + "id": 417, "linearizedBaseContracts": [ - 381 + 417 ], "name": "Context", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 359, + "id": 395, "nodeType": "Block", "src": "726:3:2", "statements": [] }, "documentation": null, - "id": 360, + "id": 396, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 357, + "id": 393, "nodeType": "ParameterList", "parameters": [], "src": "714:2:2" }, "returnParameters": { - "id": 358, + "id": 394, "nodeType": "ParameterList", "parameters": [], "src": "726:0:2" }, - "scope": 381, + "scope": 417, "src": "702:27:2", "stateMutability": "nonpayable", "superFunction": null, @@ -83,7 +83,7 @@ }, { "body": { - "id": 368, + "id": 404, "nodeType": "Block", "src": "850:34:2", "statements": [ @@ -92,18 +92,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 365, + "id": 401, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, + "referencedDeclaration": 1093, "src": "867:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 366, + "id": 402, "isConstant": false, "isLValue": false, "isPure": false, @@ -117,36 +117,36 @@ "typeString": "address payable" } }, - "functionReturnParameters": 364, - "id": 367, + "functionReturnParameters": 400, + "id": 403, "nodeType": "Return", "src": "860:17:2" } ] }, "documentation": null, - "id": 369, + "id": 405, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nodeType": "FunctionDefinition", "parameters": { - "id": 361, + "id": 397, "nodeType": "ParameterList", "parameters": [], "src": "807:2:2" }, "returnParameters": { - "id": 364, + "id": 400, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 363, + "id": 399, "name": "", "nodeType": "VariableDeclaration", - "scope": 369, + "scope": 405, "src": "833:15:2", "stateVariable": false, "storageLocation": "default", @@ -155,7 +155,7 @@ "typeString": "address payable" }, "typeName": { - "id": 362, + "id": 398, "name": "address", "nodeType": "ElementaryTypeName", "src": "833:15:2", @@ -171,7 +171,7 @@ ], "src": "832:17:2" }, - "scope": 381, + "scope": 417, "src": "788:96:2", "stateMutability": "view", "superFunction": null, @@ -179,25 +179,25 @@ }, { "body": { - "id": 379, + "id": 415, "nodeType": "Block", "src": "947:165:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 374, + "id": 410, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1071, + "referencedDeclaration": 1107, "src": "957:4:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$381", + "typeIdentifier": "t_contract$_Context_$417", "typeString": "contract Context" } }, - "id": 375, + "id": 411, "nodeType": "ExpressionStatement", "src": "957:4:2" }, @@ -206,18 +206,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 376, + "id": 412, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, + "referencedDeclaration": 1093, "src": "1097:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 377, + "id": 413, "isConstant": false, "isLValue": false, "isPure": false, @@ -231,36 +231,36 @@ "typeString": "bytes calldata" } }, - "functionReturnParameters": 373, - "id": 378, + "functionReturnParameters": 409, + "id": 414, "nodeType": "Return", "src": "1090:15:2" } ] }, "documentation": null, - "id": 380, + "id": 416, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nodeType": "FunctionDefinition", "parameters": { - "id": 370, + "id": 406, "nodeType": "ParameterList", "parameters": [], "src": "907:2:2" }, "returnParameters": { - "id": 373, + "id": 409, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 372, + "id": 408, "name": "", "nodeType": "VariableDeclaration", - "scope": 380, + "scope": 416, "src": "933:12:2", "stateVariable": false, "storageLocation": "memory", @@ -269,7 +269,7 @@ "typeString": "bytes" }, "typeName": { - "id": 371, + "id": 407, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "933:5:2", @@ -284,14 +284,14 @@ ], "src": "932:14:2" }, - "scope": 381, + "scope": 417, "src": "890:222:2", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 382, + "scope": 418, "src": "525:589:2" } ], @@ -301,14 +301,14 @@ "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "exportedSymbols": { "Context": [ - 381 + 417 ] }, - "id": 382, + "id": 418, "nodeType": "SourceUnit", "nodes": [ { - "id": 356, + "id": 392, "literals": [ "solidity", "^", @@ -324,40 +324,40 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 381, + "id": 417, "linearizedBaseContracts": [ - 381 + 417 ], "name": "Context", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 359, + "id": 395, "nodeType": "Block", "src": "726:3:2", "statements": [] }, "documentation": null, - "id": 360, + "id": 396, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 357, + "id": 393, "nodeType": "ParameterList", "parameters": [], "src": "714:2:2" }, "returnParameters": { - "id": 358, + "id": 394, "nodeType": "ParameterList", "parameters": [], "src": "726:0:2" }, - "scope": 381, + "scope": 417, "src": "702:27:2", "stateMutability": "nonpayable", "superFunction": null, @@ -365,7 +365,7 @@ }, { "body": { - "id": 368, + "id": 404, "nodeType": "Block", "src": "850:34:2", "statements": [ @@ -374,18 +374,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 365, + "id": 401, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, + "referencedDeclaration": 1093, "src": "867:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 366, + "id": 402, "isConstant": false, "isLValue": false, "isPure": false, @@ -399,36 +399,36 @@ "typeString": "address payable" } }, - "functionReturnParameters": 364, - "id": 367, + "functionReturnParameters": 400, + "id": 403, "nodeType": "Return", "src": "860:17:2" } ] }, "documentation": null, - "id": 369, + "id": 405, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nodeType": "FunctionDefinition", "parameters": { - "id": 361, + "id": 397, "nodeType": "ParameterList", "parameters": [], "src": "807:2:2" }, "returnParameters": { - "id": 364, + "id": 400, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 363, + "id": 399, "name": "", "nodeType": "VariableDeclaration", - "scope": 369, + "scope": 405, "src": "833:15:2", "stateVariable": false, "storageLocation": "default", @@ -437,7 +437,7 @@ "typeString": "address payable" }, "typeName": { - "id": 362, + "id": 398, "name": "address", "nodeType": "ElementaryTypeName", "src": "833:15:2", @@ -453,7 +453,7 @@ ], "src": "832:17:2" }, - "scope": 381, + "scope": 417, "src": "788:96:2", "stateMutability": "view", "superFunction": null, @@ -461,25 +461,25 @@ }, { "body": { - "id": 379, + "id": 415, "nodeType": "Block", "src": "947:165:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 374, + "id": 410, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1071, + "referencedDeclaration": 1107, "src": "957:4:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$381", + "typeIdentifier": "t_contract$_Context_$417", "typeString": "contract Context" } }, - "id": 375, + "id": 411, "nodeType": "ExpressionStatement", "src": "957:4:2" }, @@ -488,18 +488,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 376, + "id": 412, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, + "referencedDeclaration": 1093, "src": "1097:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 377, + "id": 413, "isConstant": false, "isLValue": false, "isPure": false, @@ -513,36 +513,36 @@ "typeString": "bytes calldata" } }, - "functionReturnParameters": 373, - "id": 378, + "functionReturnParameters": 409, + "id": 414, "nodeType": "Return", "src": "1090:15:2" } ] }, "documentation": null, - "id": 380, + "id": 416, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nodeType": "FunctionDefinition", "parameters": { - "id": 370, + "id": 406, "nodeType": "ParameterList", "parameters": [], "src": "907:2:2" }, "returnParameters": { - "id": 373, + "id": 409, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 372, + "id": 408, "name": "", "nodeType": "VariableDeclaration", - "scope": 380, + "scope": 416, "src": "933:12:2", "stateVariable": false, "storageLocation": "memory", @@ -551,7 +551,7 @@ "typeString": "bytes" }, "typeName": { - "id": 371, + "id": 407, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "933:5:2", @@ -566,14 +566,14 @@ ], "src": "932:14:2" }, - "scope": 381, + "scope": 417, "src": "890:222:2", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 382, + "scope": 418, "src": "525:589:2" } ], @@ -585,7 +585,7 @@ }, "networks": {}, "schemaVersion": "3.0.19", - "updatedAt": "2019-12-29T01:52:30.751Z", + "updatedAt": "2020-02-18T05:14:13.973Z", "devdoc": { "methods": {} }, diff --git a/build/contracts/DECAToken.json b/build/contracts/DECA.json similarity index 67% rename from build/contracts/DECAToken.json rename to build/contracts/DECA.json index 0785939..9e5bd38 100644 --- a/build/contracts/DECAToken.json +++ b/build/contracts/DECA.json @@ -1,5 +1,5 @@ { - "contractName": "DECAToken", + "contractName": "DECA", "abi": [ { "anonymous": false, @@ -431,6 +431,36 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getPause", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bool", + "name": "p", + "type": "bool" + } + ], + "name": "setPause", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [], @@ -467,24 +497,24 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"bonus1Ends\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"bonus2Ends\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"endDate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"getETH\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"preICOEnds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"transferAnyERC20Token\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/p1r0/dcc/contracts/DECA_ERC20_0.5.3.sol\":\"DECAToken\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/p1r0/dcc/contracts/DECA_ERC20_0.5.3.sol\":{\"keccak256\":\"0x983d3fd7bb6ff94fa16420ddf775c6daf65f78bb853e58b5899fcddf810136b1\",\"urls\":[\"bzz-raw://a35a43ea4796aa5c34758af0b49fec20c9d3f5e5deccc3dd83b87ce408e118c3\",\"dweb:/ipfs/QmQMeMbFEF4CwdZy2FQEyibYW7Vw1idqbepAVKtMdRoTuf\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}", - "bytecode": "0x608060405262093a804201600455621baf80420160055562375f0042016006556265838042016007556100366100f860201b60201c565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3610100565b600033905090565b611cb68061010f6000396000f3fe60806040526004361061012a5760003560e01c80638f32d59b116100ab578063dc39d06d1161006f578063dc39d06d146106fe578063dd62ed3e14610771578063e8294aad146107f6578063ef0b44db14610821578063f2fde38b1461084c578063fc5fc8ae1461089d5761012a565b80638f32d59b1461052e57806395d89b411461055d578063a457c2d7146105ed578063a9059cbb14610660578063c24a0f8b146106d35761012a565b8063313ce567116100f2578063313ce567146103b757806339509351146103e857806370a082311461045b578063715018a6146104c05780638da5cb5b146104d75761012a565b806306fdde03146101df578063095ea7b31461026f57806314f6c3be146102e257806318160ddd146102f957806323b872dd14610324575b60075442111561013957600080fd5b6000806000806028905060045442116101575760c8340293506101a6565b6004544211801561016a57506005544211155b1561017a576096340293506101a5565b6005544211801561018d57506006544211155b1561019d57607d340293506101a4565b6064340293505b5b5b6101b981856108c890919063ffffffff16565b92508391506101cf6101c9610912565b8461093c565b6101d9338361093c565b50505050005b3480156101eb57600080fd5b506101f4610af7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610234578082015181840152602081019050610219565b50505050905090810190601f1680156102615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027b57600080fd5b506102c86004803603604081101561029257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b30565b604051808215151515815260200191505060405180910390f35b3480156102ee57600080fd5b506102f7610b4e565b005b34801561030557600080fd5b5061030e610c3e565b6040518082815260200191505060405180910390f35b34801561033057600080fd5b5061039d6004803603606081101561034757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c48565b604051808215151515815260200191505060405180910390f35b3480156103c357600080fd5b506103cc610d21565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103f457600080fd5b506104416004803603604081101561040b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d26565b604051808215151515815260200191505060405180910390f35b34801561046757600080fd5b506104aa6004803603602081101561047e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dd9565b6040518082815260200191505060405180910390f35b3480156104cc57600080fd5b506104d5610e21565b005b3480156104e357600080fd5b506104ec610912565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053a57600080fd5b50610543610f5c565b604051808215151515815260200191505060405180910390f35b34801561056957600080fd5b50610572610fbb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105b2578082015181840152602081019050610597565b50505050905090810190601f1680156105df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f957600080fd5b506106466004803603604081101561061057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ff4565b604051808215151515815260200191505060405180910390f35b34801561066c57600080fd5b506106b96004803603604081101561068357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c1565b604051808215151515815260200191505060405180910390f35b3480156106df57600080fd5b506106e86110df565b6040518082815260200191505060405180910390f35b34801561070a57600080fd5b506107576004803603604081101561072157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110e5565b604051808215151515815260200191505060405180910390f35b34801561077d57600080fd5b506107e06004803603604081101561079457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611232565b6040518082815260200191505060405180910390f35b34801561080257600080fd5b5061080b6112b9565b6040518082815260200191505060405180910390f35b34801561082d57600080fd5b506108366112bf565b6040518082815260200191505060405180910390f35b34801561085857600080fd5b5061089b6004803603602081101561086f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c5565b005b3480156108a957600080fd5b506108b261134b565b6040518082815260200191505060405180910390f35b600061090a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611351565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6109f48160025461141790919063ffffffff16565b600281905550610a4b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6040518060400160405280601b81526020017f444563656e7472616c697a656420434172626f6e20746f6b656e73000000000081525081565b6000610b44610b3d61149f565b84846114a7565b6001905092915050565b610b56610f5c565b610bc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600754421015610bd757600080fd5b610bdf610912565b73ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610c3b573d6000803e3d6000fd5b50565b6000600254905090565b6000610c5584848461169e565b610d1684610c6161149f565b610d1185604051806060016040528060288152602001611bec60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cc761149f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119549092919063ffffffff16565b6114a7565b600190509392505050565b601281565b6000610dcf610d3361149f565b84610dca8560016000610d4461149f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141790919063ffffffff16565b6114a7565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e29610f5c565b610e9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f9f61149f565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600481526020017f444543410000000000000000000000000000000000000000000000000000000081525081565b60006110b761100161149f565b846110b285604051806060016040528060258152602001611c5d602591396001600061102b61149f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119549092919063ffffffff16565b6114a7565b6001905092915050565b60006110d56110ce61149f565b848461169e565b6001905092915050565b60075481565b60006110ef610f5c565b611161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611185610912565b846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156111ef57600080fd5b505af1158015611203573d6000803e3d6000fd5b505050506040513d602081101561121957600080fd5b8101908080519060200190929190505050905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60055481565b60065481565b6112cd610f5c565b61133f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61134881611a14565b50565b60045481565b600080831182906113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156113c25780820151818401526020810190506113a7565b50505050905090810190601f1680156113ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161140957fe5b049050809150509392505050565b600080828401905083811015611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561152d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611c396024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611ba46022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611724576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611c146025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611b5b6023913960400191505060405180910390fd5b61181581604051806060016040528060268152602001611bc6602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119549092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118a8816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156119c65780820151818401526020810190506119ab565b50505050905090810190601f1680156119f35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611b7e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820adfcf603f9aba4c2ca73f26280f990cef05c40d9f7c62ce04e31faec64de5bed64736f6c634300050c0032", - "deployedBytecode": "0x60806040526004361061012a5760003560e01c80638f32d59b116100ab578063dc39d06d1161006f578063dc39d06d146106fe578063dd62ed3e14610771578063e8294aad146107f6578063ef0b44db14610821578063f2fde38b1461084c578063fc5fc8ae1461089d5761012a565b80638f32d59b1461052e57806395d89b411461055d578063a457c2d7146105ed578063a9059cbb14610660578063c24a0f8b146106d35761012a565b8063313ce567116100f2578063313ce567146103b757806339509351146103e857806370a082311461045b578063715018a6146104c05780638da5cb5b146104d75761012a565b806306fdde03146101df578063095ea7b31461026f57806314f6c3be146102e257806318160ddd146102f957806323b872dd14610324575b60075442111561013957600080fd5b6000806000806028905060045442116101575760c8340293506101a6565b6004544211801561016a57506005544211155b1561017a576096340293506101a5565b6005544211801561018d57506006544211155b1561019d57607d340293506101a4565b6064340293505b5b5b6101b981856108c890919063ffffffff16565b92508391506101cf6101c9610912565b8461093c565b6101d9338361093c565b50505050005b3480156101eb57600080fd5b506101f4610af7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610234578082015181840152602081019050610219565b50505050905090810190601f1680156102615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027b57600080fd5b506102c86004803603604081101561029257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b30565b604051808215151515815260200191505060405180910390f35b3480156102ee57600080fd5b506102f7610b4e565b005b34801561030557600080fd5b5061030e610c3e565b6040518082815260200191505060405180910390f35b34801561033057600080fd5b5061039d6004803603606081101561034757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c48565b604051808215151515815260200191505060405180910390f35b3480156103c357600080fd5b506103cc610d21565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103f457600080fd5b506104416004803603604081101561040b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d26565b604051808215151515815260200191505060405180910390f35b34801561046757600080fd5b506104aa6004803603602081101561047e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dd9565b6040518082815260200191505060405180910390f35b3480156104cc57600080fd5b506104d5610e21565b005b3480156104e357600080fd5b506104ec610912565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053a57600080fd5b50610543610f5c565b604051808215151515815260200191505060405180910390f35b34801561056957600080fd5b50610572610fbb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105b2578082015181840152602081019050610597565b50505050905090810190601f1680156105df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f957600080fd5b506106466004803603604081101561061057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ff4565b604051808215151515815260200191505060405180910390f35b34801561066c57600080fd5b506106b96004803603604081101561068357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c1565b604051808215151515815260200191505060405180910390f35b3480156106df57600080fd5b506106e86110df565b6040518082815260200191505060405180910390f35b34801561070a57600080fd5b506107576004803603604081101561072157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110e5565b604051808215151515815260200191505060405180910390f35b34801561077d57600080fd5b506107e06004803603604081101561079457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611232565b6040518082815260200191505060405180910390f35b34801561080257600080fd5b5061080b6112b9565b6040518082815260200191505060405180910390f35b34801561082d57600080fd5b506108366112bf565b6040518082815260200191505060405180910390f35b34801561085857600080fd5b5061089b6004803603602081101561086f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c5565b005b3480156108a957600080fd5b506108b261134b565b6040518082815260200191505060405180910390f35b600061090a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611351565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6109f48160025461141790919063ffffffff16565b600281905550610a4b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6040518060400160405280601b81526020017f444563656e7472616c697a656420434172626f6e20746f6b656e73000000000081525081565b6000610b44610b3d61149f565b84846114a7565b6001905092915050565b610b56610f5c565b610bc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600754421015610bd757600080fd5b610bdf610912565b73ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610c3b573d6000803e3d6000fd5b50565b6000600254905090565b6000610c5584848461169e565b610d1684610c6161149f565b610d1185604051806060016040528060288152602001611bec60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cc761149f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119549092919063ffffffff16565b6114a7565b600190509392505050565b601281565b6000610dcf610d3361149f565b84610dca8560016000610d4461149f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141790919063ffffffff16565b6114a7565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e29610f5c565b610e9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f9f61149f565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600481526020017f444543410000000000000000000000000000000000000000000000000000000081525081565b60006110b761100161149f565b846110b285604051806060016040528060258152602001611c5d602591396001600061102b61149f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119549092919063ffffffff16565b6114a7565b6001905092915050565b60006110d56110ce61149f565b848461169e565b6001905092915050565b60075481565b60006110ef610f5c565b611161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611185610912565b846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156111ef57600080fd5b505af1158015611203573d6000803e3d6000fd5b505050506040513d602081101561121957600080fd5b8101908080519060200190929190505050905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60055481565b60065481565b6112cd610f5c565b61133f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61134881611a14565b50565b60045481565b600080831182906113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156113c25780820151818401526020810190506113a7565b50505050905090810190601f1680156113ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161140957fe5b049050809150509392505050565b600080828401905083811015611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561152d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611c396024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611ba46022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611724576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611c146025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611b5b6023913960400191505060405180910390fd5b61181581604051806060016040528060268152602001611bc6602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119549092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118a8816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156119c65780820151818401526020810190506119ab565b50505050905090810190601f1680156119f35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611b7e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820adfcf603f9aba4c2ca73f26280f990cef05c40d9f7c62ce04e31faec64de5bed64736f6c634300050c0032", - "sourceMap": "3031:2129:0:-;;;3331:7;3325:3;:13;3300:38;;3375:7;3369:3;:13;3344:38;;3419:7;3413:3;:13;3388:38;;3460:8;3454:3;:14;3432:36;;1094:12;:10;;;:12;;:::i;:::-;1085:6;;:21;;;;;;;;;;;;;;;;;;1154:6;;;;;;;;;;;1121:40;;1150:1;1121:40;;;;;;;;;;;;3031:2129;;788:96:2;833:15;867:10;860:17;;788:96;:::o;3031:2129:0:-;;;;;;;", - "deployedSourceMap": "3031:2129:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3720:7;;3713:3;:14;;3705:23;;;;;;3738:11;3759:12;3781:13;3804:10;3833:2;3825:10;;3925;;3918:3;:17;3914:323;;3972:3;3960:9;:15;3951:24;;3914:323;;;4002:10;;3996:3;:16;:37;;;;;4023:10;;4016:3;:17;;3996:37;3992:245;;;4070:3;4058:9;:15;4049:24;;3992:245;;;4100:10;;4094:3;:16;:37;;;;;4121:10;;4114:3;:17;;4094:37;4090:147;;;4168:3;4156:9;:15;4147:24;;4090:147;;;4223:3;4211:9;:15;4202:24;;4090:147;3992:245;3914:323;4257:17;4268:5;4257:6;:10;;:17;;;;:::i;:::-;4247:27;;4377:6;4366:17;;4435:23;4441:7;:5;:7::i;:::-;4450;4435:5;:23::i;:::-;4468:27;4474:10;4486:8;4468:5;:27::i;:::-;3667:835;;;;3031:2129;3150:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3150:59:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3150:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2500:149:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2500:149:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2500:149:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4554:189:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4554:189:0;;;:::i;:::-;;1559:89:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1559:89:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3107:300;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3107:300:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3107:300:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3215:35:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3215:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3802:207:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3802:207:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3802:207:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1706:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1706:108:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1706:108:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2037:137:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2037:137:0;;;:::i;:::-;;1244:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1244:85:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1603:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1603:92:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3106:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3106:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3106:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4496:258:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4496:258:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4496:258:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2017:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2017:155:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2017:155:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3432:36:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3432:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4974:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4974:184:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4974:184:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2230:132:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2230:132:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2230:132:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3344:38:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3344:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3388;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3388:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2323:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2323:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2323:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3300:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3300:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3073:130:3;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3150:46;;3073:130;;;;:::o;1244:85:0:-;1282:15;1316:6;;;;;;;;;;;1309:13;;1244:85;:::o;5962:302:4:-;6056:1;6037:21;;:7;:21;;;;6029:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6120:24;6137:6;6120:12;;:16;;:24;;;;:::i;:::-;6105:12;:39;;;;6175:30;6198:6;6175:9;:18;6185:7;6175:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;6154:9;:18;6164:7;6154:18;;;;;;;;;;;;;;;:51;;;;6241:7;6220:37;;6237:1;6220:37;;;6250:6;6220:37;;;;;;;;;;;;;;;;;;5962:302;;:::o;3150:59:0:-;;;;;;;;;;;;;;;;;;;:::o;2500:149:4:-;2566:4;2582:39;2591:12;:10;:12::i;:::-;2605:7;2614:6;2582:8;:39::i;:::-;2638:4;2631:11;;2500:149;;;;:::o;4554:189:0:-;1456:9;:7;:9::i;:::-;1448:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4614:7;;4607:3;:14;;4599:23;;;;;;4697:7;:5;:7::i;:::-;:16;;:39;4722:4;4714:21;;;4697:39;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4697:39:0;4554:189::o;1559:89:4:-;1603:7;1629:12;;1622:19;;1559:89;:::o;3107:300::-;3196:4;3212:36;3222:6;3230:9;3241:6;3212:9;:36::i;:::-;3258:121;3267:6;3275:12;:10;:12::i;:::-;3289:89;3327:6;3289:89;;;;;;;;;;;;;;;;;:11;:19;3301:6;3289:19;;;;;;;;;;;;;;;:33;3309:12;:10;:12::i;:::-;3289:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3258:8;:121::i;:::-;3396:4;3389:11;;3107:300;;;;;:::o;3215:35:0:-;3248:2;3215:35;:::o;3802:207:4:-;3882:4;3898:83;3907:12;:10;:12::i;:::-;3921:7;3930:50;3969:10;3930:11;:25;3942:12;:10;:12::i;:::-;3930:25;;;;;;;;;;;;;;;:34;3956:7;3930:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;3898:8;:83::i;:::-;3998:4;3991:11;;3802:207;;;;:::o;1706:108::-;1763:7;1789:9;:18;1799:7;1789:18;;;;;;;;;;;;;;;;1782:25;;1706:108;;;:::o;2037:137:0:-;1456:9;:7;:9::i;:::-;1448:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2135:1;2098:40;;2119:6;;;;;;;;;;;2098:40;;;;;;;;;;;;2165:1;2148:6;;:19;;;;;;;;;;;;;;;;;;2037:137::o;1603:92::-;1643:4;1682:6;;;;;;;;;;;1666:22;;:12;:10;:12::i;:::-;:22;;;1659:29;;1603:92;:::o;3106:38::-;;;;;;;;;;;;;;;;;;;:::o;4496:258:4:-;4581:4;4597:129;4606:12;:10;:12::i;:::-;4620:7;4629:96;4668:15;4629:96;;;;;;;;;;;;;;;;;:11;:25;4641:12;:10;:12::i;:::-;4629:25;;;;;;;;;;;;;;;:34;4655:7;4629:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;4597:8;:129::i;:::-;4743:4;4736:11;;4496:258;;;;:::o;2017:155::-;2086:4;2102:42;2112:12;:10;:12::i;:::-;2126:9;2137:6;2102:9;:42::i;:::-;2161:4;2154:11;;2017:155;;;;:::o;3432:36:0:-;;;;:::o;4974:184::-;5074:12;1456:9;:7;:9::i;:::-;1448:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5112:12;5105:29;;;5135:7;:5;:7::i;:::-;5144:6;5105:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5105:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5105:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5105:46:0;;;;;;;;;;;;;;;;5098:53;;4974:184;;;;:::o;2230:132:4:-;2302:7;2328:11;:18;2340:5;2328:18;;;;;;;;;;;;;;;:27;2347:7;2328:27;;;;;;;;;;;;;;;;2321:34;;2230:132;;;;:::o;3344:38:0:-;;;;:::o;3388:::-;;;;:::o;2323:115::-;1456:9;:7;:9::i;:::-;1448:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2403:28;2422:8;2403:18;:28::i;:::-;2323:115;:::o;3300:38::-;;;;:::o;3718:338:3:-;3804:7;3901:1;3897;:5;3904:12;3889:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3889:28:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;3927:17;;4048:1;4041:8;;;3718:338;;;;;:::o;834:176::-;892:7;911:9;927:1;923;:5;911:17;;951:1;946;:6;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;995:8;;;834:176;;;;:::o;788:96:2:-;833:15;867:10;860:17;;788:96;:::o;7351:332:4:-;7461:1;7444:19;;:5;:19;;;;7436:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7541:1;7522:21;;:7;:21;;;;7514:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7623:6;7593:11;:18;7605:5;7593:18;;;;;;;;;;;;;;;:27;7612:7;7593:27;;;;;;;;;;;;;;;:36;;;;7660:7;7644:32;;7653:5;7644:32;;;7669:6;7644:32;;;;;;;;;;;;;;;;;;7351:332;;;:::o;5228:464::-;5343:1;5325:20;;:6;:20;;;;5317:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5426:1;5405:23;;:9;:23;;;;5397:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499;5521:6;5499:71;;;;;;;;;;;;;;;;;:9;:17;5509:6;5499:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;5479:9;:17;5489:6;5479:17;;;;;;;;;;;;;;;:91;;;;5603:32;5628:6;5603:9;:20;5613:9;5603:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5580:9;:20;5590:9;5580:20;;;;;;;;;;;;;;;:55;;;;5667:9;5650:35;;5659:6;5650:35;;;5678:6;5650:35;;;;;;;;;;;;;;;;;;5228:464;;;:::o;1732:187:3:-;1818:7;1850:1;1845;:6;;1853:12;1837:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1837:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:9;1892:1;1888;:5;1876:17;;1911:1;1904:8;;;1732:187;;;;;:::o;2539:233:0:-;2640:1;2620:22;;:8;:22;;;;2612:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2729:8;2700:38;;2721:6;;;;;;;;;;;2700:38;;;;;;;;;;;;2757:8;2748:6;;:17;;;;;;;;;;;;;;;;;;2539:233;:::o", - "source": "pragma solidity 0.5.12;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\n// ----------------------------------------------------------------------------\n// 'DECA' DEcentralized CArbon tokens - ITDE (initial token distribution event)\n//\n// Deployed to : ------\n// Network : Ropsten\n// Symbol : DECA\n// Name : DEcentralized CArbon tokens\n// Total supply: Gazillion\n// Decimals : 18\n// \n// Designed and wrote by D. Perez Negron A.K.A p1r0\n// Test and Migrations to truffle by vitaliykuzmich\n// ----------------------------------------------------------------------------\n/**\n * @dev The reason using this instead of openzeppelin, because owner are not 'payable'\n */\ncontract Ownable is Context {\n address payable private _owner;\n using SafeMath for uint256;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor () internal {\n _owner = _msgSender();\n emit OwnershipTransferred(address(0), _owner);\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view returns (address payable) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(isOwner(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @dev Returns true if the caller is the current owner.\n */\n function isOwner() public view returns (bool) {\n return _msgSender() == _owner;\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public onlyOwner {\n emit OwnershipTransferred(_owner, address(0));\n _owner = address(0);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address payable newOwner) public onlyOwner {\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n */\n function _transferOwnership(address payable newOwner) internal {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n emit OwnershipTransferred(_owner, newOwner);\n _owner = newOwner;\n }\n}\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and assisted\n// token transfers\n// ----------------------------------------------------------------------------\ncontract DECAToken is ERC20, Ownable {\n using SafeMath for uint256;\n string constant public symbol = \"DECA\";\n string constant public name = \"DEcentralized CArbon tokens\";\n uint8 constant public decimals = 18;\n //for testing change weeks for hours...\n uint public preICOEnds = now + 1 weeks;\n uint public bonus1Ends = now + 3 weeks;\n uint public bonus2Ends = now + 6 weeks;\n uint public endDate = now + 11 weeks;\n // ------------------------------------------------------------------------\n // 100 DECA Tokens per 1 ETH\n // ------------------------------------------------------------------------\n function() external payable {\n require(now <= endDate);\n uint tokens;\n uint toOwner;\n uint toSender;\n uint divBy;\n\n divBy = 40; //2.5% extra printed to be 2% of the marketcap, please see README.md\n if (now <= preICOEnds) {\n tokens = msg.value * 200;\n } else if (now > preICOEnds && now <= bonus1Ends) {\n tokens = msg.value * 150;\n } else if (now > bonus1Ends && now <= bonus2Ends) {\n tokens = msg.value * 125;\n } else {\n tokens = msg.value * 100;\n }\n\n toOwner = tokens.div(divBy);\n //created 2.5% extra to the contract owner to approach 2% total marketcap\n toSender = tokens;\n //tokens that goes to the sender\n\n _mint(owner(), toOwner);\n _mint(msg.sender, toSender);\n }\n\n //Close down the ICO and claim the Ether.\n function getETH() public onlyOwner {\n require(now >= endDate);\n // transfer the ETH balance in the contract to the owner\n owner().transfer(address(this).balance);\n }\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address payable tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return IERC20(tokenAddress).transfer(owner(), tokens);\n }\n}\n", - "sourcePath": "/home/p1r0/dcc/contracts/DECA_ERC20_0.5.3.sol", + "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"bonus1Ends\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"bonus2Ends\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"endDate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"getETH\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getPause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"preICOEnds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"p\",\"type\":\"bool\"}],\"name\":\"setPause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"transferAnyERC20Token\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/p1r0/Dev/git/neetsec/dcc/contracts/DECA.sol\":\"DECA\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/p1r0/Dev/git/neetsec/dcc/contracts/DECA.sol\":{\"keccak256\":\"0x49b90fcbd2f4b8522a8b24d6be34dde3655572f608c159bc45ee28a51e19282b\",\"urls\":[\"bzz-raw://e745ab72fc640a805878dacfa54226034d8c6b8c8cbe05b11a3c24347c86a404\",\"dweb:/ipfs/QmYbZi78rZHiV5kGUEQJB7C8AALSyBeGpiPhKu4HRPuojz\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}", + "bytecode": "0x608060405262093a804201600455621baf80420160055562375f0042016006556265838042016007556000600860006101000a81548160ff02191690831515021790555061005161011360201b60201c565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361011b565b600033905090565b611e6b8061012a6000396000f3fe6080604052600436106101405760003560e01c80638f32d59b116100b6578063dc39d06d1161006f578063dc39d06d14610805578063dd62ed3e14610878578063e8294aad146108fd578063ef0b44db14610928578063f2fde38b14610953578063fc5fc8ae146109a457610140565b80638f32d59b146105f857806395d89b4114610627578063a457c2d7146106b7578063a9059cbb1461072a578063bedb86fb1461079d578063c24a0f8b146107da57610140565b8063313ce56711610108578063313ce5671461045257806339509351146104835780633e3ca9d3146104f657806370a0823114610525578063715018a61461058a5780638da5cb5b146105a157610140565b806306fdde031461027a578063095ea7b31461030a57806314f6c3be1461037d57806318160ddd1461039457806323b872dd146103bf575b600860009054906101000a900460ff16156101c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63726f776473616c65206f6e207061757365000000000000000000000000000081525060200191505060405180910390fd5b6007544211156101d257600080fd5b6000806000806028905060045442116101f15761012c34029350610241565b6004544211801561020457506005544211155b156102155761011334029350610240565b6005544211801561022857506006544211155b156102385760fa3402935061023f565b60e1340293505b5b5b61025481856109cf90919063ffffffff16565b925083915061026a610264610a19565b84610a43565b6102743383610a43565b50505050005b34801561028657600080fd5b5061028f610bfe565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102cf5780820151818401526020810190506102b4565b50505050905090810190601f1680156102fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031657600080fd5b506103636004803603604081101561032d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c37565b604051808215151515815260200191505060405180910390f35b34801561038957600080fd5b50610392610c55565b005b3480156103a057600080fd5b506103a9610d45565b6040518082815260200191505060405180910390f35b3480156103cb57600080fd5b50610438600480360360608110156103e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d4f565b604051808215151515815260200191505060405180910390f35b34801561045e57600080fd5b50610467610e28565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048f57600080fd5b506104dc600480360360408110156104a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e2d565b604051808215151515815260200191505060405180910390f35b34801561050257600080fd5b5061050b610ee0565b604051808215151515815260200191505060405180910390f35b34801561053157600080fd5b506105746004803603602081101561054857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef7565b6040518082815260200191505060405180910390f35b34801561059657600080fd5b5061059f610f3f565b005b3480156105ad57600080fd5b506105b6610a19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060457600080fd5b5061060d61107a565b604051808215151515815260200191505060405180910390f35b34801561063357600080fd5b5061063c6110d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561067c578082015181840152602081019050610661565b50505050905090810190601f1680156106a95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106c357600080fd5b50610710600480360360408110156106da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611112565b604051808215151515815260200191505060405180910390f35b34801561073657600080fd5b506107836004803603604081101561074d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111df565b604051808215151515815260200191505060405180910390f35b3480156107a957600080fd5b506107d8600480360360208110156107c057600080fd5b810190808035151590602001909291905050506111fd565b005b3480156107e657600080fd5b506107ef611294565b6040518082815260200191505060405180910390f35b34801561081157600080fd5b5061085e6004803603604081101561082857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061129a565b604051808215151515815260200191505060405180910390f35b34801561088457600080fd5b506108e76004803603604081101561089b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e7565b6040518082815260200191505060405180910390f35b34801561090957600080fd5b5061091261146e565b6040518082815260200191505060405180910390f35b34801561093457600080fd5b5061093d611474565b6040518082815260200191505060405180910390f35b34801561095f57600080fd5b506109a26004803603602081101561097657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061147a565b005b3480156109b057600080fd5b506109b9611500565b6040518082815260200191505060405180910390f35b6000610a1183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611506565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ae6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b610afb816002546115cc90919063ffffffff16565b600281905550610b52816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6040518060400160405280601b81526020017f444563656e7472616c697a656420434172626f6e20746f6b656e73000000000081525081565b6000610c4b610c44611654565b848461165c565b6001905092915050565b610c5d61107a565b610ccf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600754421015610cde57600080fd5b610ce6610a19565b73ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610d42573d6000803e3d6000fd5b50565b6000600254905090565b6000610d5c848484611853565b610e1d84610d68611654565b610e1885604051806060016040528060288152602001611da160289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dce611654565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b099092919063ffffffff16565b61165c565b600190509392505050565b601281565b6000610ed6610e3a611654565b84610ed18560016000610e4b611654565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b61165c565b6001905092915050565b6000600860009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f4761107a565b610fb9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110bd611654565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600481526020017f444543410000000000000000000000000000000000000000000000000000000081525081565b60006111d561111f611654565b846111d085604051806060016040528060258152602001611e126025913960016000611149611654565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b099092919063ffffffff16565b61165c565b6001905092915050565b60006111f36111ec611654565b8484611853565b6001905092915050565b61120561107a565b611277576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600860006101000a81548160ff02191690831515021790555050565b60075481565b60006112a461107a565b611316576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61133a610a19565b846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156113a457600080fd5b505af11580156113b8573d6000803e3d6000fd5b505050506040513d60208110156113ce57600080fd5b8101908080519060200190929190505050905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60055481565b60065481565b61148261107a565b6114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6114fd81611bc9565b50565b60045481565b600080831182906115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561157757808201518184015260208101905061155c565b50505050905090810190601f1680156115a45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816115be57fe5b049050809150509392505050565b60008082840190508381101561164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611dee6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611768576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611d596022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611dc96025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561195f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d106023913960400191505060405180910390fd5b6119ca81604051806060016040528060268152602001611d7b602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b099092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a5d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611bb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b7b578082015181840152602081019050611b60565b50505050905090810190601f168015611ba85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611d336026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158208434c2d30ea10dfc8af4774235b4b3c52e2124303326643d4bce304276783d3364736f6c634300050c0032", + "deployedBytecode": "0x6080604052600436106101405760003560e01c80638f32d59b116100b6578063dc39d06d1161006f578063dc39d06d14610805578063dd62ed3e14610878578063e8294aad146108fd578063ef0b44db14610928578063f2fde38b14610953578063fc5fc8ae146109a457610140565b80638f32d59b146105f857806395d89b4114610627578063a457c2d7146106b7578063a9059cbb1461072a578063bedb86fb1461079d578063c24a0f8b146107da57610140565b8063313ce56711610108578063313ce5671461045257806339509351146104835780633e3ca9d3146104f657806370a0823114610525578063715018a61461058a5780638da5cb5b146105a157610140565b806306fdde031461027a578063095ea7b31461030a57806314f6c3be1461037d57806318160ddd1461039457806323b872dd146103bf575b600860009054906101000a900460ff16156101c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63726f776473616c65206f6e207061757365000000000000000000000000000081525060200191505060405180910390fd5b6007544211156101d257600080fd5b6000806000806028905060045442116101f15761012c34029350610241565b6004544211801561020457506005544211155b156102155761011334029350610240565b6005544211801561022857506006544211155b156102385760fa3402935061023f565b60e1340293505b5b5b61025481856109cf90919063ffffffff16565b925083915061026a610264610a19565b84610a43565b6102743383610a43565b50505050005b34801561028657600080fd5b5061028f610bfe565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102cf5780820151818401526020810190506102b4565b50505050905090810190601f1680156102fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031657600080fd5b506103636004803603604081101561032d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c37565b604051808215151515815260200191505060405180910390f35b34801561038957600080fd5b50610392610c55565b005b3480156103a057600080fd5b506103a9610d45565b6040518082815260200191505060405180910390f35b3480156103cb57600080fd5b50610438600480360360608110156103e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d4f565b604051808215151515815260200191505060405180910390f35b34801561045e57600080fd5b50610467610e28565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048f57600080fd5b506104dc600480360360408110156104a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e2d565b604051808215151515815260200191505060405180910390f35b34801561050257600080fd5b5061050b610ee0565b604051808215151515815260200191505060405180910390f35b34801561053157600080fd5b506105746004803603602081101561054857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef7565b6040518082815260200191505060405180910390f35b34801561059657600080fd5b5061059f610f3f565b005b3480156105ad57600080fd5b506105b6610a19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060457600080fd5b5061060d61107a565b604051808215151515815260200191505060405180910390f35b34801561063357600080fd5b5061063c6110d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561067c578082015181840152602081019050610661565b50505050905090810190601f1680156106a95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106c357600080fd5b50610710600480360360408110156106da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611112565b604051808215151515815260200191505060405180910390f35b34801561073657600080fd5b506107836004803603604081101561074d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111df565b604051808215151515815260200191505060405180910390f35b3480156107a957600080fd5b506107d8600480360360208110156107c057600080fd5b810190808035151590602001909291905050506111fd565b005b3480156107e657600080fd5b506107ef611294565b6040518082815260200191505060405180910390f35b34801561081157600080fd5b5061085e6004803603604081101561082857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061129a565b604051808215151515815260200191505060405180910390f35b34801561088457600080fd5b506108e76004803603604081101561089b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e7565b6040518082815260200191505060405180910390f35b34801561090957600080fd5b5061091261146e565b6040518082815260200191505060405180910390f35b34801561093457600080fd5b5061093d611474565b6040518082815260200191505060405180910390f35b34801561095f57600080fd5b506109a26004803603602081101561097657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061147a565b005b3480156109b057600080fd5b506109b9611500565b6040518082815260200191505060405180910390f35b6000610a1183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611506565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ae6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b610afb816002546115cc90919063ffffffff16565b600281905550610b52816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6040518060400160405280601b81526020017f444563656e7472616c697a656420434172626f6e20746f6b656e73000000000081525081565b6000610c4b610c44611654565b848461165c565b6001905092915050565b610c5d61107a565b610ccf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600754421015610cde57600080fd5b610ce6610a19565b73ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610d42573d6000803e3d6000fd5b50565b6000600254905090565b6000610d5c848484611853565b610e1d84610d68611654565b610e1885604051806060016040528060288152602001611da160289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dce611654565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b099092919063ffffffff16565b61165c565b600190509392505050565b601281565b6000610ed6610e3a611654565b84610ed18560016000610e4b611654565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b61165c565b6001905092915050565b6000600860009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f4761107a565b610fb9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110bd611654565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600481526020017f444543410000000000000000000000000000000000000000000000000000000081525081565b60006111d561111f611654565b846111d085604051806060016040528060258152602001611e126025913960016000611149611654565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b099092919063ffffffff16565b61165c565b6001905092915050565b60006111f36111ec611654565b8484611853565b6001905092915050565b61120561107a565b611277576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600860006101000a81548160ff02191690831515021790555050565b60075481565b60006112a461107a565b611316576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61133a610a19565b846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156113a457600080fd5b505af11580156113b8573d6000803e3d6000fd5b505050506040513d60208110156113ce57600080fd5b8101908080519060200190929190505050905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60055481565b60065481565b61148261107a565b6114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6114fd81611bc9565b50565b60045481565b600080831182906115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561157757808201518184015260208101905061155c565b50505050905090810190601f1680156115a45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816115be57fe5b049050809150509392505050565b60008082840190508381101561164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611dee6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611768576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611d596022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611dc96025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561195f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d106023913960400191505060405180910390fd5b6119ca81604051806060016040528060268152602001611d7b602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b099092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a5d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611bb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b7b578082015181840152602081019050611b60565b50505050905090810190601f168015611ba85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611d336026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158208434c2d30ea10dfc8af4774235b4b3c52e2124303326643d4bce304276783d3364736f6c634300050c0032", + "sourceMap": "3088:2427:0:-;;;3383:7;3377:3;:13;3352:38;;3427:7;3421:3;:13;3396:38;;3471:7;3465:3;:13;3440:38;;3512:8;3506:3;:14;3484:36;;3548:5;3526:27;;;;;;;;;;;;;;;;;;;;1151:12;:10;;;:12;;:::i;:::-;1142:6;;:21;;;;;;;;;;;;;;;;;;1211:6;;;;;;;;;;;1178:40;;1207:1;1178:40;;;;;;;;;;;;3088:2427;;788:96:2;833:15;867:10;860:17;;788:96;:::o;3088:2427:0:-;;;;;;;", + "deployedSourceMap": "3088:2427:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3600:6;;;;;;;;;;;3599:7;3591:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4067:7;;4060:3;:14;;4052:23;;;;;;4085:11;4106:12;4128:13;4151:10;4180:2;4172:10;;4280;;4273:3;:17;4269:323;;4327:3;4315:9;:15;4306:24;;4269:323;;;4357:10;;4351:3;:16;:37;;;;;4378:10;;4371:3;:17;;4351:37;4347:245;;;4425:3;4413:9;:15;4404:24;;4347:245;;;4455:10;;4449:3;:16;:37;;;;;4476:10;;4469:3;:17;;4449:37;4445:147;;;4523:3;4511:9;:15;4502:24;;4445:147;;;4578:3;4566:9;:15;4557:24;;4445:147;4347:245;4269:323;4612:17;4623:5;4612:6;:10;;:17;;;;:::i;:::-;4602:27;;4732:6;4721:17;;4790:23;4796:7;:5;:7::i;:::-;4805;4790:5;:23::i;:::-;4823:27;4829:10;4841:8;4823:5;:27::i;:::-;3639:1;;;;3088:2427;3202:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3202:59:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3202:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2500:149:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2500:149:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2500:149:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4909:189:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4909:189:0;;;:::i;:::-;;1559:89:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1559:89:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3107:300;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3107:300:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3107:300:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3267:35:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3267:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3802:207:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3802:207:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3802:207:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3652:76:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3652:76:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1706:108:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1706:108:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1706:108:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2094:137:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2094:137:0;;;:::i;:::-;;1301:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1301:85:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1660:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1660:92:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3158:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3158:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3158:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4496:258:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4496:258:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4496:258:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2017:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2017:155:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2017:155:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3734:72:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3734:72:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3734:72:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3484:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3484:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5329:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5329:184:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5329:184:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2230:132:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2230:132:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2230:132:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3396:38:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3396:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3440;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3440:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2380:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2380:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3352:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3352:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3073:130:3;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3150:46;;3073:130;;;;:::o;1301:85:0:-;1339:15;1373:6;;;;;;;;;;;1366:13;;1301:85;:::o;5962:302:4:-;6056:1;6037:21;;:7;:21;;;;6029:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6120:24;6137:6;6120:12;;:16;;:24;;;;:::i;:::-;6105:12;:39;;;;6175:30;6198:6;6175:9;:18;6185:7;6175:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;6154:9;:18;6164:7;6154:18;;;;;;;;;;;;;;;:51;;;;6241:7;6220:37;;6237:1;6220:37;;;6250:6;6220:37;;;;;;;;;;;;;;;;;;5962:302;;:::o;3202:59:0:-;;;;;;;;;;;;;;;;;;;:::o;2500:149:4:-;2566:4;2582:39;2591:12;:10;:12::i;:::-;2605:7;2614:6;2582:8;:39::i;:::-;2638:4;2631:11;;2500:149;;;;:::o;4909:189:0:-;1513:9;:7;:9::i;:::-;1505:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4969:7;;4962:3;:14;;4954:23;;;;;;5052:7;:5;:7::i;:::-;:16;;:39;5077:4;5069:21;;;5052:39;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5052:39:0;4909:189::o;1559:89:4:-;1603:7;1629:12;;1622:19;;1559:89;:::o;3107:300::-;3196:4;3212:36;3222:6;3230:9;3241:6;3212:9;:36::i;:::-;3258:121;3267:6;3275:12;:10;:12::i;:::-;3289:89;3327:6;3289:89;;;;;;;;;;;;;;;;;:11;:19;3301:6;3289:19;;;;;;;;;;;;;;;:33;3309:12;:10;:12::i;:::-;3289:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3258:8;:121::i;:::-;3396:4;3389:11;;3107:300;;;;;:::o;3267:35:0:-;3300:2;3267:35;:::o;3802:207:4:-;3882:4;3898:83;3907:12;:10;:12::i;:::-;3921:7;3930:50;3969:10;3930:11;:25;3942:12;:10;:12::i;:::-;3930:25;;;;;;;;;;;;;;;:34;3956:7;3930:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;3898:8;:83::i;:::-;3998:4;3991:11;;3802:207;;;;:::o;3652:76:0:-;3693:4;3715:6;;;;;;;;;;;3708:13;;3652:76;:::o;1706:108:4:-;1763:7;1789:9;:18;1799:7;1789:18;;;;;;;;;;;;;;;;1782:25;;1706:108;;;:::o;2094:137:0:-;1513:9;:7;:9::i;:::-;1505:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2192:1;2155:40;;2176:6;;;;;;;;;;;2155:40;;;;;;;;;;;;2222:1;2205:6;;:19;;;;;;;;;;;;;;;;;;2094:137::o;1660:92::-;1700:4;1739:6;;;;;;;;;;;1723:22;;:12;:10;:12::i;:::-;:22;;;1716:29;;1660:92;:::o;3158:38::-;;;;;;;;;;;;;;;;;;;:::o;4496:258:4:-;4581:4;4597:129;4606:12;:10;:12::i;:::-;4620:7;4629:96;4668:15;4629:96;;;;;;;;;;;;;;;;;:11;:25;4641:12;:10;:12::i;:::-;4629:25;;;;;;;;;;;;;;;:34;4655:7;4629:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;4597:8;:129::i;:::-;4743:4;4736:11;;4496:258;;;;:::o;2017:155::-;2086:4;2102:42;2112:12;:10;:12::i;:::-;2126:9;2137:6;2102:9;:42::i;:::-;2161:4;2154:11;;2017:155;;;;:::o;3734:72:0:-;1513:9;:7;:9::i;:::-;1505:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3798:1;3789:6;;:10;;;;;;;;;;;;;;;;;;3734:72;:::o;3484:36::-;;;;:::o;5329:184::-;5429:12;1513:9;:7;:9::i;:::-;1505:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5467:12;5460:29;;;5490:7;:5;:7::i;:::-;5499:6;5460:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5460:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5460:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5460:46:0;;;;;;;;;;;;;;;;5453:53;;5329:184;;;;:::o;2230:132:4:-;2302:7;2328:11;:18;2340:5;2328:18;;;;;;;;;;;;;;;:27;2347:7;2328:27;;;;;;;;;;;;;;;;2321:34;;2230:132;;;;:::o;3396:38:0:-;;;;:::o;3440:::-;;;;:::o;2380:115::-;1513:9;:7;:9::i;:::-;1505:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2460:28;2479:8;2460:18;:28::i;:::-;2380:115;:::o;3352:38::-;;;;:::o;3718:338:3:-;3804:7;3901:1;3897;:5;3904:12;3889:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3889:28:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;3927:17;;4048:1;4041:8;;;3718:338;;;;;:::o;834:176::-;892:7;911:9;927:1;923;:5;911:17;;951:1;946;:6;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;995:8;;;834:176;;;;:::o;788:96:2:-;833:15;867:10;860:17;;788:96;:::o;7351:332:4:-;7461:1;7444:19;;:5;:19;;;;7436:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7541:1;7522:21;;:7;:21;;;;7514:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7623:6;7593:11;:18;7605:5;7593:18;;;;;;;;;;;;;;;:27;7612:7;7593:27;;;;;;;;;;;;;;;:36;;;;7660:7;7644:32;;7653:5;7644:32;;;7669:6;7644:32;;;;;;;;;;;;;;;;;;7351:332;;;:::o;5228:464::-;5343:1;5325:20;;:6;:20;;;;5317:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5426:1;5405:23;;:9;:23;;;;5397:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499;5521:6;5499:71;;;;;;;;;;;;;;;;;:9;:17;5509:6;5499:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;5479:9;:17;5489:6;5479:17;;;;;;;;;;;;;;;:91;;;;5603:32;5628:6;5603:9;:20;5613:9;5603:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5580:9;:20;5590:9;5580:20;;;;;;;;;;;;;;;:55;;;;5667:9;5650:35;;5659:6;5650:35;;;5678:6;5650:35;;;;;;;;;;;;;;;;;;5228:464;;;:::o;1732:187:3:-;1818:7;1850:1;1845;:6;;1853:12;1837:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1837:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:9;1892:1;1888;:5;1876:17;;1911:1;1904:8;;;1732:187;;;;;:::o;2596:233:0:-;2697:1;2677:22;;:8;:22;;;;2669:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2786:8;2757:38;;2778:6;;;;;;;;;;;2757:38;;;;;;;;;;;;2814:8;2805:6;;:17;;;;;;;;;;;;;;;;;;2596:233;:::o", + "source": "pragma solidity 0.5.12;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\n// ----------------------------------------------------------------------------\n// 'DECA' DEcentralized CArbon tokens - ITDE (initial token distribution event)\n//\n// Deployed to : ------\n// Network : Ropsten\n// Symbol : DECA\n// Name : DEcentralized CArbon tokens\n// Total supply: Gazillion\n// Decimals : 18\n// \n// Designed and wrote by D. Perez Negron A.K.A p1r0\n// Test and Migrations to truffle by vitaliykuzmich\n// ----------------------------------------------------------------------------\n/**\n * @dev The reason using this instead of openzeppelin, because owner are not 'payable'\n */\ncontract Ownable is Context {\n address payable private _owner;\n using SafeMath for uint256;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor () internal {\n _owner = _msgSender();\n emit OwnershipTransferred(address(0), _owner);\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view returns (address payable) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(isOwner(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @dev Returns true if the caller is the current owner.\n */\n function isOwner() public view returns (bool) {\n return _msgSender() == _owner;\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public onlyOwner {\n emit OwnershipTransferred(_owner, address(0));\n _owner = address(0);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address payable newOwner) public onlyOwner {\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n */\n function _transferOwnership(address payable newOwner) internal {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n emit OwnershipTransferred(_owner, newOwner);\n _owner = newOwner;\n }\n}\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and assisted\n// token transfers\n// ----------------------------------------------------------------------------\ncontract DECA is ERC20, Ownable {\n using SafeMath for uint256;\n string constant public symbol = \"DECA\";\n string constant public name = \"DEcentralized CArbon tokens\";\n uint8 constant public decimals = 18;\n //for testing change weeks for hours...\n uint public preICOEnds = now + 1 weeks;\n uint public bonus1Ends = now + 3 weeks;\n uint public bonus2Ends = now + 6 weeks;\n uint public endDate = now + 11 weeks;\n bool private _pause = false;\n\n modifier notPaused() {\n require(!_pause, \"crowdsale on pause\");\n _;\n }\n function getPause() view public returns (bool){\n return _pause;\n }\n\n function setPause(bool p) external onlyOwner {\n _pause = p;\n }\n // ------------------------------------------------------------------------\n // 100 DECA Tokens per 1 ETH\n // ------------------------------------------------------------------------\n function() notPaused external payable {\n require(now <= endDate);\n uint tokens;\n uint toOwner;\n uint toSender;\n uint divBy;\n\n divBy = 40;\n //2.5% extra printed to be 2% of the marketcap, please see README.md\n if (now <= preICOEnds) {\n tokens = msg.value * 300;\n } else if (now > preICOEnds && now <= bonus1Ends) {\n tokens = msg.value * 275;\n } else if (now > bonus1Ends && now <= bonus2Ends) {\n tokens = msg.value * 250;\n } else {\n tokens = msg.value * 225;\n }\n\n toOwner = tokens.div(divBy);\n //created 2.5% extra to the contract owner to approach 2% total marketcap\n toSender = tokens;\n //tokens that goes to the sender\n\n _mint(owner(), toOwner);\n _mint(msg.sender, toSender);\n }\n\n //Close down the ICO and claim the Ether.\n function getETH() public onlyOwner {\n require(now >= endDate);\n // transfer the ETH balance in the contract to the owner\n owner().transfer(address(this).balance);\n }\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address payable tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return IERC20(tokenAddress).transfer(owner(), tokens);\n }\n}\n", + "sourcePath": "/home/p1r0/Dev/git/neetsec/dcc/contracts/DECA.sol", "ast": { - "absolutePath": "/home/p1r0/dcc/contracts/DECA_ERC20_0.5.3.sol", + "absolutePath": "/home/p1r0/Dev/git/neetsec/dcc/contracts/DECA.sol", "exportedSymbols": { - "DECAToken": [ - 297 + "DECA": [ + 333 ], "Ownable": [ - 117 + 118 ] }, - "id": 298, + "id": 334, "nodeType": "SourceUnit", "nodes": [ { @@ -502,20 +532,31 @@ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "id": 2, "nodeType": "ImportDirective", - "scope": 298, - "sourceUnit": 974, + "scope": 334, + "sourceUnit": 1010, "src": "25:55:0", "symbolAliases": [], "unitAlias": "" }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 334, + "sourceUnit": 1079, + "src": "81:56:0", + "symbolAliases": [], + "unitAlias": "" + }, { "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "file": "@openzeppelin/contracts/math/SafeMath.sol", - "id": 3, + "id": 4, "nodeType": "ImportDirective", - "scope": 298, - "sourceUnit": 569, - "src": "81:51:0", + "scope": 334, + "sourceUnit": 605, + "src": "138:51:0", "symbolAliases": [], "unitAlias": "" }, @@ -525,42 +566,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4, + "id": 5, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 381, - "src": "782:7:0", + "referencedDeclaration": 417, + "src": "839:7:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$381", + "typeIdentifier": "t_contract$_Context_$417", "typeString": "contract Context" } }, - "id": 5, + "id": 6, "nodeType": "InheritanceSpecifier", - "src": "782:7:0" + "src": "839:7:0" } ], "contractDependencies": [ - 381 + 417 ], "contractKind": "contract", "documentation": "@dev The reason using this instead of openzeppelin, because owner are not 'payable'", "fullyImplemented": true, - "id": 117, + "id": 118, "linearizedBaseContracts": [ - 117, - 381 + 118, + 417 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 7, + "id": 8, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 117, - "src": "796:30:0", + "scope": 118, + "src": "853:30:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -568,10 +609,10 @@ "typeString": "address payable" }, "typeName": { - "id": 6, + "id": 7, "name": "address", "nodeType": "ElementaryTypeName", - "src": "796:15:0", + "src": "853:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -582,26 +623,26 @@ "visibility": "private" }, { - "id": 10, + "id": 11, "libraryName": { "contractScope": null, - "id": 8, + "id": 9, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 568, - "src": "838:8:0", + "referencedDeclaration": 604, + "src": "895:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$568", + "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "832:27:0", + "src": "889:27:0", "typeName": { - "id": 9, + "id": 10, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "851:7:0", + "src": "908:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -611,21 +652,21 @@ { "anonymous": false, "documentation": null, - "id": 16, + "id": 17, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 15, + "id": 16, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 12, + "id": 13, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "892:29:0", + "scope": 17, + "src": "949:29:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -633,10 +674,10 @@ "typeString": "address" }, "typeName": { - "id": 11, + "id": 12, "name": "address", "nodeType": "ElementaryTypeName", - "src": "892:7:0", + "src": "949:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -648,12 +689,12 @@ }, { "constant": false, - "id": 14, + "id": 15, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "923:24:0", + "scope": 17, + "src": "980:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -661,10 +702,10 @@ "typeString": "address" }, "typeName": { - "id": 13, + "id": 14, "name": "address", "nodeType": "ElementaryTypeName", - "src": "923:7:0", + "src": "980:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -675,32 +716,32 @@ "visibility": "internal" } ], - "src": "891:57:0" + "src": "948:57:0" }, - "src": "865:84:0" + "src": "922:84:0" }, { "body": { - "id": 31, + "id": 32, "nodeType": "Block", - "src": "1075:93:0", + "src": "1132:93:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 22, + "id": 23, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 19, + "id": 20, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1085:6:0", + "referencedDeclaration": 8, + "src": "1142:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -713,18 +754,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 20, + "id": 21, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "1094:10:0", + "referencedDeclaration": 405, + "src": "1151:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 21, + "id": 22, "isConstant": false, "isLValue": false, "isPure": false, @@ -732,21 +773,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1094:12:0", + "src": "1151:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1085:21:0", + "src": "1142:21:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 23, + "id": 24, "nodeType": "ExpressionStatement", - "src": "1085:21:0" + "src": "1142:21:0" }, { "eventCall": { @@ -758,14 +799,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 26, + "id": 27, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1150:1:0", + "src": "1207:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -781,20 +822,20 @@ "typeString": "int_const 0" } ], - "id": 25, + "id": 26, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1142:7:0", + "src": "1199:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 27, + "id": 28, "isConstant": false, "isLValue": false, "isPure": true, @@ -802,7 +843,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1142:10:0", + "src": "1199:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -810,12 +851,12 @@ }, { "argumentTypes": null, - "id": 28, + "id": 29, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1154:6:0", + "referencedDeclaration": 8, + "src": "1211:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -833,18 +874,18 @@ "typeString": "address payable" } ], - "id": 24, + "id": 25, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "1121:20:0", + "referencedDeclaration": 17, + "src": "1178:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 29, + "id": 30, "isConstant": false, "isLValue": false, "isPure": false, @@ -852,94 +893,94 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1121:40:0", + "src": "1178:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30, + "id": 31, "nodeType": "EmitStatement", - "src": "1116:45:0" + "src": "1173:45:0" } ] }, "documentation": "@dev Initializes the contract setting the deployer as the initial owner.", - "id": 32, + "id": 33, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [], - "src": "1063:2:0" - }, - "returnParameters": { "id": 18, "nodeType": "ParameterList", "parameters": [], - "src": "1075:0:0" + "src": "1120:2:0" }, - "scope": 117, - "src": "1051:117:0", + "returnParameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [], + "src": "1132:0:0" + }, + "scope": 118, + "src": "1108:117:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 39, + "id": 40, "nodeType": "Block", - "src": "1299:30:0", + "src": "1356:30:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 37, + "id": 38, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1316:6:0", + "referencedDeclaration": 8, + "src": "1373:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "functionReturnParameters": 36, - "id": 38, + "functionReturnParameters": 37, + "id": 39, "nodeType": "Return", - "src": "1309:13:0" + "src": "1366:13:0" } ] }, "documentation": "@dev Returns the address of the current owner.", - "id": 40, + "id": 41, "implemented": true, "kind": "function", "modifiers": [], "name": "owner", "nodeType": "FunctionDefinition", "parameters": { - "id": 33, + "id": 34, "nodeType": "ParameterList", "parameters": [], - "src": "1258:2:0" + "src": "1315:2:0" }, "returnParameters": { - "id": 36, + "id": 37, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 35, + "id": 36, "name": "", "nodeType": "VariableDeclaration", - "scope": 40, - "src": "1282:15:0", + "scope": 41, + "src": "1339:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -947,10 +988,10 @@ "typeString": "address payable" }, "typeName": { - "id": 34, + "id": 35, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1282:15:0", + "src": "1339:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -961,19 +1002,19 @@ "visibility": "internal" } ], - "src": "1281:17:0" + "src": "1338:17:0" }, - "scope": 117, - "src": "1244:85:0", + "scope": 118, + "src": "1301:85:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 49, + "id": 50, "nodeType": "Block", - "src": "1438:82:0", + "src": "1495:82:0", "statements": [ { "expression": { @@ -984,18 +1025,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 43, + "id": 44, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "1456:7:0", + "referencedDeclaration": 62, + "src": "1513:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 44, + "id": 45, "isConstant": false, "isLValue": false, "isPure": false, @@ -1003,7 +1044,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1456:9:0", + "src": "1513:9:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1012,14 +1053,14 @@ { "argumentTypes": null, "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 45, + "id": 46, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1467:34:0", + "src": "1524:34:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", @@ -1039,21 +1080,21 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 42, + "id": 43, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, - "src": "1448:7:0", + "referencedDeclaration": 1097, + "src": "1505:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 46, + "id": 47, "isConstant": false, "isLValue": false, "isPure": false, @@ -1061,41 +1102,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1448:54:0", + "src": "1505:54:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 47, + "id": 48, "nodeType": "ExpressionStatement", - "src": "1448:54:0" + "src": "1505:54:0" }, { - "id": 48, + "id": 49, "nodeType": "PlaceholderStatement", - "src": "1512:1:0" + "src": "1569:1:0" } ] }, "documentation": "@dev Throws if called by any account other than the owner.", - "id": 50, + "id": 51, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 41, + "id": 42, "nodeType": "ParameterList", "parameters": [], - "src": "1435:2:0" + "src": "1492:2:0" }, - "src": "1417:103:0", + "src": "1474:103:0", "visibility": "internal" }, { "body": { - "id": 60, + "id": 61, "nodeType": "Block", - "src": "1649:46:0", + "src": "1706:46:0", "statements": [ { "expression": { @@ -1104,7 +1145,7 @@ "typeIdentifier": "t_address_payable", "typeString": "address payable" }, - "id": 58, + "id": 59, "isConstant": false, "isLValue": false, "isPure": false, @@ -1114,18 +1155,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 55, + "id": 56, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "1666:10:0", + "referencedDeclaration": 405, + "src": "1723:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 56, + "id": 57, "isConstant": false, "isLValue": false, "isPure": false, @@ -1133,7 +1174,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1666:12:0", + "src": "1723:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1143,54 +1184,54 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 57, + "id": 58, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1682:6:0", + "referencedDeclaration": 8, + "src": "1739:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1666:22:0", + "src": "1723:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 54, - "id": 59, + "functionReturnParameters": 55, + "id": 60, "nodeType": "Return", - "src": "1659:29:0" + "src": "1716:29:0" } ] }, "documentation": "@dev Returns true if the caller is the current owner.", - "id": 61, + "id": 62, "implemented": true, "kind": "function", "modifiers": [], "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 51, + "id": 52, "nodeType": "ParameterList", "parameters": [], - "src": "1619:2:0" + "src": "1676:2:0" }, "returnParameters": { - "id": 54, + "id": 55, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53, + "id": 54, "name": "", "nodeType": "VariableDeclaration", - "scope": 61, - "src": "1643:4:0", + "scope": 62, + "src": "1700:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1198,10 +1239,10 @@ "typeString": "bool" }, "typeName": { - "id": 52, + "id": 53, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1643:4:0", + "src": "1700:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1211,19 +1252,19 @@ "visibility": "internal" } ], - "src": "1642:6:0" + "src": "1699:6:0" }, - "scope": 117, - "src": "1603:92:0", + "scope": 118, + "src": "1660:92:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 79, + "id": 80, "nodeType": "Block", - "src": "2083:91:0", + "src": "2140:91:0", "statements": [ { "eventCall": { @@ -1231,12 +1272,12 @@ "arguments": [ { "argumentTypes": null, - "id": 67, + "id": 68, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2119:6:0", + "referencedDeclaration": 8, + "src": "2176:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1248,14 +1289,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 69, + "id": 70, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2135:1:0", + "src": "2192:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1271,20 +1312,20 @@ "typeString": "int_const 0" } ], - "id": 68, + "id": 69, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2127:7:0", + "src": "2184:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 70, + "id": 71, "isConstant": false, "isLValue": false, "isPure": true, @@ -1292,7 +1333,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2127:10:0", + "src": "2184:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1310,18 +1351,18 @@ "typeString": "address payable" } ], - "id": 66, + "id": 67, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "2098:20:0", + "referencedDeclaration": 17, + "src": "2155:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 71, + "id": 72, "isConstant": false, "isLValue": false, "isPure": false, @@ -1329,32 +1370,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2098:40:0", + "src": "2155:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 72, + "id": 73, "nodeType": "EmitStatement", - "src": "2093:45:0" + "src": "2150:45:0" }, { "expression": { "argumentTypes": null, - "id": 77, + "id": 78, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 73, + "id": 74, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2148:6:0", + "referencedDeclaration": 8, + "src": "2205:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1368,14 +1409,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 75, + "id": 76, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2165:1:0", + "src": "2222:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1391,20 +1432,20 @@ "typeString": "int_const 0" } ], - "id": 74, + "id": 75, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2157:7:0", + "src": "2214:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 76, + "id": 77, "isConstant": false, "isLValue": false, "isPure": true, @@ -1412,74 +1453,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2157:10:0", + "src": "2214:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2148:19:0", + "src": "2205:19:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 78, + "id": 79, "nodeType": "ExpressionStatement", - "src": "2148:19:0" + "src": "2205:19:0" } ] }, "documentation": "@dev Leaves the contract without owner. It will not be possible to call\n`onlyOwner` functions anymore. Can only be called by the current owner.\n * NOTE: Renouncing ownership will leave the contract without an owner,\nthereby removing any functionality that is only available to the owner.", - "id": 80, + "id": 81, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 64, + "id": 65, "modifierName": { "argumentTypes": null, - "id": 63, + "id": 64, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "2073:9:0", + "referencedDeclaration": 51, + "src": "2130:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2073:9:0" + "src": "2130:9:0" } ], "name": "renounceOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 62, + "id": 63, "nodeType": "ParameterList", "parameters": [], - "src": "2063:2:0" + "src": "2120:2:0" }, "returnParameters": { - "id": 65, + "id": 66, "nodeType": "ParameterList", "parameters": [], - "src": "2083:0:0" + "src": "2140:0:0" }, - "scope": 117, - "src": "2037:137:0", + "scope": 118, + "src": "2094:137:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 91, + "id": 92, "nodeType": "Block", - "src": "2393:45:0", + "src": "2450:45:0", "statements": [ { "expression": { @@ -1487,12 +1528,12 @@ "arguments": [ { "argumentTypes": null, - "id": 88, + "id": 89, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 82, - "src": "2422:8:0", + "referencedDeclaration": 83, + "src": "2479:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1506,18 +1547,18 @@ "typeString": "address payable" } ], - "id": 87, + "id": 88, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2403:18:0", + "referencedDeclaration": 117, + "src": "2460:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, - "id": 89, + "id": 90, "isConstant": false, "isLValue": false, "isPure": false, @@ -1525,56 +1566,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2403:28:0", + "src": "2460:28:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 90, + "id": 91, "nodeType": "ExpressionStatement", - "src": "2403:28:0" + "src": "2460:28:0" } ] }, "documentation": "@dev Transfers ownership of the contract to a new account (`newOwner`).\nCan only be called by the current owner.", - "id": 92, + "id": 93, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 85, + "id": 86, "modifierName": { "argumentTypes": null, - "id": 84, + "id": 85, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "2383:9:0", + "referencedDeclaration": 51, + "src": "2440:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2383:9:0" + "src": "2440:9:0" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 83, + "id": 84, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 82, + "id": 83, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 92, - "src": "2350:24:0", + "scope": 93, + "src": "2407:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1582,10 +1623,10 @@ "typeString": "address payable" }, "typeName": { - "id": 81, + "id": 82, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2350:15:0", + "src": "2407:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -1596,25 +1637,25 @@ "visibility": "internal" } ], - "src": "2349:26:0" + "src": "2406:26:0" }, "returnParameters": { - "id": 86, + "id": 87, "nodeType": "ParameterList", "parameters": [], - "src": "2393:0:0" + "src": "2450:0:0" }, - "scope": 117, - "src": "2323:115:0", + "scope": 118, + "src": "2380:115:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 115, + "id": 116, "nodeType": "Block", - "src": "2602:170:0", + "src": "2659:170:0", "statements": [ { "expression": { @@ -1626,19 +1667,19 @@ "typeIdentifier": "t_address_payable", "typeString": "address payable" }, - "id": 102, + "id": 103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 98, + "id": 99, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "2620:8:0", + "referencedDeclaration": 95, + "src": "2677:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1652,14 +1693,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 100, + "id": 101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2640:1:0", + "src": "2697:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1675,20 +1716,20 @@ "typeString": "int_const 0" } ], - "id": 99, + "id": 100, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2632:7:0", + "src": "2689:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 101, + "id": 102, "isConstant": false, "isLValue": false, "isPure": true, @@ -1696,13 +1737,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2632:10:0", + "src": "2689:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2620:22:0", + "src": "2677:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1711,14 +1752,14 @@ { "argumentTypes": null, "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 103, + "id": 104, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2644:40:0", + "src": "2701:40:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", @@ -1738,21 +1779,21 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 97, + "id": 98, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, - "src": "2612:7:0", + "referencedDeclaration": 1097, + "src": "2669:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 104, + "id": 105, "isConstant": false, "isLValue": false, "isPure": false, @@ -1760,15 +1801,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2612:73:0", + "src": "2669:73:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 105, + "id": 106, "nodeType": "ExpressionStatement", - "src": "2612:73:0" + "src": "2669:73:0" }, { "eventCall": { @@ -1776,12 +1817,12 @@ "arguments": [ { "argumentTypes": null, - "id": 107, + "id": 108, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2721:6:0", + "referencedDeclaration": 8, + "src": "2778:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1789,12 +1830,12 @@ }, { "argumentTypes": null, - "id": 108, + "id": 109, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "2729:8:0", + "referencedDeclaration": 95, + "src": "2786:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1812,18 +1853,18 @@ "typeString": "address payable" } ], - "id": 106, + "id": 107, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "2700:20:0", + "referencedDeclaration": 17, + "src": "2757:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 109, + "id": 110, "isConstant": false, "isLValue": false, "isPure": false, @@ -1831,32 +1872,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2700:38:0", + "src": "2757:38:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 110, + "id": 111, "nodeType": "EmitStatement", - "src": "2695:43:0" + "src": "2752:43:0" }, { "expression": { "argumentTypes": null, - "id": 113, + "id": 114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 111, + "id": 112, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2748:6:0", + "referencedDeclaration": 8, + "src": "2805:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1866,47 +1907,47 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 112, + "id": 113, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "2757:8:0", + "referencedDeclaration": 95, + "src": "2814:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2748:17:0", + "src": "2805:17:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 114, + "id": 115, "nodeType": "ExpressionStatement", - "src": "2748:17:0" + "src": "2805:17:0" } ] }, "documentation": "@dev Transfers ownership of the contract to a new account (`newOwner`).", - "id": 116, + "id": 117, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 95, + "id": 96, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 94, + "id": 95, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 116, - "src": "2567:24:0", + "scope": 117, + "src": "2624:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1914,10 +1955,10 @@ "typeString": "address payable" }, "typeName": { - "id": 93, + "id": 94, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2567:15:0", + "src": "2624:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -1928,23 +1969,23 @@ "visibility": "internal" } ], - "src": "2566:26:0" + "src": "2623:26:0" }, "returnParameters": { - "id": 96, + "id": 97, "nodeType": "ParameterList", "parameters": [], - "src": "2602:0:0" + "src": "2659:0:0" }, - "scope": 117, - "src": "2539:233:0", + "scope": 118, + "src": "2596:233:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 298, - "src": "762:2012:0" + "scope": 334, + "src": "819:2012:0" }, { "baseContracts": [ @@ -1952,80 +1993,80 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 118, + "id": 119, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 973, - "src": "3053:5:0", + "referencedDeclaration": 1009, + "src": "3105:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$973", + "typeIdentifier": "t_contract$_ERC20_$1009", "typeString": "contract ERC20" } }, - "id": 119, + "id": 120, "nodeType": "InheritanceSpecifier", - "src": "3053:5:0" + "src": "3105:5:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 120, + "id": 121, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 117, - "src": "3060:7:0", + "referencedDeclaration": 118, + "src": "3112:7:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$117", + "typeIdentifier": "t_contract$_Ownable_$118", "typeString": "contract Ownable" } }, - "id": 121, + "id": 122, "nodeType": "InheritanceSpecifier", - "src": "3060:7:0" + "src": "3112:7:0" } ], "contractDependencies": [ - 117, - 381, - 973, - 1042 + 118, + 417, + 1009, + 1078 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 297, + "id": 333, "linearizedBaseContracts": [ - 297, - 117, - 973, - 1042, - 381 + 333, + 118, + 1009, + 1078, + 417 ], - "name": "DECAToken", + "name": "DECA", "nodeType": "ContractDefinition", "nodes": [ { - "id": 124, + "id": 125, "libraryName": { "contractScope": null, - "id": 122, + "id": 123, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 568, - "src": "3080:8:0", + "referencedDeclaration": 604, + "src": "3132:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$568", + "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3074:27:0", + "src": "3126:27:0", "typeName": { - "id": 123, + "id": 124, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3093:7:0", + "src": "3145:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2034,11 +2075,11 @@ }, { "constant": true, - "id": 127, + "id": 128, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3106:38:0", + "scope": 333, + "src": "3158:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2046,10 +2087,10 @@ "typeString": "string" }, "typeName": { - "id": 125, + "id": 126, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3106:6:0", + "src": "3158:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2058,14 +2099,14 @@ "value": { "argumentTypes": null, "hexValue": "44454341", - "id": 126, + "id": 127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3138:6:0", + "src": "3190:6:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a49565813a43765a9dfdf315aaa77336d9844a752bb9a788d2dad0f019de1858", @@ -2077,11 +2118,11 @@ }, { "constant": true, - "id": 130, + "id": 131, "name": "name", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3150:59:0", + "scope": 333, + "src": "3202:59:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2089,10 +2130,10 @@ "typeString": "string" }, "typeName": { - "id": 128, + "id": 129, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3150:6:0", + "src": "3202:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2101,14 +2142,14 @@ "value": { "argumentTypes": null, "hexValue": "444563656e7472616c697a656420434172626f6e20746f6b656e73", - "id": 129, + "id": 130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3180:29:0", + "src": "3232:29:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a71fc6dd39cdb20c976c32b6365d2e473e0bcd38ac1af23f856facc675f989cb", @@ -2120,11 +2161,11 @@ }, { "constant": true, - "id": 133, + "id": 134, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3215:35:0", + "scope": 333, + "src": "3267:35:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2132,10 +2173,10 @@ "typeString": "uint8" }, "typeName": { - "id": 131, + "id": 132, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3215:5:0", + "src": "3267:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2144,14 +2185,14 @@ "value": { "argumentTypes": null, "hexValue": "3138", - "id": 132, + "id": 133, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3248:2:0", + "src": "3300:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -2163,11 +2204,11 @@ }, { "constant": false, - "id": 138, + "id": 139, "name": "preICOEnds", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3300:38:0", + "scope": 333, + "src": "3352:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2175,10 +2216,10 @@ "typeString": "uint256" }, "typeName": { - "id": 134, + "id": 135, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3300:4:0", + "src": "3352:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2190,19 +2231,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 137, + "id": 138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 135, + "id": 136, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3325:3:0", + "referencedDeclaration": 1095, + "src": "3377:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2213,14 +2254,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 136, + "id": 137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3331:7:0", + "src": "3383:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_604800_by_1", @@ -2228,7 +2269,7 @@ }, "value": "1" }, - "src": "3325:13:0", + "src": "3377:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2238,11 +2279,11 @@ }, { "constant": false, - "id": 143, + "id": 144, "name": "bonus1Ends", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3344:38:0", + "scope": 333, + "src": "3396:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2250,10 +2291,10 @@ "typeString": "uint256" }, "typeName": { - "id": 139, + "id": 140, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3344:4:0", + "src": "3396:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2265,19 +2306,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 142, + "id": 143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 140, + "id": 141, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3369:3:0", + "referencedDeclaration": 1095, + "src": "3421:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2288,14 +2329,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "33", - "id": 141, + "id": 142, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3375:7:0", + "src": "3427:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_1814400_by_1", @@ -2303,7 +2344,7 @@ }, "value": "3" }, - "src": "3369:13:0", + "src": "3421:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2313,11 +2354,11 @@ }, { "constant": false, - "id": 148, + "id": 149, "name": "bonus2Ends", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3388:38:0", + "scope": 333, + "src": "3440:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2325,10 +2366,10 @@ "typeString": "uint256" }, "typeName": { - "id": 144, + "id": 145, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3388:4:0", + "src": "3440:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2340,19 +2381,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 147, + "id": 148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 145, + "id": 146, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3413:3:0", + "referencedDeclaration": 1095, + "src": "3465:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2363,14 +2404,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 146, + "id": 147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3419:7:0", + "src": "3471:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_3628800_by_1", @@ -2378,7 +2419,7 @@ }, "value": "6" }, - "src": "3413:13:0", + "src": "3465:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2388,11 +2429,11 @@ }, { "constant": false, - "id": 153, + "id": 154, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3432:36:0", + "scope": 333, + "src": "3484:36:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2400,10 +2441,10 @@ "typeString": "uint256" }, "typeName": { - "id": 149, + "id": 150, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3432:4:0", + "src": "3484:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2415,19 +2456,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 152, + "id": 153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 150, + "id": 151, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3454:3:0", + "referencedDeclaration": 1095, + "src": "3506:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2438,14 +2479,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3131", - "id": 151, + "id": 152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3460:8:0", + "src": "3512:8:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_6652800_by_1", @@ -2453,7 +2494,7 @@ }, "value": "11" }, - "src": "3454:14:0", + "src": "3506:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2461,11 +2502,380 @@ }, "visibility": "public" }, + { + "constant": false, + "id": 157, + "name": "_pause", + "nodeType": "VariableDeclaration", + "scope": 333, + "src": "3526:27:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 155, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3526:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3548:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "private" + }, { "body": { - "id": 253, + "id": 166, "nodeType": "Block", - "src": "3695:807:0", + "src": "3581:66:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3599:7:0", + "subExpression": { + "argumentTypes": null, + "id": 160, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "3600:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "63726f776473616c65206f6e207061757365", + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3608:20:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2a660c6a64b030651f27b71bc8d6deb86294e2010eb3292c6f116ef89c98fd", + "typeString": "literal_string \"crowdsale on pause\"" + }, + "value": "crowdsale on pause" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2a660c6a64b030651f27b71bc8d6deb86294e2010eb3292c6f116ef89c98fd", + "typeString": "literal_string \"crowdsale on pause\"" + } + ], + "id": 159, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1096, + 1097 + ], + "referencedDeclaration": 1097, + "src": "3591:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3591:38:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 164, + "nodeType": "ExpressionStatement", + "src": "3591:38:0" + }, + { + "id": 165, + "nodeType": "PlaceholderStatement", + "src": "3639:1:0" + } + ] + }, + "documentation": null, + "id": 167, + "name": "notPaused", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 158, + "nodeType": "ParameterList", + "parameters": [], + "src": "3578:2:0" + }, + "src": "3560:87:0", + "visibility": "internal" + }, + { + "body": { + "id": 174, + "nodeType": "Block", + "src": "3698:30:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 172, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "3715:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 171, + "id": 173, + "nodeType": "Return", + "src": "3708:13:0" + } + ] + }, + "documentation": null, + "id": 175, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPause", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 168, + "nodeType": "ParameterList", + "parameters": [], + "src": "3669:2:0" + }, + "returnParameters": { + "id": 171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 170, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "3693:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 169, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3693:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:6:0" + }, + "scope": 333, + "src": "3652:76:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 186, + "nodeType": "Block", + "src": "3779:27:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 182, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "3789:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 183, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "3798:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3789:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 185, + "nodeType": "ExpressionStatement", + "src": "3789:10:0" + } + ] + }, + "documentation": null, + "id": 187, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 180, + "modifierName": { + "argumentTypes": null, + "id": 179, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 51, + "src": "3769:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3769:9:0" + } + ], + "name": "setPause", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 177, + "name": "p", + "nodeType": "VariableDeclaration", + "scope": 187, + "src": "3752:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 176, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3752:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3751:8:0" + }, + "returnParameters": { + "id": 181, + "nodeType": "ParameterList", + "parameters": [], + "src": "3779:0:0" + }, + "scope": 333, + "src": "3734:72:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 289, + "nodeType": "Block", + "src": "4042:815:0", "statements": [ { "expression": { @@ -2477,19 +2887,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 159, + "id": 195, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 157, + "id": 193, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3713:3:0", + "referencedDeclaration": 1095, + "src": "4060:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2499,18 +2909,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 158, + "id": 194, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "3720:7:0", + "referencedDeclaration": 154, + "src": "4067:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3713:14:0", + "src": "4060:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2524,21 +2934,21 @@ "typeString": "bool" } ], - "id": 156, + "id": 192, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1060, - "src": "3705:7:0", + "referencedDeclaration": 1096, + "src": "4052:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 160, + "id": 196, "isConstant": false, "isLValue": false, "isPure": false, @@ -2546,28 +2956,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3705:23:0", + "src": "4052:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 161, + "id": 197, "nodeType": "ExpressionStatement", - "src": "3705:23:0" + "src": "4052:23:0" }, { "assignments": [ - 163 + 199 ], "declarations": [ { "constant": false, - "id": 163, + "id": 199, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3738:11:0", + "scope": 289, + "src": "4085:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2575,10 +2985,10 @@ "typeString": "uint256" }, "typeName": { - "id": 162, + "id": 198, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3738:4:0", + "src": "4085:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2588,23 +2998,23 @@ "visibility": "internal" } ], - "id": 164, + "id": 200, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3738:11:0" + "src": "4085:11:0" }, { "assignments": [ - 166 + 202 ], "declarations": [ { "constant": false, - "id": 166, + "id": 202, "name": "toOwner", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3759:12:0", + "scope": 289, + "src": "4106:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2612,10 +3022,10 @@ "typeString": "uint256" }, "typeName": { - "id": 165, + "id": 201, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3759:4:0", + "src": "4106:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2625,23 +3035,23 @@ "visibility": "internal" } ], - "id": 167, + "id": 203, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3759:12:0" + "src": "4106:12:0" }, { "assignments": [ - 169 + 205 ], "declarations": [ { "constant": false, - "id": 169, + "id": 205, "name": "toSender", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3781:13:0", + "scope": 289, + "src": "4128:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2649,10 +3059,10 @@ "typeString": "uint256" }, "typeName": { - "id": 168, + "id": 204, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3781:4:0", + "src": "4128:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2662,23 +3072,23 @@ "visibility": "internal" } ], - "id": 170, + "id": 206, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3781:13:0" + "src": "4128:13:0" }, { "assignments": [ - 172 + 208 ], "declarations": [ { "constant": false, - "id": 172, + "id": 208, "name": "divBy", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3804:10:0", + "scope": 289, + "src": "4151:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2686,10 +3096,10 @@ "typeString": "uint256" }, "typeName": { - "id": 171, + "id": 207, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3804:4:0", + "src": "4151:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2699,27 +3109,27 @@ "visibility": "internal" } ], - "id": 173, + "id": 209, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3804:10:0" + "src": "4151:10:0" }, { "expression": { "argumentTypes": null, - "id": 176, + "id": 212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 174, + "id": 210, "name": "divBy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "3825:5:0", + "referencedDeclaration": 208, + "src": "4172:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2730,14 +3140,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3430", - "id": 175, + "id": 211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3833:2:0", + "src": "4180:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_40_by_1", @@ -2745,15 +3155,15 @@ }, "value": "40" }, - "src": "3825:10:0", + "src": "4172:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 177, + "id": 213, "nodeType": "ExpressionStatement", - "src": "3825:10:0" + "src": "4172:10:0" }, { "condition": { @@ -2762,19 +3172,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 180, + "id": 216, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 178, + "id": 214, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3918:3:0", + "referencedDeclaration": 1095, + "src": "4273:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2784,18 +3194,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 179, + "id": 215, "name": "preICOEnds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "3925:10:0", + "referencedDeclaration": 139, + "src": "4280:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3918:17:0", + "src": "4273:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2808,7 +3218,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 195, + "id": 231, "isConstant": false, "isLValue": false, "isPure": false, @@ -2819,19 +3229,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 191, + "id": 227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 189, + "id": 225, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3996:3:0", + "referencedDeclaration": 1095, + "src": "4351:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2841,18 +3251,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 190, + "id": 226, "name": "preICOEnds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "4002:10:0", + "referencedDeclaration": 139, + "src": "4357:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3996:16:0", + "src": "4351:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2866,19 +3276,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 194, + "id": 230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 192, + "id": 228, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4016:3:0", + "referencedDeclaration": 1095, + "src": "4371:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2888,24 +3298,24 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 193, + "id": 229, "name": "bonus1Ends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "4023:10:0", + "referencedDeclaration": 144, + "src": "4378:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4016:17:0", + "src": "4371:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3996:37:0", + "src": "4351:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2918,7 +3328,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 210, + "id": 246, "isConstant": false, "isLValue": false, "isPure": false, @@ -2929,19 +3339,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 206, + "id": 242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 204, + "id": 240, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4094:3:0", + "referencedDeclaration": 1095, + "src": "4449:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2951,18 +3361,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 205, + "id": 241, "name": "bonus1Ends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "4100:10:0", + "referencedDeclaration": 144, + "src": "4455:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4094:16:0", + "src": "4449:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2976,19 +3386,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 209, + "id": 245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 207, + "id": 243, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4114:3:0", + "referencedDeclaration": 1095, + "src": "4469:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2998,50 +3408,50 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 208, + "id": 244, "name": "bonus2Ends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 148, - "src": "4121:10:0", + "referencedDeclaration": 149, + "src": "4476:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4114:17:0", + "src": "4469:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4094:37:0", + "src": "4449:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 226, + "id": 262, "nodeType": "Block", - "src": "4188:49:0", + "src": "4543:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 224, + "id": 260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 219, + "id": 255, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4202:6:0", + "referencedDeclaration": 199, + "src": "4557:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3055,7 +3465,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 223, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, @@ -3064,18 +3474,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 220, + "id": 256, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4211:3:0", + "referencedDeclaration": 1093, + "src": "4566:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 221, + "id": 257, "isConstant": false, "isLValue": false, "isPure": false, @@ -3083,7 +3493,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4211:9:0", + "src": "4566:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3093,64 +3503,64 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "313030", - "id": 222, + "hexValue": "323235", + "id": 258, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4223:3:0", + "src": "4578:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" + "typeIdentifier": "t_rational_225_by_1", + "typeString": "int_const 225" }, - "value": "100" + "value": "225" }, - "src": "4211:15:0", + "src": "4566:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4202:24:0", + "src": "4557:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 225, + "id": 261, "nodeType": "ExpressionStatement", - "src": "4202:24:0" + "src": "4557:24:0" } ] }, - "id": 227, + "id": 263, "nodeType": "IfStatement", - "src": "4090:147:0", + "src": "4445:147:0", "trueBody": { - "id": 218, + "id": 254, "nodeType": "Block", - "src": "4133:49:0", + "src": "4488:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 216, + "id": 252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 211, + "id": 247, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4147:6:0", + "referencedDeclaration": 199, + "src": "4502:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3164,7 +3574,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 215, + "id": 251, "isConstant": false, "isLValue": false, "isPure": false, @@ -3173,18 +3583,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 212, + "id": 248, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4156:3:0", + "referencedDeclaration": 1093, + "src": "4511:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 213, + "id": 249, "isConstant": false, "isLValue": false, "isPure": false, @@ -3192,7 +3602,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4156:9:0", + "src": "4511:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3202,65 +3612,65 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "313235", - "id": 214, + "hexValue": "323530", + "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4168:3:0", + "src": "4523:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_125_by_1", - "typeString": "int_const 125" + "typeIdentifier": "t_rational_250_by_1", + "typeString": "int_const 250" }, - "value": "125" + "value": "250" }, - "src": "4156:15:0", + "src": "4511:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4147:24:0", + "src": "4502:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 217, + "id": 253, "nodeType": "ExpressionStatement", - "src": "4147:24:0" + "src": "4502:24:0" } ] } }, - "id": 228, + "id": 264, "nodeType": "IfStatement", - "src": "3992:245:0", + "src": "4347:245:0", "trueBody": { - "id": 203, + "id": 239, "nodeType": "Block", - "src": "4035:49:0", + "src": "4390:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 201, + "id": 237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 196, + "id": 232, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4049:6:0", + "referencedDeclaration": 199, + "src": "4404:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3274,7 +3684,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 200, + "id": 236, "isConstant": false, "isLValue": false, "isPure": false, @@ -3283,18 +3693,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 197, + "id": 233, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4058:3:0", + "referencedDeclaration": 1093, + "src": "4413:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 198, + "id": 234, "isConstant": false, "isLValue": false, "isPure": false, @@ -3302,7 +3712,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4058:9:0", + "src": "4413:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3312,65 +3722,65 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "313530", - "id": 199, + "hexValue": "323735", + "id": 235, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4070:3:0", + "src": "4425:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_150_by_1", - "typeString": "int_const 150" + "typeIdentifier": "t_rational_275_by_1", + "typeString": "int_const 275" }, - "value": "150" + "value": "275" }, - "src": "4058:15:0", + "src": "4413:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4049:24:0", + "src": "4404:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 202, + "id": 238, "nodeType": "ExpressionStatement", - "src": "4049:24:0" + "src": "4404:24:0" } ] } }, - "id": 229, + "id": 265, "nodeType": "IfStatement", - "src": "3914:323:0", + "src": "4269:323:0", "trueBody": { - "id": 188, + "id": 224, "nodeType": "Block", - "src": "3937:49:0", + "src": "4292:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 186, + "id": 222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 181, + "id": 217, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "3951:6:0", + "referencedDeclaration": 199, + "src": "4306:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3384,7 +3794,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 185, + "id": 221, "isConstant": false, "isLValue": false, "isPure": false, @@ -3393,18 +3803,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 182, + "id": 218, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "3960:3:0", + "referencedDeclaration": 1093, + "src": "4315:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 183, + "id": 219, "isConstant": false, "isLValue": false, "isPure": false, @@ -3412,7 +3822,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3960:9:0", + "src": "4315:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3422,37 +3832,37 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "323030", - "id": 184, + "hexValue": "333030", + "id": 220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3972:3:0", + "src": "4327:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_200_by_1", - "typeString": "int_const 200" + "typeIdentifier": "t_rational_300_by_1", + "typeString": "int_const 300" }, - "value": "200" + "value": "300" }, - "src": "3960:15:0", + "src": "4315:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3951:24:0", + "src": "4306:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 187, + "id": 223, "nodeType": "ExpressionStatement", - "src": "3951:24:0" + "src": "4306:24:0" } ] } @@ -3460,19 +3870,19 @@ { "expression": { "argumentTypes": null, - "id": 235, + "id": 271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 230, + "id": 266, "name": "toOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "4247:7:0", + "referencedDeclaration": 202, + "src": "4602:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3485,12 +3895,12 @@ "arguments": [ { "argumentTypes": null, - "id": 233, + "id": 269, "name": "divBy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "4268:5:0", + "referencedDeclaration": 208, + "src": "4623:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3506,32 +3916,32 @@ ], "expression": { "argumentTypes": null, - "id": 231, + "id": 267, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4257:6:0", + "referencedDeclaration": 199, + "src": "4612:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 232, + "id": 268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 501, - "src": "4257:10:0", + "referencedDeclaration": 537, + "src": "4612:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 234, + "id": 270, "isConstant": false, "isLValue": false, "isPure": false, @@ -3539,38 +3949,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4257:17:0", + "src": "4612:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4247:27:0", + "src": "4602:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 236, + "id": 272, "nodeType": "ExpressionStatement", - "src": "4247:27:0" + "src": "4602:27:0" }, { "expression": { "argumentTypes": null, - "id": 239, + "id": 275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 237, + "id": 273, "name": "toSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "4366:8:0", + "referencedDeclaration": 205, + "src": "4721:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3580,26 +3990,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 238, + "id": 274, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4377:6:0", + "referencedDeclaration": 199, + "src": "4732:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4366:17:0", + "src": "4721:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 240, + "id": 276, "nodeType": "ExpressionStatement", - "src": "4366:17:0" + "src": "4721:17:0" }, { "expression": { @@ -3610,18 +4020,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 242, + "id": 278, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "4441:5:0", + "referencedDeclaration": 41, + "src": "4796:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 243, + "id": 279, "isConstant": false, "isLValue": false, "isPure": false, @@ -3629,7 +4039,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4441:7:0", + "src": "4796:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3637,12 +4047,12 @@ }, { "argumentTypes": null, - "id": 244, + "id": 280, "name": "toOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "4450:7:0", + "referencedDeclaration": 202, + "src": "4805:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3660,18 +4070,18 @@ "typeString": "uint256" } ], - "id": 241, + "id": 277, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "4435:5:0", + "referencedDeclaration": 893, + "src": "4790:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 245, + "id": 281, "isConstant": false, "isLValue": false, "isPure": false, @@ -3679,15 +4089,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4435:23:0", + "src": "4790:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 246, + "id": 282, "nodeType": "ExpressionStatement", - "src": "4435:23:0" + "src": "4790:23:0" }, { "expression": { @@ -3697,18 +4107,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 248, + "id": 284, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4474:3:0", + "referencedDeclaration": 1093, + "src": "4829:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 249, + "id": 285, "isConstant": false, "isLValue": false, "isPure": false, @@ -3716,7 +4126,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4474:10:0", + "src": "4829:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3724,12 +4134,12 @@ }, { "argumentTypes": null, - "id": 250, + "id": 286, "name": "toSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "4486:8:0", + "referencedDeclaration": 205, + "src": "4841:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3747,18 +4157,18 @@ "typeString": "uint256" } ], - "id": 247, + "id": 283, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "4468:5:0", + "referencedDeclaration": 893, + "src": "4823:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 251, + "id": 287, "isConstant": false, "isLValue": false, "isPure": false, @@ -3766,48 +4176,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4468:27:0", + "src": "4823:27:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 252, + "id": 288, "nodeType": "ExpressionStatement", - "src": "4468:27:0" + "src": "4823:27:0" } ] }, "documentation": null, - "id": 254, + "id": 290, "implemented": true, "kind": "fallback", - "modifiers": [], + "modifiers": [ + { + "arguments": null, + "id": 190, + "modifierName": { + "argumentTypes": null, + "id": 189, + "name": "notPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "4015:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4015:9:0" + } + ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 154, + "id": 188, "nodeType": "ParameterList", "parameters": [], - "src": "3675:2:0" + "src": "4012:2:0" }, "returnParameters": { - "id": 155, + "id": 191, "nodeType": "ParameterList", "parameters": [], - "src": "3695:0:0" + "src": "4042:0:0" }, - "scope": 297, - "src": "3667:835:0", + "scope": 333, + "src": "4004:853:0", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 274, + "id": 310, "nodeType": "Block", - "src": "4589:154:0", + "src": "4944:154:0", "statements": [ { "expression": { @@ -3819,19 +4249,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 262, + "id": 298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 260, + "id": 296, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4607:3:0", + "referencedDeclaration": 1095, + "src": "4962:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3841,18 +4271,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 261, + "id": 297, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "4614:7:0", + "referencedDeclaration": 154, + "src": "4969:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4607:14:0", + "src": "4962:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3866,21 +4296,21 @@ "typeString": "bool" } ], - "id": 259, + "id": 295, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1060, - "src": "4599:7:0", + "referencedDeclaration": 1096, + "src": "4954:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 263, + "id": 299, "isConstant": false, "isLValue": false, "isPure": false, @@ -3888,15 +4318,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4599:23:0", + "src": "4954:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 264, + "id": 300, "nodeType": "ExpressionStatement", - "src": "4599:23:0" + "src": "4954:23:0" }, { "expression": { @@ -3909,39 +4339,39 @@ "arguments": [ { "argumentTypes": null, - "id": 269, + "id": 305, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "4722:4:0", + "referencedDeclaration": 1117, + "src": "5077:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_DECAToken_$297", - "typeString": "contract DECAToken" + "typeIdentifier": "t_contract$_DECA_$333", + "typeString": "contract DECA" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_DECAToken_$297", - "typeString": "contract DECAToken" + "typeIdentifier": "t_contract$_DECA_$333", + "typeString": "contract DECA" } ], - "id": 268, + "id": 304, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4714:7:0", + "src": "5069:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 270, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, @@ -3949,13 +4379,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4714:13:0", + "src": "5069:13:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 271, + "id": 307, "isConstant": false, "isLValue": false, "isPure": false, @@ -3963,7 +4393,7 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4714:21:0", + "src": "5069:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3982,18 +4412,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 265, + "id": 301, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "4697:5:0", + "referencedDeclaration": 41, + "src": "5052:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 266, + "id": 302, "isConstant": false, "isLValue": false, "isPure": false, @@ -4001,13 +4431,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4697:7:0", + "src": "5052:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 267, + "id": 303, "isConstant": false, "isLValue": false, "isPure": false, @@ -4015,13 +4445,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4697:16:0", + "src": "5052:16:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 272, + "id": 308, "isConstant": false, "isLValue": false, "isPure": false, @@ -4029,68 +4459,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4697:39:0", + "src": "5052:39:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 273, + "id": 309, "nodeType": "ExpressionStatement", - "src": "4697:39:0" + "src": "5052:39:0" } ] }, "documentation": null, - "id": 275, + "id": 311, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 257, + "id": 293, "modifierName": { "argumentTypes": null, - "id": 256, + "id": 292, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "4579:9:0", + "referencedDeclaration": 51, + "src": "4934:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4579:9:0" + "src": "4934:9:0" } ], "name": "getETH", "nodeType": "FunctionDefinition", "parameters": { - "id": 255, + "id": 291, "nodeType": "ParameterList", "parameters": [], - "src": "4569:2:0" + "src": "4924:2:0" }, "returnParameters": { - "id": 258, + "id": 294, "nodeType": "ParameterList", "parameters": [], - "src": "4589:0:0" + "src": "4944:0:0" }, - "scope": 297, - "src": "4554:189:0", + "scope": 333, + "src": "4909:189:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 295, + "id": 331, "nodeType": "Block", - "src": "5088:70:0", + "src": "5443:70:0", "statements": [ { "expression": { @@ -4101,18 +4531,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 290, + "id": 326, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "5135:5:0", + "referencedDeclaration": 41, + "src": "5490:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 291, + "id": 327, "isConstant": false, "isLValue": false, "isPure": false, @@ -4120,7 +4550,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5135:7:0", + "src": "5490:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4128,12 +4558,12 @@ }, { "argumentTypes": null, - "id": 292, + "id": 328, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5144:6:0", + "referencedDeclaration": 315, + "src": "5499:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4156,12 +4586,12 @@ "arguments": [ { "argumentTypes": null, - "id": 287, + "id": 323, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 277, - "src": "5112:12:0", + "referencedDeclaration": 313, + "src": "5467:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4175,18 +4605,18 @@ "typeString": "address payable" } ], - "id": 286, + "id": 322, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "5105:6:0", + "referencedDeclaration": 1078, + "src": "5460:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$1042_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1078_$", "typeString": "type(contract IERC20)" } }, - "id": 288, + "id": 324, "isConstant": false, "isLValue": false, "isPure": false, @@ -4194,27 +4624,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5105:20:0", + "src": "5460:20:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1042", + "typeIdentifier": "t_contract$_IERC20_$1078", "typeString": "contract IERC20" } }, - "id": 289, + "id": 325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 996, - "src": "5105:29:0", + "referencedDeclaration": 1032, + "src": "5460:29:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 293, + "id": 329, "isConstant": false, "isLValue": false, "isPure": false, @@ -4222,57 +4652,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5105:46:0", + "src": "5460:46:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 285, - "id": 294, + "functionReturnParameters": 321, + "id": 330, "nodeType": "Return", - "src": "5098:53:0" + "src": "5453:53:0" } ] }, "documentation": null, - "id": 296, + "id": 332, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 282, + "id": 318, "modifierName": { "argumentTypes": null, - "id": 281, + "id": 317, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "5055:9:0", + "referencedDeclaration": 51, + "src": "5410:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5055:9:0" + "src": "5410:9:0" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 280, + "id": 316, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 277, + "id": 313, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 296, - "src": "5005:28:0", + "scope": 332, + "src": "5360:28:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4280,10 +4710,10 @@ "typeString": "address payable" }, "typeName": { - "id": 276, + "id": 312, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5005:15:0", + "src": "5360:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4295,11 +4725,11 @@ }, { "constant": false, - "id": 279, + "id": 315, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 296, - "src": "5035:11:0", + "scope": 332, + "src": "5390:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4307,10 +4737,10 @@ "typeString": "uint256" }, "typeName": { - "id": 278, + "id": 314, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5035:4:0", + "src": "5390:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4320,19 +4750,19 @@ "visibility": "internal" } ], - "src": "5004:43:0" + "src": "5359:43:0" }, "returnParameters": { - "id": 285, + "id": 321, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 284, + "id": 320, "name": "success", "nodeType": "VariableDeclaration", - "scope": 296, - "src": "5074:12:0", + "scope": 332, + "src": "5429:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4340,10 +4770,10 @@ "typeString": "bool" }, "typeName": { - "id": 283, + "id": 319, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5074:4:0", + "src": "5429:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4353,32 +4783,32 @@ "visibility": "internal" } ], - "src": "5073:14:0" + "src": "5428:14:0" }, - "scope": 297, - "src": "4974:184:0", + "scope": 333, + "src": "5329:184:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 298, - "src": "3031:2129:0" + "scope": 334, + "src": "3088:2427:0" } ], - "src": "0:5161:0" + "src": "0:5516:0" }, "legacyAST": { - "absolutePath": "/home/p1r0/dcc/contracts/DECA_ERC20_0.5.3.sol", + "absolutePath": "/home/p1r0/Dev/git/neetsec/dcc/contracts/DECA.sol", "exportedSymbols": { - "DECAToken": [ - 297 + "DECA": [ + 333 ], "Ownable": [ - 117 + 118 ] }, - "id": 298, + "id": 334, "nodeType": "SourceUnit", "nodes": [ { @@ -4396,20 +4826,31 @@ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "id": 2, "nodeType": "ImportDirective", - "scope": 298, - "sourceUnit": 974, + "scope": 334, + "sourceUnit": 1010, "src": "25:55:0", "symbolAliases": [], "unitAlias": "" }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 334, + "sourceUnit": 1079, + "src": "81:56:0", + "symbolAliases": [], + "unitAlias": "" + }, { "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "file": "@openzeppelin/contracts/math/SafeMath.sol", - "id": 3, + "id": 4, "nodeType": "ImportDirective", - "scope": 298, - "sourceUnit": 569, - "src": "81:51:0", + "scope": 334, + "sourceUnit": 605, + "src": "138:51:0", "symbolAliases": [], "unitAlias": "" }, @@ -4419,42 +4860,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4, + "id": 5, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 381, - "src": "782:7:0", + "referencedDeclaration": 417, + "src": "839:7:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$381", + "typeIdentifier": "t_contract$_Context_$417", "typeString": "contract Context" } }, - "id": 5, + "id": 6, "nodeType": "InheritanceSpecifier", - "src": "782:7:0" + "src": "839:7:0" } ], "contractDependencies": [ - 381 + 417 ], "contractKind": "contract", "documentation": "@dev The reason using this instead of openzeppelin, because owner are not 'payable'", "fullyImplemented": true, - "id": 117, + "id": 118, "linearizedBaseContracts": [ - 117, - 381 + 118, + 417 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 7, + "id": 8, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 117, - "src": "796:30:0", + "scope": 118, + "src": "853:30:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4462,10 +4903,10 @@ "typeString": "address payable" }, "typeName": { - "id": 6, + "id": 7, "name": "address", "nodeType": "ElementaryTypeName", - "src": "796:15:0", + "src": "853:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4476,26 +4917,26 @@ "visibility": "private" }, { - "id": 10, + "id": 11, "libraryName": { "contractScope": null, - "id": 8, + "id": 9, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 568, - "src": "838:8:0", + "referencedDeclaration": 604, + "src": "895:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$568", + "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "832:27:0", + "src": "889:27:0", "typeName": { - "id": 9, + "id": 10, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "851:7:0", + "src": "908:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4505,21 +4946,21 @@ { "anonymous": false, "documentation": null, - "id": 16, + "id": 17, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 15, + "id": 16, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 12, + "id": 13, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "892:29:0", + "scope": 17, + "src": "949:29:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4527,10 +4968,10 @@ "typeString": "address" }, "typeName": { - "id": 11, + "id": 12, "name": "address", "nodeType": "ElementaryTypeName", - "src": "892:7:0", + "src": "949:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4542,12 +4983,12 @@ }, { "constant": false, - "id": 14, + "id": 15, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "923:24:0", + "scope": 17, + "src": "980:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4555,10 +4996,10 @@ "typeString": "address" }, "typeName": { - "id": 13, + "id": 14, "name": "address", "nodeType": "ElementaryTypeName", - "src": "923:7:0", + "src": "980:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4569,32 +5010,32 @@ "visibility": "internal" } ], - "src": "891:57:0" + "src": "948:57:0" }, - "src": "865:84:0" + "src": "922:84:0" }, { "body": { - "id": 31, + "id": 32, "nodeType": "Block", - "src": "1075:93:0", + "src": "1132:93:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 22, + "id": 23, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 19, + "id": 20, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1085:6:0", + "referencedDeclaration": 8, + "src": "1142:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4607,18 +5048,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 20, + "id": 21, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "1094:10:0", + "referencedDeclaration": 405, + "src": "1151:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 21, + "id": 22, "isConstant": false, "isLValue": false, "isPure": false, @@ -4626,21 +5067,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1094:12:0", + "src": "1151:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1085:21:0", + "src": "1142:21:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 23, + "id": 24, "nodeType": "ExpressionStatement", - "src": "1085:21:0" + "src": "1142:21:0" }, { "eventCall": { @@ -4652,14 +5093,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 26, + "id": 27, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1150:1:0", + "src": "1207:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4675,20 +5116,20 @@ "typeString": "int_const 0" } ], - "id": 25, + "id": 26, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1142:7:0", + "src": "1199:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 27, + "id": 28, "isConstant": false, "isLValue": false, "isPure": true, @@ -4696,7 +5137,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1142:10:0", + "src": "1199:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4704,12 +5145,12 @@ }, { "argumentTypes": null, - "id": 28, + "id": 29, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1154:6:0", + "referencedDeclaration": 8, + "src": "1211:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4727,18 +5168,18 @@ "typeString": "address payable" } ], - "id": 24, + "id": 25, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "1121:20:0", + "referencedDeclaration": 17, + "src": "1178:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 29, + "id": 30, "isConstant": false, "isLValue": false, "isPure": false, @@ -4746,94 +5187,94 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1121:40:0", + "src": "1178:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30, + "id": 31, "nodeType": "EmitStatement", - "src": "1116:45:0" + "src": "1173:45:0" } ] }, "documentation": "@dev Initializes the contract setting the deployer as the initial owner.", - "id": 32, + "id": 33, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [], - "src": "1063:2:0" - }, - "returnParameters": { "id": 18, "nodeType": "ParameterList", "parameters": [], - "src": "1075:0:0" + "src": "1120:2:0" }, - "scope": 117, - "src": "1051:117:0", + "returnParameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [], + "src": "1132:0:0" + }, + "scope": 118, + "src": "1108:117:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 39, + "id": 40, "nodeType": "Block", - "src": "1299:30:0", + "src": "1356:30:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 37, + "id": 38, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1316:6:0", + "referencedDeclaration": 8, + "src": "1373:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "functionReturnParameters": 36, - "id": 38, + "functionReturnParameters": 37, + "id": 39, "nodeType": "Return", - "src": "1309:13:0" + "src": "1366:13:0" } ] }, "documentation": "@dev Returns the address of the current owner.", - "id": 40, + "id": 41, "implemented": true, "kind": "function", "modifiers": [], "name": "owner", "nodeType": "FunctionDefinition", "parameters": { - "id": 33, + "id": 34, "nodeType": "ParameterList", "parameters": [], - "src": "1258:2:0" + "src": "1315:2:0" }, "returnParameters": { - "id": 36, + "id": 37, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 35, + "id": 36, "name": "", "nodeType": "VariableDeclaration", - "scope": 40, - "src": "1282:15:0", + "scope": 41, + "src": "1339:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4841,10 +5282,10 @@ "typeString": "address payable" }, "typeName": { - "id": 34, + "id": 35, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1282:15:0", + "src": "1339:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4855,19 +5296,19 @@ "visibility": "internal" } ], - "src": "1281:17:0" + "src": "1338:17:0" }, - "scope": 117, - "src": "1244:85:0", + "scope": 118, + "src": "1301:85:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 49, + "id": 50, "nodeType": "Block", - "src": "1438:82:0", + "src": "1495:82:0", "statements": [ { "expression": { @@ -4878,18 +5319,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 43, + "id": 44, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "1456:7:0", + "referencedDeclaration": 62, + "src": "1513:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 44, + "id": 45, "isConstant": false, "isLValue": false, "isPure": false, @@ -4897,7 +5338,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1456:9:0", + "src": "1513:9:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4906,14 +5347,14 @@ { "argumentTypes": null, "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 45, + "id": 46, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1467:34:0", + "src": "1524:34:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", @@ -4933,21 +5374,21 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 42, + "id": 43, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, - "src": "1448:7:0", + "referencedDeclaration": 1097, + "src": "1505:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 46, + "id": 47, "isConstant": false, "isLValue": false, "isPure": false, @@ -4955,41 +5396,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1448:54:0", + "src": "1505:54:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 47, + "id": 48, "nodeType": "ExpressionStatement", - "src": "1448:54:0" + "src": "1505:54:0" }, { - "id": 48, + "id": 49, "nodeType": "PlaceholderStatement", - "src": "1512:1:0" + "src": "1569:1:0" } ] }, "documentation": "@dev Throws if called by any account other than the owner.", - "id": 50, + "id": 51, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 41, + "id": 42, "nodeType": "ParameterList", "parameters": [], - "src": "1435:2:0" + "src": "1492:2:0" }, - "src": "1417:103:0", + "src": "1474:103:0", "visibility": "internal" }, { "body": { - "id": 60, + "id": 61, "nodeType": "Block", - "src": "1649:46:0", + "src": "1706:46:0", "statements": [ { "expression": { @@ -4998,7 +5439,7 @@ "typeIdentifier": "t_address_payable", "typeString": "address payable" }, - "id": 58, + "id": 59, "isConstant": false, "isLValue": false, "isPure": false, @@ -5008,18 +5449,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 55, + "id": 56, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "1666:10:0", + "referencedDeclaration": 405, + "src": "1723:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 56, + "id": 57, "isConstant": false, "isLValue": false, "isPure": false, @@ -5027,7 +5468,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1666:12:0", + "src": "1723:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5037,54 +5478,54 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 57, + "id": 58, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1682:6:0", + "referencedDeclaration": 8, + "src": "1739:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1666:22:0", + "src": "1723:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 54, - "id": 59, + "functionReturnParameters": 55, + "id": 60, "nodeType": "Return", - "src": "1659:29:0" + "src": "1716:29:0" } ] }, "documentation": "@dev Returns true if the caller is the current owner.", - "id": 61, + "id": 62, "implemented": true, "kind": "function", "modifiers": [], "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 51, + "id": 52, "nodeType": "ParameterList", "parameters": [], - "src": "1619:2:0" + "src": "1676:2:0" }, "returnParameters": { - "id": 54, + "id": 55, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53, + "id": 54, "name": "", "nodeType": "VariableDeclaration", - "scope": 61, - "src": "1643:4:0", + "scope": 62, + "src": "1700:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5092,10 +5533,10 @@ "typeString": "bool" }, "typeName": { - "id": 52, + "id": 53, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1643:4:0", + "src": "1700:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5105,19 +5546,19 @@ "visibility": "internal" } ], - "src": "1642:6:0" + "src": "1699:6:0" }, - "scope": 117, - "src": "1603:92:0", + "scope": 118, + "src": "1660:92:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 79, + "id": 80, "nodeType": "Block", - "src": "2083:91:0", + "src": "2140:91:0", "statements": [ { "eventCall": { @@ -5125,12 +5566,12 @@ "arguments": [ { "argumentTypes": null, - "id": 67, + "id": 68, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2119:6:0", + "referencedDeclaration": 8, + "src": "2176:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5142,14 +5583,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 69, + "id": 70, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2135:1:0", + "src": "2192:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5165,20 +5606,20 @@ "typeString": "int_const 0" } ], - "id": 68, + "id": 69, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2127:7:0", + "src": "2184:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 70, + "id": 71, "isConstant": false, "isLValue": false, "isPure": true, @@ -5186,7 +5627,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2127:10:0", + "src": "2184:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5204,18 +5645,18 @@ "typeString": "address payable" } ], - "id": 66, + "id": 67, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "2098:20:0", + "referencedDeclaration": 17, + "src": "2155:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 71, + "id": 72, "isConstant": false, "isLValue": false, "isPure": false, @@ -5223,32 +5664,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2098:40:0", + "src": "2155:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 72, + "id": 73, "nodeType": "EmitStatement", - "src": "2093:45:0" + "src": "2150:45:0" }, { "expression": { "argumentTypes": null, - "id": 77, + "id": 78, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 73, + "id": 74, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2148:6:0", + "referencedDeclaration": 8, + "src": "2205:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5262,14 +5703,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 75, + "id": 76, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2165:1:0", + "src": "2222:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5285,20 +5726,20 @@ "typeString": "int_const 0" } ], - "id": 74, + "id": 75, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2157:7:0", + "src": "2214:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 76, + "id": 77, "isConstant": false, "isLValue": false, "isPure": true, @@ -5306,74 +5747,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2157:10:0", + "src": "2214:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2148:19:0", + "src": "2205:19:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 78, + "id": 79, "nodeType": "ExpressionStatement", - "src": "2148:19:0" + "src": "2205:19:0" } ] }, "documentation": "@dev Leaves the contract without owner. It will not be possible to call\n`onlyOwner` functions anymore. Can only be called by the current owner.\n * NOTE: Renouncing ownership will leave the contract without an owner,\nthereby removing any functionality that is only available to the owner.", - "id": 80, + "id": 81, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 64, + "id": 65, "modifierName": { "argumentTypes": null, - "id": 63, + "id": 64, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "2073:9:0", + "referencedDeclaration": 51, + "src": "2130:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2073:9:0" + "src": "2130:9:0" } ], "name": "renounceOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 62, + "id": 63, "nodeType": "ParameterList", "parameters": [], - "src": "2063:2:0" + "src": "2120:2:0" }, "returnParameters": { - "id": 65, + "id": 66, "nodeType": "ParameterList", "parameters": [], - "src": "2083:0:0" + "src": "2140:0:0" }, - "scope": 117, - "src": "2037:137:0", + "scope": 118, + "src": "2094:137:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 91, + "id": 92, "nodeType": "Block", - "src": "2393:45:0", + "src": "2450:45:0", "statements": [ { "expression": { @@ -5381,12 +5822,12 @@ "arguments": [ { "argumentTypes": null, - "id": 88, + "id": 89, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 82, - "src": "2422:8:0", + "referencedDeclaration": 83, + "src": "2479:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5400,18 +5841,18 @@ "typeString": "address payable" } ], - "id": 87, + "id": 88, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2403:18:0", + "referencedDeclaration": 117, + "src": "2460:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, - "id": 89, + "id": 90, "isConstant": false, "isLValue": false, "isPure": false, @@ -5419,56 +5860,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2403:28:0", + "src": "2460:28:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 90, + "id": 91, "nodeType": "ExpressionStatement", - "src": "2403:28:0" + "src": "2460:28:0" } ] }, "documentation": "@dev Transfers ownership of the contract to a new account (`newOwner`).\nCan only be called by the current owner.", - "id": 92, + "id": 93, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 85, + "id": 86, "modifierName": { "argumentTypes": null, - "id": 84, + "id": 85, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "2383:9:0", + "referencedDeclaration": 51, + "src": "2440:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2383:9:0" + "src": "2440:9:0" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 83, + "id": 84, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 82, + "id": 83, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 92, - "src": "2350:24:0", + "scope": 93, + "src": "2407:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5476,10 +5917,10 @@ "typeString": "address payable" }, "typeName": { - "id": 81, + "id": 82, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2350:15:0", + "src": "2407:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5490,25 +5931,25 @@ "visibility": "internal" } ], - "src": "2349:26:0" + "src": "2406:26:0" }, "returnParameters": { - "id": 86, + "id": 87, "nodeType": "ParameterList", "parameters": [], - "src": "2393:0:0" + "src": "2450:0:0" }, - "scope": 117, - "src": "2323:115:0", + "scope": 118, + "src": "2380:115:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 115, + "id": 116, "nodeType": "Block", - "src": "2602:170:0", + "src": "2659:170:0", "statements": [ { "expression": { @@ -5520,19 +5961,19 @@ "typeIdentifier": "t_address_payable", "typeString": "address payable" }, - "id": 102, + "id": 103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 98, + "id": 99, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "2620:8:0", + "referencedDeclaration": 95, + "src": "2677:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5546,14 +5987,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 100, + "id": 101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2640:1:0", + "src": "2697:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5569,20 +6010,20 @@ "typeString": "int_const 0" } ], - "id": 99, + "id": 100, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2632:7:0", + "src": "2689:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 101, + "id": 102, "isConstant": false, "isLValue": false, "isPure": true, @@ -5590,13 +6031,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2632:10:0", + "src": "2689:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2620:22:0", + "src": "2677:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5605,14 +6046,14 @@ { "argumentTypes": null, "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 103, + "id": 104, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2644:40:0", + "src": "2701:40:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", @@ -5632,21 +6073,21 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 97, + "id": 98, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, - "src": "2612:7:0", + "referencedDeclaration": 1097, + "src": "2669:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 104, + "id": 105, "isConstant": false, "isLValue": false, "isPure": false, @@ -5654,15 +6095,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2612:73:0", + "src": "2669:73:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 105, + "id": 106, "nodeType": "ExpressionStatement", - "src": "2612:73:0" + "src": "2669:73:0" }, { "eventCall": { @@ -5670,12 +6111,12 @@ "arguments": [ { "argumentTypes": null, - "id": 107, + "id": 108, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2721:6:0", + "referencedDeclaration": 8, + "src": "2778:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5683,12 +6124,12 @@ }, { "argumentTypes": null, - "id": 108, + "id": 109, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "2729:8:0", + "referencedDeclaration": 95, + "src": "2786:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5706,18 +6147,18 @@ "typeString": "address payable" } ], - "id": 106, + "id": 107, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "2700:20:0", + "referencedDeclaration": 17, + "src": "2757:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 109, + "id": 110, "isConstant": false, "isLValue": false, "isPure": false, @@ -5725,32 +6166,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2700:38:0", + "src": "2757:38:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 110, + "id": 111, "nodeType": "EmitStatement", - "src": "2695:43:0" + "src": "2752:43:0" }, { "expression": { "argumentTypes": null, - "id": 113, + "id": 114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 111, + "id": 112, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2748:6:0", + "referencedDeclaration": 8, + "src": "2805:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5760,47 +6201,47 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 112, + "id": 113, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "2757:8:0", + "referencedDeclaration": 95, + "src": "2814:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2748:17:0", + "src": "2805:17:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 114, + "id": 115, "nodeType": "ExpressionStatement", - "src": "2748:17:0" + "src": "2805:17:0" } ] }, "documentation": "@dev Transfers ownership of the contract to a new account (`newOwner`).", - "id": 116, + "id": 117, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 95, + "id": 96, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 94, + "id": 95, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 116, - "src": "2567:24:0", + "scope": 117, + "src": "2624:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5808,10 +6249,10 @@ "typeString": "address payable" }, "typeName": { - "id": 93, + "id": 94, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2567:15:0", + "src": "2624:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5822,23 +6263,23 @@ "visibility": "internal" } ], - "src": "2566:26:0" + "src": "2623:26:0" }, "returnParameters": { - "id": 96, + "id": 97, "nodeType": "ParameterList", "parameters": [], - "src": "2602:0:0" + "src": "2659:0:0" }, - "scope": 117, - "src": "2539:233:0", + "scope": 118, + "src": "2596:233:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 298, - "src": "762:2012:0" + "scope": 334, + "src": "819:2012:0" }, { "baseContracts": [ @@ -5846,80 +6287,80 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 118, + "id": 119, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 973, - "src": "3053:5:0", + "referencedDeclaration": 1009, + "src": "3105:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$973", + "typeIdentifier": "t_contract$_ERC20_$1009", "typeString": "contract ERC20" } }, - "id": 119, + "id": 120, "nodeType": "InheritanceSpecifier", - "src": "3053:5:0" + "src": "3105:5:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 120, + "id": 121, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 117, - "src": "3060:7:0", + "referencedDeclaration": 118, + "src": "3112:7:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$117", + "typeIdentifier": "t_contract$_Ownable_$118", "typeString": "contract Ownable" } }, - "id": 121, + "id": 122, "nodeType": "InheritanceSpecifier", - "src": "3060:7:0" + "src": "3112:7:0" } ], "contractDependencies": [ - 117, - 381, - 973, - 1042 + 118, + 417, + 1009, + 1078 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 297, + "id": 333, "linearizedBaseContracts": [ - 297, - 117, - 973, - 1042, - 381 + 333, + 118, + 1009, + 1078, + 417 ], - "name": "DECAToken", + "name": "DECA", "nodeType": "ContractDefinition", "nodes": [ { - "id": 124, + "id": 125, "libraryName": { "contractScope": null, - "id": 122, + "id": 123, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 568, - "src": "3080:8:0", + "referencedDeclaration": 604, + "src": "3132:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$568", + "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3074:27:0", + "src": "3126:27:0", "typeName": { - "id": 123, + "id": 124, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3093:7:0", + "src": "3145:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5928,11 +6369,11 @@ }, { "constant": true, - "id": 127, + "id": 128, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3106:38:0", + "scope": 333, + "src": "3158:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5940,10 +6381,10 @@ "typeString": "string" }, "typeName": { - "id": 125, + "id": 126, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3106:6:0", + "src": "3158:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -5952,14 +6393,14 @@ "value": { "argumentTypes": null, "hexValue": "44454341", - "id": 126, + "id": 127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3138:6:0", + "src": "3190:6:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a49565813a43765a9dfdf315aaa77336d9844a752bb9a788d2dad0f019de1858", @@ -5971,11 +6412,11 @@ }, { "constant": true, - "id": 130, + "id": 131, "name": "name", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3150:59:0", + "scope": 333, + "src": "3202:59:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5983,10 +6424,10 @@ "typeString": "string" }, "typeName": { - "id": 128, + "id": 129, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3150:6:0", + "src": "3202:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -5995,14 +6436,14 @@ "value": { "argumentTypes": null, "hexValue": "444563656e7472616c697a656420434172626f6e20746f6b656e73", - "id": 129, + "id": 130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3180:29:0", + "src": "3232:29:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a71fc6dd39cdb20c976c32b6365d2e473e0bcd38ac1af23f856facc675f989cb", @@ -6014,11 +6455,11 @@ }, { "constant": true, - "id": 133, + "id": 134, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3215:35:0", + "scope": 333, + "src": "3267:35:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6026,10 +6467,10 @@ "typeString": "uint8" }, "typeName": { - "id": 131, + "id": 132, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3215:5:0", + "src": "3267:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6038,14 +6479,14 @@ "value": { "argumentTypes": null, "hexValue": "3138", - "id": 132, + "id": 133, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3248:2:0", + "src": "3300:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -6057,11 +6498,11 @@ }, { "constant": false, - "id": 138, + "id": 139, "name": "preICOEnds", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3300:38:0", + "scope": 333, + "src": "3352:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6069,10 +6510,10 @@ "typeString": "uint256" }, "typeName": { - "id": 134, + "id": 135, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3300:4:0", + "src": "3352:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6084,19 +6525,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 137, + "id": 138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 135, + "id": 136, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3325:3:0", + "referencedDeclaration": 1095, + "src": "3377:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6107,14 +6548,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 136, + "id": 137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3331:7:0", + "src": "3383:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_604800_by_1", @@ -6122,7 +6563,7 @@ }, "value": "1" }, - "src": "3325:13:0", + "src": "3377:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6132,11 +6573,11 @@ }, { "constant": false, - "id": 143, + "id": 144, "name": "bonus1Ends", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3344:38:0", + "scope": 333, + "src": "3396:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6144,10 +6585,10 @@ "typeString": "uint256" }, "typeName": { - "id": 139, + "id": 140, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3344:4:0", + "src": "3396:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6159,19 +6600,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 142, + "id": 143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 140, + "id": 141, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3369:3:0", + "referencedDeclaration": 1095, + "src": "3421:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6182,14 +6623,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "33", - "id": 141, + "id": 142, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3375:7:0", + "src": "3427:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_1814400_by_1", @@ -6197,7 +6638,7 @@ }, "value": "3" }, - "src": "3369:13:0", + "src": "3421:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6207,11 +6648,11 @@ }, { "constant": false, - "id": 148, + "id": 149, "name": "bonus2Ends", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3388:38:0", + "scope": 333, + "src": "3440:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6219,10 +6660,10 @@ "typeString": "uint256" }, "typeName": { - "id": 144, + "id": 145, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3388:4:0", + "src": "3440:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6234,19 +6675,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 147, + "id": 148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 145, + "id": 146, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3413:3:0", + "referencedDeclaration": 1095, + "src": "3465:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6257,14 +6698,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 146, + "id": 147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3419:7:0", + "src": "3471:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_3628800_by_1", @@ -6272,7 +6713,7 @@ }, "value": "6" }, - "src": "3413:13:0", + "src": "3465:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6282,11 +6723,11 @@ }, { "constant": false, - "id": 153, + "id": 154, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3432:36:0", + "scope": 333, + "src": "3484:36:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6294,10 +6735,10 @@ "typeString": "uint256" }, "typeName": { - "id": 149, + "id": 150, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3432:4:0", + "src": "3484:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6309,19 +6750,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 152, + "id": 153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 150, + "id": 151, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3454:3:0", + "referencedDeclaration": 1095, + "src": "3506:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6332,14 +6773,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3131", - "id": 151, + "id": 152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3460:8:0", + "src": "3512:8:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_6652800_by_1", @@ -6347,7 +6788,7 @@ }, "value": "11" }, - "src": "3454:14:0", + "src": "3506:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6355,11 +6796,380 @@ }, "visibility": "public" }, + { + "constant": false, + "id": 157, + "name": "_pause", + "nodeType": "VariableDeclaration", + "scope": 333, + "src": "3526:27:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 155, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3526:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3548:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "private" + }, { "body": { - "id": 253, + "id": 166, "nodeType": "Block", - "src": "3695:807:0", + "src": "3581:66:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3599:7:0", + "subExpression": { + "argumentTypes": null, + "id": 160, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "3600:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "63726f776473616c65206f6e207061757365", + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3608:20:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2a660c6a64b030651f27b71bc8d6deb86294e2010eb3292c6f116ef89c98fd", + "typeString": "literal_string \"crowdsale on pause\"" + }, + "value": "crowdsale on pause" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2a660c6a64b030651f27b71bc8d6deb86294e2010eb3292c6f116ef89c98fd", + "typeString": "literal_string \"crowdsale on pause\"" + } + ], + "id": 159, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1096, + 1097 + ], + "referencedDeclaration": 1097, + "src": "3591:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3591:38:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 164, + "nodeType": "ExpressionStatement", + "src": "3591:38:0" + }, + { + "id": 165, + "nodeType": "PlaceholderStatement", + "src": "3639:1:0" + } + ] + }, + "documentation": null, + "id": 167, + "name": "notPaused", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 158, + "nodeType": "ParameterList", + "parameters": [], + "src": "3578:2:0" + }, + "src": "3560:87:0", + "visibility": "internal" + }, + { + "body": { + "id": 174, + "nodeType": "Block", + "src": "3698:30:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 172, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "3715:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 171, + "id": 173, + "nodeType": "Return", + "src": "3708:13:0" + } + ] + }, + "documentation": null, + "id": 175, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPause", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 168, + "nodeType": "ParameterList", + "parameters": [], + "src": "3669:2:0" + }, + "returnParameters": { + "id": 171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 170, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "3693:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 169, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3693:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:6:0" + }, + "scope": 333, + "src": "3652:76:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 186, + "nodeType": "Block", + "src": "3779:27:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 182, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "3789:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 183, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "3798:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3789:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 185, + "nodeType": "ExpressionStatement", + "src": "3789:10:0" + } + ] + }, + "documentation": null, + "id": 187, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 180, + "modifierName": { + "argumentTypes": null, + "id": 179, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 51, + "src": "3769:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3769:9:0" + } + ], + "name": "setPause", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 177, + "name": "p", + "nodeType": "VariableDeclaration", + "scope": 187, + "src": "3752:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 176, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3752:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3751:8:0" + }, + "returnParameters": { + "id": 181, + "nodeType": "ParameterList", + "parameters": [], + "src": "3779:0:0" + }, + "scope": 333, + "src": "3734:72:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 289, + "nodeType": "Block", + "src": "4042:815:0", "statements": [ { "expression": { @@ -6371,19 +7181,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 159, + "id": 195, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 157, + "id": 193, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3713:3:0", + "referencedDeclaration": 1095, + "src": "4060:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6393,18 +7203,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 158, + "id": 194, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "3720:7:0", + "referencedDeclaration": 154, + "src": "4067:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3713:14:0", + "src": "4060:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6418,21 +7228,21 @@ "typeString": "bool" } ], - "id": 156, + "id": 192, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1060, - "src": "3705:7:0", + "referencedDeclaration": 1096, + "src": "4052:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 160, + "id": 196, "isConstant": false, "isLValue": false, "isPure": false, @@ -6440,28 +7250,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3705:23:0", + "src": "4052:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 161, + "id": 197, "nodeType": "ExpressionStatement", - "src": "3705:23:0" + "src": "4052:23:0" }, { "assignments": [ - 163 + 199 ], "declarations": [ { "constant": false, - "id": 163, + "id": 199, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3738:11:0", + "scope": 289, + "src": "4085:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6469,10 +7279,10 @@ "typeString": "uint256" }, "typeName": { - "id": 162, + "id": 198, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3738:4:0", + "src": "4085:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6482,23 +7292,23 @@ "visibility": "internal" } ], - "id": 164, + "id": 200, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3738:11:0" + "src": "4085:11:0" }, { "assignments": [ - 166 + 202 ], "declarations": [ { "constant": false, - "id": 166, + "id": 202, "name": "toOwner", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3759:12:0", + "scope": 289, + "src": "4106:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6506,10 +7316,10 @@ "typeString": "uint256" }, "typeName": { - "id": 165, + "id": 201, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3759:4:0", + "src": "4106:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6519,23 +7329,23 @@ "visibility": "internal" } ], - "id": 167, + "id": 203, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3759:12:0" + "src": "4106:12:0" }, { "assignments": [ - 169 + 205 ], "declarations": [ { "constant": false, - "id": 169, + "id": 205, "name": "toSender", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3781:13:0", + "scope": 289, + "src": "4128:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6543,10 +7353,10 @@ "typeString": "uint256" }, "typeName": { - "id": 168, + "id": 204, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3781:4:0", + "src": "4128:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6556,23 +7366,23 @@ "visibility": "internal" } ], - "id": 170, + "id": 206, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3781:13:0" + "src": "4128:13:0" }, { "assignments": [ - 172 + 208 ], "declarations": [ { "constant": false, - "id": 172, + "id": 208, "name": "divBy", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3804:10:0", + "scope": 289, + "src": "4151:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6580,10 +7390,10 @@ "typeString": "uint256" }, "typeName": { - "id": 171, + "id": 207, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3804:4:0", + "src": "4151:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6593,27 +7403,27 @@ "visibility": "internal" } ], - "id": 173, + "id": 209, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3804:10:0" + "src": "4151:10:0" }, { "expression": { "argumentTypes": null, - "id": 176, + "id": 212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 174, + "id": 210, "name": "divBy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "3825:5:0", + "referencedDeclaration": 208, + "src": "4172:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6624,14 +7434,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3430", - "id": 175, + "id": 211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3833:2:0", + "src": "4180:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_40_by_1", @@ -6639,15 +7449,15 @@ }, "value": "40" }, - "src": "3825:10:0", + "src": "4172:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 177, + "id": 213, "nodeType": "ExpressionStatement", - "src": "3825:10:0" + "src": "4172:10:0" }, { "condition": { @@ -6656,19 +7466,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 180, + "id": 216, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 178, + "id": 214, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3918:3:0", + "referencedDeclaration": 1095, + "src": "4273:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6678,18 +7488,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 179, + "id": 215, "name": "preICOEnds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "3925:10:0", + "referencedDeclaration": 139, + "src": "4280:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3918:17:0", + "src": "4273:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6702,7 +7512,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 195, + "id": 231, "isConstant": false, "isLValue": false, "isPure": false, @@ -6713,19 +7523,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 191, + "id": 227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 189, + "id": 225, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3996:3:0", + "referencedDeclaration": 1095, + "src": "4351:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6735,18 +7545,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 190, + "id": 226, "name": "preICOEnds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "4002:10:0", + "referencedDeclaration": 139, + "src": "4357:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3996:16:0", + "src": "4351:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6760,19 +7570,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 194, + "id": 230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 192, + "id": 228, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4016:3:0", + "referencedDeclaration": 1095, + "src": "4371:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6782,24 +7592,24 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 193, + "id": 229, "name": "bonus1Ends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "4023:10:0", + "referencedDeclaration": 144, + "src": "4378:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4016:17:0", + "src": "4371:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3996:37:0", + "src": "4351:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6812,7 +7622,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 210, + "id": 246, "isConstant": false, "isLValue": false, "isPure": false, @@ -6823,19 +7633,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 206, + "id": 242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 204, + "id": 240, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4094:3:0", + "referencedDeclaration": 1095, + "src": "4449:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6845,18 +7655,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 205, + "id": 241, "name": "bonus1Ends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "4100:10:0", + "referencedDeclaration": 144, + "src": "4455:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4094:16:0", + "src": "4449:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6870,19 +7680,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 209, + "id": 245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 207, + "id": 243, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4114:3:0", + "referencedDeclaration": 1095, + "src": "4469:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6892,50 +7702,50 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 208, + "id": 244, "name": "bonus2Ends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 148, - "src": "4121:10:0", + "referencedDeclaration": 149, + "src": "4476:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4114:17:0", + "src": "4469:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4094:37:0", + "src": "4449:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 226, + "id": 262, "nodeType": "Block", - "src": "4188:49:0", + "src": "4543:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 224, + "id": 260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 219, + "id": 255, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4202:6:0", + "referencedDeclaration": 199, + "src": "4557:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6949,7 +7759,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 223, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, @@ -6958,18 +7768,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 220, + "id": 256, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4211:3:0", + "referencedDeclaration": 1093, + "src": "4566:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 221, + "id": 257, "isConstant": false, "isLValue": false, "isPure": false, @@ -6977,7 +7787,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4211:9:0", + "src": "4566:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6987,64 +7797,64 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "313030", - "id": 222, + "hexValue": "323235", + "id": 258, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4223:3:0", + "src": "4578:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" + "typeIdentifier": "t_rational_225_by_1", + "typeString": "int_const 225" }, - "value": "100" + "value": "225" }, - "src": "4211:15:0", + "src": "4566:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4202:24:0", + "src": "4557:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 225, + "id": 261, "nodeType": "ExpressionStatement", - "src": "4202:24:0" + "src": "4557:24:0" } ] }, - "id": 227, + "id": 263, "nodeType": "IfStatement", - "src": "4090:147:0", + "src": "4445:147:0", "trueBody": { - "id": 218, + "id": 254, "nodeType": "Block", - "src": "4133:49:0", + "src": "4488:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 216, + "id": 252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 211, + "id": 247, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4147:6:0", + "referencedDeclaration": 199, + "src": "4502:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7058,7 +7868,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 215, + "id": 251, "isConstant": false, "isLValue": false, "isPure": false, @@ -7067,18 +7877,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 212, + "id": 248, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4156:3:0", + "referencedDeclaration": 1093, + "src": "4511:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 213, + "id": 249, "isConstant": false, "isLValue": false, "isPure": false, @@ -7086,7 +7896,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4156:9:0", + "src": "4511:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7096,65 +7906,65 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "313235", - "id": 214, + "hexValue": "323530", + "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4168:3:0", + "src": "4523:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_125_by_1", - "typeString": "int_const 125" + "typeIdentifier": "t_rational_250_by_1", + "typeString": "int_const 250" }, - "value": "125" + "value": "250" }, - "src": "4156:15:0", + "src": "4511:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4147:24:0", + "src": "4502:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 217, + "id": 253, "nodeType": "ExpressionStatement", - "src": "4147:24:0" + "src": "4502:24:0" } ] } }, - "id": 228, + "id": 264, "nodeType": "IfStatement", - "src": "3992:245:0", + "src": "4347:245:0", "trueBody": { - "id": 203, + "id": 239, "nodeType": "Block", - "src": "4035:49:0", + "src": "4390:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 201, + "id": 237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 196, + "id": 232, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4049:6:0", + "referencedDeclaration": 199, + "src": "4404:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7168,7 +7978,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 200, + "id": 236, "isConstant": false, "isLValue": false, "isPure": false, @@ -7177,18 +7987,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 197, + "id": 233, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4058:3:0", + "referencedDeclaration": 1093, + "src": "4413:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 198, + "id": 234, "isConstant": false, "isLValue": false, "isPure": false, @@ -7196,7 +8006,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4058:9:0", + "src": "4413:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7206,65 +8016,65 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "313530", - "id": 199, + "hexValue": "323735", + "id": 235, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4070:3:0", + "src": "4425:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_150_by_1", - "typeString": "int_const 150" + "typeIdentifier": "t_rational_275_by_1", + "typeString": "int_const 275" }, - "value": "150" + "value": "275" }, - "src": "4058:15:0", + "src": "4413:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4049:24:0", + "src": "4404:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 202, + "id": 238, "nodeType": "ExpressionStatement", - "src": "4049:24:0" + "src": "4404:24:0" } ] } }, - "id": 229, + "id": 265, "nodeType": "IfStatement", - "src": "3914:323:0", + "src": "4269:323:0", "trueBody": { - "id": 188, + "id": 224, "nodeType": "Block", - "src": "3937:49:0", + "src": "4292:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 186, + "id": 222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 181, + "id": 217, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "3951:6:0", + "referencedDeclaration": 199, + "src": "4306:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7278,7 +8088,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 185, + "id": 221, "isConstant": false, "isLValue": false, "isPure": false, @@ -7287,18 +8097,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 182, + "id": 218, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "3960:3:0", + "referencedDeclaration": 1093, + "src": "4315:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 183, + "id": 219, "isConstant": false, "isLValue": false, "isPure": false, @@ -7306,7 +8116,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3960:9:0", + "src": "4315:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7316,37 +8126,37 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "323030", - "id": 184, + "hexValue": "333030", + "id": 220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3972:3:0", + "src": "4327:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_200_by_1", - "typeString": "int_const 200" + "typeIdentifier": "t_rational_300_by_1", + "typeString": "int_const 300" }, - "value": "200" + "value": "300" }, - "src": "3960:15:0", + "src": "4315:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3951:24:0", + "src": "4306:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 187, + "id": 223, "nodeType": "ExpressionStatement", - "src": "3951:24:0" + "src": "4306:24:0" } ] } @@ -7354,19 +8164,19 @@ { "expression": { "argumentTypes": null, - "id": 235, + "id": 271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 230, + "id": 266, "name": "toOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "4247:7:0", + "referencedDeclaration": 202, + "src": "4602:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7379,12 +8189,12 @@ "arguments": [ { "argumentTypes": null, - "id": 233, + "id": 269, "name": "divBy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "4268:5:0", + "referencedDeclaration": 208, + "src": "4623:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7400,32 +8210,32 @@ ], "expression": { "argumentTypes": null, - "id": 231, + "id": 267, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4257:6:0", + "referencedDeclaration": 199, + "src": "4612:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 232, + "id": 268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 501, - "src": "4257:10:0", + "referencedDeclaration": 537, + "src": "4612:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 234, + "id": 270, "isConstant": false, "isLValue": false, "isPure": false, @@ -7433,38 +8243,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4257:17:0", + "src": "4612:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4247:27:0", + "src": "4602:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 236, + "id": 272, "nodeType": "ExpressionStatement", - "src": "4247:27:0" + "src": "4602:27:0" }, { "expression": { "argumentTypes": null, - "id": 239, + "id": 275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 237, + "id": 273, "name": "toSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "4366:8:0", + "referencedDeclaration": 205, + "src": "4721:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7474,26 +8284,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 238, + "id": 274, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4377:6:0", + "referencedDeclaration": 199, + "src": "4732:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4366:17:0", + "src": "4721:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 240, + "id": 276, "nodeType": "ExpressionStatement", - "src": "4366:17:0" + "src": "4721:17:0" }, { "expression": { @@ -7504,18 +8314,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 242, + "id": 278, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "4441:5:0", + "referencedDeclaration": 41, + "src": "4796:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 243, + "id": 279, "isConstant": false, "isLValue": false, "isPure": false, @@ -7523,7 +8333,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4441:7:0", + "src": "4796:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -7531,12 +8341,12 @@ }, { "argumentTypes": null, - "id": 244, + "id": 280, "name": "toOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "4450:7:0", + "referencedDeclaration": 202, + "src": "4805:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7554,18 +8364,18 @@ "typeString": "uint256" } ], - "id": 241, + "id": 277, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "4435:5:0", + "referencedDeclaration": 893, + "src": "4790:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 245, + "id": 281, "isConstant": false, "isLValue": false, "isPure": false, @@ -7573,15 +8383,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4435:23:0", + "src": "4790:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 246, + "id": 282, "nodeType": "ExpressionStatement", - "src": "4435:23:0" + "src": "4790:23:0" }, { "expression": { @@ -7591,18 +8401,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 248, + "id": 284, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4474:3:0", + "referencedDeclaration": 1093, + "src": "4829:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 249, + "id": 285, "isConstant": false, "isLValue": false, "isPure": false, @@ -7610,7 +8420,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4474:10:0", + "src": "4829:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -7618,12 +8428,12 @@ }, { "argumentTypes": null, - "id": 250, + "id": 286, "name": "toSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "4486:8:0", + "referencedDeclaration": 205, + "src": "4841:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7641,18 +8451,18 @@ "typeString": "uint256" } ], - "id": 247, + "id": 283, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "4468:5:0", + "referencedDeclaration": 893, + "src": "4823:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 251, + "id": 287, "isConstant": false, "isLValue": false, "isPure": false, @@ -7660,48 +8470,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4468:27:0", + "src": "4823:27:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 252, + "id": 288, "nodeType": "ExpressionStatement", - "src": "4468:27:0" + "src": "4823:27:0" } ] }, "documentation": null, - "id": 254, + "id": 290, "implemented": true, "kind": "fallback", - "modifiers": [], + "modifiers": [ + { + "arguments": null, + "id": 190, + "modifierName": { + "argumentTypes": null, + "id": 189, + "name": "notPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "4015:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4015:9:0" + } + ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 154, + "id": 188, "nodeType": "ParameterList", "parameters": [], - "src": "3675:2:0" + "src": "4012:2:0" }, "returnParameters": { - "id": 155, + "id": 191, "nodeType": "ParameterList", "parameters": [], - "src": "3695:0:0" + "src": "4042:0:0" }, - "scope": 297, - "src": "3667:835:0", + "scope": 333, + "src": "4004:853:0", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 274, + "id": 310, "nodeType": "Block", - "src": "4589:154:0", + "src": "4944:154:0", "statements": [ { "expression": { @@ -7713,19 +8543,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 262, + "id": 298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 260, + "id": 296, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4607:3:0", + "referencedDeclaration": 1095, + "src": "4962:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7735,18 +8565,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 261, + "id": 297, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "4614:7:0", + "referencedDeclaration": 154, + "src": "4969:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4607:14:0", + "src": "4962:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7760,21 +8590,21 @@ "typeString": "bool" } ], - "id": 259, + "id": 295, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1060, - "src": "4599:7:0", + "referencedDeclaration": 1096, + "src": "4954:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 263, + "id": 299, "isConstant": false, "isLValue": false, "isPure": false, @@ -7782,15 +8612,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4599:23:0", + "src": "4954:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 264, + "id": 300, "nodeType": "ExpressionStatement", - "src": "4599:23:0" + "src": "4954:23:0" }, { "expression": { @@ -7803,39 +8633,39 @@ "arguments": [ { "argumentTypes": null, - "id": 269, + "id": 305, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "4722:4:0", + "referencedDeclaration": 1117, + "src": "5077:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_DECAToken_$297", - "typeString": "contract DECAToken" + "typeIdentifier": "t_contract$_DECA_$333", + "typeString": "contract DECA" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_DECAToken_$297", - "typeString": "contract DECAToken" + "typeIdentifier": "t_contract$_DECA_$333", + "typeString": "contract DECA" } ], - "id": 268, + "id": 304, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4714:7:0", + "src": "5069:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 270, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, @@ -7843,13 +8673,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4714:13:0", + "src": "5069:13:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 271, + "id": 307, "isConstant": false, "isLValue": false, "isPure": false, @@ -7857,7 +8687,7 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4714:21:0", + "src": "5069:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7876,18 +8706,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 265, + "id": 301, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "4697:5:0", + "referencedDeclaration": 41, + "src": "5052:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 266, + "id": 302, "isConstant": false, "isLValue": false, "isPure": false, @@ -7895,13 +8725,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4697:7:0", + "src": "5052:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 267, + "id": 303, "isConstant": false, "isLValue": false, "isPure": false, @@ -7909,13 +8739,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4697:16:0", + "src": "5052:16:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 272, + "id": 308, "isConstant": false, "isLValue": false, "isPure": false, @@ -7923,68 +8753,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4697:39:0", + "src": "5052:39:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 273, + "id": 309, "nodeType": "ExpressionStatement", - "src": "4697:39:0" + "src": "5052:39:0" } ] }, "documentation": null, - "id": 275, + "id": 311, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 257, + "id": 293, "modifierName": { "argumentTypes": null, - "id": 256, + "id": 292, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "4579:9:0", + "referencedDeclaration": 51, + "src": "4934:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4579:9:0" + "src": "4934:9:0" } ], "name": "getETH", "nodeType": "FunctionDefinition", "parameters": { - "id": 255, + "id": 291, "nodeType": "ParameterList", "parameters": [], - "src": "4569:2:0" + "src": "4924:2:0" }, "returnParameters": { - "id": 258, + "id": 294, "nodeType": "ParameterList", "parameters": [], - "src": "4589:0:0" + "src": "4944:0:0" }, - "scope": 297, - "src": "4554:189:0", + "scope": 333, + "src": "4909:189:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 295, + "id": 331, "nodeType": "Block", - "src": "5088:70:0", + "src": "5443:70:0", "statements": [ { "expression": { @@ -7995,18 +8825,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 290, + "id": 326, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "5135:5:0", + "referencedDeclaration": 41, + "src": "5490:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 291, + "id": 327, "isConstant": false, "isLValue": false, "isPure": false, @@ -8014,7 +8844,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5135:7:0", + "src": "5490:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -8022,12 +8852,12 @@ }, { "argumentTypes": null, - "id": 292, + "id": 328, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5144:6:0", + "referencedDeclaration": 315, + "src": "5499:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8050,12 +8880,12 @@ "arguments": [ { "argumentTypes": null, - "id": 287, + "id": 323, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 277, - "src": "5112:12:0", + "referencedDeclaration": 313, + "src": "5467:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -8069,18 +8899,18 @@ "typeString": "address payable" } ], - "id": 286, + "id": 322, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "5105:6:0", + "referencedDeclaration": 1078, + "src": "5460:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$1042_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1078_$", "typeString": "type(contract IERC20)" } }, - "id": 288, + "id": 324, "isConstant": false, "isLValue": false, "isPure": false, @@ -8088,27 +8918,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5105:20:0", + "src": "5460:20:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1042", + "typeIdentifier": "t_contract$_IERC20_$1078", "typeString": "contract IERC20" } }, - "id": 289, + "id": 325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 996, - "src": "5105:29:0", + "referencedDeclaration": 1032, + "src": "5460:29:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 293, + "id": 329, "isConstant": false, "isLValue": false, "isPure": false, @@ -8116,57 +8946,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5105:46:0", + "src": "5460:46:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 285, - "id": 294, + "functionReturnParameters": 321, + "id": 330, "nodeType": "Return", - "src": "5098:53:0" + "src": "5453:53:0" } ] }, "documentation": null, - "id": 296, + "id": 332, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 282, + "id": 318, "modifierName": { "argumentTypes": null, - "id": 281, + "id": 317, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "5055:9:0", + "referencedDeclaration": 51, + "src": "5410:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5055:9:0" + "src": "5410:9:0" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 280, + "id": 316, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 277, + "id": 313, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 296, - "src": "5005:28:0", + "scope": 332, + "src": "5360:28:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8174,10 +9004,10 @@ "typeString": "address payable" }, "typeName": { - "id": 276, + "id": 312, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5005:15:0", + "src": "5360:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -8189,11 +9019,11 @@ }, { "constant": false, - "id": 279, + "id": 315, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 296, - "src": "5035:11:0", + "scope": 332, + "src": "5390:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8201,10 +9031,10 @@ "typeString": "uint256" }, "typeName": { - "id": 278, + "id": 314, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5035:4:0", + "src": "5390:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8214,19 +9044,19 @@ "visibility": "internal" } ], - "src": "5004:43:0" + "src": "5359:43:0" }, "returnParameters": { - "id": 285, + "id": 321, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 284, + "id": 320, "name": "success", "nodeType": "VariableDeclaration", - "scope": 296, - "src": "5074:12:0", + "scope": 332, + "src": "5429:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8234,10 +9064,10 @@ "typeString": "bool" }, "typeName": { - "id": 283, + "id": 319, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5074:4:0", + "src": "5429:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8247,345 +9077,28 @@ "visibility": "internal" } ], - "src": "5073:14:0" + "src": "5428:14:0" }, - "scope": 297, - "src": "4974:184:0", + "scope": 333, + "src": "5329:184:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 298, - "src": "3031:2129:0" + "scope": 334, + "src": "3088:2427:0" } ], - "src": "0:5161:0" + "src": "0:5516:0" }, "compiler": { "name": "solc", "version": "0.5.12+commit.7709ece9.Emscripten.clang" }, - "networks": { - "1577403801270": { - "events": { - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event", - "signature": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925" - }, - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event", - "signature": "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0" - }, - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event", - "signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef" - } - }, - "links": {}, - "address": "0xA4f3A89734D771FddeDAAc6bB7FDF00a1b58A338", - "transactionHash": "0xc8cca447094a875a507cc40dc818e0811cae0b6285b3cc9b614f19e10a3fbfee" - }, - "1577584905270": { - "events": { - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event", - "signature": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925" - }, - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event", - "signature": "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0" - }, - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event", - "signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef" - } - }, - "links": {}, - "address": "0x95092FB5244962cAE9bcE7929648A708BF450B56", - "transactionHash": "0x8b66de81792bdcd276c7a8a1add3c3438d75691e8d1d0b2bc0027492ced79b92" - }, - "1577585216124": { - "events": { - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event", - "signature": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925" - }, - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event", - "signature": "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0" - }, - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event", - "signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef" - } - }, - "links": {}, - "address": "0x3c8CbbD5CD9dDA86E090F68B89e4B76871E8d94e", - "transactionHash": "0xc993d8fe0da6b62556105b19f4757796d291ec9c02279602052c1b65256bcc78" - }, - "1577585630921": { - "events": { - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event", - "signature": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925" - }, - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event", - "signature": "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0" - }, - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event", - "signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef" - } - }, - "links": {}, - "address": "0xcF5F8DcA99098C056397bD6b49fB9aB4e530e0C6", - "transactionHash": "0xa28e05c840edff1b2656412074f45103e803722f1d304cd771df299a175ad163" - } - }, + "networks": {}, "schemaVersion": "3.0.19", - "updatedAt": "2019-12-29T02:14:57.840Z", + "updatedAt": "2020-02-18T05:15:08.090Z", "networkType": "ethereum", "devdoc": { "methods": { diff --git a/build/contracts/ERC20.json b/build/contracts/ERC20.json index 68fea26..2cfab80 100644 --- a/build/contracts/ERC20.json +++ b/build/contracts/ERC20.json @@ -260,14 +260,14 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "ERC20": [ - 973 + 1009 ] }, - "id": 974, + "id": 1010, "nodeType": "SourceUnit", "nodes": [ { - "id": 570, + "id": 606, "literals": [ "solidity", "^", @@ -280,10 +280,10 @@ { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../../GSN/Context.sol", - "id": 571, + "id": 607, "nodeType": "ImportDirective", - "scope": 974, - "sourceUnit": 382, + "scope": 1010, + "sourceUnit": 418, "src": "25:31:4", "symbolAliases": [], "unitAlias": "" @@ -291,10 +291,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 572, + "id": 608, "nodeType": "ImportDirective", - "scope": 974, - "sourceUnit": 1043, + "scope": 1010, + "sourceUnit": 1079, "src": "57:22:4", "symbolAliases": [], "unitAlias": "" @@ -302,10 +302,10 @@ { "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 573, + "id": 609, "nodeType": "ImportDirective", - "scope": 974, - "sourceUnit": 569, + "scope": 1010, + "sourceUnit": 605, "src": "80:33:4", "symbolAliases": [], "unitAlias": "" @@ -316,17 +316,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 574, + "id": 610, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 381, + "referencedDeclaration": 417, "src": "1286:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$381", + "typeIdentifier": "t_contract$_Context_$417", "typeString": "contract Context" } }, - "id": 575, + "id": 611, "nodeType": "InheritanceSpecifier", "src": "1286:7:4" }, @@ -334,55 +334,55 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 576, + "id": 612, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1042, + "referencedDeclaration": 1078, "src": "1295:6:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1042", + "typeIdentifier": "t_contract$_IERC20_$1078", "typeString": "contract IERC20" } }, - "id": 577, + "id": 613, "nodeType": "InheritanceSpecifier", "src": "1295:6:4" } ], "contractDependencies": [ - 381, - 1042 + 417, + 1078 ], "contractKind": "contract", "documentation": "@dev Implementation of the {IERC20} interface.\n * This implementation is agnostic to the way tokens are created. This means\nthat a supply mechanism has to be added in a derived contract using {_mint}.\nFor a generic mechanism see {ERC20Mintable}.\n * TIP: For a detailed writeup see our guide\nhttps://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\nto implement supply mechanisms].\n * We have followed general OpenZeppelin guidelines: functions revert instead\nof returning `false` on failure. This behavior is nonetheless conventional\nand does not conflict with the expectations of ERC20 applications.\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\nThis allows applications to reconstruct the allowance for all accounts just\nby listening to said events. Other implementations of the EIP may not emit\nthese events, as it isn't required by the specification.\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\nfunctions have been added to mitigate the well-known issues around setting\nallowances. See {IERC20-approve}.", "fullyImplemented": true, - "id": 973, + "id": 1009, "linearizedBaseContracts": [ - 973, - 1042, - 381 + 1009, + 1078, + 417 ], "name": "ERC20", "nodeType": "ContractDefinition", "nodes": [ { - "id": 580, + "id": 616, "libraryName": { "contractScope": null, - "id": 578, + "id": 614, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 568, + "referencedDeclaration": 604, "src": "1314:8:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$568", + "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "1308:27:4", "typeName": { - "id": 579, + "id": 615, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1327:7:4", @@ -394,10 +394,10 @@ }, { "constant": false, - "id": 584, + "id": 620, "name": "_balances", "nodeType": "VariableDeclaration", - "scope": 973, + "scope": 1009, "src": "1341:46:4", "stateVariable": true, "storageLocation": "default", @@ -406,9 +406,9 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 583, + "id": 619, "keyType": { - "id": 581, + "id": 617, "name": "address", "nodeType": "ElementaryTypeName", "src": "1350:7:4", @@ -424,7 +424,7 @@ "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 582, + "id": 618, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1361:7:4", @@ -439,10 +439,10 @@ }, { "constant": false, - "id": 590, + "id": 626, "name": "_allowances", "nodeType": "VariableDeclaration", - "scope": 973, + "scope": 1009, "src": "1394:69:4", "stateVariable": true, "storageLocation": "default", @@ -451,9 +451,9 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 589, + "id": 625, "keyType": { - "id": 585, + "id": 621, "name": "address", "nodeType": "ElementaryTypeName", "src": "1403:7:4", @@ -469,9 +469,9 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 588, + "id": 624, "keyType": { - "id": 586, + "id": 622, "name": "address", "nodeType": "ElementaryTypeName", "src": "1423:7:4", @@ -487,7 +487,7 @@ "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 587, + "id": 623, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1434:7:4", @@ -503,10 +503,10 @@ }, { "constant": false, - "id": 592, + "id": 628, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 973, + "scope": 1009, "src": "1470:28:4", "stateVariable": true, "storageLocation": "default", @@ -515,7 +515,7 @@ "typeString": "uint256" }, "typeName": { - "id": 591, + "id": 627, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1470:7:4", @@ -529,54 +529,54 @@ }, { "body": { - "id": 599, + "id": 635, "nodeType": "Block", "src": "1612:36:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 597, + "id": 633, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 628, "src": "1629:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 596, - "id": 598, + "functionReturnParameters": 632, + "id": 634, "nodeType": "Return", "src": "1622:19:4" } ] }, "documentation": "@dev See {IERC20-totalSupply}.", - "id": 600, + "id": 636, "implemented": true, "kind": "function", "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 593, + "id": 629, "nodeType": "ParameterList", "parameters": [], "src": "1579:2:4" }, "returnParameters": { - "id": 596, + "id": 632, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 595, + "id": 631, "name": "", "nodeType": "VariableDeclaration", - "scope": 600, + "scope": 636, "src": "1603:7:4", "stateVariable": false, "storageLocation": "default", @@ -585,7 +585,7 @@ "typeString": "uint256" }, "typeName": { - "id": 594, + "id": 630, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1603:7:4", @@ -600,15 +600,15 @@ ], "src": "1602:9:4" }, - "scope": 973, + "scope": 1009, "src": "1559:89:4", "stateMutability": "view", - "superFunction": 980, + "superFunction": 1016, "visibility": "public" }, { "body": { - "id": 611, + "id": 647, "nodeType": "Block", "src": "1772:42:4", "statements": [ @@ -617,25 +617,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 607, + "id": 643, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "1789:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 609, + "id": 645, "indexExpression": { "argumentTypes": null, - "id": 608, + "id": 644, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 602, + "referencedDeclaration": 638, "src": "1799:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -653,30 +653,30 @@ "typeString": "uint256" } }, - "functionReturnParameters": 606, - "id": 610, + "functionReturnParameters": 642, + "id": 646, "nodeType": "Return", "src": "1782:25:4" } ] }, "documentation": "@dev See {IERC20-balanceOf}.", - "id": 612, + "id": 648, "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 603, + "id": 639, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 602, + "id": 638, "name": "account", "nodeType": "VariableDeclaration", - "scope": 612, + "scope": 648, "src": "1725:15:4", "stateVariable": false, "storageLocation": "default", @@ -685,7 +685,7 @@ "typeString": "address" }, "typeName": { - "id": 601, + "id": 637, "name": "address", "nodeType": "ElementaryTypeName", "src": "1725:7:4", @@ -702,15 +702,15 @@ "src": "1724:17:4" }, "returnParameters": { - "id": 606, + "id": 642, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 605, + "id": 641, "name": "", "nodeType": "VariableDeclaration", - "scope": 612, + "scope": 648, "src": "1763:7:4", "stateVariable": false, "storageLocation": "default", @@ -719,7 +719,7 @@ "typeString": "uint256" }, "typeName": { - "id": 604, + "id": 640, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1763:7:4", @@ -734,15 +734,15 @@ ], "src": "1762:9:4" }, - "scope": 973, + "scope": 1009, "src": "1706:108:4", "stateMutability": "view", - "superFunction": 987, + "superFunction": 1023, "visibility": "public" }, { "body": { - "id": 630, + "id": 666, "nodeType": "Block", "src": "2092:80:4", "statements": [ @@ -755,18 +755,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 622, + "id": 658, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "2112:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 623, + "id": 659, "isConstant": false, "isLValue": false, "isPure": false, @@ -782,11 +782,11 @@ }, { "argumentTypes": null, - "id": 624, + "id": 660, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 614, + "referencedDeclaration": 650, "src": "2126:9:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -795,11 +795,11 @@ }, { "argumentTypes": null, - "id": 625, + "id": 661, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, + "referencedDeclaration": 652, "src": "2137:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -822,18 +822,18 @@ "typeString": "uint256" } ], - "id": 621, + "id": 657, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, + "referencedDeclaration": 850, "src": "2102:9:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 626, + "id": 662, "isConstant": false, "isLValue": false, "isPure": false, @@ -847,7 +847,7 @@ "typeString": "tuple()" } }, - "id": 627, + "id": 663, "nodeType": "ExpressionStatement", "src": "2102:42:4" }, @@ -855,7 +855,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 628, + "id": 664, "isConstant": false, "isLValue": false, "isPure": true, @@ -870,30 +870,30 @@ }, "value": "true" }, - "functionReturnParameters": 620, - "id": 629, + "functionReturnParameters": 656, + "id": 665, "nodeType": "Return", "src": "2154:11:4" } ] }, "documentation": "@dev See {IERC20-transfer}.\n * Requirements:\n * - `recipient` cannot be the zero address.\n- the caller must have a balance of at least `amount`.", - "id": 631, + "id": 667, "implemented": true, "kind": "function", "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 617, + "id": 653, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 614, + "id": 650, "name": "recipient", "nodeType": "VariableDeclaration", - "scope": 631, + "scope": 667, "src": "2035:17:4", "stateVariable": false, "storageLocation": "default", @@ -902,7 +902,7 @@ "typeString": "address" }, "typeName": { - "id": 613, + "id": 649, "name": "address", "nodeType": "ElementaryTypeName", "src": "2035:7:4", @@ -917,10 +917,10 @@ }, { "constant": false, - "id": 616, + "id": 652, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 631, + "scope": 667, "src": "2054:14:4", "stateVariable": false, "storageLocation": "default", @@ -929,7 +929,7 @@ "typeString": "uint256" }, "typeName": { - "id": 615, + "id": 651, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2054:7:4", @@ -945,15 +945,15 @@ "src": "2034:35:4" }, "returnParameters": { - "id": 620, + "id": 656, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 619, + "id": 655, "name": "", "nodeType": "VariableDeclaration", - "scope": 631, + "scope": 667, "src": "2086:4:4", "stateVariable": false, "storageLocation": "default", @@ -962,7 +962,7 @@ "typeString": "bool" }, "typeName": { - "id": 618, + "id": 654, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2086:4:4", @@ -977,15 +977,15 @@ ], "src": "2085:6:4" }, - "scope": 973, + "scope": 1009, "src": "2017:155:4", "stateMutability": "nonpayable", - "superFunction": 996, + "superFunction": 1032, "visibility": "public" }, { "body": { - "id": 646, + "id": 682, "nodeType": "Block", "src": "2311:51:4", "statements": [ @@ -996,25 +996,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 640, + "id": 676, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 626, "src": "2328:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 642, + "id": 678, "indexExpression": { "argumentTypes": null, - "id": 641, + "id": 677, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 633, + "referencedDeclaration": 669, "src": "2340:5:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1032,14 +1032,14 @@ "typeString": "mapping(address => uint256)" } }, - "id": 644, + "id": 680, "indexExpression": { "argumentTypes": null, - "id": 643, + "id": 679, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 635, + "referencedDeclaration": 671, "src": "2347:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1057,30 +1057,30 @@ "typeString": "uint256" } }, - "functionReturnParameters": 639, - "id": 645, + "functionReturnParameters": 675, + "id": 681, "nodeType": "Return", "src": "2321:34:4" } ] }, "documentation": "@dev See {IERC20-allowance}.", - "id": 647, + "id": 683, "implemented": true, "kind": "function", "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 636, + "id": 672, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 633, + "id": 669, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 647, + "scope": 683, "src": "2249:13:4", "stateVariable": false, "storageLocation": "default", @@ -1089,7 +1089,7 @@ "typeString": "address" }, "typeName": { - "id": 632, + "id": 668, "name": "address", "nodeType": "ElementaryTypeName", "src": "2249:7:4", @@ -1104,10 +1104,10 @@ }, { "constant": false, - "id": 635, + "id": 671, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 647, + "scope": 683, "src": "2264:15:4", "stateVariable": false, "storageLocation": "default", @@ -1116,7 +1116,7 @@ "typeString": "address" }, "typeName": { - "id": 634, + "id": 670, "name": "address", "nodeType": "ElementaryTypeName", "src": "2264:7:4", @@ -1133,15 +1133,15 @@ "src": "2248:32:4" }, "returnParameters": { - "id": 639, + "id": 675, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 638, + "id": 674, "name": "", "nodeType": "VariableDeclaration", - "scope": 647, + "scope": 683, "src": "2302:7:4", "stateVariable": false, "storageLocation": "default", @@ -1150,7 +1150,7 @@ "typeString": "uint256" }, "typeName": { - "id": 637, + "id": 673, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2302:7:4", @@ -1165,15 +1165,15 @@ ], "src": "2301:9:4" }, - "scope": 973, + "scope": 1009, "src": "2230:132:4", "stateMutability": "view", - "superFunction": 1005, + "superFunction": 1041, "visibility": "public" }, { "body": { - "id": 665, + "id": 701, "nodeType": "Block", "src": "2572:77:4", "statements": [ @@ -1186,18 +1186,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 657, + "id": 693, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "2591:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 658, + "id": 694, "isConstant": false, "isLValue": false, "isPure": false, @@ -1213,11 +1213,11 @@ }, { "argumentTypes": null, - "id": 659, + "id": 695, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 649, + "referencedDeclaration": 685, "src": "2605:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1226,11 +1226,11 @@ }, { "argumentTypes": null, - "id": 660, + "id": 696, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 651, + "referencedDeclaration": 687, "src": "2614:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1253,18 +1253,18 @@ "typeString": "uint256" } ], - "id": 656, + "id": 692, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, + "referencedDeclaration": 979, "src": "2582:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 661, + "id": 697, "isConstant": false, "isLValue": false, "isPure": false, @@ -1278,7 +1278,7 @@ "typeString": "tuple()" } }, - "id": 662, + "id": 698, "nodeType": "ExpressionStatement", "src": "2582:39:4" }, @@ -1286,7 +1286,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 663, + "id": 699, "isConstant": false, "isLValue": false, "isPure": true, @@ -1301,30 +1301,30 @@ }, "value": "true" }, - "functionReturnParameters": 655, - "id": 664, + "functionReturnParameters": 691, + "id": 700, "nodeType": "Return", "src": "2631:11:4" } ] }, "documentation": "@dev See {IERC20-approve}.\n * Requirements:\n * - `spender` cannot be the zero address.", - "id": 666, + "id": 702, "implemented": true, "kind": "function", "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 652, + "id": 688, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 649, + "id": 685, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 666, + "scope": 702, "src": "2517:15:4", "stateVariable": false, "storageLocation": "default", @@ -1333,7 +1333,7 @@ "typeString": "address" }, "typeName": { - "id": 648, + "id": 684, "name": "address", "nodeType": "ElementaryTypeName", "src": "2517:7:4", @@ -1348,10 +1348,10 @@ }, { "constant": false, - "id": 651, + "id": 687, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 666, + "scope": 702, "src": "2534:14:4", "stateVariable": false, "storageLocation": "default", @@ -1360,7 +1360,7 @@ "typeString": "uint256" }, "typeName": { - "id": 650, + "id": 686, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2534:7:4", @@ -1376,15 +1376,15 @@ "src": "2516:33:4" }, "returnParameters": { - "id": 655, + "id": 691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 654, + "id": 690, "name": "", "nodeType": "VariableDeclaration", - "scope": 666, + "scope": 702, "src": "2566:4:4", "stateVariable": false, "storageLocation": "default", @@ -1393,7 +1393,7 @@ "typeString": "bool" }, "typeName": { - "id": 653, + "id": 689, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2566:4:4", @@ -1408,15 +1408,15 @@ ], "src": "2565:6:4" }, - "scope": 973, + "scope": 1009, "src": "2500:149:4", "stateMutability": "nonpayable", - "superFunction": 1014, + "superFunction": 1050, "visibility": "public" }, { "body": { - "id": 701, + "id": 737, "nodeType": "Block", "src": "3202:205:4", "statements": [ @@ -1426,11 +1426,11 @@ "arguments": [ { "argumentTypes": null, - "id": 678, + "id": 714, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, + "referencedDeclaration": 704, "src": "3222:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1439,11 +1439,11 @@ }, { "argumentTypes": null, - "id": 679, + "id": 715, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, + "referencedDeclaration": 706, "src": "3230:9:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1452,11 +1452,11 @@ }, { "argumentTypes": null, - "id": 680, + "id": 716, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 672, + "referencedDeclaration": 708, "src": "3241:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1479,18 +1479,18 @@ "typeString": "uint256" } ], - "id": 677, + "id": 713, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, + "referencedDeclaration": 850, "src": "3212:9:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 681, + "id": 717, "isConstant": false, "isLValue": false, "isPure": false, @@ -1504,7 +1504,7 @@ "typeString": "tuple()" } }, - "id": 682, + "id": 718, "nodeType": "ExpressionStatement", "src": "3212:36:4" }, @@ -1514,11 +1514,11 @@ "arguments": [ { "argumentTypes": null, - "id": 684, + "id": 720, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, + "referencedDeclaration": 704, "src": "3267:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1530,18 +1530,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 685, + "id": 721, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "3275:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 686, + "id": 722, "isConstant": false, "isLValue": false, "isPure": false, @@ -1560,11 +1560,11 @@ "arguments": [ { "argumentTypes": null, - "id": 694, + "id": 730, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 672, + "referencedDeclaration": 708, "src": "3327:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1574,7 +1574,7 @@ { "argumentTypes": null, "hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365", - "id": 695, + "id": 731, "isConstant": false, "isLValue": false, "isPure": true, @@ -1607,25 +1607,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 687, + "id": 723, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 626, "src": "3289:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 689, + "id": 725, "indexExpression": { "argumentTypes": null, - "id": 688, + "id": 724, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, + "referencedDeclaration": 704, "src": "3301:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1643,24 +1643,24 @@ "typeString": "mapping(address => uint256)" } }, - "id": 692, + "id": 728, "indexExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 690, + "id": 726, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "3309:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 691, + "id": 727, "isConstant": false, "isLValue": false, "isPure": false, @@ -1685,21 +1685,21 @@ "typeString": "uint256" } }, - "id": 693, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 451, + "referencedDeclaration": 487, "src": "3289:37:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 696, + "id": 732, "isConstant": false, "isLValue": false, "isPure": false, @@ -1729,18 +1729,18 @@ "typeString": "uint256" } ], - "id": 683, + "id": 719, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, + "referencedDeclaration": 979, "src": "3258:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 697, + "id": 733, "isConstant": false, "isLValue": false, "isPure": false, @@ -1754,7 +1754,7 @@ "typeString": "tuple()" } }, - "id": 698, + "id": 734, "nodeType": "ExpressionStatement", "src": "3258:121:4" }, @@ -1762,7 +1762,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 699, + "id": 735, "isConstant": false, "isLValue": false, "isPure": true, @@ -1777,30 +1777,30 @@ }, "value": "true" }, - "functionReturnParameters": 676, - "id": 700, + "functionReturnParameters": 712, + "id": 736, "nodeType": "Return", "src": "3389:11:4" } ] }, "documentation": "@dev See {IERC20-transferFrom}.\n * Emits an {Approval} event indicating the updated allowance. This is not\nrequired by the EIP. See the note at the beginning of {ERC20};\n * Requirements:\n- `sender` and `recipient` cannot be the zero address.\n- `sender` must have a balance of at least `amount`.\n- the caller must have allowance for `sender`'s tokens of at least\n`amount`.", - "id": 702, + "id": 738, "implemented": true, "kind": "function", "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 673, + "id": 709, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 668, + "id": 704, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 702, + "scope": 738, "src": "3129:14:4", "stateVariable": false, "storageLocation": "default", @@ -1809,7 +1809,7 @@ "typeString": "address" }, "typeName": { - "id": 667, + "id": 703, "name": "address", "nodeType": "ElementaryTypeName", "src": "3129:7:4", @@ -1824,10 +1824,10 @@ }, { "constant": false, - "id": 670, + "id": 706, "name": "recipient", "nodeType": "VariableDeclaration", - "scope": 702, + "scope": 738, "src": "3145:17:4", "stateVariable": false, "storageLocation": "default", @@ -1836,7 +1836,7 @@ "typeString": "address" }, "typeName": { - "id": 669, + "id": 705, "name": "address", "nodeType": "ElementaryTypeName", "src": "3145:7:4", @@ -1851,10 +1851,10 @@ }, { "constant": false, - "id": 672, + "id": 708, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 702, + "scope": 738, "src": "3164:14:4", "stateVariable": false, "storageLocation": "default", @@ -1863,7 +1863,7 @@ "typeString": "uint256" }, "typeName": { - "id": 671, + "id": 707, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3164:7:4", @@ -1879,15 +1879,15 @@ "src": "3128:51:4" }, "returnParameters": { - "id": 676, + "id": 712, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 675, + "id": 711, "name": "", "nodeType": "VariableDeclaration", - "scope": 702, + "scope": 738, "src": "3196:4:4", "stateVariable": false, "storageLocation": "default", @@ -1896,7 +1896,7 @@ "typeString": "bool" }, "typeName": { - "id": 674, + "id": 710, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3196:4:4", @@ -1911,15 +1911,15 @@ ], "src": "3195:6:4" }, - "scope": 973, + "scope": 1009, "src": "3107:300:4", "stateMutability": "nonpayable", - "superFunction": 1025, + "superFunction": 1061, "visibility": "public" }, { "body": { - "id": 728, + "id": 764, "nodeType": "Block", "src": "3888:121:4", "statements": [ @@ -1932,18 +1932,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 712, + "id": 748, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "3907:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 713, + "id": 749, "isConstant": false, "isLValue": false, "isPure": false, @@ -1959,11 +1959,11 @@ }, { "argumentTypes": null, - "id": 714, + "id": 750, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 704, + "referencedDeclaration": 740, "src": "3921:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1975,11 +1975,11 @@ "arguments": [ { "argumentTypes": null, - "id": 722, + "id": 758, "name": "addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 706, + "referencedDeclaration": 742, "src": "3969:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2000,35 +2000,35 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 715, + "id": 751, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 626, "src": "3930:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 718, + "id": 754, "indexExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 716, + "id": 752, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "3942:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 717, + "id": 753, "isConstant": false, "isLValue": false, "isPure": false, @@ -2053,14 +2053,14 @@ "typeString": "mapping(address => uint256)" } }, - "id": 720, + "id": 756, "indexExpression": { "argumentTypes": null, - "id": 719, + "id": 755, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 704, + "referencedDeclaration": 740, "src": "3956:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2078,21 +2078,21 @@ "typeString": "uint256" } }, - "id": 721, + "id": 757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 408, + "referencedDeclaration": 444, "src": "3930:38:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 723, + "id": 759, "isConstant": false, "isLValue": false, "isPure": false, @@ -2122,18 +2122,18 @@ "typeString": "uint256" } ], - "id": 711, + "id": 747, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, + "referencedDeclaration": 979, "src": "3898:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 724, + "id": 760, "isConstant": false, "isLValue": false, "isPure": false, @@ -2147,7 +2147,7 @@ "typeString": "tuple()" } }, - "id": 725, + "id": 761, "nodeType": "ExpressionStatement", "src": "3898:83:4" }, @@ -2155,7 +2155,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 726, + "id": 762, "isConstant": false, "isLValue": false, "isPure": true, @@ -2170,30 +2170,30 @@ }, "value": "true" }, - "functionReturnParameters": 710, - "id": 727, + "functionReturnParameters": 746, + "id": 763, "nodeType": "Return", "src": "3991:11:4" } ] }, "documentation": "@dev Atomically increases the allowance granted to `spender` by the caller.\n * This is an alternative to {approve} that can be used as a mitigation for\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address.", - "id": 729, + "id": 765, "implemented": true, "kind": "function", "modifiers": [], "name": "increaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 707, + "id": 743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 704, + "id": 740, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 729, + "scope": 765, "src": "3829:15:4", "stateVariable": false, "storageLocation": "default", @@ -2202,7 +2202,7 @@ "typeString": "address" }, "typeName": { - "id": 703, + "id": 739, "name": "address", "nodeType": "ElementaryTypeName", "src": "3829:7:4", @@ -2217,10 +2217,10 @@ }, { "constant": false, - "id": 706, + "id": 742, "name": "addedValue", "nodeType": "VariableDeclaration", - "scope": 729, + "scope": 765, "src": "3846:18:4", "stateVariable": false, "storageLocation": "default", @@ -2229,7 +2229,7 @@ "typeString": "uint256" }, "typeName": { - "id": 705, + "id": 741, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3846:7:4", @@ -2245,15 +2245,15 @@ "src": "3828:37:4" }, "returnParameters": { - "id": 710, + "id": 746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 709, + "id": 745, "name": "", "nodeType": "VariableDeclaration", - "scope": 729, + "scope": 765, "src": "3882:4:4", "stateVariable": false, "storageLocation": "default", @@ -2262,7 +2262,7 @@ "typeString": "bool" }, "typeName": { - "id": 708, + "id": 744, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3882:4:4", @@ -2277,7 +2277,7 @@ ], "src": "3881:6:4" }, - "scope": 973, + "scope": 1009, "src": "3802:207:4", "stateMutability": "nonpayable", "superFunction": null, @@ -2285,7 +2285,7 @@ }, { "body": { - "id": 756, + "id": 792, "nodeType": "Block", "src": "4587:167:4", "statements": [ @@ -2298,18 +2298,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 739, + "id": 775, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "4606:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 740, + "id": 776, "isConstant": false, "isLValue": false, "isPure": false, @@ -2325,11 +2325,11 @@ }, { "argumentTypes": null, - "id": 741, + "id": 777, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 731, + "referencedDeclaration": 767, "src": "4620:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2341,11 +2341,11 @@ "arguments": [ { "argumentTypes": null, - "id": 749, + "id": 785, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 733, + "referencedDeclaration": 769, "src": "4668:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2355,7 +2355,7 @@ { "argumentTypes": null, "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", - "id": 750, + "id": 786, "isConstant": false, "isLValue": false, "isPure": true, @@ -2388,35 +2388,35 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 742, + "id": 778, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 626, "src": "4629:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 745, + "id": 781, "indexExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 743, + "id": 779, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "4641:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 744, + "id": 780, "isConstant": false, "isLValue": false, "isPure": false, @@ -2441,14 +2441,14 @@ "typeString": "mapping(address => uint256)" } }, - "id": 747, + "id": 783, "indexExpression": { "argumentTypes": null, - "id": 746, + "id": 782, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 731, + "referencedDeclaration": 767, "src": "4655:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2466,21 +2466,21 @@ "typeString": "uint256" } }, - "id": 748, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 451, + "referencedDeclaration": 487, "src": "4629:38:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 751, + "id": 787, "isConstant": false, "isLValue": false, "isPure": false, @@ -2510,18 +2510,18 @@ "typeString": "uint256" } ], - "id": 738, + "id": 774, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, + "referencedDeclaration": 979, "src": "4597:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 752, + "id": 788, "isConstant": false, "isLValue": false, "isPure": false, @@ -2535,7 +2535,7 @@ "typeString": "tuple()" } }, - "id": 753, + "id": 789, "nodeType": "ExpressionStatement", "src": "4597:129:4" }, @@ -2543,7 +2543,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 754, + "id": 790, "isConstant": false, "isLValue": false, "isPure": true, @@ -2558,30 +2558,30 @@ }, "value": "true" }, - "functionReturnParameters": 737, - "id": 755, + "functionReturnParameters": 773, + "id": 791, "nodeType": "Return", "src": "4736:11:4" } ] }, "documentation": "@dev Atomically decreases the allowance granted to `spender` by the caller.\n * This is an alternative to {approve} that can be used as a mitigation for\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address.\n- `spender` must have allowance for the caller of at least\n`subtractedValue`.", - "id": 757, + "id": 793, "implemented": true, "kind": "function", "modifiers": [], "name": "decreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 734, + "id": 770, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 731, + "id": 767, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 757, + "scope": 793, "src": "4523:15:4", "stateVariable": false, "storageLocation": "default", @@ -2590,7 +2590,7 @@ "typeString": "address" }, "typeName": { - "id": 730, + "id": 766, "name": "address", "nodeType": "ElementaryTypeName", "src": "4523:7:4", @@ -2605,10 +2605,10 @@ }, { "constant": false, - "id": 733, + "id": 769, "name": "subtractedValue", "nodeType": "VariableDeclaration", - "scope": 757, + "scope": 793, "src": "4540:23:4", "stateVariable": false, "storageLocation": "default", @@ -2617,7 +2617,7 @@ "typeString": "uint256" }, "typeName": { - "id": 732, + "id": 768, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4540:7:4", @@ -2633,15 +2633,15 @@ "src": "4522:42:4" }, "returnParameters": { - "id": 737, + "id": 773, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 736, + "id": 772, "name": "", "nodeType": "VariableDeclaration", - "scope": 757, + "scope": 793, "src": "4581:4:4", "stateVariable": false, "storageLocation": "default", @@ -2650,7 +2650,7 @@ "typeString": "bool" }, "typeName": { - "id": 735, + "id": 771, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4581:4:4", @@ -2665,7 +2665,7 @@ ], "src": "4580:6:4" }, - "scope": 973, + "scope": 1009, "src": "4496:258:4", "stateMutability": "nonpayable", "superFunction": null, @@ -2673,7 +2673,7 @@ }, { "body": { - "id": 813, + "id": 849, "nodeType": "Block", "src": "5307:385:4", "statements": [ @@ -2687,18 +2687,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 771, + "id": 807, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 767, + "id": 803, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, + "referencedDeclaration": 795, "src": "5325:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2713,7 +2713,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 769, + "id": 805, "isConstant": false, "isLValue": false, "isPure": true, @@ -2736,7 +2736,7 @@ "typeString": "int_const 0" } ], - "id": 768, + "id": 804, "isConstant": false, "isLValue": false, "isPure": true, @@ -2749,7 +2749,7 @@ }, "typeName": "address" }, - "id": 770, + "id": 806, "isConstant": false, "isLValue": false, "isPure": true, @@ -2772,7 +2772,7 @@ { "argumentTypes": null, "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", - "id": 772, + "id": 808, "isConstant": false, "isLValue": false, "isPure": true, @@ -2799,21 +2799,21 @@ "typeString": "literal_string \"ERC20: transfer from the zero address\"" } ], - "id": 766, + "id": 802, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "5317:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 773, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -2827,7 +2827,7 @@ "typeString": "tuple()" } }, - "id": 774, + "id": 810, "nodeType": "ExpressionStatement", "src": "5317:70:4" }, @@ -2841,18 +2841,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 780, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 776, + "id": 812, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, + "referencedDeclaration": 797, "src": "5405:9:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2867,7 +2867,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 778, + "id": 814, "isConstant": false, "isLValue": false, "isPure": true, @@ -2890,7 +2890,7 @@ "typeString": "int_const 0" } ], - "id": 777, + "id": 813, "isConstant": false, "isLValue": false, "isPure": true, @@ -2903,7 +2903,7 @@ }, "typeName": "address" }, - "id": 779, + "id": 815, "isConstant": false, "isLValue": false, "isPure": true, @@ -2926,7 +2926,7 @@ { "argumentTypes": null, "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 781, + "id": 817, "isConstant": false, "isLValue": false, "isPure": true, @@ -2953,21 +2953,21 @@ "typeString": "literal_string \"ERC20: transfer to the zero address\"" } ], - "id": 775, + "id": 811, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "5397:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 782, + "id": 818, "isConstant": false, "isLValue": false, "isPure": false, @@ -2981,14 +2981,14 @@ "typeString": "tuple()" } }, - "id": 783, + "id": 819, "nodeType": "ExpressionStatement", "src": "5397:71:4" }, { "expression": { "argumentTypes": null, - "id": 794, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, @@ -2997,25 +2997,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 784, + "id": 820, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "5479:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 786, + "id": 822, "indexExpression": { "argumentTypes": null, - "id": 785, + "id": 821, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, + "referencedDeclaration": 795, "src": "5489:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3040,11 +3040,11 @@ "arguments": [ { "argumentTypes": null, - "id": 791, + "id": 827, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 763, + "referencedDeclaration": 799, "src": "5521:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3054,7 +3054,7 @@ { "argumentTypes": null, "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", - "id": 792, + "id": 828, "isConstant": false, "isLValue": false, "isPure": true, @@ -3085,25 +3085,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 787, + "id": 823, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "5499:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 789, + "id": 825, "indexExpression": { "argumentTypes": null, - "id": 788, + "id": 824, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, + "referencedDeclaration": 795, "src": "5509:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3121,21 +3121,21 @@ "typeString": "uint256" } }, - "id": 790, + "id": 826, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 451, + "referencedDeclaration": 487, "src": "5499:21:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 793, + "id": 829, "isConstant": false, "isLValue": false, "isPure": false, @@ -3155,14 +3155,14 @@ "typeString": "uint256" } }, - "id": 795, + "id": 831, "nodeType": "ExpressionStatement", "src": "5479:91:4" }, { "expression": { "argumentTypes": null, - "id": 805, + "id": 841, "isConstant": false, "isLValue": false, "isPure": false, @@ -3171,25 +3171,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 796, + "id": 832, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "5580:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 798, + "id": 834, "indexExpression": { "argumentTypes": null, - "id": 797, + "id": 833, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, + "referencedDeclaration": 797, "src": "5590:9:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3214,11 +3214,11 @@ "arguments": [ { "argumentTypes": null, - "id": 803, + "id": 839, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 763, + "referencedDeclaration": 799, "src": "5628:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3237,25 +3237,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 799, + "id": 835, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "5603:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 801, + "id": 837, "indexExpression": { "argumentTypes": null, - "id": 800, + "id": 836, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, + "referencedDeclaration": 797, "src": "5613:9:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3273,21 +3273,21 @@ "typeString": "uint256" } }, - "id": 802, + "id": 838, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 408, + "referencedDeclaration": 444, "src": "5603:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 804, + "id": 840, "isConstant": false, "isLValue": false, "isPure": false, @@ -3307,7 +3307,7 @@ "typeString": "uint256" } }, - "id": 806, + "id": 842, "nodeType": "ExpressionStatement", "src": "5580:55:4" }, @@ -3317,11 +3317,11 @@ "arguments": [ { "argumentTypes": null, - "id": 808, + "id": 844, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, + "referencedDeclaration": 795, "src": "5659:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3330,11 +3330,11 @@ }, { "argumentTypes": null, - "id": 809, + "id": 845, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, + "referencedDeclaration": 797, "src": "5667:9:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3343,11 +3343,11 @@ }, { "argumentTypes": null, - "id": 810, + "id": 846, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 763, + "referencedDeclaration": 799, "src": "5678:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3370,18 +3370,18 @@ "typeString": "uint256" } ], - "id": 807, + "id": 843, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1033, + "referencedDeclaration": 1069, "src": "5650:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 811, + "id": 847, "isConstant": false, "isLValue": false, "isPure": false, @@ -3395,29 +3395,29 @@ "typeString": "tuple()" } }, - "id": 812, + "id": 848, "nodeType": "EmitStatement", "src": "5645:40:4" } ] }, "documentation": "@dev Moves tokens `amount` from `sender` to `recipient`.\n * This is internal function is equivalent to {transfer}, and can be used to\ne.g. implement automatic token fees, slashing mechanisms, etc.\n * Emits a {Transfer} event.\n * Requirements:\n * - `sender` cannot be the zero address.\n- `recipient` cannot be the zero address.\n- `sender` must have a balance of at least `amount`.", - "id": 814, + "id": 850, "implemented": true, "kind": "function", "modifiers": [], "name": "_transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 764, + "id": 800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 759, + "id": 795, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 814, + "scope": 850, "src": "5247:14:4", "stateVariable": false, "storageLocation": "default", @@ -3426,7 +3426,7 @@ "typeString": "address" }, "typeName": { - "id": 758, + "id": 794, "name": "address", "nodeType": "ElementaryTypeName", "src": "5247:7:4", @@ -3441,10 +3441,10 @@ }, { "constant": false, - "id": 761, + "id": 797, "name": "recipient", "nodeType": "VariableDeclaration", - "scope": 814, + "scope": 850, "src": "5263:17:4", "stateVariable": false, "storageLocation": "default", @@ -3453,7 +3453,7 @@ "typeString": "address" }, "typeName": { - "id": 760, + "id": 796, "name": "address", "nodeType": "ElementaryTypeName", "src": "5263:7:4", @@ -3468,10 +3468,10 @@ }, { "constant": false, - "id": 763, + "id": 799, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 814, + "scope": 850, "src": "5282:14:4", "stateVariable": false, "storageLocation": "default", @@ -3480,7 +3480,7 @@ "typeString": "uint256" }, "typeName": { - "id": 762, + "id": 798, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5282:7:4", @@ -3496,12 +3496,12 @@ "src": "5246:51:4" }, "returnParameters": { - "id": 765, + "id": 801, "nodeType": "ParameterList", "parameters": [], "src": "5307:0:4" }, - "scope": 973, + "scope": 1009, "src": "5228:464:4", "stateMutability": "nonpayable", "superFunction": null, @@ -3509,7 +3509,7 @@ }, { "body": { - "id": 856, + "id": 892, "nodeType": "Block", "src": "6019:245:4", "statements": [ @@ -3523,18 +3523,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 826, + "id": 862, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 822, + "id": 858, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, + "referencedDeclaration": 852, "src": "6037:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3549,7 +3549,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 824, + "id": 860, "isConstant": false, "isLValue": false, "isPure": true, @@ -3572,7 +3572,7 @@ "typeString": "int_const 0" } ], - "id": 823, + "id": 859, "isConstant": false, "isLValue": false, "isPure": true, @@ -3585,7 +3585,7 @@ }, "typeName": "address" }, - "id": 825, + "id": 861, "isConstant": false, "isLValue": false, "isPure": true, @@ -3608,7 +3608,7 @@ { "argumentTypes": null, "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", - "id": 827, + "id": 863, "isConstant": false, "isLValue": false, "isPure": true, @@ -3635,21 +3635,21 @@ "typeString": "literal_string \"ERC20: mint to the zero address\"" } ], - "id": 821, + "id": 857, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "6029:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 828, + "id": 864, "isConstant": false, "isLValue": false, "isPure": false, @@ -3663,25 +3663,25 @@ "typeString": "tuple()" } }, - "id": 829, + "id": 865, "nodeType": "ExpressionStatement", "src": "6029:65:4" }, { "expression": { "argumentTypes": null, - "id": 835, + "id": 871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 830, + "id": 866, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 628, "src": "6105:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3695,11 +3695,11 @@ "arguments": [ { "argumentTypes": null, - "id": 833, + "id": 869, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, + "referencedDeclaration": 854, "src": "6137:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3716,32 +3716,32 @@ ], "expression": { "argumentTypes": null, - "id": 831, + "id": 867, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 628, "src": "6120:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 832, + "id": 868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 408, + "referencedDeclaration": 444, "src": "6120:16:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 834, + "id": 870, "isConstant": false, "isLValue": false, "isPure": false, @@ -3761,14 +3761,14 @@ "typeString": "uint256" } }, - "id": 836, + "id": 872, "nodeType": "ExpressionStatement", "src": "6105:39:4" }, { "expression": { "argumentTypes": null, - "id": 846, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -3777,25 +3777,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 837, + "id": 873, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "6154:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 839, + "id": 875, "indexExpression": { "argumentTypes": null, - "id": 838, + "id": 874, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, + "referencedDeclaration": 852, "src": "6164:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3820,11 +3820,11 @@ "arguments": [ { "argumentTypes": null, - "id": 844, + "id": 880, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, + "referencedDeclaration": 854, "src": "6198:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3843,25 +3843,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 840, + "id": 876, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "6175:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 842, + "id": 878, "indexExpression": { "argumentTypes": null, - "id": 841, + "id": 877, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, + "referencedDeclaration": 852, "src": "6185:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3879,21 +3879,21 @@ "typeString": "uint256" } }, - "id": 843, + "id": 879, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 408, + "referencedDeclaration": 444, "src": "6175:22:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 845, + "id": 881, "isConstant": false, "isLValue": false, "isPure": false, @@ -3913,7 +3913,7 @@ "typeString": "uint256" } }, - "id": 847, + "id": 883, "nodeType": "ExpressionStatement", "src": "6154:51:4" }, @@ -3927,7 +3927,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 850, + "id": 886, "isConstant": false, "isLValue": false, "isPure": true, @@ -3950,7 +3950,7 @@ "typeString": "int_const 0" } ], - "id": 849, + "id": 885, "isConstant": false, "isLValue": false, "isPure": true, @@ -3963,7 +3963,7 @@ }, "typeName": "address" }, - "id": 851, + "id": 887, "isConstant": false, "isLValue": false, "isPure": true, @@ -3979,11 +3979,11 @@ }, { "argumentTypes": null, - "id": 852, + "id": 888, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, + "referencedDeclaration": 852, "src": "6241:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3992,11 +3992,11 @@ }, { "argumentTypes": null, - "id": 853, + "id": 889, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, + "referencedDeclaration": 854, "src": "6250:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4019,18 +4019,18 @@ "typeString": "uint256" } ], - "id": 848, + "id": 884, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1033, + "referencedDeclaration": 1069, "src": "6220:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 854, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, @@ -4044,29 +4044,29 @@ "typeString": "tuple()" } }, - "id": 855, + "id": 891, "nodeType": "EmitStatement", "src": "6215:42:4" } ] }, "documentation": "@dev Creates `amount` tokens and assigns them to `account`, increasing\nthe total supply.\n * Emits a {Transfer} event with `from` set to the zero address.\n * Requirements\n * - `to` cannot be the zero address.", - "id": 857, + "id": 893, "implemented": true, "kind": "function", "modifiers": [], "name": "_mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 819, + "id": 855, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 816, + "id": 852, "name": "account", "nodeType": "VariableDeclaration", - "scope": 857, + "scope": 893, "src": "5977:15:4", "stateVariable": false, "storageLocation": "default", @@ -4075,7 +4075,7 @@ "typeString": "address" }, "typeName": { - "id": 815, + "id": 851, "name": "address", "nodeType": "ElementaryTypeName", "src": "5977:7:4", @@ -4090,10 +4090,10 @@ }, { "constant": false, - "id": 818, + "id": 854, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 857, + "scope": 893, "src": "5994:14:4", "stateVariable": false, "storageLocation": "default", @@ -4102,7 +4102,7 @@ "typeString": "uint256" }, "typeName": { - "id": 817, + "id": 853, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5994:7:4", @@ -4118,12 +4118,12 @@ "src": "5976:33:4" }, "returnParameters": { - "id": 820, + "id": 856, "nodeType": "ParameterList", "parameters": [], "src": "6019:0:4" }, - "scope": 973, + "scope": 1009, "src": "5962:302:4", "stateMutability": "nonpayable", "superFunction": null, @@ -4131,7 +4131,7 @@ }, { "body": { - "id": 900, + "id": 936, "nodeType": "Block", "src": "6641:285:4", "statements": [ @@ -4145,18 +4145,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 869, + "id": 905, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 865, + "id": 901, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, + "referencedDeclaration": 895, "src": "6659:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4171,7 +4171,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 867, + "id": 903, "isConstant": false, "isLValue": false, "isPure": true, @@ -4194,7 +4194,7 @@ "typeString": "int_const 0" } ], - "id": 866, + "id": 902, "isConstant": false, "isLValue": false, "isPure": true, @@ -4207,7 +4207,7 @@ }, "typeName": "address" }, - "id": 868, + "id": 904, "isConstant": false, "isLValue": false, "isPure": true, @@ -4230,7 +4230,7 @@ { "argumentTypes": null, "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", - "id": 870, + "id": 906, "isConstant": false, "isLValue": false, "isPure": true, @@ -4257,21 +4257,21 @@ "typeString": "literal_string \"ERC20: burn from the zero address\"" } ], - "id": 864, + "id": 900, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "6651:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 871, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, @@ -4285,14 +4285,14 @@ "typeString": "tuple()" } }, - "id": 872, + "id": 908, "nodeType": "ExpressionStatement", "src": "6651:67:4" }, { "expression": { "argumentTypes": null, - "id": 883, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, @@ -4301,25 +4301,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 873, + "id": 909, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "6729:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 875, + "id": 911, "indexExpression": { "argumentTypes": null, - "id": 874, + "id": 910, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, + "referencedDeclaration": 895, "src": "6739:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4344,11 +4344,11 @@ "arguments": [ { "argumentTypes": null, - "id": 880, + "id": 916, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 861, + "referencedDeclaration": 897, "src": "6773:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4358,7 +4358,7 @@ { "argumentTypes": null, "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", - "id": 881, + "id": 917, "isConstant": false, "isLValue": false, "isPure": true, @@ -4389,25 +4389,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 876, + "id": 912, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "6750:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 878, + "id": 914, "indexExpression": { "argumentTypes": null, - "id": 877, + "id": 913, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, + "referencedDeclaration": 895, "src": "6760:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4425,21 +4425,21 @@ "typeString": "uint256" } }, - "id": 879, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 451, + "referencedDeclaration": 487, "src": "6750:22:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 882, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -4459,25 +4459,25 @@ "typeString": "uint256" } }, - "id": 884, + "id": 920, "nodeType": "ExpressionStatement", "src": "6729:89:4" }, { "expression": { "argumentTypes": null, - "id": 890, + "id": 926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 885, + "id": 921, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 628, "src": "6828:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4491,11 +4491,11 @@ "arguments": [ { "argumentTypes": null, - "id": 888, + "id": 924, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 861, + "referencedDeclaration": 897, "src": "6860:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4512,32 +4512,32 @@ ], "expression": { "argumentTypes": null, - "id": 886, + "id": 922, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 628, "src": "6843:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 887, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 424, + "referencedDeclaration": 460, "src": "6843:16:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 889, + "id": 925, "isConstant": false, "isLValue": false, "isPure": false, @@ -4557,7 +4557,7 @@ "typeString": "uint256" } }, - "id": 891, + "id": 927, "nodeType": "ExpressionStatement", "src": "6828:39:4" }, @@ -4567,11 +4567,11 @@ "arguments": [ { "argumentTypes": null, - "id": 893, + "id": 929, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, + "referencedDeclaration": 895, "src": "6891:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4584,7 +4584,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 895, + "id": 931, "isConstant": false, "isLValue": false, "isPure": true, @@ -4607,7 +4607,7 @@ "typeString": "int_const 0" } ], - "id": 894, + "id": 930, "isConstant": false, "isLValue": false, "isPure": true, @@ -4620,7 +4620,7 @@ }, "typeName": "address" }, - "id": 896, + "id": 932, "isConstant": false, "isLValue": false, "isPure": true, @@ -4636,11 +4636,11 @@ }, { "argumentTypes": null, - "id": 897, + "id": 933, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 861, + "referencedDeclaration": 897, "src": "6912:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4663,18 +4663,18 @@ "typeString": "uint256" } ], - "id": 892, + "id": 928, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1033, + "referencedDeclaration": 1069, "src": "6882:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 898, + "id": 934, "isConstant": false, "isLValue": false, "isPure": false, @@ -4688,29 +4688,29 @@ "typeString": "tuple()" } }, - "id": 899, + "id": 935, "nodeType": "EmitStatement", "src": "6877:42:4" } ] }, "documentation": "@dev Destroys `amount` tokens from `account`, reducing the\ntotal supply.\n * Emits a {Transfer} event with `to` set to the zero address.\n * Requirements\n * - `account` cannot be the zero address.\n- `account` must have at least `amount` tokens.", - "id": 901, + "id": 937, "implemented": true, "kind": "function", "modifiers": [], "name": "_burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 862, + "id": 898, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 859, + "id": 895, "name": "account", "nodeType": "VariableDeclaration", - "scope": 901, + "scope": 937, "src": "6599:15:4", "stateVariable": false, "storageLocation": "default", @@ -4719,7 +4719,7 @@ "typeString": "address" }, "typeName": { - "id": 858, + "id": 894, "name": "address", "nodeType": "ElementaryTypeName", "src": "6599:7:4", @@ -4734,10 +4734,10 @@ }, { "constant": false, - "id": 861, + "id": 897, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 901, + "scope": 937, "src": "6616:14:4", "stateVariable": false, "storageLocation": "default", @@ -4746,7 +4746,7 @@ "typeString": "uint256" }, "typeName": { - "id": 860, + "id": 896, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6616:7:4", @@ -4762,12 +4762,12 @@ "src": "6598:33:4" }, "returnParameters": { - "id": 863, + "id": 899, "nodeType": "ParameterList", "parameters": [], "src": "6641:0:4" }, - "scope": 973, + "scope": 1009, "src": "6584:342:4", "stateMutability": "nonpayable", "superFunction": null, @@ -4775,7 +4775,7 @@ }, { "body": { - "id": 942, + "id": 978, "nodeType": "Block", "src": "7426:257:4", "statements": [ @@ -4789,18 +4789,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 915, + "id": 951, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 911, + "id": 947, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 903, + "referencedDeclaration": 939, "src": "7444:5:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4815,7 +4815,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 913, + "id": 949, "isConstant": false, "isLValue": false, "isPure": true, @@ -4838,7 +4838,7 @@ "typeString": "int_const 0" } ], - "id": 912, + "id": 948, "isConstant": false, "isLValue": false, "isPure": true, @@ -4851,7 +4851,7 @@ }, "typeName": "address" }, - "id": 914, + "id": 950, "isConstant": false, "isLValue": false, "isPure": true, @@ -4874,7 +4874,7 @@ { "argumentTypes": null, "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", - "id": 916, + "id": 952, "isConstant": false, "isLValue": false, "isPure": true, @@ -4901,21 +4901,21 @@ "typeString": "literal_string \"ERC20: approve from the zero address\"" } ], - "id": 910, + "id": 946, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "7436:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 917, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -4929,7 +4929,7 @@ "typeString": "tuple()" } }, - "id": 918, + "id": 954, "nodeType": "ExpressionStatement", "src": "7436:68:4" }, @@ -4943,18 +4943,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 924, + "id": 960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 920, + "id": 956, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, + "referencedDeclaration": 941, "src": "7522:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4969,7 +4969,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 922, + "id": 958, "isConstant": false, "isLValue": false, "isPure": true, @@ -4992,7 +4992,7 @@ "typeString": "int_const 0" } ], - "id": 921, + "id": 957, "isConstant": false, "isLValue": false, "isPure": true, @@ -5005,7 +5005,7 @@ }, "typeName": "address" }, - "id": 923, + "id": 959, "isConstant": false, "isLValue": false, "isPure": true, @@ -5028,7 +5028,7 @@ { "argumentTypes": null, "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", - "id": 925, + "id": 961, "isConstant": false, "isLValue": false, "isPure": true, @@ -5055,21 +5055,21 @@ "typeString": "literal_string \"ERC20: approve to the zero address\"" } ], - "id": 919, + "id": 955, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "7514:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 926, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -5083,14 +5083,14 @@ "typeString": "tuple()" } }, - "id": 927, + "id": 963, "nodeType": "ExpressionStatement", "src": "7514:68:4" }, { "expression": { "argumentTypes": null, - "id": 934, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, @@ -5101,25 +5101,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 928, + "id": 964, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 626, "src": "7593:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 931, + "id": 967, "indexExpression": { "argumentTypes": null, - "id": 929, + "id": 965, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 903, + "referencedDeclaration": 939, "src": "7605:5:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5137,14 +5137,14 @@ "typeString": "mapping(address => uint256)" } }, - "id": 932, + "id": 968, "indexExpression": { "argumentTypes": null, - "id": 930, + "id": 966, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, + "referencedDeclaration": 941, "src": "7612:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5166,11 +5166,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 933, + "id": 969, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 907, + "referencedDeclaration": 943, "src": "7623:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5183,7 +5183,7 @@ "typeString": "uint256" } }, - "id": 935, + "id": 971, "nodeType": "ExpressionStatement", "src": "7593:36:4" }, @@ -5193,11 +5193,11 @@ "arguments": [ { "argumentTypes": null, - "id": 937, + "id": 973, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 903, + "referencedDeclaration": 939, "src": "7653:5:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5206,11 +5206,11 @@ }, { "argumentTypes": null, - "id": 938, + "id": 974, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, + "referencedDeclaration": 941, "src": "7660:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5219,11 +5219,11 @@ }, { "argumentTypes": null, - "id": 939, + "id": 975, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 907, + "referencedDeclaration": 943, "src": "7669:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5246,18 +5246,18 @@ "typeString": "uint256" } ], - "id": 936, + "id": 972, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1041, + "referencedDeclaration": 1077, "src": "7644:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 940, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -5271,29 +5271,29 @@ "typeString": "tuple()" } }, - "id": 941, + "id": 977, "nodeType": "EmitStatement", "src": "7639:37:4" } ] }, "documentation": "@dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n * This is internal function is equivalent to `approve`, and can be used to\ne.g. set automatic allowances for certain subsystems, etc.\n * Emits an {Approval} event.\n * Requirements:\n * - `owner` cannot be the zero address.\n- `spender` cannot be the zero address.", - "id": 943, + "id": 979, "implemented": true, "kind": "function", "modifiers": [], "name": "_approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 908, + "id": 944, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 903, + "id": 939, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 943, + "scope": 979, "src": "7369:13:4", "stateVariable": false, "storageLocation": "default", @@ -5302,7 +5302,7 @@ "typeString": "address" }, "typeName": { - "id": 902, + "id": 938, "name": "address", "nodeType": "ElementaryTypeName", "src": "7369:7:4", @@ -5317,10 +5317,10 @@ }, { "constant": false, - "id": 905, + "id": 941, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 943, + "scope": 979, "src": "7384:15:4", "stateVariable": false, "storageLocation": "default", @@ -5329,7 +5329,7 @@ "typeString": "address" }, "typeName": { - "id": 904, + "id": 940, "name": "address", "nodeType": "ElementaryTypeName", "src": "7384:7:4", @@ -5344,10 +5344,10 @@ }, { "constant": false, - "id": 907, + "id": 943, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 943, + "scope": 979, "src": "7401:14:4", "stateVariable": false, "storageLocation": "default", @@ -5356,7 +5356,7 @@ "typeString": "uint256" }, "typeName": { - "id": 906, + "id": 942, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7401:7:4", @@ -5372,12 +5372,12 @@ "src": "7368:48:4" }, "returnParameters": { - "id": 909, + "id": 945, "nodeType": "ParameterList", "parameters": [], "src": "7426:0:4" }, - "scope": 973, + "scope": 1009, "src": "7351:332:4", "stateMutability": "nonpayable", "superFunction": null, @@ -5385,7 +5385,7 @@ }, { "body": { - "id": 971, + "id": 1007, "nodeType": "Block", "src": "7922:168:4", "statements": [ @@ -5395,11 +5395,11 @@ "arguments": [ { "argumentTypes": null, - "id": 951, + "id": 987, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 945, + "referencedDeclaration": 981, "src": "7938:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5408,11 +5408,11 @@ }, { "argumentTypes": null, - "id": 952, + "id": 988, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 947, + "referencedDeclaration": 983, "src": "7947:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5431,18 +5431,18 @@ "typeString": "uint256" } ], - "id": 950, + "id": 986, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 901, + "referencedDeclaration": 937, "src": "7932:5:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 953, + "id": 989, "isConstant": false, "isLValue": false, "isPure": false, @@ -5456,7 +5456,7 @@ "typeString": "tuple()" } }, - "id": 954, + "id": 990, "nodeType": "ExpressionStatement", "src": "7932:22:4" }, @@ -5466,11 +5466,11 @@ "arguments": [ { "argumentTypes": null, - "id": 956, + "id": 992, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 945, + "referencedDeclaration": 981, "src": "7973:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5482,18 +5482,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 957, + "id": 993, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "7982:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 958, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -5512,11 +5512,11 @@ "arguments": [ { "argumentTypes": null, - "id": 966, + "id": 1002, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 947, + "referencedDeclaration": 983, "src": "8035:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5526,7 +5526,7 @@ { "argumentTypes": null, "hexValue": "45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365", - "id": 967, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": true, @@ -5559,25 +5559,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 959, + "id": 995, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 626, "src": "7996:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 961, + "id": 997, "indexExpression": { "argumentTypes": null, - "id": 960, + "id": 996, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 945, + "referencedDeclaration": 981, "src": "8008:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5595,24 +5595,24 @@ "typeString": "mapping(address => uint256)" } }, - "id": 964, + "id": 1000, "indexExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 962, + "id": 998, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "8017:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 963, + "id": 999, "isConstant": false, "isLValue": false, "isPure": false, @@ -5637,21 +5637,21 @@ "typeString": "uint256" } }, - "id": 965, + "id": 1001, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 451, + "referencedDeclaration": 487, "src": "7996:38:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 968, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": false, @@ -5681,18 +5681,18 @@ "typeString": "uint256" } ], - "id": 955, + "id": 991, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, + "referencedDeclaration": 979, "src": "7964:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 969, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": false, @@ -5706,29 +5706,29 @@ "typeString": "tuple()" } }, - "id": 970, + "id": 1006, "nodeType": "ExpressionStatement", "src": "7964:119:4" } ] }, "documentation": "@dev Destroys `amount` tokens from `account`.`amount` is then deducted\nfrom the caller's allowance.\n * See {_burn} and {_approve}.", - "id": 972, + "id": 1008, "implemented": true, "kind": "function", "modifiers": [], "name": "_burnFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 948, + "id": 984, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 945, + "id": 981, "name": "account", "nodeType": "VariableDeclaration", - "scope": 972, + "scope": 1008, "src": "7880:15:4", "stateVariable": false, "storageLocation": "default", @@ -5737,7 +5737,7 @@ "typeString": "address" }, "typeName": { - "id": 944, + "id": 980, "name": "address", "nodeType": "ElementaryTypeName", "src": "7880:7:4", @@ -5752,10 +5752,10 @@ }, { "constant": false, - "id": 947, + "id": 983, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 972, + "scope": 1008, "src": "7897:14:4", "stateVariable": false, "storageLocation": "default", @@ -5764,7 +5764,7 @@ "typeString": "uint256" }, "typeName": { - "id": 946, + "id": 982, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7897:7:4", @@ -5780,19 +5780,19 @@ "src": "7879:33:4" }, "returnParameters": { - "id": 949, + "id": 985, "nodeType": "ParameterList", "parameters": [], "src": "7922:0:4" }, - "scope": 973, + "scope": 1009, "src": "7861:229:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 974, + "scope": 1010, "src": "1268:6824:4" } ], @@ -5802,14 +5802,14 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "ERC20": [ - 973 + 1009 ] }, - "id": 974, + "id": 1010, "nodeType": "SourceUnit", "nodes": [ { - "id": 570, + "id": 606, "literals": [ "solidity", "^", @@ -5822,10 +5822,10 @@ { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../../GSN/Context.sol", - "id": 571, + "id": 607, "nodeType": "ImportDirective", - "scope": 974, - "sourceUnit": 382, + "scope": 1010, + "sourceUnit": 418, "src": "25:31:4", "symbolAliases": [], "unitAlias": "" @@ -5833,10 +5833,10 @@ { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 572, + "id": 608, "nodeType": "ImportDirective", - "scope": 974, - "sourceUnit": 1043, + "scope": 1010, + "sourceUnit": 1079, "src": "57:22:4", "symbolAliases": [], "unitAlias": "" @@ -5844,10 +5844,10 @@ { "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 573, + "id": 609, "nodeType": "ImportDirective", - "scope": 974, - "sourceUnit": 569, + "scope": 1010, + "sourceUnit": 605, "src": "80:33:4", "symbolAliases": [], "unitAlias": "" @@ -5858,17 +5858,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 574, + "id": 610, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 381, + "referencedDeclaration": 417, "src": "1286:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$381", + "typeIdentifier": "t_contract$_Context_$417", "typeString": "contract Context" } }, - "id": 575, + "id": 611, "nodeType": "InheritanceSpecifier", "src": "1286:7:4" }, @@ -5876,55 +5876,55 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 576, + "id": 612, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1042, + "referencedDeclaration": 1078, "src": "1295:6:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1042", + "typeIdentifier": "t_contract$_IERC20_$1078", "typeString": "contract IERC20" } }, - "id": 577, + "id": 613, "nodeType": "InheritanceSpecifier", "src": "1295:6:4" } ], "contractDependencies": [ - 381, - 1042 + 417, + 1078 ], "contractKind": "contract", "documentation": "@dev Implementation of the {IERC20} interface.\n * This implementation is agnostic to the way tokens are created. This means\nthat a supply mechanism has to be added in a derived contract using {_mint}.\nFor a generic mechanism see {ERC20Mintable}.\n * TIP: For a detailed writeup see our guide\nhttps://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\nto implement supply mechanisms].\n * We have followed general OpenZeppelin guidelines: functions revert instead\nof returning `false` on failure. This behavior is nonetheless conventional\nand does not conflict with the expectations of ERC20 applications.\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\nThis allows applications to reconstruct the allowance for all accounts just\nby listening to said events. Other implementations of the EIP may not emit\nthese events, as it isn't required by the specification.\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\nfunctions have been added to mitigate the well-known issues around setting\nallowances. See {IERC20-approve}.", "fullyImplemented": true, - "id": 973, + "id": 1009, "linearizedBaseContracts": [ - 973, - 1042, - 381 + 1009, + 1078, + 417 ], "name": "ERC20", "nodeType": "ContractDefinition", "nodes": [ { - "id": 580, + "id": 616, "libraryName": { "contractScope": null, - "id": 578, + "id": 614, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 568, + "referencedDeclaration": 604, "src": "1314:8:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$568", + "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "1308:27:4", "typeName": { - "id": 579, + "id": 615, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1327:7:4", @@ -5936,10 +5936,10 @@ }, { "constant": false, - "id": 584, + "id": 620, "name": "_balances", "nodeType": "VariableDeclaration", - "scope": 973, + "scope": 1009, "src": "1341:46:4", "stateVariable": true, "storageLocation": "default", @@ -5948,9 +5948,9 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 583, + "id": 619, "keyType": { - "id": 581, + "id": 617, "name": "address", "nodeType": "ElementaryTypeName", "src": "1350:7:4", @@ -5966,7 +5966,7 @@ "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 582, + "id": 618, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1361:7:4", @@ -5981,10 +5981,10 @@ }, { "constant": false, - "id": 590, + "id": 626, "name": "_allowances", "nodeType": "VariableDeclaration", - "scope": 973, + "scope": 1009, "src": "1394:69:4", "stateVariable": true, "storageLocation": "default", @@ -5993,9 +5993,9 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 589, + "id": 625, "keyType": { - "id": 585, + "id": 621, "name": "address", "nodeType": "ElementaryTypeName", "src": "1403:7:4", @@ -6011,9 +6011,9 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 588, + "id": 624, "keyType": { - "id": 586, + "id": 622, "name": "address", "nodeType": "ElementaryTypeName", "src": "1423:7:4", @@ -6029,7 +6029,7 @@ "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 587, + "id": 623, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1434:7:4", @@ -6045,10 +6045,10 @@ }, { "constant": false, - "id": 592, + "id": 628, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 973, + "scope": 1009, "src": "1470:28:4", "stateVariable": true, "storageLocation": "default", @@ -6057,7 +6057,7 @@ "typeString": "uint256" }, "typeName": { - "id": 591, + "id": 627, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1470:7:4", @@ -6071,54 +6071,54 @@ }, { "body": { - "id": 599, + "id": 635, "nodeType": "Block", "src": "1612:36:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 597, + "id": 633, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 628, "src": "1629:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 596, - "id": 598, + "functionReturnParameters": 632, + "id": 634, "nodeType": "Return", "src": "1622:19:4" } ] }, "documentation": "@dev See {IERC20-totalSupply}.", - "id": 600, + "id": 636, "implemented": true, "kind": "function", "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 593, + "id": 629, "nodeType": "ParameterList", "parameters": [], "src": "1579:2:4" }, "returnParameters": { - "id": 596, + "id": 632, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 595, + "id": 631, "name": "", "nodeType": "VariableDeclaration", - "scope": 600, + "scope": 636, "src": "1603:7:4", "stateVariable": false, "storageLocation": "default", @@ -6127,7 +6127,7 @@ "typeString": "uint256" }, "typeName": { - "id": 594, + "id": 630, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1603:7:4", @@ -6142,15 +6142,15 @@ ], "src": "1602:9:4" }, - "scope": 973, + "scope": 1009, "src": "1559:89:4", "stateMutability": "view", - "superFunction": 980, + "superFunction": 1016, "visibility": "public" }, { "body": { - "id": 611, + "id": 647, "nodeType": "Block", "src": "1772:42:4", "statements": [ @@ -6159,25 +6159,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 607, + "id": 643, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "1789:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 609, + "id": 645, "indexExpression": { "argumentTypes": null, - "id": 608, + "id": 644, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 602, + "referencedDeclaration": 638, "src": "1799:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6195,30 +6195,30 @@ "typeString": "uint256" } }, - "functionReturnParameters": 606, - "id": 610, + "functionReturnParameters": 642, + "id": 646, "nodeType": "Return", "src": "1782:25:4" } ] }, "documentation": "@dev See {IERC20-balanceOf}.", - "id": 612, + "id": 648, "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 603, + "id": 639, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 602, + "id": 638, "name": "account", "nodeType": "VariableDeclaration", - "scope": 612, + "scope": 648, "src": "1725:15:4", "stateVariable": false, "storageLocation": "default", @@ -6227,7 +6227,7 @@ "typeString": "address" }, "typeName": { - "id": 601, + "id": 637, "name": "address", "nodeType": "ElementaryTypeName", "src": "1725:7:4", @@ -6244,15 +6244,15 @@ "src": "1724:17:4" }, "returnParameters": { - "id": 606, + "id": 642, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 605, + "id": 641, "name": "", "nodeType": "VariableDeclaration", - "scope": 612, + "scope": 648, "src": "1763:7:4", "stateVariable": false, "storageLocation": "default", @@ -6261,7 +6261,7 @@ "typeString": "uint256" }, "typeName": { - "id": 604, + "id": 640, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1763:7:4", @@ -6276,15 +6276,15 @@ ], "src": "1762:9:4" }, - "scope": 973, + "scope": 1009, "src": "1706:108:4", "stateMutability": "view", - "superFunction": 987, + "superFunction": 1023, "visibility": "public" }, { "body": { - "id": 630, + "id": 666, "nodeType": "Block", "src": "2092:80:4", "statements": [ @@ -6297,18 +6297,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 622, + "id": 658, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "2112:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 623, + "id": 659, "isConstant": false, "isLValue": false, "isPure": false, @@ -6324,11 +6324,11 @@ }, { "argumentTypes": null, - "id": 624, + "id": 660, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 614, + "referencedDeclaration": 650, "src": "2126:9:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6337,11 +6337,11 @@ }, { "argumentTypes": null, - "id": 625, + "id": 661, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, + "referencedDeclaration": 652, "src": "2137:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6364,18 +6364,18 @@ "typeString": "uint256" } ], - "id": 621, + "id": 657, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, + "referencedDeclaration": 850, "src": "2102:9:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 626, + "id": 662, "isConstant": false, "isLValue": false, "isPure": false, @@ -6389,7 +6389,7 @@ "typeString": "tuple()" } }, - "id": 627, + "id": 663, "nodeType": "ExpressionStatement", "src": "2102:42:4" }, @@ -6397,7 +6397,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 628, + "id": 664, "isConstant": false, "isLValue": false, "isPure": true, @@ -6412,30 +6412,30 @@ }, "value": "true" }, - "functionReturnParameters": 620, - "id": 629, + "functionReturnParameters": 656, + "id": 665, "nodeType": "Return", "src": "2154:11:4" } ] }, "documentation": "@dev See {IERC20-transfer}.\n * Requirements:\n * - `recipient` cannot be the zero address.\n- the caller must have a balance of at least `amount`.", - "id": 631, + "id": 667, "implemented": true, "kind": "function", "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 617, + "id": 653, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 614, + "id": 650, "name": "recipient", "nodeType": "VariableDeclaration", - "scope": 631, + "scope": 667, "src": "2035:17:4", "stateVariable": false, "storageLocation": "default", @@ -6444,7 +6444,7 @@ "typeString": "address" }, "typeName": { - "id": 613, + "id": 649, "name": "address", "nodeType": "ElementaryTypeName", "src": "2035:7:4", @@ -6459,10 +6459,10 @@ }, { "constant": false, - "id": 616, + "id": 652, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 631, + "scope": 667, "src": "2054:14:4", "stateVariable": false, "storageLocation": "default", @@ -6471,7 +6471,7 @@ "typeString": "uint256" }, "typeName": { - "id": 615, + "id": 651, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2054:7:4", @@ -6487,15 +6487,15 @@ "src": "2034:35:4" }, "returnParameters": { - "id": 620, + "id": 656, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 619, + "id": 655, "name": "", "nodeType": "VariableDeclaration", - "scope": 631, + "scope": 667, "src": "2086:4:4", "stateVariable": false, "storageLocation": "default", @@ -6504,7 +6504,7 @@ "typeString": "bool" }, "typeName": { - "id": 618, + "id": 654, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2086:4:4", @@ -6519,15 +6519,15 @@ ], "src": "2085:6:4" }, - "scope": 973, + "scope": 1009, "src": "2017:155:4", "stateMutability": "nonpayable", - "superFunction": 996, + "superFunction": 1032, "visibility": "public" }, { "body": { - "id": 646, + "id": 682, "nodeType": "Block", "src": "2311:51:4", "statements": [ @@ -6538,25 +6538,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 640, + "id": 676, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 626, "src": "2328:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 642, + "id": 678, "indexExpression": { "argumentTypes": null, - "id": 641, + "id": 677, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 633, + "referencedDeclaration": 669, "src": "2340:5:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6574,14 +6574,14 @@ "typeString": "mapping(address => uint256)" } }, - "id": 644, + "id": 680, "indexExpression": { "argumentTypes": null, - "id": 643, + "id": 679, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 635, + "referencedDeclaration": 671, "src": "2347:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6599,30 +6599,30 @@ "typeString": "uint256" } }, - "functionReturnParameters": 639, - "id": 645, + "functionReturnParameters": 675, + "id": 681, "nodeType": "Return", "src": "2321:34:4" } ] }, "documentation": "@dev See {IERC20-allowance}.", - "id": 647, + "id": 683, "implemented": true, "kind": "function", "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 636, + "id": 672, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 633, + "id": 669, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 647, + "scope": 683, "src": "2249:13:4", "stateVariable": false, "storageLocation": "default", @@ -6631,7 +6631,7 @@ "typeString": "address" }, "typeName": { - "id": 632, + "id": 668, "name": "address", "nodeType": "ElementaryTypeName", "src": "2249:7:4", @@ -6646,10 +6646,10 @@ }, { "constant": false, - "id": 635, + "id": 671, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 647, + "scope": 683, "src": "2264:15:4", "stateVariable": false, "storageLocation": "default", @@ -6658,7 +6658,7 @@ "typeString": "address" }, "typeName": { - "id": 634, + "id": 670, "name": "address", "nodeType": "ElementaryTypeName", "src": "2264:7:4", @@ -6675,15 +6675,15 @@ "src": "2248:32:4" }, "returnParameters": { - "id": 639, + "id": 675, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 638, + "id": 674, "name": "", "nodeType": "VariableDeclaration", - "scope": 647, + "scope": 683, "src": "2302:7:4", "stateVariable": false, "storageLocation": "default", @@ -6692,7 +6692,7 @@ "typeString": "uint256" }, "typeName": { - "id": 637, + "id": 673, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2302:7:4", @@ -6707,15 +6707,15 @@ ], "src": "2301:9:4" }, - "scope": 973, + "scope": 1009, "src": "2230:132:4", "stateMutability": "view", - "superFunction": 1005, + "superFunction": 1041, "visibility": "public" }, { "body": { - "id": 665, + "id": 701, "nodeType": "Block", "src": "2572:77:4", "statements": [ @@ -6728,18 +6728,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 657, + "id": 693, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "2591:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 658, + "id": 694, "isConstant": false, "isLValue": false, "isPure": false, @@ -6755,11 +6755,11 @@ }, { "argumentTypes": null, - "id": 659, + "id": 695, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 649, + "referencedDeclaration": 685, "src": "2605:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6768,11 +6768,11 @@ }, { "argumentTypes": null, - "id": 660, + "id": 696, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 651, + "referencedDeclaration": 687, "src": "2614:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6795,18 +6795,18 @@ "typeString": "uint256" } ], - "id": 656, + "id": 692, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, + "referencedDeclaration": 979, "src": "2582:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 661, + "id": 697, "isConstant": false, "isLValue": false, "isPure": false, @@ -6820,7 +6820,7 @@ "typeString": "tuple()" } }, - "id": 662, + "id": 698, "nodeType": "ExpressionStatement", "src": "2582:39:4" }, @@ -6828,7 +6828,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 663, + "id": 699, "isConstant": false, "isLValue": false, "isPure": true, @@ -6843,30 +6843,30 @@ }, "value": "true" }, - "functionReturnParameters": 655, - "id": 664, + "functionReturnParameters": 691, + "id": 700, "nodeType": "Return", "src": "2631:11:4" } ] }, "documentation": "@dev See {IERC20-approve}.\n * Requirements:\n * - `spender` cannot be the zero address.", - "id": 666, + "id": 702, "implemented": true, "kind": "function", "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 652, + "id": 688, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 649, + "id": 685, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 666, + "scope": 702, "src": "2517:15:4", "stateVariable": false, "storageLocation": "default", @@ -6875,7 +6875,7 @@ "typeString": "address" }, "typeName": { - "id": 648, + "id": 684, "name": "address", "nodeType": "ElementaryTypeName", "src": "2517:7:4", @@ -6890,10 +6890,10 @@ }, { "constant": false, - "id": 651, + "id": 687, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 666, + "scope": 702, "src": "2534:14:4", "stateVariable": false, "storageLocation": "default", @@ -6902,7 +6902,7 @@ "typeString": "uint256" }, "typeName": { - "id": 650, + "id": 686, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2534:7:4", @@ -6918,15 +6918,15 @@ "src": "2516:33:4" }, "returnParameters": { - "id": 655, + "id": 691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 654, + "id": 690, "name": "", "nodeType": "VariableDeclaration", - "scope": 666, + "scope": 702, "src": "2566:4:4", "stateVariable": false, "storageLocation": "default", @@ -6935,7 +6935,7 @@ "typeString": "bool" }, "typeName": { - "id": 653, + "id": 689, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2566:4:4", @@ -6950,15 +6950,15 @@ ], "src": "2565:6:4" }, - "scope": 973, + "scope": 1009, "src": "2500:149:4", "stateMutability": "nonpayable", - "superFunction": 1014, + "superFunction": 1050, "visibility": "public" }, { "body": { - "id": 701, + "id": 737, "nodeType": "Block", "src": "3202:205:4", "statements": [ @@ -6968,11 +6968,11 @@ "arguments": [ { "argumentTypes": null, - "id": 678, + "id": 714, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, + "referencedDeclaration": 704, "src": "3222:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6981,11 +6981,11 @@ }, { "argumentTypes": null, - "id": 679, + "id": 715, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, + "referencedDeclaration": 706, "src": "3230:9:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6994,11 +6994,11 @@ }, { "argumentTypes": null, - "id": 680, + "id": 716, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 672, + "referencedDeclaration": 708, "src": "3241:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7021,18 +7021,18 @@ "typeString": "uint256" } ], - "id": 677, + "id": 713, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, + "referencedDeclaration": 850, "src": "3212:9:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 681, + "id": 717, "isConstant": false, "isLValue": false, "isPure": false, @@ -7046,7 +7046,7 @@ "typeString": "tuple()" } }, - "id": 682, + "id": 718, "nodeType": "ExpressionStatement", "src": "3212:36:4" }, @@ -7056,11 +7056,11 @@ "arguments": [ { "argumentTypes": null, - "id": 684, + "id": 720, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, + "referencedDeclaration": 704, "src": "3267:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7072,18 +7072,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 685, + "id": 721, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "3275:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 686, + "id": 722, "isConstant": false, "isLValue": false, "isPure": false, @@ -7102,11 +7102,11 @@ "arguments": [ { "argumentTypes": null, - "id": 694, + "id": 730, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 672, + "referencedDeclaration": 708, "src": "3327:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7116,7 +7116,7 @@ { "argumentTypes": null, "hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365", - "id": 695, + "id": 731, "isConstant": false, "isLValue": false, "isPure": true, @@ -7149,25 +7149,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 687, + "id": 723, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 626, "src": "3289:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 689, + "id": 725, "indexExpression": { "argumentTypes": null, - "id": 688, + "id": 724, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, + "referencedDeclaration": 704, "src": "3301:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7185,24 +7185,24 @@ "typeString": "mapping(address => uint256)" } }, - "id": 692, + "id": 728, "indexExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 690, + "id": 726, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "3309:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 691, + "id": 727, "isConstant": false, "isLValue": false, "isPure": false, @@ -7227,21 +7227,21 @@ "typeString": "uint256" } }, - "id": 693, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 451, + "referencedDeclaration": 487, "src": "3289:37:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 696, + "id": 732, "isConstant": false, "isLValue": false, "isPure": false, @@ -7271,18 +7271,18 @@ "typeString": "uint256" } ], - "id": 683, + "id": 719, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, + "referencedDeclaration": 979, "src": "3258:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 697, + "id": 733, "isConstant": false, "isLValue": false, "isPure": false, @@ -7296,7 +7296,7 @@ "typeString": "tuple()" } }, - "id": 698, + "id": 734, "nodeType": "ExpressionStatement", "src": "3258:121:4" }, @@ -7304,7 +7304,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 699, + "id": 735, "isConstant": false, "isLValue": false, "isPure": true, @@ -7319,30 +7319,30 @@ }, "value": "true" }, - "functionReturnParameters": 676, - "id": 700, + "functionReturnParameters": 712, + "id": 736, "nodeType": "Return", "src": "3389:11:4" } ] }, "documentation": "@dev See {IERC20-transferFrom}.\n * Emits an {Approval} event indicating the updated allowance. This is not\nrequired by the EIP. See the note at the beginning of {ERC20};\n * Requirements:\n- `sender` and `recipient` cannot be the zero address.\n- `sender` must have a balance of at least `amount`.\n- the caller must have allowance for `sender`'s tokens of at least\n`amount`.", - "id": 702, + "id": 738, "implemented": true, "kind": "function", "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 673, + "id": 709, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 668, + "id": 704, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 702, + "scope": 738, "src": "3129:14:4", "stateVariable": false, "storageLocation": "default", @@ -7351,7 +7351,7 @@ "typeString": "address" }, "typeName": { - "id": 667, + "id": 703, "name": "address", "nodeType": "ElementaryTypeName", "src": "3129:7:4", @@ -7366,10 +7366,10 @@ }, { "constant": false, - "id": 670, + "id": 706, "name": "recipient", "nodeType": "VariableDeclaration", - "scope": 702, + "scope": 738, "src": "3145:17:4", "stateVariable": false, "storageLocation": "default", @@ -7378,7 +7378,7 @@ "typeString": "address" }, "typeName": { - "id": 669, + "id": 705, "name": "address", "nodeType": "ElementaryTypeName", "src": "3145:7:4", @@ -7393,10 +7393,10 @@ }, { "constant": false, - "id": 672, + "id": 708, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 702, + "scope": 738, "src": "3164:14:4", "stateVariable": false, "storageLocation": "default", @@ -7405,7 +7405,7 @@ "typeString": "uint256" }, "typeName": { - "id": 671, + "id": 707, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3164:7:4", @@ -7421,15 +7421,15 @@ "src": "3128:51:4" }, "returnParameters": { - "id": 676, + "id": 712, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 675, + "id": 711, "name": "", "nodeType": "VariableDeclaration", - "scope": 702, + "scope": 738, "src": "3196:4:4", "stateVariable": false, "storageLocation": "default", @@ -7438,7 +7438,7 @@ "typeString": "bool" }, "typeName": { - "id": 674, + "id": 710, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3196:4:4", @@ -7453,15 +7453,15 @@ ], "src": "3195:6:4" }, - "scope": 973, + "scope": 1009, "src": "3107:300:4", "stateMutability": "nonpayable", - "superFunction": 1025, + "superFunction": 1061, "visibility": "public" }, { "body": { - "id": 728, + "id": 764, "nodeType": "Block", "src": "3888:121:4", "statements": [ @@ -7474,18 +7474,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 712, + "id": 748, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "3907:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 713, + "id": 749, "isConstant": false, "isLValue": false, "isPure": false, @@ -7501,11 +7501,11 @@ }, { "argumentTypes": null, - "id": 714, + "id": 750, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 704, + "referencedDeclaration": 740, "src": "3921:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7517,11 +7517,11 @@ "arguments": [ { "argumentTypes": null, - "id": 722, + "id": 758, "name": "addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 706, + "referencedDeclaration": 742, "src": "3969:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7542,35 +7542,35 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 715, + "id": 751, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 626, "src": "3930:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 718, + "id": 754, "indexExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 716, + "id": 752, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "3942:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 717, + "id": 753, "isConstant": false, "isLValue": false, "isPure": false, @@ -7595,14 +7595,14 @@ "typeString": "mapping(address => uint256)" } }, - "id": 720, + "id": 756, "indexExpression": { "argumentTypes": null, - "id": 719, + "id": 755, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 704, + "referencedDeclaration": 740, "src": "3956:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7620,21 +7620,21 @@ "typeString": "uint256" } }, - "id": 721, + "id": 757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 408, + "referencedDeclaration": 444, "src": "3930:38:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 723, + "id": 759, "isConstant": false, "isLValue": false, "isPure": false, @@ -7664,18 +7664,18 @@ "typeString": "uint256" } ], - "id": 711, + "id": 747, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, + "referencedDeclaration": 979, "src": "3898:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 724, + "id": 760, "isConstant": false, "isLValue": false, "isPure": false, @@ -7689,7 +7689,7 @@ "typeString": "tuple()" } }, - "id": 725, + "id": 761, "nodeType": "ExpressionStatement", "src": "3898:83:4" }, @@ -7697,7 +7697,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 726, + "id": 762, "isConstant": false, "isLValue": false, "isPure": true, @@ -7712,30 +7712,30 @@ }, "value": "true" }, - "functionReturnParameters": 710, - "id": 727, + "functionReturnParameters": 746, + "id": 763, "nodeType": "Return", "src": "3991:11:4" } ] }, "documentation": "@dev Atomically increases the allowance granted to `spender` by the caller.\n * This is an alternative to {approve} that can be used as a mitigation for\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address.", - "id": 729, + "id": 765, "implemented": true, "kind": "function", "modifiers": [], "name": "increaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 707, + "id": 743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 704, + "id": 740, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 729, + "scope": 765, "src": "3829:15:4", "stateVariable": false, "storageLocation": "default", @@ -7744,7 +7744,7 @@ "typeString": "address" }, "typeName": { - "id": 703, + "id": 739, "name": "address", "nodeType": "ElementaryTypeName", "src": "3829:7:4", @@ -7759,10 +7759,10 @@ }, { "constant": false, - "id": 706, + "id": 742, "name": "addedValue", "nodeType": "VariableDeclaration", - "scope": 729, + "scope": 765, "src": "3846:18:4", "stateVariable": false, "storageLocation": "default", @@ -7771,7 +7771,7 @@ "typeString": "uint256" }, "typeName": { - "id": 705, + "id": 741, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3846:7:4", @@ -7787,15 +7787,15 @@ "src": "3828:37:4" }, "returnParameters": { - "id": 710, + "id": 746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 709, + "id": 745, "name": "", "nodeType": "VariableDeclaration", - "scope": 729, + "scope": 765, "src": "3882:4:4", "stateVariable": false, "storageLocation": "default", @@ -7804,7 +7804,7 @@ "typeString": "bool" }, "typeName": { - "id": 708, + "id": 744, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3882:4:4", @@ -7819,7 +7819,7 @@ ], "src": "3881:6:4" }, - "scope": 973, + "scope": 1009, "src": "3802:207:4", "stateMutability": "nonpayable", "superFunction": null, @@ -7827,7 +7827,7 @@ }, { "body": { - "id": 756, + "id": 792, "nodeType": "Block", "src": "4587:167:4", "statements": [ @@ -7840,18 +7840,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 739, + "id": 775, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "4606:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 740, + "id": 776, "isConstant": false, "isLValue": false, "isPure": false, @@ -7867,11 +7867,11 @@ }, { "argumentTypes": null, - "id": 741, + "id": 777, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 731, + "referencedDeclaration": 767, "src": "4620:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7883,11 +7883,11 @@ "arguments": [ { "argumentTypes": null, - "id": 749, + "id": 785, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 733, + "referencedDeclaration": 769, "src": "4668:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7897,7 +7897,7 @@ { "argumentTypes": null, "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", - "id": 750, + "id": 786, "isConstant": false, "isLValue": false, "isPure": true, @@ -7930,35 +7930,35 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 742, + "id": 778, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 626, "src": "4629:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 745, + "id": 781, "indexExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 743, + "id": 779, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "4641:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 744, + "id": 780, "isConstant": false, "isLValue": false, "isPure": false, @@ -7983,14 +7983,14 @@ "typeString": "mapping(address => uint256)" } }, - "id": 747, + "id": 783, "indexExpression": { "argumentTypes": null, - "id": 746, + "id": 782, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 731, + "referencedDeclaration": 767, "src": "4655:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8008,21 +8008,21 @@ "typeString": "uint256" } }, - "id": 748, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 451, + "referencedDeclaration": 487, "src": "4629:38:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 751, + "id": 787, "isConstant": false, "isLValue": false, "isPure": false, @@ -8052,18 +8052,18 @@ "typeString": "uint256" } ], - "id": 738, + "id": 774, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, + "referencedDeclaration": 979, "src": "4597:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 752, + "id": 788, "isConstant": false, "isLValue": false, "isPure": false, @@ -8077,7 +8077,7 @@ "typeString": "tuple()" } }, - "id": 753, + "id": 789, "nodeType": "ExpressionStatement", "src": "4597:129:4" }, @@ -8085,7 +8085,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 754, + "id": 790, "isConstant": false, "isLValue": false, "isPure": true, @@ -8100,30 +8100,30 @@ }, "value": "true" }, - "functionReturnParameters": 737, - "id": 755, + "functionReturnParameters": 773, + "id": 791, "nodeType": "Return", "src": "4736:11:4" } ] }, "documentation": "@dev Atomically decreases the allowance granted to `spender` by the caller.\n * This is an alternative to {approve} that can be used as a mitigation for\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address.\n- `spender` must have allowance for the caller of at least\n`subtractedValue`.", - "id": 757, + "id": 793, "implemented": true, "kind": "function", "modifiers": [], "name": "decreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 734, + "id": 770, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 731, + "id": 767, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 757, + "scope": 793, "src": "4523:15:4", "stateVariable": false, "storageLocation": "default", @@ -8132,7 +8132,7 @@ "typeString": "address" }, "typeName": { - "id": 730, + "id": 766, "name": "address", "nodeType": "ElementaryTypeName", "src": "4523:7:4", @@ -8147,10 +8147,10 @@ }, { "constant": false, - "id": 733, + "id": 769, "name": "subtractedValue", "nodeType": "VariableDeclaration", - "scope": 757, + "scope": 793, "src": "4540:23:4", "stateVariable": false, "storageLocation": "default", @@ -8159,7 +8159,7 @@ "typeString": "uint256" }, "typeName": { - "id": 732, + "id": 768, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4540:7:4", @@ -8175,15 +8175,15 @@ "src": "4522:42:4" }, "returnParameters": { - "id": 737, + "id": 773, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 736, + "id": 772, "name": "", "nodeType": "VariableDeclaration", - "scope": 757, + "scope": 793, "src": "4581:4:4", "stateVariable": false, "storageLocation": "default", @@ -8192,7 +8192,7 @@ "typeString": "bool" }, "typeName": { - "id": 735, + "id": 771, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4581:4:4", @@ -8207,7 +8207,7 @@ ], "src": "4580:6:4" }, - "scope": 973, + "scope": 1009, "src": "4496:258:4", "stateMutability": "nonpayable", "superFunction": null, @@ -8215,7 +8215,7 @@ }, { "body": { - "id": 813, + "id": 849, "nodeType": "Block", "src": "5307:385:4", "statements": [ @@ -8229,18 +8229,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 771, + "id": 807, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 767, + "id": 803, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, + "referencedDeclaration": 795, "src": "5325:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8255,7 +8255,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 769, + "id": 805, "isConstant": false, "isLValue": false, "isPure": true, @@ -8278,7 +8278,7 @@ "typeString": "int_const 0" } ], - "id": 768, + "id": 804, "isConstant": false, "isLValue": false, "isPure": true, @@ -8291,7 +8291,7 @@ }, "typeName": "address" }, - "id": 770, + "id": 806, "isConstant": false, "isLValue": false, "isPure": true, @@ -8314,7 +8314,7 @@ { "argumentTypes": null, "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", - "id": 772, + "id": 808, "isConstant": false, "isLValue": false, "isPure": true, @@ -8341,21 +8341,21 @@ "typeString": "literal_string \"ERC20: transfer from the zero address\"" } ], - "id": 766, + "id": 802, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "5317:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 773, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -8369,7 +8369,7 @@ "typeString": "tuple()" } }, - "id": 774, + "id": 810, "nodeType": "ExpressionStatement", "src": "5317:70:4" }, @@ -8383,18 +8383,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 780, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 776, + "id": 812, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, + "referencedDeclaration": 797, "src": "5405:9:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8409,7 +8409,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 778, + "id": 814, "isConstant": false, "isLValue": false, "isPure": true, @@ -8432,7 +8432,7 @@ "typeString": "int_const 0" } ], - "id": 777, + "id": 813, "isConstant": false, "isLValue": false, "isPure": true, @@ -8445,7 +8445,7 @@ }, "typeName": "address" }, - "id": 779, + "id": 815, "isConstant": false, "isLValue": false, "isPure": true, @@ -8468,7 +8468,7 @@ { "argumentTypes": null, "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 781, + "id": 817, "isConstant": false, "isLValue": false, "isPure": true, @@ -8495,21 +8495,21 @@ "typeString": "literal_string \"ERC20: transfer to the zero address\"" } ], - "id": 775, + "id": 811, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "5397:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 782, + "id": 818, "isConstant": false, "isLValue": false, "isPure": false, @@ -8523,14 +8523,14 @@ "typeString": "tuple()" } }, - "id": 783, + "id": 819, "nodeType": "ExpressionStatement", "src": "5397:71:4" }, { "expression": { "argumentTypes": null, - "id": 794, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, @@ -8539,25 +8539,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 784, + "id": 820, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "5479:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 786, + "id": 822, "indexExpression": { "argumentTypes": null, - "id": 785, + "id": 821, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, + "referencedDeclaration": 795, "src": "5489:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8582,11 +8582,11 @@ "arguments": [ { "argumentTypes": null, - "id": 791, + "id": 827, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 763, + "referencedDeclaration": 799, "src": "5521:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8596,7 +8596,7 @@ { "argumentTypes": null, "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", - "id": 792, + "id": 828, "isConstant": false, "isLValue": false, "isPure": true, @@ -8627,25 +8627,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 787, + "id": 823, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "5499:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 789, + "id": 825, "indexExpression": { "argumentTypes": null, - "id": 788, + "id": 824, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, + "referencedDeclaration": 795, "src": "5509:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8663,21 +8663,21 @@ "typeString": "uint256" } }, - "id": 790, + "id": 826, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 451, + "referencedDeclaration": 487, "src": "5499:21:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 793, + "id": 829, "isConstant": false, "isLValue": false, "isPure": false, @@ -8697,14 +8697,14 @@ "typeString": "uint256" } }, - "id": 795, + "id": 831, "nodeType": "ExpressionStatement", "src": "5479:91:4" }, { "expression": { "argumentTypes": null, - "id": 805, + "id": 841, "isConstant": false, "isLValue": false, "isPure": false, @@ -8713,25 +8713,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 796, + "id": 832, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "5580:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 798, + "id": 834, "indexExpression": { "argumentTypes": null, - "id": 797, + "id": 833, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, + "referencedDeclaration": 797, "src": "5590:9:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8756,11 +8756,11 @@ "arguments": [ { "argumentTypes": null, - "id": 803, + "id": 839, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 763, + "referencedDeclaration": 799, "src": "5628:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8779,25 +8779,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 799, + "id": 835, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "5603:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 801, + "id": 837, "indexExpression": { "argumentTypes": null, - "id": 800, + "id": 836, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, + "referencedDeclaration": 797, "src": "5613:9:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8815,21 +8815,21 @@ "typeString": "uint256" } }, - "id": 802, + "id": 838, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 408, + "referencedDeclaration": 444, "src": "5603:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 804, + "id": 840, "isConstant": false, "isLValue": false, "isPure": false, @@ -8849,7 +8849,7 @@ "typeString": "uint256" } }, - "id": 806, + "id": 842, "nodeType": "ExpressionStatement", "src": "5580:55:4" }, @@ -8859,11 +8859,11 @@ "arguments": [ { "argumentTypes": null, - "id": 808, + "id": 844, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 759, + "referencedDeclaration": 795, "src": "5659:6:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8872,11 +8872,11 @@ }, { "argumentTypes": null, - "id": 809, + "id": 845, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, + "referencedDeclaration": 797, "src": "5667:9:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8885,11 +8885,11 @@ }, { "argumentTypes": null, - "id": 810, + "id": 846, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 763, + "referencedDeclaration": 799, "src": "5678:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8912,18 +8912,18 @@ "typeString": "uint256" } ], - "id": 807, + "id": 843, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1033, + "referencedDeclaration": 1069, "src": "5650:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 811, + "id": 847, "isConstant": false, "isLValue": false, "isPure": false, @@ -8937,29 +8937,29 @@ "typeString": "tuple()" } }, - "id": 812, + "id": 848, "nodeType": "EmitStatement", "src": "5645:40:4" } ] }, "documentation": "@dev Moves tokens `amount` from `sender` to `recipient`.\n * This is internal function is equivalent to {transfer}, and can be used to\ne.g. implement automatic token fees, slashing mechanisms, etc.\n * Emits a {Transfer} event.\n * Requirements:\n * - `sender` cannot be the zero address.\n- `recipient` cannot be the zero address.\n- `sender` must have a balance of at least `amount`.", - "id": 814, + "id": 850, "implemented": true, "kind": "function", "modifiers": [], "name": "_transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 764, + "id": 800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 759, + "id": 795, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 814, + "scope": 850, "src": "5247:14:4", "stateVariable": false, "storageLocation": "default", @@ -8968,7 +8968,7 @@ "typeString": "address" }, "typeName": { - "id": 758, + "id": 794, "name": "address", "nodeType": "ElementaryTypeName", "src": "5247:7:4", @@ -8983,10 +8983,10 @@ }, { "constant": false, - "id": 761, + "id": 797, "name": "recipient", "nodeType": "VariableDeclaration", - "scope": 814, + "scope": 850, "src": "5263:17:4", "stateVariable": false, "storageLocation": "default", @@ -8995,7 +8995,7 @@ "typeString": "address" }, "typeName": { - "id": 760, + "id": 796, "name": "address", "nodeType": "ElementaryTypeName", "src": "5263:7:4", @@ -9010,10 +9010,10 @@ }, { "constant": false, - "id": 763, + "id": 799, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 814, + "scope": 850, "src": "5282:14:4", "stateVariable": false, "storageLocation": "default", @@ -9022,7 +9022,7 @@ "typeString": "uint256" }, "typeName": { - "id": 762, + "id": 798, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5282:7:4", @@ -9038,12 +9038,12 @@ "src": "5246:51:4" }, "returnParameters": { - "id": 765, + "id": 801, "nodeType": "ParameterList", "parameters": [], "src": "5307:0:4" }, - "scope": 973, + "scope": 1009, "src": "5228:464:4", "stateMutability": "nonpayable", "superFunction": null, @@ -9051,7 +9051,7 @@ }, { "body": { - "id": 856, + "id": 892, "nodeType": "Block", "src": "6019:245:4", "statements": [ @@ -9065,18 +9065,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 826, + "id": 862, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 822, + "id": 858, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, + "referencedDeclaration": 852, "src": "6037:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9091,7 +9091,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 824, + "id": 860, "isConstant": false, "isLValue": false, "isPure": true, @@ -9114,7 +9114,7 @@ "typeString": "int_const 0" } ], - "id": 823, + "id": 859, "isConstant": false, "isLValue": false, "isPure": true, @@ -9127,7 +9127,7 @@ }, "typeName": "address" }, - "id": 825, + "id": 861, "isConstant": false, "isLValue": false, "isPure": true, @@ -9150,7 +9150,7 @@ { "argumentTypes": null, "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", - "id": 827, + "id": 863, "isConstant": false, "isLValue": false, "isPure": true, @@ -9177,21 +9177,21 @@ "typeString": "literal_string \"ERC20: mint to the zero address\"" } ], - "id": 821, + "id": 857, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "6029:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 828, + "id": 864, "isConstant": false, "isLValue": false, "isPure": false, @@ -9205,25 +9205,25 @@ "typeString": "tuple()" } }, - "id": 829, + "id": 865, "nodeType": "ExpressionStatement", "src": "6029:65:4" }, { "expression": { "argumentTypes": null, - "id": 835, + "id": 871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 830, + "id": 866, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 628, "src": "6105:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9237,11 +9237,11 @@ "arguments": [ { "argumentTypes": null, - "id": 833, + "id": 869, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, + "referencedDeclaration": 854, "src": "6137:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9258,32 +9258,32 @@ ], "expression": { "argumentTypes": null, - "id": 831, + "id": 867, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 628, "src": "6120:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 832, + "id": 868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 408, + "referencedDeclaration": 444, "src": "6120:16:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 834, + "id": 870, "isConstant": false, "isLValue": false, "isPure": false, @@ -9303,14 +9303,14 @@ "typeString": "uint256" } }, - "id": 836, + "id": 872, "nodeType": "ExpressionStatement", "src": "6105:39:4" }, { "expression": { "argumentTypes": null, - "id": 846, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -9319,25 +9319,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 837, + "id": 873, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "6154:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 839, + "id": 875, "indexExpression": { "argumentTypes": null, - "id": 838, + "id": 874, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, + "referencedDeclaration": 852, "src": "6164:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9362,11 +9362,11 @@ "arguments": [ { "argumentTypes": null, - "id": 844, + "id": 880, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, + "referencedDeclaration": 854, "src": "6198:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9385,25 +9385,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 840, + "id": 876, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "6175:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 842, + "id": 878, "indexExpression": { "argumentTypes": null, - "id": 841, + "id": 877, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, + "referencedDeclaration": 852, "src": "6185:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9421,21 +9421,21 @@ "typeString": "uint256" } }, - "id": 843, + "id": 879, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 408, + "referencedDeclaration": 444, "src": "6175:22:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 845, + "id": 881, "isConstant": false, "isLValue": false, "isPure": false, @@ -9455,7 +9455,7 @@ "typeString": "uint256" } }, - "id": 847, + "id": 883, "nodeType": "ExpressionStatement", "src": "6154:51:4" }, @@ -9469,7 +9469,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 850, + "id": 886, "isConstant": false, "isLValue": false, "isPure": true, @@ -9492,7 +9492,7 @@ "typeString": "int_const 0" } ], - "id": 849, + "id": 885, "isConstant": false, "isLValue": false, "isPure": true, @@ -9505,7 +9505,7 @@ }, "typeName": "address" }, - "id": 851, + "id": 887, "isConstant": false, "isLValue": false, "isPure": true, @@ -9521,11 +9521,11 @@ }, { "argumentTypes": null, - "id": 852, + "id": 888, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, + "referencedDeclaration": 852, "src": "6241:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9534,11 +9534,11 @@ }, { "argumentTypes": null, - "id": 853, + "id": 889, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, + "referencedDeclaration": 854, "src": "6250:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9561,18 +9561,18 @@ "typeString": "uint256" } ], - "id": 848, + "id": 884, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1033, + "referencedDeclaration": 1069, "src": "6220:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 854, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, @@ -9586,29 +9586,29 @@ "typeString": "tuple()" } }, - "id": 855, + "id": 891, "nodeType": "EmitStatement", "src": "6215:42:4" } ] }, "documentation": "@dev Creates `amount` tokens and assigns them to `account`, increasing\nthe total supply.\n * Emits a {Transfer} event with `from` set to the zero address.\n * Requirements\n * - `to` cannot be the zero address.", - "id": 857, + "id": 893, "implemented": true, "kind": "function", "modifiers": [], "name": "_mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 819, + "id": 855, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 816, + "id": 852, "name": "account", "nodeType": "VariableDeclaration", - "scope": 857, + "scope": 893, "src": "5977:15:4", "stateVariable": false, "storageLocation": "default", @@ -9617,7 +9617,7 @@ "typeString": "address" }, "typeName": { - "id": 815, + "id": 851, "name": "address", "nodeType": "ElementaryTypeName", "src": "5977:7:4", @@ -9632,10 +9632,10 @@ }, { "constant": false, - "id": 818, + "id": 854, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 857, + "scope": 893, "src": "5994:14:4", "stateVariable": false, "storageLocation": "default", @@ -9644,7 +9644,7 @@ "typeString": "uint256" }, "typeName": { - "id": 817, + "id": 853, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5994:7:4", @@ -9660,12 +9660,12 @@ "src": "5976:33:4" }, "returnParameters": { - "id": 820, + "id": 856, "nodeType": "ParameterList", "parameters": [], "src": "6019:0:4" }, - "scope": 973, + "scope": 1009, "src": "5962:302:4", "stateMutability": "nonpayable", "superFunction": null, @@ -9673,7 +9673,7 @@ }, { "body": { - "id": 900, + "id": 936, "nodeType": "Block", "src": "6641:285:4", "statements": [ @@ -9687,18 +9687,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 869, + "id": 905, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 865, + "id": 901, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, + "referencedDeclaration": 895, "src": "6659:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9713,7 +9713,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 867, + "id": 903, "isConstant": false, "isLValue": false, "isPure": true, @@ -9736,7 +9736,7 @@ "typeString": "int_const 0" } ], - "id": 866, + "id": 902, "isConstant": false, "isLValue": false, "isPure": true, @@ -9749,7 +9749,7 @@ }, "typeName": "address" }, - "id": 868, + "id": 904, "isConstant": false, "isLValue": false, "isPure": true, @@ -9772,7 +9772,7 @@ { "argumentTypes": null, "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", - "id": 870, + "id": 906, "isConstant": false, "isLValue": false, "isPure": true, @@ -9799,21 +9799,21 @@ "typeString": "literal_string \"ERC20: burn from the zero address\"" } ], - "id": 864, + "id": 900, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "6651:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 871, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, @@ -9827,14 +9827,14 @@ "typeString": "tuple()" } }, - "id": 872, + "id": 908, "nodeType": "ExpressionStatement", "src": "6651:67:4" }, { "expression": { "argumentTypes": null, - "id": 883, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, @@ -9843,25 +9843,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 873, + "id": 909, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "6729:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 875, + "id": 911, "indexExpression": { "argumentTypes": null, - "id": 874, + "id": 910, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, + "referencedDeclaration": 895, "src": "6739:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9886,11 +9886,11 @@ "arguments": [ { "argumentTypes": null, - "id": 880, + "id": 916, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 861, + "referencedDeclaration": 897, "src": "6773:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9900,7 +9900,7 @@ { "argumentTypes": null, "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", - "id": 881, + "id": 917, "isConstant": false, "isLValue": false, "isPure": true, @@ -9931,25 +9931,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 876, + "id": 912, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 584, + "referencedDeclaration": 620, "src": "6750:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 878, + "id": 914, "indexExpression": { "argumentTypes": null, - "id": 877, + "id": 913, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, + "referencedDeclaration": 895, "src": "6760:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9967,21 +9967,21 @@ "typeString": "uint256" } }, - "id": 879, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 451, + "referencedDeclaration": 487, "src": "6750:22:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 882, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -10001,25 +10001,25 @@ "typeString": "uint256" } }, - "id": 884, + "id": 920, "nodeType": "ExpressionStatement", "src": "6729:89:4" }, { "expression": { "argumentTypes": null, - "id": 890, + "id": 926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 885, + "id": 921, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 628, "src": "6828:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10033,11 +10033,11 @@ "arguments": [ { "argumentTypes": null, - "id": 888, + "id": 924, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 861, + "referencedDeclaration": 897, "src": "6860:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10054,32 +10054,32 @@ ], "expression": { "argumentTypes": null, - "id": 886, + "id": 922, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, + "referencedDeclaration": 628, "src": "6843:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 887, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 424, + "referencedDeclaration": 460, "src": "6843:16:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 889, + "id": 925, "isConstant": false, "isLValue": false, "isPure": false, @@ -10099,7 +10099,7 @@ "typeString": "uint256" } }, - "id": 891, + "id": 927, "nodeType": "ExpressionStatement", "src": "6828:39:4" }, @@ -10109,11 +10109,11 @@ "arguments": [ { "argumentTypes": null, - "id": 893, + "id": 929, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, + "referencedDeclaration": 895, "src": "6891:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10126,7 +10126,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 895, + "id": 931, "isConstant": false, "isLValue": false, "isPure": true, @@ -10149,7 +10149,7 @@ "typeString": "int_const 0" } ], - "id": 894, + "id": 930, "isConstant": false, "isLValue": false, "isPure": true, @@ -10162,7 +10162,7 @@ }, "typeName": "address" }, - "id": 896, + "id": 932, "isConstant": false, "isLValue": false, "isPure": true, @@ -10178,11 +10178,11 @@ }, { "argumentTypes": null, - "id": 897, + "id": 933, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 861, + "referencedDeclaration": 897, "src": "6912:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10205,18 +10205,18 @@ "typeString": "uint256" } ], - "id": 892, + "id": 928, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1033, + "referencedDeclaration": 1069, "src": "6882:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 898, + "id": 934, "isConstant": false, "isLValue": false, "isPure": false, @@ -10230,29 +10230,29 @@ "typeString": "tuple()" } }, - "id": 899, + "id": 935, "nodeType": "EmitStatement", "src": "6877:42:4" } ] }, "documentation": "@dev Destroys `amount` tokens from `account`, reducing the\ntotal supply.\n * Emits a {Transfer} event with `to` set to the zero address.\n * Requirements\n * - `account` cannot be the zero address.\n- `account` must have at least `amount` tokens.", - "id": 901, + "id": 937, "implemented": true, "kind": "function", "modifiers": [], "name": "_burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 862, + "id": 898, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 859, + "id": 895, "name": "account", "nodeType": "VariableDeclaration", - "scope": 901, + "scope": 937, "src": "6599:15:4", "stateVariable": false, "storageLocation": "default", @@ -10261,7 +10261,7 @@ "typeString": "address" }, "typeName": { - "id": 858, + "id": 894, "name": "address", "nodeType": "ElementaryTypeName", "src": "6599:7:4", @@ -10276,10 +10276,10 @@ }, { "constant": false, - "id": 861, + "id": 897, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 901, + "scope": 937, "src": "6616:14:4", "stateVariable": false, "storageLocation": "default", @@ -10288,7 +10288,7 @@ "typeString": "uint256" }, "typeName": { - "id": 860, + "id": 896, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6616:7:4", @@ -10304,12 +10304,12 @@ "src": "6598:33:4" }, "returnParameters": { - "id": 863, + "id": 899, "nodeType": "ParameterList", "parameters": [], "src": "6641:0:4" }, - "scope": 973, + "scope": 1009, "src": "6584:342:4", "stateMutability": "nonpayable", "superFunction": null, @@ -10317,7 +10317,7 @@ }, { "body": { - "id": 942, + "id": 978, "nodeType": "Block", "src": "7426:257:4", "statements": [ @@ -10331,18 +10331,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 915, + "id": 951, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 911, + "id": 947, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 903, + "referencedDeclaration": 939, "src": "7444:5:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10357,7 +10357,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 913, + "id": 949, "isConstant": false, "isLValue": false, "isPure": true, @@ -10380,7 +10380,7 @@ "typeString": "int_const 0" } ], - "id": 912, + "id": 948, "isConstant": false, "isLValue": false, "isPure": true, @@ -10393,7 +10393,7 @@ }, "typeName": "address" }, - "id": 914, + "id": 950, "isConstant": false, "isLValue": false, "isPure": true, @@ -10416,7 +10416,7 @@ { "argumentTypes": null, "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", - "id": 916, + "id": 952, "isConstant": false, "isLValue": false, "isPure": true, @@ -10443,21 +10443,21 @@ "typeString": "literal_string \"ERC20: approve from the zero address\"" } ], - "id": 910, + "id": 946, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "7436:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 917, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -10471,7 +10471,7 @@ "typeString": "tuple()" } }, - "id": 918, + "id": 954, "nodeType": "ExpressionStatement", "src": "7436:68:4" }, @@ -10485,18 +10485,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 924, + "id": 960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 920, + "id": 956, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, + "referencedDeclaration": 941, "src": "7522:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10511,7 +10511,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 922, + "id": 958, "isConstant": false, "isLValue": false, "isPure": true, @@ -10534,7 +10534,7 @@ "typeString": "int_const 0" } ], - "id": 921, + "id": 957, "isConstant": false, "isLValue": false, "isPure": true, @@ -10547,7 +10547,7 @@ }, "typeName": "address" }, - "id": 923, + "id": 959, "isConstant": false, "isLValue": false, "isPure": true, @@ -10570,7 +10570,7 @@ { "argumentTypes": null, "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", - "id": 925, + "id": 961, "isConstant": false, "isLValue": false, "isPure": true, @@ -10597,21 +10597,21 @@ "typeString": "literal_string \"ERC20: approve to the zero address\"" } ], - "id": 919, + "id": 955, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "7514:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 926, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -10625,14 +10625,14 @@ "typeString": "tuple()" } }, - "id": 927, + "id": 963, "nodeType": "ExpressionStatement", "src": "7514:68:4" }, { "expression": { "argumentTypes": null, - "id": 934, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, @@ -10643,25 +10643,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 928, + "id": 964, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 626, "src": "7593:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 931, + "id": 967, "indexExpression": { "argumentTypes": null, - "id": 929, + "id": 965, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 903, + "referencedDeclaration": 939, "src": "7605:5:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10679,14 +10679,14 @@ "typeString": "mapping(address => uint256)" } }, - "id": 932, + "id": 968, "indexExpression": { "argumentTypes": null, - "id": 930, + "id": 966, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, + "referencedDeclaration": 941, "src": "7612:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10708,11 +10708,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 933, + "id": 969, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 907, + "referencedDeclaration": 943, "src": "7623:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10725,7 +10725,7 @@ "typeString": "uint256" } }, - "id": 935, + "id": 971, "nodeType": "ExpressionStatement", "src": "7593:36:4" }, @@ -10735,11 +10735,11 @@ "arguments": [ { "argumentTypes": null, - "id": 937, + "id": 973, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 903, + "referencedDeclaration": 939, "src": "7653:5:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10748,11 +10748,11 @@ }, { "argumentTypes": null, - "id": 938, + "id": 974, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, + "referencedDeclaration": 941, "src": "7660:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10761,11 +10761,11 @@ }, { "argumentTypes": null, - "id": 939, + "id": 975, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 907, + "referencedDeclaration": 943, "src": "7669:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10788,18 +10788,18 @@ "typeString": "uint256" } ], - "id": 936, + "id": 972, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1041, + "referencedDeclaration": 1077, "src": "7644:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 940, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -10813,29 +10813,29 @@ "typeString": "tuple()" } }, - "id": 941, + "id": 977, "nodeType": "EmitStatement", "src": "7639:37:4" } ] }, "documentation": "@dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n * This is internal function is equivalent to `approve`, and can be used to\ne.g. set automatic allowances for certain subsystems, etc.\n * Emits an {Approval} event.\n * Requirements:\n * - `owner` cannot be the zero address.\n- `spender` cannot be the zero address.", - "id": 943, + "id": 979, "implemented": true, "kind": "function", "modifiers": [], "name": "_approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 908, + "id": 944, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 903, + "id": 939, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 943, + "scope": 979, "src": "7369:13:4", "stateVariable": false, "storageLocation": "default", @@ -10844,7 +10844,7 @@ "typeString": "address" }, "typeName": { - "id": 902, + "id": 938, "name": "address", "nodeType": "ElementaryTypeName", "src": "7369:7:4", @@ -10859,10 +10859,10 @@ }, { "constant": false, - "id": 905, + "id": 941, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 943, + "scope": 979, "src": "7384:15:4", "stateVariable": false, "storageLocation": "default", @@ -10871,7 +10871,7 @@ "typeString": "address" }, "typeName": { - "id": 904, + "id": 940, "name": "address", "nodeType": "ElementaryTypeName", "src": "7384:7:4", @@ -10886,10 +10886,10 @@ }, { "constant": false, - "id": 907, + "id": 943, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 943, + "scope": 979, "src": "7401:14:4", "stateVariable": false, "storageLocation": "default", @@ -10898,7 +10898,7 @@ "typeString": "uint256" }, "typeName": { - "id": 906, + "id": 942, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7401:7:4", @@ -10914,12 +10914,12 @@ "src": "7368:48:4" }, "returnParameters": { - "id": 909, + "id": 945, "nodeType": "ParameterList", "parameters": [], "src": "7426:0:4" }, - "scope": 973, + "scope": 1009, "src": "7351:332:4", "stateMutability": "nonpayable", "superFunction": null, @@ -10927,7 +10927,7 @@ }, { "body": { - "id": 971, + "id": 1007, "nodeType": "Block", "src": "7922:168:4", "statements": [ @@ -10937,11 +10937,11 @@ "arguments": [ { "argumentTypes": null, - "id": 951, + "id": 987, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 945, + "referencedDeclaration": 981, "src": "7938:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10950,11 +10950,11 @@ }, { "argumentTypes": null, - "id": 952, + "id": 988, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 947, + "referencedDeclaration": 983, "src": "7947:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10973,18 +10973,18 @@ "typeString": "uint256" } ], - "id": 950, + "id": 986, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 901, + "referencedDeclaration": 937, "src": "7932:5:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 953, + "id": 989, "isConstant": false, "isLValue": false, "isPure": false, @@ -10998,7 +10998,7 @@ "typeString": "tuple()" } }, - "id": 954, + "id": 990, "nodeType": "ExpressionStatement", "src": "7932:22:4" }, @@ -11008,11 +11008,11 @@ "arguments": [ { "argumentTypes": null, - "id": 956, + "id": 992, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 945, + "referencedDeclaration": 981, "src": "7973:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11024,18 +11024,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 957, + "id": 993, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "7982:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 958, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, @@ -11054,11 +11054,11 @@ "arguments": [ { "argumentTypes": null, - "id": 966, + "id": 1002, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 947, + "referencedDeclaration": 983, "src": "8035:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11068,7 +11068,7 @@ { "argumentTypes": null, "hexValue": "45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365", - "id": 967, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": true, @@ -11101,25 +11101,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 959, + "id": 995, "name": "_allowances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, + "referencedDeclaration": 626, "src": "7996:11:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 961, + "id": 997, "indexExpression": { "argumentTypes": null, - "id": 960, + "id": 996, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 945, + "referencedDeclaration": 981, "src": "8008:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11137,24 +11137,24 @@ "typeString": "mapping(address => uint256)" } }, - "id": 964, + "id": 1000, "indexExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 962, + "id": 998, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, + "referencedDeclaration": 405, "src": "8017:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 963, + "id": 999, "isConstant": false, "isLValue": false, "isPure": false, @@ -11179,21 +11179,21 @@ "typeString": "uint256" } }, - "id": 965, + "id": 1001, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 451, + "referencedDeclaration": 487, "src": "7996:38:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 968, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": false, @@ -11223,18 +11223,18 @@ "typeString": "uint256" } ], - "id": 955, + "id": 991, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, + "referencedDeclaration": 979, "src": "7964:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 969, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": false, @@ -11248,29 +11248,29 @@ "typeString": "tuple()" } }, - "id": 970, + "id": 1006, "nodeType": "ExpressionStatement", "src": "7964:119:4" } ] }, "documentation": "@dev Destroys `amount` tokens from `account`.`amount` is then deducted\nfrom the caller's allowance.\n * See {_burn} and {_approve}.", - "id": 972, + "id": 1008, "implemented": true, "kind": "function", "modifiers": [], "name": "_burnFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 948, + "id": 984, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 945, + "id": 981, "name": "account", "nodeType": "VariableDeclaration", - "scope": 972, + "scope": 1008, "src": "7880:15:4", "stateVariable": false, "storageLocation": "default", @@ -11279,7 +11279,7 @@ "typeString": "address" }, "typeName": { - "id": 944, + "id": 980, "name": "address", "nodeType": "ElementaryTypeName", "src": "7880:7:4", @@ -11294,10 +11294,10 @@ }, { "constant": false, - "id": 947, + "id": 983, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 972, + "scope": 1008, "src": "7897:14:4", "stateVariable": false, "storageLocation": "default", @@ -11306,7 +11306,7 @@ "typeString": "uint256" }, "typeName": { - "id": 946, + "id": 982, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7897:7:4", @@ -11322,19 +11322,19 @@ "src": "7879:33:4" }, "returnParameters": { - "id": 949, + "id": 985, "nodeType": "ParameterList", "parameters": [], "src": "7922:0:4" }, - "scope": 973, + "scope": 1009, "src": "7861:229:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 974, + "scope": 1010, "src": "1268:6824:4" } ], @@ -11346,7 +11346,7 @@ }, "networks": {}, "schemaVersion": "3.0.19", - "updatedAt": "2019-12-29T01:52:30.756Z", + "updatedAt": "2020-02-18T05:14:13.974Z", "devdoc": { "details": "Implementation of the {IERC20} interface. * This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20Mintable}. * TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. * We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. * Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.", "methods": { diff --git a/build/contracts/IERC20.json b/build/contracts/IERC20.json index 28881b3..01cbdf8 100644 --- a/build/contracts/IERC20.json +++ b/build/contracts/IERC20.json @@ -208,14 +208,14 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 1042 + 1078 ] }, - "id": 1043, + "id": 1079, "nodeType": "SourceUnit", "nodes": [ { - "id": 975, + "id": 1011, "literals": [ "solidity", "^", @@ -231,9 +231,9 @@ "contractKind": "interface", "documentation": "@dev Interface of the ERC20 standard as defined in the EIP. Does not include\nthe optional functions; to access them see {ERC20Detailed}.", "fullyImplemented": false, - "id": 1042, + "id": 1078, "linearizedBaseContracts": [ - 1042 + 1078 ], "name": "IERC20", "nodeType": "ContractDefinition", @@ -241,28 +241,28 @@ { "body": null, "documentation": "@dev Returns the amount of tokens in existence.", - "id": 980, + "id": 1016, "implemented": false, "kind": "function", "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 976, + "id": 1012, "nodeType": "ParameterList", "parameters": [], "src": "290:2:5" }, "returnParameters": { - "id": 979, + "id": 1015, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 978, + "id": 1014, "name": "", "nodeType": "VariableDeclaration", - "scope": 980, + "scope": 1016, "src": "316:7:5", "stateVariable": false, "storageLocation": "default", @@ -271,7 +271,7 @@ "typeString": "uint256" }, "typeName": { - "id": 977, + "id": 1013, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "316:7:5", @@ -286,7 +286,7 @@ ], "src": "315:9:5" }, - "scope": 1042, + "scope": 1078, "src": "270:55:5", "stateMutability": "view", "superFunction": null, @@ -295,22 +295,22 @@ { "body": null, "documentation": "@dev Returns the amount of tokens owned by `account`.", - "id": 987, + "id": 1023, "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 983, + "id": 1019, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 982, + "id": 1018, "name": "account", "nodeType": "VariableDeclaration", - "scope": 987, + "scope": 1023, "src": "427:15:5", "stateVariable": false, "storageLocation": "default", @@ -319,7 +319,7 @@ "typeString": "address" }, "typeName": { - "id": 981, + "id": 1017, "name": "address", "nodeType": "ElementaryTypeName", "src": "427:7:5", @@ -336,15 +336,15 @@ "src": "426:17:5" }, "returnParameters": { - "id": 986, + "id": 1022, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 985, + "id": 1021, "name": "", "nodeType": "VariableDeclaration", - "scope": 987, + "scope": 1023, "src": "467:7:5", "stateVariable": false, "storageLocation": "default", @@ -353,7 +353,7 @@ "typeString": "uint256" }, "typeName": { - "id": 984, + "id": 1020, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "467:7:5", @@ -368,7 +368,7 @@ ], "src": "466:9:5" }, - "scope": 1042, + "scope": 1078, "src": "408:68:5", "stateMutability": "view", "superFunction": null, @@ -377,22 +377,22 @@ { "body": null, "documentation": "@dev Moves `amount` tokens from the caller's account to `recipient`.\n * Returns a boolean value indicating whether the operation succeeded.\n * Emits a {Transfer} event.", - "id": 996, + "id": 1032, "implemented": false, "kind": "function", "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 992, + "id": 1028, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 989, + "id": 1025, "name": "recipient", "nodeType": "VariableDeclaration", - "scope": 996, + "scope": 1032, "src": "714:17:5", "stateVariable": false, "storageLocation": "default", @@ -401,7 +401,7 @@ "typeString": "address" }, "typeName": { - "id": 988, + "id": 1024, "name": "address", "nodeType": "ElementaryTypeName", "src": "714:7:5", @@ -416,10 +416,10 @@ }, { "constant": false, - "id": 991, + "id": 1027, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 996, + "scope": 1032, "src": "733:14:5", "stateVariable": false, "storageLocation": "default", @@ -428,7 +428,7 @@ "typeString": "uint256" }, "typeName": { - "id": 990, + "id": 1026, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "733:7:5", @@ -444,15 +444,15 @@ "src": "713:35:5" }, "returnParameters": { - "id": 995, + "id": 1031, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 994, + "id": 1030, "name": "", "nodeType": "VariableDeclaration", - "scope": 996, + "scope": 1032, "src": "767:4:5", "stateVariable": false, "storageLocation": "default", @@ -461,7 +461,7 @@ "typeString": "bool" }, "typeName": { - "id": 993, + "id": 1029, "name": "bool", "nodeType": "ElementaryTypeName", "src": "767:4:5", @@ -476,7 +476,7 @@ ], "src": "766:6:5" }, - "scope": 1042, + "scope": 1078, "src": "696:77:5", "stateMutability": "nonpayable", "superFunction": null, @@ -485,22 +485,22 @@ { "body": null, "documentation": "@dev Returns the remaining number of tokens that `spender` will be\nallowed to spend on behalf of `owner` through {transferFrom}. This is\nzero by default.\n * This value changes when {approve} or {transferFrom} are called.", - "id": 1005, + "id": 1041, "implemented": false, "kind": "function", "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1001, + "id": 1037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 998, + "id": 1034, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1005, + "scope": 1041, "src": "1067:13:5", "stateVariable": false, "storageLocation": "default", @@ -509,7 +509,7 @@ "typeString": "address" }, "typeName": { - "id": 997, + "id": 1033, "name": "address", "nodeType": "ElementaryTypeName", "src": "1067:7:5", @@ -524,10 +524,10 @@ }, { "constant": false, - "id": 1000, + "id": 1036, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1005, + "scope": 1041, "src": "1082:15:5", "stateVariable": false, "storageLocation": "default", @@ -536,7 +536,7 @@ "typeString": "address" }, "typeName": { - "id": 999, + "id": 1035, "name": "address", "nodeType": "ElementaryTypeName", "src": "1082:7:5", @@ -553,15 +553,15 @@ "src": "1066:32:5" }, "returnParameters": { - "id": 1004, + "id": 1040, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1003, + "id": 1039, "name": "", "nodeType": "VariableDeclaration", - "scope": 1005, + "scope": 1041, "src": "1122:7:5", "stateVariable": false, "storageLocation": "default", @@ -570,7 +570,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1002, + "id": 1038, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1122:7:5", @@ -585,7 +585,7 @@ ], "src": "1121:9:5" }, - "scope": 1042, + "scope": 1078, "src": "1048:83:5", "stateMutability": "view", "superFunction": null, @@ -594,22 +594,22 @@ { "body": null, "documentation": "@dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n * Returns a boolean value indicating whether the operation succeeded.\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\nthat someone may use both the old and the new allowance by unfortunate\ntransaction ordering. One possible solution to mitigate this race\ncondition is to first reduce the spender's allowance to 0 and set the\ndesired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * Emits an {Approval} event.", - "id": 1014, + "id": 1050, "implemented": false, "kind": "function", "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 1010, + "id": 1046, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1007, + "id": 1043, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1014, + "scope": 1050, "src": "1801:15:5", "stateVariable": false, "storageLocation": "default", @@ -618,7 +618,7 @@ "typeString": "address" }, "typeName": { - "id": 1006, + "id": 1042, "name": "address", "nodeType": "ElementaryTypeName", "src": "1801:7:5", @@ -633,10 +633,10 @@ }, { "constant": false, - "id": 1009, + "id": 1045, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1014, + "scope": 1050, "src": "1818:14:5", "stateVariable": false, "storageLocation": "default", @@ -645,7 +645,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1008, + "id": 1044, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1818:7:5", @@ -661,15 +661,15 @@ "src": "1800:33:5" }, "returnParameters": { - "id": 1013, + "id": 1049, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1012, + "id": 1048, "name": "", "nodeType": "VariableDeclaration", - "scope": 1014, + "scope": 1050, "src": "1852:4:5", "stateVariable": false, "storageLocation": "default", @@ -678,7 +678,7 @@ "typeString": "bool" }, "typeName": { - "id": 1011, + "id": 1047, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1852:4:5", @@ -693,7 +693,7 @@ ], "src": "1851:6:5" }, - "scope": 1042, + "scope": 1078, "src": "1784:74:5", "stateMutability": "nonpayable", "superFunction": null, @@ -702,22 +702,22 @@ { "body": null, "documentation": "@dev Moves `amount` tokens from `sender` to `recipient` using the\nallowance mechanism. `amount` is then deducted from the caller's\nallowance.\n * Returns a boolean value indicating whether the operation succeeded.\n * Emits a {Transfer} event.", - "id": 1025, + "id": 1061, "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1021, + "id": 1057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1016, + "id": 1052, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 1025, + "scope": 1061, "src": "2187:14:5", "stateVariable": false, "storageLocation": "default", @@ -726,7 +726,7 @@ "typeString": "address" }, "typeName": { - "id": 1015, + "id": 1051, "name": "address", "nodeType": "ElementaryTypeName", "src": "2187:7:5", @@ -741,10 +741,10 @@ }, { "constant": false, - "id": 1018, + "id": 1054, "name": "recipient", "nodeType": "VariableDeclaration", - "scope": 1025, + "scope": 1061, "src": "2203:17:5", "stateVariable": false, "storageLocation": "default", @@ -753,7 +753,7 @@ "typeString": "address" }, "typeName": { - "id": 1017, + "id": 1053, "name": "address", "nodeType": "ElementaryTypeName", "src": "2203:7:5", @@ -768,10 +768,10 @@ }, { "constant": false, - "id": 1020, + "id": 1056, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1025, + "scope": 1061, "src": "2222:14:5", "stateVariable": false, "storageLocation": "default", @@ -780,7 +780,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1019, + "id": 1055, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2222:7:5", @@ -796,15 +796,15 @@ "src": "2186:51:5" }, "returnParameters": { - "id": 1024, + "id": 1060, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, + "id": 1059, "name": "", "nodeType": "VariableDeclaration", - "scope": 1025, + "scope": 1061, "src": "2256:4:5", "stateVariable": false, "storageLocation": "default", @@ -813,7 +813,7 @@ "typeString": "bool" }, "typeName": { - "id": 1022, + "id": 1058, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2256:4:5", @@ -828,7 +828,7 @@ ], "src": "2255:6:5" }, - "scope": 1042, + "scope": 1078, "src": "2165:97:5", "stateMutability": "nonpayable", "superFunction": null, @@ -837,20 +837,20 @@ { "anonymous": false, "documentation": "@dev Emitted when `value` tokens are moved from one account (`from`) to\nanother (`to`).\n * Note that `value` may be zero.", - "id": 1033, + "id": 1069, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 1032, + "id": 1068, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1027, + "id": 1063, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1033, + "scope": 1069, "src": "2446:20:5", "stateVariable": false, "storageLocation": "default", @@ -859,7 +859,7 @@ "typeString": "address" }, "typeName": { - "id": 1026, + "id": 1062, "name": "address", "nodeType": "ElementaryTypeName", "src": "2446:7:5", @@ -874,11 +874,11 @@ }, { "constant": false, - "id": 1029, + "id": 1065, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1033, + "scope": 1069, "src": "2468:18:5", "stateVariable": false, "storageLocation": "default", @@ -887,7 +887,7 @@ "typeString": "address" }, "typeName": { - "id": 1028, + "id": 1064, "name": "address", "nodeType": "ElementaryTypeName", "src": "2468:7:5", @@ -902,11 +902,11 @@ }, { "constant": false, - "id": 1031, + "id": 1067, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1033, + "scope": 1069, "src": "2488:13:5", "stateVariable": false, "storageLocation": "default", @@ -915,7 +915,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1030, + "id": 1066, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2488:7:5", @@ -935,20 +935,20 @@ { "anonymous": false, "documentation": "@dev Emitted when the allowance of a `spender` for an `owner` is set by\na call to {approve}. `value` is the new allowance.", - "id": 1041, + "id": 1077, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 1040, + "id": 1076, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1035, + "id": 1071, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1041, + "scope": 1077, "src": "2677:21:5", "stateVariable": false, "storageLocation": "default", @@ -957,7 +957,7 @@ "typeString": "address" }, "typeName": { - "id": 1034, + "id": 1070, "name": "address", "nodeType": "ElementaryTypeName", "src": "2677:7:5", @@ -972,11 +972,11 @@ }, { "constant": false, - "id": 1037, + "id": 1073, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1041, + "scope": 1077, "src": "2700:23:5", "stateVariable": false, "storageLocation": "default", @@ -985,7 +985,7 @@ "typeString": "address" }, "typeName": { - "id": 1036, + "id": 1072, "name": "address", "nodeType": "ElementaryTypeName", "src": "2700:7:5", @@ -1000,11 +1000,11 @@ }, { "constant": false, - "id": 1039, + "id": 1075, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1041, + "scope": 1077, "src": "2725:13:5", "stateVariable": false, "storageLocation": "default", @@ -1013,7 +1013,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1038, + "id": 1074, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2725:7:5", @@ -1031,7 +1031,7 @@ "src": "2662:78:5" } ], - "scope": 1043, + "scope": 1079, "src": "176:2566:5" } ], @@ -1041,14 +1041,14 @@ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 1042 + 1078 ] }, - "id": 1043, + "id": 1079, "nodeType": "SourceUnit", "nodes": [ { - "id": 975, + "id": 1011, "literals": [ "solidity", "^", @@ -1064,9 +1064,9 @@ "contractKind": "interface", "documentation": "@dev Interface of the ERC20 standard as defined in the EIP. Does not include\nthe optional functions; to access them see {ERC20Detailed}.", "fullyImplemented": false, - "id": 1042, + "id": 1078, "linearizedBaseContracts": [ - 1042 + 1078 ], "name": "IERC20", "nodeType": "ContractDefinition", @@ -1074,28 +1074,28 @@ { "body": null, "documentation": "@dev Returns the amount of tokens in existence.", - "id": 980, + "id": 1016, "implemented": false, "kind": "function", "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 976, + "id": 1012, "nodeType": "ParameterList", "parameters": [], "src": "290:2:5" }, "returnParameters": { - "id": 979, + "id": 1015, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 978, + "id": 1014, "name": "", "nodeType": "VariableDeclaration", - "scope": 980, + "scope": 1016, "src": "316:7:5", "stateVariable": false, "storageLocation": "default", @@ -1104,7 +1104,7 @@ "typeString": "uint256" }, "typeName": { - "id": 977, + "id": 1013, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "316:7:5", @@ -1119,7 +1119,7 @@ ], "src": "315:9:5" }, - "scope": 1042, + "scope": 1078, "src": "270:55:5", "stateMutability": "view", "superFunction": null, @@ -1128,22 +1128,22 @@ { "body": null, "documentation": "@dev Returns the amount of tokens owned by `account`.", - "id": 987, + "id": 1023, "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 983, + "id": 1019, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 982, + "id": 1018, "name": "account", "nodeType": "VariableDeclaration", - "scope": 987, + "scope": 1023, "src": "427:15:5", "stateVariable": false, "storageLocation": "default", @@ -1152,7 +1152,7 @@ "typeString": "address" }, "typeName": { - "id": 981, + "id": 1017, "name": "address", "nodeType": "ElementaryTypeName", "src": "427:7:5", @@ -1169,15 +1169,15 @@ "src": "426:17:5" }, "returnParameters": { - "id": 986, + "id": 1022, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 985, + "id": 1021, "name": "", "nodeType": "VariableDeclaration", - "scope": 987, + "scope": 1023, "src": "467:7:5", "stateVariable": false, "storageLocation": "default", @@ -1186,7 +1186,7 @@ "typeString": "uint256" }, "typeName": { - "id": 984, + "id": 1020, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "467:7:5", @@ -1201,7 +1201,7 @@ ], "src": "466:9:5" }, - "scope": 1042, + "scope": 1078, "src": "408:68:5", "stateMutability": "view", "superFunction": null, @@ -1210,22 +1210,22 @@ { "body": null, "documentation": "@dev Moves `amount` tokens from the caller's account to `recipient`.\n * Returns a boolean value indicating whether the operation succeeded.\n * Emits a {Transfer} event.", - "id": 996, + "id": 1032, "implemented": false, "kind": "function", "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 992, + "id": 1028, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 989, + "id": 1025, "name": "recipient", "nodeType": "VariableDeclaration", - "scope": 996, + "scope": 1032, "src": "714:17:5", "stateVariable": false, "storageLocation": "default", @@ -1234,7 +1234,7 @@ "typeString": "address" }, "typeName": { - "id": 988, + "id": 1024, "name": "address", "nodeType": "ElementaryTypeName", "src": "714:7:5", @@ -1249,10 +1249,10 @@ }, { "constant": false, - "id": 991, + "id": 1027, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 996, + "scope": 1032, "src": "733:14:5", "stateVariable": false, "storageLocation": "default", @@ -1261,7 +1261,7 @@ "typeString": "uint256" }, "typeName": { - "id": 990, + "id": 1026, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "733:7:5", @@ -1277,15 +1277,15 @@ "src": "713:35:5" }, "returnParameters": { - "id": 995, + "id": 1031, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 994, + "id": 1030, "name": "", "nodeType": "VariableDeclaration", - "scope": 996, + "scope": 1032, "src": "767:4:5", "stateVariable": false, "storageLocation": "default", @@ -1294,7 +1294,7 @@ "typeString": "bool" }, "typeName": { - "id": 993, + "id": 1029, "name": "bool", "nodeType": "ElementaryTypeName", "src": "767:4:5", @@ -1309,7 +1309,7 @@ ], "src": "766:6:5" }, - "scope": 1042, + "scope": 1078, "src": "696:77:5", "stateMutability": "nonpayable", "superFunction": null, @@ -1318,22 +1318,22 @@ { "body": null, "documentation": "@dev Returns the remaining number of tokens that `spender` will be\nallowed to spend on behalf of `owner` through {transferFrom}. This is\nzero by default.\n * This value changes when {approve} or {transferFrom} are called.", - "id": 1005, + "id": 1041, "implemented": false, "kind": "function", "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1001, + "id": 1037, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 998, + "id": 1034, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1005, + "scope": 1041, "src": "1067:13:5", "stateVariable": false, "storageLocation": "default", @@ -1342,7 +1342,7 @@ "typeString": "address" }, "typeName": { - "id": 997, + "id": 1033, "name": "address", "nodeType": "ElementaryTypeName", "src": "1067:7:5", @@ -1357,10 +1357,10 @@ }, { "constant": false, - "id": 1000, + "id": 1036, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1005, + "scope": 1041, "src": "1082:15:5", "stateVariable": false, "storageLocation": "default", @@ -1369,7 +1369,7 @@ "typeString": "address" }, "typeName": { - "id": 999, + "id": 1035, "name": "address", "nodeType": "ElementaryTypeName", "src": "1082:7:5", @@ -1386,15 +1386,15 @@ "src": "1066:32:5" }, "returnParameters": { - "id": 1004, + "id": 1040, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1003, + "id": 1039, "name": "", "nodeType": "VariableDeclaration", - "scope": 1005, + "scope": 1041, "src": "1122:7:5", "stateVariable": false, "storageLocation": "default", @@ -1403,7 +1403,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1002, + "id": 1038, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1122:7:5", @@ -1418,7 +1418,7 @@ ], "src": "1121:9:5" }, - "scope": 1042, + "scope": 1078, "src": "1048:83:5", "stateMutability": "view", "superFunction": null, @@ -1427,22 +1427,22 @@ { "body": null, "documentation": "@dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n * Returns a boolean value indicating whether the operation succeeded.\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\nthat someone may use both the old and the new allowance by unfortunate\ntransaction ordering. One possible solution to mitigate this race\ncondition is to first reduce the spender's allowance to 0 and set the\ndesired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * Emits an {Approval} event.", - "id": 1014, + "id": 1050, "implemented": false, "kind": "function", "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 1010, + "id": 1046, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1007, + "id": 1043, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1014, + "scope": 1050, "src": "1801:15:5", "stateVariable": false, "storageLocation": "default", @@ -1451,7 +1451,7 @@ "typeString": "address" }, "typeName": { - "id": 1006, + "id": 1042, "name": "address", "nodeType": "ElementaryTypeName", "src": "1801:7:5", @@ -1466,10 +1466,10 @@ }, { "constant": false, - "id": 1009, + "id": 1045, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1014, + "scope": 1050, "src": "1818:14:5", "stateVariable": false, "storageLocation": "default", @@ -1478,7 +1478,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1008, + "id": 1044, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1818:7:5", @@ -1494,15 +1494,15 @@ "src": "1800:33:5" }, "returnParameters": { - "id": 1013, + "id": 1049, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1012, + "id": 1048, "name": "", "nodeType": "VariableDeclaration", - "scope": 1014, + "scope": 1050, "src": "1852:4:5", "stateVariable": false, "storageLocation": "default", @@ -1511,7 +1511,7 @@ "typeString": "bool" }, "typeName": { - "id": 1011, + "id": 1047, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1852:4:5", @@ -1526,7 +1526,7 @@ ], "src": "1851:6:5" }, - "scope": 1042, + "scope": 1078, "src": "1784:74:5", "stateMutability": "nonpayable", "superFunction": null, @@ -1535,22 +1535,22 @@ { "body": null, "documentation": "@dev Moves `amount` tokens from `sender` to `recipient` using the\nallowance mechanism. `amount` is then deducted from the caller's\nallowance.\n * Returns a boolean value indicating whether the operation succeeded.\n * Emits a {Transfer} event.", - "id": 1025, + "id": 1061, "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1021, + "id": 1057, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1016, + "id": 1052, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 1025, + "scope": 1061, "src": "2187:14:5", "stateVariable": false, "storageLocation": "default", @@ -1559,7 +1559,7 @@ "typeString": "address" }, "typeName": { - "id": 1015, + "id": 1051, "name": "address", "nodeType": "ElementaryTypeName", "src": "2187:7:5", @@ -1574,10 +1574,10 @@ }, { "constant": false, - "id": 1018, + "id": 1054, "name": "recipient", "nodeType": "VariableDeclaration", - "scope": 1025, + "scope": 1061, "src": "2203:17:5", "stateVariable": false, "storageLocation": "default", @@ -1586,7 +1586,7 @@ "typeString": "address" }, "typeName": { - "id": 1017, + "id": 1053, "name": "address", "nodeType": "ElementaryTypeName", "src": "2203:7:5", @@ -1601,10 +1601,10 @@ }, { "constant": false, - "id": 1020, + "id": 1056, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1025, + "scope": 1061, "src": "2222:14:5", "stateVariable": false, "storageLocation": "default", @@ -1613,7 +1613,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1019, + "id": 1055, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2222:7:5", @@ -1629,15 +1629,15 @@ "src": "2186:51:5" }, "returnParameters": { - "id": 1024, + "id": 1060, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1023, + "id": 1059, "name": "", "nodeType": "VariableDeclaration", - "scope": 1025, + "scope": 1061, "src": "2256:4:5", "stateVariable": false, "storageLocation": "default", @@ -1646,7 +1646,7 @@ "typeString": "bool" }, "typeName": { - "id": 1022, + "id": 1058, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2256:4:5", @@ -1661,7 +1661,7 @@ ], "src": "2255:6:5" }, - "scope": 1042, + "scope": 1078, "src": "2165:97:5", "stateMutability": "nonpayable", "superFunction": null, @@ -1670,20 +1670,20 @@ { "anonymous": false, "documentation": "@dev Emitted when `value` tokens are moved from one account (`from`) to\nanother (`to`).\n * Note that `value` may be zero.", - "id": 1033, + "id": 1069, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 1032, + "id": 1068, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1027, + "id": 1063, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1033, + "scope": 1069, "src": "2446:20:5", "stateVariable": false, "storageLocation": "default", @@ -1692,7 +1692,7 @@ "typeString": "address" }, "typeName": { - "id": 1026, + "id": 1062, "name": "address", "nodeType": "ElementaryTypeName", "src": "2446:7:5", @@ -1707,11 +1707,11 @@ }, { "constant": false, - "id": 1029, + "id": 1065, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1033, + "scope": 1069, "src": "2468:18:5", "stateVariable": false, "storageLocation": "default", @@ -1720,7 +1720,7 @@ "typeString": "address" }, "typeName": { - "id": 1028, + "id": 1064, "name": "address", "nodeType": "ElementaryTypeName", "src": "2468:7:5", @@ -1735,11 +1735,11 @@ }, { "constant": false, - "id": 1031, + "id": 1067, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1033, + "scope": 1069, "src": "2488:13:5", "stateVariable": false, "storageLocation": "default", @@ -1748,7 +1748,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1030, + "id": 1066, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2488:7:5", @@ -1768,20 +1768,20 @@ { "anonymous": false, "documentation": "@dev Emitted when the allowance of a `spender` for an `owner` is set by\na call to {approve}. `value` is the new allowance.", - "id": 1041, + "id": 1077, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 1040, + "id": 1076, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1035, + "id": 1071, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1041, + "scope": 1077, "src": "2677:21:5", "stateVariable": false, "storageLocation": "default", @@ -1790,7 +1790,7 @@ "typeString": "address" }, "typeName": { - "id": 1034, + "id": 1070, "name": "address", "nodeType": "ElementaryTypeName", "src": "2677:7:5", @@ -1805,11 +1805,11 @@ }, { "constant": false, - "id": 1037, + "id": 1073, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1041, + "scope": 1077, "src": "2700:23:5", "stateVariable": false, "storageLocation": "default", @@ -1818,7 +1818,7 @@ "typeString": "address" }, "typeName": { - "id": 1036, + "id": 1072, "name": "address", "nodeType": "ElementaryTypeName", "src": "2700:7:5", @@ -1833,11 +1833,11 @@ }, { "constant": false, - "id": 1039, + "id": 1075, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1041, + "scope": 1077, "src": "2725:13:5", "stateVariable": false, "storageLocation": "default", @@ -1846,7 +1846,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1038, + "id": 1074, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2725:7:5", @@ -1864,7 +1864,7 @@ "src": "2662:78:5" } ], - "scope": 1043, + "scope": 1079, "src": "176:2566:5" } ], @@ -1876,7 +1876,7 @@ }, "networks": {}, "schemaVersion": "3.0.19", - "updatedAt": "2019-12-29T01:52:30.760Z", + "updatedAt": "2020-02-18T05:14:13.977Z", "devdoc": { "details": "Interface of the ERC20 standard as defined in the EIP. Does not include the optional functions; to access them see {ERC20Detailed}.", "methods": { diff --git a/build/contracts/Migrations.json b/build/contracts/Migrations.json index a95225f..79b6117 100644 --- a/build/contracts/Migrations.json +++ b/build/contracts/Migrations.json @@ -68,36 +68,32 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"new_address\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/p1r0/dcc/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/p1r0/dcc/contracts/Migrations.sol\":{\"keccak256\":\"0x919f575f0939571a03f4870c607e9ac4f8893eb1e8ffed3ae2e1993633d9358d\",\"urls\":[\"bzz-raw://fcaff076ff00297a792470a886fe81f0bcd08b9d5849a96f1c448f4f3beae491\",\"dweb:/ipfs/QmUUnW8xpGC2QBaimEvdNU6zjrtPKuTyaConNPSfT2Dmr4\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102b7806100606000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100955780638da5cb5b146100b3578063fdacd576146100fd575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061012b565b005b61009d6101f7565b6040518082815260200191505060405180910390f35b6100bb6101fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101296004803603602081101561011357600080fd5b8101908080359060200190929190505050610222565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101f45760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156101da57600080fd5b505af11580156101ee573d6000803e3d6000fd5b50505050505b50565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561027f57806001819055505b5056fea265627a7a7231582056d395ac05fc43d4a096ee521e659deedc3114db142ce25b0b18caf59bb5567c64736f6c634300050c0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100955780638da5cb5b146100b3578063fdacd576146100fd575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061012b565b005b61009d6101f7565b6040518082815260200191505060405180910390f35b6100bb6101fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101296004803603602081101561011357600080fd5b8101908080359060200190929190505050610222565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101f45760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156101da57600080fd5b505af11580156101ee573d6000803e3d6000fd5b50505050505b50565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561027f57806001819055505b5056fea265627a7a7231582056d395ac05fc43d4a096ee521e659deedc3114db142ce25b0b18caf59bb5567c64736f6c634300050c0032", - "sourceMap": "34:480:1:-;;;123:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;123:50:1;158:10;150:5;;:18;;;;;;;;;;;;;;;;;;34:480;;;;;;", - "deployedSourceMap": "34:480:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34:480:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;347:165;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;347:165:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;82:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;58:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;240:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;240:103:1;;;;;;;;;;;;;;;;;:::i;:::-;;347:165;223:5;;;;;;;;;;;209:19;;:10;:19;;;205:26;;;409:19;442:11;409:45;;460:8;:21;;;482:24;;460:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:47:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;460:47:1;;;;230:1;205:26;347:165;:::o;82:36::-;;;;:::o;58:20::-;;;;;;;;;;;;;:::o;240:103::-;223:5;;;;;;;;;;;209:19;;:10;:19;;;205:26;;;329:9;302:24;:36;;;;205:26;240:103;:::o", - "source": "pragma solidity >=0.4.21 <0.7.0;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", - "sourcePath": "/home/p1r0/dcc/contracts/Migrations.sol", + "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"new_address\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/p1r0/Dev/git/neetsec/dcc/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/p1r0/Dev/git/neetsec/dcc/contracts/Migrations.sol\":{\"keccak256\":\"0xda12f39da5e08f86d00052b4055e615fe1dc6be843c476ddd2a4f35d2804e7b4\",\"urls\":[\"bzz-raw://68d6f473d2cd747d21b11fc9a4d1e358ebcffa5eafcd8f590e46b78d031b1f5b\",\"dweb:/ipfs/QmZoFy1VBDc34mCjSNVQEcZnrQMzBvsh9RUKpkPX4LTnwb\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102b7806100606000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100955780638da5cb5b146100b3578063fdacd576146100fd575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061012b565b005b61009d6101f7565b6040518082815260200191505060405180910390f35b6100bb6101fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101296004803603602081101561011357600080fd5b8101908080359060200190929190505050610222565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101f45760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156101da57600080fd5b505af11580156101ee573d6000803e3d6000fd5b50505050505b50565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561027f57806001819055505b5056fea265627a7a7231582054889afd3253b1dd1ab56bedb2436748e32210b783a2769f9ccc5b86e0f0934b64736f6c634300050c0032", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100955780638da5cb5b146100b3578063fdacd576146100fd575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061012b565b005b61009d6101f7565b6040518082815260200191505060405180910390f35b6100bb6101fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101296004803603602081101561011357600080fd5b8101908080359060200190929190505050610222565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101f45760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156101da57600080fd5b505af11580156101ee573d6000803e3d6000fd5b50505050505b50565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561027f57806001819055505b5056fea265627a7a7231582054889afd3253b1dd1ab56bedb2436748e32210b783a2769f9ccc5b86e0f0934b64736f6c634300050c0032", + "sourceMap": "51:480:1:-;;;140:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;140:50:1;175:10;167:5;;:18;;;;;;;;;;;;;;;;;;51:480;;;;;;", + "deployedSourceMap": "51:480:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:480:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;364:165;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;364:165:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;99:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;75:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;257:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;257:103:1;;;;;;;;;;;;;;;;;:::i;:::-;;364:165;240:5;;;;;;;;;;;226:19;;:10;:19;;;222:26;;;426:19;459:11;426:45;;477:8;:21;;;499:24;;477:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;477:47:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;477:47:1;;;;247:1;222:26;364:165;:::o;99:36::-;;;;:::o;75:20::-;;;;;;;;;;;;;:::o;257:103::-;240:5;;;;;;;;;;;226:19;;:10;:19;;;222:26;;;346:9;319:24;:36;;;;222:26;257:103;:::o", + "source": "pragma solidity 0.5.12;\n//pragma solidity 0.5.16;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", + "sourcePath": "/home/p1r0/Dev/git/neetsec/dcc/contracts/Migrations.sol", "ast": { - "absolutePath": "/home/p1r0/dcc/contracts/Migrations.sol", + "absolutePath": "/home/p1r0/Dev/git/neetsec/dcc/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 354 + 390 ] }, - "id": 355, + "id": 391, "nodeType": "SourceUnit", "nodes": [ { - "id": 299, + "id": 335, "literals": [ "solidity", - ">=", - "0.4", - ".21", - "<", - "0.7", - ".0" + "0.5", + ".12" ], "nodeType": "PragmaDirective", - "src": "0:32:1" + "src": "0:23:1" }, { "baseContracts": [], @@ -105,20 +101,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 354, + "id": 390, "linearizedBaseContracts": [ - 354 + 390 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 301, + "id": 337, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 354, - "src": "58:20:1", + "scope": 390, + "src": "75:20:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -126,10 +122,10 @@ "typeString": "address" }, "typeName": { - "id": 300, + "id": 336, "name": "address", "nodeType": "ElementaryTypeName", - "src": "58:7:1", + "src": "75:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -141,11 +137,11 @@ }, { "constant": false, - "id": 303, + "id": 339, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 354, - "src": "82:36:1", + "scope": 390, + "src": "99:36:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -153,10 +149,10 @@ "typeString": "uint256" }, "typeName": { - "id": 302, + "id": 338, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "82:4:1", + "src": "99:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -167,26 +163,26 @@ }, { "body": { - "id": 311, + "id": 347, "nodeType": "Block", - "src": "144:29:1", + "src": "161:29:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 309, + "id": 345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 306, + "id": 342, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "150:5:1", + "referencedDeclaration": 337, + "src": "167:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -198,18 +194,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 307, + "id": 343, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "158:3:1", + "referencedDeclaration": 1093, + "src": "175:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 308, + "id": 344, "isConstant": false, "isLValue": false, "isPure": false, @@ -217,54 +213,54 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "158:10:1", + "src": "175:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "150:18:1", + "src": "167:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 310, + "id": 346, "nodeType": "ExpressionStatement", - "src": "150:18:1" + "src": "167:18:1" } ] }, "documentation": null, - "id": 312, + "id": 348, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 304, + "id": 340, "nodeType": "ParameterList", "parameters": [], - "src": "134:2:1" + "src": "151:2:1" }, "returnParameters": { - "id": 305, + "id": 341, "nodeType": "ParameterList", "parameters": [], - "src": "144:0:1" + "src": "161:0:1" }, - "scope": 354, - "src": "123:50:1", + "scope": 390, + "src": "140:50:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 320, + "id": 356, "nodeType": "Block", - "src": "199:37:1", + "src": "216:37:1", "statements": [ { "condition": { @@ -273,7 +269,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 317, + "id": 353, "isConstant": false, "isLValue": false, "isPure": false, @@ -282,18 +278,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 314, + "id": 350, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "209:3:1", + "referencedDeclaration": 1093, + "src": "226:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 315, + "id": 351, "isConstant": false, "isLValue": false, "isPure": false, @@ -301,7 +297,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "209:10:1", + "src": "226:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -311,70 +307,70 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 316, + "id": 352, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "223:5:1", + "referencedDeclaration": 337, + "src": "240:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "209:19:1", + "src": "226:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 319, + "id": 355, "nodeType": "IfStatement", - "src": "205:26:1", + "src": "222:26:1", "trueBody": { - "id": 318, + "id": 354, "nodeType": "PlaceholderStatement", - "src": "230:1:1" + "src": "247:1:1" } } ] }, "documentation": null, - "id": 321, + "id": 357, "name": "restricted", "nodeType": "ModifierDefinition", "parameters": { - "id": 313, + "id": 349, "nodeType": "ParameterList", "parameters": [], - "src": "196:2:1" + "src": "213:2:1" }, - "src": "177:59:1", + "src": "194:59:1", "visibility": "internal" }, { "body": { - "id": 332, + "id": 368, "nodeType": "Block", - "src": "296:47:1", + "src": "313:47:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 330, + "id": 366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 328, + "id": 364, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "302:24:1", + "referencedDeclaration": 339, + "src": "319:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -384,67 +380,67 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 329, + "id": 365, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 323, - "src": "329:9:1", + "referencedDeclaration": 359, + "src": "346:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "302:36:1", + "src": "319:36:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 331, + "id": 367, "nodeType": "ExpressionStatement", - "src": "302:36:1" + "src": "319:36:1" } ] }, "documentation": null, - "id": 333, + "id": 369, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 326, + "id": 362, "modifierName": { "argumentTypes": null, - "id": 325, + "id": 361, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "285:10:1", + "referencedDeclaration": 357, + "src": "302:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "285:10:1" + "src": "302:10:1" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 324, + "id": 360, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 323, + "id": 359, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 333, - "src": "262:14:1", + "scope": 369, + "src": "279:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -452,10 +448,10 @@ "typeString": "uint256" }, "typeName": { - "id": 322, + "id": 358, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "262:4:1", + "src": "279:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -465,53 +461,53 @@ "visibility": "internal" } ], - "src": "261:16:1" + "src": "278:16:1" }, "returnParameters": { - "id": 327, + "id": 363, "nodeType": "ParameterList", "parameters": [], - "src": "296:0:1" + "src": "313:0:1" }, - "scope": 354, - "src": "240:103:1", + "scope": 390, + "src": "257:103:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 352, + "id": 388, "nodeType": "Block", - "src": "403:109:1", + "src": "420:109:1", "statements": [ { "assignments": [ - 341 + 377 ], "declarations": [ { "constant": false, - "id": 341, + "id": 377, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 352, - "src": "409:19:1", + "scope": 388, + "src": "426:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$354", + "typeIdentifier": "t_contract$_Migrations_$390", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 340, + "id": 376, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 354, - "src": "409:10:1", + "referencedDeclaration": 390, + "src": "426:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$354", + "typeIdentifier": "t_contract$_Migrations_$390", "typeString": "contract Migrations" } }, @@ -519,18 +515,18 @@ "visibility": "internal" } ], - "id": 345, + "id": 381, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 343, + "id": 379, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 335, - "src": "442:11:1", + "referencedDeclaration": 371, + "src": "459:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -544,18 +540,18 @@ "typeString": "address" } ], - "id": 342, + "id": 378, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 354, - "src": "431:10:1", + "referencedDeclaration": 390, + "src": "448:10:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$354_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$390_$", "typeString": "type(contract Migrations)" } }, - "id": 344, + "id": 380, "isConstant": false, "isLValue": false, "isPure": false, @@ -563,14 +559,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "431:23:1", + "src": "448:23:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$354", + "typeIdentifier": "t_contract$_Migrations_$390", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "409:45:1" + "src": "426:45:1" }, { "expression": { @@ -578,12 +574,12 @@ "arguments": [ { "argumentTypes": null, - "id": 349, + "id": 385, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "482:24:1", + "referencedDeclaration": 339, + "src": "499:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -599,32 +595,32 @@ ], "expression": { "argumentTypes": null, - "id": 346, + "id": 382, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 341, - "src": "460:8:1", + "referencedDeclaration": 377, + "src": "477:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$354", + "typeIdentifier": "t_contract$_Migrations_$390", "typeString": "contract Migrations" } }, - "id": 348, + "id": 384, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 333, - "src": "460:21:1", + "referencedDeclaration": 369, + "src": "477:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 350, + "id": 386, "isConstant": false, "isLValue": false, "isPure": false, @@ -632,56 +628,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "460:47:1", + "src": "477:47:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 351, + "id": 387, "nodeType": "ExpressionStatement", - "src": "460:47:1" + "src": "477:47:1" } ] }, "documentation": null, - "id": 353, + "id": 389, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 338, + "id": 374, "modifierName": { "argumentTypes": null, - "id": 337, + "id": 373, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "392:10:1", + "referencedDeclaration": 357, + "src": "409:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "392:10:1" + "src": "409:10:1" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 336, + "id": 372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 335, + "id": 371, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 353, - "src": "364:19:1", + "scope": 389, + "src": "381:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -689,10 +685,10 @@ "typeString": "address" }, "typeName": { - "id": 334, + "id": 370, "name": "address", "nodeType": "ElementaryTypeName", - "src": "364:7:1", + "src": "381:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -703,50 +699,46 @@ "visibility": "internal" } ], - "src": "363:21:1" + "src": "380:21:1" }, "returnParameters": { - "id": 339, + "id": 375, "nodeType": "ParameterList", "parameters": [], - "src": "403:0:1" + "src": "420:0:1" }, - "scope": 354, - "src": "347:165:1", + "scope": 390, + "src": "364:165:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 355, - "src": "34:480:1" + "scope": 391, + "src": "51:480:1" } ], - "src": "0:515:1" + "src": "0:532:1" }, "legacyAST": { - "absolutePath": "/home/p1r0/dcc/contracts/Migrations.sol", + "absolutePath": "/home/p1r0/Dev/git/neetsec/dcc/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 354 + 390 ] }, - "id": 355, + "id": 391, "nodeType": "SourceUnit", "nodes": [ { - "id": 299, + "id": 335, "literals": [ "solidity", - ">=", - "0.4", - ".21", - "<", - "0.7", - ".0" + "0.5", + ".12" ], "nodeType": "PragmaDirective", - "src": "0:32:1" + "src": "0:23:1" }, { "baseContracts": [], @@ -754,20 +746,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 354, + "id": 390, "linearizedBaseContracts": [ - 354 + 390 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 301, + "id": 337, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 354, - "src": "58:20:1", + "scope": 390, + "src": "75:20:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -775,10 +767,10 @@ "typeString": "address" }, "typeName": { - "id": 300, + "id": 336, "name": "address", "nodeType": "ElementaryTypeName", - "src": "58:7:1", + "src": "75:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -790,11 +782,11 @@ }, { "constant": false, - "id": 303, + "id": 339, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 354, - "src": "82:36:1", + "scope": 390, + "src": "99:36:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -802,10 +794,10 @@ "typeString": "uint256" }, "typeName": { - "id": 302, + "id": 338, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "82:4:1", + "src": "99:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -816,26 +808,26 @@ }, { "body": { - "id": 311, + "id": 347, "nodeType": "Block", - "src": "144:29:1", + "src": "161:29:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 309, + "id": 345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 306, + "id": 342, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "150:5:1", + "referencedDeclaration": 337, + "src": "167:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -847,18 +839,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 307, + "id": 343, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "158:3:1", + "referencedDeclaration": 1093, + "src": "175:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 308, + "id": 344, "isConstant": false, "isLValue": false, "isPure": false, @@ -866,54 +858,54 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "158:10:1", + "src": "175:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "150:18:1", + "src": "167:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 310, + "id": 346, "nodeType": "ExpressionStatement", - "src": "150:18:1" + "src": "167:18:1" } ] }, "documentation": null, - "id": 312, + "id": 348, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 304, + "id": 340, "nodeType": "ParameterList", "parameters": [], - "src": "134:2:1" + "src": "151:2:1" }, "returnParameters": { - "id": 305, + "id": 341, "nodeType": "ParameterList", "parameters": [], - "src": "144:0:1" + "src": "161:0:1" }, - "scope": 354, - "src": "123:50:1", + "scope": 390, + "src": "140:50:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 320, + "id": 356, "nodeType": "Block", - "src": "199:37:1", + "src": "216:37:1", "statements": [ { "condition": { @@ -922,7 +914,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 317, + "id": 353, "isConstant": false, "isLValue": false, "isPure": false, @@ -931,18 +923,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 314, + "id": 350, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "209:3:1", + "referencedDeclaration": 1093, + "src": "226:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 315, + "id": 351, "isConstant": false, "isLValue": false, "isPure": false, @@ -950,7 +942,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "209:10:1", + "src": "226:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -960,70 +952,70 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 316, + "id": 352, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "223:5:1", + "referencedDeclaration": 337, + "src": "240:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "209:19:1", + "src": "226:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 319, + "id": 355, "nodeType": "IfStatement", - "src": "205:26:1", + "src": "222:26:1", "trueBody": { - "id": 318, + "id": 354, "nodeType": "PlaceholderStatement", - "src": "230:1:1" + "src": "247:1:1" } } ] }, "documentation": null, - "id": 321, + "id": 357, "name": "restricted", "nodeType": "ModifierDefinition", "parameters": { - "id": 313, + "id": 349, "nodeType": "ParameterList", "parameters": [], - "src": "196:2:1" + "src": "213:2:1" }, - "src": "177:59:1", + "src": "194:59:1", "visibility": "internal" }, { "body": { - "id": 332, + "id": 368, "nodeType": "Block", - "src": "296:47:1", + "src": "313:47:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 330, + "id": 366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 328, + "id": 364, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "302:24:1", + "referencedDeclaration": 339, + "src": "319:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1033,67 +1025,67 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 329, + "id": 365, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 323, - "src": "329:9:1", + "referencedDeclaration": 359, + "src": "346:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "302:36:1", + "src": "319:36:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 331, + "id": 367, "nodeType": "ExpressionStatement", - "src": "302:36:1" + "src": "319:36:1" } ] }, "documentation": null, - "id": 333, + "id": 369, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 326, + "id": 362, "modifierName": { "argumentTypes": null, - "id": 325, + "id": 361, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "285:10:1", + "referencedDeclaration": 357, + "src": "302:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "285:10:1" + "src": "302:10:1" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 324, + "id": 360, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 323, + "id": 359, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 333, - "src": "262:14:1", + "scope": 369, + "src": "279:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1101,10 +1093,10 @@ "typeString": "uint256" }, "typeName": { - "id": 322, + "id": 358, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "262:4:1", + "src": "279:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1114,53 +1106,53 @@ "visibility": "internal" } ], - "src": "261:16:1" + "src": "278:16:1" }, "returnParameters": { - "id": 327, + "id": 363, "nodeType": "ParameterList", "parameters": [], - "src": "296:0:1" + "src": "313:0:1" }, - "scope": 354, - "src": "240:103:1", + "scope": 390, + "src": "257:103:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 352, + "id": 388, "nodeType": "Block", - "src": "403:109:1", + "src": "420:109:1", "statements": [ { "assignments": [ - 341 + 377 ], "declarations": [ { "constant": false, - "id": 341, + "id": 377, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 352, - "src": "409:19:1", + "scope": 388, + "src": "426:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$354", + "typeIdentifier": "t_contract$_Migrations_$390", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 340, + "id": 376, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 354, - "src": "409:10:1", + "referencedDeclaration": 390, + "src": "426:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$354", + "typeIdentifier": "t_contract$_Migrations_$390", "typeString": "contract Migrations" } }, @@ -1168,18 +1160,18 @@ "visibility": "internal" } ], - "id": 345, + "id": 381, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 343, + "id": 379, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 335, - "src": "442:11:1", + "referencedDeclaration": 371, + "src": "459:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1193,18 +1185,18 @@ "typeString": "address" } ], - "id": 342, + "id": 378, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 354, - "src": "431:10:1", + "referencedDeclaration": 390, + "src": "448:10:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$354_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$390_$", "typeString": "type(contract Migrations)" } }, - "id": 344, + "id": 380, "isConstant": false, "isLValue": false, "isPure": false, @@ -1212,14 +1204,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "431:23:1", + "src": "448:23:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$354", + "typeIdentifier": "t_contract$_Migrations_$390", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "409:45:1" + "src": "426:45:1" }, { "expression": { @@ -1227,12 +1219,12 @@ "arguments": [ { "argumentTypes": null, - "id": 349, + "id": 385, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "482:24:1", + "referencedDeclaration": 339, + "src": "499:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1248,32 +1240,32 @@ ], "expression": { "argumentTypes": null, - "id": 346, + "id": 382, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 341, - "src": "460:8:1", + "referencedDeclaration": 377, + "src": "477:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$354", + "typeIdentifier": "t_contract$_Migrations_$390", "typeString": "contract Migrations" } }, - "id": 348, + "id": 384, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 333, - "src": "460:21:1", + "referencedDeclaration": 369, + "src": "477:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 350, + "id": 386, "isConstant": false, "isLValue": false, "isPure": false, @@ -1281,56 +1273,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "460:47:1", + "src": "477:47:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 351, + "id": 387, "nodeType": "ExpressionStatement", - "src": "460:47:1" + "src": "477:47:1" } ] }, "documentation": null, - "id": 353, + "id": 389, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 338, + "id": 374, "modifierName": { "argumentTypes": null, - "id": 337, + "id": 373, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "392:10:1", + "referencedDeclaration": 357, + "src": "409:10:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "392:10:1" + "src": "409:10:1" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 336, + "id": 372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 335, + "id": 371, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 353, - "src": "364:19:1", + "scope": 389, + "src": "381:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1338,10 +1330,10 @@ "typeString": "address" }, "typeName": { - "id": 334, + "id": 370, "name": "address", "nodeType": "ElementaryTypeName", - "src": "364:7:1", + "src": "381:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1352,59 +1344,47 @@ "visibility": "internal" } ], - "src": "363:21:1" + "src": "380:21:1" }, "returnParameters": { - "id": 339, + "id": 375, "nodeType": "ParameterList", "parameters": [], - "src": "403:0:1" + "src": "420:0:1" }, - "scope": 354, - "src": "347:165:1", + "scope": 390, + "src": "364:165:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 355, - "src": "34:480:1" + "scope": 391, + "src": "51:480:1" } ], - "src": "0:515:1" + "src": "0:532:1" }, "compiler": { "name": "solc", "version": "0.5.12+commit.7709ece9.Emscripten.clang" }, "networks": { - "1577403801270": { + "1582002845050": { "events": {}, "links": {}, - "address": "0xD3eA8b1a7abF4F5d177A741e454C645A24668573", - "transactionHash": "0xc772122f22ef3ed3a1e904eb68598648e96b9c2b307714cd339c0ec03c0f65cc" + "address": "0xa29064AFb33CEB33ae4f1008719C181d8092DCfF", + "transactionHash": "0x652480b1c0e69860ea8ca6a796762a98177a70f99fa27ea7ddba104bca674ab2" }, - "1577584905270": { + "1582002888088": { "events": {}, "links": {}, - "address": "0xF76B3bb36bc7a86a38C81d092ed24328C65CdD2e", - "transactionHash": "0x56c02ee58ef4438d1969eb6d68f0f3c6dd0ec1eb9ed9d208b972eb71f046c1dc" - }, - "1577585216124": { - "events": {}, - "links": {}, - "address": "0x6555FB2eD17935c21053CD8752CfeE5F728F3266", - "transactionHash": "0xd58db81c958b25211c10156b9bfc17edb39f143f4e0f829c73f805534db161de" - }, - "1577585630921": { - "events": {}, - "links": {}, - "address": "0x2043C48eb0cd9145d4c022d1C54C191bbad40C25", - "transactionHash": "0xf802b6d0dea09e23ca8e7ef8547621a66617cb6cca0e7fec90682039d80a5d97" + "address": "0x0f5Ea0A652E851678Ebf77B69484bFcD31F9459B", + "transactionHash": "0xfde65f7f6a01e4f9b42aea1c2f4eaf6ba342d44bbc1baf0d3c15c488ee13bff0" } }, "schemaVersion": "3.0.19", - "updatedAt": "2019-12-29T02:14:57.845Z", + "updatedAt": "2020-02-18T05:15:08.094Z", "networkType": "ethereum", "devdoc": { "methods": {} diff --git a/build/contracts/Ownable.json b/build/contracts/Ownable.json index 53035de..e320885 100644 --- a/build/contracts/Ownable.json +++ b/build/contracts/Ownable.json @@ -81,24 +81,24 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The reason using this instead of openzeppelin, because owner are not 'payable'\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/p1r0/dcc/contracts/DECA_ERC20_0.5.3.sol\":\"Ownable\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/p1r0/dcc/contracts/DECA_ERC20_0.5.3.sol\":{\"keccak256\":\"0x983d3fd7bb6ff94fa16420ddf775c6daf65f78bb853e58b5899fcddf810136b1\",\"urls\":[\"bzz-raw://a35a43ea4796aa5c34758af0b49fec20c9d3f5e5deccc3dd83b87ce408e118c3\",\"dweb:/ipfs/QmQMeMbFEF4CwdZy2FQEyibYW7Vw1idqbepAVKtMdRoTuf\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The reason using this instead of openzeppelin, because owner are not 'payable'\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/p1r0/Dev/git/neetsec/dcc/contracts/DECA.sol\":\"Ownable\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/p1r0/Dev/git/neetsec/dcc/contracts/DECA.sol\":{\"keccak256\":\"0x49b90fcbd2f4b8522a8b24d6be34dde3655572f608c159bc45ee28a51e19282b\",\"urls\":[\"bzz-raw://e745ab72fc640a805878dacfa54226034d8c6b8c8cbe05b11a3c24347c86a404\",\"dweb:/ipfs/QmYbZi78rZHiV5kGUEQJB7C8AALSyBeGpiPhKu4HRPuojz\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity 0.5.12;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\n// ----------------------------------------------------------------------------\n// 'DECA' DEcentralized CArbon tokens - ITDE (initial token distribution event)\n//\n// Deployed to : ------\n// Network : Ropsten\n// Symbol : DECA\n// Name : DEcentralized CArbon tokens\n// Total supply: Gazillion\n// Decimals : 18\n// \n// Designed and wrote by D. Perez Negron A.K.A p1r0\n// Test and Migrations to truffle by vitaliykuzmich\n// ----------------------------------------------------------------------------\n/**\n * @dev The reason using this instead of openzeppelin, because owner are not 'payable'\n */\ncontract Ownable is Context {\n address payable private _owner;\n using SafeMath for uint256;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor () internal {\n _owner = _msgSender();\n emit OwnershipTransferred(address(0), _owner);\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view returns (address payable) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(isOwner(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @dev Returns true if the caller is the current owner.\n */\n function isOwner() public view returns (bool) {\n return _msgSender() == _owner;\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public onlyOwner {\n emit OwnershipTransferred(_owner, address(0));\n _owner = address(0);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address payable newOwner) public onlyOwner {\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n */\n function _transferOwnership(address payable newOwner) internal {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n emit OwnershipTransferred(_owner, newOwner);\n _owner = newOwner;\n }\n}\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and assisted\n// token transfers\n// ----------------------------------------------------------------------------\ncontract DECAToken is ERC20, Ownable {\n using SafeMath for uint256;\n string constant public symbol = \"DECA\";\n string constant public name = \"DEcentralized CArbon tokens\";\n uint8 constant public decimals = 18;\n //for testing change weeks for hours...\n uint public preICOEnds = now + 1 weeks;\n uint public bonus1Ends = now + 3 weeks;\n uint public bonus2Ends = now + 6 weeks;\n uint public endDate = now + 11 weeks;\n // ------------------------------------------------------------------------\n // 100 DECA Tokens per 1 ETH\n // ------------------------------------------------------------------------\n function() external payable {\n require(now <= endDate);\n uint tokens;\n uint toOwner;\n uint toSender;\n uint divBy;\n\n divBy = 40; //2.5% extra printed to be 2% of the marketcap, please see README.md\n if (now <= preICOEnds) {\n tokens = msg.value * 200;\n } else if (now > preICOEnds && now <= bonus1Ends) {\n tokens = msg.value * 150;\n } else if (now > bonus1Ends && now <= bonus2Ends) {\n tokens = msg.value * 125;\n } else {\n tokens = msg.value * 100;\n }\n\n toOwner = tokens.div(divBy);\n //created 2.5% extra to the contract owner to approach 2% total marketcap\n toSender = tokens;\n //tokens that goes to the sender\n\n _mint(owner(), toOwner);\n _mint(msg.sender, toSender);\n }\n\n //Close down the ICO and claim the Ether.\n function getETH() public onlyOwner {\n require(now >= endDate);\n // transfer the ETH balance in the contract to the owner\n owner().transfer(address(this).balance);\n }\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address payable tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return IERC20(tokenAddress).transfer(owner(), tokens);\n }\n}\n", - "sourcePath": "/home/p1r0/dcc/contracts/DECA_ERC20_0.5.3.sol", + "source": "pragma solidity 0.5.12;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\n// ----------------------------------------------------------------------------\n// 'DECA' DEcentralized CArbon tokens - ITDE (initial token distribution event)\n//\n// Deployed to : ------\n// Network : Ropsten\n// Symbol : DECA\n// Name : DEcentralized CArbon tokens\n// Total supply: Gazillion\n// Decimals : 18\n// \n// Designed and wrote by D. Perez Negron A.K.A p1r0\n// Test and Migrations to truffle by vitaliykuzmich\n// ----------------------------------------------------------------------------\n/**\n * @dev The reason using this instead of openzeppelin, because owner are not 'payable'\n */\ncontract Ownable is Context {\n address payable private _owner;\n using SafeMath for uint256;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor () internal {\n _owner = _msgSender();\n emit OwnershipTransferred(address(0), _owner);\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view returns (address payable) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(isOwner(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @dev Returns true if the caller is the current owner.\n */\n function isOwner() public view returns (bool) {\n return _msgSender() == _owner;\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public onlyOwner {\n emit OwnershipTransferred(_owner, address(0));\n _owner = address(0);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address payable newOwner) public onlyOwner {\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n */\n function _transferOwnership(address payable newOwner) internal {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n emit OwnershipTransferred(_owner, newOwner);\n _owner = newOwner;\n }\n}\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and assisted\n// token transfers\n// ----------------------------------------------------------------------------\ncontract DECA is ERC20, Ownable {\n using SafeMath for uint256;\n string constant public symbol = \"DECA\";\n string constant public name = \"DEcentralized CArbon tokens\";\n uint8 constant public decimals = 18;\n //for testing change weeks for hours...\n uint public preICOEnds = now + 1 weeks;\n uint public bonus1Ends = now + 3 weeks;\n uint public bonus2Ends = now + 6 weeks;\n uint public endDate = now + 11 weeks;\n bool private _pause = false;\n\n modifier notPaused() {\n require(!_pause, \"crowdsale on pause\");\n _;\n }\n function getPause() view public returns (bool){\n return _pause;\n }\n\n function setPause(bool p) external onlyOwner {\n _pause = p;\n }\n // ------------------------------------------------------------------------\n // 100 DECA Tokens per 1 ETH\n // ------------------------------------------------------------------------\n function() notPaused external payable {\n require(now <= endDate);\n uint tokens;\n uint toOwner;\n uint toSender;\n uint divBy;\n\n divBy = 40;\n //2.5% extra printed to be 2% of the marketcap, please see README.md\n if (now <= preICOEnds) {\n tokens = msg.value * 300;\n } else if (now > preICOEnds && now <= bonus1Ends) {\n tokens = msg.value * 275;\n } else if (now > bonus1Ends && now <= bonus2Ends) {\n tokens = msg.value * 250;\n } else {\n tokens = msg.value * 225;\n }\n\n toOwner = tokens.div(divBy);\n //created 2.5% extra to the contract owner to approach 2% total marketcap\n toSender = tokens;\n //tokens that goes to the sender\n\n _mint(owner(), toOwner);\n _mint(msg.sender, toSender);\n }\n\n //Close down the ICO and claim the Ether.\n function getETH() public onlyOwner {\n require(now >= endDate);\n // transfer the ETH balance in the contract to the owner\n owner().transfer(address(this).balance);\n }\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address payable tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return IERC20(tokenAddress).transfer(owner(), tokens);\n }\n}\n", + "sourcePath": "/home/p1r0/Dev/git/neetsec/dcc/contracts/DECA.sol", "ast": { - "absolutePath": "/home/p1r0/dcc/contracts/DECA_ERC20_0.5.3.sol", + "absolutePath": "/home/p1r0/Dev/git/neetsec/dcc/contracts/DECA.sol", "exportedSymbols": { - "DECAToken": [ - 297 + "DECA": [ + 333 ], "Ownable": [ - 117 + 118 ] }, - "id": 298, + "id": 334, "nodeType": "SourceUnit", "nodes": [ { @@ -116,20 +116,31 @@ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "id": 2, "nodeType": "ImportDirective", - "scope": 298, - "sourceUnit": 974, + "scope": 334, + "sourceUnit": 1010, "src": "25:55:0", "symbolAliases": [], "unitAlias": "" }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 334, + "sourceUnit": 1079, + "src": "81:56:0", + "symbolAliases": [], + "unitAlias": "" + }, { "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "file": "@openzeppelin/contracts/math/SafeMath.sol", - "id": 3, + "id": 4, "nodeType": "ImportDirective", - "scope": 298, - "sourceUnit": 569, - "src": "81:51:0", + "scope": 334, + "sourceUnit": 605, + "src": "138:51:0", "symbolAliases": [], "unitAlias": "" }, @@ -139,42 +150,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4, + "id": 5, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 381, - "src": "782:7:0", + "referencedDeclaration": 417, + "src": "839:7:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$381", + "typeIdentifier": "t_contract$_Context_$417", "typeString": "contract Context" } }, - "id": 5, + "id": 6, "nodeType": "InheritanceSpecifier", - "src": "782:7:0" + "src": "839:7:0" } ], "contractDependencies": [ - 381 + 417 ], "contractKind": "contract", "documentation": "@dev The reason using this instead of openzeppelin, because owner are not 'payable'", "fullyImplemented": true, - "id": 117, + "id": 118, "linearizedBaseContracts": [ - 117, - 381 + 118, + 417 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 7, + "id": 8, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 117, - "src": "796:30:0", + "scope": 118, + "src": "853:30:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -182,10 +193,10 @@ "typeString": "address payable" }, "typeName": { - "id": 6, + "id": 7, "name": "address", "nodeType": "ElementaryTypeName", - "src": "796:15:0", + "src": "853:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -196,26 +207,26 @@ "visibility": "private" }, { - "id": 10, + "id": 11, "libraryName": { "contractScope": null, - "id": 8, + "id": 9, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 568, - "src": "838:8:0", + "referencedDeclaration": 604, + "src": "895:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$568", + "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "832:27:0", + "src": "889:27:0", "typeName": { - "id": 9, + "id": 10, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "851:7:0", + "src": "908:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -225,21 +236,21 @@ { "anonymous": false, "documentation": null, - "id": 16, + "id": 17, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 15, + "id": 16, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 12, + "id": 13, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "892:29:0", + "scope": 17, + "src": "949:29:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -247,10 +258,10 @@ "typeString": "address" }, "typeName": { - "id": 11, + "id": 12, "name": "address", "nodeType": "ElementaryTypeName", - "src": "892:7:0", + "src": "949:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -262,12 +273,12 @@ }, { "constant": false, - "id": 14, + "id": 15, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "923:24:0", + "scope": 17, + "src": "980:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -275,10 +286,10 @@ "typeString": "address" }, "typeName": { - "id": 13, + "id": 14, "name": "address", "nodeType": "ElementaryTypeName", - "src": "923:7:0", + "src": "980:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -289,32 +300,32 @@ "visibility": "internal" } ], - "src": "891:57:0" + "src": "948:57:0" }, - "src": "865:84:0" + "src": "922:84:0" }, { "body": { - "id": 31, + "id": 32, "nodeType": "Block", - "src": "1075:93:0", + "src": "1132:93:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 22, + "id": 23, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 19, + "id": 20, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1085:6:0", + "referencedDeclaration": 8, + "src": "1142:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -327,18 +338,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 20, + "id": 21, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "1094:10:0", + "referencedDeclaration": 405, + "src": "1151:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 21, + "id": 22, "isConstant": false, "isLValue": false, "isPure": false, @@ -346,21 +357,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1094:12:0", + "src": "1151:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1085:21:0", + "src": "1142:21:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 23, + "id": 24, "nodeType": "ExpressionStatement", - "src": "1085:21:0" + "src": "1142:21:0" }, { "eventCall": { @@ -372,14 +383,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 26, + "id": 27, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1150:1:0", + "src": "1207:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -395,20 +406,20 @@ "typeString": "int_const 0" } ], - "id": 25, + "id": 26, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1142:7:0", + "src": "1199:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 27, + "id": 28, "isConstant": false, "isLValue": false, "isPure": true, @@ -416,7 +427,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1142:10:0", + "src": "1199:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -424,12 +435,12 @@ }, { "argumentTypes": null, - "id": 28, + "id": 29, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1154:6:0", + "referencedDeclaration": 8, + "src": "1211:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -447,18 +458,18 @@ "typeString": "address payable" } ], - "id": 24, + "id": 25, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "1121:20:0", + "referencedDeclaration": 17, + "src": "1178:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 29, + "id": 30, "isConstant": false, "isLValue": false, "isPure": false, @@ -466,94 +477,94 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1121:40:0", + "src": "1178:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30, + "id": 31, "nodeType": "EmitStatement", - "src": "1116:45:0" + "src": "1173:45:0" } ] }, "documentation": "@dev Initializes the contract setting the deployer as the initial owner.", - "id": 32, + "id": 33, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [], - "src": "1063:2:0" - }, - "returnParameters": { "id": 18, "nodeType": "ParameterList", "parameters": [], - "src": "1075:0:0" + "src": "1120:2:0" }, - "scope": 117, - "src": "1051:117:0", + "returnParameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [], + "src": "1132:0:0" + }, + "scope": 118, + "src": "1108:117:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 39, + "id": 40, "nodeType": "Block", - "src": "1299:30:0", + "src": "1356:30:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 37, + "id": 38, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1316:6:0", + "referencedDeclaration": 8, + "src": "1373:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "functionReturnParameters": 36, - "id": 38, + "functionReturnParameters": 37, + "id": 39, "nodeType": "Return", - "src": "1309:13:0" + "src": "1366:13:0" } ] }, "documentation": "@dev Returns the address of the current owner.", - "id": 40, + "id": 41, "implemented": true, "kind": "function", "modifiers": [], "name": "owner", "nodeType": "FunctionDefinition", "parameters": { - "id": 33, + "id": 34, "nodeType": "ParameterList", "parameters": [], - "src": "1258:2:0" + "src": "1315:2:0" }, "returnParameters": { - "id": 36, + "id": 37, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 35, + "id": 36, "name": "", "nodeType": "VariableDeclaration", - "scope": 40, - "src": "1282:15:0", + "scope": 41, + "src": "1339:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -561,10 +572,10 @@ "typeString": "address payable" }, "typeName": { - "id": 34, + "id": 35, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1282:15:0", + "src": "1339:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -575,19 +586,19 @@ "visibility": "internal" } ], - "src": "1281:17:0" + "src": "1338:17:0" }, - "scope": 117, - "src": "1244:85:0", + "scope": 118, + "src": "1301:85:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 49, + "id": 50, "nodeType": "Block", - "src": "1438:82:0", + "src": "1495:82:0", "statements": [ { "expression": { @@ -598,18 +609,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 43, + "id": 44, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "1456:7:0", + "referencedDeclaration": 62, + "src": "1513:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 44, + "id": 45, "isConstant": false, "isLValue": false, "isPure": false, @@ -617,7 +628,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1456:9:0", + "src": "1513:9:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -626,14 +637,14 @@ { "argumentTypes": null, "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 45, + "id": 46, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1467:34:0", + "src": "1524:34:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", @@ -653,21 +664,21 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 42, + "id": 43, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, - "src": "1448:7:0", + "referencedDeclaration": 1097, + "src": "1505:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 46, + "id": 47, "isConstant": false, "isLValue": false, "isPure": false, @@ -675,41 +686,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1448:54:0", + "src": "1505:54:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 47, + "id": 48, "nodeType": "ExpressionStatement", - "src": "1448:54:0" + "src": "1505:54:0" }, { - "id": 48, + "id": 49, "nodeType": "PlaceholderStatement", - "src": "1512:1:0" + "src": "1569:1:0" } ] }, "documentation": "@dev Throws if called by any account other than the owner.", - "id": 50, + "id": 51, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 41, + "id": 42, "nodeType": "ParameterList", "parameters": [], - "src": "1435:2:0" + "src": "1492:2:0" }, - "src": "1417:103:0", + "src": "1474:103:0", "visibility": "internal" }, { "body": { - "id": 60, + "id": 61, "nodeType": "Block", - "src": "1649:46:0", + "src": "1706:46:0", "statements": [ { "expression": { @@ -718,7 +729,7 @@ "typeIdentifier": "t_address_payable", "typeString": "address payable" }, - "id": 58, + "id": 59, "isConstant": false, "isLValue": false, "isPure": false, @@ -728,18 +739,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 55, + "id": 56, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "1666:10:0", + "referencedDeclaration": 405, + "src": "1723:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 56, + "id": 57, "isConstant": false, "isLValue": false, "isPure": false, @@ -747,7 +758,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1666:12:0", + "src": "1723:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -757,54 +768,54 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 57, + "id": 58, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1682:6:0", + "referencedDeclaration": 8, + "src": "1739:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1666:22:0", + "src": "1723:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 54, - "id": 59, + "functionReturnParameters": 55, + "id": 60, "nodeType": "Return", - "src": "1659:29:0" + "src": "1716:29:0" } ] }, "documentation": "@dev Returns true if the caller is the current owner.", - "id": 61, + "id": 62, "implemented": true, "kind": "function", "modifiers": [], "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 51, + "id": 52, "nodeType": "ParameterList", "parameters": [], - "src": "1619:2:0" + "src": "1676:2:0" }, "returnParameters": { - "id": 54, + "id": 55, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53, + "id": 54, "name": "", "nodeType": "VariableDeclaration", - "scope": 61, - "src": "1643:4:0", + "scope": 62, + "src": "1700:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -812,10 +823,10 @@ "typeString": "bool" }, "typeName": { - "id": 52, + "id": 53, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1643:4:0", + "src": "1700:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -825,19 +836,19 @@ "visibility": "internal" } ], - "src": "1642:6:0" + "src": "1699:6:0" }, - "scope": 117, - "src": "1603:92:0", + "scope": 118, + "src": "1660:92:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 79, + "id": 80, "nodeType": "Block", - "src": "2083:91:0", + "src": "2140:91:0", "statements": [ { "eventCall": { @@ -845,12 +856,12 @@ "arguments": [ { "argumentTypes": null, - "id": 67, + "id": 68, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2119:6:0", + "referencedDeclaration": 8, + "src": "2176:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -862,14 +873,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 69, + "id": 70, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2135:1:0", + "src": "2192:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -885,20 +896,20 @@ "typeString": "int_const 0" } ], - "id": 68, + "id": 69, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2127:7:0", + "src": "2184:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 70, + "id": 71, "isConstant": false, "isLValue": false, "isPure": true, @@ -906,7 +917,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2127:10:0", + "src": "2184:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -924,18 +935,18 @@ "typeString": "address payable" } ], - "id": 66, + "id": 67, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "2098:20:0", + "referencedDeclaration": 17, + "src": "2155:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 71, + "id": 72, "isConstant": false, "isLValue": false, "isPure": false, @@ -943,32 +954,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2098:40:0", + "src": "2155:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 72, + "id": 73, "nodeType": "EmitStatement", - "src": "2093:45:0" + "src": "2150:45:0" }, { "expression": { "argumentTypes": null, - "id": 77, + "id": 78, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 73, + "id": 74, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2148:6:0", + "referencedDeclaration": 8, + "src": "2205:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -982,14 +993,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 75, + "id": 76, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2165:1:0", + "src": "2222:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1005,20 +1016,20 @@ "typeString": "int_const 0" } ], - "id": 74, + "id": 75, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2157:7:0", + "src": "2214:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 76, + "id": 77, "isConstant": false, "isLValue": false, "isPure": true, @@ -1026,74 +1037,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2157:10:0", + "src": "2214:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2148:19:0", + "src": "2205:19:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 78, + "id": 79, "nodeType": "ExpressionStatement", - "src": "2148:19:0" + "src": "2205:19:0" } ] }, "documentation": "@dev Leaves the contract without owner. It will not be possible to call\n`onlyOwner` functions anymore. Can only be called by the current owner.\n * NOTE: Renouncing ownership will leave the contract without an owner,\nthereby removing any functionality that is only available to the owner.", - "id": 80, + "id": 81, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 64, + "id": 65, "modifierName": { "argumentTypes": null, - "id": 63, + "id": 64, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "2073:9:0", + "referencedDeclaration": 51, + "src": "2130:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2073:9:0" + "src": "2130:9:0" } ], "name": "renounceOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 62, + "id": 63, "nodeType": "ParameterList", "parameters": [], - "src": "2063:2:0" + "src": "2120:2:0" }, "returnParameters": { - "id": 65, + "id": 66, "nodeType": "ParameterList", "parameters": [], - "src": "2083:0:0" + "src": "2140:0:0" }, - "scope": 117, - "src": "2037:137:0", + "scope": 118, + "src": "2094:137:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 91, + "id": 92, "nodeType": "Block", - "src": "2393:45:0", + "src": "2450:45:0", "statements": [ { "expression": { @@ -1101,12 +1112,12 @@ "arguments": [ { "argumentTypes": null, - "id": 88, + "id": 89, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 82, - "src": "2422:8:0", + "referencedDeclaration": 83, + "src": "2479:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1120,18 +1131,18 @@ "typeString": "address payable" } ], - "id": 87, + "id": 88, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2403:18:0", + "referencedDeclaration": 117, + "src": "2460:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, - "id": 89, + "id": 90, "isConstant": false, "isLValue": false, "isPure": false, @@ -1139,56 +1150,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2403:28:0", + "src": "2460:28:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 90, + "id": 91, "nodeType": "ExpressionStatement", - "src": "2403:28:0" + "src": "2460:28:0" } ] }, "documentation": "@dev Transfers ownership of the contract to a new account (`newOwner`).\nCan only be called by the current owner.", - "id": 92, + "id": 93, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 85, + "id": 86, "modifierName": { "argumentTypes": null, - "id": 84, + "id": 85, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "2383:9:0", + "referencedDeclaration": 51, + "src": "2440:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2383:9:0" + "src": "2440:9:0" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 83, + "id": 84, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 82, + "id": 83, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 92, - "src": "2350:24:0", + "scope": 93, + "src": "2407:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1196,10 +1207,10 @@ "typeString": "address payable" }, "typeName": { - "id": 81, + "id": 82, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2350:15:0", + "src": "2407:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -1210,25 +1221,25 @@ "visibility": "internal" } ], - "src": "2349:26:0" + "src": "2406:26:0" }, "returnParameters": { - "id": 86, + "id": 87, "nodeType": "ParameterList", "parameters": [], - "src": "2393:0:0" + "src": "2450:0:0" }, - "scope": 117, - "src": "2323:115:0", + "scope": 118, + "src": "2380:115:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 115, + "id": 116, "nodeType": "Block", - "src": "2602:170:0", + "src": "2659:170:0", "statements": [ { "expression": { @@ -1240,19 +1251,19 @@ "typeIdentifier": "t_address_payable", "typeString": "address payable" }, - "id": 102, + "id": 103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 98, + "id": 99, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "2620:8:0", + "referencedDeclaration": 95, + "src": "2677:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1266,14 +1277,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 100, + "id": 101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2640:1:0", + "src": "2697:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1289,20 +1300,20 @@ "typeString": "int_const 0" } ], - "id": 99, + "id": 100, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2632:7:0", + "src": "2689:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 101, + "id": 102, "isConstant": false, "isLValue": false, "isPure": true, @@ -1310,13 +1321,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2632:10:0", + "src": "2689:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2620:22:0", + "src": "2677:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1325,14 +1336,14 @@ { "argumentTypes": null, "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 103, + "id": 104, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2644:40:0", + "src": "2701:40:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", @@ -1352,21 +1363,21 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 97, + "id": 98, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, - "src": "2612:7:0", + "referencedDeclaration": 1097, + "src": "2669:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 104, + "id": 105, "isConstant": false, "isLValue": false, "isPure": false, @@ -1374,15 +1385,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2612:73:0", + "src": "2669:73:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 105, + "id": 106, "nodeType": "ExpressionStatement", - "src": "2612:73:0" + "src": "2669:73:0" }, { "eventCall": { @@ -1390,12 +1401,12 @@ "arguments": [ { "argumentTypes": null, - "id": 107, + "id": 108, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2721:6:0", + "referencedDeclaration": 8, + "src": "2778:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1403,12 +1414,12 @@ }, { "argumentTypes": null, - "id": 108, + "id": 109, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "2729:8:0", + "referencedDeclaration": 95, + "src": "2786:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1426,18 +1437,18 @@ "typeString": "address payable" } ], - "id": 106, + "id": 107, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "2700:20:0", + "referencedDeclaration": 17, + "src": "2757:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 109, + "id": 110, "isConstant": false, "isLValue": false, "isPure": false, @@ -1445,32 +1456,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2700:38:0", + "src": "2757:38:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 110, + "id": 111, "nodeType": "EmitStatement", - "src": "2695:43:0" + "src": "2752:43:0" }, { "expression": { "argumentTypes": null, - "id": 113, + "id": 114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 111, + "id": 112, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2748:6:0", + "referencedDeclaration": 8, + "src": "2805:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1480,47 +1491,47 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 112, + "id": 113, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "2757:8:0", + "referencedDeclaration": 95, + "src": "2814:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2748:17:0", + "src": "2805:17:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 114, + "id": 115, "nodeType": "ExpressionStatement", - "src": "2748:17:0" + "src": "2805:17:0" } ] }, "documentation": "@dev Transfers ownership of the contract to a new account (`newOwner`).", - "id": 116, + "id": 117, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 95, + "id": 96, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 94, + "id": 95, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 116, - "src": "2567:24:0", + "scope": 117, + "src": "2624:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1528,10 +1539,10 @@ "typeString": "address payable" }, "typeName": { - "id": 93, + "id": 94, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2567:15:0", + "src": "2624:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -1542,23 +1553,23 @@ "visibility": "internal" } ], - "src": "2566:26:0" + "src": "2623:26:0" }, "returnParameters": { - "id": 96, + "id": 97, "nodeType": "ParameterList", "parameters": [], - "src": "2602:0:0" + "src": "2659:0:0" }, - "scope": 117, - "src": "2539:233:0", + "scope": 118, + "src": "2596:233:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 298, - "src": "762:2012:0" + "scope": 334, + "src": "819:2012:0" }, { "baseContracts": [ @@ -1566,80 +1577,80 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 118, + "id": 119, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 973, - "src": "3053:5:0", + "referencedDeclaration": 1009, + "src": "3105:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$973", + "typeIdentifier": "t_contract$_ERC20_$1009", "typeString": "contract ERC20" } }, - "id": 119, + "id": 120, "nodeType": "InheritanceSpecifier", - "src": "3053:5:0" + "src": "3105:5:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 120, + "id": 121, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 117, - "src": "3060:7:0", + "referencedDeclaration": 118, + "src": "3112:7:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$117", + "typeIdentifier": "t_contract$_Ownable_$118", "typeString": "contract Ownable" } }, - "id": 121, + "id": 122, "nodeType": "InheritanceSpecifier", - "src": "3060:7:0" + "src": "3112:7:0" } ], "contractDependencies": [ - 117, - 381, - 973, - 1042 + 118, + 417, + 1009, + 1078 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 297, + "id": 333, "linearizedBaseContracts": [ - 297, - 117, - 973, - 1042, - 381 + 333, + 118, + 1009, + 1078, + 417 ], - "name": "DECAToken", + "name": "DECA", "nodeType": "ContractDefinition", "nodes": [ { - "id": 124, + "id": 125, "libraryName": { "contractScope": null, - "id": 122, + "id": 123, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 568, - "src": "3080:8:0", + "referencedDeclaration": 604, + "src": "3132:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$568", + "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3074:27:0", + "src": "3126:27:0", "typeName": { - "id": 123, + "id": 124, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3093:7:0", + "src": "3145:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1648,11 +1659,11 @@ }, { "constant": true, - "id": 127, + "id": 128, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3106:38:0", + "scope": 333, + "src": "3158:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1660,10 +1671,10 @@ "typeString": "string" }, "typeName": { - "id": 125, + "id": 126, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3106:6:0", + "src": "3158:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1672,14 +1683,14 @@ "value": { "argumentTypes": null, "hexValue": "44454341", - "id": 126, + "id": 127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3138:6:0", + "src": "3190:6:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a49565813a43765a9dfdf315aaa77336d9844a752bb9a788d2dad0f019de1858", @@ -1691,11 +1702,11 @@ }, { "constant": true, - "id": 130, + "id": 131, "name": "name", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3150:59:0", + "scope": 333, + "src": "3202:59:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1703,10 +1714,10 @@ "typeString": "string" }, "typeName": { - "id": 128, + "id": 129, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3150:6:0", + "src": "3202:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1715,14 +1726,14 @@ "value": { "argumentTypes": null, "hexValue": "444563656e7472616c697a656420434172626f6e20746f6b656e73", - "id": 129, + "id": 130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3180:29:0", + "src": "3232:29:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a71fc6dd39cdb20c976c32b6365d2e473e0bcd38ac1af23f856facc675f989cb", @@ -1734,11 +1745,11 @@ }, { "constant": true, - "id": 133, + "id": 134, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3215:35:0", + "scope": 333, + "src": "3267:35:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1746,10 +1757,10 @@ "typeString": "uint8" }, "typeName": { - "id": 131, + "id": 132, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3215:5:0", + "src": "3267:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1758,14 +1769,14 @@ "value": { "argumentTypes": null, "hexValue": "3138", - "id": 132, + "id": 133, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3248:2:0", + "src": "3300:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -1777,11 +1788,11 @@ }, { "constant": false, - "id": 138, + "id": 139, "name": "preICOEnds", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3300:38:0", + "scope": 333, + "src": "3352:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1789,10 +1800,10 @@ "typeString": "uint256" }, "typeName": { - "id": 134, + "id": 135, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3300:4:0", + "src": "3352:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1804,19 +1815,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 137, + "id": 138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 135, + "id": 136, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3325:3:0", + "referencedDeclaration": 1095, + "src": "3377:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1827,14 +1838,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 136, + "id": 137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3331:7:0", + "src": "3383:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_604800_by_1", @@ -1842,7 +1853,7 @@ }, "value": "1" }, - "src": "3325:13:0", + "src": "3377:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1852,11 +1863,11 @@ }, { "constant": false, - "id": 143, + "id": 144, "name": "bonus1Ends", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3344:38:0", + "scope": 333, + "src": "3396:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1864,10 +1875,10 @@ "typeString": "uint256" }, "typeName": { - "id": 139, + "id": 140, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3344:4:0", + "src": "3396:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1879,19 +1890,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 142, + "id": 143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 140, + "id": 141, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3369:3:0", + "referencedDeclaration": 1095, + "src": "3421:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1902,14 +1913,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "33", - "id": 141, + "id": 142, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3375:7:0", + "src": "3427:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_1814400_by_1", @@ -1917,7 +1928,7 @@ }, "value": "3" }, - "src": "3369:13:0", + "src": "3421:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1927,11 +1938,11 @@ }, { "constant": false, - "id": 148, + "id": 149, "name": "bonus2Ends", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3388:38:0", + "scope": 333, + "src": "3440:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1939,10 +1950,10 @@ "typeString": "uint256" }, "typeName": { - "id": 144, + "id": 145, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3388:4:0", + "src": "3440:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1954,19 +1965,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 147, + "id": 148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 145, + "id": 146, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3413:3:0", + "referencedDeclaration": 1095, + "src": "3465:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1977,14 +1988,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 146, + "id": 147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3419:7:0", + "src": "3471:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_3628800_by_1", @@ -1992,7 +2003,7 @@ }, "value": "6" }, - "src": "3413:13:0", + "src": "3465:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2002,11 +2013,11 @@ }, { "constant": false, - "id": 153, + "id": 154, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3432:36:0", + "scope": 333, + "src": "3484:36:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2014,10 +2025,10 @@ "typeString": "uint256" }, "typeName": { - "id": 149, + "id": 150, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3432:4:0", + "src": "3484:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2029,19 +2040,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 152, + "id": 153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 150, + "id": 151, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3454:3:0", + "referencedDeclaration": 1095, + "src": "3506:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2052,14 +2063,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3131", - "id": 151, + "id": 152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3460:8:0", + "src": "3512:8:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_6652800_by_1", @@ -2067,7 +2078,7 @@ }, "value": "11" }, - "src": "3454:14:0", + "src": "3506:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2075,11 +2086,380 @@ }, "visibility": "public" }, + { + "constant": false, + "id": 157, + "name": "_pause", + "nodeType": "VariableDeclaration", + "scope": 333, + "src": "3526:27:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 155, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3526:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3548:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "private" + }, { "body": { - "id": 253, + "id": 166, "nodeType": "Block", - "src": "3695:807:0", + "src": "3581:66:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3599:7:0", + "subExpression": { + "argumentTypes": null, + "id": 160, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "3600:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "63726f776473616c65206f6e207061757365", + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3608:20:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2a660c6a64b030651f27b71bc8d6deb86294e2010eb3292c6f116ef89c98fd", + "typeString": "literal_string \"crowdsale on pause\"" + }, + "value": "crowdsale on pause" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2a660c6a64b030651f27b71bc8d6deb86294e2010eb3292c6f116ef89c98fd", + "typeString": "literal_string \"crowdsale on pause\"" + } + ], + "id": 159, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1096, + 1097 + ], + "referencedDeclaration": 1097, + "src": "3591:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3591:38:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 164, + "nodeType": "ExpressionStatement", + "src": "3591:38:0" + }, + { + "id": 165, + "nodeType": "PlaceholderStatement", + "src": "3639:1:0" + } + ] + }, + "documentation": null, + "id": 167, + "name": "notPaused", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 158, + "nodeType": "ParameterList", + "parameters": [], + "src": "3578:2:0" + }, + "src": "3560:87:0", + "visibility": "internal" + }, + { + "body": { + "id": 174, + "nodeType": "Block", + "src": "3698:30:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 172, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "3715:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 171, + "id": 173, + "nodeType": "Return", + "src": "3708:13:0" + } + ] + }, + "documentation": null, + "id": 175, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPause", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 168, + "nodeType": "ParameterList", + "parameters": [], + "src": "3669:2:0" + }, + "returnParameters": { + "id": 171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 170, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "3693:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 169, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3693:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:6:0" + }, + "scope": 333, + "src": "3652:76:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 186, + "nodeType": "Block", + "src": "3779:27:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 182, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "3789:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 183, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "3798:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3789:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 185, + "nodeType": "ExpressionStatement", + "src": "3789:10:0" + } + ] + }, + "documentation": null, + "id": 187, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 180, + "modifierName": { + "argumentTypes": null, + "id": 179, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 51, + "src": "3769:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3769:9:0" + } + ], + "name": "setPause", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 177, + "name": "p", + "nodeType": "VariableDeclaration", + "scope": 187, + "src": "3752:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 176, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3752:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3751:8:0" + }, + "returnParameters": { + "id": 181, + "nodeType": "ParameterList", + "parameters": [], + "src": "3779:0:0" + }, + "scope": 333, + "src": "3734:72:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 289, + "nodeType": "Block", + "src": "4042:815:0", "statements": [ { "expression": { @@ -2091,19 +2471,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 159, + "id": 195, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 157, + "id": 193, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3713:3:0", + "referencedDeclaration": 1095, + "src": "4060:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2113,18 +2493,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 158, + "id": 194, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "3720:7:0", + "referencedDeclaration": 154, + "src": "4067:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3713:14:0", + "src": "4060:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2138,21 +2518,21 @@ "typeString": "bool" } ], - "id": 156, + "id": 192, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1060, - "src": "3705:7:0", + "referencedDeclaration": 1096, + "src": "4052:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 160, + "id": 196, "isConstant": false, "isLValue": false, "isPure": false, @@ -2160,28 +2540,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3705:23:0", + "src": "4052:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 161, + "id": 197, "nodeType": "ExpressionStatement", - "src": "3705:23:0" + "src": "4052:23:0" }, { "assignments": [ - 163 + 199 ], "declarations": [ { "constant": false, - "id": 163, + "id": 199, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3738:11:0", + "scope": 289, + "src": "4085:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2189,10 +2569,10 @@ "typeString": "uint256" }, "typeName": { - "id": 162, + "id": 198, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3738:4:0", + "src": "4085:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2202,23 +2582,23 @@ "visibility": "internal" } ], - "id": 164, + "id": 200, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3738:11:0" + "src": "4085:11:0" }, { "assignments": [ - 166 + 202 ], "declarations": [ { "constant": false, - "id": 166, + "id": 202, "name": "toOwner", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3759:12:0", + "scope": 289, + "src": "4106:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2226,10 +2606,10 @@ "typeString": "uint256" }, "typeName": { - "id": 165, + "id": 201, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3759:4:0", + "src": "4106:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2239,23 +2619,23 @@ "visibility": "internal" } ], - "id": 167, + "id": 203, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3759:12:0" + "src": "4106:12:0" }, { "assignments": [ - 169 + 205 ], "declarations": [ { "constant": false, - "id": 169, + "id": 205, "name": "toSender", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3781:13:0", + "scope": 289, + "src": "4128:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2263,10 +2643,10 @@ "typeString": "uint256" }, "typeName": { - "id": 168, + "id": 204, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3781:4:0", + "src": "4128:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2276,23 +2656,23 @@ "visibility": "internal" } ], - "id": 170, + "id": 206, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3781:13:0" + "src": "4128:13:0" }, { "assignments": [ - 172 + 208 ], "declarations": [ { "constant": false, - "id": 172, + "id": 208, "name": "divBy", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3804:10:0", + "scope": 289, + "src": "4151:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2300,10 +2680,10 @@ "typeString": "uint256" }, "typeName": { - "id": 171, + "id": 207, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3804:4:0", + "src": "4151:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2313,27 +2693,27 @@ "visibility": "internal" } ], - "id": 173, + "id": 209, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3804:10:0" + "src": "4151:10:0" }, { "expression": { "argumentTypes": null, - "id": 176, + "id": 212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 174, + "id": 210, "name": "divBy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "3825:5:0", + "referencedDeclaration": 208, + "src": "4172:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2344,14 +2724,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3430", - "id": 175, + "id": 211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3833:2:0", + "src": "4180:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_40_by_1", @@ -2359,15 +2739,15 @@ }, "value": "40" }, - "src": "3825:10:0", + "src": "4172:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 177, + "id": 213, "nodeType": "ExpressionStatement", - "src": "3825:10:0" + "src": "4172:10:0" }, { "condition": { @@ -2376,19 +2756,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 180, + "id": 216, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 178, + "id": 214, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3918:3:0", + "referencedDeclaration": 1095, + "src": "4273:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2398,18 +2778,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 179, + "id": 215, "name": "preICOEnds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "3925:10:0", + "referencedDeclaration": 139, + "src": "4280:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3918:17:0", + "src": "4273:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2422,7 +2802,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 195, + "id": 231, "isConstant": false, "isLValue": false, "isPure": false, @@ -2433,19 +2813,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 191, + "id": 227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 189, + "id": 225, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3996:3:0", + "referencedDeclaration": 1095, + "src": "4351:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2455,18 +2835,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 190, + "id": 226, "name": "preICOEnds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "4002:10:0", + "referencedDeclaration": 139, + "src": "4357:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3996:16:0", + "src": "4351:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2480,19 +2860,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 194, + "id": 230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 192, + "id": 228, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4016:3:0", + "referencedDeclaration": 1095, + "src": "4371:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2502,24 +2882,24 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 193, + "id": 229, "name": "bonus1Ends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "4023:10:0", + "referencedDeclaration": 144, + "src": "4378:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4016:17:0", + "src": "4371:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3996:37:0", + "src": "4351:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2532,7 +2912,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 210, + "id": 246, "isConstant": false, "isLValue": false, "isPure": false, @@ -2543,19 +2923,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 206, + "id": 242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 204, + "id": 240, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4094:3:0", + "referencedDeclaration": 1095, + "src": "4449:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2565,18 +2945,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 205, + "id": 241, "name": "bonus1Ends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "4100:10:0", + "referencedDeclaration": 144, + "src": "4455:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4094:16:0", + "src": "4449:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2590,19 +2970,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 209, + "id": 245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 207, + "id": 243, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4114:3:0", + "referencedDeclaration": 1095, + "src": "4469:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2612,50 +2992,50 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 208, + "id": 244, "name": "bonus2Ends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 148, - "src": "4121:10:0", + "referencedDeclaration": 149, + "src": "4476:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4114:17:0", + "src": "4469:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4094:37:0", + "src": "4449:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 226, + "id": 262, "nodeType": "Block", - "src": "4188:49:0", + "src": "4543:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 224, + "id": 260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 219, + "id": 255, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4202:6:0", + "referencedDeclaration": 199, + "src": "4557:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2669,7 +3049,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 223, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, @@ -2678,18 +3058,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 220, + "id": 256, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4211:3:0", + "referencedDeclaration": 1093, + "src": "4566:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 221, + "id": 257, "isConstant": false, "isLValue": false, "isPure": false, @@ -2697,7 +3077,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4211:9:0", + "src": "4566:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2707,64 +3087,64 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "313030", - "id": 222, + "hexValue": "323235", + "id": 258, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4223:3:0", + "src": "4578:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" + "typeIdentifier": "t_rational_225_by_1", + "typeString": "int_const 225" }, - "value": "100" + "value": "225" }, - "src": "4211:15:0", + "src": "4566:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4202:24:0", + "src": "4557:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 225, + "id": 261, "nodeType": "ExpressionStatement", - "src": "4202:24:0" + "src": "4557:24:0" } ] }, - "id": 227, + "id": 263, "nodeType": "IfStatement", - "src": "4090:147:0", + "src": "4445:147:0", "trueBody": { - "id": 218, + "id": 254, "nodeType": "Block", - "src": "4133:49:0", + "src": "4488:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 216, + "id": 252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 211, + "id": 247, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4147:6:0", + "referencedDeclaration": 199, + "src": "4502:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2778,7 +3158,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 215, + "id": 251, "isConstant": false, "isLValue": false, "isPure": false, @@ -2787,18 +3167,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 212, + "id": 248, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4156:3:0", + "referencedDeclaration": 1093, + "src": "4511:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 213, + "id": 249, "isConstant": false, "isLValue": false, "isPure": false, @@ -2806,7 +3186,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4156:9:0", + "src": "4511:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2816,65 +3196,65 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "313235", - "id": 214, + "hexValue": "323530", + "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4168:3:0", + "src": "4523:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_125_by_1", - "typeString": "int_const 125" + "typeIdentifier": "t_rational_250_by_1", + "typeString": "int_const 250" }, - "value": "125" + "value": "250" }, - "src": "4156:15:0", + "src": "4511:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4147:24:0", + "src": "4502:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 217, + "id": 253, "nodeType": "ExpressionStatement", - "src": "4147:24:0" + "src": "4502:24:0" } ] } }, - "id": 228, + "id": 264, "nodeType": "IfStatement", - "src": "3992:245:0", + "src": "4347:245:0", "trueBody": { - "id": 203, + "id": 239, "nodeType": "Block", - "src": "4035:49:0", + "src": "4390:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 201, + "id": 237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 196, + "id": 232, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4049:6:0", + "referencedDeclaration": 199, + "src": "4404:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2888,7 +3268,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 200, + "id": 236, "isConstant": false, "isLValue": false, "isPure": false, @@ -2897,18 +3277,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 197, + "id": 233, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4058:3:0", + "referencedDeclaration": 1093, + "src": "4413:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 198, + "id": 234, "isConstant": false, "isLValue": false, "isPure": false, @@ -2916,7 +3296,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4058:9:0", + "src": "4413:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2926,65 +3306,65 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "313530", - "id": 199, + "hexValue": "323735", + "id": 235, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4070:3:0", + "src": "4425:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_150_by_1", - "typeString": "int_const 150" + "typeIdentifier": "t_rational_275_by_1", + "typeString": "int_const 275" }, - "value": "150" + "value": "275" }, - "src": "4058:15:0", + "src": "4413:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4049:24:0", + "src": "4404:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 202, + "id": 238, "nodeType": "ExpressionStatement", - "src": "4049:24:0" + "src": "4404:24:0" } ] } }, - "id": 229, + "id": 265, "nodeType": "IfStatement", - "src": "3914:323:0", + "src": "4269:323:0", "trueBody": { - "id": 188, + "id": 224, "nodeType": "Block", - "src": "3937:49:0", + "src": "4292:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 186, + "id": 222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 181, + "id": 217, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "3951:6:0", + "referencedDeclaration": 199, + "src": "4306:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2998,7 +3378,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 185, + "id": 221, "isConstant": false, "isLValue": false, "isPure": false, @@ -3007,18 +3387,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 182, + "id": 218, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "3960:3:0", + "referencedDeclaration": 1093, + "src": "4315:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 183, + "id": 219, "isConstant": false, "isLValue": false, "isPure": false, @@ -3026,7 +3406,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3960:9:0", + "src": "4315:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3036,37 +3416,37 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "323030", - "id": 184, + "hexValue": "333030", + "id": 220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3972:3:0", + "src": "4327:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_200_by_1", - "typeString": "int_const 200" + "typeIdentifier": "t_rational_300_by_1", + "typeString": "int_const 300" }, - "value": "200" + "value": "300" }, - "src": "3960:15:0", + "src": "4315:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3951:24:0", + "src": "4306:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 187, + "id": 223, "nodeType": "ExpressionStatement", - "src": "3951:24:0" + "src": "4306:24:0" } ] } @@ -3074,19 +3454,19 @@ { "expression": { "argumentTypes": null, - "id": 235, + "id": 271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 230, + "id": 266, "name": "toOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "4247:7:0", + "referencedDeclaration": 202, + "src": "4602:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3099,12 +3479,12 @@ "arguments": [ { "argumentTypes": null, - "id": 233, + "id": 269, "name": "divBy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "4268:5:0", + "referencedDeclaration": 208, + "src": "4623:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3120,32 +3500,32 @@ ], "expression": { "argumentTypes": null, - "id": 231, + "id": 267, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4257:6:0", + "referencedDeclaration": 199, + "src": "4612:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 232, + "id": 268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 501, - "src": "4257:10:0", + "referencedDeclaration": 537, + "src": "4612:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 234, + "id": 270, "isConstant": false, "isLValue": false, "isPure": false, @@ -3153,38 +3533,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4257:17:0", + "src": "4612:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4247:27:0", + "src": "4602:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 236, + "id": 272, "nodeType": "ExpressionStatement", - "src": "4247:27:0" + "src": "4602:27:0" }, { "expression": { "argumentTypes": null, - "id": 239, + "id": 275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 237, + "id": 273, "name": "toSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "4366:8:0", + "referencedDeclaration": 205, + "src": "4721:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3194,26 +3574,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 238, + "id": 274, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4377:6:0", + "referencedDeclaration": 199, + "src": "4732:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4366:17:0", + "src": "4721:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 240, + "id": 276, "nodeType": "ExpressionStatement", - "src": "4366:17:0" + "src": "4721:17:0" }, { "expression": { @@ -3224,18 +3604,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 242, + "id": 278, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "4441:5:0", + "referencedDeclaration": 41, + "src": "4796:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 243, + "id": 279, "isConstant": false, "isLValue": false, "isPure": false, @@ -3243,7 +3623,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4441:7:0", + "src": "4796:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3251,12 +3631,12 @@ }, { "argumentTypes": null, - "id": 244, + "id": 280, "name": "toOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "4450:7:0", + "referencedDeclaration": 202, + "src": "4805:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3274,18 +3654,18 @@ "typeString": "uint256" } ], - "id": 241, + "id": 277, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "4435:5:0", + "referencedDeclaration": 893, + "src": "4790:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 245, + "id": 281, "isConstant": false, "isLValue": false, "isPure": false, @@ -3293,15 +3673,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4435:23:0", + "src": "4790:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 246, + "id": 282, "nodeType": "ExpressionStatement", - "src": "4435:23:0" + "src": "4790:23:0" }, { "expression": { @@ -3311,18 +3691,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 248, + "id": 284, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4474:3:0", + "referencedDeclaration": 1093, + "src": "4829:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 249, + "id": 285, "isConstant": false, "isLValue": false, "isPure": false, @@ -3330,7 +3710,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4474:10:0", + "src": "4829:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3338,12 +3718,12 @@ }, { "argumentTypes": null, - "id": 250, + "id": 286, "name": "toSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "4486:8:0", + "referencedDeclaration": 205, + "src": "4841:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3361,18 +3741,18 @@ "typeString": "uint256" } ], - "id": 247, + "id": 283, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "4468:5:0", + "referencedDeclaration": 893, + "src": "4823:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 251, + "id": 287, "isConstant": false, "isLValue": false, "isPure": false, @@ -3380,48 +3760,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4468:27:0", + "src": "4823:27:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 252, + "id": 288, "nodeType": "ExpressionStatement", - "src": "4468:27:0" + "src": "4823:27:0" } ] }, "documentation": null, - "id": 254, + "id": 290, "implemented": true, "kind": "fallback", - "modifiers": [], + "modifiers": [ + { + "arguments": null, + "id": 190, + "modifierName": { + "argumentTypes": null, + "id": 189, + "name": "notPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "4015:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4015:9:0" + } + ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 154, + "id": 188, "nodeType": "ParameterList", "parameters": [], - "src": "3675:2:0" + "src": "4012:2:0" }, "returnParameters": { - "id": 155, + "id": 191, "nodeType": "ParameterList", "parameters": [], - "src": "3695:0:0" + "src": "4042:0:0" }, - "scope": 297, - "src": "3667:835:0", + "scope": 333, + "src": "4004:853:0", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 274, + "id": 310, "nodeType": "Block", - "src": "4589:154:0", + "src": "4944:154:0", "statements": [ { "expression": { @@ -3433,19 +3833,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 262, + "id": 298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 260, + "id": 296, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4607:3:0", + "referencedDeclaration": 1095, + "src": "4962:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3455,18 +3855,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 261, + "id": 297, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "4614:7:0", + "referencedDeclaration": 154, + "src": "4969:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4607:14:0", + "src": "4962:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3480,21 +3880,21 @@ "typeString": "bool" } ], - "id": 259, + "id": 295, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1060, - "src": "4599:7:0", + "referencedDeclaration": 1096, + "src": "4954:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 263, + "id": 299, "isConstant": false, "isLValue": false, "isPure": false, @@ -3502,15 +3902,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4599:23:0", + "src": "4954:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 264, + "id": 300, "nodeType": "ExpressionStatement", - "src": "4599:23:0" + "src": "4954:23:0" }, { "expression": { @@ -3523,39 +3923,39 @@ "arguments": [ { "argumentTypes": null, - "id": 269, + "id": 305, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "4722:4:0", + "referencedDeclaration": 1117, + "src": "5077:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_DECAToken_$297", - "typeString": "contract DECAToken" + "typeIdentifier": "t_contract$_DECA_$333", + "typeString": "contract DECA" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_DECAToken_$297", - "typeString": "contract DECAToken" + "typeIdentifier": "t_contract$_DECA_$333", + "typeString": "contract DECA" } ], - "id": 268, + "id": 304, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4714:7:0", + "src": "5069:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 270, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, @@ -3563,13 +3963,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4714:13:0", + "src": "5069:13:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 271, + "id": 307, "isConstant": false, "isLValue": false, "isPure": false, @@ -3577,7 +3977,7 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4714:21:0", + "src": "5069:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3596,18 +3996,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 265, + "id": 301, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "4697:5:0", + "referencedDeclaration": 41, + "src": "5052:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 266, + "id": 302, "isConstant": false, "isLValue": false, "isPure": false, @@ -3615,13 +4015,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4697:7:0", + "src": "5052:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 267, + "id": 303, "isConstant": false, "isLValue": false, "isPure": false, @@ -3629,13 +4029,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4697:16:0", + "src": "5052:16:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 272, + "id": 308, "isConstant": false, "isLValue": false, "isPure": false, @@ -3643,68 +4043,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4697:39:0", + "src": "5052:39:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 273, + "id": 309, "nodeType": "ExpressionStatement", - "src": "4697:39:0" + "src": "5052:39:0" } ] }, "documentation": null, - "id": 275, + "id": 311, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 257, + "id": 293, "modifierName": { "argumentTypes": null, - "id": 256, + "id": 292, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "4579:9:0", + "referencedDeclaration": 51, + "src": "4934:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4579:9:0" + "src": "4934:9:0" } ], "name": "getETH", "nodeType": "FunctionDefinition", "parameters": { - "id": 255, + "id": 291, "nodeType": "ParameterList", "parameters": [], - "src": "4569:2:0" + "src": "4924:2:0" }, "returnParameters": { - "id": 258, + "id": 294, "nodeType": "ParameterList", "parameters": [], - "src": "4589:0:0" + "src": "4944:0:0" }, - "scope": 297, - "src": "4554:189:0", + "scope": 333, + "src": "4909:189:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 295, + "id": 331, "nodeType": "Block", - "src": "5088:70:0", + "src": "5443:70:0", "statements": [ { "expression": { @@ -3715,18 +4115,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 290, + "id": 326, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "5135:5:0", + "referencedDeclaration": 41, + "src": "5490:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 291, + "id": 327, "isConstant": false, "isLValue": false, "isPure": false, @@ -3734,7 +4134,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5135:7:0", + "src": "5490:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3742,12 +4142,12 @@ }, { "argumentTypes": null, - "id": 292, + "id": 328, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5144:6:0", + "referencedDeclaration": 315, + "src": "5499:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3770,12 +4170,12 @@ "arguments": [ { "argumentTypes": null, - "id": 287, + "id": 323, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 277, - "src": "5112:12:0", + "referencedDeclaration": 313, + "src": "5467:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3789,18 +4189,18 @@ "typeString": "address payable" } ], - "id": 286, + "id": 322, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "5105:6:0", + "referencedDeclaration": 1078, + "src": "5460:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$1042_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1078_$", "typeString": "type(contract IERC20)" } }, - "id": 288, + "id": 324, "isConstant": false, "isLValue": false, "isPure": false, @@ -3808,27 +4208,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5105:20:0", + "src": "5460:20:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1042", + "typeIdentifier": "t_contract$_IERC20_$1078", "typeString": "contract IERC20" } }, - "id": 289, + "id": 325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 996, - "src": "5105:29:0", + "referencedDeclaration": 1032, + "src": "5460:29:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 293, + "id": 329, "isConstant": false, "isLValue": false, "isPure": false, @@ -3836,57 +4236,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5105:46:0", + "src": "5460:46:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 285, - "id": 294, + "functionReturnParameters": 321, + "id": 330, "nodeType": "Return", - "src": "5098:53:0" + "src": "5453:53:0" } ] }, "documentation": null, - "id": 296, + "id": 332, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 282, + "id": 318, "modifierName": { "argumentTypes": null, - "id": 281, + "id": 317, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "5055:9:0", + "referencedDeclaration": 51, + "src": "5410:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5055:9:0" + "src": "5410:9:0" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 280, + "id": 316, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 277, + "id": 313, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 296, - "src": "5005:28:0", + "scope": 332, + "src": "5360:28:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3894,10 +4294,10 @@ "typeString": "address payable" }, "typeName": { - "id": 276, + "id": 312, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5005:15:0", + "src": "5360:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3909,11 +4309,11 @@ }, { "constant": false, - "id": 279, + "id": 315, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 296, - "src": "5035:11:0", + "scope": 332, + "src": "5390:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3921,10 +4321,10 @@ "typeString": "uint256" }, "typeName": { - "id": 278, + "id": 314, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5035:4:0", + "src": "5390:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3934,19 +4334,19 @@ "visibility": "internal" } ], - "src": "5004:43:0" + "src": "5359:43:0" }, "returnParameters": { - "id": 285, + "id": 321, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 284, + "id": 320, "name": "success", "nodeType": "VariableDeclaration", - "scope": 296, - "src": "5074:12:0", + "scope": 332, + "src": "5429:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3954,10 +4354,10 @@ "typeString": "bool" }, "typeName": { - "id": 283, + "id": 319, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5074:4:0", + "src": "5429:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3967,32 +4367,32 @@ "visibility": "internal" } ], - "src": "5073:14:0" + "src": "5428:14:0" }, - "scope": 297, - "src": "4974:184:0", + "scope": 333, + "src": "5329:184:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 298, - "src": "3031:2129:0" + "scope": 334, + "src": "3088:2427:0" } ], - "src": "0:5161:0" + "src": "0:5516:0" }, "legacyAST": { - "absolutePath": "/home/p1r0/dcc/contracts/DECA_ERC20_0.5.3.sol", + "absolutePath": "/home/p1r0/Dev/git/neetsec/dcc/contracts/DECA.sol", "exportedSymbols": { - "DECAToken": [ - 297 + "DECA": [ + 333 ], "Ownable": [ - 117 + 118 ] }, - "id": 298, + "id": 334, "nodeType": "SourceUnit", "nodes": [ { @@ -4010,20 +4410,31 @@ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "id": 2, "nodeType": "ImportDirective", - "scope": 298, - "sourceUnit": 974, + "scope": 334, + "sourceUnit": 1010, "src": "25:55:0", "symbolAliases": [], "unitAlias": "" }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 334, + "sourceUnit": 1079, + "src": "81:56:0", + "symbolAliases": [], + "unitAlias": "" + }, { "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "file": "@openzeppelin/contracts/math/SafeMath.sol", - "id": 3, + "id": 4, "nodeType": "ImportDirective", - "scope": 298, - "sourceUnit": 569, - "src": "81:51:0", + "scope": 334, + "sourceUnit": 605, + "src": "138:51:0", "symbolAliases": [], "unitAlias": "" }, @@ -4033,42 +4444,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4, + "id": 5, "name": "Context", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 381, - "src": "782:7:0", + "referencedDeclaration": 417, + "src": "839:7:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$381", + "typeIdentifier": "t_contract$_Context_$417", "typeString": "contract Context" } }, - "id": 5, + "id": 6, "nodeType": "InheritanceSpecifier", - "src": "782:7:0" + "src": "839:7:0" } ], "contractDependencies": [ - 381 + 417 ], "contractKind": "contract", "documentation": "@dev The reason using this instead of openzeppelin, because owner are not 'payable'", "fullyImplemented": true, - "id": 117, + "id": 118, "linearizedBaseContracts": [ - 117, - 381 + 118, + 417 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 7, + "id": 8, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 117, - "src": "796:30:0", + "scope": 118, + "src": "853:30:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4076,10 +4487,10 @@ "typeString": "address payable" }, "typeName": { - "id": 6, + "id": 7, "name": "address", "nodeType": "ElementaryTypeName", - "src": "796:15:0", + "src": "853:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4090,26 +4501,26 @@ "visibility": "private" }, { - "id": 10, + "id": 11, "libraryName": { "contractScope": null, - "id": 8, + "id": 9, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 568, - "src": "838:8:0", + "referencedDeclaration": 604, + "src": "895:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$568", + "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "832:27:0", + "src": "889:27:0", "typeName": { - "id": 9, + "id": 10, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "851:7:0", + "src": "908:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4119,21 +4530,21 @@ { "anonymous": false, "documentation": null, - "id": 16, + "id": 17, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 15, + "id": 16, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 12, + "id": 13, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "892:29:0", + "scope": 17, + "src": "949:29:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4141,10 +4552,10 @@ "typeString": "address" }, "typeName": { - "id": 11, + "id": 12, "name": "address", "nodeType": "ElementaryTypeName", - "src": "892:7:0", + "src": "949:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4156,12 +4567,12 @@ }, { "constant": false, - "id": 14, + "id": 15, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "923:24:0", + "scope": 17, + "src": "980:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4169,10 +4580,10 @@ "typeString": "address" }, "typeName": { - "id": 13, + "id": 14, "name": "address", "nodeType": "ElementaryTypeName", - "src": "923:7:0", + "src": "980:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4183,32 +4594,32 @@ "visibility": "internal" } ], - "src": "891:57:0" + "src": "948:57:0" }, - "src": "865:84:0" + "src": "922:84:0" }, { "body": { - "id": 31, + "id": 32, "nodeType": "Block", - "src": "1075:93:0", + "src": "1132:93:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 22, + "id": 23, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 19, + "id": 20, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1085:6:0", + "referencedDeclaration": 8, + "src": "1142:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4221,18 +4632,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 20, + "id": 21, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "1094:10:0", + "referencedDeclaration": 405, + "src": "1151:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 21, + "id": 22, "isConstant": false, "isLValue": false, "isPure": false, @@ -4240,21 +4651,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1094:12:0", + "src": "1151:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1085:21:0", + "src": "1142:21:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 23, + "id": 24, "nodeType": "ExpressionStatement", - "src": "1085:21:0" + "src": "1142:21:0" }, { "eventCall": { @@ -4266,14 +4677,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 26, + "id": 27, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1150:1:0", + "src": "1207:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4289,20 +4700,20 @@ "typeString": "int_const 0" } ], - "id": 25, + "id": 26, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1142:7:0", + "src": "1199:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 27, + "id": 28, "isConstant": false, "isLValue": false, "isPure": true, @@ -4310,7 +4721,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1142:10:0", + "src": "1199:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4318,12 +4729,12 @@ }, { "argumentTypes": null, - "id": 28, + "id": 29, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1154:6:0", + "referencedDeclaration": 8, + "src": "1211:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4341,18 +4752,18 @@ "typeString": "address payable" } ], - "id": 24, + "id": 25, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "1121:20:0", + "referencedDeclaration": 17, + "src": "1178:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 29, + "id": 30, "isConstant": false, "isLValue": false, "isPure": false, @@ -4360,94 +4771,94 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1121:40:0", + "src": "1178:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 30, + "id": 31, "nodeType": "EmitStatement", - "src": "1116:45:0" + "src": "1173:45:0" } ] }, "documentation": "@dev Initializes the contract setting the deployer as the initial owner.", - "id": 32, + "id": 33, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [], - "src": "1063:2:0" - }, - "returnParameters": { "id": 18, "nodeType": "ParameterList", "parameters": [], - "src": "1075:0:0" + "src": "1120:2:0" }, - "scope": 117, - "src": "1051:117:0", + "returnParameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [], + "src": "1132:0:0" + }, + "scope": 118, + "src": "1108:117:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 39, + "id": 40, "nodeType": "Block", - "src": "1299:30:0", + "src": "1356:30:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 37, + "id": 38, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1316:6:0", + "referencedDeclaration": 8, + "src": "1373:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "functionReturnParameters": 36, - "id": 38, + "functionReturnParameters": 37, + "id": 39, "nodeType": "Return", - "src": "1309:13:0" + "src": "1366:13:0" } ] }, "documentation": "@dev Returns the address of the current owner.", - "id": 40, + "id": 41, "implemented": true, "kind": "function", "modifiers": [], "name": "owner", "nodeType": "FunctionDefinition", "parameters": { - "id": 33, + "id": 34, "nodeType": "ParameterList", "parameters": [], - "src": "1258:2:0" + "src": "1315:2:0" }, "returnParameters": { - "id": 36, + "id": 37, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 35, + "id": 36, "name": "", "nodeType": "VariableDeclaration", - "scope": 40, - "src": "1282:15:0", + "scope": 41, + "src": "1339:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4455,10 +4866,10 @@ "typeString": "address payable" }, "typeName": { - "id": 34, + "id": 35, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1282:15:0", + "src": "1339:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4469,19 +4880,19 @@ "visibility": "internal" } ], - "src": "1281:17:0" + "src": "1338:17:0" }, - "scope": 117, - "src": "1244:85:0", + "scope": 118, + "src": "1301:85:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 49, + "id": 50, "nodeType": "Block", - "src": "1438:82:0", + "src": "1495:82:0", "statements": [ { "expression": { @@ -4492,18 +4903,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 43, + "id": 44, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "1456:7:0", + "referencedDeclaration": 62, + "src": "1513:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 44, + "id": 45, "isConstant": false, "isLValue": false, "isPure": false, @@ -4511,7 +4922,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1456:9:0", + "src": "1513:9:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4520,14 +4931,14 @@ { "argumentTypes": null, "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 45, + "id": 46, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1467:34:0", + "src": "1524:34:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", @@ -4547,21 +4958,21 @@ "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], - "id": 42, + "id": 43, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, - "src": "1448:7:0", + "referencedDeclaration": 1097, + "src": "1505:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 46, + "id": 47, "isConstant": false, "isLValue": false, "isPure": false, @@ -4569,41 +4980,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1448:54:0", + "src": "1505:54:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 47, + "id": 48, "nodeType": "ExpressionStatement", - "src": "1448:54:0" + "src": "1505:54:0" }, { - "id": 48, + "id": 49, "nodeType": "PlaceholderStatement", - "src": "1512:1:0" + "src": "1569:1:0" } ] }, "documentation": "@dev Throws if called by any account other than the owner.", - "id": 50, + "id": 51, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 41, + "id": 42, "nodeType": "ParameterList", "parameters": [], - "src": "1435:2:0" + "src": "1492:2:0" }, - "src": "1417:103:0", + "src": "1474:103:0", "visibility": "internal" }, { "body": { - "id": 60, + "id": 61, "nodeType": "Block", - "src": "1649:46:0", + "src": "1706:46:0", "statements": [ { "expression": { @@ -4612,7 +5023,7 @@ "typeIdentifier": "t_address_payable", "typeString": "address payable" }, - "id": 58, + "id": 59, "isConstant": false, "isLValue": false, "isPure": false, @@ -4622,18 +5033,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 55, + "id": 56, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "1666:10:0", + "referencedDeclaration": 405, + "src": "1723:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 56, + "id": 57, "isConstant": false, "isLValue": false, "isPure": false, @@ -4641,7 +5052,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1666:12:0", + "src": "1723:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4651,54 +5062,54 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 57, + "id": 58, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "1682:6:0", + "referencedDeclaration": 8, + "src": "1739:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1666:22:0", + "src": "1723:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 54, - "id": 59, + "functionReturnParameters": 55, + "id": 60, "nodeType": "Return", - "src": "1659:29:0" + "src": "1716:29:0" } ] }, "documentation": "@dev Returns true if the caller is the current owner.", - "id": 61, + "id": 62, "implemented": true, "kind": "function", "modifiers": [], "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 51, + "id": 52, "nodeType": "ParameterList", "parameters": [], - "src": "1619:2:0" + "src": "1676:2:0" }, "returnParameters": { - "id": 54, + "id": 55, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53, + "id": 54, "name": "", "nodeType": "VariableDeclaration", - "scope": 61, - "src": "1643:4:0", + "scope": 62, + "src": "1700:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4706,10 +5117,10 @@ "typeString": "bool" }, "typeName": { - "id": 52, + "id": 53, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1643:4:0", + "src": "1700:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4719,19 +5130,19 @@ "visibility": "internal" } ], - "src": "1642:6:0" + "src": "1699:6:0" }, - "scope": 117, - "src": "1603:92:0", + "scope": 118, + "src": "1660:92:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 79, + "id": 80, "nodeType": "Block", - "src": "2083:91:0", + "src": "2140:91:0", "statements": [ { "eventCall": { @@ -4739,12 +5150,12 @@ "arguments": [ { "argumentTypes": null, - "id": 67, + "id": 68, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2119:6:0", + "referencedDeclaration": 8, + "src": "2176:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4756,14 +5167,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 69, + "id": 70, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2135:1:0", + "src": "2192:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4779,20 +5190,20 @@ "typeString": "int_const 0" } ], - "id": 68, + "id": 69, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2127:7:0", + "src": "2184:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 70, + "id": 71, "isConstant": false, "isLValue": false, "isPure": true, @@ -4800,7 +5211,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2127:10:0", + "src": "2184:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4818,18 +5229,18 @@ "typeString": "address payable" } ], - "id": 66, + "id": 67, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "2098:20:0", + "referencedDeclaration": 17, + "src": "2155:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 71, + "id": 72, "isConstant": false, "isLValue": false, "isPure": false, @@ -4837,32 +5248,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2098:40:0", + "src": "2155:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 72, + "id": 73, "nodeType": "EmitStatement", - "src": "2093:45:0" + "src": "2150:45:0" }, { "expression": { "argumentTypes": null, - "id": 77, + "id": 78, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 73, + "id": 74, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2148:6:0", + "referencedDeclaration": 8, + "src": "2205:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4876,14 +5287,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 75, + "id": 76, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2165:1:0", + "src": "2222:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4899,20 +5310,20 @@ "typeString": "int_const 0" } ], - "id": 74, + "id": 75, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2157:7:0", + "src": "2214:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 76, + "id": 77, "isConstant": false, "isLValue": false, "isPure": true, @@ -4920,74 +5331,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2157:10:0", + "src": "2214:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2148:19:0", + "src": "2205:19:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 78, + "id": 79, "nodeType": "ExpressionStatement", - "src": "2148:19:0" + "src": "2205:19:0" } ] }, "documentation": "@dev Leaves the contract without owner. It will not be possible to call\n`onlyOwner` functions anymore. Can only be called by the current owner.\n * NOTE: Renouncing ownership will leave the contract without an owner,\nthereby removing any functionality that is only available to the owner.", - "id": 80, + "id": 81, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 64, + "id": 65, "modifierName": { "argumentTypes": null, - "id": 63, + "id": 64, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "2073:9:0", + "referencedDeclaration": 51, + "src": "2130:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2073:9:0" + "src": "2130:9:0" } ], "name": "renounceOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 62, + "id": 63, "nodeType": "ParameterList", "parameters": [], - "src": "2063:2:0" + "src": "2120:2:0" }, "returnParameters": { - "id": 65, + "id": 66, "nodeType": "ParameterList", "parameters": [], - "src": "2083:0:0" + "src": "2140:0:0" }, - "scope": 117, - "src": "2037:137:0", + "scope": 118, + "src": "2094:137:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 91, + "id": 92, "nodeType": "Block", - "src": "2393:45:0", + "src": "2450:45:0", "statements": [ { "expression": { @@ -4995,12 +5406,12 @@ "arguments": [ { "argumentTypes": null, - "id": 88, + "id": 89, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 82, - "src": "2422:8:0", + "referencedDeclaration": 83, + "src": "2479:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5014,18 +5425,18 @@ "typeString": "address payable" } ], - "id": 87, + "id": 88, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2403:18:0", + "referencedDeclaration": 117, + "src": "2460:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, - "id": 89, + "id": 90, "isConstant": false, "isLValue": false, "isPure": false, @@ -5033,56 +5444,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2403:28:0", + "src": "2460:28:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 90, + "id": 91, "nodeType": "ExpressionStatement", - "src": "2403:28:0" + "src": "2460:28:0" } ] }, "documentation": "@dev Transfers ownership of the contract to a new account (`newOwner`).\nCan only be called by the current owner.", - "id": 92, + "id": 93, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 85, + "id": 86, "modifierName": { "argumentTypes": null, - "id": 84, + "id": 85, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "2383:9:0", + "referencedDeclaration": 51, + "src": "2440:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2383:9:0" + "src": "2440:9:0" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 83, + "id": 84, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 82, + "id": 83, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 92, - "src": "2350:24:0", + "scope": 93, + "src": "2407:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5090,10 +5501,10 @@ "typeString": "address payable" }, "typeName": { - "id": 81, + "id": 82, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2350:15:0", + "src": "2407:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5104,25 +5515,25 @@ "visibility": "internal" } ], - "src": "2349:26:0" + "src": "2406:26:0" }, "returnParameters": { - "id": 86, + "id": 87, "nodeType": "ParameterList", "parameters": [], - "src": "2393:0:0" + "src": "2450:0:0" }, - "scope": 117, - "src": "2323:115:0", + "scope": 118, + "src": "2380:115:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 115, + "id": 116, "nodeType": "Block", - "src": "2602:170:0", + "src": "2659:170:0", "statements": [ { "expression": { @@ -5134,19 +5545,19 @@ "typeIdentifier": "t_address_payable", "typeString": "address payable" }, - "id": 102, + "id": 103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 98, + "id": 99, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "2620:8:0", + "referencedDeclaration": 95, + "src": "2677:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5160,14 +5571,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 100, + "id": 101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2640:1:0", + "src": "2697:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5183,20 +5594,20 @@ "typeString": "int_const 0" } ], - "id": 99, + "id": 100, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2632:7:0", + "src": "2689:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 101, + "id": 102, "isConstant": false, "isLValue": false, "isPure": true, @@ -5204,13 +5615,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2632:10:0", + "src": "2689:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2620:22:0", + "src": "2677:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5219,14 +5630,14 @@ { "argumentTypes": null, "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 103, + "id": 104, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2644:40:0", + "src": "2701:40:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", @@ -5246,21 +5657,21 @@ "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], - "id": 97, + "id": 98, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, - "src": "2612:7:0", + "referencedDeclaration": 1097, + "src": "2669:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 104, + "id": 105, "isConstant": false, "isLValue": false, "isPure": false, @@ -5268,15 +5679,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2612:73:0", + "src": "2669:73:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 105, + "id": 106, "nodeType": "ExpressionStatement", - "src": "2612:73:0" + "src": "2669:73:0" }, { "eventCall": { @@ -5284,12 +5695,12 @@ "arguments": [ { "argumentTypes": null, - "id": 107, + "id": 108, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2721:6:0", + "referencedDeclaration": 8, + "src": "2778:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5297,12 +5708,12 @@ }, { "argumentTypes": null, - "id": 108, + "id": 109, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "2729:8:0", + "referencedDeclaration": 95, + "src": "2786:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5320,18 +5731,18 @@ "typeString": "address payable" } ], - "id": 106, + "id": 107, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "2700:20:0", + "referencedDeclaration": 17, + "src": "2757:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 109, + "id": 110, "isConstant": false, "isLValue": false, "isPure": false, @@ -5339,32 +5750,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2700:38:0", + "src": "2757:38:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 110, + "id": 111, "nodeType": "EmitStatement", - "src": "2695:43:0" + "src": "2752:43:0" }, { "expression": { "argumentTypes": null, - "id": 113, + "id": 114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 111, + "id": 112, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "2748:6:0", + "referencedDeclaration": 8, + "src": "2805:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5374,47 +5785,47 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 112, + "id": 113, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "2757:8:0", + "referencedDeclaration": 95, + "src": "2814:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2748:17:0", + "src": "2805:17:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 114, + "id": 115, "nodeType": "ExpressionStatement", - "src": "2748:17:0" + "src": "2805:17:0" } ] }, "documentation": "@dev Transfers ownership of the contract to a new account (`newOwner`).", - "id": 116, + "id": 117, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 95, + "id": 96, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 94, + "id": 95, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 116, - "src": "2567:24:0", + "scope": 117, + "src": "2624:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5422,10 +5833,10 @@ "typeString": "address payable" }, "typeName": { - "id": 93, + "id": 94, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2567:15:0", + "src": "2624:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5436,23 +5847,23 @@ "visibility": "internal" } ], - "src": "2566:26:0" + "src": "2623:26:0" }, "returnParameters": { - "id": 96, + "id": 97, "nodeType": "ParameterList", "parameters": [], - "src": "2602:0:0" + "src": "2659:0:0" }, - "scope": 117, - "src": "2539:233:0", + "scope": 118, + "src": "2596:233:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 298, - "src": "762:2012:0" + "scope": 334, + "src": "819:2012:0" }, { "baseContracts": [ @@ -5460,80 +5871,80 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 118, + "id": 119, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 973, - "src": "3053:5:0", + "referencedDeclaration": 1009, + "src": "3105:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$973", + "typeIdentifier": "t_contract$_ERC20_$1009", "typeString": "contract ERC20" } }, - "id": 119, + "id": 120, "nodeType": "InheritanceSpecifier", - "src": "3053:5:0" + "src": "3105:5:0" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 120, + "id": 121, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 117, - "src": "3060:7:0", + "referencedDeclaration": 118, + "src": "3112:7:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$117", + "typeIdentifier": "t_contract$_Ownable_$118", "typeString": "contract Ownable" } }, - "id": 121, + "id": 122, "nodeType": "InheritanceSpecifier", - "src": "3060:7:0" + "src": "3112:7:0" } ], "contractDependencies": [ - 117, - 381, - 973, - 1042 + 118, + 417, + 1009, + 1078 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 297, + "id": 333, "linearizedBaseContracts": [ - 297, - 117, - 973, - 1042, - 381 + 333, + 118, + 1009, + 1078, + 417 ], - "name": "DECAToken", + "name": "DECA", "nodeType": "ContractDefinition", "nodes": [ { - "id": 124, + "id": 125, "libraryName": { "contractScope": null, - "id": 122, + "id": 123, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 568, - "src": "3080:8:0", + "referencedDeclaration": 604, + "src": "3132:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$568", + "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "3074:27:0", + "src": "3126:27:0", "typeName": { - "id": 123, + "id": 124, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3093:7:0", + "src": "3145:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5542,11 +5953,11 @@ }, { "constant": true, - "id": 127, + "id": 128, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3106:38:0", + "scope": 333, + "src": "3158:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5554,10 +5965,10 @@ "typeString": "string" }, "typeName": { - "id": 125, + "id": 126, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3106:6:0", + "src": "3158:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -5566,14 +5977,14 @@ "value": { "argumentTypes": null, "hexValue": "44454341", - "id": 126, + "id": 127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3138:6:0", + "src": "3190:6:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a49565813a43765a9dfdf315aaa77336d9844a752bb9a788d2dad0f019de1858", @@ -5585,11 +5996,11 @@ }, { "constant": true, - "id": 130, + "id": 131, "name": "name", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3150:59:0", + "scope": 333, + "src": "3202:59:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5597,10 +6008,10 @@ "typeString": "string" }, "typeName": { - "id": 128, + "id": 129, "name": "string", "nodeType": "ElementaryTypeName", - "src": "3150:6:0", + "src": "3202:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -5609,14 +6020,14 @@ "value": { "argumentTypes": null, "hexValue": "444563656e7472616c697a656420434172626f6e20746f6b656e73", - "id": 129, + "id": 130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3180:29:0", + "src": "3232:29:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a71fc6dd39cdb20c976c32b6365d2e473e0bcd38ac1af23f856facc675f989cb", @@ -5628,11 +6039,11 @@ }, { "constant": true, - "id": 133, + "id": 134, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3215:35:0", + "scope": 333, + "src": "3267:35:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5640,10 +6051,10 @@ "typeString": "uint8" }, "typeName": { - "id": 131, + "id": 132, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3215:5:0", + "src": "3267:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5652,14 +6063,14 @@ "value": { "argumentTypes": null, "hexValue": "3138", - "id": 132, + "id": 133, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3248:2:0", + "src": "3300:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -5671,11 +6082,11 @@ }, { "constant": false, - "id": 138, + "id": 139, "name": "preICOEnds", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3300:38:0", + "scope": 333, + "src": "3352:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5683,10 +6094,10 @@ "typeString": "uint256" }, "typeName": { - "id": 134, + "id": 135, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3300:4:0", + "src": "3352:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5698,19 +6109,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 137, + "id": 138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 135, + "id": 136, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3325:3:0", + "referencedDeclaration": 1095, + "src": "3377:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5721,14 +6132,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 136, + "id": 137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3331:7:0", + "src": "3383:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_604800_by_1", @@ -5736,7 +6147,7 @@ }, "value": "1" }, - "src": "3325:13:0", + "src": "3377:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5746,11 +6157,11 @@ }, { "constant": false, - "id": 143, + "id": 144, "name": "bonus1Ends", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3344:38:0", + "scope": 333, + "src": "3396:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5758,10 +6169,10 @@ "typeString": "uint256" }, "typeName": { - "id": 139, + "id": 140, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3344:4:0", + "src": "3396:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5773,19 +6184,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 142, + "id": 143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 140, + "id": 141, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3369:3:0", + "referencedDeclaration": 1095, + "src": "3421:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5796,14 +6207,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "33", - "id": 141, + "id": 142, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3375:7:0", + "src": "3427:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_1814400_by_1", @@ -5811,7 +6222,7 @@ }, "value": "3" }, - "src": "3369:13:0", + "src": "3421:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5821,11 +6232,11 @@ }, { "constant": false, - "id": 148, + "id": 149, "name": "bonus2Ends", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3388:38:0", + "scope": 333, + "src": "3440:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5833,10 +6244,10 @@ "typeString": "uint256" }, "typeName": { - "id": 144, + "id": 145, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3388:4:0", + "src": "3440:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5848,19 +6259,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 147, + "id": 148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 145, + "id": 146, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3413:3:0", + "referencedDeclaration": 1095, + "src": "3465:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5871,14 +6282,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "36", - "id": 146, + "id": 147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3419:7:0", + "src": "3471:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_3628800_by_1", @@ -5886,7 +6297,7 @@ }, "value": "6" }, - "src": "3413:13:0", + "src": "3465:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5896,11 +6307,11 @@ }, { "constant": false, - "id": 153, + "id": 154, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 297, - "src": "3432:36:0", + "scope": 333, + "src": "3484:36:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5908,10 +6319,10 @@ "typeString": "uint256" }, "typeName": { - "id": 149, + "id": 150, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3432:4:0", + "src": "3484:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5923,19 +6334,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 152, + "id": 153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 150, + "id": 151, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3454:3:0", + "referencedDeclaration": 1095, + "src": "3506:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5946,14 +6357,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3131", - "id": 151, + "id": 152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3460:8:0", + "src": "3512:8:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_6652800_by_1", @@ -5961,7 +6372,7 @@ }, "value": "11" }, - "src": "3454:14:0", + "src": "3506:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5969,11 +6380,380 @@ }, "visibility": "public" }, + { + "constant": false, + "id": 157, + "name": "_pause", + "nodeType": "VariableDeclaration", + "scope": 333, + "src": "3526:27:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 155, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3526:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3548:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "private" + }, { "body": { - "id": 253, + "id": 166, "nodeType": "Block", - "src": "3695:807:0", + "src": "3581:66:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3599:7:0", + "subExpression": { + "argumentTypes": null, + "id": 160, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "3600:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "63726f776473616c65206f6e207061757365", + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3608:20:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2a660c6a64b030651f27b71bc8d6deb86294e2010eb3292c6f116ef89c98fd", + "typeString": "literal_string \"crowdsale on pause\"" + }, + "value": "crowdsale on pause" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2a660c6a64b030651f27b71bc8d6deb86294e2010eb3292c6f116ef89c98fd", + "typeString": "literal_string \"crowdsale on pause\"" + } + ], + "id": 159, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1096, + 1097 + ], + "referencedDeclaration": 1097, + "src": "3591:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3591:38:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 164, + "nodeType": "ExpressionStatement", + "src": "3591:38:0" + }, + { + "id": 165, + "nodeType": "PlaceholderStatement", + "src": "3639:1:0" + } + ] + }, + "documentation": null, + "id": 167, + "name": "notPaused", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 158, + "nodeType": "ParameterList", + "parameters": [], + "src": "3578:2:0" + }, + "src": "3560:87:0", + "visibility": "internal" + }, + { + "body": { + "id": 174, + "nodeType": "Block", + "src": "3698:30:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 172, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "3715:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 171, + "id": 173, + "nodeType": "Return", + "src": "3708:13:0" + } + ] + }, + "documentation": null, + "id": 175, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPause", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 168, + "nodeType": "ParameterList", + "parameters": [], + "src": "3669:2:0" + }, + "returnParameters": { + "id": 171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 170, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 175, + "src": "3693:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 169, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3693:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:6:0" + }, + "scope": 333, + "src": "3652:76:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 186, + "nodeType": "Block", + "src": "3779:27:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 182, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 157, + "src": "3789:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 183, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "3798:1:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3789:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 185, + "nodeType": "ExpressionStatement", + "src": "3789:10:0" + } + ] + }, + "documentation": null, + "id": 187, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 180, + "modifierName": { + "argumentTypes": null, + "id": 179, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 51, + "src": "3769:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3769:9:0" + } + ], + "name": "setPause", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 177, + "name": "p", + "nodeType": "VariableDeclaration", + "scope": 187, + "src": "3752:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 176, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3752:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3751:8:0" + }, + "returnParameters": { + "id": 181, + "nodeType": "ParameterList", + "parameters": [], + "src": "3779:0:0" + }, + "scope": 333, + "src": "3734:72:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 289, + "nodeType": "Block", + "src": "4042:815:0", "statements": [ { "expression": { @@ -5985,19 +6765,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 159, + "id": 195, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 157, + "id": 193, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3713:3:0", + "referencedDeclaration": 1095, + "src": "4060:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6007,18 +6787,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 158, + "id": 194, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "3720:7:0", + "referencedDeclaration": 154, + "src": "4067:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3713:14:0", + "src": "4060:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6032,21 +6812,21 @@ "typeString": "bool" } ], - "id": 156, + "id": 192, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1060, - "src": "3705:7:0", + "referencedDeclaration": 1096, + "src": "4052:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 160, + "id": 196, "isConstant": false, "isLValue": false, "isPure": false, @@ -6054,28 +6834,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3705:23:0", + "src": "4052:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 161, + "id": 197, "nodeType": "ExpressionStatement", - "src": "3705:23:0" + "src": "4052:23:0" }, { "assignments": [ - 163 + 199 ], "declarations": [ { "constant": false, - "id": 163, + "id": 199, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3738:11:0", + "scope": 289, + "src": "4085:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6083,10 +6863,10 @@ "typeString": "uint256" }, "typeName": { - "id": 162, + "id": 198, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3738:4:0", + "src": "4085:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6096,23 +6876,23 @@ "visibility": "internal" } ], - "id": 164, + "id": 200, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3738:11:0" + "src": "4085:11:0" }, { "assignments": [ - 166 + 202 ], "declarations": [ { "constant": false, - "id": 166, + "id": 202, "name": "toOwner", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3759:12:0", + "scope": 289, + "src": "4106:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6120,10 +6900,10 @@ "typeString": "uint256" }, "typeName": { - "id": 165, + "id": 201, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3759:4:0", + "src": "4106:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6133,23 +6913,23 @@ "visibility": "internal" } ], - "id": 167, + "id": 203, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3759:12:0" + "src": "4106:12:0" }, { "assignments": [ - 169 + 205 ], "declarations": [ { "constant": false, - "id": 169, + "id": 205, "name": "toSender", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3781:13:0", + "scope": 289, + "src": "4128:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6157,10 +6937,10 @@ "typeString": "uint256" }, "typeName": { - "id": 168, + "id": 204, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3781:4:0", + "src": "4128:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6170,23 +6950,23 @@ "visibility": "internal" } ], - "id": 170, + "id": 206, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3781:13:0" + "src": "4128:13:0" }, { "assignments": [ - 172 + 208 ], "declarations": [ { "constant": false, - "id": 172, + "id": 208, "name": "divBy", "nodeType": "VariableDeclaration", - "scope": 253, - "src": "3804:10:0", + "scope": 289, + "src": "4151:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6194,10 +6974,10 @@ "typeString": "uint256" }, "typeName": { - "id": 171, + "id": 207, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3804:4:0", + "src": "4151:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6207,27 +6987,27 @@ "visibility": "internal" } ], - "id": 173, + "id": 209, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3804:10:0" + "src": "4151:10:0" }, { "expression": { "argumentTypes": null, - "id": 176, + "id": 212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 174, + "id": 210, "name": "divBy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "3825:5:0", + "referencedDeclaration": 208, + "src": "4172:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6238,14 +7018,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3430", - "id": 175, + "id": 211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3833:2:0", + "src": "4180:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_40_by_1", @@ -6253,15 +7033,15 @@ }, "value": "40" }, - "src": "3825:10:0", + "src": "4172:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 177, + "id": 213, "nodeType": "ExpressionStatement", - "src": "3825:10:0" + "src": "4172:10:0" }, { "condition": { @@ -6270,19 +7050,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 180, + "id": 216, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 178, + "id": 214, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3918:3:0", + "referencedDeclaration": 1095, + "src": "4273:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6292,18 +7072,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 179, + "id": 215, "name": "preICOEnds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "3925:10:0", + "referencedDeclaration": 139, + "src": "4280:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3918:17:0", + "src": "4273:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6316,7 +7096,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 195, + "id": 231, "isConstant": false, "isLValue": false, "isPure": false, @@ -6327,19 +7107,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 191, + "id": 227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 189, + "id": 225, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "3996:3:0", + "referencedDeclaration": 1095, + "src": "4351:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6349,18 +7129,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 190, + "id": 226, "name": "preICOEnds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "4002:10:0", + "referencedDeclaration": 139, + "src": "4357:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3996:16:0", + "src": "4351:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6374,19 +7154,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 194, + "id": 230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 192, + "id": 228, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4016:3:0", + "referencedDeclaration": 1095, + "src": "4371:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6396,24 +7176,24 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 193, + "id": 229, "name": "bonus1Ends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "4023:10:0", + "referencedDeclaration": 144, + "src": "4378:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4016:17:0", + "src": "4371:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3996:37:0", + "src": "4351:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6426,7 +7206,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 210, + "id": 246, "isConstant": false, "isLValue": false, "isPure": false, @@ -6437,19 +7217,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 206, + "id": 242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 204, + "id": 240, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4094:3:0", + "referencedDeclaration": 1095, + "src": "4449:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6459,18 +7239,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 205, + "id": 241, "name": "bonus1Ends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "4100:10:0", + "referencedDeclaration": 144, + "src": "4455:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4094:16:0", + "src": "4449:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6484,19 +7264,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 209, + "id": 245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 207, + "id": 243, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4114:3:0", + "referencedDeclaration": 1095, + "src": "4469:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6506,50 +7286,50 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 208, + "id": 244, "name": "bonus2Ends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 148, - "src": "4121:10:0", + "referencedDeclaration": 149, + "src": "4476:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4114:17:0", + "src": "4469:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4094:37:0", + "src": "4449:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 226, + "id": 262, "nodeType": "Block", - "src": "4188:49:0", + "src": "4543:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 224, + "id": 260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 219, + "id": 255, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4202:6:0", + "referencedDeclaration": 199, + "src": "4557:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6563,7 +7343,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 223, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, @@ -6572,18 +7352,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 220, + "id": 256, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4211:3:0", + "referencedDeclaration": 1093, + "src": "4566:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 221, + "id": 257, "isConstant": false, "isLValue": false, "isPure": false, @@ -6591,7 +7371,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4211:9:0", + "src": "4566:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6601,64 +7381,64 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "313030", - "id": 222, + "hexValue": "323235", + "id": 258, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4223:3:0", + "src": "4578:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" + "typeIdentifier": "t_rational_225_by_1", + "typeString": "int_const 225" }, - "value": "100" + "value": "225" }, - "src": "4211:15:0", + "src": "4566:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4202:24:0", + "src": "4557:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 225, + "id": 261, "nodeType": "ExpressionStatement", - "src": "4202:24:0" + "src": "4557:24:0" } ] }, - "id": 227, + "id": 263, "nodeType": "IfStatement", - "src": "4090:147:0", + "src": "4445:147:0", "trueBody": { - "id": 218, + "id": 254, "nodeType": "Block", - "src": "4133:49:0", + "src": "4488:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 216, + "id": 252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 211, + "id": 247, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4147:6:0", + "referencedDeclaration": 199, + "src": "4502:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6672,7 +7452,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 215, + "id": 251, "isConstant": false, "isLValue": false, "isPure": false, @@ -6681,18 +7461,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 212, + "id": 248, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4156:3:0", + "referencedDeclaration": 1093, + "src": "4511:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 213, + "id": 249, "isConstant": false, "isLValue": false, "isPure": false, @@ -6700,7 +7480,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4156:9:0", + "src": "4511:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6710,65 +7490,65 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "313235", - "id": 214, + "hexValue": "323530", + "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4168:3:0", + "src": "4523:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_125_by_1", - "typeString": "int_const 125" + "typeIdentifier": "t_rational_250_by_1", + "typeString": "int_const 250" }, - "value": "125" + "value": "250" }, - "src": "4156:15:0", + "src": "4511:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4147:24:0", + "src": "4502:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 217, + "id": 253, "nodeType": "ExpressionStatement", - "src": "4147:24:0" + "src": "4502:24:0" } ] } }, - "id": 228, + "id": 264, "nodeType": "IfStatement", - "src": "3992:245:0", + "src": "4347:245:0", "trueBody": { - "id": 203, + "id": 239, "nodeType": "Block", - "src": "4035:49:0", + "src": "4390:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 201, + "id": 237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 196, + "id": 232, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4049:6:0", + "referencedDeclaration": 199, + "src": "4404:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6782,7 +7562,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 200, + "id": 236, "isConstant": false, "isLValue": false, "isPure": false, @@ -6791,18 +7571,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 197, + "id": 233, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4058:3:0", + "referencedDeclaration": 1093, + "src": "4413:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 198, + "id": 234, "isConstant": false, "isLValue": false, "isPure": false, @@ -6810,7 +7590,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4058:9:0", + "src": "4413:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6820,65 +7600,65 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "313530", - "id": 199, + "hexValue": "323735", + "id": 235, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4070:3:0", + "src": "4425:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_150_by_1", - "typeString": "int_const 150" + "typeIdentifier": "t_rational_275_by_1", + "typeString": "int_const 275" }, - "value": "150" + "value": "275" }, - "src": "4058:15:0", + "src": "4413:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4049:24:0", + "src": "4404:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 202, + "id": 238, "nodeType": "ExpressionStatement", - "src": "4049:24:0" + "src": "4404:24:0" } ] } }, - "id": 229, + "id": 265, "nodeType": "IfStatement", - "src": "3914:323:0", + "src": "4269:323:0", "trueBody": { - "id": 188, + "id": 224, "nodeType": "Block", - "src": "3937:49:0", + "src": "4292:49:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 186, + "id": 222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 181, + "id": 217, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "3951:6:0", + "referencedDeclaration": 199, + "src": "4306:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6892,7 +7672,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 185, + "id": 221, "isConstant": false, "isLValue": false, "isPure": false, @@ -6901,18 +7681,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 182, + "id": 218, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "3960:3:0", + "referencedDeclaration": 1093, + "src": "4315:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 183, + "id": 219, "isConstant": false, "isLValue": false, "isPure": false, @@ -6920,7 +7700,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3960:9:0", + "src": "4315:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6930,37 +7710,37 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "hexValue": "323030", - "id": 184, + "hexValue": "333030", + "id": 220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3972:3:0", + "src": "4327:3:0", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_200_by_1", - "typeString": "int_const 200" + "typeIdentifier": "t_rational_300_by_1", + "typeString": "int_const 300" }, - "value": "200" + "value": "300" }, - "src": "3960:15:0", + "src": "4315:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3951:24:0", + "src": "4306:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 187, + "id": 223, "nodeType": "ExpressionStatement", - "src": "3951:24:0" + "src": "4306:24:0" } ] } @@ -6968,19 +7748,19 @@ { "expression": { "argumentTypes": null, - "id": 235, + "id": 271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 230, + "id": 266, "name": "toOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "4247:7:0", + "referencedDeclaration": 202, + "src": "4602:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6993,12 +7773,12 @@ "arguments": [ { "argumentTypes": null, - "id": 233, + "id": 269, "name": "divBy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "4268:5:0", + "referencedDeclaration": 208, + "src": "4623:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7014,32 +7794,32 @@ ], "expression": { "argumentTypes": null, - "id": 231, + "id": 267, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4257:6:0", + "referencedDeclaration": 199, + "src": "4612:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 232, + "id": 268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 501, - "src": "4257:10:0", + "referencedDeclaration": 537, + "src": "4612:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 234, + "id": 270, "isConstant": false, "isLValue": false, "isPure": false, @@ -7047,38 +7827,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4257:17:0", + "src": "4612:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4247:27:0", + "src": "4602:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 236, + "id": 272, "nodeType": "ExpressionStatement", - "src": "4247:27:0" + "src": "4602:27:0" }, { "expression": { "argumentTypes": null, - "id": 239, + "id": 275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 237, + "id": 273, "name": "toSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "4366:8:0", + "referencedDeclaration": 205, + "src": "4721:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7088,26 +7868,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 238, + "id": 274, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "4377:6:0", + "referencedDeclaration": 199, + "src": "4732:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4366:17:0", + "src": "4721:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 240, + "id": 276, "nodeType": "ExpressionStatement", - "src": "4366:17:0" + "src": "4721:17:0" }, { "expression": { @@ -7118,18 +7898,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 242, + "id": 278, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "4441:5:0", + "referencedDeclaration": 41, + "src": "4796:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 243, + "id": 279, "isConstant": false, "isLValue": false, "isPure": false, @@ -7137,7 +7917,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4441:7:0", + "src": "4796:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -7145,12 +7925,12 @@ }, { "argumentTypes": null, - "id": 244, + "id": 280, "name": "toOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "4450:7:0", + "referencedDeclaration": 202, + "src": "4805:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7168,18 +7948,18 @@ "typeString": "uint256" } ], - "id": 241, + "id": 277, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "4435:5:0", + "referencedDeclaration": 893, + "src": "4790:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 245, + "id": 281, "isConstant": false, "isLValue": false, "isPure": false, @@ -7187,15 +7967,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4435:23:0", + "src": "4790:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 246, + "id": 282, "nodeType": "ExpressionStatement", - "src": "4435:23:0" + "src": "4790:23:0" }, { "expression": { @@ -7205,18 +7985,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 248, + "id": 284, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1057, - "src": "4474:3:0", + "referencedDeclaration": 1093, + "src": "4829:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 249, + "id": 285, "isConstant": false, "isLValue": false, "isPure": false, @@ -7224,7 +8004,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4474:10:0", + "src": "4829:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -7232,12 +8012,12 @@ }, { "argumentTypes": null, - "id": 250, + "id": 286, "name": "toSender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "4486:8:0", + "referencedDeclaration": 205, + "src": "4841:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7255,18 +8035,18 @@ "typeString": "uint256" } ], - "id": 247, + "id": 283, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "4468:5:0", + "referencedDeclaration": 893, + "src": "4823:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 251, + "id": 287, "isConstant": false, "isLValue": false, "isPure": false, @@ -7274,48 +8054,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4468:27:0", + "src": "4823:27:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 252, + "id": 288, "nodeType": "ExpressionStatement", - "src": "4468:27:0" + "src": "4823:27:0" } ] }, "documentation": null, - "id": 254, + "id": 290, "implemented": true, "kind": "fallback", - "modifiers": [], + "modifiers": [ + { + "arguments": null, + "id": 190, + "modifierName": { + "argumentTypes": null, + "id": 189, + "name": "notPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "4015:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4015:9:0" + } + ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 154, + "id": 188, "nodeType": "ParameterList", "parameters": [], - "src": "3675:2:0" + "src": "4012:2:0" }, "returnParameters": { - "id": 155, + "id": 191, "nodeType": "ParameterList", "parameters": [], - "src": "3695:0:0" + "src": "4042:0:0" }, - "scope": 297, - "src": "3667:835:0", + "scope": 333, + "src": "4004:853:0", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 274, + "id": 310, "nodeType": "Block", - "src": "4589:154:0", + "src": "4944:154:0", "statements": [ { "expression": { @@ -7327,19 +8127,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 262, + "id": 298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 260, + "id": 296, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "4607:3:0", + "referencedDeclaration": 1095, + "src": "4962:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7349,18 +8149,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 261, + "id": 297, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "4614:7:0", + "referencedDeclaration": 154, + "src": "4969:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4607:14:0", + "src": "4962:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7374,21 +8174,21 @@ "typeString": "bool" } ], - "id": 259, + "id": 295, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1060, - "src": "4599:7:0", + "referencedDeclaration": 1096, + "src": "4954:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 263, + "id": 299, "isConstant": false, "isLValue": false, "isPure": false, @@ -7396,15 +8196,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4599:23:0", + "src": "4954:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 264, + "id": 300, "nodeType": "ExpressionStatement", - "src": "4599:23:0" + "src": "4954:23:0" }, { "expression": { @@ -7417,39 +8217,39 @@ "arguments": [ { "argumentTypes": null, - "id": 269, + "id": 305, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "4722:4:0", + "referencedDeclaration": 1117, + "src": "5077:4:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_DECAToken_$297", - "typeString": "contract DECAToken" + "typeIdentifier": "t_contract$_DECA_$333", + "typeString": "contract DECA" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_DECAToken_$297", - "typeString": "contract DECAToken" + "typeIdentifier": "t_contract$_DECA_$333", + "typeString": "contract DECA" } ], - "id": 268, + "id": 304, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4714:7:0", + "src": "5069:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 270, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, @@ -7457,13 +8257,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4714:13:0", + "src": "5069:13:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 271, + "id": 307, "isConstant": false, "isLValue": false, "isPure": false, @@ -7471,7 +8271,7 @@ "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4714:21:0", + "src": "5069:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7490,18 +8290,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 265, + "id": 301, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "4697:5:0", + "referencedDeclaration": 41, + "src": "5052:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 266, + "id": 302, "isConstant": false, "isLValue": false, "isPure": false, @@ -7509,13 +8309,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4697:7:0", + "src": "5052:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 267, + "id": 303, "isConstant": false, "isLValue": false, "isPure": false, @@ -7523,13 +8323,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4697:16:0", + "src": "5052:16:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 272, + "id": 308, "isConstant": false, "isLValue": false, "isPure": false, @@ -7537,68 +8337,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4697:39:0", + "src": "5052:39:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 273, + "id": 309, "nodeType": "ExpressionStatement", - "src": "4697:39:0" + "src": "5052:39:0" } ] }, "documentation": null, - "id": 275, + "id": 311, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 257, + "id": 293, "modifierName": { "argumentTypes": null, - "id": 256, + "id": 292, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "4579:9:0", + "referencedDeclaration": 51, + "src": "4934:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4579:9:0" + "src": "4934:9:0" } ], "name": "getETH", "nodeType": "FunctionDefinition", "parameters": { - "id": 255, + "id": 291, "nodeType": "ParameterList", "parameters": [], - "src": "4569:2:0" + "src": "4924:2:0" }, "returnParameters": { - "id": 258, + "id": 294, "nodeType": "ParameterList", "parameters": [], - "src": "4589:0:0" + "src": "4944:0:0" }, - "scope": 297, - "src": "4554:189:0", + "scope": 333, + "src": "4909:189:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 295, + "id": 331, "nodeType": "Block", - "src": "5088:70:0", + "src": "5443:70:0", "statements": [ { "expression": { @@ -7609,18 +8409,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 290, + "id": 326, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "5135:5:0", + "referencedDeclaration": 41, + "src": "5490:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, - "id": 291, + "id": 327, "isConstant": false, "isLValue": false, "isPure": false, @@ -7628,7 +8428,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5135:7:0", + "src": "5490:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -7636,12 +8436,12 @@ }, { "argumentTypes": null, - "id": 292, + "id": 328, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "5144:6:0", + "referencedDeclaration": 315, + "src": "5499:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7664,12 +8464,12 @@ "arguments": [ { "argumentTypes": null, - "id": 287, + "id": 323, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 277, - "src": "5112:12:0", + "referencedDeclaration": 313, + "src": "5467:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -7683,18 +8483,18 @@ "typeString": "address payable" } ], - "id": 286, + "id": 322, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "5105:6:0", + "referencedDeclaration": 1078, + "src": "5460:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$1042_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1078_$", "typeString": "type(contract IERC20)" } }, - "id": 288, + "id": 324, "isConstant": false, "isLValue": false, "isPure": false, @@ -7702,27 +8502,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5105:20:0", + "src": "5460:20:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1042", + "typeIdentifier": "t_contract$_IERC20_$1078", "typeString": "contract IERC20" } }, - "id": 289, + "id": 325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 996, - "src": "5105:29:0", + "referencedDeclaration": 1032, + "src": "5460:29:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 293, + "id": 329, "isConstant": false, "isLValue": false, "isPure": false, @@ -7730,57 +8530,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5105:46:0", + "src": "5460:46:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 285, - "id": 294, + "functionReturnParameters": 321, + "id": 330, "nodeType": "Return", - "src": "5098:53:0" + "src": "5453:53:0" } ] }, "documentation": null, - "id": 296, + "id": 332, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 282, + "id": 318, "modifierName": { "argumentTypes": null, - "id": 281, + "id": 317, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "5055:9:0", + "referencedDeclaration": 51, + "src": "5410:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5055:9:0" + "src": "5410:9:0" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { - "id": 280, + "id": 316, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 277, + "id": 313, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 296, - "src": "5005:28:0", + "scope": 332, + "src": "5360:28:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7788,10 +8588,10 @@ "typeString": "address payable" }, "typeName": { - "id": 276, + "id": 312, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5005:15:0", + "src": "5360:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -7803,11 +8603,11 @@ }, { "constant": false, - "id": 279, + "id": 315, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 296, - "src": "5035:11:0", + "scope": 332, + "src": "5390:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7815,10 +8615,10 @@ "typeString": "uint256" }, "typeName": { - "id": 278, + "id": 314, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5035:4:0", + "src": "5390:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7828,19 +8628,19 @@ "visibility": "internal" } ], - "src": "5004:43:0" + "src": "5359:43:0" }, "returnParameters": { - "id": 285, + "id": 321, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 284, + "id": 320, "name": "success", "nodeType": "VariableDeclaration", - "scope": 296, - "src": "5074:12:0", + "scope": 332, + "src": "5429:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7848,10 +8648,10 @@ "typeString": "bool" }, "typeName": { - "id": 283, + "id": 319, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5074:4:0", + "src": "5429:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7861,20 +8661,20 @@ "visibility": "internal" } ], - "src": "5073:14:0" + "src": "5428:14:0" }, - "scope": 297, - "src": "4974:184:0", + "scope": 333, + "src": "5329:184:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 298, - "src": "3031:2129:0" + "scope": 334, + "src": "3088:2427:0" } ], - "src": "0:5161:0" + "src": "0:5516:0" }, "compiler": { "name": "solc", @@ -7882,7 +8682,7 @@ }, "networks": {}, "schemaVersion": "3.0.19", - "updatedAt": "2019-12-29T01:52:30.747Z", + "updatedAt": "2020-02-18T05:14:13.969Z", "devdoc": { "details": "The reason using this instead of openzeppelin, because owner are not 'payable'", "methods": { diff --git a/build/contracts/SafeMath.json b/build/contracts/SafeMath.json index f0607ad..3c52dc9 100644 --- a/build/contracts/SafeMath.json +++ b/build/contracts/SafeMath.json @@ -12,14 +12,14 @@ "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 568 + 604 ] }, - "id": 569, + "id": 605, "nodeType": "SourceUnit", "nodes": [ { - "id": 383, + "id": 419, "literals": [ "solidity", "^", @@ -35,30 +35,30 @@ "contractKind": "library", "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", "fullyImplemented": true, - "id": 568, + "id": 604, "linearizedBaseContracts": [ - 568 + 604 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 407, + "id": 443, "nodeType": "Block", "src": "901:109:3", "statements": [ { "assignments": [ - 393 + 429 ], "declarations": [ { "constant": false, - "id": 393, + "id": 429, "name": "c", "nodeType": "VariableDeclaration", - "scope": 407, + "scope": 443, "src": "911:9:3", "stateVariable": false, "storageLocation": "default", @@ -67,7 +67,7 @@ "typeString": "uint256" }, "typeName": { - "id": 392, + "id": 428, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "911:7:3", @@ -80,25 +80,25 @@ "visibility": "internal" } ], - "id": 397, + "id": 433, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 396, + "id": 432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 394, + "id": 430, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 385, + "referencedDeclaration": 421, "src": "923:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -109,11 +109,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 395, + "id": 431, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, + "referencedDeclaration": 423, "src": "927:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -139,18 +139,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 401, + "id": 437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 399, + "id": 435, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, + "referencedDeclaration": 429, "src": "946:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -161,11 +161,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 400, + "id": 436, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 385, + "referencedDeclaration": 421, "src": "951:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -181,7 +181,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 402, + "id": 438, "isConstant": false, "isLValue": false, "isPure": true, @@ -208,21 +208,21 @@ "typeString": "literal_string \"SafeMath: addition overflow\"" } ], - "id": 398, + "id": 434, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "938:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 403, + "id": 439, "isConstant": false, "isLValue": false, "isPure": false, @@ -236,48 +236,48 @@ "typeString": "tuple()" } }, - "id": 404, + "id": 440, "nodeType": "ExpressionStatement", "src": "938:46:3" }, { "expression": { "argumentTypes": null, - "id": 405, + "id": 441, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, + "referencedDeclaration": 429, "src": "1002:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 391, - "id": 406, + "functionReturnParameters": 427, + "id": 442, "nodeType": "Return", "src": "995:8:3" } ] }, "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 408, + "id": 444, "implemented": true, "kind": "function", "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 388, + "id": 424, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 385, + "id": 421, "name": "a", "nodeType": "VariableDeclaration", - "scope": 408, + "scope": 444, "src": "847:9:3", "stateVariable": false, "storageLocation": "default", @@ -286,7 +286,7 @@ "typeString": "uint256" }, "typeName": { - "id": 384, + "id": 420, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "847:7:3", @@ -300,10 +300,10 @@ }, { "constant": false, - "id": 387, + "id": 423, "name": "b", "nodeType": "VariableDeclaration", - "scope": 408, + "scope": 444, "src": "858:9:3", "stateVariable": false, "storageLocation": "default", @@ -312,7 +312,7 @@ "typeString": "uint256" }, "typeName": { - "id": 386, + "id": 422, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "858:7:3", @@ -328,15 +328,15 @@ "src": "846:22:3" }, "returnParameters": { - "id": 391, + "id": 427, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 390, + "id": 426, "name": "", "nodeType": "VariableDeclaration", - "scope": 408, + "scope": 444, "src": "892:7:3", "stateVariable": false, "storageLocation": "default", @@ -345,7 +345,7 @@ "typeString": "uint256" }, "typeName": { - "id": 389, + "id": 425, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "892:7:3", @@ -360,7 +360,7 @@ ], "src": "891:9:3" }, - "scope": 568, + "scope": 604, "src": "834:176:3", "stateMutability": "pure", "superFunction": null, @@ -368,7 +368,7 @@ }, { "body": { - "id": 423, + "id": 459, "nodeType": "Block", "src": "1341:67:3", "statements": [ @@ -378,11 +378,11 @@ "arguments": [ { "argumentTypes": null, - "id": 418, + "id": 454, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 410, + "referencedDeclaration": 446, "src": "1362:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -391,11 +391,11 @@ }, { "argumentTypes": null, - "id": 419, + "id": 455, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, + "referencedDeclaration": 448, "src": "1365:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -405,7 +405,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 420, + "id": 456, "isConstant": false, "isLValue": false, "isPure": true, @@ -436,21 +436,21 @@ "typeString": "literal_string \"SafeMath: subtraction overflow\"" } ], - "id": 417, + "id": 453, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [ - 424, - 451 + 460, + 487 ], - "referencedDeclaration": 451, + "referencedDeclaration": 487, "src": "1358:3:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 421, + "id": 457, "isConstant": false, "isLValue": false, "isPure": false, @@ -464,30 +464,30 @@ "typeString": "uint256" } }, - "functionReturnParameters": 416, - "id": 422, + "functionReturnParameters": 452, + "id": 458, "nodeType": "Return", "src": "1351:50:3" } ] }, "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 424, + "id": 460, "implemented": true, "kind": "function", "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 413, + "id": 449, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 410, + "id": 446, "name": "a", "nodeType": "VariableDeclaration", - "scope": 424, + "scope": 460, "src": "1287:9:3", "stateVariable": false, "storageLocation": "default", @@ -496,7 +496,7 @@ "typeString": "uint256" }, "typeName": { - "id": 409, + "id": 445, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1287:7:3", @@ -510,10 +510,10 @@ }, { "constant": false, - "id": 412, + "id": 448, "name": "b", "nodeType": "VariableDeclaration", - "scope": 424, + "scope": 460, "src": "1298:9:3", "stateVariable": false, "storageLocation": "default", @@ -522,7 +522,7 @@ "typeString": "uint256" }, "typeName": { - "id": 411, + "id": 447, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1298:7:3", @@ -538,15 +538,15 @@ "src": "1286:22:3" }, "returnParameters": { - "id": 416, + "id": 452, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 415, + "id": 451, "name": "", "nodeType": "VariableDeclaration", - "scope": 424, + "scope": 460, "src": "1332:7:3", "stateVariable": false, "storageLocation": "default", @@ -555,7 +555,7 @@ "typeString": "uint256" }, "typeName": { - "id": 414, + "id": 450, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1332:7:3", @@ -570,7 +570,7 @@ ], "src": "1331:9:3" }, - "scope": 568, + "scope": 604, "src": "1274:134:3", "stateMutability": "pure", "superFunction": null, @@ -578,7 +578,7 @@ }, { "body": { - "id": 450, + "id": 486, "nodeType": "Block", "src": "1827:92:3", "statements": [ @@ -592,18 +592,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 438, + "id": 474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 436, + "id": 472, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, + "referencedDeclaration": 464, "src": "1845:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -614,11 +614,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 437, + "id": 473, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 426, + "referencedDeclaration": 462, "src": "1850:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -633,11 +633,11 @@ }, { "argumentTypes": null, - "id": 439, + "id": 475, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 430, + "referencedDeclaration": 466, "src": "1853:12:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -656,21 +656,21 @@ "typeString": "string memory" } ], - "id": 435, + "id": 471, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "1837:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 440, + "id": 476, "isConstant": false, "isLValue": false, "isPure": false, @@ -684,21 +684,21 @@ "typeString": "tuple()" } }, - "id": 441, + "id": 477, "nodeType": "ExpressionStatement", "src": "1837:29:3" }, { "assignments": [ - 443 + 479 ], "declarations": [ { "constant": false, - "id": 443, + "id": 479, "name": "c", "nodeType": "VariableDeclaration", - "scope": 450, + "scope": 486, "src": "1876:9:3", "stateVariable": false, "storageLocation": "default", @@ -707,7 +707,7 @@ "typeString": "uint256" }, "typeName": { - "id": 442, + "id": 478, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1876:7:3", @@ -720,25 +720,25 @@ "visibility": "internal" } ], - "id": 447, + "id": 483, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 446, + "id": 482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 444, + "id": 480, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 426, + "referencedDeclaration": 462, "src": "1888:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -749,11 +749,11 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 445, + "id": 481, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, + "referencedDeclaration": 464, "src": "1892:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -772,41 +772,41 @@ { "expression": { "argumentTypes": null, - "id": 448, + "id": 484, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 443, + "referencedDeclaration": 479, "src": "1911:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 434, - "id": 449, + "functionReturnParameters": 470, + "id": 485, "nodeType": "Return", "src": "1904:8:3" } ] }, "documentation": "@dev Returns the subtraction of two unsigned integers, reverting with custom message on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.\n * _Available since v2.4.0._", - "id": 451, + "id": 487, "implemented": true, "kind": "function", "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 431, + "id": 467, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 426, + "id": 462, "name": "a", "nodeType": "VariableDeclaration", - "scope": 451, + "scope": 487, "src": "1745:9:3", "stateVariable": false, "storageLocation": "default", @@ -815,7 +815,7 @@ "typeString": "uint256" }, "typeName": { - "id": 425, + "id": 461, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1745:7:3", @@ -829,10 +829,10 @@ }, { "constant": false, - "id": 428, + "id": 464, "name": "b", "nodeType": "VariableDeclaration", - "scope": 451, + "scope": 487, "src": "1756:9:3", "stateVariable": false, "storageLocation": "default", @@ -841,7 +841,7 @@ "typeString": "uint256" }, "typeName": { - "id": 427, + "id": 463, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1756:7:3", @@ -855,10 +855,10 @@ }, { "constant": false, - "id": 430, + "id": 466, "name": "errorMessage", "nodeType": "VariableDeclaration", - "scope": 451, + "scope": 487, "src": "1767:26:3", "stateVariable": false, "storageLocation": "memory", @@ -867,7 +867,7 @@ "typeString": "string" }, "typeName": { - "id": 429, + "id": 465, "name": "string", "nodeType": "ElementaryTypeName", "src": "1767:6:3", @@ -883,15 +883,15 @@ "src": "1744:50:3" }, "returnParameters": { - "id": 434, + "id": 470, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 433, + "id": 469, "name": "", "nodeType": "VariableDeclaration", - "scope": 451, + "scope": 487, "src": "1818:7:3", "stateVariable": false, "storageLocation": "default", @@ -900,7 +900,7 @@ "typeString": "uint256" }, "typeName": { - "id": 432, + "id": 468, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1818:7:3", @@ -915,7 +915,7 @@ ], "src": "1817:9:3" }, - "scope": 568, + "scope": 604, "src": "1732:187:3", "stateMutability": "pure", "superFunction": null, @@ -923,7 +923,7 @@ }, { "body": { - "id": 484, + "id": 520, "nodeType": "Block", "src": "2226:392:3", "statements": [ @@ -934,18 +934,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 462, + "id": 498, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 460, + "id": 496, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 453, + "referencedDeclaration": 489, "src": "2458:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -957,7 +957,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 461, + "id": 497, "isConstant": false, "isLValue": false, "isPure": true, @@ -979,11 +979,11 @@ } }, "falseBody": null, - "id": 466, + "id": 502, "nodeType": "IfStatement", "src": "2454:45:3", "trueBody": { - "id": 465, + "id": 501, "nodeType": "Block", "src": "2466:33:3", "statements": [ @@ -991,7 +991,7 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 463, + "id": 499, "isConstant": false, "isLValue": false, "isPure": true, @@ -1006,8 +1006,8 @@ }, "value": "0" }, - "functionReturnParameters": 459, - "id": 464, + "functionReturnParameters": 495, + "id": 500, "nodeType": "Return", "src": "2480:8:3" } @@ -1016,15 +1016,15 @@ }, { "assignments": [ - 468 + 504 ], "declarations": [ { "constant": false, - "id": 468, + "id": 504, "name": "c", "nodeType": "VariableDeclaration", - "scope": 484, + "scope": 520, "src": "2509:9:3", "stateVariable": false, "storageLocation": "default", @@ -1033,7 +1033,7 @@ "typeString": "uint256" }, "typeName": { - "id": 467, + "id": 503, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2509:7:3", @@ -1046,25 +1046,25 @@ "visibility": "internal" } ], - "id": 472, + "id": 508, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 471, + "id": 507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 469, + "id": 505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 453, + "referencedDeclaration": 489, "src": "2521:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1075,11 +1075,11 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 470, + "id": 506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 455, + "referencedDeclaration": 491, "src": "2525:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1105,7 +1105,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 478, + "id": 514, "isConstant": false, "isLValue": false, "isPure": false, @@ -1116,18 +1116,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 476, + "id": 512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 474, + "id": 510, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 468, + "referencedDeclaration": 504, "src": "2544:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1138,11 +1138,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 475, + "id": 511, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 453, + "referencedDeclaration": 489, "src": "2548:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1159,11 +1159,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 477, + "id": 513, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 455, + "referencedDeclaration": 491, "src": "2553:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1179,7 +1179,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 479, + "id": 515, "isConstant": false, "isLValue": false, "isPure": true, @@ -1206,21 +1206,21 @@ "typeString": "literal_string \"SafeMath: multiplication overflow\"" } ], - "id": 473, + "id": 509, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "2536:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 480, + "id": 516, "isConstant": false, "isLValue": false, "isPure": false, @@ -1234,48 +1234,48 @@ "typeString": "tuple()" } }, - "id": 481, + "id": 517, "nodeType": "ExpressionStatement", "src": "2536:56:3" }, { "expression": { "argumentTypes": null, - "id": 482, + "id": 518, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 468, + "referencedDeclaration": 504, "src": "2610:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 459, - "id": 483, + "functionReturnParameters": 495, + "id": 519, "nodeType": "Return", "src": "2603:8:3" } ] }, "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 485, + "id": 521, "implemented": true, "kind": "function", "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 456, + "id": 492, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 453, + "id": 489, "name": "a", "nodeType": "VariableDeclaration", - "scope": 485, + "scope": 521, "src": "2172:9:3", "stateVariable": false, "storageLocation": "default", @@ -1284,7 +1284,7 @@ "typeString": "uint256" }, "typeName": { - "id": 452, + "id": 488, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2172:7:3", @@ -1298,10 +1298,10 @@ }, { "constant": false, - "id": 455, + "id": 491, "name": "b", "nodeType": "VariableDeclaration", - "scope": 485, + "scope": 521, "src": "2183:9:3", "stateVariable": false, "storageLocation": "default", @@ -1310,7 +1310,7 @@ "typeString": "uint256" }, "typeName": { - "id": 454, + "id": 490, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2183:7:3", @@ -1326,15 +1326,15 @@ "src": "2171:22:3" }, "returnParameters": { - "id": 459, + "id": 495, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 458, + "id": 494, "name": "", "nodeType": "VariableDeclaration", - "scope": 485, + "scope": 521, "src": "2217:7:3", "stateVariable": false, "storageLocation": "default", @@ -1343,7 +1343,7 @@ "typeString": "uint256" }, "typeName": { - "id": 457, + "id": 493, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2217:7:3", @@ -1358,7 +1358,7 @@ ], "src": "2216:9:3" }, - "scope": 568, + "scope": 604, "src": "2159:459:3", "stateMutability": "pure", "superFunction": null, @@ -1366,7 +1366,7 @@ }, { "body": { - "id": 500, + "id": 536, "nodeType": "Block", "src": "3140:63:3", "statements": [ @@ -1376,11 +1376,11 @@ "arguments": [ { "argumentTypes": null, - "id": 495, + "id": 531, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 487, + "referencedDeclaration": 523, "src": "3161:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1389,11 +1389,11 @@ }, { "argumentTypes": null, - "id": 496, + "id": 532, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 489, + "referencedDeclaration": 525, "src": "3164:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1403,7 +1403,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 497, + "id": 533, "isConstant": false, "isLValue": false, "isPure": true, @@ -1434,21 +1434,21 @@ "typeString": "literal_string \"SafeMath: division by zero\"" } ], - "id": 494, + "id": 530, "name": "div", "nodeType": "Identifier", "overloadedDeclarations": [ - 501, - 528 + 537, + 564 ], - "referencedDeclaration": 528, + "referencedDeclaration": 564, "src": "3157:3:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 498, + "id": 534, "isConstant": false, "isLValue": false, "isPure": false, @@ -1462,30 +1462,30 @@ "typeString": "uint256" } }, - "functionReturnParameters": 493, - "id": 499, + "functionReturnParameters": 529, + "id": 535, "nodeType": "Return", "src": "3150:46:3" } ] }, "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 501, + "id": 537, "implemented": true, "kind": "function", "modifiers": [], "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 490, + "id": 526, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 487, + "id": 523, "name": "a", "nodeType": "VariableDeclaration", - "scope": 501, + "scope": 537, "src": "3086:9:3", "stateVariable": false, "storageLocation": "default", @@ -1494,7 +1494,7 @@ "typeString": "uint256" }, "typeName": { - "id": 486, + "id": 522, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3086:7:3", @@ -1508,10 +1508,10 @@ }, { "constant": false, - "id": 489, + "id": 525, "name": "b", "nodeType": "VariableDeclaration", - "scope": 501, + "scope": 537, "src": "3097:9:3", "stateVariable": false, "storageLocation": "default", @@ -1520,7 +1520,7 @@ "typeString": "uint256" }, "typeName": { - "id": 488, + "id": 524, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3097:7:3", @@ -1536,15 +1536,15 @@ "src": "3085:22:3" }, "returnParameters": { - "id": 493, + "id": 529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 492, + "id": 528, "name": "", "nodeType": "VariableDeclaration", - "scope": 501, + "scope": 537, "src": "3131:7:3", "stateVariable": false, "storageLocation": "default", @@ -1553,7 +1553,7 @@ "typeString": "uint256" }, "typeName": { - "id": 491, + "id": 527, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3131:7:3", @@ -1568,7 +1568,7 @@ ], "src": "3130:9:3" }, - "scope": 568, + "scope": 604, "src": "3073:130:3", "stateMutability": "pure", "superFunction": null, @@ -1576,7 +1576,7 @@ }, { "body": { - "id": 527, + "id": 563, "nodeType": "Block", "src": "3813:243:3", "statements": [ @@ -1590,18 +1590,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 515, + "id": 551, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 513, + "id": 549, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, + "referencedDeclaration": 541, "src": "3897:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1613,7 +1613,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 514, + "id": 550, "isConstant": false, "isLValue": false, "isPure": true, @@ -1636,11 +1636,11 @@ }, { "argumentTypes": null, - "id": 516, + "id": 552, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 507, + "referencedDeclaration": 543, "src": "3904:12:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1659,21 +1659,21 @@ "typeString": "string memory" } ], - "id": 512, + "id": 548, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "3889:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 517, + "id": 553, "isConstant": false, "isLValue": false, "isPure": false, @@ -1687,21 +1687,21 @@ "typeString": "tuple()" } }, - "id": 518, + "id": 554, "nodeType": "ExpressionStatement", "src": "3889:28:3" }, { "assignments": [ - 520 + 556 ], "declarations": [ { "constant": false, - "id": 520, + "id": 556, "name": "c", "nodeType": "VariableDeclaration", - "scope": 527, + "scope": 563, "src": "3927:9:3", "stateVariable": false, "storageLocation": "default", @@ -1710,7 +1710,7 @@ "typeString": "uint256" }, "typeName": { - "id": 519, + "id": 555, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3927:7:3", @@ -1723,25 +1723,25 @@ "visibility": "internal" } ], - "id": 524, + "id": 560, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 523, + "id": 559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 521, + "id": 557, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 503, + "referencedDeclaration": 539, "src": "3939:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1752,11 +1752,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 522, + "id": 558, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, + "referencedDeclaration": 541, "src": "3943:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1775,41 +1775,41 @@ { "expression": { "argumentTypes": null, - "id": 525, + "id": 561, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, + "referencedDeclaration": 556, "src": "4048:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 511, - "id": 526, + "functionReturnParameters": 547, + "id": 562, "nodeType": "Return", "src": "4041:8:3" } ] }, "documentation": "@dev Returns the integer division of two unsigned integers. Reverts with custom message on\ndivision by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.\n * _Available since v2.4.0._", - "id": 528, + "id": 564, "implemented": true, "kind": "function", "modifiers": [], "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 508, + "id": 544, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 503, + "id": 539, "name": "a", "nodeType": "VariableDeclaration", - "scope": 528, + "scope": 564, "src": "3731:9:3", "stateVariable": false, "storageLocation": "default", @@ -1818,7 +1818,7 @@ "typeString": "uint256" }, "typeName": { - "id": 502, + "id": 538, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3731:7:3", @@ -1832,10 +1832,10 @@ }, { "constant": false, - "id": 505, + "id": 541, "name": "b", "nodeType": "VariableDeclaration", - "scope": 528, + "scope": 564, "src": "3742:9:3", "stateVariable": false, "storageLocation": "default", @@ -1844,7 +1844,7 @@ "typeString": "uint256" }, "typeName": { - "id": 504, + "id": 540, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3742:7:3", @@ -1858,10 +1858,10 @@ }, { "constant": false, - "id": 507, + "id": 543, "name": "errorMessage", "nodeType": "VariableDeclaration", - "scope": 528, + "scope": 564, "src": "3753:26:3", "stateVariable": false, "storageLocation": "memory", @@ -1870,7 +1870,7 @@ "typeString": "string" }, "typeName": { - "id": 506, + "id": 542, "name": "string", "nodeType": "ElementaryTypeName", "src": "3753:6:3", @@ -1886,15 +1886,15 @@ "src": "3730:50:3" }, "returnParameters": { - "id": 511, + "id": 547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 510, + "id": 546, "name": "", "nodeType": "VariableDeclaration", - "scope": 528, + "scope": 564, "src": "3804:7:3", "stateVariable": false, "storageLocation": "default", @@ -1903,7 +1903,7 @@ "typeString": "uint256" }, "typeName": { - "id": 509, + "id": 545, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3804:7:3", @@ -1918,7 +1918,7 @@ ], "src": "3803:9:3" }, - "scope": 568, + "scope": 604, "src": "3718:338:3", "stateMutability": "pure", "superFunction": null, @@ -1926,7 +1926,7 @@ }, { "body": { - "id": 543, + "id": 579, "nodeType": "Block", "src": "4567:61:3", "statements": [ @@ -1936,11 +1936,11 @@ "arguments": [ { "argumentTypes": null, - "id": 538, + "id": 574, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 530, + "referencedDeclaration": 566, "src": "4588:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1949,11 +1949,11 @@ }, { "argumentTypes": null, - "id": 539, + "id": 575, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 532, + "referencedDeclaration": 568, "src": "4591:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1963,7 +1963,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 540, + "id": 576, "isConstant": false, "isLValue": false, "isPure": true, @@ -1994,21 +1994,21 @@ "typeString": "literal_string \"SafeMath: modulo by zero\"" } ], - "id": 537, + "id": 573, "name": "mod", "nodeType": "Identifier", "overloadedDeclarations": [ - 544, - 567 + 580, + 603 ], - "referencedDeclaration": 567, + "referencedDeclaration": 603, "src": "4584:3:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 541, + "id": 577, "isConstant": false, "isLValue": false, "isPure": false, @@ -2022,30 +2022,30 @@ "typeString": "uint256" } }, - "functionReturnParameters": 536, - "id": 542, + "functionReturnParameters": 572, + "id": 578, "nodeType": "Return", "src": "4577:44:3" } ] }, "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 544, + "id": 580, "implemented": true, "kind": "function", "modifiers": [], "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 533, + "id": 569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 530, + "id": 566, "name": "a", "nodeType": "VariableDeclaration", - "scope": 544, + "scope": 580, "src": "4513:9:3", "stateVariable": false, "storageLocation": "default", @@ -2054,7 +2054,7 @@ "typeString": "uint256" }, "typeName": { - "id": 529, + "id": 565, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4513:7:3", @@ -2068,10 +2068,10 @@ }, { "constant": false, - "id": 532, + "id": 568, "name": "b", "nodeType": "VariableDeclaration", - "scope": 544, + "scope": 580, "src": "4524:9:3", "stateVariable": false, "storageLocation": "default", @@ -2080,7 +2080,7 @@ "typeString": "uint256" }, "typeName": { - "id": 531, + "id": 567, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4524:7:3", @@ -2096,15 +2096,15 @@ "src": "4512:22:3" }, "returnParameters": { - "id": 536, + "id": 572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 535, + "id": 571, "name": "", "nodeType": "VariableDeclaration", - "scope": 544, + "scope": 580, "src": "4558:7:3", "stateVariable": false, "storageLocation": "default", @@ -2113,7 +2113,7 @@ "typeString": "uint256" }, "typeName": { - "id": 534, + "id": 570, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4558:7:3", @@ -2128,7 +2128,7 @@ ], "src": "4557:9:3" }, - "scope": 568, + "scope": 604, "src": "4500:128:3", "stateMutability": "pure", "superFunction": null, @@ -2136,7 +2136,7 @@ }, { "body": { - "id": 566, + "id": 602, "nodeType": "Block", "src": "5227:68:3", "statements": [ @@ -2150,18 +2150,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 558, + "id": 594, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 556, + "id": 592, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 548, + "referencedDeclaration": 584, "src": "5245:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2173,7 +2173,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 557, + "id": 593, "isConstant": false, "isLValue": false, "isPure": true, @@ -2196,11 +2196,11 @@ }, { "argumentTypes": null, - "id": 559, + "id": 595, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 550, + "referencedDeclaration": 586, "src": "5253:12:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -2219,21 +2219,21 @@ "typeString": "string memory" } ], - "id": 555, + "id": 591, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "5237:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 560, + "id": 596, "isConstant": false, "isLValue": false, "isPure": false, @@ -2247,7 +2247,7 @@ "typeString": "tuple()" } }, - "id": 561, + "id": 597, "nodeType": "ExpressionStatement", "src": "5237:29:3" }, @@ -2258,18 +2258,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 564, + "id": 600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 562, + "id": 598, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 546, + "referencedDeclaration": 582, "src": "5283:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2280,11 +2280,11 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 563, + "id": 599, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 548, + "referencedDeclaration": 584, "src": "5287:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2297,30 +2297,30 @@ "typeString": "uint256" } }, - "functionReturnParameters": 554, - "id": 565, + "functionReturnParameters": 590, + "id": 601, "nodeType": "Return", "src": "5276:12:3" } ] }, "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts with custom message when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.\n * _Available since v2.4.0._", - "id": 567, + "id": 603, "implemented": true, "kind": "function", "modifiers": [], "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 551, + "id": 587, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 546, + "id": 582, "name": "a", "nodeType": "VariableDeclaration", - "scope": 567, + "scope": 603, "src": "5145:9:3", "stateVariable": false, "storageLocation": "default", @@ -2329,7 +2329,7 @@ "typeString": "uint256" }, "typeName": { - "id": 545, + "id": 581, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5145:7:3", @@ -2343,10 +2343,10 @@ }, { "constant": false, - "id": 548, + "id": 584, "name": "b", "nodeType": "VariableDeclaration", - "scope": 567, + "scope": 603, "src": "5156:9:3", "stateVariable": false, "storageLocation": "default", @@ -2355,7 +2355,7 @@ "typeString": "uint256" }, "typeName": { - "id": 547, + "id": 583, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5156:7:3", @@ -2369,10 +2369,10 @@ }, { "constant": false, - "id": 550, + "id": 586, "name": "errorMessage", "nodeType": "VariableDeclaration", - "scope": 567, + "scope": 603, "src": "5167:26:3", "stateVariable": false, "storageLocation": "memory", @@ -2381,7 +2381,7 @@ "typeString": "string" }, "typeName": { - "id": 549, + "id": 585, "name": "string", "nodeType": "ElementaryTypeName", "src": "5167:6:3", @@ -2397,15 +2397,15 @@ "src": "5144:50:3" }, "returnParameters": { - "id": 554, + "id": 590, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 553, + "id": 589, "name": "", "nodeType": "VariableDeclaration", - "scope": 567, + "scope": 603, "src": "5218:7:3", "stateVariable": false, "storageLocation": "default", @@ -2414,7 +2414,7 @@ "typeString": "uint256" }, "typeName": { - "id": 552, + "id": 588, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5218:7:3", @@ -2429,14 +2429,14 @@ ], "src": "5217:9:3" }, - "scope": 568, + "scope": 604, "src": "5132:163:3", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 569, + "scope": 605, "src": "589:4708:3" } ], @@ -2446,14 +2446,14 @@ "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 568 + 604 ] }, - "id": 569, + "id": 605, "nodeType": "SourceUnit", "nodes": [ { - "id": 383, + "id": 419, "literals": [ "solidity", "^", @@ -2469,30 +2469,30 @@ "contractKind": "library", "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", "fullyImplemented": true, - "id": 568, + "id": 604, "linearizedBaseContracts": [ - 568 + 604 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 407, + "id": 443, "nodeType": "Block", "src": "901:109:3", "statements": [ { "assignments": [ - 393 + 429 ], "declarations": [ { "constant": false, - "id": 393, + "id": 429, "name": "c", "nodeType": "VariableDeclaration", - "scope": 407, + "scope": 443, "src": "911:9:3", "stateVariable": false, "storageLocation": "default", @@ -2501,7 +2501,7 @@ "typeString": "uint256" }, "typeName": { - "id": 392, + "id": 428, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "911:7:3", @@ -2514,25 +2514,25 @@ "visibility": "internal" } ], - "id": 397, + "id": 433, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 396, + "id": 432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 394, + "id": 430, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 385, + "referencedDeclaration": 421, "src": "923:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2543,11 +2543,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 395, + "id": 431, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, + "referencedDeclaration": 423, "src": "927:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2573,18 +2573,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 401, + "id": 437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 399, + "id": 435, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, + "referencedDeclaration": 429, "src": "946:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2595,11 +2595,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 400, + "id": 436, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 385, + "referencedDeclaration": 421, "src": "951:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2615,7 +2615,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 402, + "id": 438, "isConstant": false, "isLValue": false, "isPure": true, @@ -2642,21 +2642,21 @@ "typeString": "literal_string \"SafeMath: addition overflow\"" } ], - "id": 398, + "id": 434, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "938:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 403, + "id": 439, "isConstant": false, "isLValue": false, "isPure": false, @@ -2670,48 +2670,48 @@ "typeString": "tuple()" } }, - "id": 404, + "id": 440, "nodeType": "ExpressionStatement", "src": "938:46:3" }, { "expression": { "argumentTypes": null, - "id": 405, + "id": 441, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, + "referencedDeclaration": 429, "src": "1002:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 391, - "id": 406, + "functionReturnParameters": 427, + "id": 442, "nodeType": "Return", "src": "995:8:3" } ] }, "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 408, + "id": 444, "implemented": true, "kind": "function", "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 388, + "id": 424, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 385, + "id": 421, "name": "a", "nodeType": "VariableDeclaration", - "scope": 408, + "scope": 444, "src": "847:9:3", "stateVariable": false, "storageLocation": "default", @@ -2720,7 +2720,7 @@ "typeString": "uint256" }, "typeName": { - "id": 384, + "id": 420, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "847:7:3", @@ -2734,10 +2734,10 @@ }, { "constant": false, - "id": 387, + "id": 423, "name": "b", "nodeType": "VariableDeclaration", - "scope": 408, + "scope": 444, "src": "858:9:3", "stateVariable": false, "storageLocation": "default", @@ -2746,7 +2746,7 @@ "typeString": "uint256" }, "typeName": { - "id": 386, + "id": 422, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "858:7:3", @@ -2762,15 +2762,15 @@ "src": "846:22:3" }, "returnParameters": { - "id": 391, + "id": 427, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 390, + "id": 426, "name": "", "nodeType": "VariableDeclaration", - "scope": 408, + "scope": 444, "src": "892:7:3", "stateVariable": false, "storageLocation": "default", @@ -2779,7 +2779,7 @@ "typeString": "uint256" }, "typeName": { - "id": 389, + "id": 425, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "892:7:3", @@ -2794,7 +2794,7 @@ ], "src": "891:9:3" }, - "scope": 568, + "scope": 604, "src": "834:176:3", "stateMutability": "pure", "superFunction": null, @@ -2802,7 +2802,7 @@ }, { "body": { - "id": 423, + "id": 459, "nodeType": "Block", "src": "1341:67:3", "statements": [ @@ -2812,11 +2812,11 @@ "arguments": [ { "argumentTypes": null, - "id": 418, + "id": 454, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 410, + "referencedDeclaration": 446, "src": "1362:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2825,11 +2825,11 @@ }, { "argumentTypes": null, - "id": 419, + "id": 455, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, + "referencedDeclaration": 448, "src": "1365:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2839,7 +2839,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 420, + "id": 456, "isConstant": false, "isLValue": false, "isPure": true, @@ -2870,21 +2870,21 @@ "typeString": "literal_string \"SafeMath: subtraction overflow\"" } ], - "id": 417, + "id": 453, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [ - 424, - 451 + 460, + 487 ], - "referencedDeclaration": 451, + "referencedDeclaration": 487, "src": "1358:3:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 421, + "id": 457, "isConstant": false, "isLValue": false, "isPure": false, @@ -2898,30 +2898,30 @@ "typeString": "uint256" } }, - "functionReturnParameters": 416, - "id": 422, + "functionReturnParameters": 452, + "id": 458, "nodeType": "Return", "src": "1351:50:3" } ] }, "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 424, + "id": 460, "implemented": true, "kind": "function", "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 413, + "id": 449, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 410, + "id": 446, "name": "a", "nodeType": "VariableDeclaration", - "scope": 424, + "scope": 460, "src": "1287:9:3", "stateVariable": false, "storageLocation": "default", @@ -2930,7 +2930,7 @@ "typeString": "uint256" }, "typeName": { - "id": 409, + "id": 445, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1287:7:3", @@ -2944,10 +2944,10 @@ }, { "constant": false, - "id": 412, + "id": 448, "name": "b", "nodeType": "VariableDeclaration", - "scope": 424, + "scope": 460, "src": "1298:9:3", "stateVariable": false, "storageLocation": "default", @@ -2956,7 +2956,7 @@ "typeString": "uint256" }, "typeName": { - "id": 411, + "id": 447, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1298:7:3", @@ -2972,15 +2972,15 @@ "src": "1286:22:3" }, "returnParameters": { - "id": 416, + "id": 452, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 415, + "id": 451, "name": "", "nodeType": "VariableDeclaration", - "scope": 424, + "scope": 460, "src": "1332:7:3", "stateVariable": false, "storageLocation": "default", @@ -2989,7 +2989,7 @@ "typeString": "uint256" }, "typeName": { - "id": 414, + "id": 450, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1332:7:3", @@ -3004,7 +3004,7 @@ ], "src": "1331:9:3" }, - "scope": 568, + "scope": 604, "src": "1274:134:3", "stateMutability": "pure", "superFunction": null, @@ -3012,7 +3012,7 @@ }, { "body": { - "id": 450, + "id": 486, "nodeType": "Block", "src": "1827:92:3", "statements": [ @@ -3026,18 +3026,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 438, + "id": 474, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 436, + "id": 472, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, + "referencedDeclaration": 464, "src": "1845:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3048,11 +3048,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 437, + "id": 473, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 426, + "referencedDeclaration": 462, "src": "1850:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3067,11 +3067,11 @@ }, { "argumentTypes": null, - "id": 439, + "id": 475, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 430, + "referencedDeclaration": 466, "src": "1853:12:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -3090,21 +3090,21 @@ "typeString": "string memory" } ], - "id": 435, + "id": 471, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "1837:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 440, + "id": 476, "isConstant": false, "isLValue": false, "isPure": false, @@ -3118,21 +3118,21 @@ "typeString": "tuple()" } }, - "id": 441, + "id": 477, "nodeType": "ExpressionStatement", "src": "1837:29:3" }, { "assignments": [ - 443 + 479 ], "declarations": [ { "constant": false, - "id": 443, + "id": 479, "name": "c", "nodeType": "VariableDeclaration", - "scope": 450, + "scope": 486, "src": "1876:9:3", "stateVariable": false, "storageLocation": "default", @@ -3141,7 +3141,7 @@ "typeString": "uint256" }, "typeName": { - "id": 442, + "id": 478, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1876:7:3", @@ -3154,25 +3154,25 @@ "visibility": "internal" } ], - "id": 447, + "id": 483, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 446, + "id": 482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 444, + "id": 480, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 426, + "referencedDeclaration": 462, "src": "1888:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3183,11 +3183,11 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 445, + "id": 481, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 428, + "referencedDeclaration": 464, "src": "1892:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3206,41 +3206,41 @@ { "expression": { "argumentTypes": null, - "id": 448, + "id": 484, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 443, + "referencedDeclaration": 479, "src": "1911:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 434, - "id": 449, + "functionReturnParameters": 470, + "id": 485, "nodeType": "Return", "src": "1904:8:3" } ] }, "documentation": "@dev Returns the subtraction of two unsigned integers, reverting with custom message on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.\n * _Available since v2.4.0._", - "id": 451, + "id": 487, "implemented": true, "kind": "function", "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 431, + "id": 467, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 426, + "id": 462, "name": "a", "nodeType": "VariableDeclaration", - "scope": 451, + "scope": 487, "src": "1745:9:3", "stateVariable": false, "storageLocation": "default", @@ -3249,7 +3249,7 @@ "typeString": "uint256" }, "typeName": { - "id": 425, + "id": 461, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1745:7:3", @@ -3263,10 +3263,10 @@ }, { "constant": false, - "id": 428, + "id": 464, "name": "b", "nodeType": "VariableDeclaration", - "scope": 451, + "scope": 487, "src": "1756:9:3", "stateVariable": false, "storageLocation": "default", @@ -3275,7 +3275,7 @@ "typeString": "uint256" }, "typeName": { - "id": 427, + "id": 463, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1756:7:3", @@ -3289,10 +3289,10 @@ }, { "constant": false, - "id": 430, + "id": 466, "name": "errorMessage", "nodeType": "VariableDeclaration", - "scope": 451, + "scope": 487, "src": "1767:26:3", "stateVariable": false, "storageLocation": "memory", @@ -3301,7 +3301,7 @@ "typeString": "string" }, "typeName": { - "id": 429, + "id": 465, "name": "string", "nodeType": "ElementaryTypeName", "src": "1767:6:3", @@ -3317,15 +3317,15 @@ "src": "1744:50:3" }, "returnParameters": { - "id": 434, + "id": 470, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 433, + "id": 469, "name": "", "nodeType": "VariableDeclaration", - "scope": 451, + "scope": 487, "src": "1818:7:3", "stateVariable": false, "storageLocation": "default", @@ -3334,7 +3334,7 @@ "typeString": "uint256" }, "typeName": { - "id": 432, + "id": 468, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1818:7:3", @@ -3349,7 +3349,7 @@ ], "src": "1817:9:3" }, - "scope": 568, + "scope": 604, "src": "1732:187:3", "stateMutability": "pure", "superFunction": null, @@ -3357,7 +3357,7 @@ }, { "body": { - "id": 484, + "id": 520, "nodeType": "Block", "src": "2226:392:3", "statements": [ @@ -3368,18 +3368,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 462, + "id": 498, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 460, + "id": 496, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 453, + "referencedDeclaration": 489, "src": "2458:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3391,7 +3391,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 461, + "id": 497, "isConstant": false, "isLValue": false, "isPure": true, @@ -3413,11 +3413,11 @@ } }, "falseBody": null, - "id": 466, + "id": 502, "nodeType": "IfStatement", "src": "2454:45:3", "trueBody": { - "id": 465, + "id": 501, "nodeType": "Block", "src": "2466:33:3", "statements": [ @@ -3425,7 +3425,7 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 463, + "id": 499, "isConstant": false, "isLValue": false, "isPure": true, @@ -3440,8 +3440,8 @@ }, "value": "0" }, - "functionReturnParameters": 459, - "id": 464, + "functionReturnParameters": 495, + "id": 500, "nodeType": "Return", "src": "2480:8:3" } @@ -3450,15 +3450,15 @@ }, { "assignments": [ - 468 + 504 ], "declarations": [ { "constant": false, - "id": 468, + "id": 504, "name": "c", "nodeType": "VariableDeclaration", - "scope": 484, + "scope": 520, "src": "2509:9:3", "stateVariable": false, "storageLocation": "default", @@ -3467,7 +3467,7 @@ "typeString": "uint256" }, "typeName": { - "id": 467, + "id": 503, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2509:7:3", @@ -3480,25 +3480,25 @@ "visibility": "internal" } ], - "id": 472, + "id": 508, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 471, + "id": 507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 469, + "id": 505, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 453, + "referencedDeclaration": 489, "src": "2521:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3509,11 +3509,11 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 470, + "id": 506, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 455, + "referencedDeclaration": 491, "src": "2525:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3539,7 +3539,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 478, + "id": 514, "isConstant": false, "isLValue": false, "isPure": false, @@ -3550,18 +3550,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 476, + "id": 512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 474, + "id": 510, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 468, + "referencedDeclaration": 504, "src": "2544:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3572,11 +3572,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 475, + "id": 511, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 453, + "referencedDeclaration": 489, "src": "2548:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3593,11 +3593,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 477, + "id": 513, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 455, + "referencedDeclaration": 491, "src": "2553:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3613,7 +3613,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 479, + "id": 515, "isConstant": false, "isLValue": false, "isPure": true, @@ -3640,21 +3640,21 @@ "typeString": "literal_string \"SafeMath: multiplication overflow\"" } ], - "id": 473, + "id": 509, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "2536:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 480, + "id": 516, "isConstant": false, "isLValue": false, "isPure": false, @@ -3668,48 +3668,48 @@ "typeString": "tuple()" } }, - "id": 481, + "id": 517, "nodeType": "ExpressionStatement", "src": "2536:56:3" }, { "expression": { "argumentTypes": null, - "id": 482, + "id": 518, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 468, + "referencedDeclaration": 504, "src": "2610:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 459, - "id": 483, + "functionReturnParameters": 495, + "id": 519, "nodeType": "Return", "src": "2603:8:3" } ] }, "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 485, + "id": 521, "implemented": true, "kind": "function", "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 456, + "id": 492, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 453, + "id": 489, "name": "a", "nodeType": "VariableDeclaration", - "scope": 485, + "scope": 521, "src": "2172:9:3", "stateVariable": false, "storageLocation": "default", @@ -3718,7 +3718,7 @@ "typeString": "uint256" }, "typeName": { - "id": 452, + "id": 488, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2172:7:3", @@ -3732,10 +3732,10 @@ }, { "constant": false, - "id": 455, + "id": 491, "name": "b", "nodeType": "VariableDeclaration", - "scope": 485, + "scope": 521, "src": "2183:9:3", "stateVariable": false, "storageLocation": "default", @@ -3744,7 +3744,7 @@ "typeString": "uint256" }, "typeName": { - "id": 454, + "id": 490, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2183:7:3", @@ -3760,15 +3760,15 @@ "src": "2171:22:3" }, "returnParameters": { - "id": 459, + "id": 495, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 458, + "id": 494, "name": "", "nodeType": "VariableDeclaration", - "scope": 485, + "scope": 521, "src": "2217:7:3", "stateVariable": false, "storageLocation": "default", @@ -3777,7 +3777,7 @@ "typeString": "uint256" }, "typeName": { - "id": 457, + "id": 493, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2217:7:3", @@ -3792,7 +3792,7 @@ ], "src": "2216:9:3" }, - "scope": 568, + "scope": 604, "src": "2159:459:3", "stateMutability": "pure", "superFunction": null, @@ -3800,7 +3800,7 @@ }, { "body": { - "id": 500, + "id": 536, "nodeType": "Block", "src": "3140:63:3", "statements": [ @@ -3810,11 +3810,11 @@ "arguments": [ { "argumentTypes": null, - "id": 495, + "id": 531, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 487, + "referencedDeclaration": 523, "src": "3161:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3823,11 +3823,11 @@ }, { "argumentTypes": null, - "id": 496, + "id": 532, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 489, + "referencedDeclaration": 525, "src": "3164:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3837,7 +3837,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 497, + "id": 533, "isConstant": false, "isLValue": false, "isPure": true, @@ -3868,21 +3868,21 @@ "typeString": "literal_string \"SafeMath: division by zero\"" } ], - "id": 494, + "id": 530, "name": "div", "nodeType": "Identifier", "overloadedDeclarations": [ - 501, - 528 + 537, + 564 ], - "referencedDeclaration": 528, + "referencedDeclaration": 564, "src": "3157:3:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 498, + "id": 534, "isConstant": false, "isLValue": false, "isPure": false, @@ -3896,30 +3896,30 @@ "typeString": "uint256" } }, - "functionReturnParameters": 493, - "id": 499, + "functionReturnParameters": 529, + "id": 535, "nodeType": "Return", "src": "3150:46:3" } ] }, "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 501, + "id": 537, "implemented": true, "kind": "function", "modifiers": [], "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 490, + "id": 526, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 487, + "id": 523, "name": "a", "nodeType": "VariableDeclaration", - "scope": 501, + "scope": 537, "src": "3086:9:3", "stateVariable": false, "storageLocation": "default", @@ -3928,7 +3928,7 @@ "typeString": "uint256" }, "typeName": { - "id": 486, + "id": 522, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3086:7:3", @@ -3942,10 +3942,10 @@ }, { "constant": false, - "id": 489, + "id": 525, "name": "b", "nodeType": "VariableDeclaration", - "scope": 501, + "scope": 537, "src": "3097:9:3", "stateVariable": false, "storageLocation": "default", @@ -3954,7 +3954,7 @@ "typeString": "uint256" }, "typeName": { - "id": 488, + "id": 524, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3097:7:3", @@ -3970,15 +3970,15 @@ "src": "3085:22:3" }, "returnParameters": { - "id": 493, + "id": 529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 492, + "id": 528, "name": "", "nodeType": "VariableDeclaration", - "scope": 501, + "scope": 537, "src": "3131:7:3", "stateVariable": false, "storageLocation": "default", @@ -3987,7 +3987,7 @@ "typeString": "uint256" }, "typeName": { - "id": 491, + "id": 527, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3131:7:3", @@ -4002,7 +4002,7 @@ ], "src": "3130:9:3" }, - "scope": 568, + "scope": 604, "src": "3073:130:3", "stateMutability": "pure", "superFunction": null, @@ -4010,7 +4010,7 @@ }, { "body": { - "id": 527, + "id": 563, "nodeType": "Block", "src": "3813:243:3", "statements": [ @@ -4024,18 +4024,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 515, + "id": 551, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 513, + "id": 549, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, + "referencedDeclaration": 541, "src": "3897:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4047,7 +4047,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 514, + "id": 550, "isConstant": false, "isLValue": false, "isPure": true, @@ -4070,11 +4070,11 @@ }, { "argumentTypes": null, - "id": 516, + "id": 552, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 507, + "referencedDeclaration": 543, "src": "3904:12:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4093,21 +4093,21 @@ "typeString": "string memory" } ], - "id": 512, + "id": 548, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "3889:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 517, + "id": 553, "isConstant": false, "isLValue": false, "isPure": false, @@ -4121,21 +4121,21 @@ "typeString": "tuple()" } }, - "id": 518, + "id": 554, "nodeType": "ExpressionStatement", "src": "3889:28:3" }, { "assignments": [ - 520 + 556 ], "declarations": [ { "constant": false, - "id": 520, + "id": 556, "name": "c", "nodeType": "VariableDeclaration", - "scope": 527, + "scope": 563, "src": "3927:9:3", "stateVariable": false, "storageLocation": "default", @@ -4144,7 +4144,7 @@ "typeString": "uint256" }, "typeName": { - "id": 519, + "id": 555, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3927:7:3", @@ -4157,25 +4157,25 @@ "visibility": "internal" } ], - "id": 524, + "id": 560, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 523, + "id": 559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 521, + "id": 557, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 503, + "referencedDeclaration": 539, "src": "3939:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4186,11 +4186,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 522, + "id": 558, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 505, + "referencedDeclaration": 541, "src": "3943:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4209,41 +4209,41 @@ { "expression": { "argumentTypes": null, - "id": 525, + "id": 561, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, + "referencedDeclaration": 556, "src": "4048:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 511, - "id": 526, + "functionReturnParameters": 547, + "id": 562, "nodeType": "Return", "src": "4041:8:3" } ] }, "documentation": "@dev Returns the integer division of two unsigned integers. Reverts with custom message on\ndivision by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.\n * _Available since v2.4.0._", - "id": 528, + "id": 564, "implemented": true, "kind": "function", "modifiers": [], "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 508, + "id": 544, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 503, + "id": 539, "name": "a", "nodeType": "VariableDeclaration", - "scope": 528, + "scope": 564, "src": "3731:9:3", "stateVariable": false, "storageLocation": "default", @@ -4252,7 +4252,7 @@ "typeString": "uint256" }, "typeName": { - "id": 502, + "id": 538, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3731:7:3", @@ -4266,10 +4266,10 @@ }, { "constant": false, - "id": 505, + "id": 541, "name": "b", "nodeType": "VariableDeclaration", - "scope": 528, + "scope": 564, "src": "3742:9:3", "stateVariable": false, "storageLocation": "default", @@ -4278,7 +4278,7 @@ "typeString": "uint256" }, "typeName": { - "id": 504, + "id": 540, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3742:7:3", @@ -4292,10 +4292,10 @@ }, { "constant": false, - "id": 507, + "id": 543, "name": "errorMessage", "nodeType": "VariableDeclaration", - "scope": 528, + "scope": 564, "src": "3753:26:3", "stateVariable": false, "storageLocation": "memory", @@ -4304,7 +4304,7 @@ "typeString": "string" }, "typeName": { - "id": 506, + "id": 542, "name": "string", "nodeType": "ElementaryTypeName", "src": "3753:6:3", @@ -4320,15 +4320,15 @@ "src": "3730:50:3" }, "returnParameters": { - "id": 511, + "id": 547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 510, + "id": 546, "name": "", "nodeType": "VariableDeclaration", - "scope": 528, + "scope": 564, "src": "3804:7:3", "stateVariable": false, "storageLocation": "default", @@ -4337,7 +4337,7 @@ "typeString": "uint256" }, "typeName": { - "id": 509, + "id": 545, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3804:7:3", @@ -4352,7 +4352,7 @@ ], "src": "3803:9:3" }, - "scope": 568, + "scope": 604, "src": "3718:338:3", "stateMutability": "pure", "superFunction": null, @@ -4360,7 +4360,7 @@ }, { "body": { - "id": 543, + "id": 579, "nodeType": "Block", "src": "4567:61:3", "statements": [ @@ -4370,11 +4370,11 @@ "arguments": [ { "argumentTypes": null, - "id": 538, + "id": 574, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 530, + "referencedDeclaration": 566, "src": "4588:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4383,11 +4383,11 @@ }, { "argumentTypes": null, - "id": 539, + "id": 575, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 532, + "referencedDeclaration": 568, "src": "4591:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4397,7 +4397,7 @@ { "argumentTypes": null, "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 540, + "id": 576, "isConstant": false, "isLValue": false, "isPure": true, @@ -4428,21 +4428,21 @@ "typeString": "literal_string \"SafeMath: modulo by zero\"" } ], - "id": 537, + "id": 573, "name": "mod", "nodeType": "Identifier", "overloadedDeclarations": [ - 544, - 567 + 580, + 603 ], - "referencedDeclaration": 567, + "referencedDeclaration": 603, "src": "4584:3:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 541, + "id": 577, "isConstant": false, "isLValue": false, "isPure": false, @@ -4456,30 +4456,30 @@ "typeString": "uint256" } }, - "functionReturnParameters": 536, - "id": 542, + "functionReturnParameters": 572, + "id": 578, "nodeType": "Return", "src": "4577:44:3" } ] }, "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 544, + "id": 580, "implemented": true, "kind": "function", "modifiers": [], "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 533, + "id": 569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 530, + "id": 566, "name": "a", "nodeType": "VariableDeclaration", - "scope": 544, + "scope": 580, "src": "4513:9:3", "stateVariable": false, "storageLocation": "default", @@ -4488,7 +4488,7 @@ "typeString": "uint256" }, "typeName": { - "id": 529, + "id": 565, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4513:7:3", @@ -4502,10 +4502,10 @@ }, { "constant": false, - "id": 532, + "id": 568, "name": "b", "nodeType": "VariableDeclaration", - "scope": 544, + "scope": 580, "src": "4524:9:3", "stateVariable": false, "storageLocation": "default", @@ -4514,7 +4514,7 @@ "typeString": "uint256" }, "typeName": { - "id": 531, + "id": 567, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4524:7:3", @@ -4530,15 +4530,15 @@ "src": "4512:22:3" }, "returnParameters": { - "id": 536, + "id": 572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 535, + "id": 571, "name": "", "nodeType": "VariableDeclaration", - "scope": 544, + "scope": 580, "src": "4558:7:3", "stateVariable": false, "storageLocation": "default", @@ -4547,7 +4547,7 @@ "typeString": "uint256" }, "typeName": { - "id": 534, + "id": 570, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4558:7:3", @@ -4562,7 +4562,7 @@ ], "src": "4557:9:3" }, - "scope": 568, + "scope": 604, "src": "4500:128:3", "stateMutability": "pure", "superFunction": null, @@ -4570,7 +4570,7 @@ }, { "body": { - "id": 566, + "id": 602, "nodeType": "Block", "src": "5227:68:3", "statements": [ @@ -4584,18 +4584,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 558, + "id": 594, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 556, + "id": 592, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 548, + "referencedDeclaration": 584, "src": "5245:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4607,7 +4607,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 557, + "id": 593, "isConstant": false, "isLValue": false, "isPure": true, @@ -4630,11 +4630,11 @@ }, { "argumentTypes": null, - "id": 559, + "id": 595, "name": "errorMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 550, + "referencedDeclaration": 586, "src": "5253:12:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -4653,21 +4653,21 @@ "typeString": "string memory" } ], - "id": 555, + "id": 591, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1060, - 1061 + 1096, + 1097 ], - "referencedDeclaration": 1061, + "referencedDeclaration": 1097, "src": "5237:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 560, + "id": 596, "isConstant": false, "isLValue": false, "isPure": false, @@ -4681,7 +4681,7 @@ "typeString": "tuple()" } }, - "id": 561, + "id": 597, "nodeType": "ExpressionStatement", "src": "5237:29:3" }, @@ -4692,18 +4692,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 564, + "id": 600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 562, + "id": 598, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 546, + "referencedDeclaration": 582, "src": "5283:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4714,11 +4714,11 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 563, + "id": 599, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 548, + "referencedDeclaration": 584, "src": "5287:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4731,30 +4731,30 @@ "typeString": "uint256" } }, - "functionReturnParameters": 554, - "id": 565, + "functionReturnParameters": 590, + "id": 601, "nodeType": "Return", "src": "5276:12:3" } ] }, "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts with custom message when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.\n * _Available since v2.4.0._", - "id": 567, + "id": 603, "implemented": true, "kind": "function", "modifiers": [], "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 551, + "id": 587, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 546, + "id": 582, "name": "a", "nodeType": "VariableDeclaration", - "scope": 567, + "scope": 603, "src": "5145:9:3", "stateVariable": false, "storageLocation": "default", @@ -4763,7 +4763,7 @@ "typeString": "uint256" }, "typeName": { - "id": 545, + "id": 581, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5145:7:3", @@ -4777,10 +4777,10 @@ }, { "constant": false, - "id": 548, + "id": 584, "name": "b", "nodeType": "VariableDeclaration", - "scope": 567, + "scope": 603, "src": "5156:9:3", "stateVariable": false, "storageLocation": "default", @@ -4789,7 +4789,7 @@ "typeString": "uint256" }, "typeName": { - "id": 547, + "id": 583, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5156:7:3", @@ -4803,10 +4803,10 @@ }, { "constant": false, - "id": 550, + "id": 586, "name": "errorMessage", "nodeType": "VariableDeclaration", - "scope": 567, + "scope": 603, "src": "5167:26:3", "stateVariable": false, "storageLocation": "memory", @@ -4815,7 +4815,7 @@ "typeString": "string" }, "typeName": { - "id": 549, + "id": 585, "name": "string", "nodeType": "ElementaryTypeName", "src": "5167:6:3", @@ -4831,15 +4831,15 @@ "src": "5144:50:3" }, "returnParameters": { - "id": 554, + "id": 590, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 553, + "id": 589, "name": "", "nodeType": "VariableDeclaration", - "scope": 567, + "scope": 603, "src": "5218:7:3", "stateVariable": false, "storageLocation": "default", @@ -4848,7 +4848,7 @@ "typeString": "uint256" }, "typeName": { - "id": 552, + "id": 588, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5218:7:3", @@ -4863,14 +4863,14 @@ ], "src": "5217:9:3" }, - "scope": 568, + "scope": 604, "src": "5132:163:3", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 569, + "scope": 605, "src": "589:4708:3" } ], @@ -4882,7 +4882,7 @@ }, "networks": {}, "schemaVersion": "3.0.19", - "updatedAt": "2019-12-29T01:52:30.753Z", + "updatedAt": "2020-02-18T05:14:13.973Z", "devdoc": { "details": "Wrappers over Solidity's arithmetic operations with added overflow checks. * Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. * Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.", "methods": {} diff --git a/contracts/DECA_ERC20_0.5.3.sol b/contracts/DECA.sol similarity index 87% rename from contracts/DECA_ERC20_0.5.3.sol rename to contracts/DECA.sol index 89b78b9..7652c32 100644 --- a/contracts/DECA_ERC20_0.5.3.sol +++ b/contracts/DECA.sol @@ -1,6 +1,7 @@ pragma solidity 0.5.12; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/math/SafeMath.sol"; // ---------------------------------------------------------------------------- // 'DECA' DEcentralized CArbon tokens - ITDE (initial token distribution event) @@ -88,7 +89,7 @@ contract Ownable is Context { // ERC20 Token, with the addition of symbol, name and decimals and assisted // token transfers // ---------------------------------------------------------------------------- -contract DECAToken is ERC20, Ownable { +contract DECA is ERC20, Ownable { using SafeMath for uint256; string constant public symbol = "DECA"; string constant public name = "DEcentralized CArbon tokens"; @@ -98,25 +99,39 @@ contract DECAToken is ERC20, Ownable { uint public bonus1Ends = now + 3 weeks; uint public bonus2Ends = now + 6 weeks; uint public endDate = now + 11 weeks; + bool private _pause = false; + + modifier notPaused() { + require(!_pause, "crowdsale on pause"); + _; + } + function getPause() view public returns (bool){ + return _pause; + } + + function setPause(bool p) external onlyOwner { + _pause = p; + } // ------------------------------------------------------------------------ // 100 DECA Tokens per 1 ETH // ------------------------------------------------------------------------ - function() external payable { + function() notPaused external payable { require(now <= endDate); uint tokens; uint toOwner; uint toSender; uint divBy; - divBy = 40; //2.5% extra printed to be 2% of the marketcap, please see README.md + divBy = 40; + //2.5% extra printed to be 2% of the marketcap, please see README.md if (now <= preICOEnds) { - tokens = msg.value * 200; + tokens = msg.value * 300; } else if (now > preICOEnds && now <= bonus1Ends) { - tokens = msg.value * 150; + tokens = msg.value * 275; } else if (now > bonus1Ends && now <= bonus2Ends) { - tokens = msg.value * 125; + tokens = msg.value * 250; } else { - tokens = msg.value * 100; + tokens = msg.value * 225; } toOwner = tokens.div(divBy); diff --git a/contracts/Migrations.sol b/contracts/Migrations.sol index 51dcdc1..3897851 100644 --- a/contracts/Migrations.sol +++ b/contracts/Migrations.sol @@ -1,4 +1,5 @@ -pragma solidity >=0.4.21 <0.7.0; +pragma solidity 0.5.12; +//pragma solidity 0.5.16; contract Migrations { address public owner; diff --git a/migrations/2_deploy_contracts.js b/migrations/2_deploy_contracts.js new file mode 100644 index 0000000..d590486 --- /dev/null +++ b/migrations/2_deploy_contracts.js @@ -0,0 +1,8 @@ +const DECA = artifacts.require("DECA"); +module.exports = function (deployer) { + module.exports = function (deployer) { + deployer.deploy(DECA, { + gas: 6712390 + }); + }; +}; diff --git a/migrations/2_deploy_tokens.js b/migrations/2_deploy_tokens.js deleted file mode 100644 index c27d552..0000000 --- a/migrations/2_deploy_tokens.js +++ /dev/null @@ -1,8 +0,0 @@ -var DECAToken = artifacts.require("DECAToken"); - -module.exports = function(deployer) { - const name = "DEcentralized CArbon tokens"; - const symbol = "DECA"; - const decimals = 18; - deployer.deploy(DECAToken, name, symbol, decimals); -}; diff --git a/run-rpc.sh b/run-rpc.sh new file mode 100755 index 0000000..a20a02f --- /dev/null +++ b/run-rpc.sh @@ -0,0 +1,81 @@ +#!/bin/bash + + # We define 10 accounts with balance 1M ether, needed for high-value tests. + accounts=( + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501200,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501201,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501202,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501203,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501204,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501205,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501206,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501207,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501208,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501209,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501210,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501211,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501212,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501213,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501214,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501215,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501216,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501217,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501218,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501219,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501220,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501221,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501222,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501223,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501224,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501225,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501226,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501227,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501228,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501229,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501230,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501231,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501232,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501233,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501234,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501235,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501236,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501237,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501238,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501239,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501230,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501240,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501241,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501242,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501243,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501244,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501245,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501246,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501247,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501248,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501249,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501250,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501251,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501252,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501253,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501254,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501255,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501256,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501257,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501258,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501259,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501350,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501351,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501352,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501353,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501354,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501355,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501356,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501357,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501358,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501359,999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999" + ) + +/usr/local/bin/ganache-cli "${accounts[@]}" --gasPrice 1 + + + diff --git a/test/DECA.js b/test/DECA.js new file mode 100644 index 0000000..f90e7c0 --- /dev/null +++ b/test/DECA.js @@ -0,0 +1,270 @@ +const DECA = artifacts.require('./DECA.sol') + +// fix legacy web3 bugs +web3.toAsciiOriginal = web3.toAscii; +web3.toAscii = function (input) { + return web3.toAsciiOriginal(input).replace(/\u0000/g, '') +} + +let accCounter = 0; + +function increaseTime(duration) { + const id = Date.now() + + return new Promise((resolve, reject) => { + web3.currentProvider.send({ + jsonrpc: '2.0', + method: 'evm_increaseTime', + params: [duration], + id: id, + }, err1 => { + if (err1) return reject(err1) + + web3.currentProvider.send({ + jsonrpc: '2.0', + method: 'evm_mine', + id: id + 1, + }, (err2, res) => { + return err2 ? reject(err2) : resolve(res) + }) + }) + }) +} + +function latestTime() { + return web3.eth.getBlock('latest').timestamp; +} + +//bypass testrpc bug +async function getHighBalance() { + var accounts = await web3.eth.getAccounts(); + var acc = accounts[accCounter]; + console.dir(acc) + var b = await web3.eth.getBalance(acc); + + console.dir(b) + let high = { + "address": acc, + "balance": b + } + accCounter++; + + return high; +} + +const duration = { + seconds: function (val) { + return val + }, + minutes: function (val) { + return val * this.seconds(60) + }, + hours: function (val) { + return val * this.minutes(60) + }, + days: function (val) { + return val * this.hours(24) + }, + weeks: function (val) { + return val * this.days(7) + }, + years: function (val) { + return val * this.days(365) + } +}; + + +contract('DECA', function (accs) { + beforeEach(async function () { + this.creator = await getHighBalance(); + + this.deca = await DECA.new({ + from: this.creator.address, + gas: 6712390 + }) + + }), + describe('check pause', function () { + it('should get/set pause', async function () { + let p = await this.deca.getPause.call(); + assert.equal(false, p, "pause should be disabled") + await this.deca.setPause(true, {from: this.creator.address, gas: 6712390}) + p = await this.deca.getPause.call(); + assert.equal(true, p, "pause should be enabled") + }) + it('should fail on pay', async function () { + await this.deca.setPause(true, {from: this.creator.address, gas: 6712390}) + let wasErr = false; + try { + let rs = await web3.eth.sendTransaction({ + from: this.creator.address, + to: this.deca.address, + value: 225, + gas: 6712390 + }); + } catch (err) { + wasErr = true; + } + await this.deca.setPause(false, {from: this.creator.address, gas: 6712390}) + + wasErr = false; + try { + let rs = await web3.eth.sendTransaction({ + from: this.creator.address, + to: this.deca.address, + value: 225, + gas: 6712390 + }); + } catch (err) { + wasErr = true; + } + assert.equal(false, wasErr, "pause should work") + }) + it('check intruder pause', async function () { + var sender = await getHighBalance(); + await increaseTime(duration.days(1)) + await web3.eth.sendTransaction({ + from: sender.address, + to: this.deca.address, + value: 1, + gas: 6712390 + }); + let wasErr = false; + try { + await this.deca.setPause(true, {from: sender.address, gas: 6712390}) + } catch (err) { + wasErr = true; + } + assert.equal(true, wasErr, "only owner could pause") + let own = await this.deca.owner(); + assert.equal(this.creator.address, own, "owner does not match") + }) + + }) + + describe('check crowdsale dates', function () { + it('check preICOEnds', async function () { + var sender = await getHighBalance(); + await increaseTime(duration.days(1)) + await web3.eth.sendTransaction({ + from: sender.address, + to: this.deca.address, + value: 1, + gas: 6712390 + }); + let bonus2Ends = await this.deca.balanceOf.call(sender.address) + + assert.equal(bonus2Ends.toString(10), '300', "preICOEnds wrong token balance") + }) + it('check bonus1Ends', async function () { + var sender = await getHighBalance(); + await increaseTime(duration.days(7) + duration.hours(1)) + await web3.eth.sendTransaction({ + from: sender.address, + to: this.deca.address, + value: 1, + gas: 6712390 + }); + let bonus2Ends = await this.deca.balanceOf.call(sender.address) + + assert.equal(bonus2Ends.toString(10), '275', "bonus1Ends wrong token balance") + }) + it('check bonus2Ends', async function () { + var sender = await getHighBalance(); + await increaseTime(duration.weeks(3) + duration.hours(1)) + await web3.eth.sendTransaction({ + from: sender.address, + to: this.deca.address, + value: 1, + gas: 6712390 + }); + let bonus2Ends = await this.deca.balanceOf.call(sender.address) + + assert.equal(bonus2Ends.toString(10), '250', "bonus2Ends wrong token balance") + }) + it('check endDate', async function () { + await increaseTime(duration.weeks(11) + duration.hours(1)) + + let wasErr = false; + try { + let rs = await web3.eth.sendTransaction({ + from: this.creator.address, + to: this.deca.address, + value: 225, + gas: 6712390 + }); + } catch (err) { + wasErr = true; + } + + assert.equal(true, wasErr, "crowdsale should be stopped") + }) + + }) + describe('transferAnyERC20Token', async function () { + it('check transfer from external', async function () { + this.deca2 = await DECA.new({ + from: this.creator.address, + gas: 6712390 + }) + + var sender = await getHighBalance(); + await web3.eth.sendTransaction({ + from: sender.address, + to: this.deca2.address, + value: 1, + gas: 6712390 + }); + let deca2Balance = await this.deca2.balanceOf.call(sender.address) + console.log('DECA2 BALANCE : ', deca2Balance.toString(10)) + + assert.equal(deca2Balance.toString(10), '300', " sender should have balance") + + let wasErr = false; + try { + let ok = await this.deca.transferAnyERC20Token(this.deca2.address, 1, { + from: this.creator.address, + gas: 6712390 + }) + assert.equal(true, ok, "transferAnyERC20Token should return positive result") + } catch (err) { + console.dir(err) + wasErr = true; + } + deca2Balance = await this.deca2.balanceOf.call(sender.address) + + assert.equal(deca2Balance.toString(10), '0', " sender should have 0 on balance") + }) + }) + describe('check payout', async function () { + it('check getETH', async function () { + let decaBalance = await web3.eth.getBalance(this.deca.address); + assert.equal(decaBalance.toString(10), '0', " wrong contract balance") + var sender = await getHighBalance(); + await web3.eth.sendTransaction({ + from: sender.address, + to: this.deca.address, + value: 1000, + gas: 6712390 + }); + decaBalance = await web3.eth.getBalance(this.deca.address); + assert.equal(decaBalance.toString(10), '1000', " wrong contract balance") + let senderTokenBalance = await this.deca.balanceOf.call(sender.address) + assert.equal(senderTokenBalance.toString(10), '200000', " wrong sender balance") + await increaseTime(duration.weeks(12)); + let wasErr = false; + try { + await this.deca.getETH({from: this.creator.address, gas: 6712390}) + } catch (err) { + console.dir(err) + wasErr = true; + } + assert.equal(false, wasErr, "getETH not possible to test because of bug in truffle, check status of bug: https://github.com/trufflesuite/truffle/issues/2811") + decaBalance = await web3.eth.getBalance(this.deca.address); + assert.equal(decaBalance.toString(10), '0', " balance of the DECA expected to be empty") + + + }) + }) + +}) diff --git a/truffle-config.js b/truffle-config.js deleted file mode 100644 index 7a2f50a..0000000 --- a/truffle-config.js +++ /dev/null @@ -1,93 +0,0 @@ -/** - * Use this file to configure your truffle project. It's seeded with some - * common settings for different networks and features like migrations, - * compilation and testing. Uncomment the ones you need or modify - * them to suit your project as necessary. - * - * More information about configuration can be found at: - * - * truffleframework.com/docs/advanced/configuration - * - * To deploy via Infura you'll need a wallet provider (like truffle-hdwallet-provider) - * to sign your transactions before they're sent to a remote public node. Infura accounts - * are available for free at: infura.io/register. - * - * You'll also need a mnemonic - the twelve word phrase the wallet uses to generate - * public/private key pairs. If you're publishing your code to GitHub make sure you load this - * phrase from a file you've .gitignored so it doesn't accidentally become public. - * - */ - -// const HDWalletProvider = require('truffle-hdwallet-provider'); -// const infuraKey = "fj4jll3k....."; -// -// const fs = require('fs'); -// const mnemonic = fs.readFileSync(".secret").toString().trim(); - -module.exports = { - /** - * Networks define how you connect to your ethereum client and let you set the - * defaults web3 uses to send transactions. If you don't specify one truffle - * will spin up a development blockchain for you on port 9545 when you - * run `develop` or `test`. You can ask a truffle command to use a specific - * network from the command line, e.g - * - * $ truffle test --network - */ - - networks: { - // Useful for testing. The `development` name is special - truffle uses it by default - // if it's defined here and no other network is specified at the command line. - // You should run a client (like ganache-cli, geth or parity) in a separate terminal - // tab if you use this network and you must also set the `host`, `port` and `network_id` - // options below to some value. - // - // development: { - // host: "127.0.0.1", // Localhost (default: none) - // port: 8545, // Standard Ethereum port (default: none) - // network_id: "*", // Any network (default: none) - // }, - - // Another network with more advanced options... - // advanced: { - // port: 8777, // Custom port - // network_id: 1342, // Custom network - // gas: 8500000, // Gas sent with each transaction (default: ~6700000) - // gasPrice: 20000000000, // 20 gwei (in wei) (default: 100 gwei) - // from:
, // Account to send txs from (default: accounts[0]) - // websockets: true // Enable EventEmitter interface for web3 (default: false) - // }, - - // Useful for deploying to a public network. - // NB: It's important to wrap the provider as a function. - // ropsten: { - // provider: () => new HDWalletProvider(mnemonic, `https://ropsten.infura.io/v3/YOUR-PROJECT-ID`), - // network_id: 3, // Ropsten's id - // gas: 5500000, // Ropsten has a lower block limit than mainnet - // confirmations: 2, // # of confs to wait between deployments. (default: 0) - // timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50) - // skipDryRun: true // Skip dry run before migrations? (default: false for public nets ) - // }, - - // Useful for private networks - // private: { - // provider: () => new HDWalletProvider(mnemonic, `https://network.io`), - // network_id: 2111, // This network is yours, in the cloud. - // production: true // Treats this network as if it was a public net. (default: false) - // } - - development: { - host: "localhost", - port: 8545, - network_id: "*", - gas: 6712390 - } - - }, - - // Set default mocha options here, use special reporters etc. - mocha: { - // timeout: 100000 - }, - -} diff --git a/truffle.js b/truffle.js new file mode 100644 index 0000000..0e0530d --- /dev/null +++ b/truffle.js @@ -0,0 +1,16 @@ +module.exports = { + networks: { + development: { + host: "localhost", + port: 8545, + network_id: "*", + gas: 6712390 + }, + ropsten: { + network_id: 3, + host: "localhost", + port: 8545, + gas: 2900000 + } + } +};