export type QuestPool = { "version": "2.0.0", "name": "quest_pool", "instructions": [ { "name": "initStakePool", "accounts": [ { "name": "stakePool", "isMut": true, "isSigner": false }, { "name": "extendedStakePool", "isMut": true, "isSigner": false }, { "name": "rewardMint", "isMut": true, "isSigner": false }, { "name": "rewardMintAuthority", "isMut": true, "isSigner": true }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "payer", "isMut": true, "isSigner": true } ], "args": [ { "name": "ix", "type": { "defined": "InitStakePoolIx" } } ] }, { "name": "initStakeEntry", "accounts": [ { "name": "stakeEntry", "isMut": true, "isSigner": false }, { "name": "levelUpStakeEntry", "isMut": true, "isSigner": false }, { "name": "originalMint", "isMut": false, "isSigner": false }, { "name": "certificateMint", "isMut": true, "isSigner": true }, { "name": "certificateMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "certificateMintMetadata", "isMut": true, "isSigner": false }, { "name": "mintManager", "isMut": true, "isSigner": false }, { "name": "certificateProgram", "isMut": false, "isSigner": false }, { "name": "tokenMetadataProgram", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "associatedToken", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "payer", "isMut": true, "isSigner": true } ], "args": [ { "name": "ix", "type": { "defined": "InitStakeEntryIx" } } ] }, { "name": "stake", "accounts": [ { "name": "stakeEntry", "isMut": true, "isSigner": false }, { "name": "extendedStakeEntry", "isMut": true, "isSigner": false }, { "name": "stakePool", "isMut": false, "isSigner": false }, { "name": "extendedStakePool", "isMut": true, "isSigner": false }, { "name": "levelUpStakeEntry", "isMut": true, "isSigner": false }, { "name": "user", "isMut": true, "isSigner": true }, { "name": "originalMint", "isMut": false, "isSigner": false }, { "name": "certificateMint", "isMut": true, "isSigner": false }, { "name": "rewardMint", "isMut": true, "isSigner": false }, { "name": "stakeEntryOriginalMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "stakeEntryCertificateMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "userOriginalMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "userCertificateMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "mintManager", "isMut": false, "isSigner": false }, { "name": "certificate", "isMut": true, "isSigner": false }, { "name": "certificateTokenAccount", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "certificateProgram", "isMut": false, "isSigner": false }, { "name": "associatedToken", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "payer", "isMut": true, "isSigner": true } ], "args": [] }, { "name": "unstake", "accounts": [ { "name": "stakePool", "isMut": true, "isSigner": false }, { "name": "stakeEntry", "isMut": true, "isSigner": false }, { "name": "extendedStakeEntry", "isMut": true, "isSigner": false }, { "name": "user", "isMut": true, "isSigner": true }, { "name": "originalMint", "isMut": false, "isSigner": false }, { "name": "certificateMint", "isMut": true, "isSigner": false }, { "name": "rewardMint", "isMut": true, "isSigner": false }, { "name": "stakeEntryOriginalMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "stakeEntryCertificateMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "userOriginalMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "userCertificateMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "userRewardMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "clock", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "payer", "isMut": true, "isSigner": true } ], "args": [ { "name": "ix", "type": { "defined": "UnstakeIx" } } ] }, { "name": "closePool", "accounts": [ { "name": "stakePool", "isMut": true, "isSigner": false }, { "name": "authority", "isMut": true, "isSigner": true } ], "args": [] } ], "accounts": [ { "name": "stakePool", "type": { "kind": "struct", "fields": [ { "name": "bump", "type": "u8" }, { "name": "name", "type": "string" }, { "name": "rewardMint", "type": "publicKey" }, { "name": "rewardDurationSeconds", "type": "i64" }, { "name": "stakeSecondsRequired", "type": "i64" }, { "name": "maxSupply", "type": "u64" }, { "name": "rewardsIssued", "type": "u64" }, { "name": "closed", "type": "bool" }, { "name": "requiresHungry", "type": "bool" } ] } }, { "name": "extendedStakePool", "type": { "kind": "struct", "fields": [ { "name": "bump", "type": "u8" }, { "name": "singleLoot", "type": "bool" }, { "name": "reserved", "type": { "array": [ "u128", 20 ] } } ] } }, { "name": "stakeEntry", "type": { "kind": "struct", "fields": [ { "name": "bump", "type": "u8" }, { "name": "stakePool", "type": "publicKey" }, { "name": "originalMint", "type": "publicKey" }, { "name": "certificateMint", "type": "publicKey" }, { "name": "questStart", "type": "i64" }, { "name": "staker", "type": "publicKey" } ] } }, { "name": "extendedStakeEntry", "type": { "kind": "struct", "fields": [ { "name": "bump", "type": "u8" }, { "name": "mintedLoots", "type": "u64" }, { "name": "reserved", "type": { "array": [ "u128", 7 ] } } ] } } ], "types": [ { "name": "InitStakeEntryIx", "type": { "kind": "struct", "fields": [ { "name": "mintManagerBump", "type": "u8" }, { "name": "name", "type": "string" }, { "name": "symbol", "type": "string" }, { "name": "originalMint", "type": "publicKey" }, { "name": "certificateMint", "type": "publicKey" }, { "name": "mintManager", "type": "publicKey" } ] } }, { "name": "InitStakePoolIx", "type": { "kind": "struct", "fields": [ { "name": "name", "type": "string" }, { "name": "rewardMint", "type": "publicKey" }, { "name": "rewardDurationSeconds", "type": "i64" }, { "name": "stakeSecondsRequired", "type": "i64" }, { "name": "maxSupply", "type": "u64" }, { "name": "requiresHungry", "type": "bool" }, { "name": "singleLoot", "type": "bool" } ] } }, { "name": "UnstakeIx", "type": { "kind": "struct", "fields": [ { "name": "isClaim", "type": "u8" } ] } } ], "errors": [ { "code": 6000, "name": "InvalidOriginalMint", "msg": "Original mint is invalid" }, { "code": 6001, "name": "InvalidRewardMint", "msg": "Reward mint is invalid" }, { "code": 6002, "name": "InvalidCertificateMint", "msg": "Certificate mint is invalid" }, { "code": 6003, "name": "InvalidUserTokenAccountOwner", "msg": "User must own token account" }, { "code": 6004, "name": "InvalidUserOriginalMintTokenAccount", "msg": "Invalid user original mint token account" }, { "code": 6005, "name": "InvalidUserCertificateMintTokenAccount", "msg": "Invalid user certificate mint account" }, { "code": 6006, "name": "InvalidUserRewardMintTokenAccount", "msg": "Invalid user reward mint token account" }, { "code": 6007, "name": "InvalidStakeEntryOriginalMintTokenAccount", "msg": "Invalid stake entry original mint token account" }, { "code": 6008, "name": "InvalidStakeEntryCertificateMintTokenAccount", "msg": "Invalid stake entry certificate mint token account" }, { "code": 6009, "name": "InvalidUnstakeUser", "msg": "Invalid unstake user, only staker can unstake" }, { "code": 6010, "name": "PoolLevelRequiredError", "msg": "Stake entry does not meet pool's level required constraint" }, { "code": 6011, "name": "InvalidRewardMintAuthority", "msg": "Invalid reward mint authority" }, { "code": 6012, "name": "InvalidLevelupStakeEntry", "msg": "Invalid level up stake entry provided" }, { "code": 6013, "name": "StakePoolMaxSupplyReached", "msg": "Stake pool has reached the max supply for rewards" }, { "code": 6014, "name": "InvalidAuthority", "msg": "Invalid stake pool authority" }, { "code": 6015, "name": "InvalidClaimAction", "msg": "Invalid claim action. check if the action is enabled" }, { "code": 6016, "name": "MathOverflow", "msg": "Math operation overflow" }, { "code": 6017, "name": "InvalidLootsCount", "msg": "Multiple loots are disabled for this hunt" } ] }; export const IDL: QuestPool = { "version": "2.0.0", "name": "quest_pool", "instructions": [ { "name": "initStakePool", "accounts": [ { "name": "stakePool", "isMut": true, "isSigner": false }, { "name": "extendedStakePool", "isMut": true, "isSigner": false }, { "name": "rewardMint", "isMut": true, "isSigner": false }, { "name": "rewardMintAuthority", "isMut": true, "isSigner": true }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "payer", "isMut": true, "isSigner": true } ], "args": [ { "name": "ix", "type": { "defined": "InitStakePoolIx" } } ] }, { "name": "initStakeEntry", "accounts": [ { "name": "stakeEntry", "isMut": true, "isSigner": false }, { "name": "levelUpStakeEntry", "isMut": true, "isSigner": false }, { "name": "originalMint", "isMut": false, "isSigner": false }, { "name": "certificateMint", "isMut": true, "isSigner": true }, { "name": "certificateMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "certificateMintMetadata", "isMut": true, "isSigner": false }, { "name": "mintManager", "isMut": true, "isSigner": false }, { "name": "certificateProgram", "isMut": false, "isSigner": false }, { "name": "tokenMetadataProgram", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "associatedToken", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "payer", "isMut": true, "isSigner": true } ], "args": [ { "name": "ix", "type": { "defined": "InitStakeEntryIx" } } ] }, { "name": "stake", "accounts": [ { "name": "stakeEntry", "isMut": true, "isSigner": false }, { "name": "extendedStakeEntry", "isMut": true, "isSigner": false }, { "name": "stakePool", "isMut": false, "isSigner": false }, { "name": "extendedStakePool", "isMut": true, "isSigner": false }, { "name": "levelUpStakeEntry", "isMut": true, "isSigner": false }, { "name": "user", "isMut": true, "isSigner": true }, { "name": "originalMint", "isMut": false, "isSigner": false }, { "name": "certificateMint", "isMut": true, "isSigner": false }, { "name": "rewardMint", "isMut": true, "isSigner": false }, { "name": "stakeEntryOriginalMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "stakeEntryCertificateMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "userOriginalMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "userCertificateMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "mintManager", "isMut": false, "isSigner": false }, { "name": "certificate", "isMut": true, "isSigner": false }, { "name": "certificateTokenAccount", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "certificateProgram", "isMut": false, "isSigner": false }, { "name": "associatedToken", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "payer", "isMut": true, "isSigner": true } ], "args": [] }, { "name": "unstake", "accounts": [ { "name": "stakePool", "isMut": true, "isSigner": false }, { "name": "stakeEntry", "isMut": true, "isSigner": false }, { "name": "extendedStakeEntry", "isMut": true, "isSigner": false }, { "name": "user", "isMut": true, "isSigner": true }, { "name": "originalMint", "isMut": false, "isSigner": false }, { "name": "certificateMint", "isMut": true, "isSigner": false }, { "name": "rewardMint", "isMut": true, "isSigner": false }, { "name": "stakeEntryOriginalMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "stakeEntryCertificateMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "userOriginalMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "userCertificateMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "userRewardMintTokenAccount", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "clock", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "payer", "isMut": true, "isSigner": true } ], "args": [ { "name": "ix", "type": { "defined": "UnstakeIx" } } ] }, { "name": "closePool", "accounts": [ { "name": "stakePool", "isMut": true, "isSigner": false }, { "name": "authority", "isMut": true, "isSigner": true } ], "args": [] } ], "accounts": [ { "name": "stakePool", "type": { "kind": "struct", "fields": [ { "name": "bump", "type": "u8" }, { "name": "name", "type": "string" }, { "name": "rewardMint", "type": "publicKey" }, { "name": "rewardDurationSeconds", "type": "i64" }, { "name": "stakeSecondsRequired", "type": "i64" }, { "name": "maxSupply", "type": "u64" }, { "name": "rewardsIssued", "type": "u64" }, { "name": "closed", "type": "bool" }, { "name": "requiresHungry", "type": "bool" } ] } }, { "name": "extendedStakePool", "type": { "kind": "struct", "fields": [ { "name": "bump", "type": "u8" }, { "name": "singleLoot", "type": "bool" }, { "name": "reserved", "type": { "array": [ "u128", 20 ] } } ] } }, { "name": "stakeEntry", "type": { "kind": "struct", "fields": [ { "name": "bump", "type": "u8" }, { "name": "stakePool", "type": "publicKey" }, { "name": "originalMint", "type": "publicKey" }, { "name": "certificateMint", "type": "publicKey" }, { "name": "questStart", "type": "i64" }, { "name": "staker", "type": "publicKey" } ] } }, { "name": "extendedStakeEntry", "type": { "kind": "struct", "fields": [ { "name": "bump", "type": "u8" }, { "name": "mintedLoots", "type": "u64" }, { "name": "reserved", "type": { "array": [ "u128", 7 ] } } ] } } ], "types": [ { "name": "InitStakeEntryIx", "type": { "kind": "struct", "fields": [ { "name": "mintManagerBump", "type": "u8" }, { "name": "name", "type": "string" }, { "name": "symbol", "type": "string" }, { "name": "originalMint", "type": "publicKey" }, { "name": "certificateMint", "type": "publicKey" }, { "name": "mintManager", "type": "publicKey" } ] } }, { "name": "InitStakePoolIx", "type": { "kind": "struct", "fields": [ { "name": "name", "type": "string" }, { "name": "rewardMint", "type": "publicKey" }, { "name": "rewardDurationSeconds", "type": "i64" }, { "name": "stakeSecondsRequired", "type": "i64" }, { "name": "maxSupply", "type": "u64" }, { "name": "requiresHungry", "type": "bool" }, { "name": "singleLoot", "type": "bool" } ] } }, { "name": "UnstakeIx", "type": { "kind": "struct", "fields": [ { "name": "isClaim", "type": "u8" } ] } } ], "errors": [ { "code": 6000, "name": "InvalidOriginalMint", "msg": "Original mint is invalid" }, { "code": 6001, "name": "InvalidRewardMint", "msg": "Reward mint is invalid" }, { "code": 6002, "name": "InvalidCertificateMint", "msg": "Certificate mint is invalid" }, { "code": 6003, "name": "InvalidUserTokenAccountOwner", "msg": "User must own token account" }, { "code": 6004, "name": "InvalidUserOriginalMintTokenAccount", "msg": "Invalid user original mint token account" }, { "code": 6005, "name": "InvalidUserCertificateMintTokenAccount", "msg": "Invalid user certificate mint account" }, { "code": 6006, "name": "InvalidUserRewardMintTokenAccount", "msg": "Invalid user reward mint token account" }, { "code": 6007, "name": "InvalidStakeEntryOriginalMintTokenAccount", "msg": "Invalid stake entry original mint token account" }, { "code": 6008, "name": "InvalidStakeEntryCertificateMintTokenAccount", "msg": "Invalid stake entry certificate mint token account" }, { "code": 6009, "name": "InvalidUnstakeUser", "msg": "Invalid unstake user, only staker can unstake" }, { "code": 6010, "name": "PoolLevelRequiredError", "msg": "Stake entry does not meet pool's level required constraint" }, { "code": 6011, "name": "InvalidRewardMintAuthority", "msg": "Invalid reward mint authority" }, { "code": 6012, "name": "InvalidLevelupStakeEntry", "msg": "Invalid level up stake entry provided" }, { "code": 6013, "name": "StakePoolMaxSupplyReached", "msg": "Stake pool has reached the max supply for rewards" }, { "code": 6014, "name": "InvalidAuthority", "msg": "Invalid stake pool authority" }, { "code": 6015, "name": "InvalidClaimAction", "msg": "Invalid claim action. check if the action is enabled" }, { "code": 6016, "name": "MathOverflow", "msg": "Math operation overflow" }, { "code": 6017, "name": "InvalidLootsCount", "msg": "Multiple loots are disabled for this hunt" } ] };