[{"type":"constructor","inputs":[{"name":"artifactRegistry_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"STAKE_KEY_DOMAIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"STAKE_OBJECT_DOMAIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"artifactRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IKeelArtifactRegistry"}],"stateMutability":"view"},{"type":"function","name":"configureLockup","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"},{"name":"mode","type":"uint8","internalType":"enum KeelStakeObjectManager.LockupMode"},{"name":"minimumSeconds","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"configureRuntime","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"},{"name":"codeObjectId","type":"bytes32","internalType":"bytes32"},{"name":"codeObjectRevision","type":"uint64","internalType":"uint64"},{"name":"slot","type":"uint16","internalType":"uint16"},{"name":"seed","type":"bytes32","internalType":"bytes32"},{"name":"argumentsDigest","type":"bytes32","internalType":"bytes32"},{"name":"variablesDigest","type":"bytes32","internalType":"bytes32"},{"name":"runtimeDigest","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createStakeObject","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"hostCollection","type":"address","internalType":"address"},{"name":"hostTokenId","type":"uint256","internalType":"uint256"},{"name":"stakedCollection","type":"address","internalType":"address"},{"name":"harnessId","type":"bytes32","internalType":"bytes32"},{"name":"backpack","type":"tuple","internalType":"struct KeelStakeObjectManager.BackpackConfig","components":[{"name":"registry","type":"address","internalType":"address"},{"name":"implementation","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"ensureBackpack","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"account","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"freezeStakeObject","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"globalStakeCounts","inputs":[],"outputs":[{"name":"lifetime","type":"uint256","internalType":"uint256"},{"name":"active","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"keelStakeState","inputs":[{"name":"collection","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"active","type":"bool","internalType":"bool"},{"name":"controller","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"packedStakeCounts","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"},{"name":"stakedCollection","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"packed","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"predictStakeObjectId","inputs":[{"name":"creator","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"setStakeObjectEnabled","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"},{"name":"enabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stakeCountForToken","inputs":[{"name":"stakedCollection","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"lifetime","type":"uint256","internalType":"uint256"},{"name":"active","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeCounts","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"},{"name":"stakedCollection","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"objectTokenLifetime","type":"uint256","internalType":"uint256"},{"name":"objectLifetime","type":"uint256","internalType":"uint256"},{"name":"objectActive","type":"uint256","internalType":"uint256"},{"name":"tokenLifetime","type":"uint256","internalType":"uint256"},{"name":"tokenActive","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"stakeKey","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"},{"name":"stakedCollection","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"stakeObject","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct KeelStakeObjectManager.StakeObject","components":[{"name":"creator","type":"address","internalType":"address"},{"name":"hostCollection","type":"address","internalType":"address"},{"name":"hostTokenId","type":"uint256","internalType":"uint256"},{"name":"stakedCollection","type":"address","internalType":"address"},{"name":"harnessId","type":"bytes32","internalType":"bytes32"},{"name":"backpack","type":"tuple","internalType":"struct KeelStakeObjectManager.BackpackConfig","components":[{"name":"registry","type":"address","internalType":"address"},{"name":"implementation","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"backpackAccount","type":"address","internalType":"address"},{"name":"lockup","type":"tuple","internalType":"struct KeelStakeObjectManager.Lockup","components":[{"name":"mode","type":"uint8","internalType":"enum KeelStakeObjectManager.LockupMode"},{"name":"minimumSeconds","type":"uint64","internalType":"uint64"}]},{"name":"enabled","type":"bool","internalType":"bool"},{"name":"exists","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"stakeObjectActive","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"stakeObjectController","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"hostOwner","type":"address","internalType":"address"},{"name":"creator","type":"address","internalType":"address"},{"name":"manager","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"stakeObjectRuntime","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct KeelStakeObjectManager.Runtime","components":[{"name":"codeObjectId","type":"bytes32","internalType":"bytes32"},{"name":"codeObjectRevision","type":"uint64","internalType":"uint64"},{"name":"seed","type":"bytes32","internalType":"bytes32"},{"name":"argumentsDigest","type":"bytes32","internalType":"bytes32"},{"name":"variablesDigest","type":"bytes32","internalType":"bytes32"},{"name":"slot","type":"uint16","internalType":"uint16"},{"name":"runtimeDigest","type":"bytes32","internalType":"bytes32"},{"name":"exists","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"stakeObjectState","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"state","type":"tuple","internalType":"struct KeelStakeObjectManager.StakeObjectState","components":[{"name":"active","type":"bool","internalType":"bool"},{"name":"staker","type":"address","internalType":"address"},{"name":"stakedCollection","type":"address","internalType":"address"},{"name":"activeTokenId","type":"uint256","internalType":"uint256"},{"name":"objectTokenLifetime","type":"uint256","internalType":"uint256"},{"name":"objectLifetime","type":"uint256","internalType":"uint256"},{"name":"objectActive","type":"uint256","internalType":"uint256"},{"name":"tokenLifetime","type":"uint256","internalType":"uint256"},{"name":"tokenActive","type":"uint256","internalType":"uint256"},{"name":"globalLifetime","type":"uint256","internalType":"uint256"},{"name":"globalActive","type":"uint256","internalType":"uint256"},{"name":"runtimeDigest","type":"bytes32","internalType":"bytes32"},{"name":"hostOwner","type":"address","internalType":"address"},{"name":"harnessId","type":"bytes32","internalType":"bytes32"},{"name":"lockupMode","type":"uint8","internalType":"enum KeelStakeObjectManager.LockupMode"},{"name":"minimumSeconds","type":"uint64","internalType":"uint64"},{"name":"startedAt","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"totalActiveStakes","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalLifetimeStakes","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"unstake","inputs":[{"name":"stakeObjectId","type":"bytes32","internalType":"bytes32"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"StakeObjectBackpackCreated","inputs":[{"name":"stakeObjectId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StakeObjectCreated","inputs":[{"name":"harnessId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"stakeObjectId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"creator","type":"address","indexed":false,"internalType":"address"},{"name":"hostCollection","type":"address","indexed":true,"internalType":"address"},{"name":"stakedCollection","type":"address","indexed":false,"internalType":"address"},{"name":"hostTokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StakeObjectEnabled","inputs":[{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"},{"name":"stakeObjectId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StakeObjectFrozen","inputs":[{"name":"stakeObjectId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StakeObjectLockupConfigured","inputs":[{"name":"mode","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"minimumSeconds","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"stakeObjectId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StakeObjectRuntimeConfigured","inputs":[{"name":"codeObjectRevision","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"slot","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"seed","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"codeObjectId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"stakeObjectId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"runtimeDigest","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"argumentsDigest","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"variablesDigest","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StakeRecorded","inputs":[{"name":"stakeObjectId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"runtimeDigest","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"staker","type":"address","indexed":false,"internalType":"address"},{"name":"hostCollection","type":"address","indexed":false,"internalType":"address"},{"name":"stakedCollection","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"hostTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenActive","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objectActive","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"globalActive","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenLifetime","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objectLifetime","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"globalLifetime","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objectTokenLifetime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StakeReleased","inputs":[{"name":"stakeObjectId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"runtimeDigest","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"staker","type":"address","indexed":false,"internalType":"address"},{"name":"hostCollection","type":"address","indexed":false,"internalType":"address"},{"name":"stakedCollection","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"hostTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenActive","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objectActive","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"globalActive","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenLifetime","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objectLifetime","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"globalLifetime","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objectTokenLifetime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AlreadyStaked","inputs":[]},{"type":"error","name":"BackpackExists","inputs":[]},{"type":"error","name":"BackpackUnavailable","inputs":[]},{"type":"error","name":"ConfigurationFrozen","inputs":[]},{"type":"error","name":"CounterPackingOverflow","inputs":[]},{"type":"error","name":"InvalidContract","inputs":[]},{"type":"error","name":"InvalidLockup","inputs":[]},{"type":"error","name":"InvalidRuntime","inputs":[]},{"type":"error","name":"InvalidStakeObject","inputs":[]},{"type":"error","name":"InvalidTransfer","inputs":[]},{"type":"error","name":"LockupActive","inputs":[]},{"type":"error","name":"LockupImmutable","inputs":[]},{"type":"error","name":"NotStaked","inputs":[]},{"type":"error","name":"NotStaker","inputs":[]},{"type":"error","name":"ObjectActive","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RuntimeMissing","inputs":[]},{"type":"error","name":"RuntimeObjectMissing","inputs":[]},{"type":"error","name":"StakeObjectExists","inputs":[]},{"type":"error","name":"StakeObjectMissing","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]}]
