{
    "version": "0.1.0",
    "name": "brightswitch_onchain",
    "instructions": [
        {
            "name": "initializeArtist",
            "accounts": [
                {
                    "name": "artist",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "currency",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "hplDelegate",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "project",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "mint",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "metadata",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "artistWallet",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "lutAddress",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenMetadataProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionsSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "admin",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hiveControlProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "currencyManagerProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hplEvents",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rentSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "clockSysvar",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "params",
                    "type": {
                        "defined": "ArtistParams"
                    }
                }
            ]
        },
        {
            "name": "updateArtist",
            "accounts": [
                {
                    "name": "artist",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "admin",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "clockSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hplEvents",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "params",
                    "type": {
                        "defined": "UpdateArtistParams"
                    }
                }
            ]
        },
        {
            "name": "removeArtist",
            "accounts": [
                {
                    "name": "artist",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "admin",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "clockSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hplEvents",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "initializeBurner",
            "accounts": [
                {
                    "name": "artist",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "burner",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "artistWallet",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rentSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "clockSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hplEvents",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "params",
                    "type": {
                        "defined": "InitializeBurnerArgs"
                    }
                }
            ]
        },
        {
            "name": "updateBurner",
            "accounts": [
                {
                    "name": "artist",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "burner",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "signer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rentSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "clockSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hplEvents",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "params",
                    "type": {
                        "defined": "UpdateBurnerArgs"
                    }
                }
            ]
        },
        {
            "name": "removeBurner",
            "accounts": [
                {
                    "name": "artist",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "burner",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "artistWallet",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "clockSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hplEvents",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "burnNft",
            "accounts": [
                {
                    "name": "project",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "burner",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftMetadata",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftEdition",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftTokenRecord",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "masterEditionMint",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "masterEditionTokenAccount",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "masterEdition",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "editionMarker",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "collectionMetadata",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "currency",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "currencyMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "holderAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "owner",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "instructionsSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "metadataProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "currencyManagerProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hiveControl",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "burnSpl",
            "accounts": [
                {
                    "name": "project",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "aritst",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "burner",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenMint",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "mintTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "currency",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "currencyMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "holderAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "payer",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "instructionsSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "currencyManagerProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hiveControl",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "args",
                    "type": {
                        "defined": "BurnSplArgs"
                    }
                }
            ]
        },
        {
            "name": "burnCnft",
            "accounts": [
                {
                    "name": "project",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "burner",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "treeAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "merkleTree",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "merkleRoot",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "currency",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "dataHash",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "currencyMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "holderAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "owner",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "instructionsSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "currencyManagerProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hiveControl",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "logWrapper",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "compressionProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "bubblegumProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "args",
                    "type": {
                        "defined": "BurnCNftArgs"
                    }
                }
            ]
        },
        {
            "name": "mintNft",
            "accounts": [
                {
                    "name": "project",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "artist",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "artistWallet",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "switch",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftMint",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "nftTokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftMetadata",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftTokenRecord",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "collectionMetadata",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collectionEdition",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collectionMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collectionDelegateRecord",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftEdition",
                    "isMut": true,
                    "isSigner": false,
                    "isOptional": true
                },
                {
                    "name": "currency",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "currencyMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "holderAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "vault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "instructionsSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "metadataProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "currencyManagerProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hiveControl",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hplEvents",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "clockSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "ataProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "mintCnft",
            "accounts": [
                {
                    "name": "project",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "artist",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "switch",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "merkleTree",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "treeAuthority",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collectionMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collectionMetadata",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collectionEdition",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collectionAuthorityRecordPda",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "currency",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "currencyMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "tokenAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "holderAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "bubblegumSigner",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "instructionsSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "vault",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "owner",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "currencyManagerProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hiveControl",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hplEvents",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "clockSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenMetadataProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "compressionProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "logWrapper",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "bubblegumProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "ataProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "initializeSwitch",
            "accounts": [
                {
                    "name": "artist",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "switch",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collectionMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collectionAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collectionDelegateRecord",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "collectionMetadata",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "artistWallet",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "payer",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "metadataProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "currencyManagerProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "tokenProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rentSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionsSysvar",
                    "isMut": false,
                    "isSigner": false,
                    "docs": [
                        "NATIVE INSTRUCTIONS SYSVAR"
                    ]
                },
                {
                    "name": "clockSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hplEvents",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "params",
                    "type": {
                        "defined": "InitializeSwitchArgs"
                    }
                }
            ]
        },
        {
            "name": "updateSwitch",
            "accounts": [
                {
                    "name": "artist",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "signer",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "switch",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "clockSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hplEvents",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "rentSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "params",
                    "type": {
                        "defined": "UpdateSwitchParams"
                    }
                }
            ]
        },
        {
            "name": "deleteSwitch",
            "accounts": [
                {
                    "name": "artist",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "switch",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "artistWallet",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "clockSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "hplEvents",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "populateNftCreators",
            "accounts": [
                {
                    "name": "artist",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "switch",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "nftMint",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "nftMetadata",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "signer",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "metadataProgram",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "instructionsSysvar",
                    "isMut": false,
                    "isSigner": false,
                    "docs": [
                        "NATIVE INSTRUCTIONS SYSVAR"
                    ]
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        },
        {
            "name": "breathUp",
            "accounts": [
                {
                    "name": "admin",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "account",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rentSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "addBytes",
                    "type": "u8"
                }
            ]
        },
        {
            "name": "byteInjection",
            "accounts": [
                {
                    "name": "admin",
                    "isMut": false,
                    "isSigner": true
                },
                {
                    "name": "account",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "rentSysvar",
                    "isMut": false,
                    "isSigner": false
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": [
                {
                    "name": "position",
                    "type": "u32"
                },
                {
                    "name": "bytes",
                    "type": "bytes"
                }
            ]
        },
        {
            "name": "closeAccountTemp",
            "accounts": [
                {
                    "name": "oldAccount",
                    "isMut": true,
                    "isSigner": false
                },
                {
                    "name": "admin",
                    "isMut": true,
                    "isSigner": true
                },
                {
                    "name": "systemProgram",
                    "isMut": false,
                    "isSigner": false
                }
            ],
            "args": []
        }
    ],
    "accounts": [
        {
            "name": "ArtistAccount",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "wallet",
                        "type": "publicKey"
                    },
                    {
                        "name": "bump",
                        "type": "u8"
                    },
                    {
                        "name": "mint",
                        "type": "publicKey"
                    },
                    {
                        "name": "currency",
                        "type": "publicKey"
                    },
                    {
                        "name": "lutAddress",
                        "type": "publicKey"
                    },
                    {
                        "name": "name",
                        "type": "string"
                    },
                    {
                        "name": "uri",
                        "type": "string"
                    }
                ]
            }
        },
        {
            "name": "BurnerConfig",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "bumps",
                        "type": "u8"
                    },
                    {
                        "name": "artist",
                        "type": "publicKey"
                    },
                    {
                        "name": "name",
                        "type": "string"
                    },
                    {
                        "name": "uri",
                        "type": "string"
                    },
                    {
                        "name": "criteria",
                        "type": {
                            "defined": "Criteria"
                        }
                    },
                    {
                        "name": "reward",
                        "type": "u64"
                    },
                    {
                        "name": "limit",
                        "type": "u64"
                    },
                    {
                        "name": "burned",
                        "type": "u64"
                    },
                    {
                        "name": "startedAt",
                        "type": "u64"
                    },
                    {
                        "name": "endedAt",
                        "type": "u64"
                    },
                    {
                        "name": "additionalCriteria",
                        "type": {
                            "hashMap": [
                                "string",
                                "string"
                            ]
                        }
                    },
                    {
                        "name": "edition",
                        "type": {
                            "option": {
                                "defined": "EditionInfo"
                            }
                        }
                    }
                ]
            }
        },
        {
            "name": "SwitchAccount",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "bumps",
                        "type": "u8"
                    },
                    {
                        "name": "name",
                        "type": "string"
                    },
                    {
                        "name": "artist",
                        "type": "publicKey"
                    },
                    {
                        "name": "collection",
                        "type": "publicKey"
                    },
                    {
                        "name": "burners",
                        "type": {
                            "vec": {
                                "defined": "BurnerCriteria"
                            }
                        }
                    },
                    {
                        "name": "art",
                        "type": {
                            "defined": "SwitchArt"
                        }
                    },
                    {
                        "name": "cost",
                        "type": "u64"
                    },
                    {
                        "name": "limit",
                        "type": "u64"
                    },
                    {
                        "name": "minted",
                        "type": "u64"
                    },
                    {
                        "name": "startedAt",
                        "type": "u64"
                    },
                    {
                        "name": "endedAt",
                        "type": "u64"
                    },
                    {
                        "name": "creators",
                        "type": {
                            "vec": {
                                "defined": "Creator"
                            }
                        }
                    }
                ]
            }
        }
    ],
    "types": [
        {
            "name": "CurrencyArgs",
            "docs": [
                "Represents arguments used to define a currency."
            ],
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "name",
                        "docs": [
                            "The name of the currency."
                        ],
                        "type": "string"
                    },
                    {
                        "name": "symbol",
                        "docs": [
                            "The symbol of the currency."
                        ],
                        "type": "string"
                    },
                    {
                        "name": "uri",
                        "docs": [
                            "The URI (Uniform Resource Identifier) associated with the currency."
                        ],
                        "type": "string"
                    }
                ]
            }
        },
        {
            "name": "ArtistParams",
            "docs": [
                "Represents parameters used to initialize an artist account."
            ],
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "name",
                        "docs": [
                            "The name of the artist."
                        ],
                        "type": "string"
                    },
                    {
                        "name": "uri",
                        "docs": [
                            "The currency configuration for the artist."
                        ],
                        "type": "string"
                    },
                    {
                        "name": "currency",
                        "docs": [
                            "The currency configuration for the artist."
                        ],
                        "type": {
                            "defined": "CurrencyArgs"
                        }
                    }
                ]
            }
        },
        {
            "name": "UpdateArtistParams",
            "docs": [
                "Represents parameters used to updating an artist account."
            ],
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "name",
                        "docs": [
                            "The name of the artist."
                        ],
                        "type": "string"
                    },
                    {
                        "name": "uri",
                        "docs": [
                            "The currency configuration for the artist."
                        ],
                        "type": "string"
                    }
                ]
            }
        },
        {
            "name": "InitializeBurnerArgs",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "criteria",
                        "type": {
                            "defined": "Criteria"
                        }
                    },
                    {
                        "name": "name",
                        "type": "string"
                    },
                    {
                        "name": "reward",
                        "type": "u64"
                    },
                    {
                        "name": "uri",
                        "type": "string"
                    },
                    {
                        "name": "limit",
                        "type": "u64"
                    },
                    {
                        "name": "startedAt",
                        "type": "u64"
                    },
                    {
                        "name": "endedAt",
                        "type": "u64"
                    },
                    {
                        "name": "additionalCriteria",
                        "type": {
                            "hashMap": [
                                "string",
                                "string"
                            ]
                        }
                    },
                    {
                        "name": "edition",
                        "type": {
                            "option": {
                                "defined": "EditionInfo"
                            }
                        }
                    }
                ]
            }
        },
        {
            "name": "UpdateBurnerArgs",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "criteria",
                        "type": {
                            "option": {
                                "defined": "Criteria"
                            }
                        }
                    },
                    {
                        "name": "name",
                        "type": {
                            "option": "string"
                        }
                    },
                    {
                        "name": "reward",
                        "type": {
                            "option": "u64"
                        }
                    },
                    {
                        "name": "uri",
                        "type": {
                            "option": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "type": {
                            "option": "u64"
                        }
                    },
                    {
                        "name": "startedAt",
                        "type": {
                            "option": "u64"
                        }
                    },
                    {
                        "name": "endedAt",
                        "type": {
                            "option": "u64"
                        }
                    },
                    {
                        "name": "additionalCriteria",
                        "type": {
                            "option": {
                                "hashMap": [
                                    "string",
                                    "string"
                                ]
                            }
                        }
                    },
                    {
                        "name": "edition",
                        "type": {
                            "option": {
                                "option": {
                                    "defined": "EditionInfo"
                                }
                            }
                        }
                    }
                ]
            }
        },
        {
            "name": "BurnCNftArgs",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "nonce",
                        "type": "u64"
                    },
                    {
                        "name": "index",
                        "type": "u32"
                    },
                    {
                        "name": "creatorProof",
                        "type": {
                            "defined": "CreatorProof"
                        }
                    }
                ]
            }
        },
        {
            "name": "BurnSplArgs",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "amount",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "InitializeSwitchArgs",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "name",
                        "type": "string"
                    },
                    {
                        "name": "cost",
                        "type": "u64"
                    },
                    {
                        "name": "startedAt",
                        "type": "u64"
                    },
                    {
                        "name": "endedAt",
                        "type": "u64"
                    },
                    {
                        "name": "limit",
                        "type": "u64"
                    },
                    {
                        "name": "art",
                        "type": {
                            "defined": "SwitchArt"
                        }
                    },
                    {
                        "name": "burners",
                        "type": {
                            "vec": {
                                "defined": "BurnerCriteria"
                            }
                        }
                    },
                    {
                        "name": "creators",
                        "type": {
                            "vec": {
                                "defined": "Creator"
                            }
                        }
                    }
                ]
            }
        },
        {
            "name": "UpdateSwitchParams",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "name",
                        "type": {
                            "option": "string"
                        }
                    },
                    {
                        "name": "tree",
                        "type": {
                            "option": "publicKey"
                        }
                    },
                    {
                        "name": "cost",
                        "type": {
                            "option": "u64"
                        }
                    },
                    {
                        "name": "limit",
                        "type": {
                            "option": "u64"
                        }
                    },
                    {
                        "name": "startedAt",
                        "type": {
                            "option": "u64"
                        }
                    },
                    {
                        "name": "endedAt",
                        "type": {
                            "option": "u64"
                        }
                    },
                    {
                        "name": "burners",
                        "type": {
                            "option": {
                                "vec": {
                                    "defined": "BurnerCriteria"
                                }
                            }
                        }
                    },
                    {
                        "name": "creators",
                        "type": {
                            "option": {
                                "vec": {
                                    "defined": "Creator"
                                }
                            }
                        }
                    }
                ]
            }
        },
        {
            "name": "EditionInfo",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "mint",
                        "type": "publicKey"
                    },
                    {
                        "name": "tokenAccount",
                        "type": "publicKey"
                    }
                ]
            }
        },
        {
            "name": "Criteria",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "kind",
                        "type": {
                            "defined": "CriteriaKind"
                        }
                    },
                    {
                        "name": "addresses",
                        "type": {
                            "vec": "publicKey"
                        }
                    }
                ]
            }
        },
        {
            "name": "BurnerCriteria",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "address",
                        "type": "publicKey"
                    },
                    {
                        "name": "suggestedCount",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "CriteriaKind",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Collection"
                    },
                    {
                        "name": "Creator"
                    },
                    {
                        "name": "MerkleTree"
                    },
                    {
                        "name": "SPLToken"
                    }
                ]
            }
        },
        {
            "name": "CreatorProof",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "Hash",
                        "fields": [
                            "publicKey"
                        ]
                    },
                    {
                        "name": "Vec",
                        "fields": [
                            {
                                "vec": {
                                    "defined": "Creator"
                                }
                            }
                        ]
                    }
                ]
            }
        },
        {
            "name": "Event",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "SwitchComplete",
                        "fields": [
                            {
                                "name": "address",
                                "type": "publicKey"
                            },
                            {
                                "name": "state",
                                "type": "bytes"
                            },
                            {
                                "name": "wallet",
                                "type": "publicKey"
                            }
                        ]
                    },
                    {
                        "name": "InitArtist",
                        "fields": [
                            {
                                "name": "address",
                                "type": "publicKey"
                            },
                            {
                                "name": "state",
                                "type": "bytes"
                            }
                        ]
                    },
                    {
                        "name": "ModifyArtist",
                        "fields": [
                            {
                                "name": "address",
                                "type": "publicKey"
                            },
                            {
                                "name": "state",
                                "type": "bytes"
                            }
                        ]
                    },
                    {
                        "name": "InitSwitch",
                        "fields": [
                            {
                                "name": "address",
                                "type": "publicKey"
                            },
                            {
                                "name": "state",
                                "type": "bytes"
                            }
                        ]
                    },
                    {
                        "name": "ModifySwitch",
                        "fields": [
                            {
                                "name": "address",
                                "type": "publicKey"
                            },
                            {
                                "name": "state",
                                "type": "bytes"
                            }
                        ]
                    },
                    {
                        "name": "RemoveSwitch",
                        "fields": [
                            {
                                "name": "address",
                                "type": "publicKey"
                            }
                        ]
                    },
                    {
                        "name": "InitBurner",
                        "fields": [
                            {
                                "name": "address",
                                "type": "publicKey"
                            },
                            {
                                "name": "state",
                                "type": "bytes"
                            }
                        ]
                    },
                    {
                        "name": "ModifyBurner",
                        "fields": [
                            {
                                "name": "address",
                                "type": "publicKey"
                            },
                            {
                                "name": "state",
                                "type": "bytes"
                            }
                        ]
                    },
                    {
                        "name": "RemoveArtist",
                        "fields": [
                            {
                                "name": "address",
                                "type": "publicKey"
                            }
                        ]
                    },
                    {
                        "name": "RemoveBurner",
                        "fields": [
                            {
                                "name": "address",
                                "type": "publicKey"
                            }
                        ]
                    }
                ]
            }
        },
        {
            "name": "SwitchArt",
            "type": {
                "kind": "enum",
                "variants": [
                    {
                        "name": "RepetitivePNFT",
                        "fields": [
                            {
                                "name": "name",
                                "type": "string"
                            },
                            {
                                "name": "symbol",
                                "type": "string"
                            },
                            {
                                "name": "uri",
                                "type": "string"
                            },
                            {
                                "name": "seller_fee_basis_points",
                                "type": "u16"
                            }
                        ]
                    },
                    {
                        "name": "RepetitiveCNFT",
                        "fields": [
                            {
                                "name": "name",
                                "type": "string"
                            },
                            {
                                "name": "symbol",
                                "type": "string"
                            },
                            {
                                "name": "uri",
                                "type": "string"
                            },
                            {
                                "name": "tree",
                                "type": "publicKey"
                            },
                            {
                                "name": "seller_fee_basis_points",
                                "type": "u16"
                            }
                        ]
                    }
                ]
            }
        },
        {
            "name": "Creator",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "address",
                        "type": "publicKey"
                    },
                    {
                        "name": "verified",
                        "type": "bool"
                    },
                    {
                        "name": "share",
                        "type": "u8"
                    }
                ]
            }
        }
    ],
    "errors": [
        {
            "code": 6000,
            "name": "InvalidSwitchState",
            "msg": "The switch state is invalid."
        },
        {
            "code": 6001,
            "name": "InvalidAdmin",
            "msg": "Invalid admin key provided."
        },
        {
            "code": 6002,
            "name": "InvalidNewAuthorityRecord",
            "msg": "Invalid new authority record found."
        },
        {
            "code": 6003,
            "name": "InvalidArtist",
            "msg": "The provided artist is invalid."
        },
        {
            "code": 6004,
            "name": "BurnFailed",
            "msg": "Burn operation failed."
        },
        {
            "code": 6005,
            "name": "InvalidNft",
            "msg": "The provided NFT is invalid."
        },
        {
            "code": 6006,
            "name": "InvalidDate",
            "msg": "Invalid date range provided. Please ensure that the start date is before the end date."
        },
        {
            "code": 6007,
            "name": "LimitReached",
            "msg": "The limit for this operation has been reached."
        },
        {
            "code": 6008,
            "name": "InvalidLimit",
            "msg": "Invalid limit provided. The limit must be greater than 0."
        },
        {
            "code": 6009,
            "name": "InvalidCNft",
            "msg": "Invalid CNFT"
        },
        {
            "code": 6010,
            "name": "InvalidCNftCreator",
            "msg": "Couldn't verify CNFT creator(s)"
        },
        {
            "code": 6011,
            "name": "InvalidTree",
            "msg": "Invalid CNFT tree"
        },
        {
            "code": 6012,
            "name": "InvalidSigner",
            "msg": "Invalid Signer Provided. Please ensure that the signer is the current authority."
        },
        {
            "code": 6013,
            "name": "InsufficientBalance",
            "msg": "Insufficient balance. of the token account that was provided for burning."
        }
    ],
    "metadata": {
        "address": "7Ca6e9NwUoCXHKeCtkuMRmyjU4D416YKbTpYAi75gz6",
        "origin": "anchor",
        "binaryVersion": "0.26.0",
        "libVersion": "0.26.0"
    }
}
