@maplelabs/core-artifacts
Version:
Consist artifacts of the maple protocol
4,838 lines • 201 kB
JSON
{
"id": "ec0275db48462a9e20dc1ec153f75be9",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.6.11",
"solcLongVersion": "0.6.11+commit.5ef660b1",
"input": {
"language": "Solidity",
"sources": {
"contracts/core/mpl-rewards/v1/interfaces/IMplRewards.sol": {
"content": "// SPDX-License-Identifier: AGPL-3.0-or-later // hevm: flattened sources of contracts/core/mpl-rewards/v1/interfaces/IMplRewards.sol\npragma solidity =0.6.11 >=0.6.0 <0.8.0;\n\n////// contracts/core/custodial-ownership-token/v1/interfaces/IERC2258.sol\n/* pragma solidity 0.6.11; */\n\n/// @title ERC2258 implements the basic level functionality for a token capable of custodial ownership.\ninterface IERC2258 {\n\n /**\n @dev Emits an event indicating a transfer was performed by a Custodian.\n @param custodian The Custodian performing the transfer.\n @param from The account from which balance is being decremented.\n @param to The account receiving the token.\n @param amount The amount transferred.\n */\n event CustodyTransfer(address custodian, address from, address to, uint256 amount);\n\n /**\n @dev Emits an event indicating that the amount held by `custodian` on behalf of `account` has changed.\n @param account The account to which the token belongs.\n @param custodian The Custodian being entrusted.\n @param oldAllowance The old amount the account has entrusted with `custodian`.\n @param newAllowance The new amount the account has entrusted with `custodian`.\n */\n event CustodyAllowanceChanged(address account, address custodian, uint256 oldAllowance, uint256 newAllowance);\n\n /**\n @param account The account to which some token belongs.\n @param custodian The Custodian being entrusted.\n @return The individual custody limit `account` has entrusted with `custodian`.\n */\n function custodyAllowance(address account, address custodian) external view returns (uint256);\n \n /**\n @param account The account to which some token belongs.\n @return The total custody limit `account` has entrusted with all custodians.\n */\n function totalCustodyAllowance(address account) external view returns (uint256);\n\n /**\n @dev Increase the custody limit of a custodian on behalf of the caller.\n @param custodian The Custodian being entrusted with `amount` additional token.\n @param amount The amount of additional token being entrusted with `custodian`.\n */\n function increaseCustodyAllowance(address custodian, uint256 amount) external;\n\n /**\n @dev Allows a Custodian to exercise their right to transfer custodied tokens.\n @param from The account from which balance is being decremented.\n @param to The account receiving the token.\n @param amount The amount transferred.\n */\n function transferByCustodian(address from, address to, uint256 amount) external;\n\n}\n\n////// lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\n/* pragma solidity >=0.6.0 <0.8.0; */\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `recipient`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `sender` to `recipient` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n}\n\n////// contracts/core/mpl-rewards/v1/interfaces/IMplRewards.sol\n/* pragma solidity 0.6.11; */\n\n/* import { IERC20 } from \"../../../../../lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\"; */\n\n/* import { IERC2258 } from \"../../../custodial-ownership-token/v1/interfaces/IERC2258.sol\"; */\n\n/// @title MplRewards Synthetix farming contract fork for liquidity mining.\ninterface IMplRewards {\n\n /**\n @dev Emits an event indicating that a reward was added.\n @param reward The amount of the added reward.\n */\n event RewardAdded(uint256 reward);\n\n /**\n @dev Emits an event indicating that an account has staked.\n @param account The address of the account.\n @param amount The amount staked.\n */\n event Staked(address indexed account, uint256 amount);\n\n /**\n @dev Emits an event indicating that reward was withdrawn.\n @param account The address of the account.\n @param amount The amount withdrawn.\n */\n event Withdrawn(address indexed account, uint256 amount);\n\n /**\n @dev Emits an event indicating that some reward was paid to an account.\n @param account The address of the account rewarded.\n @param reward The amount rewarded to `account`.\n */\n event RewardPaid(address indexed account, uint256 reward);\n\n /**\n @dev Emits an event indicating that the duration of the ward period has updated.\n @param newDuration The new duration of the rewards.\n */\n event RewardsDurationUpdated(uint256 newDuration);\n\n /**\n @dev Emits an event indicating that some token was recovered.\n @param token The address of the token recovered.\n @param amount The amount recovered.\n */\n event Recovered(address token, uint256 amount);\n\n /**\n @dev Emits an event indicating that pause state has changed.\n @param isPaused Whether the contract is paused.\n */\n event PauseChanged(bool isPaused);\n\n /**\n @dev The rewards token.\n */\n function rewardsToken() external view returns (IERC20);\n\n /**\n @dev The staking token.\n */\n function stakingToken() external view returns (IERC2258);\n\n /**\n @dev The period finish.\n */\n function periodFinish() external view returns (uint256);\n\n /**\n @dev The rewards rate.\n */\n function rewardRate() external view returns (uint256);\n\n /**\n @dev The rewards duration.\n */\n function rewardsDuration() external view returns (uint256);\n\n /**\n @dev The last update time.\n */\n function lastUpdateTime() external view returns (uint256);\n\n /**\n @dev The reward per token stored.\n */\n function rewardPerTokenStored() external view returns (uint256);\n\n /**\n @dev The last pause time.\n */\n function lastPauseTime() external view returns (uint256);\n\n /**\n @dev Whether the contract is paused.\n */\n function paused() external view returns (bool);\n\n /**\n @param account The address of an account.\n @return The reward per token paid for `account`.\n */\n function userRewardPerTokenPaid(address account) external view returns (uint256);\n\n /**\n @param account The address of an account.\n @return The rewards `account`.\n */\n function rewards(address account) external view returns (uint256);\n\n /**\n @return The total supply.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n @param account The address of an account.\n @return The balance of `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n @return The last time rewards were applicable.\n */\n function lastTimeRewardApplicable() external view returns (uint256);\n\n /**\n @return The reward per token.\n */\n function rewardPerToken() external view returns (uint256);\n\n /**\n @param account The address of an account.\n @return The rewards earned of `account`.\n */\n function earned(address account) external view returns (uint256);\n\n /**\n @return The reward for a duration.\n */\n function getRewardForDuration() external view returns (uint256);\n\n /**\n @dev It emits a `Staked` event.\n @param amount An amount to stake.\n */\n function stake(uint256 amount) external;\n\n /**\n @dev It emits a `Withdrawn` event.\n @param amount An amount to withdraw.\n */\n function withdraw(uint256 amount) external;\n\n /**\n @dev It emits a `RewardPaid` event if any rewards are received.\n */\n function getReward() external;\n\n /**\n @dev Withdraw the entire balance and get the reward.\n */\n function exit() external;\n\n /**\n @dev Only the contract Owner may call this. \n @dev It emits a `RewardAdded` event. \n @param reward A reward amount.\n */\n function notifyRewardAmount(uint256 reward) external;\n\n /**\n @dev End rewards emission earlier. Only the contract Owner may call this.\n @param timestamp A unix timestamp to finish rewards.\n */\n function updatePeriodFinish(uint256 timestamp) external;\n\n /**\n @dev Added to support recovering tokens unintentionally sent to this contract. \n @dev Only the contract Owner may call this. \n @dev It emits a `Recovered` event. \n @param tokenAddress The address of a token to recover.\n @param tokenAmount The amount to recover.\n */\n function recoverERC20(address tokenAddress, uint256 tokenAmount) external;\n\n /**\n @dev Only the contract Owner may call this. \n @dev It emits a `RewardsDurationUpdated` event. \n @param _rewardsDuration The new duration for rewards.\n */\n function setRewardsDuration(uint256 _rewardsDuration) external;\n\n /**\n @dev Change the paused state of the contract. Only the contract Owner may call this. \n @dev It emits a `PauseChanged` event. \n @param _paused Whether to pause the contract.\n */\n function setPaused(bool _paused) external;\n\n}\n"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"abi",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers"
],
"": [
"ast"
]
}
}
}
},
"output": {
"contracts": {
"contracts/core/mpl-rewards/v1/interfaces/IMplRewards.sol": {
"IERC20": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"evm": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
}
},
"IERC2258": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "custodian",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "oldAllowance",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newAllowance",
"type": "uint256"
}
],
"name": "CustodyAllowanceChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "custodian",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "CustodyTransfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "address",
"name": "custodian",
"type": "address"
}
],
"name": "custodyAllowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "custodian",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "increaseCustodyAllowance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "totalCustodyAllowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferByCustodian",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"evm": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"methodIdentifiers": {
"custodyAllowance(address,address)": "c965b548",
"increaseCustodyAllowance(address,uint256)": "27f91856",
"totalCustodyAllowance(address)": "af6d5571",
"transferByCustodian(address,address,uint256)": "2ac04ac8"
}
}
},
"IMplRewards": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bool",
"name": "isPaused",
"type": "bool"
}
],
"name": "PauseChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Recovered",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "reward",
"type": "uint256"
}
],
"name": "RewardAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "reward",
"type": "uint256"
}
],
"name": "RewardPaid",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "newDuration",
"type": "uint256"
}
],
"name": "RewardsDurationUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Staked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Withdrawn",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "earned",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "exit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getReward",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getRewardForDuration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastPauseTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastTimeRewardApplicable",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastUpdateTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reward",
"type": "uint256"
}
],
"name": "notifyRewardAmount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "periodFinish",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenAmount",
"type": "uint256"
}
],
"name": "recoverERC20",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "rewardPerToken",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardPerTokenStored",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "rewards",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardsDuration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardsToken",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_paused",
"type": "bool"
}
],
"name": "setPaused",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_rewardsDuration",
"type": "uint256"
}
],
"name": "setRewardsDuration",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "stake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "stakingToken",
"outputs": [
{
"internalType": "contract IERC2258",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"name": "updatePeriodFinish",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "userRewardPerTokenPaid",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"evm": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"methodIdentifiers": {
"balanceOf(address)": "70a08231",
"earned(address)": "008cc262",
"exit()": "e9fad8ee",
"getReward()": "3d18b912",
"getRewardForDuration()": "1c1f78eb",
"lastPauseTime()": "91b4ded9",
"lastTimeRewardApplicable()": "80faa57d",
"lastUpdateTime()": "c8f33c91",
"notifyRewardAmount(uint256)": "3c6b16ab",
"paused()": "5c975abb",
"periodFinish()": "ebe2b12b",
"recoverERC20(address,uint256)": "8980f11f",
"rewardPerToken()": "cd3daf9d",
"rewardPerTokenStored()": "df136d65",
"rewardRate()": "7b0a47ee",
"rewards(address)": "0700037d",
"rewardsDuration()": "386a9525",
"rewardsToken()": "d1af0c7d",
"setPaused(bool)": "16c38b3c",
"setRewardsDuration(uint256)": "cc1a378f",
"stake(uint256)": "a694fc3a",
"stakingToken()": "72f702f3",
"totalSupply()": "18160ddd",
"updatePeriodFinish(uint256)": "556f6e6b",
"userRewardPerTokenPaid(address)": "8b876347",
"withdraw(uint256)": "2e1a7d4d"
}
}
}
}
},
"sources": {
"contracts/core/mpl-rewards/v1/interfaces/IMplRewards.sol": {
"ast": {
"absolutePath": "contracts/core/mpl-rewards/v1/interfaces/IMplRewards.sol",
"exportedSymbols": {
"IERC20": [
137
],
"IERC2258": [
61
],
"IMplRewards": [
344
]
},
"id": 345,
"license": "AGPL-3.0-or-later",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"=",
"0.6",
".11",
">=",
"0.6",
".0",
"<",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "133:39:0"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 2,
"nodeType": "StructuredDocumentation",
"src": "280:104:0",
"text": "@title ERC2258 implements the basic level functionality for a token capable of custodial ownership."
},
"fullyImplemented": false,
"id": 61,
"linearizedBaseContracts": [
61
],
"name": "IERC2258",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": {
"id": 3,
"nodeType": "StructuredDocumentation",
"src": "410:346:0",
"text": "@dev Emits an event indicating a transfer was performed by a Custodian.\n@param custodian The Custodian performing the transfer.\n@param from The account from which balance is being decremented.\n@param to The account receiving the token.\n@param amount The amount transferred."
},
"id": 13,
"name": "CustodyTransfer",
"nodeType": "EventDefinition",
"parameters": {
"id": 12,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5,
"indexed": false,
"mutability": "mutable",
"name": "custodian",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 13,
"src": "783:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "783:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 7,
"indexed": false,
"mutability": "mutable",
"name": "from",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 13,
"src": "802:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "802:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 9,
"indexed": false,
"mutability": "mutable",
"name": "to",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 13,
"src": "816:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "816:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 11,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 13,
"src": "828:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 10,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "828:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "782:61:0"
},
"src": "761:83:0"
},
{
"anonymous": false,
"documentation": {
"id": 14,
"nodeType": "StructuredDocumentation",
"src": "850:425:0",
"text": "@dev Emits an event indicating that the amount held by `custodian` on behalf of `account` has changed.\n@param account The account to which the token belongs.\n@param custodian The Custodian being entrusted.\n@param oldAllowance The old amount the account has entrusted with `custodian`.\n@param newAllowance The new amount the account has entrusted with `custodian`."
},
"id": 24,
"name": "CustodyAllowanceChanged",
"nodeType": "EventDefinition",
"parameters": {
"id": 23,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 16,
"indexed": false,
"mutability": "mutable",
"name": "account",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 24,
"src": "1310:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 15,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1310:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 18,
"indexed": false,
"mutability": "mutable",
"name": "custodian",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 24,
"src": "1327:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 17,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1327:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 20,
"indexed": false,
"mutability": "mutable",
"name": "oldAllowance",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 24,
"src": "1346:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 19,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1346:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 22,
"indexed": false,
"mutability": "mutable",
"name": "newAllowance",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 24,
"src": "1368:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 21,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1368:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1309:80:0"
},
"src": "1280:110:0"
},
{
"body": null,
"documentation": {
"id": 25,
"nodeType": "StructuredDocumentation",
"src": "1396:222:0",
"text": "@param account The account to which some token belongs.\n@param custodian The Custodian being entrusted.\n@return The individual custody limit `account` has entrusted with `custodian`."
},
"functionSelector": "c965b548",
"id": 34,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "custodyAllowance",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 30,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27,
"mutability": "mutable",
"name": "account",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 34,
"src": "1649:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 26,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1649:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 29,
"mutability": "mutable",
"name": "custodian",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 34,
"src": "1666:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 28,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1666:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1648:36:0"
},
"returnParameters": {
"id": 33,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 32,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 34,
"src": "1708:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 31,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1708:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1707:9:0"
},
"scope": 61,
"src": "1623:94:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 35,
"nodeType": "StructuredDocumentation",
"src": "1727:161:0",
"text": "@param account The account to which some token belongs.\n@return The total custody limit `account` has entrusted with all custodians."
},
"functionSelector": "af6d5571",
"id": 42,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "totalCustodyAllowance",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 38,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 37,
"mutability": "mutable",
"name": "account",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 42,
"src": "1924:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 36,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1924:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1923:17:0"
},
"returnParameters": {
"id": 41,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 40,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 42,
"src": "1964:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 39,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1964:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1963:9:0"
},
"scope": 61,
"src": "1893:80:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 43,
"nodeType": "StructuredDocumentation",
"src": "1979:270:0",
"text": "@dev Increase the custody limit of a custodian on behalf of the caller.\n@param custodian The Custodian being entrusted with `amount` additional token.\n@param amount The amount of additional token being entrusted with `custodian`."
},
"functionSelector": "27f91856",
"id": 50,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "increaseCustodyAllowance",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 48,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 45,
"mutability": "mutable",
"name": "custodian",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 50,
"src": "2288:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 44,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2288:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 47,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 50,
"src": "2307:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 46,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2307:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2287:35:0"
},
"returnParameters": {
"id": 49,
"nodeType": "ParameterList",
"parameters": [],
"src": "2331:0:0"
},
"scope": 61,
"src": "2254:78:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 51,
"nodeType": "StructuredDocumentation",
"src": "2338:287:0",
"text": "@dev Allows a Custodian to exercise their right to transfer custodied tokens.\n@param from The account from which balance is being decremented.\n@param to The account receiving the token.\n@param amount The amount transferred."
},
"functionSelector": "2ac04ac8",
"id": 60,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "transferByCustodian",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 58,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 53,
"mutability": "mutable",
"name": "from",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 60,
"src": "2659:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 52,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2659:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 55,
"mutability": "mutable",
"name": "to",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 60,
"src": "2673:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 54,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2673:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 57,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 60,
"src": "2685:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 56,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2685:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2658:42:0"
},
"returnParameters": {
"id": 59,
"nodeType": "ParameterList",
"parameters": [],
"src": "2709:0:0"
},
"scope": 61,
"src": "2630:80:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"scope": 345,
"src": "384:2329:0"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 62,
"nodeType": "StructuredDocumentation",
"src": "2821:70:0",
"text": " @dev Interface of the ERC20 standard as defined in the EIP."
},
"fullyImplemented": false,
"id": 137,
"linearizedBaseContracts": [
137
],
"name": "IERC20",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": {
"id": 63,
"nodeType": "StructuredDocumentation",
"src": "2915:66:0",
"text": " @dev Returns the amount of tokens in existence."
},
"functionSelector": "18160ddd",
"id": 68,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 64,
"nodeType": "ParameterList",
"parameters": [],
"src": "3006:2:0"
},
"returnParameters": {
"id": 67,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 66,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 68,
"src": "3032:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 65,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3032:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3031:9:0"
},
"scope": 137,
"src": "2986:55:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 69,
"nodeType": "StructuredDocumentation",
"src": "3047:72:0",
"text": " @dev Returns the amount of tokens owned by `account`."
},
"functionSelector": "70a08231",
"id": 76,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "balanceOf",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 72,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 71,
"mutability": "mutable",
"name": "account",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 76,
"src": "3143:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 70,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3143:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3142:17:0"
},
"returnParameters": {
"id": 75,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 74,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 76,
"src": "3183:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 73,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3183:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3182:9:0"
},
"scope": 137,
"src": "3124:68:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 77,
"nodeType": "StructuredDocumentation",
"src": "3198:209:0",
"text": " @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
},
"functionSelector": "a9059cbb",
"id": 86,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "transfer",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 82,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 79,
"mutability": "mutable",
"name": "recipient",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 86,
"src": "3430:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 78,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3430:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 81,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 86,
"src": "3449:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 80,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3449:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3429:35:0"
},
"returnParameters": {
"id": 85,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 84,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 86,
"src": "3483:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 83,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3483:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3482:6:0"
},
"scope": 137,
"src": "3412:77:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 87,
"nodeType": "StructuredDocumentation",
"src": "3495:264:0",
"text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."
},
"functionSelector": "dd62ed3e",
"id": 96,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "allowance",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 92,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 89,
"mutability": "mutable",
"name": "owner",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 96,
"src": "3783:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 88,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3783:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 91,
"mutability": "mutable",
"name": "spender",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 96,
"src": "3798:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 90,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3798:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3782:32:0"
},
"returnParameters": {
"id": 95,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 94,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 96,
"src": "3838:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 93,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3838:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3837:9:0"
},
"scope": 137,
"src": "3764:83:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 97,
"nodeType": "StructuredDocumentation",
"src": "3853:642:0",
"text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."
},
"functionSelector": "095ea7b3",
"id": 106,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "approve",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 102,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 99,
"mutability": "mutable",
"name": "spender",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 106,
"src": "4517:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 98,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4517:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 101,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 106,
"src": "4534:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 100,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4534:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4516:33:0"
},
"returnParameters": {
"id": 105,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 104,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 106,
"src": "4568:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 103,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "4568:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4567:6:0"
},
"scope": 137,
"src": "4500:74:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 107,
"nodeType": "StructuredDocumentation",
"src": "4580:296:0",
"text": " @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
},
"functionSelector": "23b872dd",
"id": 118,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "transferFrom",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 114,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 109,
"mutability": "mutable",
"name": "sender",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 118,
"src": "4903:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 108,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4903:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 111,
"mutability": "mutable",
"name": "recipient",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 118,
"src": "4919:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 110,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4919:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 113,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 118,
"src": "4938:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 112,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4938:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4902:51:0"
},
"returnParameters": {
"id": 117,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 116,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 118,
"src": "4972:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 115,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "4972:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4971:6:0"
},
"scope": 137,
"src": "4881:97:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"anonymous": false,
"documentation": {
"id": 119,
"nodeType": "StructuredDocumentation",
"src": "4984:158:0",
"text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."
},
"id": 127,
"name": "Transfer",
"nodeType": "EventDefinition",
"parameters": {
"id": 126,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 121,
"indexed": true,
"mutability": "mutable",
"name": "from",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 127,
"src": "5162:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 120,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5162:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 123,
"indexed": true,
"mutability": "mutable",
"name": "to",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 127,
"src": "5184:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 122,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5184:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 125,
"indexed": false,
"mutability": "mutable",
"name": "value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 127,
"src": "5204:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 124,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5204:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5161:57:0"
},
"src": "5147:72:0"
},
{
"anonymous": false,
"documentation": {
"id": 128,
"nodeType": "StructuredDocumentation",
"src": "5225:148:0",
"text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."
},
"id": 136,
"name": "Approval",
"nodeType": "EventDefinition",
"parameters": {
"id": 135,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 130,
"indexed": true,
"mutability": "mutable",
"name": "owner",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 136,
"src": "5393:21:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 129,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5393:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 132,
"indexed": true,
"mutability": "mutable",
"name": "spender",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 136,
"src": "5416:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 131,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5416:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 134,
"indexed": false,
"mutability": "mutable",
"name": "value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 136,
"src": "5441:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 133,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5441:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5392:63:0"
},
"src": "5378:78:0"
}
],
"scope": 345,
"src": "2892:2566:0"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 138,
"nodeType": "StructuredDocumentation",
"src": "5760:76:0",
"text": "@title MplRewards Synthetix farming contract fork for liquidity mining."
},
"fullyImplemented": false,
"id": 344,
"linearizedBaseContracts": [
344
],
"name": "IMplRewards",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": {
"id": 139,
"nodeType": "StructuredDocumentation",
"src": "5865:131:0",
"text": "@dev Emits an event indicating that a reward was added.\n@param reward The amount of the added reward."
},
"id": 143,
"name": "RewardAdded",
"nodeType": "EventDefinition",
"parameters": {
"id": 142,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 141,
"indexed": false,
"mutability": "mutable",
"name": "reward",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 143,
"src": "6019:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 140,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6019:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6018:16:0"
},
"src": "6001:34:0"
},
{
"anonymous": false,
"documentation": {
"id": 144,
"nodeType": "StructuredDocumentation",
"src": "6041:173:0",
"text": "@dev Emits an event indicating that an account has staked.\n@param account The address of the account.\n@param amount The amount staked."
},
"id": 150,
"name": "Staked",
"nodeType": "EventDefinition",
"parameters": {
"id": 149,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 146,
"indexed": true,
"mutability": "mutable",
"name": "account",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 150,
"src": "6232:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 145,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6232:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 148,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 150,
"src": "6257:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 147,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6257:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6231:41:0"
},
"src": "6219:54:0"
},
{
"anonymous": false,
"documentation": {
"id": 151,
"nodeType": "StructuredDocumentation",
"src": "6279:175:0",
"text": "@dev Emits an event indicating that reward was withdrawn.\n@param account The address of the account.\n@param amount The amount withdrawn."
},
"id": 157,
"name": "Withdrawn",
"nodeType": "EventDefinition",
"parameters": {
"id": 156,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 153,
"indexed": true,
"mutability": "mutable",
"name": "account",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 157,
"src": "6475:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 152,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6475:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 155,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 157,
"src": "6500:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 154,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6500:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6474:41:0"
},
"src": "6459:57:0"
},
{
"anonymous": false,
"documentation": {
"id": 158,
"nodeType": "StructuredDocumentation",
"src": "6522:210:0",
"text": "@dev Emits an event indicating that some reward was paid to an account.\n@param account The address of the account rewarded.\n@param reward The amount rewarded to `account`."
},
"id": 164,
"name": "RewardPaid",
"nodeType": "EventDefinition",
"parameters": {
"id": 163,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 160,
"indexed": true,
"mutability": "mutable",
"name": "account",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 164,
"src": "6754:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 159,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6754:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 162,
"indexed": false,
"mutability": "mutable",
"name": "reward",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 164,
"src": "6779:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 161,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6779:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6753:41:0"
},
"src": "6737:58:0"
},
{
"anonymous": false,
"documentation": {
"id": 165,
"nodeType": "StructuredDocumentation",
"src": "6801:162:0",
"text": "@dev Emits an event indicating that the duration of the ward period has updated.\n@param newDuration The new duration of the rewards."
},
"id": 169,
"name": "RewardsDurationUpdated",
"nodeType": "EventDefinition",
"parameters": {
"id": 168,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 167,
"indexed": false,
"mutability": "mutable",
"name": "newDuration",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 169,
"src": "6997:19:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 166,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6997:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6996:21:0"
},
"src": "6968:50:0"
},
{
"anonymous": false,
"documentation": {
"id": 170,
"nodeType": "StructuredDocumentation",
"src": "7024:185:0",
"text": "@dev Emits an event indicating that some token was recovered.\n@param token The address of the token recovered.\n@param amount The amount recovered."
},
"id": 176,
"name": "Recovered",
"nodeType": "EventDefinition",
"parameters": {
"id": 175,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 172,
"indexed": false,
"mutability": "mutable",
"name": "token",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 176,
"src": "7230:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 171,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7230:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 174,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 176,
"src": "7245:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 173,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7245:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7229:31:0"
},
"src": "7214:47:0"
},
{
"anonymous": false,
"documentation": {
"id": 177,
"nodeType": "StructuredDocumentation",
"src": "7267:138:0",
"text": "@dev Emits an event indicating that pause state has changed.\n@param isPaused Whether the contract is paused."
},
"id": 181,
"name": "PauseChanged",
"nodeType": "EventDefinition",
"parameters": {
"id": 180,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 179,
"indexed": false,
"mutability": "mutable",
"name": "isPaused",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 181,
"src": "7429:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 178,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7429:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7428:15:0"
},
"src": "7410:34:0"
},
{
"body": null,
"documentation": {
"id": 182,
"nodeType": "StructuredDocumentation",
"src": "7450:43:0",
"text": "@dev The rewards token."
},
"functionSelector": "d1af0c7d",
"id": 187,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "rewardsToken",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 183,
"nodeType": "ParameterList",
"parameters": [],
"src": "7519:2:0"
},
"returnParameters": {
"id": 186,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 185,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 187,
"src": "7545:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC20_$137",
"typeString": "contract IERC20"
},
"typeName": {
"contractScope": null,
"id": 184,
"name": "IERC20",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 137,
"src": "7545:6:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC20_$137",
"typeString": "contract IERC20"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7544:8:0"
},
"scope": 344,
"src": "7498:55:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 188,
"nodeType": "StructuredDocumentation",
"src": "7559:43:0",
"text": "@dev The staking token."
},
"functionSelector": "72f702f3",
"id": 193,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "stakingToken",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 189,
"nodeType": "ParameterList",
"parameters": [],
"src": "7628:2:0"
},
"returnParameters": {
"id": 192,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 191,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 193,
"src": "7654:8:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC2258_$61",
"typeString": "contract IERC2258"
},
"typeName": {
"contractScope": null,
"id": 190,
"name": "IERC2258",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 61,
"src": "7654:8:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC2258_$61",
"typeString": "contract IERC2258"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7653:10:0"
},
"scope": 344,
"src": "7607:57:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 194,
"nodeType": "StructuredDocumentation",
"src": "7670:43:0",
"text": "@dev The period finish."
},
"functionSelector": "ebe2b12b",
"id": 199,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "periodFinish",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 195,
"nodeType": "ParameterList",
"parameters": [],
"src": "7739:2:0"
},
"returnParameters": {
"id": 198,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 197,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 199,
"src": "7765:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 196,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7765:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7764:9:0"
},
"scope": 344,
"src": "7718:56:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 200,
"nodeType": "StructuredDocumentation",
"src": "7780:42:0",
"text": "@dev The rewards rate."
},
"functionSelector": "7b0a47ee",
"id": 205,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "rewardRate",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 201,
"nodeType": "ParameterList",
"parameters": [],
"src": "7846:2:0"
},
"returnParameters": {
"id": 204,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 203,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 205,
"src": "7872:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 202,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7872:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7871:9:0"
},
"scope": 344,
"src": "7827:54:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 206,
"nodeType": "StructuredDocumentation",
"src": "7887:46:0",
"text": "@dev The rewards duration."
},
"functionSelector": "386a9525",
"id": 211,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "rewardsDuration",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 207,
"nodeType": "ParameterList",
"parameters": [],
"src": "7962:2:0"
},
"returnParameters": {
"id": 210,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 209,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 211,
"src": "7988:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 208,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7988:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7987:9:0"
},
"scope": 344,
"src": "7938:59:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 212,
"nodeType": "StructuredDocumentation",
"src": "8003:46:0",
"text": "@dev The last update time."
},
"functionSelector": "c8f33c91",
"id": 217,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "lastUpdateTime",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 213,
"nodeType": "ParameterList",
"parameters": [],
"src": "8077:2:0"
},
"returnParameters": {
"id": 216,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 215,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 217,
"src": "8103:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 214,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8103:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8102:9:0"
},
"scope": 344,
"src": "8054:58:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 218,
"nodeType": "StructuredDocumentation",
"src": "8118:53:0",
"text": "@dev The reward per token stored."
},
"functionSelector": "df136d65",
"id": 223,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "rewardPerTokenStored",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 219,
"nodeType": "ParameterList",
"parameters": [],
"src": "8205:2:0"
},
"returnParameters": {
"id": 222,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 221,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 223,
"src": "8231:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 220,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8231:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8230:9:0"
},
"scope": 344,
"src": "8176:64:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 224,
"nodeType": "StructuredDocumentation",
"src": "8246:45:0",
"text": "@dev The last pause time."
},
"functionSelector": "91b4ded9",
"id": 229,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "lastPauseTime",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 225,
"nodeType": "ParameterList",
"parameters": [],
"src": "8318:2:0"
},
"returnParameters": {
"id": 228,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 227,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 229,
"src": "8344:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 226,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8344:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8343:9:0"
},
"scope": 344,
"src": "8296:57:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 230,
"nodeType": "StructuredDocumentation",
"src": "8359:56:0",
"text": "@dev Whether the contract is paused."
},
"functionSelector": "5c975abb",
"id": 235,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "paused",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 231,
"nodeType": "ParameterList",
"parameters": [],
"src": "8435:2:0"
},
"returnParameters": {
"id": 234,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 233,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 235,
"src": "8461:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 232,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8461:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8460:6:0"
},
"scope": 344,
"src": "8420:47:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 236,
"nodeType": "StructuredDocumentation",
"src": "8473:118:0",
"text": "@param account The address of an account.\n@return The reward per token paid for `account`."
},
"functionSelector": "8b876347",
"id": 243,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "userRewardPerTokenPaid",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 239,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 238,
"mutability": "mutable",
"name": "account",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 243,
"src": "8628:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 237,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8628:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8627:17:0"
},
"returnParameters": {
"id": 242,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 241,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 243,
"src": "8668:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 240,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8668:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8667:9:0"
},
"scope": 344,
"src": "8596:81:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 244,
"nodeType": "StructuredDocumentation",
"src": "8683:100:0",
"text": "@param account The address of an account.\n@return The rewards `account`."
},
"functionSelector": "0700037d",
"id": 251,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "rewards",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 247,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 246,
"mutability": "mutable",
"name": "account",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 251,
"src": "8805:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 245,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8805:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8804:17:0"
},
"returnParameters": {
"id": 250,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 249,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 251,
"src": "8845:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 248,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8845:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8844:9:0"
},
"scope": 344,
"src": "8788:66:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 252,
"nodeType": "StructuredDocumentation",
"src": "8860:45:0",
"text": "@return The total supply."
},
"functionSelector": "18160ddd",
"id": 257,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 253,
"nodeType": "ParameterList",
"parameters": [],
"src": "8930:2:0"
},
"returnParameters": {
"id": 256,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 255,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 257,
"src": "8956:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 254,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8956:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8955:9:0"
},
"scope": 344,
"src": "8910:55:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 258,
"nodeType": "StructuredDocumentation",
"src": "8971:103:0",
"text": "@param account The address of an account.\n@return The balance of `account`."
},
"functionSelector": "70a08231",
"id": 265,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "balanceOf",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 261,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 260,
"mutability": "mutable",
"name": "account",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 265,
"src": "9098:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 259,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9098:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9097:17:0"
},
"returnParameters": {
"id": 264,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 263,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 265,
"src": "9138:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 262,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9138:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9137:9:0"
},
"scope": 344,
"src": "9079:68:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 266,
"nodeType": "StructuredDocumentation",
"src": "9153:66:0",
"text": "@return The last time rewards were applicable."
},
"functionSelector": "80faa57d",
"id": 271,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "lastTimeRewardApplicable",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 267,
"nodeType": "ParameterList",
"parameters": [],
"src": "9257:2:0"
},
"returnParameters": {
"id": 270,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 269,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 271,
"src": "9283:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 268,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9283:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9282:9:0"
},
"scope": 344,
"src": "9224:68:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 272,
"nodeType": "StructuredDocumentation",
"src": "9298:49:0",
"text": "@return The reward per token."
},
"functionSelector": "cd3daf9d",
"id": 277,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "rewardPerToken",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 273,
"nodeType": "ParameterList",
"parameters": [],
"src": "9375:2:0"
},
"returnParameters": {
"id": 276,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 275,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 277,
"src": "9401:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 274,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9401:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9400:9:0"
},
"scope": 344,
"src": "9352:58:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 278,
"nodeType": "StructuredDocumentation",
"src": "9416:110:0",
"text": "@param account The address of an account.\n@return The rewards earned of `account`."
},
"functionSelector": "008cc262",
"id": 285,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "earned",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 281,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 280,
"mutability": "mutable",
"name": "account",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 285,
"src": "9547:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 279,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9547:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9546:17:0"
},
"returnParameters": {
"id": 284,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 283,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 285,
"src": "9587:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 282,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9587:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9586:9:0"
},
"scope": 344,
"src": "9531:65:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 286,
"nodeType": "StructuredDocumentation",
"src": "9602:54:0",
"text": "@return The reward for a duration."
},
"functionSelector": "1c1f78eb",
"id": 291,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getRewardForDuration",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 287,
"nodeType": "ParameterList",
"parameters": [],
"src": "9690:2:0"
},
"returnParameters": {
"id": 290,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 289,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 291,
"src": "9716:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 288,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9716:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9715:9:0"
},
"scope": 344,
"src": "9661:64:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 292,
"nodeType": "StructuredDocumentation",
"src": "9731:95:0",
"text": "@dev It emits a `Staked` event.\n@param amount An amount to stake."
},
"functionSelector": "a694fc3a",
"id": 297,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "stake",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 295,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 294,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 297,
"src": "9846:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 293,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9846:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9845:16:0"
},
"returnParameters": {
"id": 296,
"nodeType": "ParameterList",
"parameters": [],
"src": "9870:0:0"
},
"scope": 344,
"src": "9831:40:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 298,
"nodeType": "StructuredDocumentation",
"src": "9877:101:0",
"text": "@dev It emits a `Withdrawn` event.\n@param amount An amount to withdraw."
},
"functionSelector": "2e1a7d4d",
"id": 303,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "withdraw",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 301,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 300,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 303,
"src": "10001:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 299,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10001:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10000:16:0"
},
"returnParameters": {
"id": 302,
"nodeType": "ParameterList",
"parameters": [],
"src": "10025:0:0"
},
"scope": 344,
"src": "9983:43:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 304,
"nodeType": "StructuredDocumentation",
"src": "10032:83:0",
"text": "@dev It emits a `RewardPaid` event if any rewards are received."
},
"functionSelector": "3d18b912",
"id": 307,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getReward",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 305,
"nodeType": "ParameterList",
"parameters": [],
"src": "10138:2:0"
},
"returnParameters": {
"id": 306,
"nodeType": "ParameterList",
"parameters": [],
"src": "10149:0:0"
},
"scope": 344,
"src": "10120:30:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 308,
"nodeType": "StructuredDocumentation",
"src": "10156:72:0",
"text": "@dev Withdraw the entire balance and get the reward."
},
"functionSelector": "e9fad8ee",
"id": 311,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "exit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 309,
"nodeType": "ParameterList",
"parameters": [],
"src": "10246:2:0"
},
"returnParameters": {
"id": 310,
"nodeType": "ParameterList",
"parameters": [],
"src": "10257:0:0"
},
"scope": 344,
"src": "10233:25:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 312,
"nodeType": "StructuredDocumentation",
"src": "10264:149:0",
"text": "@dev Only the contract Owner may call this. \n@dev It emits a `RewardAdded` event. \n@param reward A reward amount."
},
"functionSelector": "3c6b16ab",
"id": 317,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "notifyRewardAmount",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 315,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 314,
"mutability": "mutable",
"name": "reward",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 317,
"src": "10446:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 313,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10446:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10445:16:0"
},
"returnParameters": {
"id": 316,
"nodeType": "ParameterList",
"parameters": [],
"src": "10470:0:0"
},
"scope": 344,
"src": "10418:53:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 318,
"nodeType": "StructuredDocumentation",
"src": "10477:154:0",
"text": "@dev End rewards emission earlier. Only the contract Owner may call this.\n@param timestamp A unix timestamp to finish rewards."
},
"functionSelector": "556f6e6b",
"id": 323,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "updatePeriodFinish",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 321,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 320,
"mutability": "mutable",
"name": "timestamp",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 323,
"src": "10664:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 319,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10664:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10663:19:0"
},
"returnParameters": {
"id": 322,
"nodeType": "ParameterList",
"parameters": [],
"src": "10691:0:0"
},
"scope": 344,
"src": "10636:56:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 324,
"nodeType": "StructuredDocumentation",
"src": "10698:310:0",
"text": "@dev Added to support recovering tokens unintentionally sent to this contract. \n@dev Only the contract Owner may call this. \n@dev It emits a `Recovered` event. \n@param tokenAddress The address of a token to recover.\n@param tokenAmount The amount to recover."
},
"functionSelector": "8980f11f",
"id": 331,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "recoverERC20",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 329,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 326,
"mutability": "mutable",
"name": "tokenAddress",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 331,
"src": "11035:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 325,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "11035:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 328,
"mutability": "mutable",
"name": "tokenAmount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 331,
"src": "11057:19:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 327,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11057:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "11034:43:0"
},
"returnParameters": {
"id": 330,
"nodeType": "ParameterList",
"parameters": [],
"src": "11086:0:0"
},
"scope": 344,
"src": "11013:74:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 332,
"nodeType": "StructuredDocumentation",
"src": "11093:187:0",
"text": "@dev Only the contract Owner may call this. \n@dev It emits a `RewardsDurationUpdated` event. \n@param _rewardsDuration The new duration for rewards."
},
"functionSelector": "cc1a378f",
"id": 337,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setRewardsDuration",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 335,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 334,
"mutability": "mutable",
"name": "_rewardsDuration",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 337,
"src": "11313:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 333,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11313:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "11312:26:0"
},
"returnParameters": {
"id": 336,
"nodeType": "ParameterList",
"parameters": [],
"src": "11347:0:0"
},
"scope": 344,
"src": "11285:63:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 338,
"nodeType": "StructuredDocumentation",
"src": "11354:206:0",
"text": "@dev Change the paused state of the contract. Only the contract Owner may call this. \n@dev It emits a `PauseChanged` event. \n@param _paused Whether to pause the contract."
},
"functionSelector": "16c38b3c",
"id": 343,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setPaused",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 341,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 340,
"mutability": "mutable",
"name": "_paused",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 343,
"src": "11584:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 339,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "11584:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "11583:14:0"
},
"returnParameters": {
"id": 342,
"nodeType": "ParameterList",
"parameters": [],
"src": "11606:0:0"
},
"scope": 344,
"src": "11565:42:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"scope": 345,
"src": "5836:5774:0"
}
],
"src": "133:11478:0"
},
"id": 0
}
}
}
}