import { MinimumRequiredGasByAction } from './mingas.js'; import type { ProtocolType } from './protocolType.js'; export type ReqGetBalance = { address: string; denom?: string; }; export type ReqGetTotalSupply = { denom?: string; }; export type ReqEstimateTransactionFee = { transaction: T; estimatedGasPrice?: string; senderAddress?: string; senderPubKey?: string; }; export type ResEstimateTransactionFee = { gasUnits: bigint; gasPrice: number; fee: bigint; }; export type ProxyAdmin = { owner: string; address: string; }; export type ReqGetMailbox = { mailboxAddress: string; }; export type ResGetMailbox = { address: string; owner: string; localDomain: number; defaultIsm: string; defaultHook: string; requiredHook: string; nonce: number; proxyAdmin?: { owner: string; address: string; }; }; export type ReqIsMessageDelivered = { mailboxAddress: string; messageId: string; }; export declare enum IsmType { CUSTOM = "custom", OP_STACK = "opStackIsm", ROUTING = "domainRoutingIsm", FALLBACK_ROUTING = "defaultFallbackRoutingIsm", AMOUNT_ROUTING = "amountRoutingIsm", INTERCHAIN_ACCOUNT_ROUTING = "interchainAccountRouting", AGGREGATION = "staticAggregationIsm", STORAGE_AGGREGATION = "storageAggregationIsm", MERKLE_ROOT_MULTISIG = "merkleRootMultisigIsm", MESSAGE_ID_MULTISIG = "messageIdMultisigIsm", STORAGE_MERKLE_ROOT_MULTISIG = "storageMerkleRootMultisigIsm", STORAGE_MESSAGE_ID_MULTISIG = "storageMessageIdMultisigIsm", TEST_ISM = "testIsm", PAUSABLE = "pausableIsm", TRUSTED_RELAYER = "trustedRelayerIsm", ARB_L2_TO_L1 = "arbL2ToL1Ism", WEIGHTED_MERKLE_ROOT_MULTISIG = "weightedMerkleRootMultisigIsm", WEIGHTED_MESSAGE_ID_MULTISIG = "weightedMessageIdMultisigIsm", CCIP = "ccipIsm", OFFCHAIN_LOOKUP = "offchainLookupIsm" } export declare enum HookType { CUSTOM = "custom", MERKLE_TREE = "merkleTreeHook", INTERCHAIN_GAS_PAYMASTER = "interchainGasPaymaster", AGGREGATION = "aggregationHook", PROTOCOL_FEE = "protocolFee", OP_STACK = "opStackHook", ROUTING = "domainRoutingHook", FALLBACK_ROUTING = "fallbackRoutingHook", AMOUNT_ROUTING = "amountRoutingHook", PAUSABLE = "pausableHook", ARB_L2_TO_L1 = "arbL2ToL1Hook", MAILBOX_DEFAULT = "defaultHook", CCIP = "ccipHook" } export declare enum TokenType { synthetic = "synthetic", syntheticRebase = "syntheticRebase", syntheticUri = "syntheticUri", collateral = "collateral", collateralVault = "collateralVault", collateralVaultRebase = "collateralVaultRebase", XERC20 = "xERC20", XERC20Lockbox = "xERC20Lockbox", collateralFiat = "collateralFiat", collateralUri = "collateralUri", collateralCctp = "collateralCctp", native = "native", nativeOpL2 = "nativeOpL2", nativeOpL1 = "nativeOpL1", nativeScaled = "nativeScaled" } export type ReqGetToken = { tokenAddress: string; }; export type ResGetToken = { address: string; owner: string; tokenType: TokenType; mailboxAddress: string; ismAddress: string; hookAddress: string; denom: string; name: string; symbol: string; decimals: number; proxyAdmin?: ProxyAdmin; }; export type ReqGetRemoteRouters = { tokenAddress: string; }; export type ResGetRemoteRouters = { address: string; remoteRouters: { receiverDomainId: number; receiverAddress: string; gas: string; }[]; }; export type ReqGetBridgedSupply = { tokenAddress: string; }; export type ReqQuoteRemoteTransfer = { tokenAddress: string; destinationDomainId: number; recipient?: string; amount?: string; customHookAddress?: string; customHookMetadata?: string; }; export type ResQuoteRemoteTransfer = { denom: string; amount: bigint; }; export type ReqTransfer = { signer: string; recipient: string; denom?: string; amount: string; }; export type ReqRemoteTransfer = { signer: string; tokenAddress: string; destinationDomainId: number; recipient: string; amount: string; gasLimit: string; maxFee: { denom: string; amount: string; }; customHookAddress?: string; customHookMetadata?: string; }; export type ResRemoteTransfer = { tokenAddress: string; }; export interface IProvider { isHealthy(): Promise; getRpcUrls(): string[]; getHeight(): Promise; getBalance(req: ReqGetBalance): Promise; getTotalSupply(req: ReqGetTotalSupply): Promise; estimateTransactionFee(req: ReqEstimateTransactionFee): Promise; isMessageDelivered(req: ReqIsMessageDelivered): Promise; getToken(req: ReqGetToken): Promise; getRemoteRouters(req: ReqGetRemoteRouters): Promise; getBridgedSupply(req: ReqGetBridgedSupply): Promise; quoteRemoteTransfer(req: ReqQuoteRemoteTransfer): Promise; } export interface ISigner extends IProvider { getSignerAddress(): string; supportsTransactionBatching(): boolean; transactionToPrintableJson(transaction: T): Promise; sendAndConfirmTransaction(transaction: T): Promise; sendAndConfirmBatchTransactions(transactions: T[]): Promise; } export interface IProviderConnect { connect(_rpcs: string[], _chainId: string | number, _extraParams?: Record): Promise; } export interface ISignerConnect { connectWithSigner(_rpcs: string[], _privateKey: string, _extraParams: Record): Promise>; } export declare abstract class ISupportedProtocols { abstract getSupportedProtocols(): ProtocolType[]; abstract supports(_protocol: ProtocolType): boolean; abstract getMinGas(_protocol: ProtocolType): MinimumRequiredGasByAction; } export declare abstract class IProviderFactory extends ISupportedProtocols { abstract get(chain: string): Promise; } export declare abstract class ISignerFactory extends ISupportedProtocols { abstract get(chain: string): ISigner; } //# sourceMappingURL=altvm.d.ts.map