@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
196 lines • 6.82 kB
TypeScript
import { PublicKey } from '@solana/web3.js';
import { Domain } from '@hyperlane-xyz/utils';
import { SealevelInterchainGasPaymasterConfig } from '../../gas/adapters/serialization.js';
/**
* Hyperlane Token Borsh Schema
*/
export declare class SealevelHyperlaneTokenData {
readonly fields: any;
bump: number;
mailbox: Uint8Array;
mailbox_pubkey: PublicKey;
mailbox_process_authority: Uint8Array;
mailbox_process_authority_pubkey: PublicKey;
dispatch_authority_bump: number;
decimals: number;
remote_decimals: number;
owner?: Uint8Array;
owner_pub_key?: PublicKey;
interchain_security_module?: Uint8Array;
interchain_security_module_pubkey?: PublicKey;
interchain_gas_paymaster?: SealevelInterchainGasPaymasterConfig;
interchain_gas_paymaster_pubkey?: PublicKey;
interchain_gas_paymaster_account_pubkey?: PublicKey;
destination_gas?: Map<Domain, bigint>;
remote_routers?: Map<Domain, Uint8Array>;
remote_router_pubkeys: Map<Domain, PublicKey>;
constructor(fields: any);
}
export declare const SealevelHyperlaneTokenDataSchema: Map<any, any>;
/**
* Transfer Remote Borsh Schema
*/
export declare enum SealevelHypTokenInstruction {
Init = 0,
TransferRemote = 1,
EnrollRemoteRouter = 2,
EnrollRemoteRouters = 3,
SetDestinationGasConfigs = 4,
SetInterchainSecurityModule = 5,
SetInterchainGasPaymaster = 6,
TransferOwnership = 7
}
/**
* Human-readable names for Hyperlane Token instructions
*/
export declare const SealevelHypTokenInstructionName: Record<SealevelHypTokenInstruction, string>;
export declare class SealevelTransferRemoteInstruction {
readonly fields: any;
destination_domain: number;
recipient: Uint8Array;
recipient_pubkey: PublicKey;
amount_or_id: number;
constructor(fields: any);
}
export declare const SealevelTransferRemoteSchema: Map<any, any>;
export declare enum SealevelCCInstructionKind {
SetCrossCollateralRouters = 0,
TransferRemoteTo = 1,
HandleLocal = 2,
HandleLocalAccountMetas = 3
}
export declare class SealevelCCTransferRemoteToInstruction {
readonly fields: any;
destination_domain: number;
recipient: Uint8Array;
amount_or_id: bigint;
target_router: Uint8Array;
constructor(fields: any);
}
export declare const SealevelCCTransferRemoteToSchema: Map<any, any>;
export declare class SealevelCCHandleLocalInstruction {
readonly fields: any;
sender_program_id: Uint8Array;
message: Uint8Array;
constructor(fields: any);
}
export declare const SealevelCCHandleLocalSchema: Map<any, any>;
/**
* Encodes a TokenMessage matching the Rust `hyperlane_warp_route::TokenMessage`.
* Layout: recipient (32 bytes) + amount (32 bytes, big-endian U256) + metadata (variable).
*/
export declare function encodeTokenMessage(recipient: Uint8Array, amount: bigint, metadata?: Uint8Array): Buffer;
/**
* RemoteRouterConfig - Configuration for a remote router
* Matches: rust/sealevel/libraries/hyperlane-sealevel-connection-client/src/router.rs
*/
export declare class SealevelRemoteRouterConfig {
domain: number;
router: Uint8Array | null;
get routerAddress(): string | null;
constructor(fields: any);
}
export declare const SealevelRemoteRouterConfigSchema: {
kind: "struct";
fields: (string | {
kind: "option";
type: number[];
})[][];
};
/**
* GasRouterConfig - Configuration for destination gas
* Matches: rust/sealevel/libraries/hyperlane-sealevel-connection-client/src/gas_router.rs
*/
export declare class SealevelGasRouterConfig {
domain: number;
gas: bigint | null;
constructor(fields: any);
}
export declare const SealevelGasRouterConfigSchema: {
kind: "struct";
fields: (string | {
kind: "option";
type: string;
})[][];
};
/**
* EnrollRemoteRouter instruction data
* Matches: EnrollRemoteRouter(RemoteRouterConfig)
*/
export declare class SealevelEnrollRemoteRouterInstruction {
config: SealevelRemoteRouterConfig;
constructor(fields: any);
}
export declare const SealevelEnrollRemoteRouterInstructionSchema: Map<any, any>;
/**
* EnrollRemoteRouters instruction data
* Matches: EnrollRemoteRouters(Vec<RemoteRouterConfig>)
*/
export declare class SealevelEnrollRemoteRoutersInstruction {
configs: SealevelRemoteRouterConfig[];
constructor(fields: any);
}
export declare const SealevelEnrollRemoteRoutersInstructionSchema: Map<any, any>;
/**
* SetDestinationGasConfigs instruction data
* Matches: SetDestinationGasConfigs(Vec<GasRouterConfig>)
*/
export declare class SealevelSetDestinationGasConfigsInstruction {
configs: SealevelGasRouterConfig[];
constructor(fields: any);
}
export declare const SealevelSetDestinationGasConfigsInstructionSchema: Map<any, any>;
/**
* SetInterchainSecurityModule instruction data
* Matches: SetInterchainSecurityModule(Option<Pubkey>)
*/
export declare class SealevelSetInterchainSecurityModuleInstruction {
ism: Uint8Array | null;
ismPubkey?: PublicKey;
constructor(fields: any);
}
export declare const SealevelSetInterchainSecurityModuleInstructionSchema: Map<any, any>;
/**
* InterchainGasPaymasterType with inner Pubkey for instruction serialization
* This represents the tuple (Pubkey, InterchainGasPaymasterType) in Rust
* Matches: rust/sealevel/programs/hyperlane-sealevel-igp/src/accounts.rs
*
* Note: The Rust enum InterchainGasPaymasterType has variants:
* Igp(Pubkey) = 0
* OverheadIgp(Pubkey) = 1
* But in the warp route instruction, it's serialized as Option<(Pubkey, InterchainGasPaymasterType)>
* where InterchainGasPaymasterType becomes (u8 discriminator, Pubkey)
*/
export declare class SealevelIgpConfig {
programId: Uint8Array;
igpType: number;
igpAccount: Uint8Array;
programIdPubkey?: PublicKey;
igpAccountPubkey?: PublicKey;
get igpTypeName(): string;
constructor(fields: any);
}
export declare const SealevelIgpConfigSchema: {
kind: "struct";
fields: (string | number[])[][];
};
/**
* SetInterchainGasPaymaster instruction data
* Matches: SetInterchainGasPaymaster(Option<(Pubkey, InterchainGasPaymasterType)>)
*/
export declare class SealevelSetInterchainGasPaymasterInstruction {
igpConfig: SealevelIgpConfig | null;
constructor(fields: any);
}
export declare const SealevelSetInterchainGasPaymasterInstructionSchema: Map<any, any>;
/**
* TransferOwnership instruction data for warp routes
* Matches: TransferOwnership(Option<Pubkey>)
*/
export declare class SealevelHypTokenTransferOwnershipInstruction {
newOwner: Uint8Array | null;
newOwnerPubkey?: PublicKey;
constructor(fields: any);
}
export declare const SealevelHypTokenTransferOwnershipInstructionSchema: Map<any, any>;
//# sourceMappingURL=serialization.d.ts.map