@aptos-labs/ts-sdk
Version:
Aptos TypeScript SDK
37 lines (34 loc) • 1.3 kB
text/typescript
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,
});
}