fluid-contracts-public/deployments/arbitrum/v1_0_0/fToken_fUSDC_StakingRewards.json

823 lines
137 KiB
JSON
Raw Normal View History

{
"address": "0x48f89d731C5e3b5BeE8235162FC2C639Ba62DB7d",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "owner_",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "rewardsToken_",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "stakingToken_",
"type": "address"
},
{
"internalType": "uint40",
"name": "rewardsDuration_",
"type": "uint40"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "reward",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "NextRewardQueued",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"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": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "reward",
"type": "uint256"
}
],
"name": "RewardPaid",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Staked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"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": "lastTimeRewardApplicable",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastUpdateTime",
"outputs": [
{
"internalType": "uint40",
"name": "",
"type": "uint40"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nextPeriodFinish",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nextRewardRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nextRewards",
"outputs": [
{
"internalType": "uint216",
"name": "",
"type": "uint216"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nextRewardsDuration",
"outputs": [
{
"internalType": "uint40",
"name": "",
"type": "uint40"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reward_",
"type": "uint256"
}
],
"name": "notifyRewardAmount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reward_",
"type": "uint256"
},
{
"internalType": "uint40",
"name": "newDuration_",
"type": "uint40"
}
],
"name": "notifyRewardAmountWithDuration",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "periodFinish",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint216",
"name": "nextReward_",
"type": "uint216"
},
{
"internalType": "uint40",
"name": "nextDuration_",
"type": "uint40"
}
],
"name": "queueNextRewardAmount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "rewardPerToken",
"outputs": [
{
"internalType": "uint256",
"name": "rewardPerToken_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardPerTokenStored",
"outputs": [
{
"internalType": "uint128",
"name": "",
"type": "uint128"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"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": "address",
"name": "target_",
"type": "address"
},
{
"internalType": "bytes",
"name": "data_",
"type": "bytes"
}
],
"name": "spell",
"outputs": [
{
"internalType": "bytes",
"name": "response_",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "stake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "stakeWithPermit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "stakingToken",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "updateRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"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"
}
],
"transactionHash": "0x1a64430a29f662158b4dcf200700550d56ec936c0fe52f267b5fe2ea27caaa7e",
"receipt": {
"to": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
"from": "0x0Ed35B1609Ec45c7079E80d11149a52717e4859A",
"contractAddress": null,
"transactionIndex": 7,
"gasUsed": "6600166",
"logsBloom": "0x00400000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000002020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000020000000000000000000100000000000000000000000000000000000000000000020",
"blockHash": "0xc5d64488cf3a6f715167b44b9255d0ad64beb30bd1822b3f167e9d19cc5b2278",
"transactionHash": "0x1a64430a29f662158b4dcf200700550d56ec936c0fe52f267b5fe2ea27caaa7e",
"logs": [
{
"transactionIndex": 7,
"blockNumber": 228709698,
"transactionHash": "0x1a64430a29f662158b4dcf200700550d56ec936c0fe52f267b5fe2ea27caaa7e",
"address": "0x48f89d731C5e3b5BeE8235162FC2C639Ba62DB7d",
"topics": [
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000004f6f977acdd1177dcd81ab83074855ecb9c2d49e"
],
"data": "0x",
"logIndex": 14,
"blockHash": "0xc5d64488cf3a6f715167b44b9255d0ad64beb30bd1822b3f167e9d19cc5b2278"
}
],
"blockNumber": 228709698,
"cumulativeGasUsed": "8055632",
"status": 1,
"byzantium": true
},
"args": [
"0x4F6F977aCDD1177DCD81aB83074855EcB9C2D49e",
"0x912ce59144191c1204e64559fe8253a0e49e6548",
"0x1A996cb54bb95462040408C06122D45D6Cdb6096",
172800
],
"numDeployments": 1,
"solcInputHash": "5f1e5ad50d3c36955a625e91271f5da7",
"metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"rewardsToken_\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"stakingToken_\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"rewardsDuration_\",\"type\":\"uint40\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"NextRewardQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardPaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"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\":\"lastTimeRewardApplicable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastUpdateTime\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextPeriodFinish\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextRewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextRewards\",\"outputs\":[{\"internalType\":\"uint216\",\"name\":\"\",\"type\":\"uint216\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextRewardsDuration\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reward_\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\"
"bytecode": "0x60c06040523480156200001157600080fd5b50604051620044993803806200449983398101604081905262000034916200020a565b600080546001600160a01b0319166001600160a01b03861690811782556040518692907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180556001600160a01b038316620000ce5760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420706172616d7360901b60448201526064015b60405180910390fd5b6001600160a01b038216620001175760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420706172616d7360901b6044820152606401620000c5565b6001600160a01b038416620001605760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420706172616d7360901b6044820152606401620000c5565b60008164ffffffffff1611620001aa5760405162461bcd60e51b815260206004820152600e60248201526d496e76616c696420706172616d7360901b6044820152606401620000c5565b6001600160a01b03928316608052911660a0526002805464ffffffffff9092166a01000000000000000000000264ffffffffff60501b19909216919091179055506200027b565b6001600160a01b03811681146200020757600080fd5b50565b600080600080608085870312156200022157600080fd5b84516200022e81620001f1565b60208601519094506200024181620001f1565b60408601519093506200025481620001f1565b606086015190925064ffffffffff811681146200027057600080fd5b939692955090935050565b60805160a0516141c7620002d26000396000818161035f01528181610ae4015281816128ee015281816135c2015261364d01526000818161048a0152818161120201528181611e510152612c0d01526141c76000f3fe608060405234801561001057600080fd5b50600436106101e45760003560e01c80637b0a47ee1161010f578063c8f33c91116100a2578063e9fad8ee11610071578063e9fad8ee146104e9578063ebe2b12b146104f1578063ecd9ba82146104f9578063f2fde38b1461050c57600080fd5b8063c8f33c9114610463578063cd3daf9d1461047d578063d1af0c7d14610485578063df136d65146104ac57600080fd5b8063a694fc3a116100de578063a694fc3a146103f6578063aa0d9c4c14610409578063c1b432551461041c578063c7acb01f1461044357600080fd5b80637b0a47ee146103a657806380faa57d146103ae5780638b876347146103b65780638da5cb5b146103d657600080fd5b80633ce36915116101875780634d5dce99116101565780634d5dce99146102c057806370a082311461031c578063715fda7b1461035257806372f702f31461035a57600080fd5b80633ce36915146102955780633d18b912146102a85780633e158b0c146102b05780633fc5e436146102b857600080fd5b80631c1f78eb116101c35780631c1f78eb1461025d5780632e1a7d4d14610265578063386a95251461027a5780633c6b16ab1461028257600080fd5b80628cc262146101e95780630700037d1461020f57806318160ddd1461022f575b600080fd5b6101fc6101f7366004613d33565b61051f565b6040519081526020015b60405180910390f35b6101fc61021d366004613d33565b60066020526000908152604090205481565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166101fc565b6101fc6105b6565b610278610273366004613d55565b6105d7565b005b6101fc610b65565b610278610290366004613d55565b610bb6565b6102786102a3366004613d83565b611404565b610278611a22565b610278611ed2565b6101fc6122e1565b6004546102f0906501000000000090047affffffffffffffffffffffffffffffffffffffffffffffffffffff1681565b6040517affffffffffffffffffffffffffffffffffffffffffffffffffffff9091168152602001610206565b6101fc61032a366004613d33565b73ffffffffffffffffffffffffffffffffffffffff1660009081526007602052604090205490565b6101fc612320565b6103817f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610206565b6101fc6123b5565b6101fc612411565b6101fc6103c4366004613d33565b60056020526000908152604090205481565b6000546103819073ffffffffffffffffffffffffffffffffffffffff1681565b610278610404366004613d55565b612467565b610278610417366004613daf565b6129de565b60045461042d9064ffffffffff1681565b60405164ffffffffff9091168152602001610206565b610456610451366004613e2a565b612dfd565b6040516102069190613f78565b60025461042d9065010000000000900464ffffffffff1681565b6101fc612ecb565b6103817f000000000000000000000000000000000000000000000000000000000000000081565b6003546104c8906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff9091168152602001610206565b61027861309e565b6101fc6130bf565b610278610507366004613f8b565b6130fc565b61027861051a366004613d33565b613753565b73ffffffff
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e45760003560e01c80637b0a47ee1161010f578063c8f33c91116100a2578063e9fad8ee11610071578063e9fad8ee146104e9578063ebe2b12b146104f1578063ecd9ba82146104f9578063f2fde38b1461050c57600080fd5b8063c8f33c9114610463578063cd3daf9d1461047d578063d1af0c7d14610485578063df136d65146104ac57600080fd5b8063a694fc3a116100de578063a694fc3a146103f6578063aa0d9c4c14610409578063c1b432551461041c578063c7acb01f1461044357600080fd5b80637b0a47ee146103a657806380faa57d146103ae5780638b876347146103b65780638da5cb5b146103d657600080fd5b80633ce36915116101875780634d5dce99116101565780634d5dce99146102c057806370a082311461031c578063715fda7b1461035257806372f702f31461035a57600080fd5b80633ce36915146102955780633d18b912146102a85780633e158b0c146102b05780633fc5e436146102b857600080fd5b80631c1f78eb116101c35780631c1f78eb1461025d5780632e1a7d4d14610265578063386a95251461027a5780633c6b16ab1461028257600080fd5b80628cc262146101e95780630700037d1461020f57806318160ddd1461022f575b600080fd5b6101fc6101f7366004613d33565b61051f565b6040519081526020015b60405180910390f35b6101fc61021d366004613d33565b60066020526000908152604090205481565b60035470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff166101fc565b6101fc6105b6565b610278610273366004613d55565b6105d7565b005b6101fc610b65565b610278610290366004613d55565b610bb6565b6102786102a3366004613d83565b611404565b610278611a22565b610278611ed2565b6101fc6122e1565b6004546102f0906501000000000090047affffffffffffffffffffffffffffffffffffffffffffffffffffff1681565b6040517affffffffffffffffffffffffffffffffffffffffffffffffffffff9091168152602001610206565b6101fc61032a366004613d33565b73ffffffffffffffffffffffffffffffffffffffff1660009081526007602052604090205490565b6101fc612320565b6103817f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610206565b6101fc6123b5565b6101fc612411565b6101fc6103c4366004613d33565b60056020526000908152604090205481565b6000546103819073ffffffffffffffffffffffffffffffffffffffff1681565b610278610404366004613d55565b612467565b610278610417366004613daf565b6129de565b60045461042d9064ffffffffff1681565b60405164ffffffffff9091168152602001610206565b610456610451366004613e2a565b612dfd565b6040516102069190613f78565b60025461042d9065010000000000900464ffffffffff1681565b6101fc612ecb565b6103817f000000000000000000000000000000000000000000000000000000000000000081565b6003546104c8906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff9091168152602001610206565b61027861309e565b6101fc6130bf565b610278610507366004613f8b565b6130fc565b61027861051a366004613d33565b613753565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600660209081526040808320546005909252822054670de0b6b3a764000090610562612ecb565b61056c9190614009565b73ffffffffffffffffffffffffffffffffffffffff851660009081526007602052604090205461059c919061401c565b6105a69190614062565b6105b09190614076565b92915050565b60006105c0610b65565b6105c86123b5565b6105d2919061401c565b905090565b6105df613844565b600254339060009064ffffffffff1642106106035760025464ffffffffff16610605565b425b60035490915060009070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16156106f0576003546002547001000000000000000000000000000000009091046fffffffffffffffffffffffffffffffff16906f01000000000000000000000000000000810470ffffffffffffffffffffffffffffffffff16906106a89065010000000000900464ffffffffff1685614009565b6106b2919061401c565b6106c490670de0b6b3a764000061401c565b6106ce9190614062565b6003546106ed91906fffffffffffffffffffffffffffffffff16614076565b90505b600380546fffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffffffffffff000000000000000000000000000000009091161790556002805464ffffffffff80851665010000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff8316811790935591821691161742118015610787575060045464ffffffffff1615155b15610967576004546107c79064ffffffffff8116906501000000000090047affffffffffffffffffffffffffffffffffffffffffffffffffffff16614089565b600280546004546a010000000000000000000064ffffffffff91821681027fffffffffffffffffffffffff
"devdoc": {
"kind": "dev",
"methods": {
"spell(address,bytes)": {
"params": {
"data_": "Data to execute at the delegated address",
"target_": "Address to which the call needs to be delegated"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"earned(address)": {
"notice": "gets earned reward amount for an `account`, also considering automatic transition to queued next rewards"
},
"getRewardForDuration()": {
"notice": "gets reward amount for current duration, also considering automatic transition to queued next rewards"
},
"lastTimeRewardApplicable()": {
"notice": "gets last time where rewards accrue, also considering already queued next rewards"
},
"notifyRewardAmount(uint256)": {
"notice": "add new rewards or top-up adding to current rewards, adjusting rewardRate going forward for leftover + newReward until block.timestamp + duration"
},
"notifyRewardAmountWithDuration(uint256,uint40)": {
"notice": "add new rewards and update reward duration AFTER a reward period has ended."
},
"queueNextRewardAmount(uint216,uint40)": {
"notice": "queues next rewards that will be transitioned to automatically after current rewards reach `periodFinish`."
},
"rewardPerToken()": {
"notice": "gets reward amount per token, also considering automatic transition to queued next rewards"
},
"spell(address,bytes)": {
"notice": "Spell allows owner aka governance to do any arbitrary call"
},
"updateRewards()": {
"notice": "updates rewards until current block.timestamp or `periodFinish`. Transitions to next rewards if previous rewards ended and next ones were queued."
}
},
"version": 1
},
"storageLayout": {
"storage": [
{
"astId": 6767,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 10,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "_status",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"astId": 5708,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "_periodFinish",
"offset": 0,
"slot": "2",
"type": "t_uint40"
},
{
"astId": 5710,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "lastUpdateTime",
"offset": 5,
"slot": "2",
"type": "t_uint40"
},
{
"astId": 5712,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "_rewardsDuration",
"offset": 10,
"slot": "2",
"type": "t_uint40"
},
{
"astId": 5714,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "_rewardRate",
"offset": 15,
"slot": "2",
"type": "t_uint136"
},
{
"astId": 5716,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "rewardPerTokenStored",
"offset": 0,
"slot": "3",
"type": "t_uint128"
},
{
"astId": 5718,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "_totalSupply",
"offset": 16,
"slot": "3",
"type": "t_uint128"
},
{
"astId": 5720,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "nextRewardsDuration",
"offset": 0,
"slot": "4",
"type": "t_uint40"
},
{
"astId": 5722,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "nextRewards",
"offset": 5,
"slot": "4",
"type": "t_uint216"
},
{
"astId": 5726,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "userRewardPerTokenPaid",
"offset": 0,
"slot": "5",
"type": "t_mapping(t_address,t_uint256)"
},
{
"astId": 5730,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "rewards",
"offset": 0,
"slot": "6",
"type": "t_mapping(t_address,t_uint256)"
},
{
"astId": 5734,
"contract": "contracts/protocols/lending/stakingRewards/main.sol:FluidLendingStakingRewards",
"label": "_balances",
"offset": 0,
"slot": "7",
"type": "t_mapping(t_address,t_uint256)"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_mapping(t_address,t_uint256)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_uint128": {
"encoding": "inplace",
"label": "uint128",
"numberOfBytes": "16"
},
"t_uint136": {
"encoding": "inplace",
"label": "uint136",
"numberOfBytes": "17"
},
"t_uint216": {
"encoding": "inplace",
"label": "uint216",
"numberOfBytes": "27"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
},
"t_uint40": {
"encoding": "inplace",
"label": "uint40",
"numberOfBytes": "5"
}
}
}
}