diff --git a/modules/sdk-coin-apt/src/lib/transaction/transferTransaction.ts b/modules/sdk-coin-apt/src/lib/transaction/transferTransaction.ts index 62a0fc4664..264cad73fd 100644 --- a/modules/sdk-coin-apt/src/lib/transaction/transferTransaction.ts +++ b/modules/sdk-coin-apt/src/lib/transaction/transferTransaction.ts @@ -35,12 +35,12 @@ export class TransferTransaction extends Transaction { const aptos = new Aptos(new AptosConfig({ network })); const senderAddress = AccountAddress.fromString(this._sender); const recipientAddress = AccountAddress.fromString(this._recipient.address); - + const typeArgs = this.assetId ? [this.assetId] : ['0x1::aptos_coin::AptosCoin']; const simpleTxn = await aptos.transaction.build.simple({ sender: senderAddress, data: { function: '0x1::aptos_account::transfer_coins', - typeArguments: ['0x1::aptos_coin::AptosCoin'], + typeArguments: typeArgs, functionArguments: [recipientAddress, this.recipient.amount], }, options: { diff --git a/modules/sdk-coin-apt/src/lib/transactionBuilder/fungibleAssetTransactionBuilder.ts b/modules/sdk-coin-apt/src/lib/transactionBuilder/fungibleAssetTransactionBuilder.ts index 4c60bdef53..c5263a5c17 100644 --- a/modules/sdk-coin-apt/src/lib/transactionBuilder/fungibleAssetTransactionBuilder.ts +++ b/modules/sdk-coin-apt/src/lib/transactionBuilder/fungibleAssetTransactionBuilder.ts @@ -17,6 +17,12 @@ export class FungibleAssetTransactionBuilder extends TransactionBuilder { return TransactionType.SendToken; } + assetId(assetId: string): TransactionBuilder { + this.validateAddress({ address: assetId }); + this.transaction.assetId = assetId; + return this; + } + /** @inheritdoc */ initBuilder(tx: FungibleAssetTransaction): void { this._transaction = tx; diff --git a/modules/sdk-coin-apt/src/lib/transactionBuilder/transactionBuilder.ts b/modules/sdk-coin-apt/src/lib/transactionBuilder/transactionBuilder.ts index 10ebbd0a40..7fc7ecf894 100644 --- a/modules/sdk-coin-apt/src/lib/transactionBuilder/transactionBuilder.ts +++ b/modules/sdk-coin-apt/src/lib/transactionBuilder/transactionBuilder.ts @@ -84,11 +84,7 @@ export abstract class TransactionBuilder extends BaseTransactionBuilder { return this; } - assetId(assetId: string): TransactionBuilder { - this.validateAddress({ address: assetId }); - this.transaction.assetId = assetId; - return this; - } + abstract assetId(assetId: string): TransactionBuilder; /** @inheritdoc */ protected signImplementation(key: BaseKey): Transaction { diff --git a/modules/sdk-coin-apt/src/lib/transactionBuilder/transferBuilder.ts b/modules/sdk-coin-apt/src/lib/transactionBuilder/transferBuilder.ts index fd1d70de1e..92c0a49d37 100644 --- a/modules/sdk-coin-apt/src/lib/transactionBuilder/transferBuilder.ts +++ b/modules/sdk-coin-apt/src/lib/transactionBuilder/transferBuilder.ts @@ -17,6 +17,11 @@ export class TransferBuilder extends TransactionBuilder { return TransactionType.Send; } + assetId(assetId: string): TransactionBuilder { + this.transaction.assetId = assetId ?? ''; + return this; + } + /** * Initialize the transaction builder fields using the decoded transaction data *