export type BurnmintTokenPool = { version: '1.6.1'; name: 'burnmint_token_pool'; instructions: [ { name: 'initGlobalConfig'; accounts: [ { name: 'config'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; }, { name: 'program'; isMut: false; isSigner: false; }, { name: 'programData'; isMut: false; isSigner: false; } ]; args: [ { name: 'routerAddress'; type: 'publicKey'; }, { name: 'rmnAddress'; type: 'publicKey'; } ]; }, { name: 'updateSelfServedAllowed'; accounts: [ { name: 'config'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: false; isSigner: true; }, { name: 'program'; isMut: false; isSigner: false; }, { name: 'programData'; isMut: false; isSigner: false; } ]; args: [ { name: 'selfServedAllowed'; type: 'bool'; } ]; }, { name: 'updateDefaultRouter'; accounts: [ { name: 'config'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: false; isSigner: true; }, { name: 'program'; isMut: false; isSigner: false; }, { name: 'programData'; isMut: false; isSigner: false; } ]; args: [ { name: 'routerAddress'; type: 'publicKey'; } ]; }, { name: 'updateDefaultRmn'; accounts: [ { name: 'config'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: false; isSigner: true; }, { name: 'program'; isMut: false; isSigner: false; }, { name: 'programData'; isMut: false; isSigner: false; } ]; args: [ { name: 'rmnAddress'; type: 'publicKey'; } ]; }, { name: 'initialize'; accounts: [ { name: 'state'; isMut: true; isSigner: false; }, { name: 'mint'; isMut: false; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; }, { name: 'program'; isMut: false; isSigner: false; }, { name: 'programData'; isMut: false; isSigner: false; }, { name: 'config'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'transferMintAuthorityToMultisig'; accounts: [ { name: 'state'; isMut: true; isSigner: false; }, { name: 'mint'; isMut: true; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; }, { name: 'poolSigner'; isMut: false; isSigner: false; }, { name: 'authority'; isMut: false; isSigner: true; }, { name: 'newMultisigMintAuthority'; isMut: false; isSigner: false; }, { name: 'program'; isMut: false; isSigner: false; }, { name: 'programData'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'typeVersion'; docs: [ 'Returns the program type (name) and version.', 'Used by offchain code to easily determine which program & version is being interacted with.', '', '# Arguments', '* `ctx` - The context' ]; accounts: [ { name: 'clock'; isMut: false; isSigner: false; } ]; args: []; returns: 'string'; }, { name: 'transferOwnership'; accounts: [ { name: 'state'; isMut: true; isSigner: false; }, { name: 'mint'; isMut: false; isSigner: false; }, { name: 'authority'; isMut: false; isSigner: true; } ]; args: [ { name: 'proposedOwner'; type: 'publicKey'; } ]; }, { name: 'acceptOwnership'; accounts: [ { name: 'state'; isMut: true; isSigner: false; }, { name: 'mint'; isMut: false; isSigner: false; }, { name: 'authority'; isMut: false; isSigner: true; } ]; args: []; }, { name: 'setRouter'; accounts: [ { name: 'state'; isMut: false; isSigner: false; }, { name: 'mint'; isMut: false; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; }, { name: 'program'; isMut: false; isSigner: false; }, { name: 'programData'; isMut: false; isSigner: false; } ]; args: [ { name: 'newRouter'; type: 'publicKey'; } ]; }, { name: 'setRmn'; accounts: [ { name: 'state'; isMut: false; isSigner: false; }, { name: 'mint'; isMut: false; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; }, { name: 'program'; isMut: false; isSigner: false; }, { name: 'programData'; isMut: false; isSigner: false; } ]; args: [ { name: 'rmnAddress'; type: 'publicKey'; } ]; }, { name: 'initializeStateVersion'; accounts: [ { name: 'state'; isMut: true; isSigner: false; } ]; args: [ { name: 'mint'; type: 'publicKey'; } ]; }, { name: 'initChainRemoteConfig'; accounts: [ { name: 'state'; isMut: false; isSigner: false; }, { name: 'chainConfig'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'remoteChainSelector'; type: 'u64'; }, { name: 'mint'; type: 'publicKey'; }, { name: 'cfg'; type: { defined: 'RemoteConfig'; }; } ]; }, { name: 'editChainRemoteConfig'; accounts: [ { name: 'state'; isMut: false; isSigner: false; }, { name: 'chainConfig'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'remoteChainSelector'; type: 'u64'; }, { name: 'mint'; type: 'publicKey'; }, { name: 'cfg'; type: { defined: 'RemoteConfig'; }; } ]; }, { name: 'appendRemotePoolAddresses'; accounts: [ { name: 'state'; isMut: false; isSigner: false; }, { name: 'chainConfig'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'remoteChainSelector'; type: 'u64'; }, { name: 'mint'; type: 'publicKey'; }, { name: 'addresses'; type: { vec: { defined: 'RemoteAddress'; }; }; } ]; }, { name: 'setChainRateLimit'; accounts: [ { name: 'state'; isMut: false; isSigner: false; }, { name: 'chainConfig'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; } ]; args: [ { name: 'remoteChainSelector'; type: 'u64'; }, { name: 'mint'; type: 'publicKey'; }, { name: 'inbound'; type: { defined: 'RateLimitConfig'; }; }, { name: 'outbound'; type: { defined: 'RateLimitConfig'; }; } ]; }, { name: 'setRateLimitAdmin'; accounts: [ { name: 'state'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; } ]; args: [ { name: 'mint'; type: 'publicKey'; }, { name: 'newRateLimitAdmin'; type: 'publicKey'; } ]; }, { name: 'deleteChainConfig'; accounts: [ { name: 'state'; isMut: false; isSigner: false; }, { name: 'chainConfig'; isMut: true; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; } ]; args: [ { name: 'remoteChainSelector'; type: 'u64'; }, { name: 'mint'; type: 'publicKey'; } ]; }, { name: 'configureAllowList'; accounts: [ { name: 'state'; isMut: true; isSigner: false; }, { name: 'mint'; isMut: false; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'add'; type: { vec: 'publicKey'; }; }, { name: 'enabled'; type: 'bool'; } ]; }, { name: 'removeFromAllowList'; accounts: [ { name: 'state'; isMut: true; isSigner: false; }, { name: 'mint'; isMut: false; isSigner: false; }, { name: 'authority'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'remove'; type: { vec: 'publicKey'; }; } ]; }, { name: 'releaseOrMintTokens'; accounts: [ { name: 'authority'; isMut: false; isSigner: true; }, { name: 'offrampProgram'; isMut: false; isSigner: false; docs: [ 'CHECK offramp program: exists only to derive the allowed offramp PDA', 'and the authority PDA.' ]; }, { name: 'allowedOfframp'; isMut: false; isSigner: false; docs: [ 'CHECK PDA of the router program verifying the signer is an allowed offramp.', "If PDA does not exist, the router doesn't allow this offramp" ]; }, { name: 'state'; isMut: false; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; }, { name: 'mint'; isMut: true; isSigner: false; }, { name: 'poolSigner'; isMut: false; isSigner: false; }, { name: 'poolTokenAccount'; isMut: true; isSigner: false; }, { name: 'chainConfig'; isMut: true; isSigner: false; }, { name: 'rmnRemote'; isMut: false; isSigner: false; }, { name: 'rmnRemoteCurses'; isMut: false; isSigner: false; }, { name: 'rmnRemoteConfig'; isMut: false; isSigner: false; }, { name: 'receiverTokenAccount'; isMut: true; isSigner: false; } ]; args: [ { name: 'releaseOrMint'; type: { defined: 'ReleaseOrMintInV1'; }; } ]; returns: { defined: 'ReleaseOrMintOutV1'; }; }, { name: 'lockOrBurnTokens'; accounts: [ { name: 'authority'; isMut: false; isSigner: true; }, { name: 'state'; isMut: false; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; }, { name: 'mint'; isMut: true; isSigner: false; }, { name: 'poolSigner'; isMut: false; isSigner: false; }, { name: 'poolTokenAccount'; isMut: true; isSigner: false; }, { name: 'rmnRemote'; isMut: false; isSigner: false; }, { name: 'rmnRemoteCurses'; isMut: false; isSigner: false; }, { name: 'rmnRemoteConfig'; isMut: false; isSigner: false; }, { name: 'chainConfig'; isMut: true; isSigner: false; } ]; args: [ { name: 'lockOrBurn'; type: { defined: 'LockOrBurnInV1'; }; } ]; returns: { defined: 'LockOrBurnOutV1'; }; } ]; accounts: [ { name: 'poolConfig'; type: { kind: 'struct'; fields: [ { name: 'version'; type: 'u8'; }, { name: 'selfServedAllowed'; type: 'bool'; }, { name: 'router'; type: 'publicKey'; }, { name: 'rmnRemote'; type: 'publicKey'; } ]; }; }, { name: 'state'; type: { kind: 'struct'; fields: [ { name: 'version'; type: 'u8'; }, { name: 'config'; type: { defined: 'BaseConfig'; }; } ]; }; }, { name: 'chainConfig'; type: { kind: 'struct'; fields: [ { name: 'base'; type: { defined: 'BaseChain'; }; } ]; }; } ]; errors: [ { code: 6000; name: 'InvalidMultisig'; msg: 'Invalid Multisig Mint'; }, { code: 6001; name: 'MintAuthorityAlreadySet'; msg: 'Mint Authority already set'; }, { code: 6002; name: 'FixedMintToken'; msg: 'Token with no Mint Authority'; }, { code: 6003; name: 'UnsupportedTokenProgram'; msg: 'Unsupported Token Program'; }, { code: 6004; name: 'InvalidToken2022Multisig'; msg: 'Invalid Multisig Account Data for Token 2022'; }, { code: 6005; name: 'InvalidSPLTokenMultisig'; msg: 'Invalid Multisig Account Data for SPL Token'; }, { code: 6006; name: 'PoolSignerNotInMultisig'; msg: 'Token Pool Signer PDA must be m times a signer of the Multisig'; }, { code: 6007; name: 'MultisigMustHaveAtLeastTwoSigners'; msg: 'Multisig must have more than 2 valid signers'; }, { code: 6008; name: 'MultisigMustHaveMoreThanOneSigner'; msg: 'Multisig must have more than one required signer'; }, { code: 6009; name: 'InvalidMultisigOwner'; msg: 'Multisig Owner must match Token Program ID'; }, { code: 6010; name: 'InvalidMultisigThreshold'; msg: 'Invalid multisig threshold: required signatures cannot exceed total signers'; }, { code: 6011; name: 'InvalidMultisigThresholdTooHigh'; msg: 'Invalid multisig m: required signatures cannot exceed the available for outside signers'; } ]; }; export declare const IDL: BurnmintTokenPool; //# sourceMappingURL=BURN_MINT_TOKEN_POOL.d.ts.map