UNPKG

hadeswap-sdk-public

Version:

HadeSwap SDK for interacting with protocol

3,651 lines 106 kB
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IDL = void 0;
exports.IDL = {
    version: '0.1.0',
    name: 'hadeswap',
    instructions: [
        {
            name: 'initializePair',
            accounts: [
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'hadoMarket',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'pairAuthorityAdapterProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'partialAdapterProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'partialAssetReceiver',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'feeSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'feeTokenAccount',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'fundsTokenAccount',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'assetReceiver',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'assetReceiverTokenAccount',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'nftsOwner',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'bumps',
                    type: {
                        defined: 'PairBumps',
                    },
                },
                {
                    name: 'params',
                    type: {
                        defined: 'PairParams',
                    },
                },
                {
                    name: 'bondingCurveType',
                    type: {
                        defined: 'BondingCurveType',
                    },
                },
                {
                    name: 'pairType',
                    type: {
                        defined: 'PairType',
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'createClassicAuthorityAdapter',
            accounts: [
                {
                    name: 'authorityAdapter',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'depositSolToPair',
            accounts: [
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'amountOfOrders',
                    type: 'u64',
                },
            ],
            returns: undefined,
        },
        {
            name: 'validateNft',
            accounts: [
                {
                    name: 'nftValidationAdapter',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'validationWhitelist',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'depositNftToPair',
            accounts: [
                {
                    name: 'nftPairBox',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'nftValidationAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'nftsOwner',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'nftMint',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftUserTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'vaultTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'tokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'associatedTokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataInfo',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'editionInfo',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'ownerTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'destTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'instructions',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'authorizationRulesProgram',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'proof',
                    type: {
                        vec: {
                            array: ['u8', 32],
                        },
                    },
                },
                {
                    name: 'authorizationData',
                    type: {
                        option: {
                            defined: 'AuthorizationDataLocal',
                        },
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'initializeHadoMarket',
            accounts: [
                {
                    name: 'hadoMarket',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'validationAdapterProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'pairTokenMint',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'finishHadoMarket',
            accounts: [
                {
                    name: 'hadoMarket',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'addClassicWhitelistToMarket',
            accounts: [
                {
                    name: 'validationWhitelist',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'hadoMarket',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'whitelistedAddress',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'whitelistType',
                    type: {
                        defined: 'NftValidationWhitelistType',
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'depositLiquidityToPair',
            accounts: [
                {
                    name: 'nftPairBox',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'nftValidationAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftsOwner',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'nftMint',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftUserTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'vaultTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'tokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'associatedTokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataInfo',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'editionInfo',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'ownerTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'destTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'instructions',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'authorizationRulesProgram',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'proof',
                    type: {
                        vec: {
                            array: ['u8', 32],
                        },
                    },
                },
                {
                    name: 'authorizationData',
                    type: {
                        option: {
                            defined: 'AuthorizationDataLocal',
                        },
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'putPairOnMarket',
            accounts: [
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'buyNftFromPair',
            accounts: [
                {
                    name: 'nftPairBox',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftsOwner',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'feeSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftMint',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'vaultNftTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftUserTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'assetReceiver',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'editionInfo',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataInfo',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'ownerTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'destTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'instructions',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'authorizationRulesProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'protocolFeeReceiver',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'tokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'associatedTokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataProgram',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'maxAmountToPay',
                    type: 'u64',
                },
                {
                    name: 'skipFailed',
                    type: 'bool',
                },
                {
                    name: 'authorizationData',
                    type: {
                        option: {
                            defined: 'AuthorizationDataLocal',
                        },
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'sellNftToTokenToNftPair',
            accounts: [
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftValidationAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'nftMint',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'assetReceiverTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftUserTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'assetReceiver',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'protocolFeeReceiver',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'tokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'associatedTokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataInfo',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'editionInfo',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'ownerTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'destTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'instructions',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'authorizationRulesProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataProgram',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'minAmountToGet',
                    type: 'u64',
                },
                {
                    name: 'skipFailed',
                    type: 'bool',
                },
                {
                    name: 'proof',
                    type: {
                        vec: {
                            array: ['u8', 32],
                        },
                    },
                },
                {
                    name: 'authorizationData',
                    type: {
                        option: {
                            defined: 'AuthorizationDataLocal',
                        },
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'sellNftToLiquidityPair',
            accounts: [
                {
                    name: 'nftPairBox',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftValidationAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'nftMint',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftsOwner',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'feeSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'newVaultTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftUserTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'ownerTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'destTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'instructions',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'authorizationRulesProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'protocolFeeReceiver',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'tokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'associatedTokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataInfo',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'editionInfo',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataProgram',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'minAmountToGet',
                    type: 'u64',
                },
                {
                    name: 'skipFailed',
                    type: 'bool',
                },
                {
                    name: 'proof',
                    type: {
                        vec: {
                            array: ['u8', 32],
                        },
                    },
                },
                {
                    name: 'authorizationData',
                    type: {
                        option: {
                            defined: 'AuthorizationDataLocal',
                        },
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'withdrawSolFromPair',
            accounts: [
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'quantityOfOrders',
                    type: 'u64',
                },
            ],
            returns: undefined,
        },
        {
            name: 'withdrawNftFromPair',
            accounts: [
                {
                    name: 'nftPairBox',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'nftsOwner',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'nftMint',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'vaultNftTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftUserTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'editionInfo',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataInfo',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'ownerTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'destTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'instructions',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'authorizationRulesProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'tokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'associatedTokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataProgram',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'authorizationData',
                    type: {
                        option: {
                            defined: 'AuthorizationDataLocal',
                        },
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'withdrawLiquidityFromBalancedPair',
            accounts: [
                {
                    name: 'nftPairBox',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'feeSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftsOwner',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'nftMint',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'vaultNftTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'editionInfo',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataInfo',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'ownerTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'destTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'instructions',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'authorizationRulesProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'nftUserTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'tokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'associatedTokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataProgram',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'authorizationData',
                    type: {
                        option: {
                            defined: 'AuthorizationDataLocal',
                        },
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'modifyPair',
            accounts: [
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'params',
                    type: {
                        defined: 'PairParams',
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'withdrawLiquidityFromBuyOrdersPair',
            accounts: [
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'feeSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'withdrawLiquidityFromSellOrdersPair',
            accounts: [
                {
                    name: 'nftPairBoxFirst',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftMintFirst',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'vaultNftTokenAccountFirst',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftUserTokenAccountFirst',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftPairBoxSecond',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'editionInfoFirst',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataInfoFirst',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'ownerTokenRecordFirst',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'destTokenRecordFirst',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'editionInfoSecond',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataInfoSecond',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'ownerTokenRecordSecond',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'destTokenRecordSecond',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'instructions',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'authorizationRulesProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'nftMintSecond',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'vaultNftTokenAccountSecond',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftUserTokenAccountSecond',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'nftsOwner',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'feeSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'tokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'associatedTokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataProgram',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'withdrawLiquidityOrderVirtualFees',
            accounts: [
                {
                    name: 'liquidityProvisionOrder',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'feeSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'closeVirtualNftSwapPair',
            accounts: [
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'feeSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'withdrawVirtualFees',
            accounts: [
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'feeSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'closeNftPairBox',
            accounts: [
                {
                    name: 'nftPairBox',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'admin',
                    isMut: true,
                    isSigner: true,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'closeLiquidityProvisionOrder',
            accounts: [
                {
                    name: 'liquidityProvisionOrder',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'admin',
                    isMut: true,
                    isSigner: true,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'customValidateNft',
            accounts: [
                {
                    name: 'nftValidationAdapter',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'hadoMarket',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'pair',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'whitelistedAddress',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'adapterProgramSigner',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'duration',
                    type: 'u64',
                },
                {
                    name: 'nftValidationWhitelistType',
                    type: {
                        defined: 'NftValidationWhitelistType',
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'modifyHadoMarket',
            accounts: [
                {
                    name: 'hadoMarket',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'validationAdapterProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'addMerkleTreeWhitelist',
            accounts: [
                {
                    name: 'nftValidationAdapter',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'hadoMarket',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'root',
                    type: {
                        array: ['u8', 32],
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'closeNftValidationAdapter',
            accounts: [
                {
                    name: 'nftValidationAdapter',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'admin',
                    isMut: true,
                    isSigner: true,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'closeClassicWhitelist',
            accounts: [
                {
                    name: 'validationWhitelist',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'admin',
                    isMut: true,
                    isSigner: true,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'closeNftValidationAdapterV2',
            accounts: [
                {
                    name: 'nftValidationAdapterV2',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'admin',
                    isMut: true,
                    isSigner: true,
                },
            ],
            args: [],
            returns: undefined,
        },
        {
            name: 'withdrawOutstandingTokensByAdmin',
            accounts: [
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'nftsOwner',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'nftMint',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'vaultNftTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftUserTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'tokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'editionInfo',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataInfo',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'ownerTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'destTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'instructions',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'authorizationRulesProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'associatedTokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'authorizationData',
                    type: {
                        option: {
                            defined: 'AuthorizationDataLocal',
                        },
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'depositLiquidityOnlyBuyOrders',
            accounts: [
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'quantityOfOrders',
                    type: 'u64',
                },
            ],
            returns: undefined,
        },
        {
            name: 'withdrawLiquidityOnlyBuyOrders',
            accounts: [
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'feeSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'quantityOfOrders',
                    type: 'u64',
                },
            ],
            returns: undefined,
        },
        {
            name: 'depositLiquiditySingleSellToPair',
            accounts: [
                {
                    name: 'nftPairBox',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'nftValidationAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftsOwner',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'nftMint',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftUserTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'vaultTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'tokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'associatedTokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'ownerTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'destTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'instructions',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'authorizationRulesProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataInfo',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'editionInfo',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'proof',
                    type: {
                        vec: {
                            array: ['u8', 32],
                        },
                    },
                },
                {
                    name: 'authorizationData',
                    type: {
                        option: {
                            defined: 'AuthorizationDataLocal',
                        },
                    },
                },
            ],
            returns: undefined,
        },
        {
            name: 'withdrawLiquiditySingleSellOrder',
            accounts: [
                {
                    name: 'nftPairBox',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftMint',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'vaultNftTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'nftUserTokenAccount',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'authorityAdapter',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'pair',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'user',
                    isMut: true,
                    isSigner: true,
                },
                {
                    name: 'nftsOwner',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'feeSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'fundsSolVault',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'editionInfo',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataInfo',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'ownerTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'destTokenRecord',
                    isMut: true,
                    isSigner: false,
                },
                {
                    name: 'instructions',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'authorizationRulesProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'tokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'associatedTokenProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'systemProgram',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'rent',
                    isMut: false,
                    isSigner: false,
                },
                {
                    name: 'metadataProgram',
                    isMut: false,
                    isSigner: false,
                },
            ],
            args: [
                {
                    name: 'authorizationData',
                    type: {
                        option: {
                            defined: 'AuthorizationDataLocal',
                        },
                    },
                },
            ],
            returns: undefined,
        },
    ],
    accounts: [
        {
            name: 'adapterWhitelist',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'whitelistedAdapterProgram',
                        type: 'publicKey',
                    },
                    {
                        name: 'adapterType',
                        type: {
                            defined: 'AdapterType',
                        },
                    },
                ],
            },
        },
        {
            name: 'authorityAdapter',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'pair',
                        type: 'publicKey',
                    },
                    {
                        name: 'authorityAdapterProgram',
                        type: 'publicKey',
                    },
                    {
                        name: 'authorityOwner',
                        type: 'publicKey',
                    },
                    {
                        name: 'authorityType',
                        type: {
                            defined: 'AuthorityAdapterType',
                        },
                    },
                    {
                        name: 'expiringAt',
                        type: 'u64',
                    },
                    {
                        name: 'authorityState',
                        type: {
                            defined: 'AuthorityState',
                        },
                    },
                ],
            },
        },
        {
            name: 'classicValidationWhitelist',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'hadoMarket',
                        type: 'publicKey',
                    },
                    {
                        name: 'pair',
                        type: 'publicKey',
                    },
                    {
                        name: 'whitelistType',
                        type: {
                            defined: 'NftValidationWhitelistType',
                        },
                    },
                    {
                        name: 'whitelistedAddress',
                        type: 'publicKey',
                    },
                ],
            },
        },
        {
            name: 'hadoMarket',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'marketAuthority',
                        type: 'publicKey',
                    },
                    {
                        name: 'marketState',
                        type: {
                            defined: 'MarketState',
                        },
                    },
                    {
                        name: 'marketTrustType',
                        type: {
                            defined: 'MarketTrustType',
                        },
                    },
                    {
                        name: 'pairValidationType',
                        type: {
                            defined: 'PairValidationType',
                        },
                    },
                    {
                        name: 'validationAdapterProgram',
                        type: 'publicKey',
                    },
                    {
                        name: 'pairTokenType',
                        type: {
                            defined: 'PairTokenType',
                        },
                    },
                    {
                        name: 'pairTokenMint',
                        type: 'publicKey',
                    },
                ],
            },
        },
        {
            name: 'liquidityProvisionOrder',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'nftSwapPair',
                        type: 'publicKey',
                    },
                    {
                        name: 'lpOrderState',
                        type: {
                            defined: 'LpOrderState',
                        },
                    },
                    {
                        name: 'orderACounter',
                        type: 'i64',
                    },
                    {
                        name: 'orderBCounter',
                        type: 'i64',
                    },
                    {
                        name: 'accumulatedFee',
                        type: 'u64',
                    },
                    {
                        name: 'lpTokenMint',
                        type: 'publicKey',
                    },
                    {
                        name: 'liquidityFeeBump',
                        type: 'u8',
                    },
                    {
                        name: 'createdAt',
                        type: 'u64',
                    },
                ],
            },
        },
        {
            name: 'nftPairBox',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'pair',
                        type: 'publicKey',
                    },
                    {
                        name: 'nftMint',
                        type: 'publicKey',
                    },
                    {
                        name: 'nftMetadata',
                        type: 'publicKey',
                    },
                    {
                        name: 'nftBoxType',
                        type: {
                            defined: 'NftBoxType',
                        },
                    },
                    {
                        name: 'vaultTokenAccount',
                        type: 'publicKey',
                    },
                    {
                        name: 'status',
                        type: {
                            defined: 'NftBoxState',
                        },
                    },
                ],
            },
        },
        {
            name: 'nftSwapPair',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'hadoMarket',
                        type: 'publicKey',
                    },
                    {
                        name: 'pairType',
                        type: {
                            defined: 'PairType',
                        },
                    },
                    {
                        name: 'pairState',
                        type: {
                            defined: 'PairState',
                        },
                    },
                    {
                        name: 'pairAuthorityType',
                        type: {
                            defined: 'PairAuthorityType',
                        },
                    },
                    {
                        name: 'pairAuthorityAdapterProgram',
                        type: 'publicKey',
                    },
                    {
                        name: 'lpTokensMint',
                        type: 'publicKey',
                    },
                    {
                        name: 'lpTokensInCirculation',
                        type: 'u64',
                    },
                    {
                        name: 'bondingCurve',
                        type: {
                            defined: 'BondingCurve',
                        },
                    },
                    {
                        name: 'baseSpotPrice',
                        type: 'u64',
                    },
                    {
                        name: 'fee',
                        type: 'u64',
                    },
                    {
                        name: 'mathCounter',
                        type: 'i64',
                    },
                    {
                        name: 'currentSpotPrice',
                        type: 'u64',
                    },
                    {
                        name: 'feeTokenAccount',
                        type: 'publicKey',
                    },
                    {
                        name: 'feeVaultSeed',
                        type: 'u8',
                    },
                    {
                        name: 'solOrTokenFeeAmount',
                        type: 'u64',
                    },
                    {
                        name: 'fundsTokenAccount',
                        type: 'publicKey',
                    },
                    {
                        name: 'fundsSolVaultSeed',
                        type: 'u8',
                    },
                    {
                        name: 'fundsSolOrTokenBalance',
                        type: 'u64',
                    },
                    {
                        name: 'initialFundsSolOrTokenBalance',
                        type: 'u64',
                    },
                    {
                        name: 'buyOrdersQuantity',
                        type: 'u64',
                    },
                    {
                        name: 'nftsSeed',
                        type: 'u8',
                    },
                    {
                        name: 'nftsCount',
                        type: 'u64',
                    },
                    {
                        name: 'lastTransactedAt',
                        type: 'u64',
                    },
                    {
                        name: 'concentrationIndex',
                        type: 'u64',
                    },
                    {
                        name: 'assetReceiver',
                        type: 'publicKey',
                    },
                ],
            },
        },
        {
            name: 'nftValidationAdapterV2',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'hadoMarket',
                        type: 'publicKey',
                    },
                    {
                        name: 'scopeType',
                        type: {
                            defined: 'ScopeType',
                        },
                    },
                    {
                        name: 'pair',
                        type: 'publicKey',
                    },
                    {
                        name: 'nftValidationProgram',
                        type: 'publicKey',
                    },
                    {
                        name: 'nftValidationWhitelistType',
                        type: {
                            defined: 'NftValidationWhitelistTypeV2',
                        },
                    },
                    {
                        name: 'whitelistedAddress',
                        type: 'publicKey',
                    },
                    {
                        name: 'root',
                        type: {
                            array: ['u8', 32],
                        },
                    },
                    {
                        name: 'nftValidationDurationType',
                        type: {
                            defined: 'NftValidationDurationType',
                        },
                    },
                    {
                        name: 'validUntil',
                        type: 'u64',
                    },
                ],
            },
        },
        {
            name: 'nftValidationAdapter',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'hadoMarket',
                        type: 'publicKey',
                    },
                    {
                        name: 'scopeType',
                        type: {
                            defined: 'ScopeType',
                        },
                    },
                    {
                        name: 'pair',
                        type: 'publicKey',
                    },
                    {
                        name: 'nftValidationProgram',
                        type: 'publicKey',
                    },
                    {
                        name: 'nftValidationWhitelistType',
                        type: {
                            defined: 'NftValidationWhitelistType',
                        },
                    },
                    {
                        name: 'whitelistedAddress',
                        type: 'publicKey',
                    },
                    {
                        name: 'nftValidationDurationType',
                        type: {
                            defined: 'NftValidationDurationType',
                        },
                    },
                    {
                        name: 'validUntil',
                        type: 'u64',
                    },
                ],
            },
        },
        {
            name: 'protocolAdminMultisig',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'protocolSettings',
                        type: 'publicKey',
                    },
                    {
                        name: 'admin',
                        type: 'publicKey',
                    },
                    {
                        name: 'weight',
                        type: 'u64',
                    },
                ],
            },
        },
        {
            name: 'protocolSettingsV1',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'protocolFee',
                        type: 'u64',
                    },
                    {
                        name: 'protocolFeeMultiplier',
                        type: 'u64',
                    },
                    {
                        name: 'maxFee',
                        type: 'u64',
                    },
                    {
                        name: 'protocolFeeReceiver',
                        type: 'publicKey',
                    },
                    {
                        name: 'adminThresholdAmountMultisig',
                        type: 'u64',
                    },
                ],
            },
        },
    ],
    types: [
        {
            name: 'PairParams',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'delta',
                        type: 'u64',
                    },
                    {
                        name: 'spotPrice',
                        type: 'u64',
                    },
                    {
                        name: 'fee',
                        type: 'u64',
                    },
                ],
            },
        },
        {
            name: 'PairBumps',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'fundsSolVaultSeed',
                        type: 'u8',
                    },
                    {
                        name: 'feeVaultSeed',
                        type: 'u8',
                    },
                    {
                        name: 'nftsSeed',
                        type: 'u8',
                    },
                ],
            },
        },
        {
            name: 'BondingCurve',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'delta',
                        type: 'u64',
                    },
                    {
                        name: 'bondingType',
                        type: {
                            defined: 'BondingCurveType',
                        },
                    },
                ],
            },
        },
        {
            name: 'AuthorizationDataLocal',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'payload',
                        type: {
                            vec: {
                                defined: 'TaggedPayload',
                            },
                        },
                    },
                ],
            },
        },
        {
            name: 'TaggedPayload',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'name',
                        type: 'string',
                    },
                    {
                        name: 'payload',
                        type: {
                            defined: 'PayloadTypeLocal',
                        },
                    },
                ],
            },
        },
        {
            name: 'SeedsVecLocal',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'seeds',
                        type: {
                            vec: 'bytes',
                        },
                    },
                ],
            },
        },
        {
            name: 'ProofInfoLocal',
            type: {
                kind: 'struct',
                fields: [
                    {
                        name: 'proof',
                        type: {
                            vec: {
                                array: ['u8', 32],
                            },
                        },
                    },
                ],
            },
        },
        {
            name: 'AdapterType',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Validation',
                    },
                    {
                        name: 'Authority',
                    },
                    {
                        name: 'Partial',
                    },
                ],
            },
        },
        {
            name: 'AuthorityAdapterType',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'OneTime',
                    },
                    {
                        name: 'Persistent',
                    },
                ],
            },
        },
        {
            name: 'AuthorityState',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Active',
                    },
                    {
                        name: 'Used',
                    },
                    {
                        name: 'Expired',
                    },
                    {
                        name: 'Revoked',
                    },
                ],
            },
        },
        {
            name: 'MarketTrustType',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Unverified',
                    },
                    {
                        name: 'Verified',
                    },
                ],
            },
        },
        {
            name: 'MarketState',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Initializing',
                    },
                    {
                        name: 'Available',
                    },
                ],
            },
        },
        {
            name: 'PairValidationType',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'ClassicValidation',
                    },
                    {
                        name: 'CustomValidation',
                    },
                ],
            },
        },
        {
            name: 'PairTokenType',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'NativeSol',
                    },
                    {
                        name: 'Spl',
                    },
                ],
            },
        },
        {
            name: 'LpOrderState',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Virtual',
                    },
                    {
                        name: 'Tokenized',
                    },
                    {
                        name: 'WithdrawnVirtual',
                    },
                    {
                        name: 'WithdrawnTokenized',
                    },
                ],
            },
        },
        {
            name: 'NftBoxState',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Closed',
                    },
                    {
                        name: 'Active',
                    },
                ],
            },
        },
        {
            name: 'NftBoxType',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Escrow',
                    },
                    {
                        name: 'Escrowless',
                    },
                ],
            },
        },
        {
            name: 'PairType',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'TokenForNft',
                    },
                    {
                        name: 'NftForToken',
                    },
                    {
                        name: 'LiquidityProvision',
                    },
                ],
            },
        },
        {
            name: 'PairState',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Initializing',
                    },
                    {
                        name: 'OnMarketVirtual',
                    },
                    {
                        name: 'OnMarketTokenized',
                    },
                    {
                        name: 'Frozen',
                    },
                ],
            },
        },
        {
            name: 'PairAuthorityType',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'ClassicAuthority',
                    },
                    {
                        name: 'CustomAuthority',
                    },
                ],
            },
        },
        {
            name: 'PartialSettings',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'None',
                    },
                    {
                        name: 'CustomPartial',
                    },
                ],
            },
        },
        {
            name: 'BondingCurveType',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Linear',
                    },
                    {
                        name: 'Exponential',
                    },
                    {
                        name: 'XYK',
                    },
                ],
            },
        },
        {
            name: 'NftValidationWhitelistTypeV2',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Creator',
                    },
                    {
                        name: 'Nft',
                    },
                    {
                        name: 'MerkleTree',
                    },
                ],
            },
        },
        {
            name: 'ScopeType',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Market',
                    },
                    {
                        name: 'Pair',
                    },
                ],
            },
        },
        {
            name: 'NftValidationDurationType',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Finite',
                    },
                    {
                        name: 'Infinite',
                    },
                ],
            },
        },
        {
            name: 'NftValidationWhitelistType',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Creator',
                    },
                    {
                        name: 'Nft',
                    },
                ],
            },
        },
        {
            name: 'PayloadTypeLocal',
            type: {
                kind: 'enum',
                variants: [
                    {
                        name: 'Pubkey',
                        fields: ['publicKey'],
                    },
                    {
                        name: 'Seeds',
                        fields: [
                            {
                                defined: 'SeedsVecLocal',
                            },
                        ],
                    },
                    {
                        name: 'MerkleProof',
                        fields: [
                            {
                                defined: 'ProofInfoLocal',
                            },
                        ],
                    },
                    {
                        name: 'Number',
                        fields: ['u64'],
                    },
                ],
            },
        },
    ],
    errors: [
        {
            code: 6000,
            name: 'MetadataDoesntExist',
            msg: 'MetadataDoesntExist',
        },
        {
            code: 6001,
            name: 'DerivedKeyInvalid',
            msg: 'DerivedKeyInvalid',
        },
        {
            code: 6002,
            name: 'InvalidCollectionDetails',
            msg: 'InvalidCollectionDetails',
        },
        {
            code: 6003,
            name: 'InvalidCollection',
            msg: 'InvalidCollection',
        },
        {
            code: 6004,
            name: 'InvalidCollectionMint',
            msg: 'InvalidCollectionMint',
        },
        {
            code: 6005,
            name: 'NftNotVerified',
            msg: 'NftNotVerified',
        },
        {
            code: 6006,
            name: 'InvalidOwner',
            msg: 'InvalidOwner',
        },
        {
            code: 6007,
            name: 'InvalidDelta',
            msg: 'InvalidDelta',
        },
        {
            code: 6008,
            name: 'InvalidFee',
            msg: 'InvalidFee',
        },
        {
            code: 6009,
            name: 'InvalidPairType',
            msg: 'InvalidPairType',
        },
        {
            code: 6010,
            name: 'NotEnoughInTokenAccount',
            msg: 'NotEnoughInTokenAccount',
        },
        {
            code: 6011,
            name: 'InvalidMint',
            msg: 'InvalidMint',
        },
        {
            code: 6012,
            name: 'InvalidSolVault',
            msg: 'InvalidSolVault',
        },
        {
            code: 6013,
            name: 'InvalidFundingAmount',
            msg: 'InvalidFundingAmount',
        },
        {
            code: 6014,
            name: 'NotEnoughLamports',
            msg: 'NotEnoughLamports',
        },
        {
            code: 6015,
            name: 'InvalidJpegOwner',
            msg: 'InvalidJpegOwner',
        },
        {
            code: 6016,
            name: 'InvalidTokenAccount',
            msg: 'InvalidTokenAccount',
        },
        {
            code: 6017,
            name: 'InvalidPayer',
            msg: 'InvalidPayer',
        },
        {
            code: 6018,
            name: 'ShouldBeActive',
            msg: 'ShouldBeActive',
        },
        {
            code: 6019,
            name: 'CantMakeZeroOrders',
            msg: "Can't make 0 orders",
        },
        {
            code: 6020,
            name: 'OnlyClassicAuthority',
            msg: 'OnlyClassicAuthority',
        },
        {
            code: 6021,
            name: 'NotValidAuthorityAdapter',
            msg: 'NotValidAuthorityAdapter',
        },
        {
            code: 6022,
            name: 'UserDoesntHaveAuthority',
            msg: 'UserDoesntHaveAuthority',
        },
        {
            code: 6023,
            name: 'WrongSeed',
            msg: 'WrongSeed',
        },
        {
            code: 6024,
            name: 'CanDepositSolOnlyToTokenToNft',
            msg: 'CanDepositSolOnlyToTokenToNft',
        },
        {
            code: 6025,
            name: 'MaxAmountOfOrdersSucceeded',
            msg: 'MaxAmountOfOrdersSucceeded',
        },
        {
            code: 6026,
            name: 'CanDepositNftOnlyToNftToToken',
            msg: 'CanDepositNftOnlyToNftToToken',
        },
        {
            code: 6027,
            name: 'TokenAccountDoesntContainNft',
            msg: 'TokenAccountDoesntContainNft',
        },
        {
            code: 6028,
            name: 'MarketAuthorityIncorrect',
            msg: 'MarketAuthorityIncorrect',
        },
        {
            code: 6029,
            name: 'CanAddWhitelistOnlyToInitializingMarket',
            msg: 'CanAddWhitelistOnlyToInitializingMarket',
        },
        {
            code: 6030,
            name: 'CanPutPairsOnlyToAvailableMarkets',
            msg: 'CanPutPairsOnlyToAvailableMarkets',
        },
        {
            code: 6031,
            name: 'PairAndNftValidationMarketDoesntMatch',
            msg: 'PairAndNftValidationMarketDoesntMatch',
        },
        {
            code: 6032,
            name: 'OnlyMarketScopeSupported',
            msg: 'OnlyMarketScopeSupported',
        },
        {
            code: 6033,
            name: 'NotWhitelistedNftForThisMarket',
            msg: 'NotWhitelistedNftForThisMarket',
        },
        {
            code: 6034,
            name: 'CanDepositOnlyToLiquidityProvision',
            msg: 'CanDepositOnlyToLiquidityProvision',
        },
        {
            code: 6035,
            name: 'NftBoxDoesntMatchPair',
            msg: 'NftBoxDoesntMatchPair',
        },
        {
            code: 6036,
            name: 'NftBoxShouldBeActive',
            msg: 'NftBoxShouldBeActive',
        },
        {
            code: 6037,
            name: 'NftBoxDoesntMatchMint',
            msg: 'NftBoxDoesntMatchMint',
        },
        {
            code: 6038,
            name: 'CantBuyNftFromTokenForNft',
            msg: 'CantBuyNftFromTokenForNft',
        },
        {
            code: 6039,
            name: 'OnlyTokenForNftIsEligibleForThisSell',
            msg: 'OnlyTokenForNftIsEligibleForThisSell',
        },
        {
            code: 6040,
            name: 'NoBuyOrdersOnThisPair',
            msg: 'NoBuyOrdersOnThisPair',
        },
        {
            code: 6041,
            name: 'OnlyLiquidityProvisionIsEligibleForThisSell',
            msg: 'OnlyLiquidityProvisionIsEligibleForThisSell',
        },
        {
            code: 6042,
            name: 'OnlyTokenForNftIsEligibleForThisWithdrawal',
            msg: 'OnlyTokenForNftIsEligibleForThisWithdrawal',
        },
        {
            code: 6043,
            name: 'OnlyNftForTokenIsEligibleForThisWithdrawal',
            msg: 'OnlyNftForTokenIsEligibleForThisWithdrawal',
        },
        {
            code: 6044,
            name: 'OnlyLiquidityProvisionIsEligibleForThisWithdrawal',
            msg: 'OnlyLiquidityProvisionIsEligibleForThisWithdrawal',
        },
        {
            code: 6045,
            name: 'InstructionIsNotSupported',
            msg: 'InstructionIsNotSupported',
        },
        {
            code: 6046,
            name: 'CanTradeOnlyWithPairsOnMarket',
            msg: 'CanTradeOnlyWithPairsOnMarket',
        },
        {
            code: 6047,
            name: 'NoLiquidityFeesToWithdraw',
            msg: 'NoLiquidityFeesToWithdraw',
        },
        {
            code: 6048,
            name: 'MaxAmountToPayExceeded',
            msg: 'MaxAmountToPayExceeded',
        },
        {
            code: 6049,
            name: 'GettingLessThanMinAmountToGet',
            msg: 'GettingLessThanMinAmountToGet',
        },
        {
            code: 6050,
            name: 'UserDoesntHaveHadomarketAuthority',
            msg: 'UserDoesntHaveHadomarketAuthority',
        },
        {
            code: 6051,
            name: 'HadomarketAlreadyFinished',
            msg: 'HadomarketAlreadyFinished',
        },
        {
            code: 6052,
            name: 'CanDepositLiqudityOnlyToVirtualOrInitializingPairs',
            msg: 'CanDepositLiqudityOnlyToVirtualOrInitializingPairs',
        },
        {
            code: 6053,
            name: 'CanModifyOnlyToVirtualOrInitializingPairs',
            msg: 'CanModifyOnlyToVirtualOrInitializingPairs',
        },
        {
            code: 6054,
            name: 'LiquidityProvisionOrderPairDoesntMatch',
            msg: 'LiquidityProvisionOrderPairDoesntMatch',
        },
        {
            code: 6055,
            name: 'OnlyVirtualLpOrdersCanBeWithdrawnByThisFunction',
            msg: 'OnlyVirtualLpOrdersCanBeWithdrawnByThisFunction',
        },
        {
            code: 6056,
            name: 'OnlyVirtualOrTokenizedLpOrdersCanBeReplacedByThisFunction',
            msg: 'OnlyVirtualOrTokenizedLpOrdersCanBeReplacedByThisFunction',
        },
        {
            code: 6057,
            name: 'LiquidityProvisionOrderNotEdge',
            msg: 'LiquidityProvisionOrderNotEdge',
        },
        {
            code: 6058,
            name: 'NftPairBoxNotParsingFromRemaining',
            msg: 'NftPairBoxNotParsingFromRemaining',
        },
        {
            code: 6059,
            name: 'VaultNftTokenAccountNotParsingFromRemaining',
            msg: 'VaultNftTokenAccountNotParsingFromRemaining',
        },
        {
            code: 6060,
            name: 'UserTokenAccountNotParsingFromRemaining',
            msg: 'UserTokenAccountNotParsingFromRemaining',
        },
        {
            code: 6061,
            name: 'WithdrawingOnlyAtLeastOneBuyAndOneSellPairs',
            msg: 'WithdrawingOnlyAtLeastOneBuyAndOneSellPairs',
        },
        {
            code: 6062,
            name: 'VaultDoesntMatchBox',
            msg: 'VaultDoesntMatchBox',
        },
        {
            code: 6063,
            name: 'WithdrawingOnlyBuyOrdersPairs',
            msg: 'WithdrawingOnlyBuyOrdersPairs',
        },
        {
            code: 6064,
            name: 'WithdrawingOnlySellOrdersPairs',
            msg: 'WithdrawingOnlySellOrdersPairs',
        },
        {
            code: 6065,
            name: 'LiquidityProvisionOrderIsWithdrawn',
            msg: 'LiquidityProvisionOrderIsWithdrawn',
        },
        {
            code: 6066,
            name: 'LiquidityProvisionOrderIsNotCorrectOrderForPair',
            msg: 'LiquidityProvisionOrderIsNotCorrectOrderForPair',
        },
        {
            code: 6067,
            name: 'OnlyMarketVirtualPairsCanBeTokenized',
            msg: 'OnlyMarketVirtualPairsCanBeTokenized',
        },
        {
            code: 6068,
            name: 'OnlyLiquidityProvisionPairsCanBeTokenized',
            msg: 'OnlyLiquidityProvisionPairsCanBeTokenized',
        },
        {
            code: 6069,
            name: 'OnlyInitializingPairsCanBePutOnMarket',
            msg: 'OnlyInitializingPairsCanBePutOnMarket',
        },
        {
            code: 6070,
            name: 'CanMakeLpOrderTokenizedOnlyFromTokenizedPair',
            msg: 'CanMakeLpOrderTokenizedOnlyFromTokenizedPair',
        },
        {
            code: 6071,
            name: 'OnlyVirtualLpOrderCanBeTokenized',
            msg: 'OnlyVirtualLpOrderCanBeTokenized',
        },
        {
            code: 6072,
            name: 'OnlyTokenizedLpOrdersCanWithdrawFees',
            msg: 'OnlyTokenizedLpOrdersCanWithdrawFees',
        },
        {
            code: 6073,
            name: 'UserLpTokenAccountDoesntContainNft',
            msg: 'UserLpTokenAccountDoesntContainNft',
        },
        {
            code: 6074,
            name: 'OnlyTokenizedLpOrdersCanBeWithdrawnByThisFunction',
            msg: 'OnlyTokenizedLpOrdersCanBeWithdrawnByThisFunction',
        },
        {
            code: 6075,
            name: 'LpTokenMintDoesntMatchOrder',
            msg: 'LpTokenMintDoesntMatchOrder',
        },
        {
            code: 6076,
            name: 'CanCloseVirtualPoolOnlyIfNoLiquidityLeft',
            msg: 'CanCloseVirtualPoolOnlyIfNoLiquidityLeft',
        },
        {
            code: 6077,
            name: 'NftIsNotMasterEdition',
            msg: 'NftIsNotMasterEdition',
        },
        {
            code: 6078,
            name: 'NftPairBoxNotClosed',
            msg: 'NftPairBoxNotClosed',
        },
        {
            code: 6079,
            name: 'WrongAdmin',
            msg: 'WrongAdmin',
        },
        {
            code: 6080,
            name: 'PairScopeValidationNotSupportedForNow',
            msg: 'PairScopeValidationNotSupportedForNow',
        },
        {
            code: 6081,
            name: 'CustomValidationAdapterProgramDoesntMatchUser',
            msg: 'CustomValidationAdapterProgramDoesntMatchUser',
        },
        {
            code: 6082,
            name: 'ClassicAuthorityWorksIfValidationProgramIsHadeswap',
            msg: 'ClassicAuthorityWorksIfValidationProgramIsHadeswap',
        },
        {
            code: 6083,
            name: 'NftValidationAdapterV2CanWhitelistOnlyMerkleTree',
            msg: 'NftValidationAdapterV2CanWhitelistOnlyMerkleTree',
        },
        {
            code: 6084,
            name: 'BadRuleSet',
            msg: 'BadRuleSet',
        },
        {
            code: 6085,
            name: 'WrongCreatorInRemainingAccounts',
            msg: 'WrongCreatorInRemainingAccounts',
        },
    ],
};