UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

104 lines 4.6 kB
import { PublicKey } from '@solana/web3.js'; import { SealevelInstructionWrapper } from '../utils/sealevelSerialization.js'; /** * Mailbox instruction types matching Rust enum * See: rust/sealevel/programs/mailbox/src/instruction.rs */ export var SealevelMailboxInstructionType; (function (SealevelMailboxInstructionType) { SealevelMailboxInstructionType[SealevelMailboxInstructionType["INIT"] = 0] = "INIT"; SealevelMailboxInstructionType[SealevelMailboxInstructionType["INBOX_PROCESS"] = 1] = "INBOX_PROCESS"; SealevelMailboxInstructionType[SealevelMailboxInstructionType["INBOX_SET_DEFAULT_ISM"] = 2] = "INBOX_SET_DEFAULT_ISM"; SealevelMailboxInstructionType[SealevelMailboxInstructionType["INBOX_GET_RECIPIENT_ISM"] = 3] = "INBOX_GET_RECIPIENT_ISM"; SealevelMailboxInstructionType[SealevelMailboxInstructionType["OUTBOX_DISPATCH"] = 4] = "OUTBOX_DISPATCH"; SealevelMailboxInstructionType[SealevelMailboxInstructionType["OUTBOX_GET_COUNT"] = 5] = "OUTBOX_GET_COUNT"; SealevelMailboxInstructionType[SealevelMailboxInstructionType["OUTBOX_GET_LATEST_CHECKPOINT"] = 6] = "OUTBOX_GET_LATEST_CHECKPOINT"; SealevelMailboxInstructionType[SealevelMailboxInstructionType["OUTBOX_GET_ROOT"] = 7] = "OUTBOX_GET_ROOT"; SealevelMailboxInstructionType[SealevelMailboxInstructionType["GET_OWNER"] = 8] = "GET_OWNER"; SealevelMailboxInstructionType[SealevelMailboxInstructionType["TRANSFER_OWNERSHIP"] = 9] = "TRANSFER_OWNERSHIP"; SealevelMailboxInstructionType[SealevelMailboxInstructionType["CLAIM_PROTOCOL_FEES"] = 10] = "CLAIM_PROTOCOL_FEES"; SealevelMailboxInstructionType[SealevelMailboxInstructionType["SET_PROTOCOL_FEE_CONFIG"] = 11] = "SET_PROTOCOL_FEE_CONFIG"; })(SealevelMailboxInstructionType || (SealevelMailboxInstructionType = {})); export const SealevelMailboxInstructionName = { [SealevelMailboxInstructionType.INIT]: 'Init', [SealevelMailboxInstructionType.INBOX_PROCESS]: 'InboxProcess', [SealevelMailboxInstructionType.INBOX_SET_DEFAULT_ISM]: 'InboxSetDefaultIsm', [SealevelMailboxInstructionType.INBOX_GET_RECIPIENT_ISM]: 'InboxGetRecipientIsm', [SealevelMailboxInstructionType.OUTBOX_DISPATCH]: 'OutboxDispatch', [SealevelMailboxInstructionType.OUTBOX_GET_COUNT]: 'OutboxGetCount', [SealevelMailboxInstructionType.OUTBOX_GET_LATEST_CHECKPOINT]: 'OutboxGetLatestCheckpoint', [SealevelMailboxInstructionType.OUTBOX_GET_ROOT]: 'OutboxGetRoot', [SealevelMailboxInstructionType.GET_OWNER]: 'GetOwner', [SealevelMailboxInstructionType.TRANSFER_OWNERSHIP]: 'TransferOwnership', [SealevelMailboxInstructionType.CLAIM_PROTOCOL_FEES]: 'ClaimProtocolFees', [SealevelMailboxInstructionType.SET_PROTOCOL_FEE_CONFIG]: 'SetProtocolFeeConfig', }; /** * SetDefaultIsm instruction data * Matches: rust/sealevel/programs/mailbox/src/instruction.rs */ export class SealevelMailboxSetDefaultIsmInstruction { newIsm; newIsmPubkey; constructor(fields) { Object.assign(this, fields); this.newIsmPubkey = new PublicKey(this.newIsm); } } export const SealevelMailboxSetDefaultIsmInstructionSchema = new Map([ [ SealevelInstructionWrapper, { kind: 'struct', fields: [ ['instruction', 'u32'], // Borsh enum discriminator (4 bytes) ['data', SealevelMailboxSetDefaultIsmInstruction], ], }, ], [ SealevelMailboxSetDefaultIsmInstruction, { kind: 'struct', fields: [ ['newIsm', [32]], // Pubkey as 32-byte array ], }, ], ]); /** * TransferOwnership instruction data * Matches: rust/sealevel/programs/mailbox/src/instruction.rs */ export class SealevelMailboxTransferOwnershipInstruction { newOwner; newOwnerPubkey; constructor(fields) { Object.assign(this, fields); this.newOwnerPubkey = this.newOwner ? new PublicKey(this.newOwner) : undefined; } } export const SealevelMailboxTransferOwnershipInstructionSchema = new Map([ [ SealevelInstructionWrapper, { kind: 'struct', fields: [ ['instruction', 'u32'], ['data', SealevelMailboxTransferOwnershipInstruction], ], }, ], [ SealevelMailboxTransferOwnershipInstruction, { kind: 'struct', fields: [ ['newOwner', { kind: 'option', type: [32] }], // Option<Pubkey> ], }, ], ]); //# sourceMappingURL=serialization.js.map