import { AccountAddressInput, AccountAddress } from '../core/accountAddress.mjs'; import { AnyNumber, MoveStructId, PaginationArgsOfIndexer } from '../types/index.mjs'; import { EndlessConfig } from './endlessConfig.mjs'; import { SimpleTransaction } from '../transactions/instances/simpleTransaction.mjs'; import { InputGenerateTransactionOptions } from '../transactions/types.mjs'; import { GetCoinDataResponse, PageableHoldersItem, PageableFungibleAssetMetadataResponse } from '../types/indexer.mjs'; import '../bcs/serializer.mjs'; import '../core/hex.mjs'; import '../core/common.mjs'; import '../bcs/deserializer.mjs'; import '../transactions/instances/transactionArgument.mjs'; import '../utils/apiEndpoints.mjs'; import '../utils/const.mjs'; import '../transactions/instances/rawTransaction.mjs'; import '../transactions/instances/chainId.mjs'; import '../transactions/instances/transactionPayload.mjs'; import '../transactions/instances/identifier.mjs'; import '../transactions/instances/moduleId.mjs'; import '../transactions/typeTag/index.mjs'; import '../bcs/serializable/moveStructs.mjs'; import '../bcs/serializable/movePrimitives.mjs'; import '../bcs/serializable/fixedBytes.mjs'; import '../authenticationKey-BaHTUD3k.mjs'; import '../core/crypto/signature.mjs'; import '../transactions/authenticator/account.mjs'; import '../core/crypto/ed25519.mjs'; import '../core/crypto/privateKey.mjs'; import '../core/crypto/multiEd25519.mjs'; import '../core/crypto/multiKey.mjs'; import '../core/crypto/singleKey.mjs'; import '../core/crypto/bls12381.mjs'; import '../core/crypto/multiAuthKey.mjs'; import '../transactions/instances/multiAgentTransaction.mjs'; /** * A class to handle all `Coin` operations */ declare class Coin { readonly config: EndlessConfig; constructor(config: EndlessConfig); /** * Generate a transfer coin transaction that can be simulated and/or signed and submitted * * @example * const transferCoinTransaction = await endless.transferCoinTransaction({ * sender: "0x123", * recipient:"0x456", * amount: 10, * }) * * @param args.sender The sender account * @param args.recipient The recipient address * @param args.amount The amount to transfer * @param args.coinType optional. The coin struct type to transfer. Defaults to 0x1::endless_coin::EndlessCoin * * @returns SimpleTransaction */ transferCoinTransaction(args: { sender: AccountAddressInput; fungibleAssetMetadataAddress: AccountAddress; recipient: AccountAddress; amount: AnyNumber; coinType?: MoveStructId; options?: InputGenerateTransactionOptions; }): Promise; /** * @param args.coinAddress The coin address * * @returns GetCoinDataResponse */ getCoinData(coinAddress: AccountAddressInput): Promise; /** * @param args.coinListAddress The coin list address * * @returns GetCoinDataResponse[] */ getCoinListDataById(coinListAddress: AccountAddressInput[]): Promise; /** * Get coin holders * * @param coinAddress The coin address * @param options.page The page number, default is 0 * @param options.pageSize The page size, default is 30, max is 200 * * @returns PageableHoldersItem */ getCoinHolders(coinAddress: AccountAddressInput, options?: PaginationArgsOfIndexer): Promise; /** * Get all coins from indexer * * @param options.page The page number, default is 0 * @param options.pageSize The page size, default is 30, max is 200 * * @returns PageableFungibleAssetMetadataResponse */ getCoinsList(options?: PaginationArgsOfIndexer): Promise; } export { Coin };