@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
44 lines • 2.26 kB
TypeScript
import { MsgTransferEncodeObject } from '@cosmjs/stargate';
import { Address, Numberish } from '@hyperlane-xyz/utils';
import type { MultiProviderAdapter } from '../providers/MultiProviderAdapter.js';
import { ChainName } from '../types.js';
import type { IToken } from './IToken.js';
import { TokenAmount } from './TokenAmount.js';
import { TokenConnection } from './TokenConnection.js';
import { TokenMetadata } from './TokenMetadata.js';
import type { IHypTokenAdapter, ITokenAdapter } from './adapters/ITokenAdapter.js';
export declare class Token extends TokenMetadata implements IToken {
amount(amount: Numberish): TokenAmount<this>;
getConnections(): TokenConnection<IToken>[];
getConnectionForChain(chain: ChainName): TokenConnection<IToken> | undefined;
addConnection(connection: TokenConnection<IToken>): Token;
removeConnection(token: IToken): Token;
/**
* Returns a TokenAdapter for the token and multiProvider
* @throws If multiProvider does not contain this token's chain.
* @throws If token is an NFT (TODO NFT Adapter support)
*/
getAdapter(multiProvider: MultiProviderAdapter): ITokenAdapter<unknown>;
/**
* Returns a HypTokenAdapter for the token and multiProvider
* @throws If not applicable to this token's standard.
* @throws If multiProvider does not contain this token's chain.
* @throws If token is an NFT (TODO NFT Adapter support)
*/
getHypAdapter(multiProvider: MultiProviderAdapter<{
mailbox?: Address;
}>, destination?: ChainName): IHypTokenAdapter<unknown>;
protected getIbcAdapter(multiProvider: MultiProviderAdapter, connection: TokenConnection): IHypTokenAdapter<MsgTransferEncodeObject>;
/**
* Convenience method to create an adapter and return an account balance
*/
getBalance(multiProvider: MultiProviderAdapter, address: Address): Promise<TokenAmount<IToken>>;
}
interface GetCollateralTokenAdapterOptions {
multiProvider: MultiProviderAdapter;
chainName: ChainName;
tokenAddress: Address;
}
export declare function getCollateralTokenAdapter({ chainName, multiProvider, tokenAddress, }: GetCollateralTokenAdapterOptions): ITokenAdapter<unknown>;
export {};
//# sourceMappingURL=Token.d.ts.map