@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
73 lines • 3.61 kB
TypeScript
/// <reference types="node" resolution-mode="require"/>
import { MsgTransferEncodeObject } from '@cosmjs/stargate';
import { Address, Domain } from '@hyperlane-xyz/utils';
import { BaseCosmosAdapter } from '../../app/MultiProtocolApp.js';
import { MultiProtocolProvider } from '../../providers/MultiProtocolProvider.js';
import { ChainName } from '../../types.js';
import { TokenMetadata } from '../types.js';
import { IHypTokenAdapter, ITokenAdapter, InterchainGasQuote, TransferParams, TransferRemoteParams } from './ITokenAdapter.js';
export declare class CosmNativeTokenAdapter extends BaseCosmosAdapter implements ITokenAdapter<MsgTransferEncodeObject> {
readonly chainName: ChainName;
readonly multiProvider: MultiProtocolProvider;
readonly addresses: Record<string, Address>;
readonly properties: {
ibcDenom: string;
};
constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: Record<string, Address>, properties: {
ibcDenom: string;
});
getBalance(address: string): Promise<bigint>;
getMetadata(): Promise<TokenMetadata>;
getMinimumTransferAmount(_recipient: Address): Promise<bigint>;
isApproveRequired(): Promise<boolean>;
isRevokeApprovalRequired(_owner: Address, _spender: Address): Promise<boolean>;
populateApproveTx(_transferParams: TransferParams): Promise<MsgTransferEncodeObject>;
populateTransferTx(_transferParams: TransferParams): Promise<MsgTransferEncodeObject>;
getTotalSupply(): Promise<bigint | undefined>;
}
export declare class CosmIbcTokenAdapter extends CosmNativeTokenAdapter implements IHypTokenAdapter<MsgTransferEncodeObject> {
readonly chainName: ChainName;
readonly multiProvider: MultiProtocolProvider;
readonly addresses: Record<string, Address>;
readonly properties: {
ibcDenom: string;
sourcePort: string;
sourceChannel: string;
};
constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: Record<string, Address>, properties: {
ibcDenom: string;
sourcePort: string;
sourceChannel: string;
});
getDomains(): Promise<Domain[]>;
getRouterAddress(_domain: Domain): Promise<Buffer>;
getAllRouters(): Promise<Array<{
domain: Domain;
address: Buffer;
}>>;
getBridgedSupply(): Promise<bigint | undefined>;
quoteTransferRemoteGas(_destination: Domain): Promise<InterchainGasQuote>;
populateTransferRemoteTx(transferParams: TransferRemoteParams, memo?: string): Promise<MsgTransferEncodeObject>;
}
export declare class CosmIbcToWarpTokenAdapter extends CosmIbcTokenAdapter implements IHypTokenAdapter<MsgTransferEncodeObject> {
readonly chainName: ChainName;
readonly multiProvider: MultiProtocolProvider;
readonly addresses: {
intermediateRouterAddress: Address;
destinationRouterAddress: Address;
};
readonly properties: CosmIbcTokenAdapter['properties'] & {
intermediateIbcDenom: string;
intermediateChainName: ChainName;
};
constructor(chainName: ChainName, multiProvider: MultiProtocolProvider, addresses: {
intermediateRouterAddress: Address;
destinationRouterAddress: Address;
}, properties: CosmIbcTokenAdapter['properties'] & {
intermediateIbcDenom: string;
intermediateChainName: ChainName;
});
quoteTransferRemoteGas(_destination: Domain): Promise<InterchainGasQuote>;
populateTransferRemoteTx(transferParams: TransferRemoteParams): Promise<MsgTransferEncodeObject>;
}
//# sourceMappingURL=CosmosTokenAdapter.d.ts.map