{ "contractName": "DECA", "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": [ { "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", "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" }, { "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": [], "name": "getETH", "outputs": [], "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" } ], "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/Dev/git/neetsec/dcc/contracts/DECA.sol", "exportedSymbols": { "DECA": [ 333 ], "Ownable": [ 118 ] }, "id": 334, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "0.5", ".12" ], "nodeType": "PragmaDirective", "src": "0:23:0" }, { "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "id": 2, "nodeType": "ImportDirective", "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": 4, "nodeType": "ImportDirective", "scope": 334, "sourceUnit": 605, "src": "138:51:0", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 5, "name": "Context", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 417, "src": "839:7:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Context_$417", "typeString": "contract Context" } }, "id": 6, "nodeType": "InheritanceSpecifier", "src": "839:7:0" } ], "contractDependencies": [ 417 ], "contractKind": "contract", "documentation": "@dev The reason using this instead of openzeppelin, because owner are not 'payable'", "fullyImplemented": true, "id": 118, "linearizedBaseContracts": [ 118, 417 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 8, "name": "_owner", "nodeType": "VariableDeclaration", "scope": 118, "src": "853:30:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 7, "name": "address", "nodeType": "ElementaryTypeName", "src": "853:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "value": null, "visibility": "private" }, { "id": 11, "libraryName": { "contractScope": null, "id": 9, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 604, "src": "895:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "889:27:0", "typeName": { "id": 10, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "908:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "anonymous": false, "documentation": null, "id": 17, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { "id": 16, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", "scope": 17, "src": "949:29:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12, "name": "address", "nodeType": "ElementaryTypeName", "src": "949:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 15, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 17, "src": "980:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 14, "name": "address", "nodeType": "ElementaryTypeName", "src": "980:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "948:57:0" }, "src": "922:84:0" }, { "body": { "id": 32, "nodeType": "Block", "src": "1132:93:0", "statements": [ { "expression": { "argumentTypes": null, "id": 23, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 20, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "1142:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 21, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 405, "src": "1151:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 22, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1151:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "1142:21:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 24, "nodeType": "ExpressionStatement", "src": "1142:21:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 27, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1207:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1199:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 28, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1199:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 29, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "1211:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 25, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17, "src": "1178:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 30, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1178:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 31, "nodeType": "EmitStatement", "src": "1173:45:0" } ] }, "documentation": "@dev Initializes the contract setting the deployer as the initial owner.", "id": 33, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 18, "nodeType": "ParameterList", "parameters": [], "src": "1120:2: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": 40, "nodeType": "Block", "src": "1356:30:0", "statements": [ { "expression": { "argumentTypes": null, "id": 38, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "1373:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "functionReturnParameters": 37, "id": 39, "nodeType": "Return", "src": "1366:13:0" } ] }, "documentation": "@dev Returns the address of the current owner.", "id": 41, "implemented": true, "kind": "function", "modifiers": [], "name": "owner", "nodeType": "FunctionDefinition", "parameters": { "id": 34, "nodeType": "ParameterList", "parameters": [], "src": "1315:2:0" }, "returnParameters": { "id": 37, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 36, "name": "", "nodeType": "VariableDeclaration", "scope": 41, "src": "1339:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 35, "name": "address", "nodeType": "ElementaryTypeName", "src": "1339:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "value": null, "visibility": "internal" } ], "src": "1338:17:0" }, "scope": 118, "src": "1301:85:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 50, "nodeType": "Block", "src": "1495:82:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 44, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62, "src": "1513:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, "id": 45, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1513:9:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", "id": 46, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1524:34:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\"" }, "value": "Ownable: caller is not the owner" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], "id": 43, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1096, 1097 ], "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": 47, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1505:54:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 48, "nodeType": "ExpressionStatement", "src": "1505:54:0" }, { "id": 49, "nodeType": "PlaceholderStatement", "src": "1569:1:0" } ] }, "documentation": "@dev Throws if called by any account other than the owner.", "id": 51, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { "id": 42, "nodeType": "ParameterList", "parameters": [], "src": "1492:2:0" }, "src": "1474:103:0", "visibility": "internal" }, { "body": { "id": 61, "nodeType": "Block", "src": "1706:46:0", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "id": 59, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 56, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 405, "src": "1723:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 57, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1723:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 58, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "1739:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "1723:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 55, "id": 60, "nodeType": "Return", "src": "1716:29:0" } ] }, "documentation": "@dev Returns true if the caller is the current owner.", "id": 62, "implemented": true, "kind": "function", "modifiers": [], "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { "id": 52, "nodeType": "ParameterList", "parameters": [], "src": "1676:2:0" }, "returnParameters": { "id": 55, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 54, "name": "", "nodeType": "VariableDeclaration", "scope": 62, "src": "1700:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 53, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1700:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1699:6:0" }, "scope": 118, "src": "1660:92:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 80, "nodeType": "Block", "src": "2140:91:0", "statements": [ { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 68, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "2176:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 70, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2192:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 69, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2184:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 71, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2184:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 67, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17, "src": "2155:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 72, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2155:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 73, "nodeType": "EmitStatement", "src": "2150:45:0" }, { "expression": { "argumentTypes": null, "id": 78, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 74, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "2205:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 76, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2222:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 75, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2214:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 77, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2214:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "2205:19:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 79, "nodeType": "ExpressionStatement", "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": 81, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 65, "modifierName": { "argumentTypes": null, "id": 64, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "2130:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2130:9:0" } ], "name": "renounceOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 63, "nodeType": "ParameterList", "parameters": [], "src": "2120:2:0" }, "returnParameters": { "id": 66, "nodeType": "ParameterList", "parameters": [], "src": "2140:0:0" }, "scope": 118, "src": "2094:137:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 92, "nodeType": "Block", "src": "2450:45:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 89, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 83, "src": "2479:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 88, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 117, "src": "2460:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, "id": 90, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2460:28:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 91, "nodeType": "ExpressionStatement", "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": 93, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 86, "modifierName": { "argumentTypes": null, "id": 85, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "2440:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2440:9:0" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 84, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 83, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 93, "src": "2407:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 82, "name": "address", "nodeType": "ElementaryTypeName", "src": "2407:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "value": null, "visibility": "internal" } ], "src": "2406:26:0" }, "returnParameters": { "id": 87, "nodeType": "ParameterList", "parameters": [], "src": "2450:0:0" }, "scope": 118, "src": "2380:115:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 116, "nodeType": "Block", "src": "2659:170:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "id": 103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 99, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 95, "src": "2677:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2697:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 100, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2689:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 102, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2689:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "2677:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", "id": 104, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2701:40:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\"" }, "value": "Ownable: new owner is the zero address" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], "id": 98, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1096, 1097 ], "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": 105, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2669:73:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 106, "nodeType": "ExpressionStatement", "src": "2669:73:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 108, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "2778:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 109, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 95, "src": "2786:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 107, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17, "src": "2757:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 110, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2757:38:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 111, "nodeType": "EmitStatement", "src": "2752:43:0" }, { "expression": { "argumentTypes": null, "id": 114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 112, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "2805:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 113, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 95, "src": "2814:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "2805:17:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 115, "nodeType": "ExpressionStatement", "src": "2805:17:0" } ] }, "documentation": "@dev Transfers ownership of the contract to a new account (`newOwner`).", "id": 117, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 96, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 95, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 117, "src": "2624:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 94, "name": "address", "nodeType": "ElementaryTypeName", "src": "2624:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "value": null, "visibility": "internal" } ], "src": "2623:26:0" }, "returnParameters": { "id": 97, "nodeType": "ParameterList", "parameters": [], "src": "2659:0:0" }, "scope": 118, "src": "2596:233:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], "scope": 334, "src": "819:2012:0" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 119, "name": "ERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1009, "src": "3105:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$1009", "typeString": "contract ERC20" } }, "id": 120, "nodeType": "InheritanceSpecifier", "src": "3105:5:0" }, { "arguments": null, "baseName": { "contractScope": null, "id": 121, "name": "Ownable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 118, "src": "3112:7:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Ownable_$118", "typeString": "contract Ownable" } }, "id": 122, "nodeType": "InheritanceSpecifier", "src": "3112:7:0" } ], "contractDependencies": [ 118, 417, 1009, 1078 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 333, "linearizedBaseContracts": [ 333, 118, 1009, 1078, 417 ], "name": "DECA", "nodeType": "ContractDefinition", "nodes": [ { "id": 125, "libraryName": { "contractScope": null, "id": 123, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 604, "src": "3132:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "3126:27:0", "typeName": { "id": 124, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3145:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "constant": true, "id": 128, "name": "symbol", "nodeType": "VariableDeclaration", "scope": 333, "src": "3158:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string" }, "typeName": { "id": 126, "name": "string", "nodeType": "ElementaryTypeName", "src": "3158:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "44454341", "id": 127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3190:6:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a49565813a43765a9dfdf315aaa77336d9844a752bb9a788d2dad0f019de1858", "typeString": "literal_string \"DECA\"" }, "value": "DECA" }, "visibility": "public" }, { "constant": true, "id": 131, "name": "name", "nodeType": "VariableDeclaration", "scope": 333, "src": "3202:59:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string" }, "typeName": { "id": 129, "name": "string", "nodeType": "ElementaryTypeName", "src": "3202:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "444563656e7472616c697a656420434172626f6e20746f6b656e73", "id": 130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3232:29:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a71fc6dd39cdb20c976c32b6365d2e473e0bcd38ac1af23f856facc675f989cb", "typeString": "literal_string \"DEcentralized CArbon tokens\"" }, "value": "DEcentralized CArbon tokens" }, "visibility": "public" }, { "constant": true, "id": 134, "name": "decimals", "nodeType": "VariableDeclaration", "scope": 333, "src": "3267:35:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 132, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3267:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": { "argumentTypes": null, "hexValue": "3138", "id": 133, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3300:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "visibility": "public" }, { "constant": false, "id": 139, "name": "preICOEnds", "nodeType": "VariableDeclaration", "scope": 333, "src": "3352:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 135, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3352:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 136, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "3377:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3383:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_604800_by_1", "typeString": "int_const 604800" }, "value": "1" }, "src": "3377:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "public" }, { "constant": false, "id": 144, "name": "bonus1Ends", "nodeType": "VariableDeclaration", "scope": 333, "src": "3396:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 140, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3396:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 141, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "3421:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "33", "id": 142, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3427:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_1814400_by_1", "typeString": "int_const 1814400" }, "value": "3" }, "src": "3421:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "public" }, { "constant": false, "id": 149, "name": "bonus2Ends", "nodeType": "VariableDeclaration", "scope": 333, "src": "3440:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 145, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3440:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 146, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "3465:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "36", "id": 147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3471:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_3628800_by_1", "typeString": "int_const 3628800" }, "value": "6" }, "src": "3465:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "public" }, { "constant": false, "id": 154, "name": "endDate", "nodeType": "VariableDeclaration", "scope": 333, "src": "3484:36:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 150, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3484:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 151, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "3506:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "3131", "id": 152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3512:8:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_6652800_by_1", "typeString": "int_const 6652800" }, "value": "11" }, "src": "3506:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "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": 166, "nodeType": "Block", "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": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 195, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 193, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4060:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 194, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 154, "src": "4067:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4060:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 192, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1096, 1097 ], "referencedDeclaration": 1096, "src": "4052:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 196, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4052:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 197, "nodeType": "ExpressionStatement", "src": "4052:23:0" }, { "assignments": [ 199 ], "declarations": [ { "constant": false, "id": 199, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 289, "src": "4085:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 198, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4085:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 200, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "4085:11:0" }, { "assignments": [ 202 ], "declarations": [ { "constant": false, "id": 202, "name": "toOwner", "nodeType": "VariableDeclaration", "scope": 289, "src": "4106:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 201, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4106:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 203, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "4106:12:0" }, { "assignments": [ 205 ], "declarations": [ { "constant": false, "id": 205, "name": "toSender", "nodeType": "VariableDeclaration", "scope": 289, "src": "4128:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 204, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4128:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 206, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "4128:13:0" }, { "assignments": [ 208 ], "declarations": [ { "constant": false, "id": 208, "name": "divBy", "nodeType": "VariableDeclaration", "scope": 289, "src": "4151:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 207, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4151:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 209, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "4151:10:0" }, { "expression": { "argumentTypes": null, "id": 212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 210, "name": "divBy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 208, "src": "4172:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "3430", "id": 211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4180:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_40_by_1", "typeString": "int_const 40" }, "value": "40" }, "src": "4172:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 213, "nodeType": "ExpressionStatement", "src": "4172:10:0" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 216, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 214, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4273:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 215, "name": "preICOEnds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 139, "src": "4280:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4273:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 225, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4351:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 226, "name": "preICOEnds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 139, "src": "4357:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4351:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 228, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4371:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 229, "name": "bonus1Ends", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, "src": "4378:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4371:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "4351:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 246, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 240, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4449:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 241, "name": "bonus1Ends", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, "src": "4455:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4449:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 243, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4469:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 244, "name": "bonus2Ends", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 149, "src": "4476:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4469:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "4449:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 262, "nodeType": "Block", "src": "4543:49:0", "statements": [ { "expression": { "argumentTypes": null, "id": 260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 255, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "4557:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 256, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "4566:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 257, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4566:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "hexValue": "323235", "id": 258, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4578:3:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_225_by_1", "typeString": "int_const 225" }, "value": "225" }, "src": "4566:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4557:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 261, "nodeType": "ExpressionStatement", "src": "4557:24:0" } ] }, "id": 263, "nodeType": "IfStatement", "src": "4445:147:0", "trueBody": { "id": 254, "nodeType": "Block", "src": "4488:49:0", "statements": [ { "expression": { "argumentTypes": null, "id": 252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 247, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "4502:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 248, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "4511:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4511:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "hexValue": "323530", "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4523:3:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_250_by_1", "typeString": "int_const 250" }, "value": "250" }, "src": "4511:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4502:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 253, "nodeType": "ExpressionStatement", "src": "4502:24:0" } ] } }, "id": 264, "nodeType": "IfStatement", "src": "4347:245:0", "trueBody": { "id": 239, "nodeType": "Block", "src": "4390:49:0", "statements": [ { "expression": { "argumentTypes": null, "id": 237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 232, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "4404:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 236, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 233, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "4413:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4413:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "hexValue": "323735", "id": 235, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4425:3:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_275_by_1", "typeString": "int_const 275" }, "value": "275" }, "src": "4413:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4404:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 238, "nodeType": "ExpressionStatement", "src": "4404:24:0" } ] } }, "id": 265, "nodeType": "IfStatement", "src": "4269:323:0", "trueBody": { "id": 224, "nodeType": "Block", "src": "4292:49:0", "statements": [ { "expression": { "argumentTypes": null, "id": 222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 217, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "4306:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 218, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "4315:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 219, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4315:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "hexValue": "333030", "id": 220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4327:3:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_300_by_1", "typeString": "int_const 300" }, "value": "300" }, "src": "4315:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4306:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 223, "nodeType": "ExpressionStatement", "src": "4306:24:0" } ] } }, { "expression": { "argumentTypes": null, "id": 271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 266, "name": "toOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 202, "src": "4602:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 269, "name": "divBy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 208, "src": "4623:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 267, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "4612:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", "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": 270, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4612:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4602:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 272, "nodeType": "ExpressionStatement", "src": "4602:27:0" }, { "expression": { "argumentTypes": null, "id": 275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 273, "name": "toSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 205, "src": "4721:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 274, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "4732:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4721:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 276, "nodeType": "ExpressionStatement", "src": "4721:17:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 278, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41, "src": "4796:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 279, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4796:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 280, "name": "toOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 202, "src": "4805:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 277, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 893, "src": "4790:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 281, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4790:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 282, "nodeType": "ExpressionStatement", "src": "4790:23:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 284, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "4829:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4829:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 286, "name": "toSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 205, "src": "4841:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 283, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 893, "src": "4823:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 287, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4823:27:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 288, "nodeType": "ExpressionStatement", "src": "4823:27:0" } ] }, "documentation": null, "id": 290, "implemented": true, "kind": "fallback", "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": 188, "nodeType": "ParameterList", "parameters": [], "src": "4012:2:0" }, "returnParameters": { "id": 191, "nodeType": "ParameterList", "parameters": [], "src": "4042:0:0" }, "scope": 333, "src": "4004:853:0", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { "id": 310, "nodeType": "Block", "src": "4944:154:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 296, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4962:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 297, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 154, "src": "4969:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4962:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 295, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1096, 1097 ], "referencedDeclaration": 1096, "src": "4954:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 299, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4954:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 300, "nodeType": "ExpressionStatement", "src": "4954:23:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 305, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1117, "src": "5077:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_DECA_$333", "typeString": "contract DECA" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_DECA_$333", "typeString": "contract DECA" } ], "id": 304, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5069:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 306, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5069:13:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5069:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 301, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41, "src": "5052:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 302, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5052:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5052:16:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 308, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5052:39:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 309, "nodeType": "ExpressionStatement", "src": "5052:39:0" } ] }, "documentation": null, "id": 311, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 293, "modifierName": { "argumentTypes": null, "id": 292, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "4934:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "4934:9:0" } ], "name": "getETH", "nodeType": "FunctionDefinition", "parameters": { "id": 291, "nodeType": "ParameterList", "parameters": [], "src": "4924:2:0" }, "returnParameters": { "id": 294, "nodeType": "ParameterList", "parameters": [], "src": "4944:0:0" }, "scope": 333, "src": "4909:189:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 331, "nodeType": "Block", "src": "5443:70:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 326, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41, "src": "5490:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 327, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5490:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 328, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 315, "src": "5499:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 323, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 313, "src": "5467:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 322, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1078, "src": "5460:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$1078_$", "typeString": "type(contract IERC20)" } }, "id": 324, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5460:20:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$1078", "typeString": "contract IERC20" } }, "id": 325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "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": 329, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5460:46:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 321, "id": 330, "nodeType": "Return", "src": "5453:53:0" } ] }, "documentation": null, "id": 332, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 318, "modifierName": { "argumentTypes": null, "id": 317, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "5410:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "5410:9:0" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { "id": 316, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 313, "name": "tokenAddress", "nodeType": "VariableDeclaration", "scope": 332, "src": "5360:28:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 312, "name": "address", "nodeType": "ElementaryTypeName", "src": "5360:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 315, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 332, "src": "5390:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 314, "name": "uint", "nodeType": "ElementaryTypeName", "src": "5390:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5359:43:0" }, "returnParameters": { "id": 321, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 320, "name": "success", "nodeType": "VariableDeclaration", "scope": 332, "src": "5429:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 319, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5429:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "5428:14:0" }, "scope": 333, "src": "5329:184:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 334, "src": "3088:2427:0" } ], "src": "0:5516:0" }, "legacyAST": { "absolutePath": "/home/p1r0/Dev/git/neetsec/dcc/contracts/DECA.sol", "exportedSymbols": { "DECA": [ 333 ], "Ownable": [ 118 ] }, "id": 334, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "0.5", ".12" ], "nodeType": "PragmaDirective", "src": "0:23:0" }, { "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "id": 2, "nodeType": "ImportDirective", "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": 4, "nodeType": "ImportDirective", "scope": 334, "sourceUnit": 605, "src": "138:51:0", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 5, "name": "Context", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 417, "src": "839:7:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Context_$417", "typeString": "contract Context" } }, "id": 6, "nodeType": "InheritanceSpecifier", "src": "839:7:0" } ], "contractDependencies": [ 417 ], "contractKind": "contract", "documentation": "@dev The reason using this instead of openzeppelin, because owner are not 'payable'", "fullyImplemented": true, "id": 118, "linearizedBaseContracts": [ 118, 417 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 8, "name": "_owner", "nodeType": "VariableDeclaration", "scope": 118, "src": "853:30:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 7, "name": "address", "nodeType": "ElementaryTypeName", "src": "853:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "value": null, "visibility": "private" }, { "id": 11, "libraryName": { "contractScope": null, "id": 9, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 604, "src": "895:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "889:27:0", "typeName": { "id": 10, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "908:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "anonymous": false, "documentation": null, "id": 17, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { "id": 16, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", "scope": 17, "src": "949:29:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12, "name": "address", "nodeType": "ElementaryTypeName", "src": "949:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 15, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 17, "src": "980:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 14, "name": "address", "nodeType": "ElementaryTypeName", "src": "980:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "948:57:0" }, "src": "922:84:0" }, { "body": { "id": 32, "nodeType": "Block", "src": "1132:93:0", "statements": [ { "expression": { "argumentTypes": null, "id": 23, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 20, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "1142:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 21, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 405, "src": "1151:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 22, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1151:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "1142:21:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 24, "nodeType": "ExpressionStatement", "src": "1142:21:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 27, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1207:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1199:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 28, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1199:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 29, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "1211:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 25, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17, "src": "1178:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 30, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1178:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 31, "nodeType": "EmitStatement", "src": "1173:45:0" } ] }, "documentation": "@dev Initializes the contract setting the deployer as the initial owner.", "id": 33, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 18, "nodeType": "ParameterList", "parameters": [], "src": "1120:2: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": 40, "nodeType": "Block", "src": "1356:30:0", "statements": [ { "expression": { "argumentTypes": null, "id": 38, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "1373:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "functionReturnParameters": 37, "id": 39, "nodeType": "Return", "src": "1366:13:0" } ] }, "documentation": "@dev Returns the address of the current owner.", "id": 41, "implemented": true, "kind": "function", "modifiers": [], "name": "owner", "nodeType": "FunctionDefinition", "parameters": { "id": 34, "nodeType": "ParameterList", "parameters": [], "src": "1315:2:0" }, "returnParameters": { "id": 37, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 36, "name": "", "nodeType": "VariableDeclaration", "scope": 41, "src": "1339:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 35, "name": "address", "nodeType": "ElementaryTypeName", "src": "1339:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "value": null, "visibility": "internal" } ], "src": "1338:17:0" }, "scope": 118, "src": "1301:85:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 50, "nodeType": "Block", "src": "1495:82:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 44, "name": "isOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62, "src": "1513:7:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, "id": 45, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1513:9:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", "id": 46, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1524:34:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\"" }, "value": "Ownable: caller is not the owner" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", "typeString": "literal_string \"Ownable: caller is not the owner\"" } ], "id": 43, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1096, 1097 ], "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": 47, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1505:54:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 48, "nodeType": "ExpressionStatement", "src": "1505:54:0" }, { "id": 49, "nodeType": "PlaceholderStatement", "src": "1569:1:0" } ] }, "documentation": "@dev Throws if called by any account other than the owner.", "id": 51, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { "id": 42, "nodeType": "ParameterList", "parameters": [], "src": "1492:2:0" }, "src": "1474:103:0", "visibility": "internal" }, { "body": { "id": 61, "nodeType": "Block", "src": "1706:46:0", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "id": 59, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 56, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 405, "src": "1723:10:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 57, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1723:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 58, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "1739:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "1723:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 55, "id": 60, "nodeType": "Return", "src": "1716:29:0" } ] }, "documentation": "@dev Returns true if the caller is the current owner.", "id": 62, "implemented": true, "kind": "function", "modifiers": [], "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { "id": 52, "nodeType": "ParameterList", "parameters": [], "src": "1676:2:0" }, "returnParameters": { "id": 55, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 54, "name": "", "nodeType": "VariableDeclaration", "scope": 62, "src": "1700:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 53, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1700:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1699:6:0" }, "scope": 118, "src": "1660:92:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 80, "nodeType": "Block", "src": "2140:91:0", "statements": [ { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 68, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "2176:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 70, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2192:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 69, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2184:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 71, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2184:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 67, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17, "src": "2155:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 72, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2155:40:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 73, "nodeType": "EmitStatement", "src": "2150:45:0" }, { "expression": { "argumentTypes": null, "id": 78, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 74, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "2205:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 76, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2222:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 75, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2214:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 77, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2214:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "2205:19:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 79, "nodeType": "ExpressionStatement", "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": 81, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 65, "modifierName": { "argumentTypes": null, "id": 64, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "2130:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2130:9:0" } ], "name": "renounceOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 63, "nodeType": "ParameterList", "parameters": [], "src": "2120:2:0" }, "returnParameters": { "id": 66, "nodeType": "ParameterList", "parameters": [], "src": "2140:0:0" }, "scope": 118, "src": "2094:137:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 92, "nodeType": "Block", "src": "2450:45:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 89, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 83, "src": "2479:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 88, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 117, "src": "2460:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, "id": 90, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2460:28:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 91, "nodeType": "ExpressionStatement", "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": 93, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 86, "modifierName": { "argumentTypes": null, "id": 85, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "2440:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2440:9:0" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 84, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 83, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 93, "src": "2407:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 82, "name": "address", "nodeType": "ElementaryTypeName", "src": "2407:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "value": null, "visibility": "internal" } ], "src": "2406:26:0" }, "returnParameters": { "id": 87, "nodeType": "ParameterList", "parameters": [], "src": "2450:0:0" }, "scope": 118, "src": "2380:115:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 116, "nodeType": "Block", "src": "2659:170:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "id": 103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 99, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 95, "src": "2677:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2697:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 100, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2689:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 102, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2689:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "2677:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", "id": 104, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2701:40:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\"" }, "value": "Ownable: new owner is the zero address" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", "typeString": "literal_string \"Ownable: new owner is the zero address\"" } ], "id": 98, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1096, 1097 ], "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": 105, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2669:73:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 106, "nodeType": "ExpressionStatement", "src": "2669:73:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 108, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "2778:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 109, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 95, "src": "2786:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 107, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17, "src": "2757:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 110, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2757:38:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 111, "nodeType": "EmitStatement", "src": "2752:43:0" }, { "expression": { "argumentTypes": null, "id": 114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 112, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "2805:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 113, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 95, "src": "2814:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "2805:17:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 115, "nodeType": "ExpressionStatement", "src": "2805:17:0" } ] }, "documentation": "@dev Transfers ownership of the contract to a new account (`newOwner`).", "id": 117, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 96, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 95, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 117, "src": "2624:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 94, "name": "address", "nodeType": "ElementaryTypeName", "src": "2624:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "value": null, "visibility": "internal" } ], "src": "2623:26:0" }, "returnParameters": { "id": 97, "nodeType": "ParameterList", "parameters": [], "src": "2659:0:0" }, "scope": 118, "src": "2596:233:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], "scope": 334, "src": "819:2012:0" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 119, "name": "ERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1009, "src": "3105:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$1009", "typeString": "contract ERC20" } }, "id": 120, "nodeType": "InheritanceSpecifier", "src": "3105:5:0" }, { "arguments": null, "baseName": { "contractScope": null, "id": 121, "name": "Ownable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 118, "src": "3112:7:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Ownable_$118", "typeString": "contract Ownable" } }, "id": 122, "nodeType": "InheritanceSpecifier", "src": "3112:7:0" } ], "contractDependencies": [ 118, 417, 1009, 1078 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 333, "linearizedBaseContracts": [ 333, 118, 1009, 1078, 417 ], "name": "DECA", "nodeType": "ContractDefinition", "nodes": [ { "id": 125, "libraryName": { "contractScope": null, "id": 123, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 604, "src": "3132:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$604", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "3126:27:0", "typeName": { "id": 124, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3145:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "constant": true, "id": 128, "name": "symbol", "nodeType": "VariableDeclaration", "scope": 333, "src": "3158:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string" }, "typeName": { "id": 126, "name": "string", "nodeType": "ElementaryTypeName", "src": "3158:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "44454341", "id": 127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3190:6:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a49565813a43765a9dfdf315aaa77336d9844a752bb9a788d2dad0f019de1858", "typeString": "literal_string \"DECA\"" }, "value": "DECA" }, "visibility": "public" }, { "constant": true, "id": 131, "name": "name", "nodeType": "VariableDeclaration", "scope": 333, "src": "3202:59:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string" }, "typeName": { "id": 129, "name": "string", "nodeType": "ElementaryTypeName", "src": "3202:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "444563656e7472616c697a656420434172626f6e20746f6b656e73", "id": 130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3232:29:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a71fc6dd39cdb20c976c32b6365d2e473e0bcd38ac1af23f856facc675f989cb", "typeString": "literal_string \"DEcentralized CArbon tokens\"" }, "value": "DEcentralized CArbon tokens" }, "visibility": "public" }, { "constant": true, "id": 134, "name": "decimals", "nodeType": "VariableDeclaration", "scope": 333, "src": "3267:35:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 132, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3267:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": { "argumentTypes": null, "hexValue": "3138", "id": 133, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3300:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "visibility": "public" }, { "constant": false, "id": 139, "name": "preICOEnds", "nodeType": "VariableDeclaration", "scope": 333, "src": "3352:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 135, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3352:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 136, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "3377:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3383:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_604800_by_1", "typeString": "int_const 604800" }, "value": "1" }, "src": "3377:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "public" }, { "constant": false, "id": 144, "name": "bonus1Ends", "nodeType": "VariableDeclaration", "scope": 333, "src": "3396:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 140, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3396:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 141, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "3421:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "33", "id": 142, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3427:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_1814400_by_1", "typeString": "int_const 1814400" }, "value": "3" }, "src": "3421:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "public" }, { "constant": false, "id": 149, "name": "bonus2Ends", "nodeType": "VariableDeclaration", "scope": 333, "src": "3440:38:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 145, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3440:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 146, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "3465:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "36", "id": 147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3471:7:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_3628800_by_1", "typeString": "int_const 3628800" }, "value": "6" }, "src": "3465:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "public" }, { "constant": false, "id": 154, "name": "endDate", "nodeType": "VariableDeclaration", "scope": 333, "src": "3484:36:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 150, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3484:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 151, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "3506:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "3131", "id": 152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3512:8:0", "subdenomination": "weeks", "typeDescriptions": { "typeIdentifier": "t_rational_6652800_by_1", "typeString": "int_const 6652800" }, "value": "11" }, "src": "3506:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "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": 166, "nodeType": "Block", "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": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 195, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 193, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4060:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 194, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 154, "src": "4067:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4060:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 192, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1096, 1097 ], "referencedDeclaration": 1096, "src": "4052:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 196, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4052:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 197, "nodeType": "ExpressionStatement", "src": "4052:23:0" }, { "assignments": [ 199 ], "declarations": [ { "constant": false, "id": 199, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 289, "src": "4085:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 198, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4085:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 200, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "4085:11:0" }, { "assignments": [ 202 ], "declarations": [ { "constant": false, "id": 202, "name": "toOwner", "nodeType": "VariableDeclaration", "scope": 289, "src": "4106:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 201, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4106:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 203, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "4106:12:0" }, { "assignments": [ 205 ], "declarations": [ { "constant": false, "id": 205, "name": "toSender", "nodeType": "VariableDeclaration", "scope": 289, "src": "4128:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 204, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4128:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 206, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "4128:13:0" }, { "assignments": [ 208 ], "declarations": [ { "constant": false, "id": 208, "name": "divBy", "nodeType": "VariableDeclaration", "scope": 289, "src": "4151:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 207, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4151:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 209, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "4151:10:0" }, { "expression": { "argumentTypes": null, "id": 212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 210, "name": "divBy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 208, "src": "4172:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "3430", "id": 211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4180:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_40_by_1", "typeString": "int_const 40" }, "value": "40" }, "src": "4172:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 213, "nodeType": "ExpressionStatement", "src": "4172:10:0" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 216, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 214, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4273:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 215, "name": "preICOEnds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 139, "src": "4280:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4273:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 225, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4351:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 226, "name": "preICOEnds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 139, "src": "4357:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4351:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 228, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4371:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 229, "name": "bonus1Ends", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, "src": "4378:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4371:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "4351:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 246, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 240, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4449:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 241, "name": "bonus1Ends", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, "src": "4455:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4449:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 243, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4469:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 244, "name": "bonus2Ends", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 149, "src": "4476:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4469:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "4449:37:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 262, "nodeType": "Block", "src": "4543:49:0", "statements": [ { "expression": { "argumentTypes": null, "id": 260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 255, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "4557:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 256, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "4566:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 257, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4566:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "hexValue": "323235", "id": 258, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4578:3:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_225_by_1", "typeString": "int_const 225" }, "value": "225" }, "src": "4566:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4557:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 261, "nodeType": "ExpressionStatement", "src": "4557:24:0" } ] }, "id": 263, "nodeType": "IfStatement", "src": "4445:147:0", "trueBody": { "id": 254, "nodeType": "Block", "src": "4488:49:0", "statements": [ { "expression": { "argumentTypes": null, "id": 252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 247, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "4502:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 248, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "4511:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4511:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "hexValue": "323530", "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4523:3:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_250_by_1", "typeString": "int_const 250" }, "value": "250" }, "src": "4511:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4502:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 253, "nodeType": "ExpressionStatement", "src": "4502:24:0" } ] } }, "id": 264, "nodeType": "IfStatement", "src": "4347:245:0", "trueBody": { "id": 239, "nodeType": "Block", "src": "4390:49:0", "statements": [ { "expression": { "argumentTypes": null, "id": 237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 232, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "4404:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 236, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 233, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "4413:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4413:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "hexValue": "323735", "id": 235, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4425:3:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_275_by_1", "typeString": "int_const 275" }, "value": "275" }, "src": "4413:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4404:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 238, "nodeType": "ExpressionStatement", "src": "4404:24:0" } ] } }, "id": 265, "nodeType": "IfStatement", "src": "4269:323:0", "trueBody": { "id": 224, "nodeType": "Block", "src": "4292:49:0", "statements": [ { "expression": { "argumentTypes": null, "id": 222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 217, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "4306:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 218, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "4315:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 219, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4315:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "hexValue": "333030", "id": 220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4327:3:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_300_by_1", "typeString": "int_const 300" }, "value": "300" }, "src": "4315:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4306:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 223, "nodeType": "ExpressionStatement", "src": "4306:24:0" } ] } }, { "expression": { "argumentTypes": null, "id": 271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 266, "name": "toOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 202, "src": "4602:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 269, "name": "divBy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 208, "src": "4623:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 267, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "4612:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", "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": 270, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4612:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4602:27:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 272, "nodeType": "ExpressionStatement", "src": "4602:27:0" }, { "expression": { "argumentTypes": null, "id": 275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 273, "name": "toSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 205, "src": "4721:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 274, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "4732:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4721:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 276, "nodeType": "ExpressionStatement", "src": "4721:17:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 278, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41, "src": "4796:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 279, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4796:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 280, "name": "toOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 202, "src": "4805:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 277, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 893, "src": "4790:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 281, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4790:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 282, "nodeType": "ExpressionStatement", "src": "4790:23:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 284, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "4829:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4829:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 286, "name": "toSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 205, "src": "4841:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 283, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 893, "src": "4823:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 287, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4823:27:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 288, "nodeType": "ExpressionStatement", "src": "4823:27:0" } ] }, "documentation": null, "id": 290, "implemented": true, "kind": "fallback", "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": 188, "nodeType": "ParameterList", "parameters": [], "src": "4012:2:0" }, "returnParameters": { "id": 191, "nodeType": "ParameterList", "parameters": [], "src": "4042:0:0" }, "scope": 333, "src": "4004:853:0", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { "id": 310, "nodeType": "Block", "src": "4944:154:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 296, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1095, "src": "4962:3:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 297, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 154, "src": "4969:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4962:14:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 295, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1096, 1097 ], "referencedDeclaration": 1096, "src": "4954:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 299, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4954:23:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 300, "nodeType": "ExpressionStatement", "src": "4954:23:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 305, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1117, "src": "5077:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_DECA_$333", "typeString": "contract DECA" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_DECA_$333", "typeString": "contract DECA" } ], "id": 304, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5069:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 306, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5069:13:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5069:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 301, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41, "src": "5052:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 302, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5052:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5052:16:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 308, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5052:39:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 309, "nodeType": "ExpressionStatement", "src": "5052:39:0" } ] }, "documentation": null, "id": 311, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 293, "modifierName": { "argumentTypes": null, "id": 292, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "4934:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "4934:9:0" } ], "name": "getETH", "nodeType": "FunctionDefinition", "parameters": { "id": 291, "nodeType": "ParameterList", "parameters": [], "src": "4924:2:0" }, "returnParameters": { "id": 294, "nodeType": "ParameterList", "parameters": [], "src": "4944:0:0" }, "scope": 333, "src": "4909:189:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 331, "nodeType": "Block", "src": "5443:70:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 326, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41, "src": "5490:5:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 327, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5490:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 328, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 315, "src": "5499:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 323, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 313, "src": "5467:12:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 322, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1078, "src": "5460:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$1078_$", "typeString": "type(contract IERC20)" } }, "id": 324, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5460:20:0", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$1078", "typeString": "contract IERC20" } }, "id": 325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "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": 329, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5460:46:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 321, "id": 330, "nodeType": "Return", "src": "5453:53:0" } ] }, "documentation": null, "id": 332, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 318, "modifierName": { "argumentTypes": null, "id": 317, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "5410:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "5410:9:0" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { "id": 316, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 313, "name": "tokenAddress", "nodeType": "VariableDeclaration", "scope": 332, "src": "5360:28:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 312, "name": "address", "nodeType": "ElementaryTypeName", "src": "5360:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 315, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 332, "src": "5390:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 314, "name": "uint", "nodeType": "ElementaryTypeName", "src": "5390:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5359:43:0" }, "returnParameters": { "id": 321, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 320, "name": "success", "nodeType": "VariableDeclaration", "scope": 332, "src": "5429:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 319, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5429:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "5428:14:0" }, "scope": 333, "src": "5329:184:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 334, "src": "3088:2427:0" } ], "src": "0:5516:0" }, "compiler": { "name": "solc", "version": "0.5.12+commit.7709ece9.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.0.19", "updatedAt": "2020-02-18T05:15:08.090Z", "networkType": "ethereum", "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": {} } }