{"compiler":{"version":"0.7.5+commit.eb77ed08"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_IMMO","type":"address"},{"internalType":"address","name":"_sIMMO","type":"address"},{"internalType":"uint32","name":"_epochLength","type":"uint32"},{"internalType":"uint256","name":"_firstEpochNumber","type":"uint256"},{"internalType":"uint32","name":"_firstEpochTime","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipPulled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipPushed","type":"event"},{"inputs":[],"name":"IMMO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"epoch","outputs":[{"internalType":"uint256","name":"number","type":"uint256"},{"internalType":"uint256","name":"distribute","type":"uint256"},{"internalType":"uint32","name":"length","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forfeit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"giveLockBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"index","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"locker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pullManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner_","type":"address"}],"name":"pushManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"returnLockBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sIMMO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum ImmortalStaking.CONTRACTS","name":"_contract","type":"uint8"},{"internalType":"address","name":"_address","type":"address"}],"name":"setContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_warmupPeriod","type":"uint256"}],"name":"setWarmup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_recipient","type":"address"}],"name":"stake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleDepositLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_trigger","type":"bool"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"warmupContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"warmupInfo","outputs":[{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"uint256","name":"gons","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"bool","name":"lock","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"warmupPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"claim(address)":{"params":{"_recipient":"address"}},"contractBalance()":{"returns":{"_0":"uint"}},"giveLockBonus(uint256)":{"params":{"_amount":"uint"}},"index()":{"returns":{"_0":"uint"}},"returnLockBonus(uint256)":{"params":{"_amount":"uint"}},"setContract(uint8,address)":{"params":{"_contract":"address"}},"setWarmup(uint256)":{"params":{"_warmupPeriod":"uint"}},"stake(uint256,address)":{"params":{"_amount":"uint"},"returns":{"_0":"bool"}},"unstake(uint256,bool)":{"params":{"_amount":"uint","_trigger":"bool"}}},"version":1},"userdoc":{"kind":"user","methods":{"claim(address)":{"notice":"retrieve sIMMO from warmup"},"contractBalance()":{"notice":"returns contract IMMO holdings, including bonuses provided"},"forfeit()":{"notice":"forfeit sIMMO in warmup and retrieve IMMO"},"giveLockBonus(uint256)":{"notice":"provide bonus to locked staking contract"},"index()":{"notice":"returns the sIMMO index, which tracks rebase growth"},"rebase()":{"notice":"trigger rebase if epoch over"},"returnLockBonus(uint256)":{"notice":"reclaim bonus from locked staking contract"},"setContract(uint8,address)":{"notice":"sets the contract address for LP staking"},"setWarmup(uint256)":{"notice":"set warmup period in epoch number for new stakers"},"stake(uint256,address)":{"notice":"stake IMMO to enter warmup"},"toggleDepositLock()":{"notice":"prevent new deposits to address (protection from malicious activity)"},"unstake(uint256,bool)":{"notice":"redeem sIMMO for IMMO"}},"version":1}},"settings":{"compilationTarget":{"Staking.sol":"ImmortalStaking"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"sources":{"Staking.sol":{"keccak256":"0xc6fb13f1121954cece1d7684ee4d49053263e459ccd3ff0367d68a9c75e65523","license":"AGPL-3.0-or-later","urls":["bzz-raw://6ef279d1f4f8e9f7c48905304ec82501de3ef6621fececfc31abec054bb55b85","dweb:/ipfs/QmQfu6K3M6FdsNHctTKKwVZhHxj7sy5fGVk8DfxYn7Ne6e"]}},"version":1}