{ "contractName": "LockedTokenVault", "abi": [ { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "uint256", "name": "_startReleaseTime", "type": "uint256" }, { "internalType": "uint256", "name": "_releaseDuration", "type": "uint256" }, { "internalType": "uint256", "name": "_cliffRate", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "holder", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "origin", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "claimed", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Claim", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferPrepared", "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" }, { "inputs": [], "name": "_CLIFF_RATE_", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_DISTRIBUTE_FINISHED_", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_NEW_OWNER_", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_OWNER_", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_RELEASE_DURATION_", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_START_RELEASE_TIME_", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_UNDISTRIBUTED_AMOUNT_", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "finishDistribute", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "holderList", "type": "address[]" }, { "internalType": "uint256[]", "name": "amountList", "type": "uint256[]" } ], "name": "grant", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "recall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "transferLockedToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isReleaseStart", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "getOriginBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "getClaimedBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "getClaimableBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "getRemainingBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "getRemainingRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_startReleaseTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_releaseDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_cliffRate\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"origin\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\"},{\"inputs\":[],\"name\":\"_CLIFF_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DISTRIBUTE_FINISHED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_RELEASE_DURATION_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_START_RELEASE_TIME_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_UNDISTRIBUTED_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finishDistribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getClaimableBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getClaimedBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getOriginBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getRemainingBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getRemainingRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"holderList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amountList\",\"type\":\"uint256[]\"}],\"name\":\"grant\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReleaseStart\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"recall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferLockedToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"LockedTokenVault\"},\"userdoc\":{\"methods\":{},\"notice\":\"Lock Token and release it linearly\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/LockedTokenVault.sol\":\"LockedTokenVault\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":{\"keccak256\":\"0x9a093cbac4e37ed4ee5e27495dae08754bbfec81f7c0ceb57a5a7ac4f362208f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ddd9e5de1c555f0d1232e148fe18574e6adaa348e792844d9011bbd39bf908f\",\"dweb:/ipfs/QmSgZNwPNqCrQC4kJNdwH3iQNasbTfw2cbTtAtNVcpqnYc\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol\":{\"keccak256\":\"0xb7a2ca6570834e4784e86d19fd5a4b6b1eff22a4586dc240659943396a365aa5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5855a493c78e787d7effd87d9c661acbcd19ca1e1ba72dbeaa91c3c8db29cbb4\",\"dweb:/ipfs/QmSddEexZ5okMatgoQ5JZRoJqe7BwsJwwWA2o1kKx7vbTH\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/LockedTokenVault.sol\":{\"keccak256\":\"0x074409a43d84164fc48bab73d869e4696711eb74b43b4959af61f408c4519451\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8f066b0447fd4fbf01309c1e788f2b580da53296622c9232bd2bc2fa6e04f621\",\"dweb:/ipfs/QmakNtbKmxbnJ6XJq6ewUt3VSzhDz5GeZdyaG25eRgRhCL\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b506040516110f13803806110f183398101604081905261002f916100aa565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600280546001600160a01b0319166001600160a01b0395909516949094179093556006919091556007556008556100f3565b600080600080608085870312156100bf578384fd5b84516001600160a01b03811681146100d5578485fd5b60208601516040870151606090970151919890975090945092505050565b610fef806101026000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c80637db41eae116100b8578063cd32f0861161007c578063cd32f08614610250578063cf0e80fe14610258578063d18284961461026b578063e5612b3b1461027e578063ef90364214610286578063f2fde38b1461028e57610141565b80637db41eae146101fc5780638456db151461020f578063b6b55f2514610217578063c2ae16801461022a578063ca4305191461023d57610141565b80632a8b04801161010a5780632a8b0480146101a75780632e1a7d4d146101af5780634e71d92d146101c45780634e71e0c8146101cc5780636a4de5d1146101d4578063710475f6146101e757610141565b80621bf8f61461014657806306def8021461016f57806316048bc41461018257806324b3274114610197578063294dafc01461019f575b600080fd5b610159610154366004610c58565b6102a1565b6040516101669190610f9a565b60405180910390f35b61015961017d366004610c58565b6102dc565b61018a610330565b6040516101669190610d59565b61015961033f565b610159610345565b61015961034b565b6101c26101bd366004610d08565b610351565b005b6101c26103b3565b6101c2610449565b6101596101e2366004610d08565b6104d7565b6101ef61057f565b6040516101669190610daa565b6101c261020a366004610c58565b610588565b61018a61062c565b6101c2610225366004610d08565b61063b565b6101c2610238366004610c7f565b610694565b6101c261024b366004610c58565b6107d6565b6101ef61088a565b610159610266366004610c58565b610893565b610159610279366004610c58565b6108ae565b6101c26108c9565b610159610902565b6101c261029c366004610c58565b610908565b6000806102ad426104d7565b6001600160a01b0384166000908152600360205260409020549091506102d390826109b3565b9150505b919050565b6000806102e8836102a1565b6001600160a01b0384166000908152600460209081526040808320546003909252909120549192506102d391610324908463ffffffff6109df16565b9063ffffffff6109df16565b6000546001600160a01b031681565b60055481565b60085481565b60065481565b6000546001600160a01b031633146103845760405162461bcd60e51b815260040161037b90610eb0565b60405180910390fd5b600554610397908263ffffffff6109df16565b6005556000546103b0906001600160a01b031682610a07565b50565b60006103be336102dc565b90506103ca3382610a07565b336000908152600460205260409020546103ea908263ffffffff610a2816565b336000818152600460208181526040808420869055600382529283902054919052905191927f45c072aa05b9853b5a993de7a28bc332ee01404a628cec1a23ce0f659f842ef19261043e9291908690610fa3565b60405180910390a250565b6001546001600160a01b031633146104735760405162461bcd60e51b815260040161037b90610db5565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006006548210156104f25750670de0b6b3a76400006102d7565b6000610509600654846109df90919063ffffffff16565b90506007548110156105755760075460009061052b908363ffffffff6109df16565b905061056c60075461056083610554600854670de0b6b3a76400006109df90919063ffffffff16565b9063ffffffff610a5416565b9063ffffffff610a8e16565b925050506102d7565b60009150506102d7565b60095460ff1681565b33600090815260036020526040808220546001600160a01b03841683529120546105b79163ffffffff610a2816565b6001600160a01b038216600081815260036020908152604080832094909455338252600490528281205491815291909120546105f89163ffffffff610a2816565b6001600160a01b03909116600090815260046020818152604080842094909455338352600381528383208390555290812055565b6001546001600160a01b031681565b6000546001600160a01b031633146106655760405162461bcd60e51b815260040161037b90610eb0565b60005461067b906001600160a01b031682610ab8565b60055461068e908263ffffffff610a2816565b60055550565b6000546001600160a01b031633146106be5760405162461bcd60e51b815260040161037b90610eb0565b8281146106dd5760405162461bcd60e51b815260040161037b90610f63565b6000805b848110156107b85761074a8484838181106106f857fe5b905060200201356003600089898681811061070f57fe5b90506020020160208101906107249190610c58565b6001600160a01b031681526020810191909152604001600020549063ffffffff610a2816565b6003600088888581811061075a57fe5b905060200201602081019061076f9190610c58565b6001600160a01b031681526020810191909152604001600020556107ae84848381811061079857fe5b9050602002013583610a2890919063ffffffff16565b91506001016106e1565b506005546107cc908263ffffffff6109df16565b6005555050505050565b6000546001600160a01b031633146108005760405162461bcd60e51b815260040161037b90610eb0565b60095460ff16156108235760405162461bcd60e51b815260040161037b90610ddc565b6001600160a01b0381166000908152600460209081526040808320546003909252909120546005546108609291610324919063ffffffff610a2816565b6005556001600160a01b031660009081526003602090815260408083208390556004909152812055565b60065442101590565b6001600160a01b031660009081526004602052604090205490565b6001600160a01b031660009081526003602052604090205490565b6000546001600160a01b031633146108f35760405162461bcd60e51b815260040161037b90610eb0565b6009805460ff19166001179055565b60075481565b6000546001600160a01b031633146109325760405162461bcd60e51b815260040161037b90610eb0565b6001600160a01b0381166109585760405162461bcd60e51b815260040161037b90610e89565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000670de0b6b3a76400006109ce848463ffffffff610a5416565b816109d557fe5b0490505b92915050565b600082821115610a015760405162461bcd60e51b815260040161037b90610e66565b50900390565b600254610a24906001600160a01b0316838363ffffffff610ad616565b5050565b600082820183811015610a4d5760405162461bcd60e51b815260040161037b90610ed3565b9392505050565b600082610a63575060006109d9565b82820282848281610a7057fe5b0414610a4d5760405162461bcd60e51b815260040161037b90610f40565b6000808211610aaf5760405162461bcd60e51b815260040161037b90610e3e565b8183816109d557fe5b600254610a24906001600160a01b031683308463ffffffff610b3116565b610b2c8363a9059cbb60e01b8484604051602401610af5929190610d91565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610b58565b505050565b610b52846323b872dd60e01b858585604051602401610af593929190610d6d565b50505050565b60006060836001600160a01b031683604051610b749190610d20565b6000604051808303816000865af19150503d8060008114610bb1576040519150601f19603f3d011682016040523d82523d6000602084013e610bb6565b606091505b509150915081610bd85760405162461bcd60e51b815260040161037b90610e09565b805115610b525780806020019051810190610bf39190610ce8565b610b525760405162461bcd60e51b815260040161037b90610ef6565b60008083601f840112610c20578182fd5b50813567ffffffffffffffff811115610c37578182fd5b6020830191508360208083028501011115610c5157600080fd5b9250929050565b600060208284031215610c69578081fd5b81356001600160a01b0381168114610a4d578182fd5b60008060008060408587031215610c94578283fd5b843567ffffffffffffffff80821115610cab578485fd5b610cb788838901610c0f565b90965094506020870135915080821115610ccf578384fd5b50610cdc87828801610c0f565b95989497509550505050565b600060208284031215610cf9578081fd5b81518015158114610a4d578182fd5b600060208284031215610d19578081fd5b5035919050565b60008251815b81811015610d405760208186018101518583015201610d26565b81811115610d4e5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b602080825260139082015272111254d5149250955511481192539254d21151606a1b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b6020808252601c908201527f6261746368206772616e74206c656e677468206e6f74206d6174636800000000604082015260600190565b90815260200190565b928352602083019190915260408201526060019056fea26469706673582212207f11995cc6a066ee4583627cb81b22e62285d1aed6171a41fe0fee5d40f41c5464736f6c63430006090033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101415760003560e01c80637db41eae116100b8578063cd32f0861161007c578063cd32f08614610250578063cf0e80fe14610258578063d18284961461026b578063e5612b3b1461027e578063ef90364214610286578063f2fde38b1461028e57610141565b80637db41eae146101fc5780638456db151461020f578063b6b55f2514610217578063c2ae16801461022a578063ca4305191461023d57610141565b80632a8b04801161010a5780632a8b0480146101a75780632e1a7d4d146101af5780634e71d92d146101c45780634e71e0c8146101cc5780636a4de5d1146101d4578063710475f6146101e757610141565b80621bf8f61461014657806306def8021461016f57806316048bc41461018257806324b3274114610197578063294dafc01461019f575b600080fd5b610159610154366004610c58565b6102a1565b6040516101669190610f9a565b60405180910390f35b61015961017d366004610c58565b6102dc565b61018a610330565b6040516101669190610d59565b61015961033f565b610159610345565b61015961034b565b6101c26101bd366004610d08565b610351565b005b6101c26103b3565b6101c2610449565b6101596101e2366004610d08565b6104d7565b6101ef61057f565b6040516101669190610daa565b6101c261020a366004610c58565b610588565b61018a61062c565b6101c2610225366004610d08565b61063b565b6101c2610238366004610c7f565b610694565b6101c261024b366004610c58565b6107d6565b6101ef61088a565b610159610266366004610c58565b610893565b610159610279366004610c58565b6108ae565b6101c26108c9565b610159610902565b6101c261029c366004610c58565b610908565b6000806102ad426104d7565b6001600160a01b0384166000908152600360205260409020549091506102d390826109b3565b9150505b919050565b6000806102e8836102a1565b6001600160a01b0384166000908152600460209081526040808320546003909252909120549192506102d391610324908463ffffffff6109df16565b9063ffffffff6109df16565b6000546001600160a01b031681565b60055481565b60085481565b60065481565b6000546001600160a01b031633146103845760405162461bcd60e51b815260040161037b90610eb0565b60405180910390fd5b600554610397908263ffffffff6109df16565b6005556000546103b0906001600160a01b031682610a07565b50565b60006103be336102dc565b90506103ca3382610a07565b336000908152600460205260409020546103ea908263ffffffff610a2816565b336000818152600460208181526040808420869055600382529283902054919052905191927f45c072aa05b9853b5a993de7a28bc332ee01404a628cec1a23ce0f659f842ef19261043e9291908690610fa3565b60405180910390a250565b6001546001600160a01b031633146104735760405162461bcd60e51b815260040161037b90610db5565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006006548210156104f25750670de0b6b3a76400006102d7565b6000610509600654846109df90919063ffffffff16565b90506007548110156105755760075460009061052b908363ffffffff6109df16565b905061056c60075461056083610554600854670de0b6b3a76400006109df90919063ffffffff16565b9063ffffffff610a5416565b9063ffffffff610a8e16565b925050506102d7565b60009150506102d7565b60095460ff1681565b33600090815260036020526040808220546001600160a01b03841683529120546105b79163ffffffff610a2816565b6001600160a01b038216600081815260036020908152604080832094909455338252600490528281205491815291909120546105f89163ffffffff610a2816565b6001600160a01b03909116600090815260046020818152604080842094909455338352600381528383208390555290812055565b6001546001600160a01b031681565b6000546001600160a01b031633146106655760405162461bcd60e51b815260040161037b90610eb0565b60005461067b906001600160a01b031682610ab8565b60055461068e908263ffffffff610a2816565b60055550565b6000546001600160a01b031633146106be5760405162461bcd60e51b815260040161037b90610eb0565b8281146106dd5760405162461bcd60e51b815260040161037b90610f63565b6000805b848110156107b85761074a8484838181106106f857fe5b905060200201356003600089898681811061070f57fe5b90506020020160208101906107249190610c58565b6001600160a01b031681526020810191909152604001600020549063ffffffff610a2816565b6003600088888581811061075a57fe5b905060200201602081019061076f9190610c58565b6001600160a01b031681526020810191909152604001600020556107ae84848381811061079857fe5b9050602002013583610a2890919063ffffffff16565b91506001016106e1565b506005546107cc908263ffffffff6109df16565b6005555050505050565b6000546001600160a01b031633146108005760405162461bcd60e51b815260040161037b90610eb0565b60095460ff16156108235760405162461bcd60e51b815260040161037b90610ddc565b6001600160a01b0381166000908152600460209081526040808320546003909252909120546005546108609291610324919063ffffffff610a2816565b6005556001600160a01b031660009081526003602090815260408083208390556004909152812055565b60065442101590565b6001600160a01b031660009081526004602052604090205490565b6001600160a01b031660009081526003602052604090205490565b6000546001600160a01b031633146108f35760405162461bcd60e51b815260040161037b90610eb0565b6009805460ff19166001179055565b60075481565b6000546001600160a01b031633146109325760405162461bcd60e51b815260040161037b90610eb0565b6001600160a01b0381166109585760405162461bcd60e51b815260040161037b90610e89565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000670de0b6b3a76400006109ce848463ffffffff610a5416565b816109d557fe5b0490505b92915050565b600082821115610a015760405162461bcd60e51b815260040161037b90610e66565b50900390565b600254610a24906001600160a01b0316838363ffffffff610ad616565b5050565b600082820183811015610a4d5760405162461bcd60e51b815260040161037b90610ed3565b9392505050565b600082610a63575060006109d9565b82820282848281610a7057fe5b0414610a4d5760405162461bcd60e51b815260040161037b90610f40565b6000808211610aaf5760405162461bcd60e51b815260040161037b90610e3e565b8183816109d557fe5b600254610a24906001600160a01b031683308463ffffffff610b3116565b610b2c8363a9059cbb60e01b8484604051602401610af5929190610d91565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610b58565b505050565b610b52846323b872dd60e01b858585604051602401610af593929190610d6d565b50505050565b60006060836001600160a01b031683604051610b749190610d20565b6000604051808303816000865af19150503d8060008114610bb1576040519150601f19603f3d011682016040523d82523d6000602084013e610bb6565b606091505b509150915081610bd85760405162461bcd60e51b815260040161037b90610e09565b805115610b525780806020019051810190610bf39190610ce8565b610b525760405162461bcd60e51b815260040161037b90610ef6565b60008083601f840112610c20578182fd5b50813567ffffffffffffffff811115610c37578182fd5b6020830191508360208083028501011115610c5157600080fd5b9250929050565b600060208284031215610c69578081fd5b81356001600160a01b0381168114610a4d578182fd5b60008060008060408587031215610c94578283fd5b843567ffffffffffffffff80821115610cab578485fd5b610cb788838901610c0f565b90965094506020870135915080821115610ccf578384fd5b50610cdc87828801610c0f565b95989497509550505050565b600060208284031215610cf9578081fd5b81518015158114610a4d578182fd5b600060208284031215610d19578081fd5b5035919050565b60008251815b81811015610d405760208186018101518583015201610d26565b81811115610d4e5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b602080825260139082015272111254d5149250955511481192539254d21151606a1b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b6020808252601c908201527f6261746368206772616e74206c656e677468206e6f74206d6174636800000000604082015260600190565b90815260200190565b928352602083019190915260408201526060019056fea26469706673582212207f11995cc6a066ee4583627cb81b22e62285d1aed6171a41fe0fee5d40f41c5464736f6c63430006090033", "immutableReferences": {}, "sourceMap": "480:5216:47:-:0;;;1532:311;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;757:7:38;:20;;-1:-1:-1;;;;;;757:20:38;767:10;757:20;;;;792:41;;-1:-1:-1;;;;;825:7:38;;;;;757;792:41;;757:7;;792:41;1688:7:47;:16;;-1:-1:-1;;;;;;1688:16:47;-1:-1:-1;;;;;1688:16:47;;;;;;;;;;;1714:20;:40;;;;1764:18;:37;1811:12;:25;480:5216;;287:672:-1;;;;;453:3;441:9;432:7;428:23;424:33;421:2;;;-1:-1;;460:12;421:2;83:13;;-1:-1;;;;;1126:54;;1330:35;;1320:2;;-1:-1;;1369:12;1320:2;623;673:22;;224:13;742:2;792:22;;224:13;861:2;911:22;;;224:13;512:74;;224:13;;-1:-1;224:13;;-1:-1;415:544;-1:-1;;;415:544;;480:5216:47;;;;;;", "deployedSourceMap": "480:5216:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4637:223;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4399:232;;;;;;;;;:::i;251:22:38:-;;;:::i;:::-;;;;;;;;726:37:47;;;:::i;849:27::-;;;:::i;769:35::-;;;:::i;2026:173::-;;;;;;;;;:::i;:::-;;3572:404;;;:::i;1072:225:38:-;;;:::i;4866:502:47:-;;;;;;;;;:::i;883:33::-;;;:::i;:::-;;;;;;;;3262:304;;;;;;;;;:::i;279:26:38:-;;;:::i;1849:171:47:-;;;;;;;;;:::i;2347:569::-;;;;;;;;;:::i;2922:289::-;;;;;;;;;:::i;4021:118::-;;;:::i;4271:122::-;;;;;;;;;:::i;4145:120::-;;;;;;;;;:::i;2205:92::-;;;:::i;810:33::-;;;:::i;846:220:38:-;;;;;;;;;:::i;4637:223:47:-;4703:7;4722:22;4747:34;4765:15;4747:17;:34::i;:::-;-1:-1:-1;;;;;4814:22:47;;;;;;:14;:22;;;;;;4722:59;;-1:-1:-1;4798:55:47;;4722:59;4798:15;:55::i;:::-;4791:62;;;4637:223;;;;:::o;4399:232::-;4465:7;4484:22;4509:27;4529:6;4509:19;:27::i;:::-;-1:-1:-1;;;;;4600:23:47;;;;;;:15;:23;;;;;;;;;4553:14;:22;;;;;;;4484:52;;-1:-1:-1;4553:71:47;;:42;;4484:52;4553:42;:26;:42;:::i;:::-;:46;:71;:46;:71;:::i;251:22:38:-;;;-1:-1:-1;;;;;251:22:38;;:::o;726:37:47:-;;;;:::o;849:27::-;;;;:::o;769:35::-;;;;:::o;2026:173::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;;;;;;;;;2114:22:47::1;::::0;:34:::1;::::0;2141:6;2114:34:::1;:26;:34;:::i;:::-;2089:22;:59:::0;2176:7:::1;::::0;2158:34:::1;::::0;-1:-1:-1;;;;;2176:7:47::1;2185:6:::0;2158:17:::1;:34::i;:::-;2026:173:::0;:::o;3572:404::-;3608:22;3633:31;3653:10;3633:19;:31::i;:::-;3608:56;;3674:45;3692:10;3704:14;3674:17;:45::i;:::-;3775:10;3759:27;;;;:15;:27;;;;;;:47;;3791:14;3759:47;:31;:47;:::i;:::-;3745:10;3729:27;;;;:15;:27;;;;;;;;:77;;;3864:14;:26;;;;;;;3904:27;;;3821:148;;3745:10;;3821:148;;;;3864:26;3729:77;3945:14;;3821:148;;;;;;;;;;3572:404;:::o;1072:225:38:-;1139:11;;-1:-1:-1;;;;;1139:11:38;1125:10;:25;1117:51;;;;-1:-1:-1;;;1117:51:38;;;;;;;;;1213:11;;;1204:7;;1183:42;;-1:-1:-1;;;;;1213:11:38;;;;1204:7;;;;1183:42;;;1245:11;;;;1235:21;;-1:-1:-1;;;;;;1235:21:38;;;-1:-1:-1;;;;;1245:11:38;;1235:21;;;;1266:24;;;1072:225::o;4866:502:47:-;4933:7;4968:20;;4956:9;:32;4952:85;;;-1:-1:-1;379:6:36;5004:22:47;;4952:85;5046:16;5065:35;5079:20;;5065:9;:13;;:35;;;;:::i;:::-;5046:54;;5125:18;;5114:8;:29;5110:252;;;5183:18;;5159:21;;5183:32;;5206:8;5183:32;:22;:32;:::i;:::-;5159:56;;5236:76;5293:18;;5236:52;5274:13;5236:33;5256:12;;379:6:36;5236:19:47;;:33;;;;:::i;:::-;:37;:52;:37;:52;:::i;:::-;:56;:76;:56;:76;:::i;:::-;5229:83;;;;;;5110:252;5350:1;5343:8;;;;;883:33;;;;;;:::o;3262:304::-;3381:10;3366:26;;;;:14;:26;;;;;;;-1:-1:-1;;;;;3343:18:47;;;;;;;:50;;;:22;:50;:::i;:::-;-1:-1:-1;;;;;3322:18:47;;;;;;:14;:18;;;;;;;;:71;;;;3465:10;3449:27;;:15;:27;;;;;;3425:19;;;;;;;;:52;;;:23;:52;:::i;:::-;-1:-1:-1;;;;;3403:19:47;;;;;;;:15;:19;;;;;;;;:74;;;;3503:10;3488:26;;:14;:26;;;;;:30;;;3528:27;;;;:31;3262:304::o;279:26:38:-;;;-1:-1:-1;;;;;279:26:38;;:::o;1849:171:47:-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;1928:7:47::1;::::0;1911:33:::1;::::0;-1:-1:-1;;;;;1928:7:47::1;1937:6:::0;1911:16:::1;:33::i;:::-;1979:22;::::0;:34:::1;::::0;2006:6;1979:34:::1;:26;:34;:::i;:::-;1954:22;:59:::0;-1:-1:-1;1849:171:47:o;2347:569::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;2481:38:47;;::::1;2473:79;;;;-1:-1:-1::0;;;2473:79:47::1;;;;;;;;;2562:14;::::0;2590:251:::1;2610:21:::0;;::::1;2590:251;;;2734:48;2768:10;;2779:1;2768:13;;;;;;;;;;;;;2734:14;:29;2749:10;;2760:1;2749:13;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;2734:29:47::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;2734:29:47;;;:48:::1;:33;:48;:::i;:::-;2702:14;:29;2717:10;;2728:1;2717:13;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;2702:29:47::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;2702:29:47;:80;2805:25:::1;2816:10:::0;;2827:1;2816:13;;::::1;;;;;;;;;;;2805:6;:10;;:25;;;;:::i;:::-;2796:34:::0;-1:-1:-1;2633:3:47::1;;2590:251;;;-1:-1:-1::0;2875:22:47::1;::::0;:34:::1;::::0;2902:6;2875:34:::1;:26;:34;:::i;:::-;2850:22;:59:::0;-1:-1:-1;;;;;2347:569:47:o;2922:289::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;1414:21:47::1;::::0;::::1;;1413:22;1405:54;;;;-1:-1:-1::0;;;1405:54:47::1;;;;;;;;;-1:-1:-1::0;;;;;3098:23:47;::::2;;::::0;;;:15:::2;:23;::::0;;;;;;;;3057:14:::2;:22:::0;;;;;;;3030::::2;::::0;:101:::2;::::0;3098:23;3030:50:::2;::::0;:22;:50:::2;:26;:50;:::i;:101::-;3005:22;:126:::0;-1:-1:-1;;;;;3141:22:47::2;3166:1;3141:22:::0;;;:14:::2;:22;::::0;;;;;;;:26;;;3177:15:::2;:23:::0;;;;;:27;2922:289::o;4021:118::-;4112:20;;4093:15;:39;;4021:118;:::o;4271:122::-;-1:-1:-1;;;;;4363:23:47;4337:7;4363:23;;;:15;:23;;;;;;;4271:122::o;4145:120::-;-1:-1:-1;;;;;4236:22:47;4210:7;4236:22;;;:14;:22;;;;;;;4145:120::o;2205:92::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;2262:21:47::1;:28:::0;;-1:-1:-1;;2262:28:47::1;2286:4;2262:28;::::0;;2205:92::o;810:33::-;;;;:::o;846:220:38:-;635:7;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;-1:-1:-1;;;;;928:22:38;::::1;920:48;;;;-1:-1:-1::0;;;920:48:38::1;;;;;;;;;1009:7;::::0;;983:44:::1;::::0;-1:-1:-1;;;;;983:44:38;;::::1;::::0;1009:7;::::1;::::0;983:44:::1;::::0;::::1;1037:11;:22:::0;;-1:-1:-1;;;;;;1037:22:38::1;-1:-1:-1::0;;;;;1037:22:38;;;::::1;::::0;;;::::1;::::0;;846:220::o;392:115:36:-;455:7;379:6;481:13;:6;492:1;481:13;:10;:13;:::i;:::-;:19;;;;;;474:26;;392:115;;;;;:::o;934:134:41:-;992:7;1024:1;1019;:6;;1011:28;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;5573:121:47:-;5654:7;;5647:40;;-1:-1:-1;;;;;5654:7:47;5676:2;5680:6;5647:40;:28;:40;:::i;:::-;5573:121;;:::o;1074:157:41:-;1132:7;1163:5;;;1186:6;;;;1178:28;;;;-1:-1:-1;;;1178:28:41;;;;;;;;;1223:1;1074:157;-1:-1:-1;;;1074:157:41:o;281:217::-;339:7;362:6;358:45;;-1:-1:-1;391:1:41;384:8;;358:45;425:5;;;429:1;425;:5;:1;448:5;;;;;:10;440:32;;;;-1:-1:-1;;;440:32:41;;;;;;;;504:138;562:7;593:1;589;:5;581:32;;;;-1:-1:-1;;;581:32:41;;;;;;;;;634:1;630;:5;;;;5424:143:47;5506:7;;5499:61;;-1:-1:-1;;;;;5506:7:47;5532:4;5546;5553:6;5499:61;:32;:61;:::i;804:205:40:-;916:86;936:5;966:23;;;991:2;995:5;943:58;;;;;;;;;;;;;;-1:-1:-1;;943:58:40;;;;;;;;;;;;;;-1:-1:-1;;;;;943:58:40;-1:-1:-1;;;;;;943:58:40;;;;;;;;;;916:19;:86::i;:::-;804:205;;;:::o;1015:275::-;1153:130;1186:5;1228:27;;;1257:4;1263:2;1267:5;1205:68;;;;;;;;;;;1153:130;1015:275;;;;:::o;2335:1027::-;2984:12;2998:23;3033:5;-1:-1:-1;;;;;3025:19:40;3045:4;3025:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2983:67;;;;3068:7;3060:52;;;;-1:-1:-1;;;3060:52:40;;;;;;;;;3127:17;;:21;3123:233;;3279:10;3268:30;;;;;;;;;;;;;;3260:85;;;;-1:-1:-1;;;3260:85:40;;;;;;;;160:352:-1;;;290:3;283:4;275:6;271:17;267:27;257:2;;-1:-1;;298:12;257:2;-1:-1;328:20;;368:18;357:30;;354:2;;;-1:-1;;390:12;354:2;434:4;426:6;422:17;410:29;;485:3;434:4;;469:6;465:17;426:6;451:32;;448:41;445:2;;;502:1;;492:12;445:2;250:262;;;;;;1170:241;;1274:2;1262:9;1253:7;1249:23;1245:32;1242:2;;;-1:-1;;1280:12;1242:2;72:20;;-1:-1;;;;;14511:54;;14992:35;;14982:2;;-1:-1;;15031:12;1418:678;;;;;1609:2;1597:9;1588:7;1584:23;1580:32;1577:2;;;-1:-1;;1615:12;1577:2;1673:17;1660:31;1711:18;;1703:6;1700:30;1697:2;;;-1:-1;;1733:12;1697:2;1771:80;1843:7;1834:6;1823:9;1819:22;1771:80;;;1761:90;;-1:-1;1761:90;-1:-1;1916:2;1901:18;;1888:32;;-1:-1;1929:30;;;1926:2;;;-1:-1;;1962:12;1926:2;;2000:80;2072:7;2063:6;2052:9;2048:22;2000:80;;;1571:525;;;;-1:-1;1990:90;-1:-1;;;;1571:525;2103:257;;2215:2;2203:9;2194:7;2190:23;2186:32;2183:2;;;-1:-1;;2221:12;2183:2;979:6;973:13;15138:5;14423:13;14416:21;15116:5;15113:32;15103:2;;-1:-1;;15149:12;2367:241;;2471:2;2459:9;2450:7;2446:23;2442:32;2439:2;;;-1:-1;;2477:12;2439:2;-1:-1;1100:20;;2433:175;-1:-1;2433:175;6958:271;;3006:5;13893:12;-1:-1;14729:101;14743:6;14740:1;14737:13;14729:101;;;3150:4;14810:11;;;;;14804:18;14791:11;;;14784:39;14758:10;14729:101;;;14845:6;14842:1;14839:13;14836:2;;;-1:-1;14901:6;14896:3;14892:16;14885:27;14836:2;-1:-1;3181:16;;;;;7092:137;-1:-1;;7092:137;7236:222;-1:-1;;;;;14511:54;;;;2686:37;;7363:2;7348:18;;7334:124;7465:444;-1:-1;;;;;14511:54;;;2686:37;;14511:54;;;;7812:2;7797:18;;2686:37;7895:2;7880:18;;6909:37;;;;7648:2;7633:18;;7619:290;7916:333;-1:-1;;;;;14511:54;;;;2686:37;;8235:2;8220:18;;6909:37;8071:2;8056:18;;8042:207;8256:210;14423:13;;14416:21;2800:34;;8377:2;8362:18;;8348:118;8473:416;8673:2;8687:47;;;3434:2;8658:18;;;14191:19;-1:-1;;;14231:14;;;3450:36;3505:12;;;8644:245;8896:416;9096:2;9110:47;;;3756:2;9081:18;;;14191:19;-1:-1;;;14231:14;;;3772:42;3833:12;;;9067:245;9319:416;9519:2;9533:47;;;9504:18;;;14191:19;4120:34;14231:14;;;4100:55;4174:12;;;9490:245;9742:416;9942:2;9956:47;;;4425:2;9927:18;;;14191:19;-1:-1;;;14231:14;;;4441:37;4497:12;;;9913:245;10165:416;10365:2;10379:47;;;4748:1;10350:18;;;14191:19;-1:-1;;;14231:14;;;4763:32;4814:12;;;10336:245;10588:416;10788:2;10802:47;;;5065:2;10773:18;;;14191:19;-1:-1;;;14231:14;;;5081:36;5136:12;;;10759:245;11011:416;11211:2;11225:47;;;5387:1;11196:18;;;14191:19;-1:-1;;;14231:14;;;5402:32;5453:12;;;11182:245;11434:416;11634:2;11648:47;;;5704:1;11619:18;;;14191:19;-1:-1;;;14231:14;;;5719:32;5770:12;;;11605:245;11857:416;12057:2;12071:47;;;6021:2;12042:18;;;14191:19;6057:34;14231:14;;;6037:55;-1:-1;;;6112:12;;;6105:34;6158:12;;;12028:245;12280:416;12480:2;12494:47;;;6409:1;12465:18;;;14191:19;-1:-1;;;14231:14;;;6424:32;6475:12;;;12451:245;12703:416;12903:2;12917:47;;;6726:2;12888:18;;;14191:19;6762:30;14231:14;;;6742:51;6812:12;;;12874:245;13126:222;6909:37;;;13253:2;13238:18;;13224:124;13355:444;6909:37;;;13702:2;13687:18;;6909:37;;;;13785:2;13770:18;;6909:37;13538:2;13523:18;;13509:290", "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {SafeMath} from \"../lib/SafeMath.sol\";\nimport {DecimalMath} from \"../lib/DecimalMath.sol\";\nimport {Ownable} from \"../lib/Ownable.sol\";\nimport {SafeERC20} from \"../lib/SafeERC20.sol\";\nimport {IERC20} from \"../intf/IERC20.sol\";\n\n\n/**\n * @title LockedTokenVault\n * @author DODO Breeder\n *\n * @notice Lock Token and release it linearly\n */\n\ncontract LockedTokenVault is Ownable {\n using SafeMath for uint256;\n using SafeERC20 for IERC20;\n\n address _TOKEN_;\n\n mapping(address => uint256) internal originBalances;\n mapping(address => uint256) internal claimedBalances;\n\n uint256 public _UNDISTRIBUTED_AMOUNT_;\n uint256 public _START_RELEASE_TIME_;\n uint256 public _RELEASE_DURATION_;\n uint256 public _CLIFF_RATE_;\n\n bool public _DISTRIBUTE_FINISHED_;\n\n // ============ Modifiers ============\n\n event Claim(address indexed holder, uint256 origin, uint256 claimed, uint256 amount);\n\n // ============ Modifiers ============\n\n modifier beforeStartRelease() {\n require(block.timestamp < _START_RELEASE_TIME_, \"RELEASE START\");\n _;\n }\n\n modifier afterStartRelease() {\n require(block.timestamp >= _START_RELEASE_TIME_, \"RELEASE NOT START\");\n _;\n }\n\n modifier distributeNotFinished() {\n require(!_DISTRIBUTE_FINISHED_, \"DISTRIBUTE FINISHED\");\n _;\n }\n\n // ============ Init Functions ============\n\n constructor(\n address _token,\n uint256 _startReleaseTime,\n uint256 _releaseDuration,\n uint256 _cliffRate\n ) public {\n _TOKEN_ = _token;\n _START_RELEASE_TIME_ = _startReleaseTime;\n _RELEASE_DURATION_ = _releaseDuration;\n _CLIFF_RATE_ = _cliffRate;\n }\n\n function deposit(uint256 amount) external onlyOwner {\n _tokenTransferIn(_OWNER_, amount);\n _UNDISTRIBUTED_AMOUNT_ = _UNDISTRIBUTED_AMOUNT_.add(amount);\n }\n\n function withdraw(uint256 amount) external onlyOwner {\n _UNDISTRIBUTED_AMOUNT_ = _UNDISTRIBUTED_AMOUNT_.sub(amount);\n _tokenTransferOut(_OWNER_, amount);\n }\n\n function finishDistribute() external onlyOwner {\n _DISTRIBUTE_FINISHED_ = true;\n }\n\n // ============ For Owner ============\n\n function grant(address[] calldata holderList, uint256[] calldata amountList)\n external\n onlyOwner\n {\n require(holderList.length == amountList.length, \"batch grant length not match\");\n uint256 amount = 0;\n for (uint256 i = 0; i < holderList.length; ++i) {\n // for saving gas, no event for grant\n originBalances[holderList[i]] = originBalances[holderList[i]].add(amountList[i]);\n amount = amount.add(amountList[i]);\n }\n _UNDISTRIBUTED_AMOUNT_ = _UNDISTRIBUTED_AMOUNT_.sub(amount);\n }\n\n function recall(address holder) external onlyOwner distributeNotFinished {\n _UNDISTRIBUTED_AMOUNT_ = _UNDISTRIBUTED_AMOUNT_.add(originBalances[holder]).sub(\n claimedBalances[holder]\n );\n originBalances[holder] = 0;\n claimedBalances[holder] = 0;\n }\n\n // ============ For Holder ============\n\n function transferLockedToken(address to) external {\n originBalances[to] = originBalances[to].add(originBalances[msg.sender]);\n claimedBalances[to] = claimedBalances[to].add(claimedBalances[msg.sender]);\n\n originBalances[msg.sender] = 0;\n claimedBalances[msg.sender] = 0;\n }\n\n function claim() external {\n uint256 claimableToken = getClaimableBalance(msg.sender);\n _tokenTransferOut(msg.sender, claimableToken);\n claimedBalances[msg.sender] = claimedBalances[msg.sender].add(claimableToken);\n emit Claim(\n msg.sender,\n originBalances[msg.sender],\n claimedBalances[msg.sender],\n claimableToken\n );\n }\n\n // ============ View ============\n\n function isReleaseStart() external view returns (bool) {\n return block.timestamp >= _START_RELEASE_TIME_;\n }\n\n function getOriginBalance(address holder) external view returns (uint256) {\n return originBalances[holder];\n }\n\n function getClaimedBalance(address holder) external view returns (uint256) {\n return claimedBalances[holder];\n }\n\n function getClaimableBalance(address holder) public view returns (uint256) {\n uint256 remainingToken = getRemainingBalance(holder);\n return originBalances[holder].sub(remainingToken).sub(claimedBalances[holder]);\n }\n\n function getRemainingBalance(address holder) public view returns (uint256) {\n uint256 remainingRatio = getRemainingRatio(block.timestamp);\n return DecimalMath.mul(originBalances[holder], remainingRatio);\n }\n\n function getRemainingRatio(uint256 timestamp) public view returns (uint256) {\n if (timestamp < _START_RELEASE_TIME_) {\n return DecimalMath.ONE;\n }\n uint256 timePast = timestamp.sub(_START_RELEASE_TIME_);\n if (timePast < _RELEASE_DURATION_) {\n uint256 remainingTime = _RELEASE_DURATION_.sub(timePast);\n return DecimalMath.ONE.sub(_CLIFF_RATE_).mul(remainingTime).div(_RELEASE_DURATION_);\n } else {\n return 0;\n }\n }\n\n // ============ Internal Helper ============\n\n function _tokenTransferIn(address from, uint256 amount) internal {\n IERC20(_TOKEN_).safeTransferFrom(from, address(this), amount);\n }\n\n function _tokenTransferOut(address to, uint256 amount) internal {\n IERC20(_TOKEN_).safeTransfer(to, amount);\n }\n}\n", "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/LockedTokenVault.sol", "ast": { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/LockedTokenVault.sol", "exportedSymbols": { "LockedTokenVault": [ 13789 ] }, "id": 13790, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 13257, "literals": [ "solidity", "0.6", ".9" ], "nodeType": "PragmaDirective", "src": "78:22:47" }, { "id": 13258, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "101:33:47" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", "file": "../lib/SafeMath.sol", "id": 13260, "nodeType": "ImportDirective", "scope": 13790, "sourceUnit": 11624, "src": "136:45:47", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 13259, "name": "SafeMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "144:8:47", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", "file": "../lib/DecimalMath.sol", "id": 13262, "nodeType": "ImportDirective", "scope": 13790, "sourceUnit": 11079, "src": "182:51:47", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 13261, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "190:11:47", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", "file": "../lib/Ownable.sol", "id": 13264, "nodeType": "ImportDirective", "scope": 13790, "sourceUnit": 11272, "src": "234:43:47", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 13263, "name": "Ownable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "242:7:47", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", "file": "../lib/SafeERC20.sol", "id": 13266, "nodeType": "ImportDirective", "scope": 13790, "sourceUnit": 11441, "src": "278:47:47", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 13265, "name": "SafeERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "286:9:47", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", "file": "../intf/IERC20.sol", "id": 13268, "nodeType": "ImportDirective", "scope": 13790, "sourceUnit": 10608, "src": "326:42:47", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 13267, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "334:6:47", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 13270, "name": "Ownable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11271, "src": "509:7:47", "typeDescriptions": { "typeIdentifier": "t_contract$_Ownable_$11271", "typeString": "contract Ownable" } }, "id": 13271, "nodeType": "InheritanceSpecifier", "src": "509:7:47" } ], "contractDependencies": [ 11271 ], "contractKind": "contract", "documentation": { "id": 13269, "nodeType": "StructuredDocumentation", "src": "371:107:47", "text": " @title LockedTokenVault\n @author DODO Breeder\n @notice Lock Token and release it linearly" }, "fullyImplemented": true, "id": 13789, "linearizedBaseContracts": [ 13789, 11271 ], "name": "LockedTokenVault", "nodeType": "ContractDefinition", "nodes": [ { "id": 13274, "libraryName": { "contractScope": null, "id": 13272, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11623, "src": "529:8:47", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$11623", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "523:27:47", "typeName": { "id": 13273, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "542:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "id": 13277, "libraryName": { "contractScope": null, "id": 13275, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11440, "src": "561:9:47", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeERC20_$11440", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", "src": "555:27:47", "typeName": { "contractScope": null, "id": 13276, "name": "IERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 10607, "src": "575:6:47", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } } }, { "constant": false, "id": 13279, "mutability": "mutable", "name": "_TOKEN_", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "588:15:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13278, "name": "address", "nodeType": "ElementaryTypeName", "src": "588:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13283, "mutability": "mutable", "name": "originBalances", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "610:51:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 13282, "keyType": { "id": 13280, "name": "address", "nodeType": "ElementaryTypeName", "src": "618:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "610:27:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 13281, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "629:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13287, "mutability": "mutable", "name": "claimedBalances", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "667:52:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 13286, "keyType": { "id": 13284, "name": "address", "nodeType": "ElementaryTypeName", "src": "675:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "667:27:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 13285, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "686:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "functionSelector": "24b32741", "id": 13289, "mutability": "mutable", "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "726:37:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13288, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "726:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "2a8b0480", "id": 13291, "mutability": "mutable", "name": "_START_RELEASE_TIME_", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "769:35:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13290, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "769:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "ef903642", "id": 13293, "mutability": "mutable", "name": "_RELEASE_DURATION_", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "810:33:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13292, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "810:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "294dafc0", "id": 13295, "mutability": "mutable", "name": "_CLIFF_RATE_", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "849:27:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13294, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "849:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "710475f6", "id": 13297, "mutability": "mutable", "name": "_DISTRIBUTE_FINISHED_", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "883:33:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 13296, "name": "bool", "nodeType": "ElementaryTypeName", "src": "883:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 13307, "name": "Claim", "nodeType": "EventDefinition", "parameters": { "id": 13306, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13299, "indexed": true, "mutability": "mutable", "name": "holder", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13307, "src": "979:22:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13298, "name": "address", "nodeType": "ElementaryTypeName", "src": "979:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13301, "indexed": false, "mutability": "mutable", "name": "origin", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13307, "src": "1003:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13300, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1003:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13303, "indexed": false, "mutability": "mutable", "name": "claimed", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13307, "src": "1019:15:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13302, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1019:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13305, "indexed": false, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13307, "src": "1036:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13304, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1036:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "978:73:47" }, "src": "967:85:47" }, { "body": { "id": 13318, "nodeType": "Block", "src": "1132:92:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13313, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13310, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "1150:5:47", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 13311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1150:15:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 13312, "name": "_START_RELEASE_TIME_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "1168:20:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1150:38:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "52454c45415345205354415254", "id": 13314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1190:15:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3a9cf605e456558d9595f46a318dee5ca93aa714e1d590d8f58a0f0f80293c70", "typeString": "literal_string \"RELEASE START\"" }, "value": "RELEASE START" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3a9cf605e456558d9595f46a318dee5ca93aa714e1d590d8f58a0f0f80293c70", "typeString": "literal_string \"RELEASE START\"" } ], "id": 13309, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1142:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 13315, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1142:64:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13316, "nodeType": "ExpressionStatement", "src": "1142:64:47" }, { "id": 13317, "nodeType": "PlaceholderStatement", "src": "1216:1:47" } ] }, "documentation": null, "id": 13319, "name": "beforeStartRelease", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 13308, "nodeType": "ParameterList", "parameters": [], "src": "1129:2:47" }, "src": "1102:122:47", "virtual": false, "visibility": "internal" }, { "body": { "id": 13330, "nodeType": "Block", "src": "1259:97:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13322, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "1277:5:47", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 13323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1277:15:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 13324, "name": "_START_RELEASE_TIME_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "1296:20:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1277:39:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "52454c45415345204e4f54205354415254", "id": 13326, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1318:19:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d1c6d0d51cf86e52bbb81749e15149e11905f59c177a806a97066f0f5294a1a7", "typeString": "literal_string \"RELEASE NOT START\"" }, "value": "RELEASE NOT START" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_d1c6d0d51cf86e52bbb81749e15149e11905f59c177a806a97066f0f5294a1a7", "typeString": "literal_string \"RELEASE NOT START\"" } ], "id": 13321, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1269:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 13327, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1269:69:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13328, "nodeType": "ExpressionStatement", "src": "1269:69:47" }, { "id": 13329, "nodeType": "PlaceholderStatement", "src": "1348:1:47" } ] }, "documentation": null, "id": 13331, "name": "afterStartRelease", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 13320, "nodeType": "ParameterList", "parameters": [], "src": "1256:2:47" }, "src": "1230:126:47", "virtual": false, "visibility": "internal" }, { "body": { "id": 13340, "nodeType": "Block", "src": "1395:82:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1413:22:47", "subExpression": { "argumentTypes": null, "id": 13334, "name": "_DISTRIBUTE_FINISHED_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13297, "src": "1414:21:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "444953545249425554452046494e4953484544", "id": 13336, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1437:21:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1dff10d5356930ac471064449e1abe9c8226eb37527d5e20e7814e5c73b7417c", "typeString": "literal_string \"DISTRIBUTE FINISHED\"" }, "value": "DISTRIBUTE FINISHED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_1dff10d5356930ac471064449e1abe9c8226eb37527d5e20e7814e5c73b7417c", "typeString": "literal_string \"DISTRIBUTE FINISHED\"" } ], "id": 13333, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1405:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 13337, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1405:54:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13338, "nodeType": "ExpressionStatement", "src": "1405:54:47" }, { "id": 13339, "nodeType": "PlaceholderStatement", "src": "1469:1:47" } ] }, "documentation": null, "id": 13341, "name": "distributeNotFinished", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 13332, "nodeType": "ParameterList", "parameters": [], "src": "1392:2:47" }, "src": "1362:115:47", "virtual": false, "visibility": "internal" }, { "body": { "id": 13368, "nodeType": "Block", "src": "1678:165:47", "statements": [ { "expression": { "argumentTypes": null, "id": 13354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13352, "name": "_TOKEN_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13279, "src": "1688:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 13353, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13343, "src": "1698:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1688:16:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 13355, "nodeType": "ExpressionStatement", "src": "1688:16:47" }, { "expression": { "argumentTypes": null, "id": 13358, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13356, "name": "_START_RELEASE_TIME_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "1714:20:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 13357, "name": "_startReleaseTime", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13345, "src": "1737:17:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1714:40:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13359, "nodeType": "ExpressionStatement", "src": "1714:40:47" }, { "expression": { "argumentTypes": null, "id": 13362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13360, "name": "_RELEASE_DURATION_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13293, "src": "1764:18:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 13361, "name": "_releaseDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13347, "src": "1785:16:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1764:37:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13363, "nodeType": "ExpressionStatement", "src": "1764:37:47" }, { "expression": { "argumentTypes": null, "id": 13366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13364, "name": "_CLIFF_RATE_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13295, "src": "1811:12:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 13365, "name": "_cliffRate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13349, "src": "1826:10:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1811:25:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13367, "nodeType": "ExpressionStatement", "src": "1811:25:47" } ] }, "documentation": null, "id": 13369, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13350, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13343, "mutability": "mutable", "name": "_token", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13369, "src": "1553:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13342, "name": "address", "nodeType": "ElementaryTypeName", "src": "1553:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13345, "mutability": "mutable", "name": "_startReleaseTime", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13369, "src": "1577:25:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13344, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1577:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13347, "mutability": "mutable", "name": "_releaseDuration", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13369, "src": "1612:24:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13346, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1612:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13349, "mutability": "mutable", "name": "_cliffRate", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13369, "src": "1646:18:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13348, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1646:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1543:127:47" }, "returnParameters": { "id": 13351, "nodeType": "ParameterList", "parameters": [], "src": "1678:0:47" }, "scope": 13789, "src": "1532:311:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 13388, "nodeType": "Block", "src": "1901:119:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13377, "name": "_OWNER_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11172, "src": "1928:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 13378, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13371, "src": "1937:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 13376, "name": "_tokenTransferIn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13772, "src": "1911:16:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 13379, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1911:33:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13380, "nodeType": "ExpressionStatement", "src": "1911:33:47" }, { "expression": { "argumentTypes": null, "id": 13386, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13381, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "1954:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13384, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13371, "src": "2006:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13382, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "1979:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13383, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "1979:26:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13385, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1979:34:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1954:59:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13387, "nodeType": "ExpressionStatement", "src": "1954:59:47" } ] }, "documentation": null, "functionSelector": "b6b55f25", "id": 13389, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 13374, "modifierName": { "argumentTypes": null, "id": 13373, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "1891:9:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "1891:9:47" } ], "name": "deposit", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13372, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13371, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13389, "src": "1866:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13370, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1866:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1865:16:47" }, "returnParameters": { "id": 13375, "nodeType": "ParameterList", "parameters": [], "src": "1901:0:47" }, "scope": 13789, "src": "1849:171:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13408, "nodeType": "Block", "src": "2079:120:47", "statements": [ { "expression": { "argumentTypes": null, "id": 13401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13396, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "2089:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13399, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13391, "src": "2141:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13397, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "2114:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "2114:26:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13400, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2114:34:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2089:59:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13402, "nodeType": "ExpressionStatement", "src": "2089:59:47" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13404, "name": "_OWNER_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11172, "src": "2176:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 13405, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13391, "src": "2185:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 13403, "name": "_tokenTransferOut", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13788, "src": "2158:17:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 13406, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2158:34:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13407, "nodeType": "ExpressionStatement", "src": "2158:34:47" } ] }, "documentation": null, "functionSelector": "2e1a7d4d", "id": 13409, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 13394, "modifierName": { "argumentTypes": null, "id": 13393, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "2069:9:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2069:9:47" } ], "name": "withdraw", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13392, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13391, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13409, "src": "2044:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13390, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2044:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2043:16:47" }, "returnParameters": { "id": 13395, "nodeType": "ParameterList", "parameters": [], "src": "2079:0:47" }, "scope": 13789, "src": "2026:173:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13418, "nodeType": "Block", "src": "2252:45:47", "statements": [ { "expression": { "argumentTypes": null, "id": 13416, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13414, "name": "_DISTRIBUTE_FINISHED_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13297, "src": "2262:21:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 13415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "2286:4:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "2262:28:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 13417, "nodeType": "ExpressionStatement", "src": "2262:28:47" } ] }, "documentation": null, "functionSelector": "e5612b3b", "id": 13419, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 13412, "modifierName": { "argumentTypes": null, "id": 13411, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "2242:9:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2242:9:47" } ], "name": "finishDistribute", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13410, "nodeType": "ParameterList", "parameters": [], "src": "2230:2:47" }, "returnParameters": { "id": 13413, "nodeType": "ParameterList", "parameters": [], "src": "2252:0:47" }, "scope": 13789, "src": "2205:92:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13489, "nodeType": "Block", "src": "2463:453:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13431, "name": "holderList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13422, "src": "2481:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, "id": 13432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2481:17:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13433, "name": "amountList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13425, "src": "2502:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, "id": 13434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2502:17:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2481:38:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "6261746368206772616e74206c656e677468206e6f74206d61746368", "id": 13436, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2521:30:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f97cdefb3af96b4ac4dd2d950eccc5c5e9183dc3cb145adbdd9254602e054240", "typeString": "literal_string \"batch grant length not match\"" }, "value": "batch grant length not match" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f97cdefb3af96b4ac4dd2d950eccc5c5e9183dc3cb145adbdd9254602e054240", "typeString": "literal_string \"batch grant length not match\"" } ], "id": 13430, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2473:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 13437, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2473:79:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13438, "nodeType": "ExpressionStatement", "src": "2473:79:47" }, { "assignments": [ 13440 ], "declarations": [ { "constant": false, "id": 13440, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13489, "src": "2562:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13439, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2562:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13442, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 13441, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2579:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "2562:18:47" }, { "body": { "id": 13480, "nodeType": "Block", "src": "2638:203:47", "statements": [ { "expression": { "argumentTypes": null, "id": 13469, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13454, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "2702:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13458, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13455, "name": "holderList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13422, "src": "2717:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, "id": 13457, "indexExpression": { "argumentTypes": null, "id": 13456, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13444, "src": "2728:1:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2717:13:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2702:29:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13465, "name": "amountList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13425, "src": "2768:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, "id": 13467, "indexExpression": { "argumentTypes": null, "id": 13466, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13444, "src": "2779:1:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2768:13:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13459, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "2734:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13463, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13460, "name": "holderList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13422, "src": "2749:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, "id": 13462, "indexExpression": { "argumentTypes": null, "id": 13461, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13444, "src": "2760:1:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2749:13:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2734:29:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13464, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "2734:33:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13468, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2734:48:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2702:80:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13470, "nodeType": "ExpressionStatement", "src": "2702:80:47" }, { "expression": { "argumentTypes": null, "id": 13478, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13471, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13440, "src": "2796:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13474, "name": "amountList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13425, "src": "2816:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, "id": 13476, "indexExpression": { "argumentTypes": null, "id": 13475, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13444, "src": "2827:1:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2816:13:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13472, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13440, "src": "2805:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "2805:10:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13477, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2805:25:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2796:34:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13479, "nodeType": "ExpressionStatement", "src": "2796:34:47" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 13447, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13444, "src": "2610:1:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13448, "name": "holderList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13422, "src": "2614:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, "id": 13449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2614:17:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2610:21:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 13481, "initializationExpression": { "assignments": [ 13444 ], "declarations": [ { "constant": false, "id": 13444, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13481, "src": "2595:9:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13443, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2595:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13446, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 13445, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2607:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "2595:13:47" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 13452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "2633:3:47", "subExpression": { "argumentTypes": null, "id": 13451, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13444, "src": "2635:1:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13453, "nodeType": "ExpressionStatement", "src": "2633:3:47" }, "nodeType": "ForStatement", "src": "2590:251:47" }, { "expression": { "argumentTypes": null, "id": 13487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13482, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "2850:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13485, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13440, "src": "2902:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13483, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "2875:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "2875:26:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13486, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2875:34:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2850:59:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13488, "nodeType": "ExpressionStatement", "src": "2850:59:47" } ] }, "documentation": null, "functionSelector": "c2ae1680", "id": 13490, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 13428, "modifierName": { "argumentTypes": null, "id": 13427, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "2449:9:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2449:9:47" } ], "name": "grant", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13426, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13422, "mutability": "mutable", "name": "holderList", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13490, "src": "2362:29:47", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 13420, "name": "address", "nodeType": "ElementaryTypeName", "src": "2362:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 13421, "length": null, "nodeType": "ArrayTypeName", "src": "2362:9:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13425, "mutability": "mutable", "name": "amountList", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13490, "src": "2393:29:47", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 13423, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2393:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13424, "length": null, "nodeType": "ArrayTypeName", "src": "2393:9:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "value": null, "visibility": "internal" } ], "src": "2361:62:47" }, "returnParameters": { "id": 13429, "nodeType": "ParameterList", "parameters": [], "src": "2463:0:47" }, "scope": 13789, "src": "2347:569:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13525, "nodeType": "Block", "src": "2995:216:47", "statements": [ { "expression": { "argumentTypes": null, "id": 13511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13499, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "3005:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13507, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3098:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13509, "indexExpression": { "argumentTypes": null, "id": 13508, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13492, "src": "3114:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3098:23:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13502, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3057:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13504, "indexExpression": { "argumentTypes": null, "id": 13503, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13492, "src": "3072:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3057:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13500, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "3030:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "3030:26:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13505, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3030:50:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "3030:54:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13510, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3030:101:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3005:126:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13512, "nodeType": "ExpressionStatement", "src": "3005:126:47" }, { "expression": { "argumentTypes": null, "id": 13517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13513, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3141:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13515, "indexExpression": { "argumentTypes": null, "id": 13514, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13492, "src": "3156:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3141:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 13516, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3166:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3141:26:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13518, "nodeType": "ExpressionStatement", "src": "3141:26:47" }, { "expression": { "argumentTypes": null, "id": 13523, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13519, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3177:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13521, "indexExpression": { "argumentTypes": null, "id": 13520, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13492, "src": "3193:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3177:23:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 13522, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3203:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3177:27:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13524, "nodeType": "ExpressionStatement", "src": "3177:27:47" } ] }, "documentation": null, "functionSelector": "ca430519", "id": 13526, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 13495, "modifierName": { "argumentTypes": null, "id": 13494, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "2963:9:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2963:9:47" }, { "arguments": null, "id": 13497, "modifierName": { "argumentTypes": null, "id": 13496, "name": "distributeNotFinished", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13341, "src": "2973:21:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2973:21:47" } ], "name": "recall", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13493, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13492, "mutability": "mutable", "name": "holder", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13526, "src": "2938:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13491, "name": "address", "nodeType": "ElementaryTypeName", "src": "2938:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2937:16:47" }, "returnParameters": { "id": 13498, "nodeType": "ParameterList", "parameters": [], "src": "2995:0:47" }, "scope": 13789, "src": "2922:289:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13573, "nodeType": "Block", "src": "3312:254:47", "statements": [ { "expression": { "argumentTypes": null, "id": 13543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13531, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3322:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13533, "indexExpression": { "argumentTypes": null, "id": 13532, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13528, "src": "3337:2:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3322:18:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13538, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3366:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13541, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13539, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3381:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3381:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3366:26:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13534, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3343:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13536, "indexExpression": { "argumentTypes": null, "id": 13535, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13528, "src": "3358:2:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3343:18:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "3343:22:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13542, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3343:50:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3322:71:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13544, "nodeType": "ExpressionStatement", "src": "3322:71:47" }, { "expression": { "argumentTypes": null, "id": 13557, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13545, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3403:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13547, "indexExpression": { "argumentTypes": null, "id": 13546, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13528, "src": "3419:2:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3403:19:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13552, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3449:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13555, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13553, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3465:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3465:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3449:27:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13548, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3425:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13550, "indexExpression": { "argumentTypes": null, "id": 13549, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13528, "src": "3441:2:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3425:19:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13551, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "3425:23:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13556, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3425:52:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3403:74:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13558, "nodeType": "ExpressionStatement", "src": "3403:74:47" }, { "expression": { "argumentTypes": null, "id": 13564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13559, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3488:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13562, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13560, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3503:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13561, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3503:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3488:26:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 13563, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3517:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3488:30:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13565, "nodeType": "ExpressionStatement", "src": "3488:30:47" }, { "expression": { "argumentTypes": null, "id": 13571, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13566, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3528:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13569, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13567, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3544:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3544:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3528:27:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 13570, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3558:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3528:31:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13572, "nodeType": "ExpressionStatement", "src": "3528:31:47" } ] }, "documentation": null, "functionSelector": "7db41eae", "id": 13574, "implemented": true, "kind": "function", "modifiers": [], "name": "transferLockedToken", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13529, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13528, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13574, "src": "3291:10:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13527, "name": "address", "nodeType": "ElementaryTypeName", "src": "3291:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3290:12:47" }, "returnParameters": { "id": 13530, "nodeType": "ParameterList", "parameters": [], "src": "3312:0:47" }, "scope": 13789, "src": "3262:304:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13617, "nodeType": "Block", "src": "3598:378:47", "statements": [ { "assignments": [ 13578 ], "declarations": [ { "constant": false, "id": 13578, "mutability": "mutable", "name": "claimableToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13617, "src": "3608:22:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13577, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3608:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13583, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13580, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3653:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3653:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 13579, "name": "getClaimableBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13679, "src": "3633:19:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 13582, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3633:31:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "3608:56:47" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13585, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3692:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3692:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 13587, "name": "claimableToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13578, "src": "3704:14:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 13584, "name": "_tokenTransferOut", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13788, "src": "3674:17:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 13588, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3674:45:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13589, "nodeType": "ExpressionStatement", "src": "3674:45:47" }, { "expression": { "argumentTypes": null, "id": 13601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13590, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3729:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13593, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13591, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3745:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13592, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3745:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3729:27:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13599, "name": "claimableToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13578, "src": "3791:14:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13594, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3759:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13597, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13595, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3775:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3775:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3759:27:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "3759:31:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13600, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3759:47:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3729:77:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13602, "nodeType": "ExpressionStatement", "src": "3729:77:47" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13604, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3840:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13605, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3840:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13606, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3864:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13609, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13607, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3879:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3879:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3864:26:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13610, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3904:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13613, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13611, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3920:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13612, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3920:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3904:27:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 13614, "name": "claimableToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13578, "src": "3945:14:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 13603, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13307, "src": "3821:5:47", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256,uint256)" } }, "id": 13615, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3821:148:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13616, "nodeType": "EmitStatement", "src": "3816:153:47" } ] }, "documentation": null, "functionSelector": "4e71d92d", "id": 13618, "implemented": true, "kind": "function", "modifiers": [], "name": "claim", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13575, "nodeType": "ParameterList", "parameters": [], "src": "3586:2:47" }, "returnParameters": { "id": 13576, "nodeType": "ParameterList", "parameters": [], "src": "3598:0:47" }, "scope": 13789, "src": "3572:404:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13628, "nodeType": "Block", "src": "4076:63:47", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13623, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "4093:5:47", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 13624, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4093:15:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 13625, "name": "_START_RELEASE_TIME_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "4112:20:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4093:39:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 13622, "id": 13627, "nodeType": "Return", "src": "4086:46:47" } ] }, "documentation": null, "functionSelector": "cd32f086", "id": 13629, "implemented": true, "kind": "function", "modifiers": [], "name": "isReleaseStart", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13619, "nodeType": "ParameterList", "parameters": [], "src": "4044:2:47" }, "returnParameters": { "id": 13622, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13621, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13629, "src": "4070:4:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 13620, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4070:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "4069:6:47" }, "scope": 13789, "src": "4021:118:47", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 13640, "nodeType": "Block", "src": "4219:46:47", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13636, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "4236:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13638, "indexExpression": { "argumentTypes": null, "id": 13637, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13631, "src": "4251:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4236:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 13635, "id": 13639, "nodeType": "Return", "src": "4229:29:47" } ] }, "documentation": null, "functionSelector": "d1828496", "id": 13641, "implemented": true, "kind": "function", "modifiers": [], "name": "getOriginBalance", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13632, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13631, "mutability": "mutable", "name": "holder", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13641, "src": "4171:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13630, "name": "address", "nodeType": "ElementaryTypeName", "src": "4171:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4170:16:47" }, "returnParameters": { "id": 13635, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13634, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13641, "src": "4210:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13633, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4210:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4209:9:47" }, "scope": 13789, "src": "4145:120:47", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 13652, "nodeType": "Block", "src": "4346:47:47", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13648, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "4363:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13650, "indexExpression": { "argumentTypes": null, "id": 13649, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13643, "src": "4379:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4363:23:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 13647, "id": 13651, "nodeType": "Return", "src": "4356:30:47" } ] }, "documentation": null, "functionSelector": "cf0e80fe", "id": 13653, "implemented": true, "kind": "function", "modifiers": [], "name": "getClaimedBalance", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13644, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13643, "mutability": "mutable", "name": "holder", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13653, "src": "4298:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13642, "name": "address", "nodeType": "ElementaryTypeName", "src": "4298:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4297:16:47" }, "returnParameters": { "id": 13647, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13646, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13653, "src": "4337:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13645, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4337:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4336:9:47" }, "scope": 13789, "src": "4271:122:47", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 13678, "nodeType": "Block", "src": "4474:157:47", "statements": [ { "assignments": [ 13661 ], "declarations": [ { "constant": false, "id": 13661, "mutability": "mutable", "name": "remainingToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13678, "src": "4484:22:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13660, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4484:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13665, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13663, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13655, "src": "4529:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 13662, "name": "getRemainingBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13702, "src": "4509:19:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 13664, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4509:27:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4484:52:47" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13673, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "4600:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13675, "indexExpression": { "argumentTypes": null, "id": 13674, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13655, "src": "4616:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4600:23:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13670, "name": "remainingToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13661, "src": "4580:14:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13666, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "4553:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13668, "indexExpression": { "argumentTypes": null, "id": 13667, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13655, "src": "4568:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4553:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13669, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "4553:26:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13671, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4553:42:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13672, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "4553:46:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13676, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4553:71:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 13659, "id": 13677, "nodeType": "Return", "src": "4546:78:47" } ] }, "documentation": null, "functionSelector": "06def802", "id": 13679, "implemented": true, "kind": "function", "modifiers": [], "name": "getClaimableBalance", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13656, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13655, "mutability": "mutable", "name": "holder", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13679, "src": "4428:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13654, "name": "address", "nodeType": "ElementaryTypeName", "src": "4428:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4427:16:47" }, "returnParameters": { "id": 13659, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13658, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13679, "src": "4465:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13657, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4465:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4464:9:47" }, "scope": 13789, "src": "4399:232:47", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 13701, "nodeType": "Block", "src": "4712:148:47", "statements": [ { "assignments": [ 13687 ], "declarations": [ { "constant": false, "id": 13687, "mutability": "mutable", "name": "remainingRatio", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13701, "src": "4722:22:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13686, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4722:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13692, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13689, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "4765:5:47", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 13690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4765:15:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 13688, "name": "getRemainingRatio", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13752, "src": "4747:17:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) view returns (uint256)" } }, "id": 13691, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4747:34:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4722:59:47" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13695, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "4814:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13697, "indexExpression": { "argumentTypes": null, "id": 13696, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13681, "src": "4829:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4814:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 13698, "name": "remainingRatio", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13687, "src": "4838:14:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13693, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "4798:11:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 13694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "4798:15:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13699, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4798:55:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 13685, "id": 13700, "nodeType": "Return", "src": "4791:62:47" } ] }, "documentation": null, "functionSelector": "001bf8f6", "id": 13702, "implemented": true, "kind": "function", "modifiers": [], "name": "getRemainingBalance", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13682, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13681, "mutability": "mutable", "name": "holder", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13702, "src": "4666:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13680, "name": "address", "nodeType": "ElementaryTypeName", "src": "4666:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4665:16:47" }, "returnParameters": { "id": 13685, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13684, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13702, "src": "4703:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13683, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4703:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4702:9:47" }, "scope": 13789, "src": "4637:223:47", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 13751, "nodeType": "Block", "src": "4942:426:47", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 13709, "name": "timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13704, "src": "4956:9:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 13710, "name": "_START_RELEASE_TIME_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "4968:20:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4956:32:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 13716, "nodeType": "IfStatement", "src": "4952:85:47", "trueBody": { "id": 13715, "nodeType": "Block", "src": "4990:47:47", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13712, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "5011:11:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 13713, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ONE", "nodeType": "MemberAccess", "referencedDeclaration": 11006, "src": "5011:15:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 13708, "id": 13714, "nodeType": "Return", "src": "5004:22:47" } ] } }, { "assignments": [ 13718 ], "declarations": [ { "constant": false, "id": 13718, "mutability": "mutable", "name": "timePast", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13751, "src": "5046:16:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13717, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5046:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13723, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13721, "name": "_START_RELEASE_TIME_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "5079:20:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13719, "name": "timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13704, "src": "5065:9:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "5065:13:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13722, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5065:35:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5046:54:47" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13726, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 13724, "name": "timePast", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13718, "src": "5114:8:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 13725, "name": "_RELEASE_DURATION_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13293, "src": "5125:18:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5114:29:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 13749, "nodeType": "Block", "src": "5329:33:47", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", "id": 13747, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5350:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "functionReturnParameters": 13708, "id": 13748, "nodeType": "Return", "src": "5343:8:47" } ] }, "id": 13750, "nodeType": "IfStatement", "src": "5110:252:47", "trueBody": { "id": 13746, "nodeType": "Block", "src": "5145:178:47", "statements": [ { "assignments": [ 13728 ], "declarations": [ { "constant": false, "id": 13728, "mutability": "mutable", "name": "remainingTime", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13746, "src": "5159:21:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13727, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5159:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13733, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13731, "name": "timePast", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13718, "src": "5206:8:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13729, "name": "_RELEASE_DURATION_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13293, "src": "5183:18:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13730, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "5183:22:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13732, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5183:32:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5159:56:47" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13743, "name": "_RELEASE_DURATION_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13293, "src": "5293:18:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13740, "name": "remainingTime", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13728, "src": "5274:13:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13737, "name": "_CLIFF_RATE_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13295, "src": "5256:12:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13734, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "5236:11:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 13735, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ONE", "nodeType": "MemberAccess", "referencedDeclaration": 11006, "src": "5236:15:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "5236:19:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13738, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5236:33:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13739, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "5236:37:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13741, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5236:52:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13742, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", "referencedDeclaration": 11499, "src": "5236:56:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13744, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5236:76:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 13708, "id": 13745, "nodeType": "Return", "src": "5229:83:47" } ] } } ] }, "documentation": null, "functionSelector": "6a4de5d1", "id": 13752, "implemented": true, "kind": "function", "modifiers": [], "name": "getRemainingRatio", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13705, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13704, "mutability": "mutable", "name": "timestamp", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13752, "src": "4893:17:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13703, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4893:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4892:19:47" }, "returnParameters": { "id": 13708, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13707, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13752, "src": "4933:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13706, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4933:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4932:9:47" }, "scope": 13789, "src": "4866:502:47", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 13771, "nodeType": "Block", "src": "5489:78:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13763, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13754, "src": "5532:4:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13766, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "5546:4:47", "typeDescriptions": { "typeIdentifier": "t_contract$_LockedTokenVault_$13789", "typeString": "contract LockedTokenVault" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_LockedTokenVault_$13789", "typeString": "contract LockedTokenVault" } ], "id": 13765, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5538:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 13764, "name": "address", "nodeType": "ElementaryTypeName", "src": "5538:7:47", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 13767, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5538:13:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 13768, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13756, "src": "5553:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13760, "name": "_TOKEN_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13279, "src": "5506:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 13759, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "5499:6:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 13761, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5499:15:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 13762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 11354, "src": "5499:32:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", "typeString": "function (contract IERC20,address,address,uint256)" } }, "id": 13769, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5499:61:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13770, "nodeType": "ExpressionStatement", "src": "5499:61:47" } ] }, "documentation": null, "id": 13772, "implemented": true, "kind": "function", "modifiers": [], "name": "_tokenTransferIn", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13757, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13754, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13772, "src": "5450:12:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13753, "name": "address", "nodeType": "ElementaryTypeName", "src": "5450:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13756, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13772, "src": "5464:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13755, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5464:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5449:30:47" }, "returnParameters": { "id": 13758, "nodeType": "ParameterList", "parameters": [], "src": "5489:0:47" }, "scope": 13789, "src": "5424:143:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 13787, "nodeType": "Block", "src": "5637:57:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13783, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13774, "src": "5676:2:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 13784, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13776, "src": "5680:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13780, "name": "_TOKEN_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13279, "src": "5654:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 13779, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "5647:6:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 13781, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5647:15:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 13782, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", "referencedDeclaration": 11329, "src": "5647:28:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", "typeString": "function (contract IERC20,address,uint256)" } }, "id": 13785, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5647:40:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13786, "nodeType": "ExpressionStatement", "src": "5647:40:47" } ] }, "documentation": null, "id": 13788, "implemented": true, "kind": "function", "modifiers": [], "name": "_tokenTransferOut", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13777, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13774, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13788, "src": "5600:10:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13773, "name": "address", "nodeType": "ElementaryTypeName", "src": "5600:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13776, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13788, "src": "5612:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13775, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5612:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5599:28:47" }, "returnParameters": { "id": 13778, "nodeType": "ParameterList", "parameters": [], "src": "5637:0:47" }, "scope": 13789, "src": "5573:121:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" } ], "scope": 13790, "src": "480:5216:47" } ], "src": "78:5619:47" }, "legacyAST": { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/LockedTokenVault.sol", "exportedSymbols": { "LockedTokenVault": [ 13789 ] }, "id": 13790, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 13257, "literals": [ "solidity", "0.6", ".9" ], "nodeType": "PragmaDirective", "src": "78:22:47" }, { "id": 13258, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "101:33:47" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", "file": "../lib/SafeMath.sol", "id": 13260, "nodeType": "ImportDirective", "scope": 13790, "sourceUnit": 11624, "src": "136:45:47", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 13259, "name": "SafeMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "144:8:47", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", "file": "../lib/DecimalMath.sol", "id": 13262, "nodeType": "ImportDirective", "scope": 13790, "sourceUnit": 11079, "src": "182:51:47", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 13261, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "190:11:47", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", "file": "../lib/Ownable.sol", "id": 13264, "nodeType": "ImportDirective", "scope": 13790, "sourceUnit": 11272, "src": "234:43:47", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 13263, "name": "Ownable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "242:7:47", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", "file": "../lib/SafeERC20.sol", "id": 13266, "nodeType": "ImportDirective", "scope": 13790, "sourceUnit": 11441, "src": "278:47:47", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 13265, "name": "SafeERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "286:9:47", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", "file": "../intf/IERC20.sol", "id": 13268, "nodeType": "ImportDirective", "scope": 13790, "sourceUnit": 10608, "src": "326:42:47", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 13267, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "334:6:47", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 13270, "name": "Ownable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11271, "src": "509:7:47", "typeDescriptions": { "typeIdentifier": "t_contract$_Ownable_$11271", "typeString": "contract Ownable" } }, "id": 13271, "nodeType": "InheritanceSpecifier", "src": "509:7:47" } ], "contractDependencies": [ 11271 ], "contractKind": "contract", "documentation": { "id": 13269, "nodeType": "StructuredDocumentation", "src": "371:107:47", "text": " @title LockedTokenVault\n @author DODO Breeder\n @notice Lock Token and release it linearly" }, "fullyImplemented": true, "id": 13789, "linearizedBaseContracts": [ 13789, 11271 ], "name": "LockedTokenVault", "nodeType": "ContractDefinition", "nodes": [ { "id": 13274, "libraryName": { "contractScope": null, "id": 13272, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11623, "src": "529:8:47", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$11623", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "523:27:47", "typeName": { "id": 13273, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "542:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "id": 13277, "libraryName": { "contractScope": null, "id": 13275, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11440, "src": "561:9:47", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeERC20_$11440", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", "src": "555:27:47", "typeName": { "contractScope": null, "id": 13276, "name": "IERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 10607, "src": "575:6:47", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } } }, { "constant": false, "id": 13279, "mutability": "mutable", "name": "_TOKEN_", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "588:15:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13278, "name": "address", "nodeType": "ElementaryTypeName", "src": "588:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13283, "mutability": "mutable", "name": "originBalances", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "610:51:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 13282, "keyType": { "id": 13280, "name": "address", "nodeType": "ElementaryTypeName", "src": "618:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "610:27:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 13281, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "629:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13287, "mutability": "mutable", "name": "claimedBalances", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "667:52:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 13286, "keyType": { "id": 13284, "name": "address", "nodeType": "ElementaryTypeName", "src": "675:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "667:27:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 13285, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "686:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "functionSelector": "24b32741", "id": 13289, "mutability": "mutable", "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "726:37:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13288, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "726:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "2a8b0480", "id": 13291, "mutability": "mutable", "name": "_START_RELEASE_TIME_", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "769:35:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13290, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "769:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "ef903642", "id": 13293, "mutability": "mutable", "name": "_RELEASE_DURATION_", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "810:33:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13292, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "810:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "294dafc0", "id": 13295, "mutability": "mutable", "name": "_CLIFF_RATE_", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "849:27:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13294, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "849:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "710475f6", "id": 13297, "mutability": "mutable", "name": "_DISTRIBUTE_FINISHED_", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13789, "src": "883:33:47", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 13296, "name": "bool", "nodeType": "ElementaryTypeName", "src": "883:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 13307, "name": "Claim", "nodeType": "EventDefinition", "parameters": { "id": 13306, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13299, "indexed": true, "mutability": "mutable", "name": "holder", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13307, "src": "979:22:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13298, "name": "address", "nodeType": "ElementaryTypeName", "src": "979:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13301, "indexed": false, "mutability": "mutable", "name": "origin", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13307, "src": "1003:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13300, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1003:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13303, "indexed": false, "mutability": "mutable", "name": "claimed", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13307, "src": "1019:15:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13302, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1019:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13305, "indexed": false, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13307, "src": "1036:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13304, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1036:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "978:73:47" }, "src": "967:85:47" }, { "body": { "id": 13318, "nodeType": "Block", "src": "1132:92:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13313, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13310, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "1150:5:47", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 13311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1150:15:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 13312, "name": "_START_RELEASE_TIME_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "1168:20:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1150:38:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "52454c45415345205354415254", "id": 13314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1190:15:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3a9cf605e456558d9595f46a318dee5ca93aa714e1d590d8f58a0f0f80293c70", "typeString": "literal_string \"RELEASE START\"" }, "value": "RELEASE START" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3a9cf605e456558d9595f46a318dee5ca93aa714e1d590d8f58a0f0f80293c70", "typeString": "literal_string \"RELEASE START\"" } ], "id": 13309, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1142:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 13315, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1142:64:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13316, "nodeType": "ExpressionStatement", "src": "1142:64:47" }, { "id": 13317, "nodeType": "PlaceholderStatement", "src": "1216:1:47" } ] }, "documentation": null, "id": 13319, "name": "beforeStartRelease", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 13308, "nodeType": "ParameterList", "parameters": [], "src": "1129:2:47" }, "src": "1102:122:47", "virtual": false, "visibility": "internal" }, { "body": { "id": 13330, "nodeType": "Block", "src": "1259:97:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13322, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "1277:5:47", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 13323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1277:15:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 13324, "name": "_START_RELEASE_TIME_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "1296:20:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1277:39:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "52454c45415345204e4f54205354415254", "id": 13326, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1318:19:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d1c6d0d51cf86e52bbb81749e15149e11905f59c177a806a97066f0f5294a1a7", "typeString": "literal_string \"RELEASE NOT START\"" }, "value": "RELEASE NOT START" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_d1c6d0d51cf86e52bbb81749e15149e11905f59c177a806a97066f0f5294a1a7", "typeString": "literal_string \"RELEASE NOT START\"" } ], "id": 13321, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1269:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 13327, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1269:69:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13328, "nodeType": "ExpressionStatement", "src": "1269:69:47" }, { "id": 13329, "nodeType": "PlaceholderStatement", "src": "1348:1:47" } ] }, "documentation": null, "id": 13331, "name": "afterStartRelease", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 13320, "nodeType": "ParameterList", "parameters": [], "src": "1256:2:47" }, "src": "1230:126:47", "virtual": false, "visibility": "internal" }, { "body": { "id": 13340, "nodeType": "Block", "src": "1395:82:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1413:22:47", "subExpression": { "argumentTypes": null, "id": 13334, "name": "_DISTRIBUTE_FINISHED_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13297, "src": "1414:21:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "444953545249425554452046494e4953484544", "id": 13336, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1437:21:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1dff10d5356930ac471064449e1abe9c8226eb37527d5e20e7814e5c73b7417c", "typeString": "literal_string \"DISTRIBUTE FINISHED\"" }, "value": "DISTRIBUTE FINISHED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_1dff10d5356930ac471064449e1abe9c8226eb37527d5e20e7814e5c73b7417c", "typeString": "literal_string \"DISTRIBUTE FINISHED\"" } ], "id": 13333, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1405:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 13337, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1405:54:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13338, "nodeType": "ExpressionStatement", "src": "1405:54:47" }, { "id": 13339, "nodeType": "PlaceholderStatement", "src": "1469:1:47" } ] }, "documentation": null, "id": 13341, "name": "distributeNotFinished", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 13332, "nodeType": "ParameterList", "parameters": [], "src": "1392:2:47" }, "src": "1362:115:47", "virtual": false, "visibility": "internal" }, { "body": { "id": 13368, "nodeType": "Block", "src": "1678:165:47", "statements": [ { "expression": { "argumentTypes": null, "id": 13354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13352, "name": "_TOKEN_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13279, "src": "1688:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 13353, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13343, "src": "1698:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1688:16:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 13355, "nodeType": "ExpressionStatement", "src": "1688:16:47" }, { "expression": { "argumentTypes": null, "id": 13358, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13356, "name": "_START_RELEASE_TIME_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "1714:20:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 13357, "name": "_startReleaseTime", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13345, "src": "1737:17:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1714:40:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13359, "nodeType": "ExpressionStatement", "src": "1714:40:47" }, { "expression": { "argumentTypes": null, "id": 13362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13360, "name": "_RELEASE_DURATION_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13293, "src": "1764:18:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 13361, "name": "_releaseDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13347, "src": "1785:16:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1764:37:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13363, "nodeType": "ExpressionStatement", "src": "1764:37:47" }, { "expression": { "argumentTypes": null, "id": 13366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13364, "name": "_CLIFF_RATE_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13295, "src": "1811:12:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 13365, "name": "_cliffRate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13349, "src": "1826:10:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1811:25:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13367, "nodeType": "ExpressionStatement", "src": "1811:25:47" } ] }, "documentation": null, "id": 13369, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13350, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13343, "mutability": "mutable", "name": "_token", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13369, "src": "1553:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13342, "name": "address", "nodeType": "ElementaryTypeName", "src": "1553:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13345, "mutability": "mutable", "name": "_startReleaseTime", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13369, "src": "1577:25:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13344, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1577:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13347, "mutability": "mutable", "name": "_releaseDuration", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13369, "src": "1612:24:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13346, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1612:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13349, "mutability": "mutable", "name": "_cliffRate", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13369, "src": "1646:18:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13348, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1646:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1543:127:47" }, "returnParameters": { "id": 13351, "nodeType": "ParameterList", "parameters": [], "src": "1678:0:47" }, "scope": 13789, "src": "1532:311:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 13388, "nodeType": "Block", "src": "1901:119:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13377, "name": "_OWNER_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11172, "src": "1928:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 13378, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13371, "src": "1937:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 13376, "name": "_tokenTransferIn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13772, "src": "1911:16:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 13379, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1911:33:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13380, "nodeType": "ExpressionStatement", "src": "1911:33:47" }, { "expression": { "argumentTypes": null, "id": 13386, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13381, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "1954:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13384, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13371, "src": "2006:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13382, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "1979:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13383, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "1979:26:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13385, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1979:34:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1954:59:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13387, "nodeType": "ExpressionStatement", "src": "1954:59:47" } ] }, "documentation": null, "functionSelector": "b6b55f25", "id": 13389, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 13374, "modifierName": { "argumentTypes": null, "id": 13373, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "1891:9:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "1891:9:47" } ], "name": "deposit", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13372, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13371, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13389, "src": "1866:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13370, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1866:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1865:16:47" }, "returnParameters": { "id": 13375, "nodeType": "ParameterList", "parameters": [], "src": "1901:0:47" }, "scope": 13789, "src": "1849:171:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13408, "nodeType": "Block", "src": "2079:120:47", "statements": [ { "expression": { "argumentTypes": null, "id": 13401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13396, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "2089:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13399, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13391, "src": "2141:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13397, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "2114:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "2114:26:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13400, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2114:34:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2089:59:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13402, "nodeType": "ExpressionStatement", "src": "2089:59:47" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13404, "name": "_OWNER_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11172, "src": "2176:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 13405, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13391, "src": "2185:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 13403, "name": "_tokenTransferOut", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13788, "src": "2158:17:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 13406, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2158:34:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13407, "nodeType": "ExpressionStatement", "src": "2158:34:47" } ] }, "documentation": null, "functionSelector": "2e1a7d4d", "id": 13409, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 13394, "modifierName": { "argumentTypes": null, "id": 13393, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "2069:9:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2069:9:47" } ], "name": "withdraw", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13392, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13391, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13409, "src": "2044:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13390, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2044:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2043:16:47" }, "returnParameters": { "id": 13395, "nodeType": "ParameterList", "parameters": [], "src": "2079:0:47" }, "scope": 13789, "src": "2026:173:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13418, "nodeType": "Block", "src": "2252:45:47", "statements": [ { "expression": { "argumentTypes": null, "id": 13416, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13414, "name": "_DISTRIBUTE_FINISHED_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13297, "src": "2262:21:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 13415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "2286:4:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "2262:28:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 13417, "nodeType": "ExpressionStatement", "src": "2262:28:47" } ] }, "documentation": null, "functionSelector": "e5612b3b", "id": 13419, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 13412, "modifierName": { "argumentTypes": null, "id": 13411, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "2242:9:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2242:9:47" } ], "name": "finishDistribute", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13410, "nodeType": "ParameterList", "parameters": [], "src": "2230:2:47" }, "returnParameters": { "id": 13413, "nodeType": "ParameterList", "parameters": [], "src": "2252:0:47" }, "scope": 13789, "src": "2205:92:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13489, "nodeType": "Block", "src": "2463:453:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13431, "name": "holderList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13422, "src": "2481:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, "id": 13432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2481:17:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13433, "name": "amountList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13425, "src": "2502:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, "id": 13434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2502:17:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2481:38:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "6261746368206772616e74206c656e677468206e6f74206d61746368", "id": 13436, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2521:30:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f97cdefb3af96b4ac4dd2d950eccc5c5e9183dc3cb145adbdd9254602e054240", "typeString": "literal_string \"batch grant length not match\"" }, "value": "batch grant length not match" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f97cdefb3af96b4ac4dd2d950eccc5c5e9183dc3cb145adbdd9254602e054240", "typeString": "literal_string \"batch grant length not match\"" } ], "id": 13430, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2473:7:47", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 13437, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2473:79:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13438, "nodeType": "ExpressionStatement", "src": "2473:79:47" }, { "assignments": [ 13440 ], "declarations": [ { "constant": false, "id": 13440, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13489, "src": "2562:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13439, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2562:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13442, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 13441, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2579:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "2562:18:47" }, { "body": { "id": 13480, "nodeType": "Block", "src": "2638:203:47", "statements": [ { "expression": { "argumentTypes": null, "id": 13469, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13454, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "2702:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13458, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13455, "name": "holderList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13422, "src": "2717:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, "id": 13457, "indexExpression": { "argumentTypes": null, "id": 13456, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13444, "src": "2728:1:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2717:13:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2702:29:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13465, "name": "amountList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13425, "src": "2768:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, "id": 13467, "indexExpression": { "argumentTypes": null, "id": 13466, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13444, "src": "2779:1:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2768:13:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13459, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "2734:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13463, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13460, "name": "holderList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13422, "src": "2749:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, "id": 13462, "indexExpression": { "argumentTypes": null, "id": 13461, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13444, "src": "2760:1:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2749:13:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2734:29:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13464, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "2734:33:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13468, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2734:48:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2702:80:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13470, "nodeType": "ExpressionStatement", "src": "2702:80:47" }, { "expression": { "argumentTypes": null, "id": 13478, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13471, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13440, "src": "2796:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13474, "name": "amountList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13425, "src": "2816:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, "id": 13476, "indexExpression": { "argumentTypes": null, "id": 13475, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13444, "src": "2827:1:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2816:13:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13472, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13440, "src": "2805:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "2805:10:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13477, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2805:25:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2796:34:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13479, "nodeType": "ExpressionStatement", "src": "2796:34:47" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 13447, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13444, "src": "2610:1:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13448, "name": "holderList", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13422, "src": "2614:10:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, "id": 13449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2614:17:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2610:21:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 13481, "initializationExpression": { "assignments": [ 13444 ], "declarations": [ { "constant": false, "id": 13444, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13481, "src": "2595:9:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13443, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2595:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13446, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 13445, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2607:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "2595:13:47" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 13452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "2633:3:47", "subExpression": { "argumentTypes": null, "id": 13451, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13444, "src": "2635:1:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13453, "nodeType": "ExpressionStatement", "src": "2633:3:47" }, "nodeType": "ForStatement", "src": "2590:251:47" }, { "expression": { "argumentTypes": null, "id": 13487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13482, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "2850:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13485, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13440, "src": "2902:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13483, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "2875:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "2875:26:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13486, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2875:34:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2850:59:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13488, "nodeType": "ExpressionStatement", "src": "2850:59:47" } ] }, "documentation": null, "functionSelector": "c2ae1680", "id": 13490, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 13428, "modifierName": { "argumentTypes": null, "id": 13427, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "2449:9:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2449:9:47" } ], "name": "grant", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13426, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13422, "mutability": "mutable", "name": "holderList", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13490, "src": "2362:29:47", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 13420, "name": "address", "nodeType": "ElementaryTypeName", "src": "2362:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 13421, "length": null, "nodeType": "ArrayTypeName", "src": "2362:9:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13425, "mutability": "mutable", "name": "amountList", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13490, "src": "2393:29:47", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 13423, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2393:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13424, "length": null, "nodeType": "ArrayTypeName", "src": "2393:9:47", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "value": null, "visibility": "internal" } ], "src": "2361:62:47" }, "returnParameters": { "id": 13429, "nodeType": "ParameterList", "parameters": [], "src": "2463:0:47" }, "scope": 13789, "src": "2347:569:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13525, "nodeType": "Block", "src": "2995:216:47", "statements": [ { "expression": { "argumentTypes": null, "id": 13511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 13499, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "3005:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13507, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3098:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13509, "indexExpression": { "argumentTypes": null, "id": 13508, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13492, "src": "3114:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3098:23:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13502, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3057:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13504, "indexExpression": { "argumentTypes": null, "id": 13503, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13492, "src": "3072:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3057:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13500, "name": "_UNDISTRIBUTED_AMOUNT_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "3030:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "3030:26:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13505, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3030:50:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "3030:54:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13510, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3030:101:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3005:126:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13512, "nodeType": "ExpressionStatement", "src": "3005:126:47" }, { "expression": { "argumentTypes": null, "id": 13517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13513, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3141:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13515, "indexExpression": { "argumentTypes": null, "id": 13514, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13492, "src": "3156:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3141:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 13516, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3166:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3141:26:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13518, "nodeType": "ExpressionStatement", "src": "3141:26:47" }, { "expression": { "argumentTypes": null, "id": 13523, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13519, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3177:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13521, "indexExpression": { "argumentTypes": null, "id": 13520, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13492, "src": "3193:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3177:23:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 13522, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3203:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3177:27:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13524, "nodeType": "ExpressionStatement", "src": "3177:27:47" } ] }, "documentation": null, "functionSelector": "ca430519", "id": 13526, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 13495, "modifierName": { "argumentTypes": null, "id": 13494, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "2963:9:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2963:9:47" }, { "arguments": null, "id": 13497, "modifierName": { "argumentTypes": null, "id": 13496, "name": "distributeNotFinished", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13341, "src": "2973:21:47", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "2973:21:47" } ], "name": "recall", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13493, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13492, "mutability": "mutable", "name": "holder", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13526, "src": "2938:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13491, "name": "address", "nodeType": "ElementaryTypeName", "src": "2938:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2937:16:47" }, "returnParameters": { "id": 13498, "nodeType": "ParameterList", "parameters": [], "src": "2995:0:47" }, "scope": 13789, "src": "2922:289:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13573, "nodeType": "Block", "src": "3312:254:47", "statements": [ { "expression": { "argumentTypes": null, "id": 13543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13531, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3322:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13533, "indexExpression": { "argumentTypes": null, "id": 13532, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13528, "src": "3337:2:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3322:18:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13538, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3366:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13541, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13539, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3381:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3381:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3366:26:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13534, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3343:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13536, "indexExpression": { "argumentTypes": null, "id": 13535, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13528, "src": "3358:2:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3343:18:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "3343:22:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13542, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3343:50:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3322:71:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13544, "nodeType": "ExpressionStatement", "src": "3322:71:47" }, { "expression": { "argumentTypes": null, "id": 13557, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13545, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3403:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13547, "indexExpression": { "argumentTypes": null, "id": 13546, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13528, "src": "3419:2:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3403:19:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13552, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3449:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13555, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13553, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3465:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3465:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3449:27:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13548, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3425:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13550, "indexExpression": { "argumentTypes": null, "id": 13549, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13528, "src": "3441:2:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3425:19:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13551, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "3425:23:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13556, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3425:52:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3403:74:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13558, "nodeType": "ExpressionStatement", "src": "3403:74:47" }, { "expression": { "argumentTypes": null, "id": 13564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13559, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3488:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13562, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13560, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3503:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13561, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3503:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3488:26:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 13563, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3517:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3488:30:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13565, "nodeType": "ExpressionStatement", "src": "3488:30:47" }, { "expression": { "argumentTypes": null, "id": 13571, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13566, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3528:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13569, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13567, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3544:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3544:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3528:27:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 13570, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3558:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3528:31:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13572, "nodeType": "ExpressionStatement", "src": "3528:31:47" } ] }, "documentation": null, "functionSelector": "7db41eae", "id": 13574, "implemented": true, "kind": "function", "modifiers": [], "name": "transferLockedToken", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13529, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13528, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13574, "src": "3291:10:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13527, "name": "address", "nodeType": "ElementaryTypeName", "src": "3291:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3290:12:47" }, "returnParameters": { "id": 13530, "nodeType": "ParameterList", "parameters": [], "src": "3312:0:47" }, "scope": 13789, "src": "3262:304:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13617, "nodeType": "Block", "src": "3598:378:47", "statements": [ { "assignments": [ 13578 ], "declarations": [ { "constant": false, "id": 13578, "mutability": "mutable", "name": "claimableToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13617, "src": "3608:22:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13577, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3608:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13583, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13580, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3653:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3653:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 13579, "name": "getClaimableBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13679, "src": "3633:19:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 13582, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3633:31:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "3608:56:47" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13585, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3692:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3692:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 13587, "name": "claimableToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13578, "src": "3704:14:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 13584, "name": "_tokenTransferOut", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13788, "src": "3674:17:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 13588, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3674:45:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13589, "nodeType": "ExpressionStatement", "src": "3674:45:47" }, { "expression": { "argumentTypes": null, "id": 13601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13590, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3729:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13593, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13591, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3745:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13592, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3745:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3729:27:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13599, "name": "claimableToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13578, "src": "3791:14:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13594, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3759:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13597, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13595, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3775:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3775:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3759:27:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "3759:31:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13600, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3759:47:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3729:77:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13602, "nodeType": "ExpressionStatement", "src": "3729:77:47" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13604, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3840:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13605, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3840:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13606, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "3864:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13609, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13607, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3879:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3879:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3864:26:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13610, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "3904:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13613, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13611, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "3920:3:47", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13612, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3920:10:47", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3904:27:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 13614, "name": "claimableToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13578, "src": "3945:14:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 13603, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13307, "src": "3821:5:47", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256,uint256)" } }, "id": 13615, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3821:148:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13616, "nodeType": "EmitStatement", "src": "3816:153:47" } ] }, "documentation": null, "functionSelector": "4e71d92d", "id": 13618, "implemented": true, "kind": "function", "modifiers": [], "name": "claim", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13575, "nodeType": "ParameterList", "parameters": [], "src": "3586:2:47" }, "returnParameters": { "id": 13576, "nodeType": "ParameterList", "parameters": [], "src": "3598:0:47" }, "scope": 13789, "src": "3572:404:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 13628, "nodeType": "Block", "src": "4076:63:47", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13623, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "4093:5:47", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 13624, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4093:15:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 13625, "name": "_START_RELEASE_TIME_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "4112:20:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4093:39:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 13622, "id": 13627, "nodeType": "Return", "src": "4086:46:47" } ] }, "documentation": null, "functionSelector": "cd32f086", "id": 13629, "implemented": true, "kind": "function", "modifiers": [], "name": "isReleaseStart", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13619, "nodeType": "ParameterList", "parameters": [], "src": "4044:2:47" }, "returnParameters": { "id": 13622, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13621, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13629, "src": "4070:4:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 13620, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4070:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "4069:6:47" }, "scope": 13789, "src": "4021:118:47", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 13640, "nodeType": "Block", "src": "4219:46:47", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13636, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "4236:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13638, "indexExpression": { "argumentTypes": null, "id": 13637, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13631, "src": "4251:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4236:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 13635, "id": 13639, "nodeType": "Return", "src": "4229:29:47" } ] }, "documentation": null, "functionSelector": "d1828496", "id": 13641, "implemented": true, "kind": "function", "modifiers": [], "name": "getOriginBalance", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13632, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13631, "mutability": "mutable", "name": "holder", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13641, "src": "4171:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13630, "name": "address", "nodeType": "ElementaryTypeName", "src": "4171:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4170:16:47" }, "returnParameters": { "id": 13635, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13634, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13641, "src": "4210:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13633, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4210:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4209:9:47" }, "scope": 13789, "src": "4145:120:47", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 13652, "nodeType": "Block", "src": "4346:47:47", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13648, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "4363:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13650, "indexExpression": { "argumentTypes": null, "id": 13649, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13643, "src": "4379:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4363:23:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 13647, "id": 13651, "nodeType": "Return", "src": "4356:30:47" } ] }, "documentation": null, "functionSelector": "cf0e80fe", "id": 13653, "implemented": true, "kind": "function", "modifiers": [], "name": "getClaimedBalance", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13644, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13643, "mutability": "mutable", "name": "holder", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13653, "src": "4298:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13642, "name": "address", "nodeType": "ElementaryTypeName", "src": "4298:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4297:16:47" }, "returnParameters": { "id": 13647, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13646, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13653, "src": "4337:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13645, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4337:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4336:9:47" }, "scope": 13789, "src": "4271:122:47", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 13678, "nodeType": "Block", "src": "4474:157:47", "statements": [ { "assignments": [ 13661 ], "declarations": [ { "constant": false, "id": 13661, "mutability": "mutable", "name": "remainingToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13678, "src": "4484:22:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13660, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4484:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13665, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13663, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13655, "src": "4529:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 13662, "name": "getRemainingBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13702, "src": "4509:19:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 13664, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4509:27:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4484:52:47" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13673, "name": "claimedBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13287, "src": "4600:15:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13675, "indexExpression": { "argumentTypes": null, "id": 13674, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13655, "src": "4616:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4600:23:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13670, "name": "remainingToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13661, "src": "4580:14:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13666, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "4553:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13668, "indexExpression": { "argumentTypes": null, "id": 13667, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13655, "src": "4568:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4553:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13669, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "4553:26:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13671, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4553:42:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13672, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "4553:46:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13676, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4553:71:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 13659, "id": 13677, "nodeType": "Return", "src": "4546:78:47" } ] }, "documentation": null, "functionSelector": "06def802", "id": 13679, "implemented": true, "kind": "function", "modifiers": [], "name": "getClaimableBalance", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13656, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13655, "mutability": "mutable", "name": "holder", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13679, "src": "4428:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13654, "name": "address", "nodeType": "ElementaryTypeName", "src": "4428:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4427:16:47" }, "returnParameters": { "id": 13659, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13658, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13679, "src": "4465:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13657, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4465:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4464:9:47" }, "scope": 13789, "src": "4399:232:47", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 13701, "nodeType": "Block", "src": "4712:148:47", "statements": [ { "assignments": [ 13687 ], "declarations": [ { "constant": false, "id": 13687, "mutability": "mutable", "name": "remainingRatio", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13701, "src": "4722:22:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13686, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4722:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13692, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13689, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "4765:5:47", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 13690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4765:15:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 13688, "name": "getRemainingRatio", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13752, "src": "4747:17:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) view returns (uint256)" } }, "id": 13691, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4747:34:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4722:59:47" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13695, "name": "originBalances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13283, "src": "4814:14:47", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 13697, "indexExpression": { "argumentTypes": null, "id": 13696, "name": "holder", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13681, "src": "4829:6:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4814:22:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 13698, "name": "remainingRatio", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13687, "src": "4838:14:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13693, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "4798:11:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 13694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "4798:15:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13699, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4798:55:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 13685, "id": 13700, "nodeType": "Return", "src": "4791:62:47" } ] }, "documentation": null, "functionSelector": "001bf8f6", "id": 13702, "implemented": true, "kind": "function", "modifiers": [], "name": "getRemainingBalance", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13682, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13681, "mutability": "mutable", "name": "holder", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13702, "src": "4666:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13680, "name": "address", "nodeType": "ElementaryTypeName", "src": "4666:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4665:16:47" }, "returnParameters": { "id": 13685, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13684, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13702, "src": "4703:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13683, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4703:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4702:9:47" }, "scope": 13789, "src": "4637:223:47", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 13751, "nodeType": "Block", "src": "4942:426:47", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 13709, "name": "timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13704, "src": "4956:9:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 13710, "name": "_START_RELEASE_TIME_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "4968:20:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4956:32:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 13716, "nodeType": "IfStatement", "src": "4952:85:47", "trueBody": { "id": 13715, "nodeType": "Block", "src": "4990:47:47", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13712, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "5011:11:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 13713, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ONE", "nodeType": "MemberAccess", "referencedDeclaration": 11006, "src": "5011:15:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 13708, "id": 13714, "nodeType": "Return", "src": "5004:22:47" } ] } }, { "assignments": [ 13718 ], "declarations": [ { "constant": false, "id": 13718, "mutability": "mutable", "name": "timePast", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13751, "src": "5046:16:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13717, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5046:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13723, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13721, "name": "_START_RELEASE_TIME_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "5079:20:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13719, "name": "timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13704, "src": "5065:9:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "5065:13:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13722, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5065:35:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5046:54:47" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13726, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 13724, "name": "timePast", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13718, "src": "5114:8:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 13725, "name": "_RELEASE_DURATION_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13293, "src": "5125:18:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5114:29:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 13749, "nodeType": "Block", "src": "5329:33:47", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", "id": 13747, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5350:1:47", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "functionReturnParameters": 13708, "id": 13748, "nodeType": "Return", "src": "5343:8:47" } ] }, "id": 13750, "nodeType": "IfStatement", "src": "5110:252:47", "trueBody": { "id": 13746, "nodeType": "Block", "src": "5145:178:47", "statements": [ { "assignments": [ 13728 ], "declarations": [ { "constant": false, "id": 13728, "mutability": "mutable", "name": "remainingTime", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13746, "src": "5159:21:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13727, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5159:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 13733, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13731, "name": "timePast", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13718, "src": "5206:8:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 13729, "name": "_RELEASE_DURATION_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13293, "src": "5183:18:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13730, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "5183:22:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13732, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5183:32:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5159:56:47" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13743, "name": "_RELEASE_DURATION_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13293, "src": "5293:18:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13740, "name": "remainingTime", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13728, "src": "5274:13:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13737, "name": "_CLIFF_RATE_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13295, "src": "5256:12:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13734, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "5236:11:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 13735, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ONE", "nodeType": "MemberAccess", "referencedDeclaration": 11006, "src": "5236:15:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "5236:19:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13738, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5236:33:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13739, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "5236:37:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13741, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5236:52:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 13742, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", "referencedDeclaration": 11499, "src": "5236:56:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 13744, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5236:76:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 13708, "id": 13745, "nodeType": "Return", "src": "5229:83:47" } ] } } ] }, "documentation": null, "functionSelector": "6a4de5d1", "id": 13752, "implemented": true, "kind": "function", "modifiers": [], "name": "getRemainingRatio", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13705, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13704, "mutability": "mutable", "name": "timestamp", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13752, "src": "4893:17:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13703, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4893:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4892:19:47" }, "returnParameters": { "id": 13708, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13707, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13752, "src": "4933:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13706, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4933:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4932:9:47" }, "scope": 13789, "src": "4866:502:47", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 13771, "nodeType": "Block", "src": "5489:78:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13763, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13754, "src": "5532:4:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13766, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "5546:4:47", "typeDescriptions": { "typeIdentifier": "t_contract$_LockedTokenVault_$13789", "typeString": "contract LockedTokenVault" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_LockedTokenVault_$13789", "typeString": "contract LockedTokenVault" } ], "id": 13765, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5538:7:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 13764, "name": "address", "nodeType": "ElementaryTypeName", "src": "5538:7:47", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 13767, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5538:13:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 13768, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13756, "src": "5553:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13760, "name": "_TOKEN_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13279, "src": "5506:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 13759, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "5499:6:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 13761, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5499:15:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 13762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 11354, "src": "5499:32:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", "typeString": "function (contract IERC20,address,address,uint256)" } }, "id": 13769, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5499:61:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13770, "nodeType": "ExpressionStatement", "src": "5499:61:47" } ] }, "documentation": null, "id": 13772, "implemented": true, "kind": "function", "modifiers": [], "name": "_tokenTransferIn", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13757, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13754, "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13772, "src": "5450:12:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13753, "name": "address", "nodeType": "ElementaryTypeName", "src": "5450:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13756, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13772, "src": "5464:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13755, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5464:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5449:30:47" }, "returnParameters": { "id": 13758, "nodeType": "ParameterList", "parameters": [], "src": "5489:0:47" }, "scope": 13789, "src": "5424:143:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 13787, "nodeType": "Block", "src": "5637:57:47", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13783, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13774, "src": "5676:2:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 13784, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13776, "src": "5680:6:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 13780, "name": "_TOKEN_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13279, "src": "5654:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 13779, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "5647:6:47", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 13781, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5647:15:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 13782, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", "referencedDeclaration": 11329, "src": "5647:28:47", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", "typeString": "function (contract IERC20,address,uint256)" } }, "id": 13785, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5647:40:47", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 13786, "nodeType": "ExpressionStatement", "src": "5647:40:47" } ] }, "documentation": null, "id": 13788, "implemented": true, "kind": "function", "modifiers": [], "name": "_tokenTransferOut", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 13777, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13774, "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13788, "src": "5600:10:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13773, "name": "address", "nodeType": "ElementaryTypeName", "src": "5600:7:47", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13776, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 13788, "src": "5612:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 13775, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5612:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5599:28:47" }, "returnParameters": { "id": 13778, "nodeType": "ParameterList", "parameters": [], "src": "5637:0:47" }, "scope": 13789, "src": "5573:121:47", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" } ], "scope": 13790, "src": "480:5216:47" } ], "src": "78:5619:47" }, "compiler": { "name": "solc", "version": "0.6.9+commit.3e3065ac.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.2.3", "updatedAt": "2020-11-06T08:03:35.742Z", "devdoc": { "author": "DODO Breeder", "methods": {}, "title": "LockedTokenVault" }, "userdoc": { "methods": {}, "notice": "Lock Token and release it linearly" } }