Files
dodo-contractV2/build-v1/contracts/LockedTokenVault.json
2020-11-10 18:38:34 +08:00

14437 lines
610 KiB
JSON

{
"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"
}
}