{ "contractName": "DODOMine", "abi": [ { "inputs": [ { "internalType": "address", "name": "_dodoToken", "type": "address" }, { "internalType": "uint256", "name": "_startBlock", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Claim", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Deposit", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pid", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "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": "claimOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "dodoPerBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dodoRewardVault", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "lpTokenRegistry", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "poolInfos", "outputs": [ { "internalType": "address", "name": "lpToken", "type": "address" }, { "internalType": "uint256", "name": "allocPoint", "type": "uint256" }, { "internalType": "uint256", "name": "lastRewardBlock", "type": "uint256" }, { "internalType": "uint256", "name": "accDODOPerShare", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "realizedReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "startBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAllocPoint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "userInfo", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "rewardDebt", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_lpToken", "type": "address" } ], "name": "getPid", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_lpToken", "type": "address" }, { "internalType": "address", "name": "_user", "type": "address" } ], "name": "getUserLpBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_lpToken", "type": "address" }, { "internalType": "uint256", "name": "_allocPoint", "type": "uint256" }, { "internalType": "bool", "name": "_withUpdate", "type": "bool" } ], "name": "addLpToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_lpToken", "type": "address" }, { "internalType": "uint256", "name": "_allocPoint", "type": "uint256" }, { "internalType": "bool", "name": "_withUpdate", "type": "bool" } ], "name": "setLpToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_dodoPerBlock", "type": "uint256" }, { "internalType": "bool", "name": "_withUpdate", "type": "bool" } ], "name": "setReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_lpToken", "type": "address" }, { "internalType": "address", "name": "_user", "type": "address" } ], "name": "getPendingReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "getAllPendingReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "getRealizedReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_lpToken", "type": "address" } ], "name": "getDlpMiningSpeed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "massUpdatePools", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pid", "type": "uint256" } ], "name": "updatePool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_lpToken", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_lpToken", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_lpToken", "type": "address" } ], "name": "withdrawAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_lpToken", "type": "address" } ], "name": "emergencyWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_lpToken", "type": "address" } ], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dodoToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_startBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_allocPoint\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_withUpdate\",\"type\":\"bool\"}],\"name\":\"addLpToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dodoPerBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dodoRewardVault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"}],\"name\":\"emergencyWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getAllPendingReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"}],\"name\":\"getDlpMiningSpeed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getPendingReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"}],\"name\":\"getPid\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getRealizedReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getUserLpBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lpTokenRegistry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"massUpdatePools\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"poolInfos\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lpToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocPoint\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastRewardBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accDODOPerShare\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"realizedReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_allocPoint\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_withUpdate\",\"type\":\"bool\"}],\"name\":\"setLpToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_dodoPerBlock\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_withUpdate\",\"type\":\"bool\"}],\"name\":\"setReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAllocPoint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_pid\",\"type\":\"uint256\"}],\"name\":\"updatePool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDebt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"}],\"name\":\"withdrawAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMine.sol\":\"DODOMine\"},\"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/DODOMine.sol\":{\"keccak256\":\"0xe69f8a8d3502ccfad68bc471275589c5c90934779027f009cb27a93ec3fcc63f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://dbbe3ed4d02ddb293f94ea6f788739e4c133f5aef03f2c9f038095ffd34e0b0f\",\"dweb:/ipfs/QmTw7PM5ZRh1gBek11WDmCrpvUwge2nrHjxZZkdjmtSvzu\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol\":{\"keccak256\":\"0x9a1ad5dfb8c36b3750f7c3c9aef091e63bad36e2145355eb212d67988914dc1d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e8ad414d377a1860b064193e015ca67187da4a47c9e925123cef4c9a6cd3448b\",\"dweb:/ipfs/QmS7Po2mSdB7Bk784Zcsxx7HFwJ17WXqKv3FuDGxH5aCFY\"]}},\"version\":1}", "bytecode": "0x608060405260006008553480156200001657600080fd5b506040516200222f3803806200222f8339810160408190526200003991620000f3565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3816040516200009190620000e5565b6200009d91906200012d565b604051809103906000f080158015620000ba573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b03929092169190911790556009555062000141565b6106868062001ba983390190565b6000806040838503121562000106578182fd5b82516001600160a01b03811681146200011d578283fd5b6020939093015192949293505050565b6001600160a01b0391909116815260200190565b611a5880620001516000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80636ff1c9bc11610104578063d1058e59116100a2578063f3fef3a311610071578063f3fef3a3146103a2578063fa09e630146103b5578063fb7276f4146103c8578063fe0f3a13146103db576101da565b8063d1058e5914610361578063ec83a76a14610369578063f146b8091461037c578063f2fde38b1461038f576101da565b80638af70336116100de5780638af703361461031d57806393f1a40b146103255780639599af1314610346578063bea006e01461034e576101da565b80636ff1c9bc146102ef5780637f10179f146103025780638456db1514610315576101da565b806343b55f351161017c57806351eb05a61161014b57806351eb05a61461029e578063630b5ba1146102b1578063689d84e4146102b95780636dc2cc8c146102dc576101da565b806343b55f351461026857806347e7ef241461027b57806348cd4cb11461028e5780634e71e0c814610296576101da565b806319a78f55116101b857806319a78f551461021a5780631e83409a1461022d57806334ea5389146102425780633d16433e14610255576101da565b8063081e3eda146101df57806316048bc4146101fd57806317caf6f114610212575b600080fd5b6101e76103ee565b6040516101f491906119fd565b60405180910390f35b6102056103f4565b6040516101f4919061177e565b6101e7610403565b6101e76102283660046115fd565b610409565b61024061023b3660046115e2565b610442565b005b61024061025036600461165b565b610532565b6101e76102633660046115e2565b6105f2565b6101e76102763660046115e2565b610604565b610240610289366004611631565b61065c565b6101e7610763565b610240610769565b6102406102ac3660046116c3565b6107f7565b610240610931565b6102cc6102c73660046116c3565b610954565b6040516101f494939291906117cf565b6101e76102ea3660046115e2565b610995565b6102406102fd3660046115e2565b6109b0565b610240610310366004611716565b610a27565b610205610a65565b6101e7610a74565b6103386103333660046116f3565b610a7a565b6040516101f4929190611a06565b610205610a9e565b61024061035c36600461165b565b610aad565b610240610c50565b6101e76103773660046115e2565b610d46565b6101e761038a3660046115e2565b610d58565b61024061039d3660046115e2565b610f25565b6102406103b0366004611631565b610fd0565b6102406103c33660046115e2565b6110f5565b6101e76103d63660046115e2565b61110d565b6101e76103e93660046115fd565b611161565b60045490565b6000546001600160a01b031681565b60085481565b60008061041584610604565b60009081526006602090815260408083206001600160a01b03871684529091529020549150505b92915050565b600061044d82610604565b6000818152600660209081526040808320338452909152902054909150158061049457506004818154811061047e57fe5b9060005260206000209060040201600101546000145b1561049f575061052f565b6000600482815481106104ae57fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506104df836107f7565b600061050782600101546104fb846000015486600301546112ac565b9063ffffffff6112d616565b905061051b826000015484600301546112ac565b600183015561052a33826112fe565b505050505b50565b6000546001600160a01b031633146105655760405162461bcd60e51b815260040161055c906118ee565b60405180910390fd5b801561057357610573610931565b600061057e84610604565b90506105c3836105b76004848154811061059457fe5b9060005260206000209060040201600101546008546112d690919063ffffffff16565b9063ffffffff6113e416565b60088190555082600482815481106105d757fe5b90600052602060002090600402016001018190555050505050565b60056020526000908152604090205481565b6001600160a01b038116600090815260056020526040812054829061063b5760405162461bcd60e51b815260040161055c90611911565b50506001600160a01b03166000908152600560205260409020546000190190565b600061066783610604565b905060006004828154811061067857fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506106a9836107f7565b8054156106da5760006106cc82600101546104fb846000015486600301546112ac565b90506106d833826112fe565b505b81546106f7906001600160a01b031633308763ffffffff61141016565b8054610709908563ffffffff6113e416565b808255600383015461071b91906112ac565b6001820155604051839033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15906107549088906119fd565b60405180910390a35050505050565b60095481565b6001546001600160a01b031633146107935760405162461bcd60e51b815260040161055c906117f5565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006004828154811061080657fe5b9060005260206000209060040201905080600201544311610827575061052f565b80546040516370a0823160e01b81526000916001600160a01b0316906370a082319061085790309060040161177e565b60206040518083038186803b15801561086f57600080fd5b505afa158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116db565b9050806108bb57504360029091015561052f565b60006109006008546108f485600101546108e86003546108e88960020154436112d690919063ffffffff16565b9063ffffffff61146e16565b9063ffffffff6114a816565b905061092061090f82846114d2565b60038501549063ffffffff6113e416565b600384015550504360029091015550565b60045460005b8181101561095057610948816107f7565b600101610937565b5050565b6004818154811061096157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b6001600160a01b031660009081526007602052604090205490565b60006109bb82610604565b90506000600482815481106109cc57fe5b60009182526020808320858452600682526040808520338087529352909320805460049093029093018054909450610a17926001600160a01b0391909116919063ffffffff6114f016565b6000808255600190910155505050565b6000546001600160a01b03163314610a515760405162461bcd60e51b815260040161055c906118ee565b8015610a5f57610a5f610931565b50600355565b6001546001600160a01b031681565b60035481565b60066020908152600092835260408084209091529082529020805460019091015482565b6002546001600160a01b031681565b6001600160a01b038316600090815260056020526040902054839015610ae55760405162461bcd60e51b815260040161055c906119aa565b6000546001600160a01b03163314610b0f5760405162461bcd60e51b815260040161055c906118ee565b8115610b1d57610b1d610931565b60006009544311610b3057600954610b32565b435b600854909150610b48908563ffffffff6113e416565b600855604080516080810182526001600160a01b0396871680825260208083019788528284019485526000606084018181526004805460018101825581845295517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96820296870180546001600160a01b03191691909d1617909b5598517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c85015594517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19d84015596517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19e909201919091559554958252600590945292909220929092555050565b6004546000805b82811015610d3b5760008181526006602090815260408083203384529091529020541580610ca3575060048181548110610c8d57fe5b9060005260206000209060040201600101546000145b15610cad57610d33565b600060048281548110610cbc57fe5b60009182526020808320858452600682526040808520338652909252922060049091029091019150610ced836107f7565b610d17610d0a82600101546104fb846000015486600301546112ac565b859063ffffffff6113e416565b9350610d2b816000015483600301546112ac565b600190910155505b600101610c57565b5061095033826112fe565b60076020526000908152604090205481565b60045460009081805b82811015610f1d5760008181526006602090815260408083206001600160a01b03891684529091529020541580610db6575060048181548110610da057fe5b9060005260206000209060040201600101546000145b15610dc057610f15565b600060048281548110610dcf57fe5b600091825260208083208584526006825260408085206001600160a01b038c81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a0823191610e329130910161177e565b60206040518083038186803b158015610e4a57600080fd5b505afa158015610e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8291906116db565b9050836002015443118015610e9657508015155b15610ee8576000610ec86008546108f487600101546108e86003546108e88b60020154436112d690919063ffffffff16565b9050610ee4610ed782846114d2565b849063ffffffff6113e416565b9250505b610f0e610f0184600101546104fb8660000154866112ac565b879063ffffffff6113e416565b9550505050505b600101610d61565b509392505050565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b815260040161055c906118ee565b6001600160a01b038116610f755760405162461bcd60e51b815260040161055c9061189c565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610fdb83610604565b9050600060048281548110610fec57fe5b6000918252602080832085845260068252604080852033865290925292208054600490920290920192508411156110355760405162461bcd60e51b815260040161055c906118c3565b61103e836107f7565b600061105a82600101546104fb846000015486600301546112ac565b905061106633826112fe565b8154611078908663ffffffff6112d616565b808355600384015461108a91906112ac565b600183015582546110ab906001600160a01b0316338763ffffffff6114f016565b83336001600160a01b03167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568876040516110e591906119fd565b60405180910390a3505050505050565b60006111018233610409565b90506109508282610fd0565b60008061111983610604565b905060006004828154811061112a57fe5b906000526020600020906004020190506111596008546108f4836001015460035461146e90919063ffffffff16565b949350505050565b60008061116d84610604565b905060006004828154811061117e57fe5b600091825260208083208584526006825260408085206001600160a01b038a81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a08231916111e19130910161177e565b60206040518083038186803b1580156111f957600080fd5b505afa15801561120d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123191906116db565b905083600201544311801561124557508015155b1561128a5760006112776008546108f487600101546108e86003546108e88b60020154436112d690919063ffffffff16565b9050611286610ed782846114d2565b9250505b6112a083600101546104fb8560000154856112ac565b98975050505050505050565b6000670de0b6b3a76400006112c7848463ffffffff61146e16565b816112ce57fe5b049392505050565b6000828211156112f85760405162461bcd60e51b815260040161055c90611879565b50900390565b6002546040516310b3879160e11b81526001600160a01b03909116906321670f229061133090859085906004016117b6565b600060405180830381600087803b15801561134a57600080fd5b505af115801561135e573d6000803e3d6000fd5b5050506001600160a01b03831660009081526007602052604090205461138b91508263ffffffff6113e416565b6001600160a01b038316600081815260076020526040908190209290925590517f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4906113d89084906119fd565b60405180910390a25050565b6000828201838110156114095760405162461bcd60e51b815260040161055c9061193d565b9392505050565b611468846323b872dd60e01b85858560405160240161143193929190611792565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611514565b50505050565b60008261147d5750600061043c565b8282028284828161148a57fe5b04146114095760405162461bcd60e51b815260040161055c906119da565b60008082116114c95760405162461bcd60e51b815260040161055c90611851565b8183816112ce57fe5b6000611409826108f485670de0b6b3a764000063ffffffff61146e16565b61150f8363a9059cbb60e01b84846040516024016114319291906117b6565b505050565b60006060836001600160a01b0316836040516115309190611745565b6000604051808303816000865af19150503d806000811461156d576040519150601f19603f3d011682016040523d82523d6000602084013e611572565b606091505b5091509150816115945760405162461bcd60e51b815260040161055c9061181c565b80511561146857808060200190518101906115af91906116a7565b6114685760405162461bcd60e51b815260040161055c90611960565b80356001600160a01b038116811461043c57600080fd5b6000602082840312156115f3578081fd5b61140983836115cb565b6000806040838503121561160f578081fd5b61161984846115cb565b915061162884602085016115cb565b90509250929050565b60008060408385031215611643578182fd5b61164d84846115cb565b946020939093013593505050565b60008060006060848603121561166f578081fd5b83356001600160a01b0381168114611685578182fd5b925060208401359150604084013561169c81611a14565b809150509250925092565b6000602082840312156116b8578081fd5b815161140981611a14565b6000602082840312156116d4578081fd5b5035919050565b6000602082840312156116ec578081fd5b5051919050565b60008060408385031215611705578182fd5b8235915061162884602085016115cb565b60008060408385031215611728578182fd5b82359150602083013561173a81611a14565b809150509250929050565b60008251815b81811015611765576020818601810151858301520161174b565b818111156117735782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601190820152700eed2e8d0c8e4c2ee40e8dede40daeac6d607b1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b602080825260129082015271131408151bdad95b88139bdd08115e1a5cdd60721b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b602080825260169082015275131408151bdad95b88105b1c9958591e48115e1a5cdd60521b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b918252602082015260400190565b801515811461052f57600080fdfea26469706673582212201c0c8e894ab1ae2df80078c39f5e6e5357042167766df33f4e7581c8ef0a8a7d64736f6c63430006090033608060405234801561001057600080fd5b5060405161068638038061068683398101604081905261002f9161009d565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600280546001600160a01b0319166001600160a01b03929092169190911790556100cb565b6000602082840312156100ae578081fd5b81516001600160a01b03811681146100c4578182fd5b9392505050565b6105ac806100da6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806316048bc41461006757806321670f22146100855780634e71e0c81461009a57806375123ff9146100a25780638456db15146100aa578063f2fde38b146100b2575b600080fd5b61006f6100c5565b60405161007c9190610459565b60405180910390f35b6100986100933660046103d6565b6100d4565b005b610098610128565b61006f6101b6565b61006f6101c5565b6100986100c03660046103b4565b6101d4565b6000546001600160a01b031681565b6000546001600160a01b031633146101075760405162461bcd60e51b81526004016100fe90610509565b60405180910390fd5b600254610124906001600160a01b0316838363ffffffff61027f16565b5050565b6001546001600160a01b031633146101525760405162461bcd60e51b81526004016100fe90610486565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b031681565b6001546001600160a01b031681565b6000546001600160a01b031633146101fe5760405162461bcd60e51b81526004016100fe90610509565b6001600160a01b0381166102245760405162461bcd60e51b81526004016100fe906104e2565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6102d58363a9059cbb60e01b848460405160240161029e92919061046d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526102da565b505050565b60006060836001600160a01b0316836040516102f69190610420565b6000604051808303816000865af19150503d8060008114610333576040519150601f19603f3d011682016040523d82523d6000602084013e610338565b606091505b50915091508161035a5760405162461bcd60e51b81526004016100fe906104ad565b80511561039157808060200190518101906103759190610400565b6103915760405162461bcd60e51b81526004016100fe9061052c565b50505050565b80356001600160a01b03811681146103ae57600080fd5b92915050565b6000602082840312156103c5578081fd5b6103cf8383610397565b9392505050565b600080604083850312156103e8578081fd5b6103f28484610397565b946020939093013593505050565b600060208284031215610411578081fd5b815180151581146103cf578182fd5b60008251815b818110156104405760208186018101518583015201610426565b8181111561044e5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b60608201526080019056fea26469706673582212205ad8caf142b7a2c457e73a7f840e61c56c23ddb79da79a892a5d31d7e8a1d28c64736f6c63430006090033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80636ff1c9bc11610104578063d1058e59116100a2578063f3fef3a311610071578063f3fef3a3146103a2578063fa09e630146103b5578063fb7276f4146103c8578063fe0f3a13146103db576101da565b8063d1058e5914610361578063ec83a76a14610369578063f146b8091461037c578063f2fde38b1461038f576101da565b80638af70336116100de5780638af703361461031d57806393f1a40b146103255780639599af1314610346578063bea006e01461034e576101da565b80636ff1c9bc146102ef5780637f10179f146103025780638456db1514610315576101da565b806343b55f351161017c57806351eb05a61161014b57806351eb05a61461029e578063630b5ba1146102b1578063689d84e4146102b95780636dc2cc8c146102dc576101da565b806343b55f351461026857806347e7ef241461027b57806348cd4cb11461028e5780634e71e0c814610296576101da565b806319a78f55116101b857806319a78f551461021a5780631e83409a1461022d57806334ea5389146102425780633d16433e14610255576101da565b8063081e3eda146101df57806316048bc4146101fd57806317caf6f114610212575b600080fd5b6101e76103ee565b6040516101f491906119fd565b60405180910390f35b6102056103f4565b6040516101f4919061177e565b6101e7610403565b6101e76102283660046115fd565b610409565b61024061023b3660046115e2565b610442565b005b61024061025036600461165b565b610532565b6101e76102633660046115e2565b6105f2565b6101e76102763660046115e2565b610604565b610240610289366004611631565b61065c565b6101e7610763565b610240610769565b6102406102ac3660046116c3565b6107f7565b610240610931565b6102cc6102c73660046116c3565b610954565b6040516101f494939291906117cf565b6101e76102ea3660046115e2565b610995565b6102406102fd3660046115e2565b6109b0565b610240610310366004611716565b610a27565b610205610a65565b6101e7610a74565b6103386103333660046116f3565b610a7a565b6040516101f4929190611a06565b610205610a9e565b61024061035c36600461165b565b610aad565b610240610c50565b6101e76103773660046115e2565b610d46565b6101e761038a3660046115e2565b610d58565b61024061039d3660046115e2565b610f25565b6102406103b0366004611631565b610fd0565b6102406103c33660046115e2565b6110f5565b6101e76103d63660046115e2565b61110d565b6101e76103e93660046115fd565b611161565b60045490565b6000546001600160a01b031681565b60085481565b60008061041584610604565b60009081526006602090815260408083206001600160a01b03871684529091529020549150505b92915050565b600061044d82610604565b6000818152600660209081526040808320338452909152902054909150158061049457506004818154811061047e57fe5b9060005260206000209060040201600101546000145b1561049f575061052f565b6000600482815481106104ae57fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506104df836107f7565b600061050782600101546104fb846000015486600301546112ac565b9063ffffffff6112d616565b905061051b826000015484600301546112ac565b600183015561052a33826112fe565b505050505b50565b6000546001600160a01b031633146105655760405162461bcd60e51b815260040161055c906118ee565b60405180910390fd5b801561057357610573610931565b600061057e84610604565b90506105c3836105b76004848154811061059457fe5b9060005260206000209060040201600101546008546112d690919063ffffffff16565b9063ffffffff6113e416565b60088190555082600482815481106105d757fe5b90600052602060002090600402016001018190555050505050565b60056020526000908152604090205481565b6001600160a01b038116600090815260056020526040812054829061063b5760405162461bcd60e51b815260040161055c90611911565b50506001600160a01b03166000908152600560205260409020546000190190565b600061066783610604565b905060006004828154811061067857fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506106a9836107f7565b8054156106da5760006106cc82600101546104fb846000015486600301546112ac565b90506106d833826112fe565b505b81546106f7906001600160a01b031633308763ffffffff61141016565b8054610709908563ffffffff6113e416565b808255600383015461071b91906112ac565b6001820155604051839033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15906107549088906119fd565b60405180910390a35050505050565b60095481565b6001546001600160a01b031633146107935760405162461bcd60e51b815260040161055c906117f5565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006004828154811061080657fe5b9060005260206000209060040201905080600201544311610827575061052f565b80546040516370a0823160e01b81526000916001600160a01b0316906370a082319061085790309060040161177e565b60206040518083038186803b15801561086f57600080fd5b505afa158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116db565b9050806108bb57504360029091015561052f565b60006109006008546108f485600101546108e86003546108e88960020154436112d690919063ffffffff16565b9063ffffffff61146e16565b9063ffffffff6114a816565b905061092061090f82846114d2565b60038501549063ffffffff6113e416565b600384015550504360029091015550565b60045460005b8181101561095057610948816107f7565b600101610937565b5050565b6004818154811061096157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b6001600160a01b031660009081526007602052604090205490565b60006109bb82610604565b90506000600482815481106109cc57fe5b60009182526020808320858452600682526040808520338087529352909320805460049093029093018054909450610a17926001600160a01b0391909116919063ffffffff6114f016565b6000808255600190910155505050565b6000546001600160a01b03163314610a515760405162461bcd60e51b815260040161055c906118ee565b8015610a5f57610a5f610931565b50600355565b6001546001600160a01b031681565b60035481565b60066020908152600092835260408084209091529082529020805460019091015482565b6002546001600160a01b031681565b6001600160a01b038316600090815260056020526040902054839015610ae55760405162461bcd60e51b815260040161055c906119aa565b6000546001600160a01b03163314610b0f5760405162461bcd60e51b815260040161055c906118ee565b8115610b1d57610b1d610931565b60006009544311610b3057600954610b32565b435b600854909150610b48908563ffffffff6113e416565b600855604080516080810182526001600160a01b0396871680825260208083019788528284019485526000606084018181526004805460018101825581845295517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96820296870180546001600160a01b03191691909d1617909b5598517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c85015594517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19d84015596517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19e909201919091559554958252600590945292909220929092555050565b6004546000805b82811015610d3b5760008181526006602090815260408083203384529091529020541580610ca3575060048181548110610c8d57fe5b9060005260206000209060040201600101546000145b15610cad57610d33565b600060048281548110610cbc57fe5b60009182526020808320858452600682526040808520338652909252922060049091029091019150610ced836107f7565b610d17610d0a82600101546104fb846000015486600301546112ac565b859063ffffffff6113e416565b9350610d2b816000015483600301546112ac565b600190910155505b600101610c57565b5061095033826112fe565b60076020526000908152604090205481565b60045460009081805b82811015610f1d5760008181526006602090815260408083206001600160a01b03891684529091529020541580610db6575060048181548110610da057fe5b9060005260206000209060040201600101546000145b15610dc057610f15565b600060048281548110610dcf57fe5b600091825260208083208584526006825260408085206001600160a01b038c81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a0823191610e329130910161177e565b60206040518083038186803b158015610e4a57600080fd5b505afa158015610e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8291906116db565b9050836002015443118015610e9657508015155b15610ee8576000610ec86008546108f487600101546108e86003546108e88b60020154436112d690919063ffffffff16565b9050610ee4610ed782846114d2565b849063ffffffff6113e416565b9250505b610f0e610f0184600101546104fb8660000154866112ac565b879063ffffffff6113e416565b9550505050505b600101610d61565b509392505050565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b815260040161055c906118ee565b6001600160a01b038116610f755760405162461bcd60e51b815260040161055c9061189c565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610fdb83610604565b9050600060048281548110610fec57fe5b6000918252602080832085845260068252604080852033865290925292208054600490920290920192508411156110355760405162461bcd60e51b815260040161055c906118c3565b61103e836107f7565b600061105a82600101546104fb846000015486600301546112ac565b905061106633826112fe565b8154611078908663ffffffff6112d616565b808355600384015461108a91906112ac565b600183015582546110ab906001600160a01b0316338763ffffffff6114f016565b83336001600160a01b03167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568876040516110e591906119fd565b60405180910390a3505050505050565b60006111018233610409565b90506109508282610fd0565b60008061111983610604565b905060006004828154811061112a57fe5b906000526020600020906004020190506111596008546108f4836001015460035461146e90919063ffffffff16565b949350505050565b60008061116d84610604565b905060006004828154811061117e57fe5b600091825260208083208584526006825260408085206001600160a01b038a81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a08231916111e19130910161177e565b60206040518083038186803b1580156111f957600080fd5b505afa15801561120d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123191906116db565b905083600201544311801561124557508015155b1561128a5760006112776008546108f487600101546108e86003546108e88b60020154436112d690919063ffffffff16565b9050611286610ed782846114d2565b9250505b6112a083600101546104fb8560000154856112ac565b98975050505050505050565b6000670de0b6b3a76400006112c7848463ffffffff61146e16565b816112ce57fe5b049392505050565b6000828211156112f85760405162461bcd60e51b815260040161055c90611879565b50900390565b6002546040516310b3879160e11b81526001600160a01b03909116906321670f229061133090859085906004016117b6565b600060405180830381600087803b15801561134a57600080fd5b505af115801561135e573d6000803e3d6000fd5b5050506001600160a01b03831660009081526007602052604090205461138b91508263ffffffff6113e416565b6001600160a01b038316600081815260076020526040908190209290925590517f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4906113d89084906119fd565b60405180910390a25050565b6000828201838110156114095760405162461bcd60e51b815260040161055c9061193d565b9392505050565b611468846323b872dd60e01b85858560405160240161143193929190611792565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611514565b50505050565b60008261147d5750600061043c565b8282028284828161148a57fe5b04146114095760405162461bcd60e51b815260040161055c906119da565b60008082116114c95760405162461bcd60e51b815260040161055c90611851565b8183816112ce57fe5b6000611409826108f485670de0b6b3a764000063ffffffff61146e16565b61150f8363a9059cbb60e01b84846040516024016114319291906117b6565b505050565b60006060836001600160a01b0316836040516115309190611745565b6000604051808303816000865af19150503d806000811461156d576040519150601f19603f3d011682016040523d82523d6000602084013e611572565b606091505b5091509150816115945760405162461bcd60e51b815260040161055c9061181c565b80511561146857808060200190518101906115af91906116a7565b6114685760405162461bcd60e51b815260040161055c90611960565b80356001600160a01b038116811461043c57600080fd5b6000602082840312156115f3578081fd5b61140983836115cb565b6000806040838503121561160f578081fd5b61161984846115cb565b915061162884602085016115cb565b90509250929050565b60008060408385031215611643578182fd5b61164d84846115cb565b946020939093013593505050565b60008060006060848603121561166f578081fd5b83356001600160a01b0381168114611685578182fd5b925060208401359150604084013561169c81611a14565b809150509250925092565b6000602082840312156116b8578081fd5b815161140981611a14565b6000602082840312156116d4578081fd5b5035919050565b6000602082840312156116ec578081fd5b5051919050565b60008060408385031215611705578182fd5b8235915061162884602085016115cb565b60008060408385031215611728578182fd5b82359150602083013561173a81611a14565b809150509250929050565b60008251815b81811015611765576020818601810151858301520161174b565b818111156117735782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601190820152700eed2e8d0c8e4c2ee40e8dede40daeac6d607b1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b602080825260129082015271131408151bdad95b88139bdd08115e1a5cdd60721b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b602080825260169082015275131408151bdad95b88105b1c9958591e48115e1a5cdd60521b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b918252602082015260400190565b801515811461052f57600080fdfea26469706673582212201c0c8e894ab1ae2df80078c39f5e6e5357042167766df33f4e7581c8ef0a8a7d64736f6c63430006090033", "immutableReferences": {}, "sourceMap": "444:11596:43:-:0;;;2232:1;2199:34;;2533:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2649:10:43;2629:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2603:15:43;:58;;-1:-1:-1;;;;;;2603:58:43;-1:-1:-1;;;;;2603:58:43;;;;;;;;;;2671:10;:24;-1:-1:-1;444:11596:43;;;;;;;;;;:::o;287:399:-1:-;;;419:2;407:9;398:7;394:23;390:32;387:2;;;-1:-1;;425:12;387:2;83:13;;-1:-1;;;;;1202:54;;1406:35;;1396:2;;-1:-1;;1445:12;1396:2;588;638:22;;;;224:13;477:74;;224:13;;-1:-1;;;381:305;813:222;-1:-1;;;;;1202:54;;;;764:37;;940:2;925:18;;911:124;;444:11596:43;;;;;;", "deployedSourceMap": "444:11596:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:94;;;:::i;:::-;;;;;;;;;;;;;;;;251:22:38;;;:::i;:::-;;;;;;;;2199:34:43;;;:::i;3311:180::-;;;;;;;;;:::i;10462:572::-;;;;;;;;;:::i;:::-;;4207:379;;;;;;;;;:::i;1881:50::-;;;;;;;;;:::i;3165:140::-;;;;;;;;;:::i;8459:729::-;;;;;;;;;:::i;2288:25::-;;;:::i;1072:225:38:-;;;:::i;7641:701:43:-;;;;;;;;;:::i;7392:176::-;;;:::i;1848:27::-;;;;;;;;;:::i;:::-;;;;;;;;;;;6897:119;;;;;;;;;:::i;10119:337::-;;;;;;;;;:::i;4592:192::-;;;;;;;;;:::i;279:26:38:-;;;:::i;1788:27:43:-;;;:::i;1986:64::-;;;;;;;;;:::i;:::-;;;;;;;;;1752:30;;;:::i;3539:662::-;;;;;;;;;:::i;11040:723::-;;;:::i;2056:49::-;;;;;;;;;:::i;5687:1204::-;;;;;;;;;:::i;846:220:38:-;;;;;;;;;:::i;9194:695:43:-;;;;;;;;;:::i;9895:156::-;;;;;;;;;:::i;7022:243::-;;;;;;;;;:::i;4837:844::-;;;;;;;;;:::i;3065:94::-;3136:9;:16;3065:94;:::o;251:22:38:-;;;-1:-1:-1;;;;;251:22:38;;:::o;2199:34:43:-;;;;:::o;3311:180::-;3391:7;3410:11;3424:16;3431:8;3424:6;:16::i;:::-;3457:13;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;3457:20:43;;;;;;;;;:27;;-1:-1:-1;;3311:180:43;;;;;:::o;10462:572::-;10512:11;10526:16;10533:8;10526:6;:16::i;:::-;10556:13;;;;:8;:13;;;;;;;;10570:10;10556:25;;;;;;;:32;10512:30;;-1:-1:-1;10556:37:43;;:71;;;10597:9;10607:3;10597:14;;;;;;;;;;;;;;;;;;:25;;;10626:1;10597:30;10556:71;10552:120;;;10643:7;;;10552:120;10681:21;10705:9;10715:3;10705:14;;;;;;;;;;;;;;;;10753:13;;;:8;:13;;;;;;10767:10;10753:25;;;;;;;10705:14;;;;;;;;-1:-1:-1;10788:15:43;10762:3;10788:10;:15::i;:::-;10813;10831:71;10886:4;:15;;;10831:50;10847:4;:11;;;10860:4;:20;;;10831:15;:50::i;:::-;:54;:71;:54;:71;:::i;:::-;10813:89;;10930:50;10946:4;:11;;;10959:4;:20;;;10930:15;:50::i;:::-;10912:15;;;:68;10990:37;11007:10;11019:7;10990:16;:37::i;:::-;10462:572;;;;;;:::o;4207:379::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;;;;;;;;;4345:11:43::1;4341:59;;;4372:17;:15;:17::i;:::-;4409:11;4423:16;4430:8;4423:6;:16::i;:::-;4409:30;;4467:63;4518:11;4467:46;4487:9;4497:3;4487:14;;;;;;;;;;;;;;;;;;:25;;;4467:15;;:19;;:46;;;;:::i;:::-;:50:::0;:63:::1;:50;:63;:::i;:::-;4449:15;:81;;;;4568:11;4540:9;4550:3;4540:14;;;;;;;;;;;;;;;;;;:25;;:39;;;;666:1:38;4207:379:43::0;;;:::o;1881:50::-;;;;;;;;;;;;;:::o;3165:140::-;-1:-1:-1;;;;;2809:24:43;;3243:7;2809:24;;;:15;:24;;;;;;3224:8;;2801:59;;;;-1:-1:-1;;;2801:59:43;;;;;;;;;-1:-1:-1;;;;;;;3269:25:43::1;;::::0;;;:15:::1;:25;::::0;;;;;-1:-1:-1;;3269:29:43;;3165:140::o;8459:729::-;8528:11;8542:16;8549:8;8542:6;:16::i;:::-;8528:30;;8568:21;8592:9;8602:3;8592:14;;;;;;;;;;;;;;;;8640:13;;;:8;:13;;;;;;8654:10;8640:25;;;;;;;8592:14;;;;;;;;-1:-1:-1;8675:15:43;8649:3;8675:10;:15::i;:::-;8704:11;;:15;8700:216;;8735:15;8753:101;8825:4;:15;;;8753:50;8769:4;:11;;;8782:4;:20;;;8753:15;:50::i;:101::-;8735:119;;8868:37;8885:10;8897:7;8868:16;:37::i;:::-;8700:216;;8932:12;;8925:82;;-1:-1:-1;;;;;8932:12:43;8971:10;8992:4;8999:7;8925:82;:37;:82;:::i;:::-;9031:11;;:24;;9047:7;9031:24;:15;:24;:::i;:::-;9017:38;;;9112:20;;;;9083:50;;9017:38;9083:15;:50::i;:::-;9065:15;;;:68;9148:33;;9168:3;;9156:10;;9148:33;;;;9173:7;;9148:33;;;;;;;;;;8459:729;;;;;:::o;2288:25::-;;;;:::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;7641:701:43:-;7692:21;7716:9;7726:4;7716:15;;;;;;;;;;;;;;;;;;7692:39;;7761:4;:20;;;7745:12;:36;7741:73;;7797:7;;;7741:73;7849:12;;7842:45;;-1:-1:-1;;;7842:45:43;;7823:16;;-1:-1:-1;;;;;7849:12:43;;7842:30;;:45;;7881:4;;7842:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7823:64;-1:-1:-1;7901:13:43;7897:99;;-1:-1:-1;7953:12:43;7930:20;;;;:35;7979:7;;7897:99;8005:18;8026:163;8173:15;;8026:129;8139:4;:15;;;8026:95;8108:12;;8026:64;8069:4;:20;;;8026:25;:42;;:64;;;;:::i;:::-;:81;:95;:81;:95;:::i;:129::-;:146;:163;:146;:163;:::i;:::-;8005:184;;8222:68;8247:42;8268:10;8280:8;8247:20;:42::i;:::-;8222:20;;;;;:68;:24;:68;:::i;:::-;8199:20;;;:91;-1:-1:-1;;8323:12:43;8300:20;;;;:35;7641:701;:::o;7392:176::-;7453:9;:16;7436:14;7479:83;7507:6;7501:3;:12;7479:83;;;7536:15;7547:3;7536:10;:15::i;:::-;7515:5;;7479:83;;;;7392:176;:::o;1848:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1848:27:43;;;;-1:-1:-1;1848:27:43;;;:::o;6897:119::-;-1:-1:-1;;;;;6988:21:43;6962:7;6988:21;;;:14;:21;;;;;;;6897:119::o;10119:337::-;10181:11;10195:16;10202:8;10195:6;:16::i;:::-;10181:30;;10221:21;10245:9;10255:3;10245:14;;;;;;;;;;;;;;;;10293:13;;;:8;:13;;;;;;10307:10;10293:25;;;;;;;;10383:11;;10245:14;;;;;;;10335:12;;10245:14;;-1:-1:-1;10328:67:43;;-1:-1:-1;;;;;10335:12:43;;;;;10307:10;10328:67;:33;:67;:::i;:::-;10419:1;10405:15;;;10430;;;;:19;-1:-1:-1;;;10119:337:43:o;4592:192::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;4685:11:43::1;4681:59;;;4712:17;:15;:17::i;:::-;-1:-1:-1::0;4749:12:43::1;:28:::0;4592:192::o;279:26:38:-;;;-1:-1:-1;;;;;279:26:38;;:::o;1788:27:43:-;;;;:::o;1986:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1752:30::-;;;-1:-1:-1;;;;;1752:30:43;;:::o;3539:662::-;-1:-1:-1;;;;;2944:24:43;;;;;;:15;:24;;;;;;3669:8;;2944:29;2936:64;;;;-1:-1:-1;;;2936:64:43;;;;;;;;;635:7:38::1;::::0;-1:-1:-1;;;;;635:7:38::1;621:10;:21;613:43;;;;-1:-1:-1::0;;;613:43:38::1;;;;;;;;;3703:11:43::2;3699:59;;;3730:17;:15;:17::i;:::-;3767:23;3808:10;;3793:12;:25;:53;;3836:10;;3793:53;;;3821:12;3793:53;3874:15;::::0;3767:79;;-1:-1:-1;3874:32:43::2;::::0;3894:11;3874:32:::2;:19;:32;:::i;:::-;3856:15;:50:::0;3944:186:::2;::::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;3944:186:43;;::::2;::::0;;;::::2;::::0;;::::2;::::0;;;;;;;;;-1:-1:-1;3944:186:43;;;;;;3916:9:::2;:224:::0;;::::2;::::0;::::2;::::0;;;;;;;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;;;;3916:224:43::2;::::0;;;::::2;;::::0;;;;;;;;;;;;;;;;;;;;;;;;;4178:16;;4150:25;;;:15:::2;:25:::0;;;;;;;:44;;;;-1:-1:-1;;3539:662:43:o;11040:723::-;11094:9;:16;11077:14;;11149:561;11177:6;11171:3;:12;11149:561;;;11210:13;;;;:8;:13;;;;;;;;11224:10;11210:25;;;;;;;:32;:37;;:71;;;11251:9;11261:3;11251:14;;;;;;;;;;;;;;;;;;:25;;;11280:1;11251:30;11210:71;11206:130;;;11301:8;;11206:130;11349:21;11373:9;11383:3;11373:14;;;;;;;;;;;;;;;;11425:13;;;:8;:13;;;;;;11439:10;11425:25;;;;;;;11373:14;;;;;;;;-1:-1:-1;11464:15:43;11434:3;11464:10;:15::i;:::-;11503:114;11532:71;11587:4;:15;;;11532:50;11548:4;:11;;;11561:4;:20;;;11532:15;:50::i;:71::-;11503:7;;:114;:11;:114;:::i;:::-;11493:124;;11649:50;11665:4;:11;;;11678:4;:20;;;11649:15;:50::i;:::-;11631:15;;;;:68;-1:-1:-1;11149:561:43;11185:5;;11149:561;;;;11719:37;11736:10;11748:7;11719:16;:37::i;2056:49::-;;;;;;;;;;;;;:::o;5687:1204::-;5790:9;:16;5754:7;;;;5849:1008;5877:6;5871:3;:12;5849:1008;;;5910:13;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;5910:20:43;;;;;;;;;:27;:32;;:66;;;5946:9;5956:3;5946:14;;;;;;;;;;;;;;;;;;:25;;;5975:1;5946:30;5910:66;5906:125;;;5996:8;;5906:125;6044:21;6068:9;6078:3;6068:14;;;;;;;;;;;;;;;;6120:13;;;:8;:13;;;;;;-1:-1:-1;;;;;6120:20:43;;;;;;;;;;6068:14;;;;;;;6180:20;;;;6240:12;;6233:45;;-1:-1:-1;;;6233:45:43;;6068:14;;-1:-1:-1;6120:20:43;;6180;;6068:14;;6240:12;;;;;6233:30;;:45;;6272:4;;6233:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6214:64;;6311:4;:20;;;6296:12;:35;:52;;;;-1:-1:-1;6335:13:43;;;6296:52;6292:414;;;6368:18;6389:203;6576:15;;6389:161;6534:4;:15;;;6389:119;6495:12;;6389:80;6448:4;:20;;;6389:33;:58;;:80;;;;:::i;:203::-;6368:224;;6628:63;6648:42;6669:10;6681:8;6648:20;:42::i;:::-;6628:15;;:63;:19;:63;:::i;:::-;6610:81;;6292:414;;6733:113;6766:66;6816:4;:15;;;6766:45;6782:4;:11;;;6795:15;6766;:45::i;:66::-;6733:11;;:113;:15;:113;:::i;:::-;6719:127;;5849:1008;;;;;5885:5;;5849:1008;;;-1:-1:-1;6873:11:43;5687:1204;-1:-1:-1;;;5687:1204:43: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;9194:695:43:-;9264:11;9278:16;9285:8;9278:6;:16::i;:::-;9264:30;;9304:21;9328:9;9338:3;9328:14;;;;;;;;;;;;;;;;9376:13;;;:8;:13;;;;;;9390:10;9376:25;;;;;;;9419:11;;9328:14;;;;;;;;-1:-1:-1;9419:22:43;-1:-1:-1;9419:22:43;9411:52;;;;-1:-1:-1;;;9411:52:43;;;;;;;;;9473:15;9484:3;9473:10;:15::i;:::-;9498;9516:71;9571:4;:15;;;9516:50;9532:4;:11;;;9545:4;:20;;;9516:15;:50::i;:71::-;9498:89;;9597:37;9614:10;9626:7;9597:16;:37::i;:::-;9658:11;;:24;;9674:7;9658:24;:15;:24;:::i;:::-;9644:38;;;9739:20;;;;9710:50;;9644:38;9710:15;:50::i;:::-;9692:15;;;:68;9777:12;;9770:63;;-1:-1:-1;;;;;9777:12:43;9812:10;9825:7;9770:63;:33;:63;:::i;:::-;9869:3;9857:10;-1:-1:-1;;;;;9848:34:43;;9874:7;9848:34;;;;;;;;;;;;;;;9194:695;;;;;;:::o;9895:156::-;9951:15;9969:38;9986:8;9996:10;9969:16;:38::i;:::-;9951:56;;10017:27;10026:8;10036:7;10017:8;:27::i;7022:243::-;7090:7;7109:11;7123:16;7130:8;7123:6;:16::i;:::-;7109:30;;7149:21;7173:9;7183:3;7173:14;;;;;;;;;;;;;;;;;;7149:38;;7204:54;7242:15;;7204:33;7221:4;:15;;;7204:12;;:16;;:33;;;;:::i;:54::-;7197:61;7022:243;-1:-1:-1;;;;7022:243:43:o;4837:844::-;4919:7;4938:11;4952:16;4959:8;4952:6;:16::i;:::-;4938:30;;4978:21;5002:9;5012:3;5002:14;;;;;;;;;;;;;;;;5050:13;;;:8;:13;;;;;;-1:-1:-1;;;;;5050:20:43;;;;;;;;;;5002:14;;;;;;;5106:20;;;;5162:12;;5155:45;;-1:-1:-1;;;5155:45:43;;5002:14;;-1:-1:-1;5050:20:43;;5106;;5002:14;;5162:12;;;;;5155:30;;:45;;5194:4;;5155:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5136:64;;5229:4;:20;;;5214:12;:35;:52;;;;-1:-1:-1;5253:13:43;;;5214:52;5210:382;;;5282:18;5303:183;5470:15;;5303:145;5432:4;:15;;;5303:107;5397:12;;5303:72;5354:4;:20;;;5303:29;:50;;:72;;;;:::i;:183::-;5282:204;;5518:63;5538:42;5559:10;5571:8;5538:20;:42::i;5518:63::-;5500:81;;5210:382;;5608:66;5658:4;:15;;;5608:45;5624:4;:11;;;5637:15;5608;:45::i;:66::-;5601:73;4837:844;-1:-1:-1;;;;;;;;4837:844:43:o;392:115:36:-;455:7;379:6;481:13;:6;492:1;481:13;:10;:13;:::i;:::-;:19;;;;;;;392:115;-1:-1:-1;;;392:115:36: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;11804:234:43:-;11896:15;;11879:54;;-1:-1:-1;;;11879:54:43;;-1:-1:-1;;;;;11896:15:43;;;;11879:40;;:54;;11920:3;;11925:7;;11879:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;11965:19:43;;;;;;:14;:19;;;;;;:32;;-1:-1:-1;11989:7:43;11965:32;:23;:32;:::i;:::-;-1:-1:-1;;;;;11943:19:43;;;;;;:14;:19;;;;;;;:54;;;;12012:19;;;;;;12023:7;;12012:19;;;;;;;;;;11804:234;;:::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;1015:275:40:-;1153:130;1186:5;1228:27;;;1257:4;1263:2;1267:5;1205:68;;;;;;;;;;;;;;;-1:-1:-1;;1205:68:40;;;;;;;;;;;;;;-1:-1:-1;;;;;1205:68:40;-1:-1:-1;;;;;;1205:68:40;;;;;;;;;;1153:19;:130::i;:::-;1015:275;;;;:::o;281:217:41:-;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;;;;645:123:36;713:7;739:22;759:1;739:15;:6;379;739:15;:10;:15;:::i;804:205:40:-;916:86;936:5;966:23;;;991:2;995:5;943:58;;;;;;;;;;916:86;804:205;;;:::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;;;;;;;;5:130:-1;72:20;;-1:-1;;;;;16456:54;;16937:35;;16927:2;;16986:1;;16976:12;686:241;;790:2;778:9;769:7;765:23;761:32;758:2;;;-1:-1;;796:12;758:2;858:53;903:7;879:22;858:53;;934:366;;;1055:2;1043:9;1034:7;1030:23;1026:32;1023:2;;;-1:-1;;1061:12;1023:2;1123:53;1168:7;1144:22;1123:53;;;1113:63;;1231:53;1276:7;1213:2;1256:9;1252:22;1231:53;;;1221:63;;1017:283;;;;;;1307:366;;;1428:2;1416:9;1407:7;1403:23;1399:32;1396:2;;;-1:-1;;1434:12;1396:2;1496:53;1541:7;1517:22;1496:53;;;1486:63;1586:2;1625:22;;;;475:20;;-1:-1;;;1390:283;1680:485;;;;1815:2;1803:9;1794:7;1790:23;1786:32;1783:2;;;-1:-1;;1821:12;1783:2;72:20;;-1:-1;;;;;16456:54;;16937:35;;16927:2;;-1:-1;;16976:12;16927:2;1873:63;-1:-1;1973:2;2012:22;;475:20;;-1:-1;2081:2;2117:22;;206:20;231:30;206:20;231:30;;;2089:60;;;;1777:388;;;;;;2172:257;;2284:2;2272:9;2263:7;2259:23;2255:32;2252:2;;;-1:-1;;2290:12;2252:2;354:6;348:13;366:30;390:5;366:30;;2436:241;;2540:2;2528:9;2519:7;2515:23;2511:32;2508:2;;;-1:-1;;2546:12;2508:2;-1:-1;475:20;;2502:175;-1:-1;2502:175;2684:263;;2799:2;2787:9;2778:7;2774:23;2770:32;2767:2;;;-1:-1;;2805:12;2767:2;-1:-1;623:13;;2761:186;-1:-1;2761:186;2954:366;;;3075:2;3063:9;3054:7;3050:23;3046:32;3043:2;;;-1:-1;;3081:12;3043:2;488:6;475:20;3133:63;;3251:53;3296:7;3233:2;3276:9;3272:22;3251:53;;3327:360;;;3445:2;3433:9;3424:7;3420:23;3416:32;3413:2;;;-1:-1;;3451:12;3413:2;488:6;475:20;3503:63;;3603:2;3643:9;3639:22;206:20;231:30;255:5;231:30;;;3611:60;;;;3407:280;;;;;;8245:271;;3974:5;15838:12;-1:-1;16674:101;16688:6;16685:1;16682:13;16674:101;;;4118:4;16755:11;;;;;16749:18;16736:11;;;16729:39;16703:10;16674:101;;;16790:6;16787:1;16784:13;16781:2;;;-1:-1;16846:6;16841:3;16837:16;16830:27;16781:2;-1:-1;4149:16;;;;;8379:137;-1:-1;;8379:137;8523:222;-1:-1;;;;;16456:54;;;;3765:37;;8650:2;8635:18;;8621:124;8752:444;-1:-1;;;;;16456:54;;;3765:37;;16456:54;;;;9099:2;9084:18;;3765:37;9182:2;9167:18;;8196:37;;;;8935:2;8920:18;;8906:290;9203:333;-1:-1;;;;;16456:54;;;;3765:37;;9522:2;9507:18;;8196:37;9358:2;9343:18;;9329:207;9543:556;-1:-1;;;;;16456:54;;;;3765:37;;9919:2;9904:18;;8196:37;;;;10002:2;9987:18;;8196:37;10085:2;10070:18;;8196:37;9754:3;9739:19;;9725:374;10106:416;10306:2;10320:47;;;4402:2;10291:18;;;16136:19;-1:-1;;;16176:14;;;4418:36;4473:12;;;10277:245;10529:416;10729:2;10743:47;;;10714:18;;;16136:19;4760:34;16176:14;;;4740:55;4814:12;;;10700:245;10952:416;11152:2;11166:47;;;5065:2;11137:18;;;16136:19;-1:-1;;;16176:14;;;5081:37;5137:12;;;11123:245;11375:416;11575:2;11589:47;;;5388:1;11560:18;;;16136:19;-1:-1;;;16176:14;;;5403:32;5454:12;;;11546:245;11798:416;11998:2;12012:47;;;5705:2;11983:18;;;16136:19;-1:-1;;;16176:14;;;5721:36;5776:12;;;11969:245;12221:416;12421:2;12435:47;;;6027:2;12406:18;;;16136:19;-1:-1;;;16176:14;;;6043:40;6102:12;;;12392:245;12644:416;12844:2;12858:47;;;6353:1;12829:18;;;16136:19;-1:-1;;;16176:14;;;6368:32;6419:12;;;12815:245;13067:416;13267:2;13281:47;;;6670:2;13252:18;;;16136:19;-1:-1;;;16176:14;;;6686:41;6746:12;;;13238:245;13490:416;13690:2;13704:47;;;6997:1;13675:18;;;16136:19;-1:-1;;;16176:14;;;7012:32;7063:12;;;13661:245;13913:416;14113:2;14127:47;;;7314:2;14098:18;;;16136:19;7350:34;16176:14;;;7330:55;-1:-1;;;7405:12;;;7398:34;7451:12;;;14084:245;14336:416;14536:2;14550:47;;;7702:2;14521:18;;;16136:19;-1:-1;;;16176:14;;;7718:45;7782:12;;;14507:245;14759:416;14959:2;14973:47;;;8033:1;14944:18;;;16136:19;-1:-1;;;16176:14;;;8048:32;8099:12;;;14930:245;15182:222;8196:37;;;15309:2;15294:18;;15280:124;15411:333;8196:37;;;15730:2;15715:18;;8196:37;15566:2;15551:18;;15537:207;17002:111;17083:5;16368:13;16361:21;17061:5;17058:32;17048:2;;17104:1;;17094:12", "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 {Ownable} from \"../lib/Ownable.sol\";\nimport {DecimalMath} from \"../lib/DecimalMath.sol\";\nimport {SafeERC20} from \"../lib/SafeERC20.sol\";\nimport {SafeMath} from \"../lib/SafeMath.sol\";\nimport {IERC20} from \"../intf/IERC20.sol\";\nimport {IDODORewardVault, DODORewardVault} from \"./DODORewardVault.sol\";\n\n\ncontract DODOMine is Ownable {\n using SafeMath for uint256;\n using SafeERC20 for IERC20;\n\n // Info of each user.\n struct UserInfo {\n uint256 amount; // How many LP tokens the user has provided.\n uint256 rewardDebt; // Reward debt. See explanation below.\n //\n // We do some fancy math here. Basically, any point in time, the amount of DODOs\n // entitled to a user but is pending to be distributed is:\n //\n // pending reward = (user.amount * pool.accDODOPerShare) - user.rewardDebt\n //\n // Whenever a user deposits or withdraws LP tokens to a pool. Here's what happens:\n // 1. The pool's `accDODOPerShare` (and `lastRewardBlock`) gets updated.\n // 2. User receives the pending reward sent to his/her address.\n // 3. User's `amount` gets updated.\n // 4. User's `rewardDebt` gets updated.\n }\n\n // Info of each pool.\n struct PoolInfo {\n address lpToken; // Address of LP token contract.\n uint256 allocPoint; // How many allocation points assigned to this pool. DODOs to distribute per block.\n uint256 lastRewardBlock; // Last block number that DODOs distribution occurs.\n uint256 accDODOPerShare; // Accumulated DODOs per share, times 1e12. See below.\n }\n\n address public dodoRewardVault;\n uint256 public dodoPerBlock;\n\n // Info of each pool.\n PoolInfo[] public poolInfos;\n mapping(address => uint256) public lpTokenRegistry;\n\n // Info of each user that stakes LP tokens.\n mapping(uint256 => mapping(address => UserInfo)) public userInfo;\n mapping(address => uint256) public realizedReward;\n\n // Total allocation points. Must be the sum of all allocation points in all pools.\n uint256 public totalAllocPoint = 0;\n // The block number when DODO mining starts.\n uint256 public startBlock;\n\n event Deposit(address indexed user, uint256 indexed pid, uint256 amount);\n event Withdraw(address indexed user, uint256 indexed pid, uint256 amount);\n event Claim(address indexed user, uint256 amount);\n\n constructor(address _dodoToken, uint256 _startBlock) public {\n dodoRewardVault = address(new DODORewardVault(_dodoToken));\n startBlock = _startBlock;\n }\n\n // ============ Modifiers ============\n\n modifier lpTokenExist(address lpToken) {\n require(lpTokenRegistry[lpToken] > 0, \"LP Token Not Exist\");\n _;\n }\n\n modifier lpTokenNotExist(address lpToken) {\n require(lpTokenRegistry[lpToken] == 0, \"LP Token Already Exist\");\n _;\n }\n\n // ============ Helper ============\n\n function poolLength() external view returns (uint256) {\n return poolInfos.length;\n }\n\n function getPid(address _lpToken) public view lpTokenExist(_lpToken) returns (uint256) {\n return lpTokenRegistry[_lpToken] - 1;\n }\n\n function getUserLpBalance(address _lpToken, address _user) public view returns (uint256) {\n uint256 pid = getPid(_lpToken);\n return userInfo[pid][_user].amount;\n }\n\n // ============ Ownable ============\n\n function addLpToken(\n address _lpToken,\n uint256 _allocPoint,\n bool _withUpdate\n ) public lpTokenNotExist(_lpToken) onlyOwner {\n if (_withUpdate) {\n massUpdatePools();\n }\n uint256 lastRewardBlock = block.number > startBlock ? block.number : startBlock;\n totalAllocPoint = totalAllocPoint.add(_allocPoint);\n poolInfos.push(\n PoolInfo({\n lpToken: _lpToken,\n allocPoint: _allocPoint,\n lastRewardBlock: lastRewardBlock,\n accDODOPerShare: 0\n })\n );\n lpTokenRegistry[_lpToken] = poolInfos.length;\n }\n\n function setLpToken(\n address _lpToken,\n uint256 _allocPoint,\n bool _withUpdate\n ) public onlyOwner {\n if (_withUpdate) {\n massUpdatePools();\n }\n uint256 pid = getPid(_lpToken);\n totalAllocPoint = totalAllocPoint.sub(poolInfos[pid].allocPoint).add(_allocPoint);\n poolInfos[pid].allocPoint = _allocPoint;\n }\n\n function setReward(uint256 _dodoPerBlock, bool _withUpdate) external onlyOwner {\n if (_withUpdate) {\n massUpdatePools();\n }\n dodoPerBlock = _dodoPerBlock;\n }\n\n // ============ View Rewards ============\n\n function getPendingReward(address _lpToken, address _user) external view returns (uint256) {\n uint256 pid = getPid(_lpToken);\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][_user];\n uint256 accDODOPerShare = pool.accDODOPerShare;\n uint256 lpSupply = IERC20(pool.lpToken).balanceOf(address(this));\n if (block.number > pool.lastRewardBlock && lpSupply != 0) {\n uint256 DODOReward = block\n .number\n .sub(pool.lastRewardBlock)\n .mul(dodoPerBlock)\n .mul(pool.allocPoint)\n .div(totalAllocPoint);\n accDODOPerShare = accDODOPerShare.add(DecimalMath.divFloor(DODOReward, lpSupply));\n }\n return DecimalMath.mul(user.amount, accDODOPerShare).sub(user.rewardDebt);\n }\n\n function getAllPendingReward(address _user) external view returns (uint256) {\n uint256 length = poolInfos.length;\n uint256 totalReward = 0;\n for (uint256 pid = 0; pid < length; ++pid) {\n if (userInfo[pid][_user].amount == 0 || poolInfos[pid].allocPoint == 0) {\n continue; // save gas\n }\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][_user];\n uint256 accDODOPerShare = pool.accDODOPerShare;\n uint256 lpSupply = IERC20(pool.lpToken).balanceOf(address(this));\n if (block.number > pool.lastRewardBlock && lpSupply != 0) {\n uint256 DODOReward = block\n .number\n .sub(pool.lastRewardBlock)\n .mul(dodoPerBlock)\n .mul(pool.allocPoint)\n .div(totalAllocPoint);\n accDODOPerShare = accDODOPerShare.add(DecimalMath.divFloor(DODOReward, lpSupply));\n }\n totalReward = totalReward.add(\n DecimalMath.mul(user.amount, accDODOPerShare).sub(user.rewardDebt)\n );\n }\n return totalReward;\n }\n\n function getRealizedReward(address _user) external view returns (uint256) {\n return realizedReward[_user];\n }\n\n function getDlpMiningSpeed(address _lpToken) external view returns (uint256) {\n uint256 pid = getPid(_lpToken);\n PoolInfo storage pool = poolInfos[pid];\n return dodoPerBlock.mul(pool.allocPoint).div(totalAllocPoint);\n }\n\n // ============ Update Pools ============\n\n // Update reward vairables for all pools. Be careful of gas spending!\n function massUpdatePools() public {\n uint256 length = poolInfos.length;\n for (uint256 pid = 0; pid < length; ++pid) {\n updatePool(pid);\n }\n }\n\n // Update reward variables of the given pool to be up-to-date.\n function updatePool(uint256 _pid) public {\n PoolInfo storage pool = poolInfos[_pid];\n if (block.number <= pool.lastRewardBlock) {\n return;\n }\n uint256 lpSupply = IERC20(pool.lpToken).balanceOf(address(this));\n if (lpSupply == 0) {\n pool.lastRewardBlock = block.number;\n return;\n }\n uint256 DODOReward = block\n .number\n .sub(pool.lastRewardBlock)\n .mul(dodoPerBlock)\n .mul(pool.allocPoint)\n .div(totalAllocPoint);\n pool.accDODOPerShare = pool.accDODOPerShare.add(DecimalMath.divFloor(DODOReward, lpSupply));\n pool.lastRewardBlock = block.number;\n }\n\n // ============ Deposit & Withdraw & Claim ============\n // Deposit & withdraw will also trigger claim\n\n function deposit(address _lpToken, uint256 _amount) public {\n uint256 pid = getPid(_lpToken);\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][msg.sender];\n updatePool(pid);\n if (user.amount > 0) {\n uint256 pending = DecimalMath.mul(user.amount, pool.accDODOPerShare).sub(\n user.rewardDebt\n );\n safeDODOTransfer(msg.sender, pending);\n }\n IERC20(pool.lpToken).safeTransferFrom(address(msg.sender), address(this), _amount);\n user.amount = user.amount.add(_amount);\n user.rewardDebt = DecimalMath.mul(user.amount, pool.accDODOPerShare);\n emit Deposit(msg.sender, pid, _amount);\n }\n\n function withdraw(address _lpToken, uint256 _amount) public {\n uint256 pid = getPid(_lpToken);\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][msg.sender];\n require(user.amount >= _amount, \"withdraw too much\");\n updatePool(pid);\n uint256 pending = DecimalMath.mul(user.amount, pool.accDODOPerShare).sub(user.rewardDebt);\n safeDODOTransfer(msg.sender, pending);\n user.amount = user.amount.sub(_amount);\n user.rewardDebt = DecimalMath.mul(user.amount, pool.accDODOPerShare);\n IERC20(pool.lpToken).safeTransfer(address(msg.sender), _amount);\n emit Withdraw(msg.sender, pid, _amount);\n }\n\n function withdrawAll(address _lpToken) public {\n uint256 balance = getUserLpBalance(_lpToken, msg.sender);\n withdraw(_lpToken, balance);\n }\n\n // Withdraw without caring about rewards. EMERGENCY ONLY.\n function emergencyWithdraw(address _lpToken) public {\n uint256 pid = getPid(_lpToken);\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][msg.sender];\n IERC20(pool.lpToken).safeTransfer(address(msg.sender), user.amount);\n user.amount = 0;\n user.rewardDebt = 0;\n }\n\n function claim(address _lpToken) public {\n uint256 pid = getPid(_lpToken);\n if (userInfo[pid][msg.sender].amount == 0 || poolInfos[pid].allocPoint == 0) {\n return; // save gas\n }\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][msg.sender];\n updatePool(pid);\n uint256 pending = DecimalMath.mul(user.amount, pool.accDODOPerShare).sub(user.rewardDebt);\n user.rewardDebt = DecimalMath.mul(user.amount, pool.accDODOPerShare);\n safeDODOTransfer(msg.sender, pending);\n }\n\n function claimAll() public {\n uint256 length = poolInfos.length;\n uint256 pending = 0;\n for (uint256 pid = 0; pid < length; ++pid) {\n if (userInfo[pid][msg.sender].amount == 0 || poolInfos[pid].allocPoint == 0) {\n continue; // save gas\n }\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][msg.sender];\n updatePool(pid);\n pending = pending.add(\n DecimalMath.mul(user.amount, pool.accDODOPerShare).sub(user.rewardDebt)\n );\n user.rewardDebt = DecimalMath.mul(user.amount, pool.accDODOPerShare);\n }\n safeDODOTransfer(msg.sender, pending);\n }\n\n // Safe DODO transfer function\n function safeDODOTransfer(address _to, uint256 _amount) internal {\n IDODORewardVault(dodoRewardVault).reward(_to, _amount);\n realizedReward[_to] = realizedReward[_to].add(_amount);\n emit Claim(_to, _amount);\n }\n}\n", "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMine.sol", "ast": { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMine.sol", "exportedSymbols": { "DODOMine": [ 12822 ] }, "id": 12823, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 11633, "literals": [ "solidity", "0.6", ".9" ], "nodeType": "PragmaDirective", "src": "78:22:43" }, { "id": 11634, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "101:33:43" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", "file": "../lib/Ownable.sol", "id": 11636, "nodeType": "ImportDirective", "scope": 12823, "sourceUnit": 11272, "src": "136:43:43", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 11635, "name": "Ownable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "144:7:43", "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": 11638, "nodeType": "ImportDirective", "scope": 12823, "sourceUnit": 11079, "src": "180:51:43", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 11637, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "188:11:43", "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": 11640, "nodeType": "ImportDirective", "scope": 12823, "sourceUnit": 11441, "src": "232:47:43", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 11639, "name": "SafeERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "240:9:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", "file": "../lib/SafeMath.sol", "id": 11642, "nodeType": "ImportDirective", "scope": 12823, "sourceUnit": 11624, "src": "280:45:43", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 11641, "name": "SafeMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "288:8:43", "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": 11644, "nodeType": "ImportDirective", "scope": 12823, "sourceUnit": 10608, "src": "326:42:43", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 11643, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "334:6:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol", "file": "./DODORewardVault.sol", "id": 11647, "nodeType": "ImportDirective", "scope": 12823, "sourceUnit": 12999, "src": "369:72:43", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 11645, "name": "IDODORewardVault", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "377:16:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null }, { "foreign": { "argumentTypes": null, "id": 11646, "name": "DODORewardVault", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "395:15:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 11648, "name": "Ownable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11271, "src": "465:7:43", "typeDescriptions": { "typeIdentifier": "t_contract$_Ownable_$11271", "typeString": "contract Ownable" } }, "id": 11649, "nodeType": "InheritanceSpecifier", "src": "465:7:43" } ], "contractDependencies": [ 11271, 12998 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 12822, "linearizedBaseContracts": [ 12822, 11271 ], "name": "DODOMine", "nodeType": "ContractDefinition", "nodes": [ { "id": 11652, "libraryName": { "contractScope": null, "id": 11650, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11623, "src": "485:8:43", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$11623", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "479:27:43", "typeName": { "id": 11651, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "498:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "id": 11655, "libraryName": { "contractScope": null, "id": 11653, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11440, "src": "517:9:43", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeERC20_$11440", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", "src": "511:27:43", "typeName": { "contractScope": null, "id": 11654, "name": "IERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 10607, "src": "531:6:43", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } } }, { "canonicalName": "DODOMine.UserInfo", "id": 11660, "members": [ { "constant": false, "id": 11657, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11660, "src": "596:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11656, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "596:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11659, "mutability": "mutable", "name": "rewardDebt", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11660, "src": "665:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11658, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "665:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "name": "UserInfo", "nodeType": "StructDefinition", "scope": 12822, "src": "570:777:43", "visibility": "public" }, { "canonicalName": "DODOMine.PoolInfo", "id": 11669, "members": [ { "constant": false, "id": 11662, "mutability": "mutable", "name": "lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11669, "src": "1405:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11661, "name": "address", "nodeType": "ElementaryTypeName", "src": "1405:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11664, "mutability": "mutable", "name": "allocPoint", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11669, "src": "1463:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11663, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1463:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11666, "mutability": "mutable", "name": "lastRewardBlock", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11669, "src": "1575:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11665, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1575:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11668, "mutability": "mutable", "name": "accDODOPerShare", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11669, "src": "1661:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11667, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1661:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "name": "PoolInfo", "nodeType": "StructDefinition", "scope": 12822, "src": "1379:367:43", "visibility": "public" }, { "constant": false, "functionSelector": "9599af13", "id": 11671, "mutability": "mutable", "name": "dodoRewardVault", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "1752:30:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11670, "name": "address", "nodeType": "ElementaryTypeName", "src": "1752:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "8af70336", "id": 11673, "mutability": "mutable", "name": "dodoPerBlock", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "1788:27:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11672, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1788:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "689d84e4", "id": 11676, "mutability": "mutable", "name": "poolInfos", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "1848:27:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo[]" }, "typeName": { "baseType": { "contractScope": null, "id": 11674, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "1848:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "id": 11675, "length": null, "nodeType": "ArrayTypeName", "src": "1848:10:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage_ptr", "typeString": "struct DODOMine.PoolInfo[]" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "3d16433e", "id": 11680, "mutability": "mutable", "name": "lpTokenRegistry", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "1881:50:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 11679, "keyType": { "id": 11677, "name": "address", "nodeType": "ElementaryTypeName", "src": "1889:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1881:27:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 11678, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1900:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "93f1a40b", "id": 11686, "mutability": "mutable", "name": "userInfo", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "1986:64:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo))" }, "typeName": { "id": 11685, "keyType": { "id": 11681, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1994:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "1986:48:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo))" }, "valueType": { "id": 11684, "keyType": { "id": 11682, "name": "address", "nodeType": "ElementaryTypeName", "src": "2013:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "2005:28:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo)" }, "valueType": { "contractScope": null, "id": 11683, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "2024:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "ec83a76a", "id": 11690, "mutability": "mutable", "name": "realizedReward", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "2056:49:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 11689, "keyType": { "id": 11687, "name": "address", "nodeType": "ElementaryTypeName", "src": "2064:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "2056:27:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 11688, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2075:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "17caf6f1", "id": 11693, "mutability": "mutable", "name": "totalAllocPoint", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "2199:34:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11691, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2199:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "30", "id": 11692, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2232:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "visibility": "public" }, { "constant": false, "functionSelector": "48cd4cb1", "id": 11695, "mutability": "mutable", "name": "startBlock", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "2288:25:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11694, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2288:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 11703, "name": "Deposit", "nodeType": "EventDefinition", "parameters": { "id": 11702, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11697, "indexed": true, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11703, "src": "2334:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11696, "name": "address", "nodeType": "ElementaryTypeName", "src": "2334:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11699, "indexed": true, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11703, "src": "2356:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11698, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2356:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11701, "indexed": false, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11703, "src": "2377:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11700, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2377:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2333:59:43" }, "src": "2320:73:43" }, { "anonymous": false, "documentation": null, "id": 11711, "name": "Withdraw", "nodeType": "EventDefinition", "parameters": { "id": 11710, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11705, "indexed": true, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11711, "src": "2413:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11704, "name": "address", "nodeType": "ElementaryTypeName", "src": "2413:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11707, "indexed": true, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11711, "src": "2435:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11706, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2435:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11709, "indexed": false, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11711, "src": "2456:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11708, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2456:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2412:59:43" }, "src": "2398:74:43" }, { "anonymous": false, "documentation": null, "id": 11717, "name": "Claim", "nodeType": "EventDefinition", "parameters": { "id": 11716, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11713, "indexed": true, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11717, "src": "2489:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11712, "name": "address", "nodeType": "ElementaryTypeName", "src": "2489:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11715, "indexed": false, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11717, "src": "2511:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11714, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2511:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2488:38:43" }, "src": "2477:50:43" }, { "body": { "id": 11738, "nodeType": "Block", "src": "2593:109:43", "statements": [ { "expression": { "argumentTypes": null, "id": 11732, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 11724, "name": "dodoRewardVault", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11671, "src": "2603:15:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11729, "name": "_dodoToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11719, "src": "2649:10:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11728, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "2629:19:43", "typeDescriptions": { "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DODORewardVault_$12998_$", "typeString": "function (address) returns (contract DODORewardVault)" }, "typeName": { "contractScope": null, "id": 11727, "name": "DODORewardVault", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 12998, "src": "2633:15:43", "typeDescriptions": { "typeIdentifier": "t_contract$_DODORewardVault_$12998", "typeString": "contract DODORewardVault" } } }, "id": 11730, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2629:31:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_DODORewardVault_$12998", "typeString": "contract DODORewardVault" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_DODORewardVault_$12998", "typeString": "contract DODORewardVault" } ], "id": 11726, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2621:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 11725, "name": "address", "nodeType": "ElementaryTypeName", "src": "2621:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 11731, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2621:40:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2603:58:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 11733, "nodeType": "ExpressionStatement", "src": "2603:58:43" }, { "expression": { "argumentTypes": null, "id": 11736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 11734, "name": "startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11695, "src": "2671:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 11735, "name": "_startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11721, "src": "2684:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2671:24:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11737, "nodeType": "ExpressionStatement", "src": "2671:24:43" } ] }, "documentation": null, "id": 11739, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11722, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11719, "mutability": "mutable", "name": "_dodoToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11739, "src": "2545:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11718, "name": "address", "nodeType": "ElementaryTypeName", "src": "2545:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11721, "mutability": "mutable", "name": "_startBlock", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11739, "src": "2565:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11720, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2565:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2544:41:43" }, "returnParameters": { "id": 11723, "nodeType": "ParameterList", "parameters": [], "src": "2593:0:43" }, "scope": 12822, "src": "2533:169:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 11753, "nodeType": "Block", "src": "2791:87:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11744, "name": "lpTokenRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11680, "src": "2809:15:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 11746, "indexExpression": { "argumentTypes": null, "id": 11745, "name": "lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11741, "src": "2825:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2809:24:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 11747, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2836:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2809:28:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4c5020546f6b656e204e6f74204578697374", "id": 11749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2839:20:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d66678012b5affca3d9727e8b7ea6591ac507d36b508c35b6405e4b76dfc67ac", "typeString": "literal_string \"LP Token Not Exist\"" }, "value": "LP Token Not Exist" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_d66678012b5affca3d9727e8b7ea6591ac507d36b508c35b6405e4b76dfc67ac", "typeString": "literal_string \"LP Token Not Exist\"" } ], "id": 11743, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2801:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 11750, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2801:59:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11751, "nodeType": "ExpressionStatement", "src": "2801:59:43" }, { "id": 11752, "nodeType": "PlaceholderStatement", "src": "2870:1:43" } ] }, "documentation": null, "id": 11754, "name": "lpTokenExist", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 11742, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11741, "mutability": "mutable", "name": "lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11754, "src": "2774:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11740, "name": "address", "nodeType": "ElementaryTypeName", "src": "2774:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2773:17:43" }, "src": "2752:126:43", "virtual": false, "visibility": "internal" }, { "body": { "id": 11768, "nodeType": "Block", "src": "2926:92:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11763, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11759, "name": "lpTokenRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11680, "src": "2944:15:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 11761, "indexExpression": { "argumentTypes": null, "id": 11760, "name": "lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11756, "src": "2960:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2944:24:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 11762, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2972:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2944:29:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4c5020546f6b656e20416c7265616479204578697374", "id": 11764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2975:24:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e6251c7bee25a31a23d0da97ca10d75b92968e9f3bcef7a6fc9dde9d1a7e1078", "typeString": "literal_string \"LP Token Already Exist\"" }, "value": "LP Token Already Exist" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e6251c7bee25a31a23d0da97ca10d75b92968e9f3bcef7a6fc9dde9d1a7e1078", "typeString": "literal_string \"LP Token Already Exist\"" } ], "id": 11758, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2936:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 11765, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2936:64:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11766, "nodeType": "ExpressionStatement", "src": "2936:64:43" }, { "id": 11767, "nodeType": "PlaceholderStatement", "src": "3010:1:43" } ] }, "documentation": null, "id": 11769, "name": "lpTokenNotExist", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 11757, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11756, "mutability": "mutable", "name": "lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11769, "src": "2909:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11755, "name": "address", "nodeType": "ElementaryTypeName", "src": "2909:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2908:17:43" }, "src": "2884:134:43", "virtual": false, "visibility": "internal" }, { "body": { "id": 11777, "nodeType": "Block", "src": "3119:40:43", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11774, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "3136:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 11775, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3136:16:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11773, "id": 11776, "nodeType": "Return", "src": "3129:23:43" } ] }, "documentation": null, "functionSelector": "081e3eda", "id": 11778, "implemented": true, "kind": "function", "modifiers": [], "name": "poolLength", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11770, "nodeType": "ParameterList", "parameters": [], "src": "3084:2:43" }, "returnParameters": { "id": 11773, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11772, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11778, "src": "3110:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11771, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3110:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3109:9:43" }, "scope": 12822, "src": "3065:94:43", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 11794, "nodeType": "Block", "src": "3252:53:43", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11792, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11788, "name": "lpTokenRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11680, "src": "3269:15:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 11790, "indexExpression": { "argumentTypes": null, "id": 11789, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11780, "src": "3285:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3269:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 11791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3297:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "3269:29:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11787, "id": 11793, "nodeType": "Return", "src": "3262:36:43" } ] }, "documentation": null, "functionSelector": "43b55f35", "id": 11795, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "argumentTypes": null, "id": 11783, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11780, "src": "3224:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 11784, "modifierName": { "argumentTypes": null, "id": 11782, "name": "lpTokenExist", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11754, "src": "3211:12:43", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "3211:22:43" } ], "name": "getPid", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11781, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11780, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11795, "src": "3181:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11779, "name": "address", "nodeType": "ElementaryTypeName", "src": "3181:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3180:18:43" }, "returnParameters": { "id": 11787, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11786, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11795, "src": "3243:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11785, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3243:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3242:9:43" }, "scope": 12822, "src": "3165:140:43", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 11817, "nodeType": "Block", "src": "3400:91:43", "statements": [ { "assignments": [ 11805 ], "declarations": [ { "constant": false, "id": 11805, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11817, "src": "3410:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11804, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3410:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 11809, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11807, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11797, "src": "3431:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11806, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "3424:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 11808, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3424:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "3410:30:43" }, { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11810, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "3457:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 11812, "indexExpression": { "argumentTypes": null, "id": 11811, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11805, "src": "3466:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3457:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 11814, "indexExpression": { "argumentTypes": null, "id": 11813, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11799, "src": "3471:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3457:20:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "id": 11815, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "3457:27:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11803, "id": 11816, "nodeType": "Return", "src": "3450:34:43" } ] }, "documentation": null, "functionSelector": "19a78f55", "id": 11818, "implemented": true, "kind": "function", "modifiers": [], "name": "getUserLpBalance", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11800, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11797, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11818, "src": "3337:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11796, "name": "address", "nodeType": "ElementaryTypeName", "src": "3337:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11799, "mutability": "mutable", "name": "_user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11818, "src": "3355:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11798, "name": "address", "nodeType": "ElementaryTypeName", "src": "3355:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3336:33:43" }, "returnParameters": { "id": 11803, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11802, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11818, "src": "3391:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11801, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3391:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3390:9:43" }, "scope": 12822, "src": "3311:180:43", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 11874, "nodeType": "Block", "src": "3689:512:43", "statements": [ { "condition": { "argumentTypes": null, "id": 11832, "name": "_withUpdate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11824, "src": "3703:11:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 11837, "nodeType": "IfStatement", "src": "3699:59:43", "trueBody": { "id": 11836, "nodeType": "Block", "src": "3716:42:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 11833, "name": "massUpdatePools", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12243, "src": "3730:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 11834, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3730:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11835, "nodeType": "ExpressionStatement", "src": "3730:17:43" } ] } }, { "assignments": [ 11839 ], "declarations": [ { "constant": false, "id": 11839, "mutability": "mutable", "name": "lastRewardBlock", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11874, "src": "3767:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11838, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3767:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 11848, "initialValue": { "argumentTypes": null, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11843, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11840, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "3793:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 11841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3793:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 11842, "name": "startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11695, "src": "3808:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3793:25:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "argumentTypes": null, "id": 11846, "name": "startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11695, "src": "3836:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "3793:53:43", "trueExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11844, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "3821:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 11845, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3821:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "3767:79:43" }, { "expression": { "argumentTypes": null, "id": 11854, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 11849, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "3856:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11852, "name": "_allocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11822, "src": "3894:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 11850, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "3874:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "3874:19:43", "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": 11853, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3874:32:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3856:50:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11855, "nodeType": "ExpressionStatement", "src": "3856:50:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11860, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11820, "src": "3980:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 11861, "name": "_allocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11822, "src": "4018:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 11862, "name": "lastRewardBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11839, "src": "4064:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "hexValue": "30", "id": 11863, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4114:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 11859, "name": "PoolInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11669, "src": "3944:8:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_PoolInfo_$11669_storage_ptr_$", "typeString": "type(struct DODOMine.PoolInfo storage pointer)" } }, "id": 11864, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "lpToken", "allocPoint", "lastRewardBlock", "accDODOPerShare" ], "nodeType": "FunctionCall", "src": "3944:186:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_memory_ptr", "typeString": "struct DODOMine.PoolInfo memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_PoolInfo_$11669_memory_ptr", "typeString": "struct DODOMine.PoolInfo memory" } ], "expression": { "argumentTypes": null, "id": 11856, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "3916:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 11858, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3916:14:43", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_PoolInfo_$11669_storage_$returns$__$", "typeString": "function (struct DODOMine.PoolInfo storage ref)" } }, "id": 11865, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3916:224:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11866, "nodeType": "ExpressionStatement", "src": "3916:224:43" }, { "expression": { "argumentTypes": null, "id": 11872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11867, "name": "lpTokenRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11680, "src": "4150:15:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 11869, "indexExpression": { "argumentTypes": null, "id": 11868, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11820, "src": "4166:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4150:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11870, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "4178:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 11871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4178:16:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4150:44:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11873, "nodeType": "ExpressionStatement", "src": "4150:44:43" } ] }, "documentation": null, "functionSelector": "bea006e0", "id": 11875, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "argumentTypes": null, "id": 11827, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11820, "src": "3669:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 11828, "modifierName": { "argumentTypes": null, "id": 11826, "name": "lpTokenNotExist", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11769, "src": "3653:15:43", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "3653:25:43" }, { "arguments": null, "id": 11830, "modifierName": { "argumentTypes": null, "id": 11829, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "3679:9:43", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "3679:9:43" } ], "name": "addLpToken", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11825, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11820, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11875, "src": "3568:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11819, "name": "address", "nodeType": "ElementaryTypeName", "src": "3568:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11822, "mutability": "mutable", "name": "_allocPoint", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11875, "src": "3594:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11821, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3594:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11824, "mutability": "mutable", "name": "_withUpdate", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11875, "src": "3623:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 11823, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3623:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "3558:87:43" }, "returnParameters": { "id": 11831, "nodeType": "ParameterList", "parameters": [], "src": "3689:0:43" }, "scope": 12822, "src": "3539:662:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 11918, "nodeType": "Block", "src": "4331:255:43", "statements": [ { "condition": { "argumentTypes": null, "id": 11886, "name": "_withUpdate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11881, "src": "4345:11:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 11891, "nodeType": "IfStatement", "src": "4341:59:43", "trueBody": { "id": 11890, "nodeType": "Block", "src": "4358:42:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 11887, "name": "massUpdatePools", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12243, "src": "4372:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 11888, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4372:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11889, "nodeType": "ExpressionStatement", "src": "4372:17:43" } ] } }, { "assignments": [ 11893 ], "declarations": [ { "constant": false, "id": 11893, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11918, "src": "4409:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11892, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4409:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 11897, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11895, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11877, "src": "4430:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11894, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "4423:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 11896, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4423:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4409:30:43" }, { "expression": { "argumentTypes": null, "id": 11909, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 11898, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "4449:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11907, "name": "_allocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11879, "src": "4518:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11901, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "4487:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 11903, "indexExpression": { "argumentTypes": null, "id": 11902, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11893, "src": "4497:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4487:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "id": 11904, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "4487:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 11899, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "4467:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "4467:19:43", "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": 11905, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4467:46:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11906, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "4467:50:43", "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": 11908, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4467:63:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4449:81:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11910, "nodeType": "ExpressionStatement", "src": "4449:81:43" }, { "expression": { "argumentTypes": null, "id": 11916, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11911, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "4540:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 11913, "indexExpression": { "argumentTypes": null, "id": 11912, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11893, "src": "4550:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4540:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "id": 11914, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "4540:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 11915, "name": "_allocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11879, "src": "4568:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4540:39:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11917, "nodeType": "ExpressionStatement", "src": "4540:39:43" } ] }, "documentation": null, "functionSelector": "34ea5389", "id": 11919, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 11884, "modifierName": { "argumentTypes": null, "id": 11883, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "4321:9:43", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "4321:9:43" } ], "name": "setLpToken", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11882, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11877, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11919, "src": "4236:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11876, "name": "address", "nodeType": "ElementaryTypeName", "src": "4236:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11879, "mutability": "mutable", "name": "_allocPoint", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11919, "src": "4262:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11878, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4262:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11881, "mutability": "mutable", "name": "_withUpdate", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11919, "src": "4291:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 11880, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4291:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "4226:87:43" }, "returnParameters": { "id": 11885, "nodeType": "ParameterList", "parameters": [], "src": "4331:0:43" }, "scope": 12822, "src": "4207:379:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 11938, "nodeType": "Block", "src": "4671:113:43", "statements": [ { "condition": { "argumentTypes": null, "id": 11928, "name": "_withUpdate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11923, "src": "4685:11:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 11933, "nodeType": "IfStatement", "src": "4681:59:43", "trueBody": { "id": 11932, "nodeType": "Block", "src": "4698:42:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 11929, "name": "massUpdatePools", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12243, "src": "4712:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 11930, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4712:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11931, "nodeType": "ExpressionStatement", "src": "4712:17:43" } ] } }, { "expression": { "argumentTypes": null, "id": 11936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 11934, "name": "dodoPerBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11673, "src": "4749:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 11935, "name": "_dodoPerBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11921, "src": "4764:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4749:28:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11937, "nodeType": "ExpressionStatement", "src": "4749:28:43" } ] }, "documentation": null, "functionSelector": "7f10179f", "id": 11939, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 11926, "modifierName": { "argumentTypes": null, "id": 11925, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "4661:9:43", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "4661:9:43" } ], "name": "setReward", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11924, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11921, "mutability": "mutable", "name": "_dodoPerBlock", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11939, "src": "4611:21:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11920, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4611:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11923, "mutability": "mutable", "name": "_withUpdate", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11939, "src": "4634:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 11922, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4634:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "4610:41:43" }, "returnParameters": { "id": 11927, "nodeType": "ParameterList", "parameters": [], "src": "4671:0:43" }, "scope": 12822, "src": "4592:192:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 12038, "nodeType": "Block", "src": "4928:753:43", "statements": [ { "assignments": [ 11949 ], "declarations": [ { "constant": false, "id": 11949, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12038, "src": "4938:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11948, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4938:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 11953, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11951, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11941, "src": "4959:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11950, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "4952:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 11952, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4952:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4938:30:43" }, { "assignments": [ 11955 ], "declarations": [ { "constant": false, "id": 11955, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12038, "src": "4978:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 11954, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "4978:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 11959, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11956, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "5002:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 11958, "indexExpression": { "argumentTypes": null, "id": 11957, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11949, "src": "5012:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5002:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "4978:38:43" }, { "assignments": [ 11961 ], "declarations": [ { "constant": false, "id": 11961, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12038, "src": "5026:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 11960, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "5026:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 11967, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11962, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "5050:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 11964, "indexExpression": { "argumentTypes": null, "id": 11963, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11949, "src": "5059:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5050:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 11966, "indexExpression": { "argumentTypes": null, "id": 11965, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11943, "src": "5064:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5050:20:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "5026:44:43" }, { "assignments": [ 11969 ], "declarations": [ { "constant": false, "id": 11969, "mutability": "mutable", "name": "accDODOPerShare", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12038, "src": "5080:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11968, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5080:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 11972, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11970, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11955, "src": "5106:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 11971, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "5106:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5080:46:43" }, { "assignments": [ 11974 ], "declarations": [ { "constant": false, "id": 11974, "mutability": "mutable", "name": "lpSupply", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12038, "src": "5136:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11973, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5136:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 11985, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11982, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "5194:4:43", "typeDescriptions": { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } ], "id": 11981, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5186:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 11980, "name": "address", "nodeType": "ElementaryTypeName", "src": "5186:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 11983, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5186:13:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11976, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11955, "src": "5162:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 11977, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lpToken", "nodeType": "MemberAccess", "referencedDeclaration": 11662, "src": "5162:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11975, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "5155:6:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 11978, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5155:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 11979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 10564, "src": "5155:30:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, "id": 11984, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5155:45:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5136:64:43" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 11994, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11986, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "5214:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 11987, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5214:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11988, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11955, "src": "5229:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 11989, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "5229:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5214:35:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11993, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 11991, "name": "lpSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11974, "src": "5253:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 11992, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5265:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5253:13:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5214:52:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12026, "nodeType": "IfStatement", "src": "5210:382:43", "trueBody": { "id": 12025, "nodeType": "Block", "src": "5268:324:43", "statements": [ { "assignments": [ 11996 ], "declarations": [ { "constant": false, "id": 11996, "mutability": "mutable", "name": "DODOReward", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12025, "src": "5282:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11995, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5282:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12013, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12011, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "5470:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12007, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11955, "src": "5432:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12008, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "5432:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12004, "name": "dodoPerBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11673, "src": "5397:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12000, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11955, "src": "5354:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12001, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "5354:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11997, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "5303:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 11998, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5303:29:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11999, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "5303:50:43", "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": 12002, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5303:72:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "5303:93:43", "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": 12005, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5303:107:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "5303:128:43", "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": 12009, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5303:145:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12010, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", "referencedDeclaration": 11499, "src": "5303:166:43", "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": 12012, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5303:183:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5282:204:43" }, { "expression": { "argumentTypes": null, "id": 12023, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12014, "name": "accDODOPerShare", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11969, "src": "5500:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12019, "name": "DODOReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11996, "src": "5559:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12020, "name": "lpSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11974, "src": "5571:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12017, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "5538:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12018, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "divFloor", "nodeType": "MemberAccess", "referencedDeclaration": 11059, "src": "5538:20:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12021, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5538:42:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12015, "name": "accDODOPerShare", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11969, "src": "5518:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12016, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "5518:19:43", "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": 12022, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5518:63:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5500:81:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12024, "nodeType": "ExpressionStatement", "src": "5500:81:43" } ] } }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12034, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11961, "src": "5658:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "5658:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12029, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11961, "src": "5624:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12030, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "5624:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12031, "name": "accDODOPerShare", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11969, "src": "5637:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12027, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "5608:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12028, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "5608:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12032, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5608:45:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "5608:49:43", "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": 12036, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5608:66:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11947, "id": 12037, "nodeType": "Return", "src": "5601:73:43" } ] }, "documentation": null, "functionSelector": "fe0f3a13", "id": 12039, "implemented": true, "kind": "function", "modifiers": [], "name": "getPendingReward", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11944, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11941, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12039, "src": "4863:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11940, "name": "address", "nodeType": "ElementaryTypeName", "src": "4863:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11943, "mutability": "mutable", "name": "_user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12039, "src": "4881:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11942, "name": "address", "nodeType": "ElementaryTypeName", "src": "4881:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4862:33:43" }, "returnParameters": { "id": 11947, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11946, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12039, "src": "4919:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11945, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4919:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4918:9:43" }, "scope": 12822, "src": "4837:844:43", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 12176, "nodeType": "Block", "src": "5763:1128:43", "statements": [ { "assignments": [ 12047 ], "declarations": [ { "constant": false, "id": 12047, "mutability": "mutable", "name": "length", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12176, "src": "5773:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12046, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5773:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12050, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12048, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "5790:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12049, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5790:16:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5773:33:43" }, { "assignments": [ 12052 ], "declarations": [ { "constant": false, "id": 12052, "mutability": "mutable", "name": "totalReward", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12176, "src": "5816:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12051, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5816:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12054, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 12053, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5838:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "5816:23:43" }, { "body": { "id": 12172, "nodeType": "Block", "src": "5892:965:43", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 12079, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12065, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "5910:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12067, "indexExpression": { "argumentTypes": null, "id": 12066, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12056, "src": "5919:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5910:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12069, "indexExpression": { "argumentTypes": null, "id": 12068, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12041, "src": "5924:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5910:20:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "id": 12070, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "5910:27:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12071, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5941:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5910:32:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12073, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "5946:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12075, "indexExpression": { "argumentTypes": null, "id": 12074, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12056, "src": "5956:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5946:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "id": 12076, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "5946:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12077, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5975:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5946:30:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5910:66:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12082, "nodeType": "IfStatement", "src": "5906:125:43", "trueBody": { "id": 12081, "nodeType": "Block", "src": "5978:53:43", "statements": [ { "id": 12080, "nodeType": "Continue", "src": "5996:8:43" } ] } }, { "assignments": [ 12084 ], "declarations": [ { "constant": false, "id": 12084, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12172, "src": "6044:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12083, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "6044:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12088, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12085, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "6068:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12087, "indexExpression": { "argumentTypes": null, "id": 12086, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12056, "src": "6078:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6068:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "6044:38:43" }, { "assignments": [ 12090 ], "declarations": [ { "constant": false, "id": 12090, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12172, "src": "6096:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 12089, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "6096:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 12096, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12091, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "6120:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12093, "indexExpression": { "argumentTypes": null, "id": 12092, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12056, "src": "6129:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6120:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12095, "indexExpression": { "argumentTypes": null, "id": 12094, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12041, "src": "6134:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6120:20:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "6096:44:43" }, { "assignments": [ 12098 ], "declarations": [ { "constant": false, "id": 12098, "mutability": "mutable", "name": "accDODOPerShare", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12172, "src": "6154:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12097, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6154:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12101, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12099, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12084, "src": "6180:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12100, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "6180:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6154:46:43" }, { "assignments": [ 12103 ], "declarations": [ { "constant": false, "id": 12103, "mutability": "mutable", "name": "lpSupply", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12172, "src": "6214:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12102, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6214:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12114, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12111, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "6272:4:43", "typeDescriptions": { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } ], "id": 12110, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6264:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 12109, "name": "address", "nodeType": "ElementaryTypeName", "src": "6264:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 12112, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6264:13:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12105, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12084, "src": "6240:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12106, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lpToken", "nodeType": "MemberAccess", "referencedDeclaration": 11662, "src": "6240:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12104, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "6233:6:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 12107, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6233:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 12108, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 10564, "src": "6233:30:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, "id": 12113, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6233:45:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6214:64:43" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 12123, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12115, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "6296:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 12116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6296:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12117, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12084, "src": "6311:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12118, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "6311:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6296:35:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 12120, "name": "lpSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12103, "src": "6335:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12121, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6347:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "6335:13:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6296:52:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12155, "nodeType": "IfStatement", "src": "6292:414:43", "trueBody": { "id": 12154, "nodeType": "Block", "src": "6350:356:43", "statements": [ { "assignments": [ 12125 ], "declarations": [ { "constant": false, "id": 12125, "mutability": "mutable", "name": "DODOReward", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12154, "src": "6368:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12124, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6368:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12142, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12140, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "6576:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12136, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12084, "src": "6534:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12137, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "6534:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12133, "name": "dodoPerBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11673, "src": "6495:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12129, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12084, "src": "6448:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12130, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "6448:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12126, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "6389:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 12127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6389:33:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12128, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "6389:58:43", "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": 12131, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6389:80:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "6389:105:43", "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": 12134, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6389:119:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "6389:144:43", "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": 12138, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6389:161:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", "referencedDeclaration": 11499, "src": "6389:186:43", "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": 12141, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6389:203:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6368:224:43" }, { "expression": { "argumentTypes": null, "id": 12152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12143, "name": "accDODOPerShare", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12098, "src": "6610:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12148, "name": "DODOReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12125, "src": "6669:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12149, "name": "lpSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12103, "src": "6681:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12146, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "6648:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "divFloor", "nodeType": "MemberAccess", "referencedDeclaration": 11059, "src": "6648:20:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12150, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6648:42:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12144, "name": "accDODOPerShare", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12098, "src": "6628:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12145, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "6628:19:43", "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": 12151, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6628:63:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6610:81:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12153, "nodeType": "ExpressionStatement", "src": "6610:81:43" } ] } }, { "expression": { "argumentTypes": null, "id": 12170, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12156, "name": "totalReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12052, "src": "6719:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12166, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12090, "src": "6816:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12167, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "6816:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12161, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12090, "src": "6782:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12162, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "6782:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12163, "name": "accDODOPerShare", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12098, "src": "6795:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12159, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "6766:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12160, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "6766:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12164, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6766:45:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "6766:49:43", "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": 12168, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6766:66:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12157, "name": "totalReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12052, "src": "6733:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12158, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "6733:15:43", "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": 12169, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6733:113:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6719:127:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12171, "nodeType": "ExpressionStatement", "src": "6719:127:43" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 12059, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12056, "src": "5871:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 12060, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12047, "src": "5877:6:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5871:12:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 12173, "initializationExpression": { "assignments": [ 12056 ], "declarations": [ { "constant": false, "id": 12056, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12173, "src": "5854:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12055, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5854:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12058, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 12057, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5868:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "5854:15:43" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 12063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "5885:5:43", "subExpression": { "argumentTypes": null, "id": 12062, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12056, "src": "5887:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12064, "nodeType": "ExpressionStatement", "src": "5885:5:43" }, "nodeType": "ForStatement", "src": "5849:1008:43" }, { "expression": { "argumentTypes": null, "id": 12174, "name": "totalReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12052, "src": "6873:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 12045, "id": 12175, "nodeType": "Return", "src": "6866:18:43" } ] }, "documentation": null, "functionSelector": "f146b809", "id": 12177, "implemented": true, "kind": "function", "modifiers": [], "name": "getAllPendingReward", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12042, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12041, "mutability": "mutable", "name": "_user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12177, "src": "5716:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12040, "name": "address", "nodeType": "ElementaryTypeName", "src": "5716:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "5715:15:43" }, "returnParameters": { "id": 12045, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12044, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12177, "src": "5754:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12043, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5754:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5753:9:43" }, "scope": 12822, "src": "5687:1204:43", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 12188, "nodeType": "Block", "src": "6971:45:43", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12184, "name": "realizedReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11690, "src": "6988:14:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 12186, "indexExpression": { "argumentTypes": null, "id": 12185, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12179, "src": "7003:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6988:21:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 12183, "id": 12187, "nodeType": "Return", "src": "6981:28:43" } ] }, "documentation": null, "functionSelector": "6dc2cc8c", "id": 12189, "implemented": true, "kind": "function", "modifiers": [], "name": "getRealizedReward", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12180, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12179, "mutability": "mutable", "name": "_user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12189, "src": "6924:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12178, "name": "address", "nodeType": "ElementaryTypeName", "src": "6924:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "6923:15:43" }, "returnParameters": { "id": 12183, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12182, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12189, "src": "6962:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12181, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6962:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6961:9:43" }, "scope": 12822, "src": "6897:119:43", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 12217, "nodeType": "Block", "src": "7099:166:43", "statements": [ { "assignments": [ 12197 ], "declarations": [ { "constant": false, "id": 12197, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12217, "src": "7109:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12196, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7109:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12201, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12199, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12191, "src": "7130:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12198, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "7123:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 12200, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7123:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "7109:30:43" }, { "assignments": [ 12203 ], "declarations": [ { "constant": false, "id": 12203, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12217, "src": "7149:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12202, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "7149:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12207, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12204, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "7173:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12206, "indexExpression": { "argumentTypes": null, "id": 12205, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12197, "src": "7183:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7173:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "7149:38:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12214, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "7242:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12210, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12203, "src": "7221:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12211, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "7221:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12208, "name": "dodoPerBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11673, "src": "7204:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "7204:16:43", "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": 12212, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7204:33:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", "referencedDeclaration": 11499, "src": "7204:37:43", "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": 12215, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7204:54:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 12195, "id": 12216, "nodeType": "Return", "src": "7197:61:43" } ] }, "documentation": null, "functionSelector": "fb7276f4", "id": 12218, "implemented": true, "kind": "function", "modifiers": [], "name": "getDlpMiningSpeed", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12192, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12191, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12218, "src": "7049:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12190, "name": "address", "nodeType": "ElementaryTypeName", "src": "7049:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "7048:18:43" }, "returnParameters": { "id": 12195, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12194, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12218, "src": "7090:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12193, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7090:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7089:9:43" }, "scope": 12822, "src": "7022:243:43", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 12242, "nodeType": "Block", "src": "7426:142:43", "statements": [ { "assignments": [ 12222 ], "declarations": [ { "constant": false, "id": 12222, "mutability": "mutable", "name": "length", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12242, "src": "7436:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12221, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7436:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12225, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12223, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "7453:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7453:16:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "7436:33:43" }, { "body": { "id": 12240, "nodeType": "Block", "src": "7522:40:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12237, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12227, "src": "7547:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12236, "name": "updatePool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12329, "src": "7536:10:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 12238, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7536:15:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12239, "nodeType": "ExpressionStatement", "src": "7536:15:43" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 12230, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12227, "src": "7501:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 12231, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12222, "src": "7507:6:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7501:12:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 12241, "initializationExpression": { "assignments": [ 12227 ], "declarations": [ { "constant": false, "id": 12227, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12241, "src": "7484:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12226, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7484:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12229, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 12228, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7498:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "7484:15:43" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 12234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "7515:5:43", "subExpression": { "argumentTypes": null, "id": 12233, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12227, "src": "7517:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12235, "nodeType": "ExpressionStatement", "src": "7515:5:43" }, "nodeType": "ForStatement", "src": "7479:83:43" } ] }, "documentation": null, "functionSelector": "630b5ba1", "id": 12243, "implemented": true, "kind": "function", "modifiers": [], "name": "massUpdatePools", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12219, "nodeType": "ParameterList", "parameters": [], "src": "7416:2:43" }, "returnParameters": { "id": 12220, "nodeType": "ParameterList", "parameters": [], "src": "7426:0:43" }, "scope": 12822, "src": "7392:176:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12328, "nodeType": "Block", "src": "7682:660:43", "statements": [ { "assignments": [ 12249 ], "declarations": [ { "constant": false, "id": 12249, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12328, "src": "7692:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12248, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "7692:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12253, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12250, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "7716:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12252, "indexExpression": { "argumentTypes": null, "id": 12251, "name": "_pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12245, "src": "7726:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7716:15:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "7692:39:43" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12254, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "7745:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 12255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7745:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12256, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "7761:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12257, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "7761:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7745:36:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12261, "nodeType": "IfStatement", "src": "7741:73:43", "trueBody": { "id": 12260, "nodeType": "Block", "src": "7783:31:43", "statements": [ { "expression": null, "functionReturnParameters": 12247, "id": 12259, "nodeType": "Return", "src": "7797:7:43" } ] } }, { "assignments": [ 12263 ], "declarations": [ { "constant": false, "id": 12263, "mutability": "mutable", "name": "lpSupply", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12328, "src": "7823:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12262, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7823:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12274, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12271, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "7881:4:43", "typeDescriptions": { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } ], "id": 12270, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7873:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 12269, "name": "address", "nodeType": "ElementaryTypeName", "src": "7873:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 12272, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7873:13:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12265, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "7849:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12266, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lpToken", "nodeType": "MemberAccess", "referencedDeclaration": 11662, "src": "7849:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12264, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "7842:6:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 12267, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7842:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 12268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 10564, "src": "7842:30:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, "id": 12273, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7842:45:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "7823:64:43" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12277, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 12275, "name": "lpSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12263, "src": "7901:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12276, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7913:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "7901:13:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12287, "nodeType": "IfStatement", "src": "7897:99:43", "trueBody": { "id": 12286, "nodeType": "Block", "src": "7916:80:43", "statements": [ { "expression": { "argumentTypes": null, "id": 12283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12278, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "7930:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12280, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "7930:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12281, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "7953:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 12282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7953:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7930:35:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12284, "nodeType": "ExpressionStatement", "src": "7930:35:43" }, { "expression": null, "functionReturnParameters": 12247, "id": 12285, "nodeType": "Return", "src": "7979:7:43" } ] } }, { "assignments": [ 12289 ], "declarations": [ { "constant": false, "id": 12289, "mutability": "mutable", "name": "DODOReward", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12328, "src": "8005:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12288, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8005:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12306, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12304, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "8173:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12300, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "8139:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12301, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "8139:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12297, "name": "dodoPerBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11673, "src": "8108:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12293, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "8069:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12294, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "8069:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12290, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "8026:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 12291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8026:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12292, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "8026:42:43", "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": 12295, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8026:64:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "8026:81:43", "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": 12298, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8026:95:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "8026:112:43", "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": 12302, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8026:129:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", "referencedDeclaration": 11499, "src": "8026:146:43", "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": 12305, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8026:163:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "8005:184:43" }, { "expression": { "argumentTypes": null, "id": 12319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12307, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "8199:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12309, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "8199:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12315, "name": "DODOReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12289, "src": "8268:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12316, "name": "lpSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12263, "src": "8280:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12313, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "8247:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "divFloor", "nodeType": "MemberAccess", "referencedDeclaration": 11059, "src": "8247:20:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12317, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8247:42:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12310, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "8222:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12311, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "8222:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "8222:24:43", "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": 12318, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8222:68:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8199:91:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12320, "nodeType": "ExpressionStatement", "src": "8199:91:43" }, { "expression": { "argumentTypes": null, "id": 12326, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12321, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "8300:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12323, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "8300:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12324, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "8323:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 12325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8323:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8300:35:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12327, "nodeType": "ExpressionStatement", "src": "8300:35:43" } ] }, "documentation": null, "functionSelector": "51eb05a6", "id": 12329, "implemented": true, "kind": "function", "modifiers": [], "name": "updatePool", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12246, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12245, "mutability": "mutable", "name": "_pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12329, "src": "7661:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12244, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7661:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7660:14:43" }, "returnParameters": { "id": 12247, "nodeType": "ParameterList", "parameters": [], "src": "7682:0:43" }, "scope": 12822, "src": "7641:701:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12433, "nodeType": "Block", "src": "8518:670:43", "statements": [ { "assignments": [ 12337 ], "declarations": [ { "constant": false, "id": 12337, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12433, "src": "8528:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12336, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8528:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12341, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12339, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12331, "src": "8549:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12338, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "8542:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 12340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8542:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "8528:30:43" }, { "assignments": [ 12343 ], "declarations": [ { "constant": false, "id": 12343, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12433, "src": "8568:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12342, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "8568:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12347, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12344, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "8592:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12346, "indexExpression": { "argumentTypes": null, "id": 12345, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12337, "src": "8602:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8592:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "8568:38:43" }, { "assignments": [ 12349 ], "declarations": [ { "constant": false, "id": 12349, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12433, "src": "8616:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 12348, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "8616:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 12356, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12350, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "8640:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12352, "indexExpression": { "argumentTypes": null, "id": 12351, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12337, "src": "8649:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8640:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12355, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12353, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8654:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8654:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8640:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "8616:49:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12358, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12337, "src": "8686:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12357, "name": "updatePool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12329, "src": "8675:10:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 12359, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8675:15:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12360, "nodeType": "ExpressionStatement", "src": "8675:15:43" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12361, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "8704:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12362, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "8704:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12363, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8718:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8704:15:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12386, "nodeType": "IfStatement", "src": "8700:216:43", "trueBody": { "id": 12385, "nodeType": "Block", "src": "8721:195:43", "statements": [ { "assignments": [ 12366 ], "declarations": [ { "constant": false, "id": 12366, "mutability": "mutable", "name": "pending", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12385, "src": "8735:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12365, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8735:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12378, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12375, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "8825:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12376, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "8825:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12369, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "8769:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12370, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "8769:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12371, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12343, "src": "8782:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12372, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "8782:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12367, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "8753:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "8753:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12373, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8753:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12374, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "8753:54:43", "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": 12377, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8753:101:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "8735:119:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12380, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8885:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8885:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 12382, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12366, "src": "8897:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12379, "name": "safeDODOTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12821, "src": "8868:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 12383, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8868:37:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12384, "nodeType": "ExpressionStatement", "src": "8868:37:43" } ] } }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12394, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8971:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12395, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8971:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 12393, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8963:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 12392, "name": "address", "nodeType": "ElementaryTypeName", "src": "8963:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 12396, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8963:19:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12399, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "8992:4:43", "typeDescriptions": { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } ], "id": 12398, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8984:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 12397, "name": "address", "nodeType": "ElementaryTypeName", "src": "8984:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 12400, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8984:13:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 12401, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12333, "src": "8999:7:43", "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, "expression": { "argumentTypes": null, "id": 12388, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12343, "src": "8932:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12389, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lpToken", "nodeType": "MemberAccess", "referencedDeclaration": 11662, "src": "8932:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12387, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "8925:6:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 12390, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8925:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 12391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 11354, "src": "8925:37:43", "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": 12402, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8925:82:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12403, "nodeType": "ExpressionStatement", "src": "8925:82:43" }, { "expression": { "argumentTypes": null, "id": 12412, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12404, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "9017:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12406, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9017:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12410, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12333, "src": "9047:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12407, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "9031:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12408, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9031:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12409, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "9031:15:43", "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": 12411, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9031:24:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9017:38:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12413, "nodeType": "ExpressionStatement", "src": "9017:38:43" }, { "expression": { "argumentTypes": null, "id": 12424, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12414, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "9065:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12416, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "9065:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12419, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "9099:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12420, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9099:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12421, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12343, "src": "9112:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12422, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "9112:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12417, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "9083:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12418, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "9083:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12423, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9083:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9065:68:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12425, "nodeType": "ExpressionStatement", "src": "9065:68:43" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12427, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "9156:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12428, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9156:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 12429, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12337, "src": "9168:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12430, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12333, "src": "9173:7:43", "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" } ], "id": 12426, "name": "Deposit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11703, "src": "9148:7:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, "id": 12431, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9148:33:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12432, "nodeType": "EmitStatement", "src": "9143:38:43" } ] }, "documentation": null, "functionSelector": "47e7ef24", "id": 12434, "implemented": true, "kind": "function", "modifiers": [], "name": "deposit", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12334, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12331, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12434, "src": "8476:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12330, "name": "address", "nodeType": "ElementaryTypeName", "src": "8476:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 12333, "mutability": "mutable", "name": "_amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12434, "src": "8494:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12332, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8494:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "8475:35:43" }, "returnParameters": { "id": 12335, "nodeType": "ParameterList", "parameters": [], "src": "8518:0:43" }, "scope": 12822, "src": "8459:729:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12536, "nodeType": "Block", "src": "9254:635:43", "statements": [ { "assignments": [ 12442 ], "declarations": [ { "constant": false, "id": 12442, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12536, "src": "9264:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12441, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9264:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12446, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12444, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12436, "src": "9285:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12443, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "9278:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 12445, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9278:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "9264:30:43" }, { "assignments": [ 12448 ], "declarations": [ { "constant": false, "id": 12448, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12536, "src": "9304:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12447, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "9304:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12452, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12449, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "9328:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12451, "indexExpression": { "argumentTypes": null, "id": 12450, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12442, "src": "9338:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9328:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "9304:38:43" }, { "assignments": [ 12454 ], "declarations": [ { "constant": false, "id": 12454, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12536, "src": "9352:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 12453, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "9352:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 12461, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12455, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "9376:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12457, "indexExpression": { "argumentTypes": null, "id": 12456, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12442, "src": "9385:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9376:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12460, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12458, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "9390:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12459, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9390:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9376:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "9352:49:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12463, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9419:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12464, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9419:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 12465, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12438, "src": "9434:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9419:22:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "776974686472617720746f6f206d756368", "id": 12467, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9443:19:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c36bb679920b61b680a8b24a18ff078642b393d25605ff3a7616b83483e73b38", "typeString": "literal_string \"withdraw too much\"" }, "value": "withdraw too much" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c36bb679920b61b680a8b24a18ff078642b393d25605ff3a7616b83483e73b38", "typeString": "literal_string \"withdraw too much\"" } ], "id": 12462, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "9411:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 12468, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9411:52:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12469, "nodeType": "ExpressionStatement", "src": "9411:52:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12471, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12442, "src": "9484:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12470, "name": "updatePool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12329, "src": "9473:10:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 12472, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9473:15:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12473, "nodeType": "ExpressionStatement", "src": "9473:15:43" }, { "assignments": [ 12475 ], "declarations": [ { "constant": false, "id": 12475, "mutability": "mutable", "name": "pending", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12536, "src": "9498:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12474, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9498:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12487, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12484, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9571:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12485, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "9571:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12478, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9532:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12479, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9532:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12480, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12448, "src": "9545:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12481, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "9545:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12476, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "9516:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12477, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "9516:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12482, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9516:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "9516:54:43", "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": 12486, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9516:71:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "9498:89:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12489, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "9614:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9614:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 12491, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12475, "src": "9626:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12488, "name": "safeDODOTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12821, "src": "9597:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 12492, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9597:37:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12493, "nodeType": "ExpressionStatement", "src": "9597:37:43" }, { "expression": { "argumentTypes": null, "id": 12502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12494, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9644:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12496, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9644:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12500, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12438, "src": "9674:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12497, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9658:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12498, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9658:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12499, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "9658:15:43", "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": 12501, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9658:24:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9644:38:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12503, "nodeType": "ExpressionStatement", "src": "9644:38:43" }, { "expression": { "argumentTypes": null, "id": 12514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12504, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9692:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12506, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "9692:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12509, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9726:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12510, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9726:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12511, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12448, "src": "9739:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12512, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "9739:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12507, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "9710:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "9710:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12513, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9710:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9692:68:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12515, "nodeType": "ExpressionStatement", "src": "9692:68:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12523, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "9812:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12524, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9812:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 12522, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9804:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 12521, "name": "address", "nodeType": "ElementaryTypeName", "src": "9804:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 12525, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9804:19:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 12526, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12438, "src": "9825:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12517, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12448, "src": "9777:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12518, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lpToken", "nodeType": "MemberAccess", "referencedDeclaration": 11662, "src": "9777:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12516, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "9770:6:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 12519, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9770:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 12520, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", "referencedDeclaration": 11329, "src": "9770:33:43", "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": 12527, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9770:63:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12528, "nodeType": "ExpressionStatement", "src": "9770:63:43" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12530, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "9857:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12531, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9857:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 12532, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12442, "src": "9869:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12533, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12438, "src": "9874:7:43", "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" } ], "id": 12529, "name": "Withdraw", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11711, "src": "9848:8:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, "id": 12534, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9848:34:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12535, "nodeType": "EmitStatement", "src": "9843:39:43" } ] }, "documentation": null, "functionSelector": "f3fef3a3", "id": 12537, "implemented": true, "kind": "function", "modifiers": [], "name": "withdraw", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12439, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12436, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12537, "src": "9212:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12435, "name": "address", "nodeType": "ElementaryTypeName", "src": "9212:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 12438, "mutability": "mutable", "name": "_amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12537, "src": "9230:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12437, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9230:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "9211:35:43" }, "returnParameters": { "id": 12440, "nodeType": "ParameterList", "parameters": [], "src": "9254:0:43" }, "scope": 12822, "src": "9194:695:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12555, "nodeType": "Block", "src": "9941:110:43", "statements": [ { "assignments": [ 12543 ], "declarations": [ { "constant": false, "id": 12543, "mutability": "mutable", "name": "balance", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12555, "src": "9951:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12542, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9951:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12549, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12545, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12539, "src": "9986:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12546, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "9996:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12547, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9996:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 12544, "name": "getUserLpBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11818, "src": "9969:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, "id": 12548, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9969:38:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "9951:56:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12551, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12539, "src": "10026:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 12552, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12543, "src": "10036:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12550, "name": "withdraw", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12537, "src": "10017:8:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 12553, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10017:27:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12554, "nodeType": "ExpressionStatement", "src": "10017:27:43" } ] }, "documentation": null, "functionSelector": "fa09e630", "id": 12556, "implemented": true, "kind": "function", "modifiers": [], "name": "withdrawAll", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12540, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12539, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12556, "src": "9916:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12538, "name": "address", "nodeType": "ElementaryTypeName", "src": "9916:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "9915:18:43" }, "returnParameters": { "id": 12541, "nodeType": "ParameterList", "parameters": [], "src": "9941:0:43" }, "scope": 12822, "src": "9895:156:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12608, "nodeType": "Block", "src": "10171:285:43", "statements": [ { "assignments": [ 12562 ], "declarations": [ { "constant": false, "id": 12562, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12608, "src": "10181:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12561, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10181:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12566, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12564, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12558, "src": "10202:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12563, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "10195:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 12565, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10195:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "10181:30:43" }, { "assignments": [ 12568 ], "declarations": [ { "constant": false, "id": 12568, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12608, "src": "10221:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12567, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "10221:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12572, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12569, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "10245:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12571, "indexExpression": { "argumentTypes": null, "id": 12570, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12562, "src": "10255:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10245:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "10221:38:43" }, { "assignments": [ 12574 ], "declarations": [ { "constant": false, "id": 12574, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12608, "src": "10269:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 12573, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "10269:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 12581, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12575, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "10293:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12577, "indexExpression": { "argumentTypes": null, "id": 12576, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12562, "src": "10302:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10293:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12580, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12578, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10307:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12579, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10307:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10293:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "10269:49:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12589, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10370:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10370:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 12588, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10362:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 12587, "name": "address", "nodeType": "ElementaryTypeName", "src": "10362:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 12591, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10362:19:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12592, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12574, "src": "10383:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12593, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "10383:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12583, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12568, "src": "10335:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12584, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lpToken", "nodeType": "MemberAccess", "referencedDeclaration": 11662, "src": "10335:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12582, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "10328:6:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 12585, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10328:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 12586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", "referencedDeclaration": 11329, "src": "10328:33:43", "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": 12594, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10328:67:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12595, "nodeType": "ExpressionStatement", "src": "10328:67:43" }, { "expression": { "argumentTypes": null, "id": 12600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12596, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12574, "src": "10405:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12598, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "10405:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 12599, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10419:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10405:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12601, "nodeType": "ExpressionStatement", "src": "10405:15:43" }, { "expression": { "argumentTypes": null, "id": 12606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12602, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12574, "src": "10430:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12604, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "10430:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 12605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10448:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10430:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12607, "nodeType": "ExpressionStatement", "src": "10430:19:43" } ] }, "documentation": null, "functionSelector": "6ff1c9bc", "id": 12609, "implemented": true, "kind": "function", "modifiers": [], "name": "emergencyWithdraw", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12559, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12558, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12609, "src": "10146:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12557, "name": "address", "nodeType": "ElementaryTypeName", "src": "10146:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "10145:18:43" }, "returnParameters": { "id": 12560, "nodeType": "ParameterList", "parameters": [], "src": "10171:0:43" }, "scope": 12822, "src": "10119:337:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12690, "nodeType": "Block", "src": "10502:532:43", "statements": [ { "assignments": [ 12615 ], "declarations": [ { "constant": false, "id": 12615, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12690, "src": "10512:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12614, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10512:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12619, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12617, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12611, "src": "10533:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12616, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "10526:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 12618, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10526:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "10512:30:43" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 12635, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12620, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "10556:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12622, "indexExpression": { "argumentTypes": null, "id": 12621, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12615, "src": "10565:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10556:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12625, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12623, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10570:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12624, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10570:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10556:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "id": 12626, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "10556:32:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12627, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10592:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10556:37:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12634, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12629, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "10597:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12631, "indexExpression": { "argumentTypes": null, "id": 12630, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12615, "src": "10607:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10597:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "id": 12632, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "10597:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10626:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10597:30:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "10556:71:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12638, "nodeType": "IfStatement", "src": "10552:120:43", "trueBody": { "id": 12637, "nodeType": "Block", "src": "10629:43:43", "statements": [ { "expression": null, "functionReturnParameters": 12613, "id": 12636, "nodeType": "Return", "src": "10643:7:43" } ] } }, { "assignments": [ 12640 ], "declarations": [ { "constant": false, "id": 12640, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12690, "src": "10681:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12639, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "10681:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12644, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12641, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "10705:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12643, "indexExpression": { "argumentTypes": null, "id": 12642, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12615, "src": "10715:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10705:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "10681:38:43" }, { "assignments": [ 12646 ], "declarations": [ { "constant": false, "id": 12646, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12690, "src": "10729:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 12645, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "10729:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 12653, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12647, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "10753:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12649, "indexExpression": { "argumentTypes": null, "id": 12648, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12615, "src": "10762:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10753:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12652, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12650, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10767:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10767:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10753:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "10729:49:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12655, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12615, "src": "10799:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12654, "name": "updatePool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12329, "src": "10788:10:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 12656, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10788:15:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12657, "nodeType": "ExpressionStatement", "src": "10788:15:43" }, { "assignments": [ 12659 ], "declarations": [ { "constant": false, "id": 12659, "mutability": "mutable", "name": "pending", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12690, "src": "10813:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12658, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10813:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12671, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12668, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12646, "src": "10886:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12669, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "10886:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12662, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12646, "src": "10847:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12663, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "10847:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12664, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12640, "src": "10860:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12665, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "10860:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12660, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "10831:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12661, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "10831:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12666, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10831:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "10831:54:43", "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": 12670, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10831:71:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "10813:89:43" }, { "expression": { "argumentTypes": null, "id": 12682, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12672, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12646, "src": "10912:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12674, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "10912:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12677, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12646, "src": "10946:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12678, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "10946:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12679, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12640, "src": "10959:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12680, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "10959:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12675, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "10930:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "10930:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12681, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10930:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10912:68:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12683, "nodeType": "ExpressionStatement", "src": "10912:68:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12685, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "11007:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11007:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 12687, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12659, "src": "11019:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12684, "name": "safeDODOTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12821, "src": "10990:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 12688, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10990:37:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12689, "nodeType": "ExpressionStatement", "src": "10990:37:43" } ] }, "documentation": null, "functionSelector": "1e83409a", "id": 12691, "implemented": true, "kind": "function", "modifiers": [], "name": "claim", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12612, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12611, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12691, "src": "10477:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12610, "name": "address", "nodeType": "ElementaryTypeName", "src": "10477:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "10476:18:43" }, "returnParameters": { "id": 12613, "nodeType": "ParameterList", "parameters": [], "src": "10502:0:43" }, "scope": 12822, "src": "10462:572:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12788, "nodeType": "Block", "src": "11067:696:43", "statements": [ { "assignments": [ 12695 ], "declarations": [ { "constant": false, "id": 12695, "mutability": "mutable", "name": "length", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12788, "src": "11077:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12694, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11077:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12698, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12696, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "11094:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12697, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11094:16:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "11077:33:43" }, { "assignments": [ 12700 ], "declarations": [ { "constant": false, "id": 12700, "mutability": "mutable", "name": "pending", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12788, "src": "11120:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12699, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11120:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12702, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 12701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11138:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "11120:19:43" }, { "body": { "id": 12780, "nodeType": "Block", "src": "11192:518:43", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 12728, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12721, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12713, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "11210:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12715, "indexExpression": { "argumentTypes": null, "id": 12714, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11219:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11210:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12718, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12716, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "11224:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12717, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11224:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11210:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "id": 12719, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "11210:32:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12720, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11246:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "11210:37:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12722, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "11251:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12724, "indexExpression": { "argumentTypes": null, "id": 12723, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11261:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11251:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "id": 12725, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "11251:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12726, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11280:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "11251:30:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "11210:71:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12731, "nodeType": "IfStatement", "src": "11206:130:43", "trueBody": { "id": 12730, "nodeType": "Block", "src": "11283:53:43", "statements": [ { "id": 12729, "nodeType": "Continue", "src": "11301:8:43" } ] } }, { "assignments": [ 12733 ], "declarations": [ { "constant": false, "id": 12733, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12780, "src": "11349:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12732, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "11349:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12737, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12734, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "11373:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12736, "indexExpression": { "argumentTypes": null, "id": 12735, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11383:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11373:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "11349:38:43" }, { "assignments": [ 12739 ], "declarations": [ { "constant": false, "id": 12739, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12780, "src": "11401:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 12738, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "11401:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 12746, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12740, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "11425:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12742, "indexExpression": { "argumentTypes": null, "id": 12741, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11434:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11425:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12745, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12743, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "11439:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11439:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11425:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "11401:49:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12748, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11475:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12747, "name": "updatePool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12329, "src": "11464:10:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 12749, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11464:15:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12750, "nodeType": "ExpressionStatement", "src": "11464:15:43" }, { "expression": { "argumentTypes": null, "id": 12766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12751, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12700, "src": "11493:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12762, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12739, "src": "11587:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12763, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "11587:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12756, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12739, "src": "11548:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12757, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "11548:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12758, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12733, "src": "11561:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12759, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "11561:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12754, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "11532:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "11532:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12760, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11532:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12761, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "11532:54:43", "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": 12764, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11532:71:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12752, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12700, "src": "11503:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12753, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "11503:11:43", "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": 12765, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11503:114:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11493:124:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12767, "nodeType": "ExpressionStatement", "src": "11493:124:43" }, { "expression": { "argumentTypes": null, "id": 12778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12768, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12739, "src": "11631:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12770, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "11631:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12773, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12739, "src": "11665:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12774, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "11665:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12775, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12733, "src": "11678:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12776, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "11678:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12771, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "11649:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "11649:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12777, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11649:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11631:68:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12779, "nodeType": "ExpressionStatement", "src": "11631:68:43" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 12707, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11171:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 12708, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12695, "src": "11177:6:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11171:12:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 12781, "initializationExpression": { "assignments": [ 12704 ], "declarations": [ { "constant": false, "id": 12704, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12781, "src": "11154:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12703, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11154:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12706, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 12705, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11168:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "11154:15:43" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 12711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "11185:5:43", "subExpression": { "argumentTypes": null, "id": 12710, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11187:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12712, "nodeType": "ExpressionStatement", "src": "11185:5:43" }, "nodeType": "ForStatement", "src": "11149:561:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12783, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "11736:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11736:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 12785, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12700, "src": "11748:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12782, "name": "safeDODOTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12821, "src": "11719:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 12786, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11719:37:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12787, "nodeType": "ExpressionStatement", "src": "11719:37:43" } ] }, "documentation": null, "functionSelector": "d1058e59", "id": 12789, "implemented": true, "kind": "function", "modifiers": [], "name": "claimAll", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12692, "nodeType": "ParameterList", "parameters": [], "src": "11057:2:43" }, "returnParameters": { "id": 12693, "nodeType": "ParameterList", "parameters": [], "src": "11067:0:43" }, "scope": 12822, "src": "11040:723:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12820, "nodeType": "Block", "src": "11869:169:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12800, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12791, "src": "11920:3:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 12801, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12793, "src": "11925:7:43", "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": 12797, "name": "dodoRewardVault", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11671, "src": "11896:15:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12796, "name": "IDODORewardVault", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12962, "src": "11879:16:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IDODORewardVault_$12962_$", "typeString": "type(contract IDODORewardVault)" } }, "id": 12798, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11879:33:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IDODORewardVault_$12962", "typeString": "contract IDODORewardVault" } }, "id": 12799, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "reward", "nodeType": "MemberAccess", "referencedDeclaration": 12961, "src": "11879:40:43", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, "id": 12802, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11879:54:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12803, "nodeType": "ExpressionStatement", "src": "11879:54:43" }, { "expression": { "argumentTypes": null, "id": 12813, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12804, "name": "realizedReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11690, "src": "11943:14:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 12806, "indexExpression": { "argumentTypes": null, "id": 12805, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12791, "src": "11958:3:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "11943:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12811, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12793, "src": "11989:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12807, "name": "realizedReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11690, "src": "11965:14:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 12809, "indexExpression": { "argumentTypes": null, "id": 12808, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12791, "src": "11980:3:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11965:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "11965:23:43", "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": 12812, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11965:32:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11943:54:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12814, "nodeType": "ExpressionStatement", "src": "11943:54:43" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12816, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12791, "src": "12018:3:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 12817, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12793, "src": "12023:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12815, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11717, "src": "12012:5:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 12818, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12012:19:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12819, "nodeType": "EmitStatement", "src": "12007:24:43" } ] }, "documentation": null, "id": 12821, "implemented": true, "kind": "function", "modifiers": [], "name": "safeDODOTransfer", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12794, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12791, "mutability": "mutable", "name": "_to", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12821, "src": "11830:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12790, "name": "address", "nodeType": "ElementaryTypeName", "src": "11830:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 12793, "mutability": "mutable", "name": "_amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12821, "src": "11843:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12792, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11843:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "11829:30:43" }, "returnParameters": { "id": 12795, "nodeType": "ParameterList", "parameters": [], "src": "11869:0:43" }, "scope": 12822, "src": "11804:234:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" } ], "scope": 12823, "src": "444:11596:43" } ], "src": "78:11963:43" }, "legacyAST": { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMine.sol", "exportedSymbols": { "DODOMine": [ 12822 ] }, "id": 12823, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 11633, "literals": [ "solidity", "0.6", ".9" ], "nodeType": "PragmaDirective", "src": "78:22:43" }, { "id": 11634, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "101:33:43" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", "file": "../lib/Ownable.sol", "id": 11636, "nodeType": "ImportDirective", "scope": 12823, "sourceUnit": 11272, "src": "136:43:43", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 11635, "name": "Ownable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "144:7:43", "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": 11638, "nodeType": "ImportDirective", "scope": 12823, "sourceUnit": 11079, "src": "180:51:43", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 11637, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "188:11:43", "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": 11640, "nodeType": "ImportDirective", "scope": 12823, "sourceUnit": 11441, "src": "232:47:43", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 11639, "name": "SafeERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "240:9:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", "file": "../lib/SafeMath.sol", "id": 11642, "nodeType": "ImportDirective", "scope": 12823, "sourceUnit": 11624, "src": "280:45:43", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 11641, "name": "SafeMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "288:8:43", "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": 11644, "nodeType": "ImportDirective", "scope": 12823, "sourceUnit": 10608, "src": "326:42:43", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 11643, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "334:6:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol", "file": "./DODORewardVault.sol", "id": 11647, "nodeType": "ImportDirective", "scope": 12823, "sourceUnit": 12999, "src": "369:72:43", "symbolAliases": [ { "foreign": { "argumentTypes": null, "id": 11645, "name": "IDODORewardVault", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "377:16:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null }, { "foreign": { "argumentTypes": null, "id": 11646, "name": "DODORewardVault", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": null, "src": "395:15:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } }, "local": null } ], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 11648, "name": "Ownable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11271, "src": "465:7:43", "typeDescriptions": { "typeIdentifier": "t_contract$_Ownable_$11271", "typeString": "contract Ownable" } }, "id": 11649, "nodeType": "InheritanceSpecifier", "src": "465:7:43" } ], "contractDependencies": [ 11271, 12998 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 12822, "linearizedBaseContracts": [ 12822, 11271 ], "name": "DODOMine", "nodeType": "ContractDefinition", "nodes": [ { "id": 11652, "libraryName": { "contractScope": null, "id": 11650, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11623, "src": "485:8:43", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$11623", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "479:27:43", "typeName": { "id": 11651, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "498:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "id": 11655, "libraryName": { "contractScope": null, "id": 11653, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11440, "src": "517:9:43", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeERC20_$11440", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", "src": "511:27:43", "typeName": { "contractScope": null, "id": 11654, "name": "IERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 10607, "src": "531:6:43", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } } }, { "canonicalName": "DODOMine.UserInfo", "id": 11660, "members": [ { "constant": false, "id": 11657, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11660, "src": "596:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11656, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "596:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11659, "mutability": "mutable", "name": "rewardDebt", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11660, "src": "665:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11658, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "665:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "name": "UserInfo", "nodeType": "StructDefinition", "scope": 12822, "src": "570:777:43", "visibility": "public" }, { "canonicalName": "DODOMine.PoolInfo", "id": 11669, "members": [ { "constant": false, "id": 11662, "mutability": "mutable", "name": "lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11669, "src": "1405:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11661, "name": "address", "nodeType": "ElementaryTypeName", "src": "1405:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11664, "mutability": "mutable", "name": "allocPoint", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11669, "src": "1463:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11663, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1463:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11666, "mutability": "mutable", "name": "lastRewardBlock", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11669, "src": "1575:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11665, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1575:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11668, "mutability": "mutable", "name": "accDODOPerShare", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11669, "src": "1661:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11667, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1661:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "name": "PoolInfo", "nodeType": "StructDefinition", "scope": 12822, "src": "1379:367:43", "visibility": "public" }, { "constant": false, "functionSelector": "9599af13", "id": 11671, "mutability": "mutable", "name": "dodoRewardVault", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "1752:30:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11670, "name": "address", "nodeType": "ElementaryTypeName", "src": "1752:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "8af70336", "id": 11673, "mutability": "mutable", "name": "dodoPerBlock", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "1788:27:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11672, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1788:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "689d84e4", "id": 11676, "mutability": "mutable", "name": "poolInfos", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "1848:27:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo[]" }, "typeName": { "baseType": { "contractScope": null, "id": 11674, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "1848:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "id": 11675, "length": null, "nodeType": "ArrayTypeName", "src": "1848:10:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage_ptr", "typeString": "struct DODOMine.PoolInfo[]" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "3d16433e", "id": 11680, "mutability": "mutable", "name": "lpTokenRegistry", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "1881:50:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 11679, "keyType": { "id": 11677, "name": "address", "nodeType": "ElementaryTypeName", "src": "1889:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1881:27:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 11678, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1900:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "93f1a40b", "id": 11686, "mutability": "mutable", "name": "userInfo", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "1986:64:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo))" }, "typeName": { "id": 11685, "keyType": { "id": 11681, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1994:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "1986:48:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo))" }, "valueType": { "id": 11684, "keyType": { "id": 11682, "name": "address", "nodeType": "ElementaryTypeName", "src": "2013:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "2005:28:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo)" }, "valueType": { "contractScope": null, "id": 11683, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "2024:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "ec83a76a", "id": 11690, "mutability": "mutable", "name": "realizedReward", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "2056:49:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 11689, "keyType": { "id": 11687, "name": "address", "nodeType": "ElementaryTypeName", "src": "2064:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "2056:27:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 11688, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2075:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "17caf6f1", "id": 11693, "mutability": "mutable", "name": "totalAllocPoint", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "2199:34:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11691, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2199:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "30", "id": 11692, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2232:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "visibility": "public" }, { "constant": false, "functionSelector": "48cd4cb1", "id": 11695, "mutability": "mutable", "name": "startBlock", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12822, "src": "2288:25:43", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11694, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2288:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 11703, "name": "Deposit", "nodeType": "EventDefinition", "parameters": { "id": 11702, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11697, "indexed": true, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11703, "src": "2334:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11696, "name": "address", "nodeType": "ElementaryTypeName", "src": "2334:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11699, "indexed": true, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11703, "src": "2356:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11698, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2356:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11701, "indexed": false, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11703, "src": "2377:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11700, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2377:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2333:59:43" }, "src": "2320:73:43" }, { "anonymous": false, "documentation": null, "id": 11711, "name": "Withdraw", "nodeType": "EventDefinition", "parameters": { "id": 11710, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11705, "indexed": true, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11711, "src": "2413:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11704, "name": "address", "nodeType": "ElementaryTypeName", "src": "2413:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11707, "indexed": true, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11711, "src": "2435:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11706, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2435:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11709, "indexed": false, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11711, "src": "2456:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11708, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2456:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2412:59:43" }, "src": "2398:74:43" }, { "anonymous": false, "documentation": null, "id": 11717, "name": "Claim", "nodeType": "EventDefinition", "parameters": { "id": 11716, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11713, "indexed": true, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11717, "src": "2489:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11712, "name": "address", "nodeType": "ElementaryTypeName", "src": "2489:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11715, "indexed": false, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11717, "src": "2511:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11714, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2511:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2488:38:43" }, "src": "2477:50:43" }, { "body": { "id": 11738, "nodeType": "Block", "src": "2593:109:43", "statements": [ { "expression": { "argumentTypes": null, "id": 11732, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 11724, "name": "dodoRewardVault", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11671, "src": "2603:15:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11729, "name": "_dodoToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11719, "src": "2649:10:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11728, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "2629:19:43", "typeDescriptions": { "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DODORewardVault_$12998_$", "typeString": "function (address) returns (contract DODORewardVault)" }, "typeName": { "contractScope": null, "id": 11727, "name": "DODORewardVault", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 12998, "src": "2633:15:43", "typeDescriptions": { "typeIdentifier": "t_contract$_DODORewardVault_$12998", "typeString": "contract DODORewardVault" } } }, "id": 11730, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2629:31:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_DODORewardVault_$12998", "typeString": "contract DODORewardVault" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_DODORewardVault_$12998", "typeString": "contract DODORewardVault" } ], "id": 11726, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2621:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 11725, "name": "address", "nodeType": "ElementaryTypeName", "src": "2621:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 11731, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2621:40:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2603:58:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 11733, "nodeType": "ExpressionStatement", "src": "2603:58:43" }, { "expression": { "argumentTypes": null, "id": 11736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 11734, "name": "startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11695, "src": "2671:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 11735, "name": "_startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11721, "src": "2684:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2671:24:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11737, "nodeType": "ExpressionStatement", "src": "2671:24:43" } ] }, "documentation": null, "id": 11739, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11722, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11719, "mutability": "mutable", "name": "_dodoToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11739, "src": "2545:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11718, "name": "address", "nodeType": "ElementaryTypeName", "src": "2545:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11721, "mutability": "mutable", "name": "_startBlock", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11739, "src": "2565:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11720, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2565:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2544:41:43" }, "returnParameters": { "id": 11723, "nodeType": "ParameterList", "parameters": [], "src": "2593:0:43" }, "scope": 12822, "src": "2533:169:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 11753, "nodeType": "Block", "src": "2791:87:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11744, "name": "lpTokenRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11680, "src": "2809:15:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 11746, "indexExpression": { "argumentTypes": null, "id": 11745, "name": "lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11741, "src": "2825:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2809:24:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 11747, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2836:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2809:28:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4c5020546f6b656e204e6f74204578697374", "id": 11749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2839:20:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d66678012b5affca3d9727e8b7ea6591ac507d36b508c35b6405e4b76dfc67ac", "typeString": "literal_string \"LP Token Not Exist\"" }, "value": "LP Token Not Exist" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_d66678012b5affca3d9727e8b7ea6591ac507d36b508c35b6405e4b76dfc67ac", "typeString": "literal_string \"LP Token Not Exist\"" } ], "id": 11743, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2801:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 11750, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2801:59:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11751, "nodeType": "ExpressionStatement", "src": "2801:59:43" }, { "id": 11752, "nodeType": "PlaceholderStatement", "src": "2870:1:43" } ] }, "documentation": null, "id": 11754, "name": "lpTokenExist", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 11742, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11741, "mutability": "mutable", "name": "lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11754, "src": "2774:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11740, "name": "address", "nodeType": "ElementaryTypeName", "src": "2774:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2773:17:43" }, "src": "2752:126:43", "virtual": false, "visibility": "internal" }, { "body": { "id": 11768, "nodeType": "Block", "src": "2926:92:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11763, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11759, "name": "lpTokenRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11680, "src": "2944:15:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 11761, "indexExpression": { "argumentTypes": null, "id": 11760, "name": "lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11756, "src": "2960:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2944:24:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 11762, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2972:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2944:29:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4c5020546f6b656e20416c7265616479204578697374", "id": 11764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2975:24:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e6251c7bee25a31a23d0da97ca10d75b92968e9f3bcef7a6fc9dde9d1a7e1078", "typeString": "literal_string \"LP Token Already Exist\"" }, "value": "LP Token Already Exist" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e6251c7bee25a31a23d0da97ca10d75b92968e9f3bcef7a6fc9dde9d1a7e1078", "typeString": "literal_string \"LP Token Already Exist\"" } ], "id": 11758, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2936:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 11765, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2936:64:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11766, "nodeType": "ExpressionStatement", "src": "2936:64:43" }, { "id": 11767, "nodeType": "PlaceholderStatement", "src": "3010:1:43" } ] }, "documentation": null, "id": 11769, "name": "lpTokenNotExist", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 11757, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11756, "mutability": "mutable", "name": "lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11769, "src": "2909:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11755, "name": "address", "nodeType": "ElementaryTypeName", "src": "2909:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2908:17:43" }, "src": "2884:134:43", "virtual": false, "visibility": "internal" }, { "body": { "id": 11777, "nodeType": "Block", "src": "3119:40:43", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11774, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "3136:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 11775, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3136:16:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11773, "id": 11776, "nodeType": "Return", "src": "3129:23:43" } ] }, "documentation": null, "functionSelector": "081e3eda", "id": 11778, "implemented": true, "kind": "function", "modifiers": [], "name": "poolLength", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11770, "nodeType": "ParameterList", "parameters": [], "src": "3084:2:43" }, "returnParameters": { "id": 11773, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11772, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11778, "src": "3110:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11771, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3110:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3109:9:43" }, "scope": 12822, "src": "3065:94:43", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 11794, "nodeType": "Block", "src": "3252:53:43", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11792, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11788, "name": "lpTokenRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11680, "src": "3269:15:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 11790, "indexExpression": { "argumentTypes": null, "id": 11789, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11780, "src": "3285:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3269:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 11791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3297:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "3269:29:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11787, "id": 11793, "nodeType": "Return", "src": "3262:36:43" } ] }, "documentation": null, "functionSelector": "43b55f35", "id": 11795, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "argumentTypes": null, "id": 11783, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11780, "src": "3224:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 11784, "modifierName": { "argumentTypes": null, "id": 11782, "name": "lpTokenExist", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11754, "src": "3211:12:43", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "3211:22:43" } ], "name": "getPid", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11781, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11780, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11795, "src": "3181:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11779, "name": "address", "nodeType": "ElementaryTypeName", "src": "3181:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3180:18:43" }, "returnParameters": { "id": 11787, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11786, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11795, "src": "3243:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11785, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3243:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3242:9:43" }, "scope": 12822, "src": "3165:140:43", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 11817, "nodeType": "Block", "src": "3400:91:43", "statements": [ { "assignments": [ 11805 ], "declarations": [ { "constant": false, "id": 11805, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11817, "src": "3410:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11804, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3410:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 11809, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11807, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11797, "src": "3431:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11806, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "3424:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 11808, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3424:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "3410:30:43" }, { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11810, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "3457:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 11812, "indexExpression": { "argumentTypes": null, "id": 11811, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11805, "src": "3466:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3457:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 11814, "indexExpression": { "argumentTypes": null, "id": 11813, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11799, "src": "3471:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3457:20:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "id": 11815, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "3457:27:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11803, "id": 11816, "nodeType": "Return", "src": "3450:34:43" } ] }, "documentation": null, "functionSelector": "19a78f55", "id": 11818, "implemented": true, "kind": "function", "modifiers": [], "name": "getUserLpBalance", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11800, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11797, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11818, "src": "3337:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11796, "name": "address", "nodeType": "ElementaryTypeName", "src": "3337:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11799, "mutability": "mutable", "name": "_user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11818, "src": "3355:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11798, "name": "address", "nodeType": "ElementaryTypeName", "src": "3355:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3336:33:43" }, "returnParameters": { "id": 11803, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11802, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11818, "src": "3391:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11801, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3391:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3390:9:43" }, "scope": 12822, "src": "3311:180:43", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 11874, "nodeType": "Block", "src": "3689:512:43", "statements": [ { "condition": { "argumentTypes": null, "id": 11832, "name": "_withUpdate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11824, "src": "3703:11:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 11837, "nodeType": "IfStatement", "src": "3699:59:43", "trueBody": { "id": 11836, "nodeType": "Block", "src": "3716:42:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 11833, "name": "massUpdatePools", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12243, "src": "3730:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 11834, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3730:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11835, "nodeType": "ExpressionStatement", "src": "3730:17:43" } ] } }, { "assignments": [ 11839 ], "declarations": [ { "constant": false, "id": 11839, "mutability": "mutable", "name": "lastRewardBlock", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11874, "src": "3767:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11838, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3767:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 11848, "initialValue": { "argumentTypes": null, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11843, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11840, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "3793:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 11841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3793:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 11842, "name": "startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11695, "src": "3808:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3793:25:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "argumentTypes": null, "id": 11846, "name": "startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11695, "src": "3836:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "3793:53:43", "trueExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11844, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "3821:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 11845, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3821:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "3767:79:43" }, { "expression": { "argumentTypes": null, "id": 11854, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 11849, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "3856:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11852, "name": "_allocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11822, "src": "3894:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 11850, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "3874:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "3874:19:43", "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": 11853, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3874:32:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3856:50:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11855, "nodeType": "ExpressionStatement", "src": "3856:50:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11860, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11820, "src": "3980:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 11861, "name": "_allocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11822, "src": "4018:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 11862, "name": "lastRewardBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11839, "src": "4064:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "hexValue": "30", "id": 11863, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4114:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 11859, "name": "PoolInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11669, "src": "3944:8:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_PoolInfo_$11669_storage_ptr_$", "typeString": "type(struct DODOMine.PoolInfo storage pointer)" } }, "id": 11864, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [ "lpToken", "allocPoint", "lastRewardBlock", "accDODOPerShare" ], "nodeType": "FunctionCall", "src": "3944:186:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_memory_ptr", "typeString": "struct DODOMine.PoolInfo memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_PoolInfo_$11669_memory_ptr", "typeString": "struct DODOMine.PoolInfo memory" } ], "expression": { "argumentTypes": null, "id": 11856, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "3916:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 11858, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3916:14:43", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_PoolInfo_$11669_storage_$returns$__$", "typeString": "function (struct DODOMine.PoolInfo storage ref)" } }, "id": 11865, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3916:224:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11866, "nodeType": "ExpressionStatement", "src": "3916:224:43" }, { "expression": { "argumentTypes": null, "id": 11872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11867, "name": "lpTokenRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11680, "src": "4150:15:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 11869, "indexExpression": { "argumentTypes": null, "id": 11868, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11820, "src": "4166:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4150:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11870, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "4178:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 11871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4178:16:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4150:44:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11873, "nodeType": "ExpressionStatement", "src": "4150:44:43" } ] }, "documentation": null, "functionSelector": "bea006e0", "id": 11875, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "argumentTypes": null, "id": 11827, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11820, "src": "3669:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 11828, "modifierName": { "argumentTypes": null, "id": 11826, "name": "lpTokenNotExist", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11769, "src": "3653:15:43", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", "src": "3653:25:43" }, { "arguments": null, "id": 11830, "modifierName": { "argumentTypes": null, "id": 11829, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "3679:9:43", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "3679:9:43" } ], "name": "addLpToken", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11825, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11820, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11875, "src": "3568:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11819, "name": "address", "nodeType": "ElementaryTypeName", "src": "3568:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11822, "mutability": "mutable", "name": "_allocPoint", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11875, "src": "3594:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11821, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3594:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11824, "mutability": "mutable", "name": "_withUpdate", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11875, "src": "3623:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 11823, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3623:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "3558:87:43" }, "returnParameters": { "id": 11831, "nodeType": "ParameterList", "parameters": [], "src": "3689:0:43" }, "scope": 12822, "src": "3539:662:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 11918, "nodeType": "Block", "src": "4331:255:43", "statements": [ { "condition": { "argumentTypes": null, "id": 11886, "name": "_withUpdate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11881, "src": "4345:11:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 11891, "nodeType": "IfStatement", "src": "4341:59:43", "trueBody": { "id": 11890, "nodeType": "Block", "src": "4358:42:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 11887, "name": "massUpdatePools", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12243, "src": "4372:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 11888, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4372:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11889, "nodeType": "ExpressionStatement", "src": "4372:17:43" } ] } }, { "assignments": [ 11893 ], "declarations": [ { "constant": false, "id": 11893, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11918, "src": "4409:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11892, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4409:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 11897, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11895, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11877, "src": "4430:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11894, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "4423:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 11896, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4423:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4409:30:43" }, { "expression": { "argumentTypes": null, "id": 11909, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 11898, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "4449:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11907, "name": "_allocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11879, "src": "4518:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11901, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "4487:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 11903, "indexExpression": { "argumentTypes": null, "id": 11902, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11893, "src": "4497:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4487:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "id": 11904, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "4487:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 11899, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "4467:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "4467:19:43", "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": 11905, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4467:46:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11906, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "4467:50:43", "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": 11908, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4467:63:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4449:81:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11910, "nodeType": "ExpressionStatement", "src": "4449:81:43" }, { "expression": { "argumentTypes": null, "id": 11916, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11911, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "4540:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 11913, "indexExpression": { "argumentTypes": null, "id": 11912, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11893, "src": "4550:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4540:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "id": 11914, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "4540:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 11915, "name": "_allocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11879, "src": "4568:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4540:39:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11917, "nodeType": "ExpressionStatement", "src": "4540:39:43" } ] }, "documentation": null, "functionSelector": "34ea5389", "id": 11919, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 11884, "modifierName": { "argumentTypes": null, "id": 11883, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "4321:9:43", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "4321:9:43" } ], "name": "setLpToken", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11882, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11877, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11919, "src": "4236:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11876, "name": "address", "nodeType": "ElementaryTypeName", "src": "4236:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11879, "mutability": "mutable", "name": "_allocPoint", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11919, "src": "4262:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11878, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4262:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11881, "mutability": "mutable", "name": "_withUpdate", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11919, "src": "4291:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 11880, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4291:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "4226:87:43" }, "returnParameters": { "id": 11885, "nodeType": "ParameterList", "parameters": [], "src": "4331:0:43" }, "scope": 12822, "src": "4207:379:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 11938, "nodeType": "Block", "src": "4671:113:43", "statements": [ { "condition": { "argumentTypes": null, "id": 11928, "name": "_withUpdate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11923, "src": "4685:11:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 11933, "nodeType": "IfStatement", "src": "4681:59:43", "trueBody": { "id": 11932, "nodeType": "Block", "src": "4698:42:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 11929, "name": "massUpdatePools", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12243, "src": "4712:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 11930, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4712:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11931, "nodeType": "ExpressionStatement", "src": "4712:17:43" } ] } }, { "expression": { "argumentTypes": null, "id": 11936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 11934, "name": "dodoPerBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11673, "src": "4749:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 11935, "name": "_dodoPerBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11921, "src": "4764:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4749:28:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11937, "nodeType": "ExpressionStatement", "src": "4749:28:43" } ] }, "documentation": null, "functionSelector": "7f10179f", "id": 11939, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 11926, "modifierName": { "argumentTypes": null, "id": 11925, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11198, "src": "4661:9:43", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "4661:9:43" } ], "name": "setReward", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11924, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11921, "mutability": "mutable", "name": "_dodoPerBlock", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11939, "src": "4611:21:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11920, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4611:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11923, "mutability": "mutable", "name": "_withUpdate", "nodeType": "VariableDeclaration", "overrides": null, "scope": 11939, "src": "4634:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 11922, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4634:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "4610:41:43" }, "returnParameters": { "id": 11927, "nodeType": "ParameterList", "parameters": [], "src": "4671:0:43" }, "scope": 12822, "src": "4592:192:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 12038, "nodeType": "Block", "src": "4928:753:43", "statements": [ { "assignments": [ 11949 ], "declarations": [ { "constant": false, "id": 11949, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12038, "src": "4938:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11948, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4938:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 11953, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11951, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11941, "src": "4959:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11950, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "4952:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 11952, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4952:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4938:30:43" }, { "assignments": [ 11955 ], "declarations": [ { "constant": false, "id": 11955, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12038, "src": "4978:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 11954, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "4978:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 11959, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11956, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "5002:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 11958, "indexExpression": { "argumentTypes": null, "id": 11957, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11949, "src": "5012:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5002:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "4978:38:43" }, { "assignments": [ 11961 ], "declarations": [ { "constant": false, "id": 11961, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12038, "src": "5026:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 11960, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "5026:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 11967, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 11962, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "5050:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 11964, "indexExpression": { "argumentTypes": null, "id": 11963, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11949, "src": "5059:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5050:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 11966, "indexExpression": { "argumentTypes": null, "id": 11965, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11943, "src": "5064:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5050:20:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "5026:44:43" }, { "assignments": [ 11969 ], "declarations": [ { "constant": false, "id": 11969, "mutability": "mutable", "name": "accDODOPerShare", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12038, "src": "5080:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11968, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5080:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 11972, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11970, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11955, "src": "5106:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 11971, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "5106:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5080:46:43" }, { "assignments": [ 11974 ], "declarations": [ { "constant": false, "id": 11974, "mutability": "mutable", "name": "lpSupply", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12038, "src": "5136:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11973, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5136:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 11985, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 11982, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "5194:4:43", "typeDescriptions": { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } ], "id": 11981, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5186:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 11980, "name": "address", "nodeType": "ElementaryTypeName", "src": "5186:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 11983, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5186:13:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11976, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11955, "src": "5162:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 11977, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lpToken", "nodeType": "MemberAccess", "referencedDeclaration": 11662, "src": "5162:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11975, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "5155:6:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 11978, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5155:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 11979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 10564, "src": "5155:30:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, "id": 11984, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5155:45:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5136:64:43" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 11994, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11986, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "5214:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 11987, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5214:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11988, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11955, "src": "5229:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 11989, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "5229:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5214:35:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11993, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 11991, "name": "lpSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11974, "src": "5253:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 11992, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5265:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5253:13:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5214:52:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12026, "nodeType": "IfStatement", "src": "5210:382:43", "trueBody": { "id": 12025, "nodeType": "Block", "src": "5268:324:43", "statements": [ { "assignments": [ 11996 ], "declarations": [ { "constant": false, "id": 11996, "mutability": "mutable", "name": "DODOReward", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12025, "src": "5282:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11995, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5282:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12013, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12011, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "5470:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12007, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11955, "src": "5432:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12008, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "5432:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12004, "name": "dodoPerBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11673, "src": "5397:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12000, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11955, "src": "5354:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12001, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "5354:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 11997, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "5303:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 11998, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5303:29:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11999, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "5303:50:43", "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": 12002, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5303:72:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "5303:93:43", "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": 12005, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5303:107:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "5303:128:43", "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": 12009, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5303:145:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12010, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", "referencedDeclaration": 11499, "src": "5303:166:43", "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": 12012, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5303:183:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5282:204:43" }, { "expression": { "argumentTypes": null, "id": 12023, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12014, "name": "accDODOPerShare", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11969, "src": "5500:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12019, "name": "DODOReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11996, "src": "5559:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12020, "name": "lpSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11974, "src": "5571:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12017, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "5538:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12018, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "divFloor", "nodeType": "MemberAccess", "referencedDeclaration": 11059, "src": "5538:20:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12021, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5538:42:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12015, "name": "accDODOPerShare", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11969, "src": "5518:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12016, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "5518:19:43", "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": 12022, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5518:63:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5500:81:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12024, "nodeType": "ExpressionStatement", "src": "5500:81:43" } ] } }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12034, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11961, "src": "5658:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "5658:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12029, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11961, "src": "5624:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12030, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "5624:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12031, "name": "accDODOPerShare", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11969, "src": "5637:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12027, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "5608:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12028, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "5608:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12032, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5608:45:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "5608:49:43", "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": 12036, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5608:66:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11947, "id": 12037, "nodeType": "Return", "src": "5601:73:43" } ] }, "documentation": null, "functionSelector": "fe0f3a13", "id": 12039, "implemented": true, "kind": "function", "modifiers": [], "name": "getPendingReward", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 11944, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11941, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12039, "src": "4863:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11940, "name": "address", "nodeType": "ElementaryTypeName", "src": "4863:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 11943, "mutability": "mutable", "name": "_user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12039, "src": "4881:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11942, "name": "address", "nodeType": "ElementaryTypeName", "src": "4881:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4862:33:43" }, "returnParameters": { "id": 11947, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11946, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12039, "src": "4919:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11945, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4919:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4918:9:43" }, "scope": 12822, "src": "4837:844:43", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 12176, "nodeType": "Block", "src": "5763:1128:43", "statements": [ { "assignments": [ 12047 ], "declarations": [ { "constant": false, "id": 12047, "mutability": "mutable", "name": "length", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12176, "src": "5773:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12046, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5773:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12050, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12048, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "5790:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12049, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5790:16:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5773:33:43" }, { "assignments": [ 12052 ], "declarations": [ { "constant": false, "id": 12052, "mutability": "mutable", "name": "totalReward", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12176, "src": "5816:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12051, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5816:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12054, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 12053, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5838:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "5816:23:43" }, { "body": { "id": 12172, "nodeType": "Block", "src": "5892:965:43", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 12079, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12065, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "5910:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12067, "indexExpression": { "argumentTypes": null, "id": 12066, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12056, "src": "5919:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5910:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12069, "indexExpression": { "argumentTypes": null, "id": 12068, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12041, "src": "5924:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5910:20:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "id": 12070, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "5910:27:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12071, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5941:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5910:32:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12073, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "5946:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12075, "indexExpression": { "argumentTypes": null, "id": 12074, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12056, "src": "5956:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5946:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "id": 12076, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "5946:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12077, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5975:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5946:30:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5910:66:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12082, "nodeType": "IfStatement", "src": "5906:125:43", "trueBody": { "id": 12081, "nodeType": "Block", "src": "5978:53:43", "statements": [ { "id": 12080, "nodeType": "Continue", "src": "5996:8:43" } ] } }, { "assignments": [ 12084 ], "declarations": [ { "constant": false, "id": 12084, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12172, "src": "6044:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12083, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "6044:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12088, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12085, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "6068:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12087, "indexExpression": { "argumentTypes": null, "id": 12086, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12056, "src": "6078:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6068:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "6044:38:43" }, { "assignments": [ 12090 ], "declarations": [ { "constant": false, "id": 12090, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12172, "src": "6096:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 12089, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "6096:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 12096, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12091, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "6120:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12093, "indexExpression": { "argumentTypes": null, "id": 12092, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12056, "src": "6129:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6120:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12095, "indexExpression": { "argumentTypes": null, "id": 12094, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12041, "src": "6134:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6120:20:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "6096:44:43" }, { "assignments": [ 12098 ], "declarations": [ { "constant": false, "id": 12098, "mutability": "mutable", "name": "accDODOPerShare", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12172, "src": "6154:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12097, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6154:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12101, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12099, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12084, "src": "6180:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12100, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "6180:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6154:46:43" }, { "assignments": [ 12103 ], "declarations": [ { "constant": false, "id": 12103, "mutability": "mutable", "name": "lpSupply", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12172, "src": "6214:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12102, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6214:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12114, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12111, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "6272:4:43", "typeDescriptions": { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } ], "id": 12110, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6264:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 12109, "name": "address", "nodeType": "ElementaryTypeName", "src": "6264:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 12112, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6264:13:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12105, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12084, "src": "6240:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12106, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lpToken", "nodeType": "MemberAccess", "referencedDeclaration": 11662, "src": "6240:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12104, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "6233:6:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 12107, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6233:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 12108, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 10564, "src": "6233:30:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, "id": 12113, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6233:45:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6214:64:43" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 12123, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12115, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "6296:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 12116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6296:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12117, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12084, "src": "6311:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12118, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "6311:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6296:35:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 12120, "name": "lpSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12103, "src": "6335:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12121, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6347:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "6335:13:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6296:52:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12155, "nodeType": "IfStatement", "src": "6292:414:43", "trueBody": { "id": 12154, "nodeType": "Block", "src": "6350:356:43", "statements": [ { "assignments": [ 12125 ], "declarations": [ { "constant": false, "id": 12125, "mutability": "mutable", "name": "DODOReward", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12154, "src": "6368:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12124, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6368:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12142, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12140, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "6576:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12136, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12084, "src": "6534:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12137, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "6534:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12133, "name": "dodoPerBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11673, "src": "6495:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12129, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12084, "src": "6448:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12130, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "6448:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12126, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "6389:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 12127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6389:33:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12128, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "6389:58:43", "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": 12131, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6389:80:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "6389:105:43", "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": 12134, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6389:119:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "6389:144:43", "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": 12138, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6389:161:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", "referencedDeclaration": 11499, "src": "6389:186:43", "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": 12141, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6389:203:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6368:224:43" }, { "expression": { "argumentTypes": null, "id": 12152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12143, "name": "accDODOPerShare", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12098, "src": "6610:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12148, "name": "DODOReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12125, "src": "6669:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12149, "name": "lpSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12103, "src": "6681:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12146, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "6648:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "divFloor", "nodeType": "MemberAccess", "referencedDeclaration": 11059, "src": "6648:20:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12150, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6648:42:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12144, "name": "accDODOPerShare", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12098, "src": "6628:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12145, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "6628:19:43", "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": 12151, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6628:63:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6610:81:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12153, "nodeType": "ExpressionStatement", "src": "6610:81:43" } ] } }, { "expression": { "argumentTypes": null, "id": 12170, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12156, "name": "totalReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12052, "src": "6719:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12166, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12090, "src": "6816:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12167, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "6816:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12161, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12090, "src": "6782:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12162, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "6782:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12163, "name": "accDODOPerShare", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12098, "src": "6795:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12159, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "6766:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12160, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "6766:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12164, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6766:45:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "6766:49:43", "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": 12168, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6766:66:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12157, "name": "totalReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12052, "src": "6733:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12158, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "6733:15:43", "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": 12169, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6733:113:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6719:127:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12171, "nodeType": "ExpressionStatement", "src": "6719:127:43" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 12059, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12056, "src": "5871:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 12060, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12047, "src": "5877:6:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5871:12:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 12173, "initializationExpression": { "assignments": [ 12056 ], "declarations": [ { "constant": false, "id": 12056, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12173, "src": "5854:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12055, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5854:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12058, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 12057, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5868:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "5854:15:43" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 12063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "5885:5:43", "subExpression": { "argumentTypes": null, "id": 12062, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12056, "src": "5887:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12064, "nodeType": "ExpressionStatement", "src": "5885:5:43" }, "nodeType": "ForStatement", "src": "5849:1008:43" }, { "expression": { "argumentTypes": null, "id": 12174, "name": "totalReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12052, "src": "6873:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 12045, "id": 12175, "nodeType": "Return", "src": "6866:18:43" } ] }, "documentation": null, "functionSelector": "f146b809", "id": 12177, "implemented": true, "kind": "function", "modifiers": [], "name": "getAllPendingReward", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12042, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12041, "mutability": "mutable", "name": "_user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12177, "src": "5716:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12040, "name": "address", "nodeType": "ElementaryTypeName", "src": "5716:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "5715:15:43" }, "returnParameters": { "id": 12045, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12044, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12177, "src": "5754:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12043, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5754:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5753:9:43" }, "scope": 12822, "src": "5687:1204:43", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 12188, "nodeType": "Block", "src": "6971:45:43", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12184, "name": "realizedReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11690, "src": "6988:14:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 12186, "indexExpression": { "argumentTypes": null, "id": 12185, "name": "_user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12179, "src": "7003:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6988:21:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 12183, "id": 12187, "nodeType": "Return", "src": "6981:28:43" } ] }, "documentation": null, "functionSelector": "6dc2cc8c", "id": 12189, "implemented": true, "kind": "function", "modifiers": [], "name": "getRealizedReward", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12180, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12179, "mutability": "mutable", "name": "_user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12189, "src": "6924:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12178, "name": "address", "nodeType": "ElementaryTypeName", "src": "6924:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "6923:15:43" }, "returnParameters": { "id": 12183, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12182, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12189, "src": "6962:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12181, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6962:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6961:9:43" }, "scope": 12822, "src": "6897:119:43", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 12217, "nodeType": "Block", "src": "7099:166:43", "statements": [ { "assignments": [ 12197 ], "declarations": [ { "constant": false, "id": 12197, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12217, "src": "7109:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12196, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7109:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12201, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12199, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12191, "src": "7130:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12198, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "7123:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 12200, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7123:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "7109:30:43" }, { "assignments": [ 12203 ], "declarations": [ { "constant": false, "id": 12203, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12217, "src": "7149:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12202, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "7149:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12207, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12204, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "7173:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12206, "indexExpression": { "argumentTypes": null, "id": 12205, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12197, "src": "7183:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7173:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "7149:38:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12214, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "7242:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12210, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12203, "src": "7221:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12211, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "7221:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12208, "name": "dodoPerBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11673, "src": "7204:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "7204:16:43", "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": 12212, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7204:33:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", "referencedDeclaration": 11499, "src": "7204:37:43", "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": 12215, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7204:54:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 12195, "id": 12216, "nodeType": "Return", "src": "7197:61:43" } ] }, "documentation": null, "functionSelector": "fb7276f4", "id": 12218, "implemented": true, "kind": "function", "modifiers": [], "name": "getDlpMiningSpeed", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12192, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12191, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12218, "src": "7049:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12190, "name": "address", "nodeType": "ElementaryTypeName", "src": "7049:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "7048:18:43" }, "returnParameters": { "id": 12195, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12194, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12218, "src": "7090:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12193, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7090:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7089:9:43" }, "scope": 12822, "src": "7022:243:43", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 12242, "nodeType": "Block", "src": "7426:142:43", "statements": [ { "assignments": [ 12222 ], "declarations": [ { "constant": false, "id": 12222, "mutability": "mutable", "name": "length", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12242, "src": "7436:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12221, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7436:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12225, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12223, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "7453:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7453:16:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "7436:33:43" }, { "body": { "id": 12240, "nodeType": "Block", "src": "7522:40:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12237, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12227, "src": "7547:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12236, "name": "updatePool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12329, "src": "7536:10:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 12238, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7536:15:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12239, "nodeType": "ExpressionStatement", "src": "7536:15:43" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 12230, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12227, "src": "7501:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 12231, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12222, "src": "7507:6:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7501:12:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 12241, "initializationExpression": { "assignments": [ 12227 ], "declarations": [ { "constant": false, "id": 12227, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12241, "src": "7484:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12226, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7484:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12229, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 12228, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7498:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "7484:15:43" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 12234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "7515:5:43", "subExpression": { "argumentTypes": null, "id": 12233, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12227, "src": "7517:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12235, "nodeType": "ExpressionStatement", "src": "7515:5:43" }, "nodeType": "ForStatement", "src": "7479:83:43" } ] }, "documentation": null, "functionSelector": "630b5ba1", "id": 12243, "implemented": true, "kind": "function", "modifiers": [], "name": "massUpdatePools", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12219, "nodeType": "ParameterList", "parameters": [], "src": "7416:2:43" }, "returnParameters": { "id": 12220, "nodeType": "ParameterList", "parameters": [], "src": "7426:0:43" }, "scope": 12822, "src": "7392:176:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12328, "nodeType": "Block", "src": "7682:660:43", "statements": [ { "assignments": [ 12249 ], "declarations": [ { "constant": false, "id": 12249, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12328, "src": "7692:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12248, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "7692:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12253, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12250, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "7716:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12252, "indexExpression": { "argumentTypes": null, "id": 12251, "name": "_pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12245, "src": "7726:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7716:15:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "7692:39:43" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12254, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "7745:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 12255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7745:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12256, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "7761:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12257, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "7761:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7745:36:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12261, "nodeType": "IfStatement", "src": "7741:73:43", "trueBody": { "id": 12260, "nodeType": "Block", "src": "7783:31:43", "statements": [ { "expression": null, "functionReturnParameters": 12247, "id": 12259, "nodeType": "Return", "src": "7797:7:43" } ] } }, { "assignments": [ 12263 ], "declarations": [ { "constant": false, "id": 12263, "mutability": "mutable", "name": "lpSupply", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12328, "src": "7823:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12262, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7823:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12274, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12271, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "7881:4:43", "typeDescriptions": { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } ], "id": 12270, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7873:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 12269, "name": "address", "nodeType": "ElementaryTypeName", "src": "7873:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 12272, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7873:13:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12265, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "7849:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12266, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lpToken", "nodeType": "MemberAccess", "referencedDeclaration": 11662, "src": "7849:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12264, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "7842:6:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 12267, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7842:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 12268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 10564, "src": "7842:30:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, "id": 12273, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7842:45:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "7823:64:43" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12277, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 12275, "name": "lpSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12263, "src": "7901:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12276, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7913:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "7901:13:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12287, "nodeType": "IfStatement", "src": "7897:99:43", "trueBody": { "id": 12286, "nodeType": "Block", "src": "7916:80:43", "statements": [ { "expression": { "argumentTypes": null, "id": 12283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12278, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "7930:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12280, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "7930:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12281, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "7953:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 12282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7953:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7930:35:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12284, "nodeType": "ExpressionStatement", "src": "7930:35:43" }, { "expression": null, "functionReturnParameters": 12247, "id": 12285, "nodeType": "Return", "src": "7979:7:43" } ] } }, { "assignments": [ 12289 ], "declarations": [ { "constant": false, "id": 12289, "mutability": "mutable", "name": "DODOReward", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12328, "src": "8005:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12288, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8005:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12306, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12304, "name": "totalAllocPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11693, "src": "8173:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12300, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "8139:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12301, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "8139:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12297, "name": "dodoPerBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11673, "src": "8108:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12293, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "8069:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12294, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "8069:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12290, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "8026:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 12291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8026:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12292, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "8026:42:43", "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": 12295, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8026:64:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "8026:81:43", "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": 12298, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8026:95:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11478, "src": "8026:112:43", "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": 12302, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8026:129:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", "referencedDeclaration": 11499, "src": "8026:146:43", "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": 12305, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8026:163:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "8005:184:43" }, { "expression": { "argumentTypes": null, "id": 12319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12307, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "8199:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12309, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "8199:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12315, "name": "DODOReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12289, "src": "8268:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12316, "name": "lpSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12263, "src": "8280:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12313, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "8247:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "divFloor", "nodeType": "MemberAccess", "referencedDeclaration": 11059, "src": "8247:20:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12317, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8247:42:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12310, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "8222:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12311, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "8222:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "8222:24:43", "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": 12318, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8222:68:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8199:91:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12320, "nodeType": "ExpressionStatement", "src": "8199:91:43" }, { "expression": { "argumentTypes": null, "id": 12326, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12321, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12249, "src": "8300:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12323, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastRewardBlock", "nodeType": "MemberAccess", "referencedDeclaration": 11666, "src": "8300:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12324, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "8323:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 12325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8323:12:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8300:35:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12327, "nodeType": "ExpressionStatement", "src": "8300:35:43" } ] }, "documentation": null, "functionSelector": "51eb05a6", "id": 12329, "implemented": true, "kind": "function", "modifiers": [], "name": "updatePool", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12246, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12245, "mutability": "mutable", "name": "_pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12329, "src": "7661:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12244, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7661:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7660:14:43" }, "returnParameters": { "id": 12247, "nodeType": "ParameterList", "parameters": [], "src": "7682:0:43" }, "scope": 12822, "src": "7641:701:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12433, "nodeType": "Block", "src": "8518:670:43", "statements": [ { "assignments": [ 12337 ], "declarations": [ { "constant": false, "id": 12337, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12433, "src": "8528:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12336, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8528:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12341, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12339, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12331, "src": "8549:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12338, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "8542:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 12340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8542:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "8528:30:43" }, { "assignments": [ 12343 ], "declarations": [ { "constant": false, "id": 12343, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12433, "src": "8568:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12342, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "8568:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12347, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12344, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "8592:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12346, "indexExpression": { "argumentTypes": null, "id": 12345, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12337, "src": "8602:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8592:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "8568:38:43" }, { "assignments": [ 12349 ], "declarations": [ { "constant": false, "id": 12349, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12433, "src": "8616:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 12348, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "8616:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 12356, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12350, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "8640:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12352, "indexExpression": { "argumentTypes": null, "id": 12351, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12337, "src": "8649:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8640:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12355, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12353, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8654:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8654:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8640:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "8616:49:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12358, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12337, "src": "8686:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12357, "name": "updatePool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12329, "src": "8675:10:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 12359, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8675:15:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12360, "nodeType": "ExpressionStatement", "src": "8675:15:43" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12361, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "8704:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12362, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "8704:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12363, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8718:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8704:15:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12386, "nodeType": "IfStatement", "src": "8700:216:43", "trueBody": { "id": 12385, "nodeType": "Block", "src": "8721:195:43", "statements": [ { "assignments": [ 12366 ], "declarations": [ { "constant": false, "id": 12366, "mutability": "mutable", "name": "pending", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12385, "src": "8735:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12365, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8735:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12378, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12375, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "8825:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12376, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "8825:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12369, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "8769:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12370, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "8769:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12371, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12343, "src": "8782:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12372, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "8782:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12367, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "8753:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "8753:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12373, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8753:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12374, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "8753:54:43", "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": 12377, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8753:101:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "8735:119:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12380, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8885:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8885:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 12382, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12366, "src": "8897:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12379, "name": "safeDODOTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12821, "src": "8868:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 12383, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8868:37:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12384, "nodeType": "ExpressionStatement", "src": "8868:37:43" } ] } }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12394, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8971:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12395, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8971:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 12393, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8963:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 12392, "name": "address", "nodeType": "ElementaryTypeName", "src": "8963:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 12396, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8963:19:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12399, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "8992:4:43", "typeDescriptions": { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_DODOMine_$12822", "typeString": "contract DODOMine" } ], "id": 12398, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8984:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 12397, "name": "address", "nodeType": "ElementaryTypeName", "src": "8984:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 12400, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8984:13:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 12401, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12333, "src": "8999:7:43", "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, "expression": { "argumentTypes": null, "id": 12388, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12343, "src": "8932:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12389, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lpToken", "nodeType": "MemberAccess", "referencedDeclaration": 11662, "src": "8932:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12387, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "8925:6:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 12390, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8925:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 12391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 11354, "src": "8925:37:43", "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": 12402, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8925:82:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12403, "nodeType": "ExpressionStatement", "src": "8925:82:43" }, { "expression": { "argumentTypes": null, "id": 12412, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12404, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "9017:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12406, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9017:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12410, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12333, "src": "9047:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12407, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "9031:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12408, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9031:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12409, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "9031:15:43", "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": 12411, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9031:24:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9017:38:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12413, "nodeType": "ExpressionStatement", "src": "9017:38:43" }, { "expression": { "argumentTypes": null, "id": 12424, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12414, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "9065:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12416, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "9065:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12419, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12349, "src": "9099:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12420, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9099:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12421, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12343, "src": "9112:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12422, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "9112:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12417, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "9083:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12418, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "9083:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12423, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9083:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9065:68:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12425, "nodeType": "ExpressionStatement", "src": "9065:68:43" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12427, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "9156:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12428, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9156:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 12429, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12337, "src": "9168:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12430, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12333, "src": "9173:7:43", "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" } ], "id": 12426, "name": "Deposit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11703, "src": "9148:7:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, "id": 12431, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9148:33:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12432, "nodeType": "EmitStatement", "src": "9143:38:43" } ] }, "documentation": null, "functionSelector": "47e7ef24", "id": 12434, "implemented": true, "kind": "function", "modifiers": [], "name": "deposit", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12334, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12331, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12434, "src": "8476:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12330, "name": "address", "nodeType": "ElementaryTypeName", "src": "8476:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 12333, "mutability": "mutable", "name": "_amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12434, "src": "8494:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12332, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8494:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "8475:35:43" }, "returnParameters": { "id": 12335, "nodeType": "ParameterList", "parameters": [], "src": "8518:0:43" }, "scope": 12822, "src": "8459:729:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12536, "nodeType": "Block", "src": "9254:635:43", "statements": [ { "assignments": [ 12442 ], "declarations": [ { "constant": false, "id": 12442, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12536, "src": "9264:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12441, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9264:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12446, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12444, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12436, "src": "9285:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12443, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "9278:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 12445, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9278:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "9264:30:43" }, { "assignments": [ 12448 ], "declarations": [ { "constant": false, "id": 12448, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12536, "src": "9304:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12447, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "9304:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12452, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12449, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "9328:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12451, "indexExpression": { "argumentTypes": null, "id": 12450, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12442, "src": "9338:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9328:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "9304:38:43" }, { "assignments": [ 12454 ], "declarations": [ { "constant": false, "id": 12454, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12536, "src": "9352:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 12453, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "9352:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 12461, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12455, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "9376:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12457, "indexExpression": { "argumentTypes": null, "id": 12456, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12442, "src": "9385:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9376:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12460, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12458, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "9390:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12459, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9390:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9376:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "9352:49:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12463, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9419:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12464, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9419:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 12465, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12438, "src": "9434:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9419:22:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "776974686472617720746f6f206d756368", "id": 12467, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9443:19:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c36bb679920b61b680a8b24a18ff078642b393d25605ff3a7616b83483e73b38", "typeString": "literal_string \"withdraw too much\"" }, "value": "withdraw too much" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c36bb679920b61b680a8b24a18ff078642b393d25605ff3a7616b83483e73b38", "typeString": "literal_string \"withdraw too much\"" } ], "id": 12462, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "9411:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 12468, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9411:52:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12469, "nodeType": "ExpressionStatement", "src": "9411:52:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12471, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12442, "src": "9484:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12470, "name": "updatePool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12329, "src": "9473:10:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 12472, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9473:15:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12473, "nodeType": "ExpressionStatement", "src": "9473:15:43" }, { "assignments": [ 12475 ], "declarations": [ { "constant": false, "id": 12475, "mutability": "mutable", "name": "pending", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12536, "src": "9498:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12474, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9498:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12487, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12484, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9571:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12485, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "9571:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12478, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9532:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12479, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9532:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12480, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12448, "src": "9545:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12481, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "9545:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12476, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "9516:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12477, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "9516:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12482, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9516:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "9516:54:43", "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": 12486, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9516:71:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "9498:89:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12489, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "9614:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9614:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 12491, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12475, "src": "9626:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12488, "name": "safeDODOTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12821, "src": "9597:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 12492, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9597:37:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12493, "nodeType": "ExpressionStatement", "src": "9597:37:43" }, { "expression": { "argumentTypes": null, "id": 12502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12494, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9644:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12496, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9644:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12500, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12438, "src": "9674:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12497, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9658:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12498, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9658:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12499, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "9658:15:43", "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": 12501, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9658:24:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9644:38:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12503, "nodeType": "ExpressionStatement", "src": "9644:38:43" }, { "expression": { "argumentTypes": null, "id": 12514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12504, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9692:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12506, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "9692:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12509, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12454, "src": "9726:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12510, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "9726:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12511, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12448, "src": "9739:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12512, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "9739:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12507, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "9710:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "9710:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12513, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9710:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9692:68:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12515, "nodeType": "ExpressionStatement", "src": "9692:68:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12523, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "9812:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12524, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9812:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 12522, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9804:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 12521, "name": "address", "nodeType": "ElementaryTypeName", "src": "9804:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 12525, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9804:19:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 12526, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12438, "src": "9825:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12517, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12448, "src": "9777:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12518, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lpToken", "nodeType": "MemberAccess", "referencedDeclaration": 11662, "src": "9777:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12516, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "9770:6:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 12519, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9770:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 12520, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", "referencedDeclaration": 11329, "src": "9770:33:43", "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": 12527, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9770:63:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12528, "nodeType": "ExpressionStatement", "src": "9770:63:43" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12530, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "9857:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12531, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9857:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 12532, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12442, "src": "9869:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 12533, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12438, "src": "9874:7:43", "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" } ], "id": 12529, "name": "Withdraw", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11711, "src": "9848:8:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, "id": 12534, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9848:34:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12535, "nodeType": "EmitStatement", "src": "9843:39:43" } ] }, "documentation": null, "functionSelector": "f3fef3a3", "id": 12537, "implemented": true, "kind": "function", "modifiers": [], "name": "withdraw", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12439, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12436, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12537, "src": "9212:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12435, "name": "address", "nodeType": "ElementaryTypeName", "src": "9212:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 12438, "mutability": "mutable", "name": "_amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12537, "src": "9230:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12437, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9230:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "9211:35:43" }, "returnParameters": { "id": 12440, "nodeType": "ParameterList", "parameters": [], "src": "9254:0:43" }, "scope": 12822, "src": "9194:695:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12555, "nodeType": "Block", "src": "9941:110:43", "statements": [ { "assignments": [ 12543 ], "declarations": [ { "constant": false, "id": 12543, "mutability": "mutable", "name": "balance", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12555, "src": "9951:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12542, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9951:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12549, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12545, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12539, "src": "9986:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12546, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "9996:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12547, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9996:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 12544, "name": "getUserLpBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11818, "src": "9969:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view returns (uint256)" } }, "id": 12548, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9969:38:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "9951:56:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12551, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12539, "src": "10026:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 12552, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12543, "src": "10036:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12550, "name": "withdraw", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12537, "src": "10017:8:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 12553, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10017:27:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12554, "nodeType": "ExpressionStatement", "src": "10017:27:43" } ] }, "documentation": null, "functionSelector": "fa09e630", "id": 12556, "implemented": true, "kind": "function", "modifiers": [], "name": "withdrawAll", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12540, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12539, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12556, "src": "9916:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12538, "name": "address", "nodeType": "ElementaryTypeName", "src": "9916:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "9915:18:43" }, "returnParameters": { "id": 12541, "nodeType": "ParameterList", "parameters": [], "src": "9941:0:43" }, "scope": 12822, "src": "9895:156:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12608, "nodeType": "Block", "src": "10171:285:43", "statements": [ { "assignments": [ 12562 ], "declarations": [ { "constant": false, "id": 12562, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12608, "src": "10181:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12561, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10181:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12566, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12564, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12558, "src": "10202:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12563, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "10195:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 12565, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10195:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "10181:30:43" }, { "assignments": [ 12568 ], "declarations": [ { "constant": false, "id": 12568, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12608, "src": "10221:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12567, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "10221:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12572, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12569, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "10245:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12571, "indexExpression": { "argumentTypes": null, "id": 12570, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12562, "src": "10255:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10245:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "10221:38:43" }, { "assignments": [ 12574 ], "declarations": [ { "constant": false, "id": 12574, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12608, "src": "10269:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 12573, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "10269:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 12581, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12575, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "10293:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12577, "indexExpression": { "argumentTypes": null, "id": 12576, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12562, "src": "10302:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10293:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12580, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12578, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10307:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12579, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10307:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10293:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "10269:49:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12589, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10370:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10370:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 12588, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10362:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 12587, "name": "address", "nodeType": "ElementaryTypeName", "src": "10362:7:43", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 12591, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10362:19:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12592, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12574, "src": "10383:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12593, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "10383:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12583, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12568, "src": "10335:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12584, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lpToken", "nodeType": "MemberAccess", "referencedDeclaration": 11662, "src": "10335:12:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12582, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10607, "src": "10328:6:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", "typeString": "type(contract IERC20)" } }, "id": 12585, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10328:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$10607", "typeString": "contract IERC20" } }, "id": 12586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", "referencedDeclaration": 11329, "src": "10328:33:43", "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": 12594, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10328:67:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12595, "nodeType": "ExpressionStatement", "src": "10328:67:43" }, { "expression": { "argumentTypes": null, "id": 12600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12596, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12574, "src": "10405:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12598, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "10405:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 12599, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10419:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10405:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12601, "nodeType": "ExpressionStatement", "src": "10405:15:43" }, { "expression": { "argumentTypes": null, "id": 12606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12602, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12574, "src": "10430:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12604, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "10430:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 12605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10448:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10430:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12607, "nodeType": "ExpressionStatement", "src": "10430:19:43" } ] }, "documentation": null, "functionSelector": "6ff1c9bc", "id": 12609, "implemented": true, "kind": "function", "modifiers": [], "name": "emergencyWithdraw", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12559, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12558, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12609, "src": "10146:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12557, "name": "address", "nodeType": "ElementaryTypeName", "src": "10146:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "10145:18:43" }, "returnParameters": { "id": 12560, "nodeType": "ParameterList", "parameters": [], "src": "10171:0:43" }, "scope": 12822, "src": "10119:337:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12690, "nodeType": "Block", "src": "10502:532:43", "statements": [ { "assignments": [ 12615 ], "declarations": [ { "constant": false, "id": 12615, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12690, "src": "10512:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12614, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10512:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12619, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12617, "name": "_lpToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12611, "src": "10533:8:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12616, "name": "getPid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11795, "src": "10526:6:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 12618, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10526:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "10512:30:43" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 12635, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12620, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "10556:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12622, "indexExpression": { "argumentTypes": null, "id": 12621, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12615, "src": "10565:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10556:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12625, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12623, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10570:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12624, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10570:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10556:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "id": 12626, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "10556:32:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12627, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10592:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10556:37:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12634, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12629, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "10597:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12631, "indexExpression": { "argumentTypes": null, "id": 12630, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12615, "src": "10607:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10597:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "id": 12632, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "10597:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10626:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10597:30:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "10556:71:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12638, "nodeType": "IfStatement", "src": "10552:120:43", "trueBody": { "id": 12637, "nodeType": "Block", "src": "10629:43:43", "statements": [ { "expression": null, "functionReturnParameters": 12613, "id": 12636, "nodeType": "Return", "src": "10643:7:43" } ] } }, { "assignments": [ 12640 ], "declarations": [ { "constant": false, "id": 12640, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12690, "src": "10681:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12639, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "10681:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12644, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12641, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "10705:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12643, "indexExpression": { "argumentTypes": null, "id": 12642, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12615, "src": "10715:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10705:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "10681:38:43" }, { "assignments": [ 12646 ], "declarations": [ { "constant": false, "id": 12646, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12690, "src": "10729:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 12645, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "10729:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 12653, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12647, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "10753:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12649, "indexExpression": { "argumentTypes": null, "id": 12648, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12615, "src": "10762:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10753:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12652, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12650, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10767:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "10767:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10753:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "10729:49:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12655, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12615, "src": "10799:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12654, "name": "updatePool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12329, "src": "10788:10:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 12656, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10788:15:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12657, "nodeType": "ExpressionStatement", "src": "10788:15:43" }, { "assignments": [ 12659 ], "declarations": [ { "constant": false, "id": 12659, "mutability": "mutable", "name": "pending", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12690, "src": "10813:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12658, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10813:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12671, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12668, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12646, "src": "10886:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12669, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "10886:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12662, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12646, "src": "10847:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12663, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "10847:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12664, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12640, "src": "10860:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12665, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "10860:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12660, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "10831:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12661, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "10831:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12666, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10831:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "10831:54:43", "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": 12670, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10831:71:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "10813:89:43" }, { "expression": { "argumentTypes": null, "id": 12682, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12672, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12646, "src": "10912:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12674, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "10912:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12677, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12646, "src": "10946:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12678, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "10946:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12679, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12640, "src": "10959:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12680, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "10959:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12675, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "10930:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "10930:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12681, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10930:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10912:68:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12683, "nodeType": "ExpressionStatement", "src": "10912:68:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12685, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "11007:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11007:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 12687, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12659, "src": "11019:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12684, "name": "safeDODOTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12821, "src": "10990:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 12688, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10990:37:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12689, "nodeType": "ExpressionStatement", "src": "10990:37:43" } ] }, "documentation": null, "functionSelector": "1e83409a", "id": 12691, "implemented": true, "kind": "function", "modifiers": [], "name": "claim", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12612, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12611, "mutability": "mutable", "name": "_lpToken", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12691, "src": "10477:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12610, "name": "address", "nodeType": "ElementaryTypeName", "src": "10477:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "10476:18:43" }, "returnParameters": { "id": 12613, "nodeType": "ParameterList", "parameters": [], "src": "10502:0:43" }, "scope": 12822, "src": "10462:572:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12788, "nodeType": "Block", "src": "11067:696:43", "statements": [ { "assignments": [ 12695 ], "declarations": [ { "constant": false, "id": 12695, "mutability": "mutable", "name": "length", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12788, "src": "11077:14:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12694, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11077:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12698, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12696, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "11094:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12697, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11094:16:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "11077:33:43" }, { "assignments": [ 12700 ], "declarations": [ { "constant": false, "id": 12700, "mutability": "mutable", "name": "pending", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12788, "src": "11120:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12699, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11120:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12702, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 12701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11138:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "11120:19:43" }, { "body": { "id": 12780, "nodeType": "Block", "src": "11192:518:43", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 12728, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12721, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12713, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "11210:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12715, "indexExpression": { "argumentTypes": null, "id": 12714, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11219:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11210:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12718, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12716, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "11224:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12717, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11224:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11210:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "id": 12719, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "11210:32:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12720, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11246:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "11210:37:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12722, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "11251:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12724, "indexExpression": { "argumentTypes": null, "id": 12723, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11261:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11251:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "id": 12725, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "allocPoint", "nodeType": "MemberAccess", "referencedDeclaration": 11664, "src": "11251:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 12726, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11280:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "11251:30:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "11210:71:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12731, "nodeType": "IfStatement", "src": "11206:130:43", "trueBody": { "id": 12730, "nodeType": "Block", "src": "11283:53:43", "statements": [ { "id": 12729, "nodeType": "Continue", "src": "11301:8:43" } ] } }, { "assignments": [ 12733 ], "declarations": [ { "constant": false, "id": 12733, "mutability": "mutable", "name": "pool", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12780, "src": "11349:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" }, "typeName": { "contractScope": null, "id": 12732, "name": "PoolInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11669, "src": "11349:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo" } }, "value": null, "visibility": "internal" } ], "id": 12737, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12734, "name": "poolInfos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11676, "src": "11373:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" } }, "id": 12736, "indexExpression": { "argumentTypes": null, "id": 12735, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11383:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11373:14:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", "typeString": "struct DODOMine.PoolInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "11349:38:43" }, { "assignments": [ 12739 ], "declarations": [ { "constant": false, "id": 12739, "mutability": "mutable", "name": "user", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12780, "src": "11401:21:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" }, "typeName": { "contractScope": null, "id": 12738, "name": "UserInfo", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 11660, "src": "11401:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo" } }, "value": null, "visibility": "internal" } ], "id": 12746, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12740, "name": "userInfo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "11425:8:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" } }, "id": 12742, "indexExpression": { "argumentTypes": null, "id": 12741, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11434:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11425:13:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" } }, "id": 12745, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12743, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "11439:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11439:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11425:25:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage", "typeString": "struct DODOMine.UserInfo storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "11401:49:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12748, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11475:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12747, "name": "updatePool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12329, "src": "11464:10:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 12749, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11464:15:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12750, "nodeType": "ExpressionStatement", "src": "11464:15:43" }, { "expression": { "argumentTypes": null, "id": 12766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 12751, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12700, "src": "11493:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12762, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12739, "src": "11587:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12763, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "11587:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12756, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12739, "src": "11548:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12757, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "11548:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12758, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12733, "src": "11561:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12759, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "11561:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12754, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "11532:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "11532:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12760, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11532:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12761, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 11557, "src": "11532:54:43", "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": 12764, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11532:71:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12752, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12700, "src": "11503:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12753, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "11503:11:43", "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": 12765, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11503:114:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11493:124:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12767, "nodeType": "ExpressionStatement", "src": "11493:124:43" }, { "expression": { "argumentTypes": null, "id": 12778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12768, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12739, "src": "11631:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12770, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "rewardDebt", "nodeType": "MemberAccess", "referencedDeclaration": 11659, "src": "11631:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12773, "name": "user", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12739, "src": "11665:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", "typeString": "struct DODOMine.UserInfo storage pointer" } }, "id": 12774, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 11657, "src": "11665:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12775, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12733, "src": "11678:4:43", "typeDescriptions": { "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", "typeString": "struct DODOMine.PoolInfo storage pointer" } }, "id": 12776, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "accDODOPerShare", "nodeType": "MemberAccess", "referencedDeclaration": 11668, "src": "11678:20:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 12771, "name": "DecimalMath", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11078, "src": "11649:11:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", "typeString": "type(library DecimalMath)" } }, "id": 12772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", "referencedDeclaration": 11023, "src": "11649:15:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 12777, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11649:50:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11631:68:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12779, "nodeType": "ExpressionStatement", "src": "11631:68:43" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 12709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 12707, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11171:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 12708, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12695, "src": "11177:6:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11171:12:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 12781, "initializationExpression": { "assignments": [ 12704 ], "declarations": [ { "constant": false, "id": 12704, "mutability": "mutable", "name": "pid", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12781, "src": "11154:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12703, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11154:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 12706, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 12705, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11168:1:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "11154:15:43" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 12711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "11185:5:43", "subExpression": { "argumentTypes": null, "id": 12710, "name": "pid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12704, "src": "11187:3:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12712, "nodeType": "ExpressionStatement", "src": "11185:5:43" }, "nodeType": "ForStatement", "src": "11149:561:43" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 12783, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "11736:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 12784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11736:10:43", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 12785, "name": "pending", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12700, "src": "11748:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12782, "name": "safeDODOTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12821, "src": "11719:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 12786, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11719:37:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12787, "nodeType": "ExpressionStatement", "src": "11719:37:43" } ] }, "documentation": null, "functionSelector": "d1058e59", "id": 12789, "implemented": true, "kind": "function", "modifiers": [], "name": "claimAll", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12692, "nodeType": "ParameterList", "parameters": [], "src": "11057:2:43" }, "returnParameters": { "id": 12693, "nodeType": "ParameterList", "parameters": [], "src": "11067:0:43" }, "scope": 12822, "src": "11040:723:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 12820, "nodeType": "Block", "src": "11869:169:43", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12800, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12791, "src": "11920:3:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 12801, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12793, "src": "11925:7:43", "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": 12797, "name": "dodoRewardVault", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11671, "src": "11896:15:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 12796, "name": "IDODORewardVault", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12962, "src": "11879:16:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IDODORewardVault_$12962_$", "typeString": "type(contract IDODORewardVault)" } }, "id": 12798, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11879:33:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IDODORewardVault_$12962", "typeString": "contract IDODORewardVault" } }, "id": 12799, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "reward", "nodeType": "MemberAccess", "referencedDeclaration": 12961, "src": "11879:40:43", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, "id": 12802, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11879:54:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12803, "nodeType": "ExpressionStatement", "src": "11879:54:43" }, { "expression": { "argumentTypes": null, "id": 12813, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12804, "name": "realizedReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11690, "src": "11943:14:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 12806, "indexExpression": { "argumentTypes": null, "id": 12805, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12791, "src": "11958:3:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "11943:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12811, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12793, "src": "11989:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 12807, "name": "realizedReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11690, "src": "11965:14:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 12809, "indexExpression": { "argumentTypes": null, "id": 12808, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12791, "src": "11980:3:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11965:19:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 11582, "src": "11965:23:43", "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": 12812, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11965:32:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11943:54:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 12814, "nodeType": "ExpressionStatement", "src": "11943:54:43" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 12816, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12791, "src": "12018:3:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 12817, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12793, "src": "12023:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 12815, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11717, "src": "12012:5:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 12818, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12012:19:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 12819, "nodeType": "EmitStatement", "src": "12007:24:43" } ] }, "documentation": null, "id": 12821, "implemented": true, "kind": "function", "modifiers": [], "name": "safeDODOTransfer", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 12794, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12791, "mutability": "mutable", "name": "_to", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12821, "src": "11830:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 12790, "name": "address", "nodeType": "ElementaryTypeName", "src": "11830:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 12793, "mutability": "mutable", "name": "_amount", "nodeType": "VariableDeclaration", "overrides": null, "scope": 12821, "src": "11843:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 12792, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11843:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "11829:30:43" }, "returnParameters": { "id": 12795, "nodeType": "ParameterList", "parameters": [], "src": "11869:0:43" }, "scope": 12822, "src": "11804:234:43", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" } ], "scope": 12823, "src": "444:11596:43" } ], "src": "78:11963:43" }, "compiler": { "name": "solc", "version": "0.6.9+commit.3e3065ac.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.2.3", "updatedAt": "2020-11-06T08:03:35.725Z", "devdoc": { "methods": {} }, "userdoc": { "methods": {} } }