UNPKG

@aptos-labs/ts-sdk

Version:
37 lines (34 loc) 1.3 kB
import { AptosConfig } from "../api/aptosConfig"; import { AccountAddressInput } from "../core"; import { EntryFunctionABI, InputGenerateTransactionOptions } from "../transactions/types"; import { AnyNumber, MoveStructId } from "../types"; import { APTOS_COIN } from "../utils/const"; import { generateTransaction } from "./transactionSubmission"; import { TypeTagAddress, TypeTagU64 } from "../transactions"; import { SimpleTransaction } from "../transactions/instances/simpleTransaction"; const coinTransferAbi: EntryFunctionABI = { typeParameters: [{ constraints: [] }], parameters: [new TypeTagAddress(), new TypeTagU64()], }; export async function transferCoinTransaction(args: { aptosConfig: AptosConfig; sender: AccountAddressInput; recipient: AccountAddressInput; amount: AnyNumber; coinType?: MoveStructId; options?: InputGenerateTransactionOptions; }): Promise<SimpleTransaction> { const { aptosConfig, sender, recipient, amount, coinType, options } = args; const coinStructType = coinType ?? APTOS_COIN; return generateTransaction({ aptosConfig, sender, data: { function: "0x1::aptos_account::transfer_coins", typeArguments: [coinStructType], functionArguments: [recipient, amount], abi: coinTransferAbi, }, options, }); }