{
    "version": "0.1.0",
    "name": "community_pools_anchor",
    "instructions": [
        {
            "name": "initPool",
            "accounts": [
                {
                    "name": "communityPool",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "authority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "fractionMint",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "communityPoolsAuthority",
                    "isMut": true,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "bumpPoolsAuth",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "addToWhitelist",
            "accounts": [
                {
                    "name": "authority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "poolWhitelist",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "communityPool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "whitelistedAddress",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "isCreator",
                    "type": "bool"
                }
            ]
        },
        {
            "name": "activatePool",
            "accounts": [
                {
                    "name": "communityPool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "authority",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "depositNft",
            "accounts": [
                {
                    "name": "safetyDepositBox",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "nftUserTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "storeNftTokenAccount",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "communityPool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "communityPoolsAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "fractionMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userFractionsTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "poolWhitelist",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "metadataInfo",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenMintInput",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "fusionVaultOwnerPda",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vaultTokenAccountOutput",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "mainRouterLp",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "configOutputLp",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "mainRouterIs",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "configOutputIs",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "fusionId",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "associatedTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "feeConfig",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "adminTokenAccount",
                    "isMut": true,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "bumpPoolsAuth",
                    "type": "u8"
                },
                {
                    "name": "bumpTopupAuth",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "getLotteryTicket",
            "accounts": [
                {
                    "name": "lotteryTicket",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "communityPool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "fractionMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userFractionsTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenMintInput",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "fusionVaultOwnerPda",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vaultTokenAccountOutput",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "mainRouterLp",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "configOutputLp",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "mainRouterIs",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "configOutputIs",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "fusionId",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "associatedTokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "feeConfig",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "adminTokenAccount",
                    "isMut": true,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "bumpTopupAuth",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "revealLotteryTicket",
            "accounts": [
                {
                    "name": "lotteryTicket",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "safetyDepositBox",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "communityPool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                }
            ],
            "args": []
        },
        {
            "name": "withdrawNftByTicket",
            "accounts": [
                {
                    "name": "lotteryTicket",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "safetyDepositBox",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftUserTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "storeNftTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "communityPool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "communityPoolsAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "bumpPoolsAuth",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "withdrawNftByAdmin",
            "accounts": [
                {
                    "name": "lotteryTicket",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "safetyDepositBox",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftUserTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "storeNftTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "communityPool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "communityPoolsAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                }
            ],
            "args": [
                {
                    "name": "bumpPoolsAuth",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "initializeLeaderboard",
            "accounts": [
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "communityPool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "fractionMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "leaderboardAccount",
                    "isMut": true,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "depositReward",
                    "type": "u64"
                },
                {
                    "name": "withdrawReward",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "updateLeaderboard",
            "accounts": [
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "communityPool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "fractionMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "leaderboardAccount",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "bumpLeaderboard",
                    "type": "u8"
                },
                {
                    "name": "depositReward",
                    "type": "u64"
                },
                {
                    "name": "withdrawReward",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "initializeFee",
            "accounts": [
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "communityPool",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "config",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "depositFeeAdmin",
                    "type": "u32"
                },
                {
                    "name": "depositFeeLpool",
                    "type": "u32"
                },
                {
                    "name": "depositFeeIstaking",
                    "type": "u32"
                },
                {
                    "name": "getLotteryFeeAdmin",
                    "type": "u32"
                },
                {
                    "name": "getLotteryFeeLpool",
                    "type": "u32"
                },
                {
                    "name": "getLotteryFeeIstaking",
                    "type": "u32"
                }
            ]
        },
        {
            "name": "updateFee",
            "accounts": [
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "config",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "depositFeeAdmin",
                    "type": "u32"
                },
                {
                    "name": "depositFeeLpool",
                    "type": "u32"
                },
                {
                    "name": "depositFeeIstaking",
                    "type": "u32"
                },
                {
                    "name": "getLotteryFeeAdmin",
                    "type": "u32"
                },
                {
                    "name": "getLotteryFeeLpool",
                    "type": "u32"
                },
                {
                    "name": "getLotteryFeeIstaking",
                    "type": "u32"
                }
            ]
        },
        {
            "name": "addScore",
            "accounts": [
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "programAuthority",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "boardEntry",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "permission",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "bumpPermission",
                    "type": "u8"
                },
                {
                    "name": "bumpBoard",
                    "type": "u8"
                },
                {
                    "name": "programPubkey",
                    "type": "publicKey"
                },
                {
                    "name": "toAdd",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "harvestScore",
            "accounts": [
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "tokenMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "userTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vaultOwnerPda",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vaultTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "config",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "boardEntry",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "associatedTokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "bumpBoard",
                    "type": "u8"
                },
                {
                    "name": "bumpAuth",
                    "type": "u8"
                },
                {
                    "name": "bumpConfig",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "initializeBoardEntry",
            "accounts": [
                {
                    "name": "user",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "nftMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "boardEntry",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "totalScore",
                    "type": "u64"
                },
                {
                    "name": "message",
                    "type": "string"
                }
            ]
        },
        {
            "name": "initializePermission",
            "accounts": [
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "programPubkey",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "permission",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "expiration",
                    "type": "u64"
                },
                {
                    "name": "add",
                    "type": "bool"
                },
                {
                    "name": "harvest",
                    "type": "bool"
                }
            ]
        },
        {
            "name": "intializeConfig",
            "accounts": [
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "tokenMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vaultOwnerPda",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vaultTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "config",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "associatedTokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "bumpAuth",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "topupConfig",
            "accounts": [
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "tokenMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "adminTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vaultOwnerPda",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vaultTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "config",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "associatedTokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "bumpAuth",
                    "type": "u8"
                },
                {
                    "name": "bumpConfig",
                    "type": "u8"
                },
                {
                    "name": "topupAmount",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "updateConnection",
            "accounts": [
                {
                    "name": "communityPool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "fractionMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "router",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "emergencyWithdrawByAdmin",
            "accounts": [
                {
                    "name": "safetyDepositBox",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftUserTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "storeNftTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "communityPool",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "communityPoolsAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                }
            ],
            "args": [
                {
                    "name": "bumpPoolsAuth",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "removeFromWhitelistByAdmin",
            "accounts": [
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "poolWhitelist",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "whitelistedAddress",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rent",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        }
    ],
    "accounts": [
        {
            "name": "BoardEntry",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "entryholder",
                        "type": "publicKey"
                    },
                    {
                        "name": "totalScore",
                        "type": "u64"
                    },
                    {
                        "name": "scoreToHarvest",
                        "type": "u64"
                    },
                    {
                        "name": "nftMint",
                        "type": "publicKey"
                    },
                    {
                        "name": "message",
                        "type": "string"
                    }
                ]
            }
        },
        {
            "name": "CommunityPool",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "tokenProgram",
                        "type": "publicKey"
                    },
                    {
                        "name": "fractionMint",
                        "type": "publicKey"
                    },
                    {
                        "name": "authority",
                        "type": "publicKey"
                    },
                    {
                        "name": "fractionsSupply",
                        "type": "u64"
                    },
                    {
                        "name": "createdAt",
                        "type": "u64"
                    },
                    {
                        "name": "tokenTypeCount",
                        "type": "u64"
                    },
                    {
                        "name": "state",
                        "type": {
                            "defined": "VaultState"
                        }
                    }
                ]
            }
        },
        {
            "name": "FeeConfig",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "communityPool",
                        "type": "publicKey"
                    },
                    {
                        "name": "depositFeeAdmin",
                        "type": "u64"
                    },
                    {
                        "name": "depositFeeLpool",
                        "type": "u64"
                    },
                    {
                        "name": "depositFeeIstaking",
                        "type": "u64"
                    },
                    {
                        "name": "getLotteryFeeAdmin",
                        "type": "u64"
                    },
                    {
                        "name": "getLotteryFeeLpool",
                        "type": "u64"
                    },
                    {
                        "name": "getLotteryFeeIstaking",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "PoolConfig",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "vaultOwnerPda",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenMint",
                        "type": "publicKey"
                    },
                    {
                        "name": "vaultTokenAccount",
                        "type": "publicKey"
                    },
                    {
                        "name": "poolVaultBalance",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "LeaderboardRewardAccount",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "communityPool",
                        "type": "publicKey"
                    },
                    {
                        "name": "depositReward",
                        "type": "u64"
                    },
                    {
                        "name": "withdrawReward",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "LotteryTicket",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "communityPool",
                        "type": "publicKey"
                    },
                    {
                        "name": "ticketHolder",
                        "type": "publicKey"
                    },
                    {
                        "name": "winningSafetyBox",
                        "type": "publicKey"
                    },
                    {
                        "name": "lotteryTicketState",
                        "type": {
                            "defined": "LotteryTicketState"
                        }
                    }
                ]
            }
        },
        {
            "name": "Permission",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "programPubkey",
                        "type": "publicKey"
                    },
                    {
                        "name": "expiration",
                        "type": "u64"
                    },
                    {
                        "name": "canAddScore",
                        "type": "bool"
                    },
                    {
                        "name": "canHarvestScore",
                        "type": "bool"
                    }
                ]
            }
        },
        {
            "name": "PoolWhitelist",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "communityPool",
                        "type": "publicKey"
                    },
                    {
                        "name": "whitelistedAddress",
                        "type": "publicKey"
                    },
                    {
                        "name": "whitelistType",
                        "type": {
                            "defined": "WhitelistType"
                        }
                    }
                ]
            }
        },
        {
            "name": "SafetyDepositBox",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "communityPool",
                        "type": "publicKey"
                    },
                    {
                        "name": "nftMint",
                        "type": "publicKey"
                    },
                    {
                        "name": "storeNftTokenAccount",
                        "type": "publicKey"
                    },
                    {
                        "name": "safetyBoxState",
                        "type": {
                            "defined": "SafetyBoxState"
                        }
                    }
                ]
            }
        }
    ],
    "types": [
        {
            "name": "VaultState",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Inactive"
                    },
                    {
                        "name": "Active"
                    },
                    {
                        "name": "Deactivated"
                    }
                ]
            }
        },
        {
            "name": "LotteryTicketState",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "ToBeRevealed"
                    },
                    {
                        "name": "Revealed"
                    },
                    {
                        "name": "Used"
                    }
                ]
            }
        },
        {
            "name": "WhitelistType",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "CreatorWhitelist"
                    },
                    {
                        "name": "SingleNFTWhitelist"
                    }
                ]
            }
        },
        {
            "name": "SafetyBoxState",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Locked"
                    },
                    {
                        "name": "Empty"
                    },
                    {
                        "name": "ToBeWithdrawn"
                    }
                ]
            }
        }
    ],
    "errors": [
        {
            "code": 6000,
            "name": "CommunityPoolAuthorityDoesntMatch",
            "msg": "Community pool authority doesn't match actual authority"
        },
        {
            "code": 6001,
            "name": "PoolIsAlreadyActivated",
            "msg": "Pool is already activated"
        },
        {
            "code": 6002,
            "name": "NotWhitelisted",
            "msg": "Nft or creator is not whitelisted"
        },
        {
            "code": 6003,
            "name": "WrongMetadata",
            "msg": "Wrong metadata"
        },
        {
            "code": 6004,
            "name": "InvalidAuthority",
            "msg": "Invalid Authority"
        },
        {
            "code": 6005,
            "name": "InvalidBoardEntry",
            "msg": "Invalid BoardEntry"
        }
    ]
}
