{ "contractName": "RewardLocker", "contractAddress": "0x2952253374973DE0ffbFe35269Ca13FaF28B935F", "abi": [ { "inputs": [ { "internalType": "address", "name": "_developer", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "CycleIsNotCompletedYet", "type": "error" }, { "inputs": [], "name": "NotMemeAltar", "type": "error" }, { "inputs": [], "name": "StakePartMoreThan100Percent", "type": "error" }, { "inputs": [], "name": "TooEarlyToUnstake", "type": "error" }, { "inputs": [], "name": "Unsynchronized", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ClaimedReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "index", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "winnerToken", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "totalCycleRewards", "type": "uint256" } ], "name": "CycleCompleted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "CycleStarted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "staker", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "stakedCycle", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "stakedAmount", "type": "uint256" } ], "name": "RewardStaked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "unstaker", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "unstakeCycle", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "unstakedAmount", "type": "uint256" } ], "name": "RewardUnstaked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "cycleNumber", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "Rewarded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "unstaker", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "unstakeCycle", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "unstakedAmount", "type": "uint256" } ], "name": "UnstakeOrdered", "type": "event" }, { "inputs": [], "name": "bloodline", "outputs": [ { "internalType": "contract Bloodline", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_cycles", "type": "uint256[]" }, { "internalType": "address[]", "name": "_sacrificedTokens", "type": "address[]" } ], "name": "claim", "outputs": [ { "internalType": "uint256", "name": "claimedAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_cycles", "type": "uint256[]" } ], "name": "claim", "outputs": [ { "internalType": "uint256", "name": "claimedAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_cycles", "type": "uint256[]" }, { "internalType": "address", "name": "_sacrificedToken", "type": "address" } ], "name": "claim", "outputs": [ { "internalType": "uint256", "name": "claimedAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "cycles", "outputs": [ { "internalType": "uint32", "name": "cycleCompletedTimestamp", "type": "uint32" }, { "internalType": "uint224", "name": "totalSacrificeCompetitionRewards", "type": "uint224" }, { "internalType": "uint256", "name": "totalStakeRewards", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "cycleNumber", "type": "uint256" }, { "internalType": "address", "name": "sacrificedToken", "type": "address" } ], "name": "getRewards", "outputs": [ { "internalType": "uint256", "name": "stakeReward", "type": "uint256" }, { "internalType": "uint256", "name": "sacrificeReward", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "cycleNumber", "type": "uint256" } ], "name": "getSacrificableTokens", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "cycleNumber", "type": "uint256" }, { "internalType": "address", "name": "sacrificedToken", "type": "address" } ], "name": "getSacrificedTokenCoefficient", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "address", "name": "sacrificedToken", "type": "address" }, { "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "getStakeRewardForSacrificeReward", "outputs": [ { "internalType": "uint256", "name": "stakeReward", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "beneficiary", "type": "address" }, { "internalType": "uint256[]", "name": "cycleNumbers", "type": "uint256[]" } ], "name": "getTotalRewardsOf", "outputs": [ { "internalType": "uint256", "name": "totalSacrificeRewards", "type": "uint256" }, { "internalType": "uint256", "name": "totalStakeRewards", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "cycleNumber", "type": "uint256" }, { "internalType": "address", "name": "sacrificedToken", "type": "address" } ], "name": "getTotalSacrificeRewardsForToken", "outputs": [ { "internalType": "uint256", "name": "totalSacrificeRewardsForToken", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_memeAltar", "type": "address" }, { "internalType": "address", "name": "_bloodline", "type": "address" } ], "name": "init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "lastCompletedCycle", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "memeAltar", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "orderUnstake", "outputs": [ { "internalType": "uint256", "name": "unstakeCycle", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "cycleIndex", "type": "uint256" }, { "internalType": "address", "name": "winnerToken", "type": "address" } ], "name": "registerCycleCompleted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "cycleIndex", "type": "uint256" }, { "internalType": "address[]", "name": "sacrificableTokens", "type": "address[]" } ], "name": "registerNextCycle", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "address", "name": "_sacrificedToken", "type": "address" }, { "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "registerReward", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "stakeCoefficient", "type": "uint256" }, { "internalType": "uint256[]", "name": "_cycles", "type": "uint256[]" }, { "internalType": "address[]", "name": "_sacrificedTokens", "type": "address[]" } ], "name": "stakeAndClaim", "outputs": [ { "internalType": "uint256", "name": "stakedAmount", "type": "uint256" }, { "internalType": "uint256", "name": "claimedAmount", "type": "uint256" } ], "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": "stakeToBeSecured", "outputs": [ { "internalType": "uint256", "name": "stakedAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_cycles", "type": "uint256[]" }, { "internalType": "address[]", "name": "_sacrificedTokens", "type": "address[]" } ], "name": "stakeToBeSecured", "outputs": [ { "internalType": "uint256", "name": "stakedAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "stakeToBeSecured", "outputs": [ { "internalType": "uint256", "name": "stakedAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "staked", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "unstakeCycle", "type": "uint256" } ], "name": "unstake", "outputs": [ { "internalType": "uint256", "name": "unstakedAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "unstakeOrdered", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ] }