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

33367 lines
1.4 MiB

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