export type ZebecCardContract = {
    version: "0.1.0";
    name: "zebec_card_contract";
    instructions: [
        {
            name: "initCardConfigs";
            accounts: [
                {
                    name: "zicOwner";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "cardPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "usdcToken";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "InitCardConfigParams";
                    };
                }
            ];
        },
        {
            name: "deposit";
            accounts: [
                {
                    name: "user";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "userAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "tokenMint";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "userVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "userVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "vaultPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "revenueVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "revenueVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "feeMapPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "DepositParams";
                    };
                }
            ];
        },
        {
            name: "buyPrepaidDigitalCard";
            accounts: [
                {
                    name: "user";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "usdcToken";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "userVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "userVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "buyerPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "revenueVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "commissionVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "revenueVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "commissionVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "vaultPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "BuyPrepaidCardParams";
                    };
                }
            ];
        },
        {
            name: "buyCardDirect";
            accounts: [
                {
                    name: "user";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "usdcToken";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "userAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "buyerPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "revenueVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "revenueVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "vaultPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "feeMapPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "BuyCardDirectParams";
                    };
                }
            ];
        },
        {
            name: "generateYield";
            accounts: [
                {
                    name: "user";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "userVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "userVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "flexlendUserAccount";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "flexlendUserAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "vaultPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "reserveAdmin";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "promotionReserve";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "tokenMint";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "flexlendProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "amount";
                    type: "u64";
                }
            ];
        },
        {
            name: "withdrawYield";
            accounts: [
                {
                    name: "user";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "userVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "userVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "flexlendUserAccount";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "reserveAdmin";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "promotionReserve";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "flexlendUserAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "vaultPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "tokenMint";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "flexlendProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "amount";
                    type: "u64";
                },
                {
                    name: "withdrawAll";
                    type: "bool";
                }
            ];
        },
        {
            name: "withdraw";
            accounts: [
                {
                    name: "user";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "userAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "tokenMint";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "userVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "userVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "vaultPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "amount";
                    type: "u64";
                }
            ];
        },
        {
            name: "setCardConfigs";
            accounts: [
                {
                    name: "zicOwner";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "cardPda";
                    isMut: true;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "SetCardConfigParams";
                    };
                }
            ];
        },
        {
            name: "setCustomFees";
            accounts: [
                {
                    name: "zicOwner";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "feeMapPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        vec: {
                            defined: "Fees";
                        };
                    };
                }
            ];
        },
        {
            name: "deleteCustomFees";
            accounts: [
                {
                    name: "zicOwner";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "feeMapPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        vec: "publicKey";
                    };
                }
            ];
        },
        {
            name: "initBotConfig";
            accounts: [
                {
                    name: "zicOwner";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "cardBotConfig";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "InitBotConfigParams";
                    };
                }
            ];
        },
        {
            name: "buyCardBot";
            accounts: [
                {
                    name: "botAdmin";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "usdcToken";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "userCustody";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "userCustodyAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardBotConfig";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "revenueVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "revenueVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "feeMapPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "BuyCardBotParams";
                    };
                }
            ];
        },
        {
            name: "initBotPda";
            accounts: [
                {
                    name: "botAdmin";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "userCustody";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "userCustodyAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardBotConfig";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "usdcToken";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "InitBotPdaParams";
                    };
                }
            ];
        },
        {
            name: "setBotAdmin";
            accounts: [
                {
                    name: "zicOwner";
                    isMut: false;
                    isSigner: true;
                },
                {
                    name: "cardPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardBotConfig";
                    isMut: true;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "newAdmin";
                    type: "publicKey";
                }
            ];
        },
        {
            name: "initOnRampConfig";
            accounts: [
                {
                    name: "zicOwner";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "onRampConfig";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardPda";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "InitOnRampParams";
                    };
                }
            ];
        },
        {
            name: "initOnRampPda";
            accounts: [
                {
                    name: "admin";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "userCustody";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "onRampConfig";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "userCustodyAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "zbcnToken";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "InitOnRampPdaParams";
                    };
                }
            ];
        },
        {
            name: "setOnRampAdmin";
            accounts: [
                {
                    name: "zicOwner";
                    isMut: false;
                    isSigner: true;
                },
                {
                    name: "cardPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "onRampConfig";
                    isMut: true;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "newAdmin";
                    type: "publicKey";
                }
            ];
        },
        {
            name: "transferZbcn";
            accounts: [
                {
                    name: "admin";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "from";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "fromAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "to";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "toAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "onRampConfig";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "zbcnToken";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "TransferZbcnParams";
                    };
                }
            ];
        },
        {
            name: "initProposalConfigs";
            accounts: [
                {
                    name: "zicOwner";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "proposalConfig";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "cardPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "InitProposalConfigParams";
                    };
                }
            ];
        },
        {
            name: "initProposal";
            accounts: [
                {
                    name: "creator";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "creatorAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "proposalConfig";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "proposal";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "proposalVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "proposalVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "zbcnToken";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "associatedTokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "InitProposalParams";
                    };
                }
            ];
        },
        {
            name: "vote";
            accounts: [
                {
                    name: "voter";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "voterAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "voterPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "proposal";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "proposalVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "proposalVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "proposalConfig";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "creator";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "zbcnToken";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "systemProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [
                {
                    name: "params";
                    type: {
                        defined: "VoteParams";
                    };
                }
            ];
        },
        {
            name: "withdrawVote";
            accounts: [
                {
                    name: "voter";
                    isMut: true;
                    isSigner: true;
                },
                {
                    name: "creator";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "proposalConfig";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "voterAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "voterPda";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "proposalVault";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "proposalVaultAta";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "proposal";
                    isMut: true;
                    isSigner: false;
                },
                {
                    name: "zbcnToken";
                    isMut: false;
                    isSigner: false;
                },
                {
                    name: "tokenProgram";
                    isMut: false;
                    isSigner: false;
                }
            ];
            args: [];
        }
    ];
    accounts: [
        {
            name: "cardBot";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "botAdmin";
                        type: "publicKey";
                    }
                ];
            };
        },
        {
            name: "cardCustodyData";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "userId";
                        type: "string";
                    },
                    {
                        name: "totalBoughtPerDay";
                        type: "u64";
                    },
                    {
                        name: "dateTimeInUnix";
                        type: "u64";
                    }
                ];
            };
        },
        {
            name: "card";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "index";
                        type: "u64";
                    },
                    {
                        name: "zicOwner";
                        type: "publicKey";
                    },
                    {
                        name: "nativeFee";
                        type: "u64";
                    },
                    {
                        name: "nonNativeFee";
                        type: "u64";
                    },
                    {
                        name: "revenueFee";
                        type: "u64";
                    },
                    {
                        name: "usdcMint";
                        type: "publicKey";
                    },
                    {
                        name: "revenueVault";
                        type: "publicKey";
                    },
                    {
                        name: "commissionVault";
                        type: "publicKey";
                    },
                    {
                        name: "cardVault";
                        type: "publicKey";
                    },
                    {
                        name: "totalBought";
                        type: "u64";
                    },
                    {
                        name: "dailyCardBuyLimit";
                        type: "u64";
                    },
                    {
                        name: "providerConfig";
                        type: {
                            defined: "ProviderConfig";
                        };
                    }
                ];
            };
        },
        {
            name: "customFeeMap";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "feeMap";
                        type: {
                            vec: {
                                defined: "Fees";
                            };
                        };
                    }
                ];
            };
        },
        {
            name: "onRamp";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "admin";
                        type: "publicKey";
                    },
                    {
                        name: "zbcnToken";
                        type: "publicKey";
                    }
                ];
            };
        },
        {
            name: "onRampCustody";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "userId";
                        type: "string";
                    }
                ];
            };
        },
        {
            name: "prepaidCardBuyer";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "index";
                        type: "u64";
                    },
                    {
                        name: "buyerAddress";
                        type: "publicKey";
                    },
                    {
                        name: "amount";
                        type: "u64";
                    },
                    {
                        name: "purchaseAt";
                        type: "i64";
                    }
                ];
            };
        },
        {
            name: "proposalConfigs";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "stakingToken";
                        type: "publicKey";
                    },
                    {
                        name: "creatorStakingCap";
                        type: "u64";
                    },
                    {
                        name: "votersStakingCap";
                        type: "u64";
                    }
                ];
            };
        },
        {
            name: "proposal";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "creator";
                        type: "publicKey";
                    },
                    {
                        name: "name";
                        type: "string";
                    },
                    {
                        name: "startTime";
                        type: "i64";
                    },
                    {
                        name: "endTime";
                        type: "i64";
                    },
                    {
                        name: "totalVotes";
                        type: "u64";
                    }
                ];
            };
        },
        {
            name: "vault";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "userAddress";
                        type: "publicKey";
                    },
                    {
                        name: "totalBoughtPerDay";
                        type: "u64";
                    },
                    {
                        name: "dateTimeInUnix";
                        type: "u64";
                    }
                ];
            };
        },
        {
            name: "voter";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "voterAddress";
                        type: "publicKey";
                    },
                    {
                        name: "proposalAddress";
                        type: "publicKey";
                    },
                    {
                        name: "votingAmount";
                        type: "u64";
                    },
                    {
                        name: "voteStatus";
                        type: "bool";
                    },
                    {
                        name: "voterFlag";
                        type: "bool";
                    },
                    {
                        name: "isWithdrawn";
                        type: "bool";
                    }
                ];
            };
        }
    ];
    types: [
        {
            name: "BuyCardBotParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "userId";
                        type: "string";
                    },
                    {
                        name: "amount";
                        type: "u64";
                    },
                    {
                        name: "cardType";
                        type: "string";
                    },
                    {
                        name: "sourceTokenAddress";
                        type: "publicKey";
                    }
                ];
            };
        },
        {
            name: "InitBotConfigParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "botAdmin";
                        type: "publicKey";
                    }
                ];
            };
        },
        {
            name: "InitBotPdaParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "userId";
                        type: "string";
                    }
                ];
            };
        },
        {
            name: "InitProposalConfigParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "stakingToken";
                        type: "publicKey";
                    },
                    {
                        name: "creatorStakingCap";
                        type: "u64";
                    },
                    {
                        name: "votersStakingCap";
                        type: "u64";
                    }
                ];
            };
        },
        {
            name: "InitProposalParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "name";
                        type: "string";
                    },
                    {
                        name: "votingStartTime";
                        type: "i64";
                    },
                    {
                        name: "votingEndTime";
                        type: "i64";
                    }
                ];
            };
        },
        {
            name: "VoteParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "voteStatus";
                        type: "bool";
                    },
                    {
                        name: "votingAmount";
                        type: "u64";
                    }
                ];
            };
        },
        {
            name: "InitOnRampParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "admin";
                        type: "publicKey";
                    },
                    {
                        name: "zbcnToken";
                        type: "publicKey";
                    }
                ];
            };
        },
        {
            name: "InitOnRampPdaParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "userId";
                        type: "string";
                    }
                ];
            };
        },
        {
            name: "TransferZbcnParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "amount";
                        type: "u64";
                    },
                    {
                        name: "userId";
                        type: "string";
                    }
                ];
            };
        },
        {
            name: "BuyCardDirectParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "index";
                        type: "u64";
                    },
                    {
                        name: "amount";
                        type: "u64";
                    },
                    {
                        name: "cardType";
                        type: "string";
                    },
                    {
                        name: "sourceTokenAddress";
                        type: "publicKey";
                    }
                ];
            };
        },
        {
            name: "BuyPrepaidCardParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "index";
                        type: "u64";
                    },
                    {
                        name: "amount";
                        type: "u64";
                    },
                    {
                        name: "cardType";
                        type: "string";
                    }
                ];
            };
        },
        {
            name: "DepositParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "amount";
                        type: "u64";
                    },
                    {
                        name: "sourceTokenAddress";
                        type: "publicKey";
                    }
                ];
            };
        },
        {
            name: "InitCardConfigParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "nativeFee";
                        type: "u64";
                    },
                    {
                        name: "nonNativeFee";
                        type: "u64";
                    },
                    {
                        name: "revenueFee";
                        type: "u64";
                    },
                    {
                        name: "cardVault";
                        type: "publicKey";
                    },
                    {
                        name: "revenueVault";
                        type: "publicKey";
                    },
                    {
                        name: "commissionVault";
                        type: "publicKey";
                    },
                    {
                        name: "minCardAmount";
                        type: "u64";
                    },
                    {
                        name: "maxCardAmount";
                        type: "u64";
                    },
                    {
                        name: "dailyCardBuyLimit";
                        type: "u64";
                    },
                    {
                        name: "feeTier";
                        type: {
                            vec: {
                                defined: "FeeTier";
                            };
                        };
                    }
                ];
            };
        },
        {
            name: "SetCardConfigParams";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "nativeFee";
                        type: "u64";
                    },
                    {
                        name: "nonNativeFee";
                        type: "u64";
                    },
                    {
                        name: "revenueFee";
                        type: "u64";
                    },
                    {
                        name: "cardVault";
                        type: "publicKey";
                    },
                    {
                        name: "revenueVault";
                        type: "publicKey";
                    },
                    {
                        name: "commissionVault";
                        type: "publicKey";
                    },
                    {
                        name: "zicOwner";
                        type: "publicKey";
                    },
                    {
                        name: "minCardAmount";
                        type: "u64";
                    },
                    {
                        name: "maxCardAmount";
                        type: "u64";
                    },
                    {
                        name: "dailyCardBuyLimit";
                        type: "u64";
                    },
                    {
                        name: "feeTier";
                        type: {
                            vec: {
                                defined: "FeeTier";
                            };
                        };
                    }
                ];
            };
        },
        {
            name: "ProviderConfig";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "minCardAmount";
                        type: "u64";
                    },
                    {
                        name: "maxCardAmount";
                        type: "u64";
                    },
                    {
                        name: "feeTiers";
                        type: {
                            defined: "FeeMap";
                        };
                    }
                ];
            };
        },
        {
            name: "FeeTier";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "minAmount";
                        type: "u64";
                    },
                    {
                        name: "maxAmount";
                        type: "u64";
                    },
                    {
                        name: "fee";
                        type: "u64";
                    }
                ];
            };
        },
        {
            name: "FeeMap";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "tiers";
                        type: {
                            vec: {
                                defined: "FeeTier";
                            };
                        };
                    }
                ];
            };
        },
        {
            name: "Fees";
            type: {
                kind: "struct";
                fields: [
                    {
                        name: "tokenAddress";
                        type: "publicKey";
                    },
                    {
                        name: "fee";
                        type: "u64";
                    }
                ];
            };
        }
    ];
    events: [
        {
            name: "CardBotPurchase";
            fields: [
                {
                    name: "userId";
                    type: "string";
                    index: false;
                },
                {
                    name: "from";
                    type: "publicKey";
                    index: false;
                },
                {
                    name: "to";
                    type: "publicKey";
                    index: false;
                },
                {
                    name: "amount";
                    type: "u64";
                    index: false;
                }
            ];
        },
        {
            name: "PrepaidCardDirectPurshase";
            fields: [
                {
                    name: "index";
                    type: "u64";
                    index: false;
                },
                {
                    name: "from";
                    type: "publicKey";
                    index: false;
                },
                {
                    name: "to";
                    type: "publicKey";
                    index: false;
                },
                {
                    name: "amount";
                    type: "u64";
                    index: false;
                }
            ];
        },
        {
            name: "PrepaidDigitalCardPurshase";
            fields: [
                {
                    name: "index";
                    type: "u64";
                    index: false;
                },
                {
                    name: "from";
                    type: "publicKey";
                    index: false;
                },
                {
                    name: "to";
                    type: "publicKey";
                    index: false;
                },
                {
                    name: "amount";
                    type: "u64";
                    index: false;
                }
            ];
        },
        {
            name: "DepositToUserPda";
            fields: [
                {
                    name: "from";
                    type: "publicKey";
                    index: false;
                },
                {
                    name: "to";
                    type: "publicKey";
                    index: false;
                },
                {
                    name: "amount";
                    type: "u64";
                    index: false;
                }
            ];
        }
    ];
    errors: [
        {
            code: 6000;
            name: "InvalidIndex";
            msg: "The provided index is invalid.";
        },
        {
            code: 6001;
            name: "InvalidMint";
            msg: "The provided token is invalid.";
        },
        {
            code: 6002;
            name: "InvalidOwner";
            msg: "The provided owner is invalid.";
        },
        {
            code: 6003;
            name: "InvalidUser";
            msg: "The provided user is invalid.";
        },
        {
            code: 6004;
            name: "InvalidAmount";
            msg: "The amount entered is invalid.";
        },
        {
            code: 6005;
            name: "NotEnoughBalance";
            msg: "You do not have enough balance.";
        },
        {
            code: 6006;
            name: "AmountNotWithinCardBuyRange";
            msg: "Amount falls off the min-max card buy range.";
        },
        {
            code: 6007;
            name: "DailyBuyLimitExceeded";
            msg: "BuyCard Limit Exceeded for the day.";
        },
        {
            code: 6008;
            name: "VotingCapExceeded";
            msg: "Voting amount has exceeded the cap.";
        },
        {
            code: 6009;
            name: "AlreadyVoted";
            msg: "Voter has already voted.";
        },
        {
            code: 6010;
            name: "AlreadyWithdrawn";
            msg: "Voter has already withdrawn.";
        },
        {
            code: 6011;
            name: "InvalidTime";
            msg: "Invalid time";
        }
    ];
};
export declare const IDL: ZebecCardContract;
