Skip to content

Commit

Permalink
fix modify token transfers list inside method
Browse files Browse the repository at this point in the history
  • Loading branch information
popenta committed Jul 2, 2024
1 parent 3c32159 commit 969d0df
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ export class SmartContractTransactionsFactory {
tokenTransfers?: TokenTransfer[];
}): Transaction {
const args = options.arguments || [];
let tokenTransfers = options.tokenTransfers || [];
let tokenTransfers = options.tokenTransfers ? [...options.tokenTransfers] : [];
let nativeTransferAmount = options.nativeTransferAmount ?? 0n;
let numberOfTokens = tokenTransfers.length;

Expand Down
16 changes: 9 additions & 7 deletions src/transactionsFactories/transferTransactionsFactory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,26 +151,28 @@ export class TransferTransactionsFactory {
tokenTransfers?: TokenTransfer[];
data?: Uint8Array;
}): Transaction {
if (!options.nativeAmount && !options.tokenTransfers?.length) {
const nativeAmount = options.nativeAmount ?? 0n;
let tokenTransfers = options.tokenTransfers ? [...options.tokenTransfers] : [];
const numberOfTokens = tokenTransfers.length;

if (!nativeAmount && !numberOfTokens) {
throw new ErrBadUsage("No native token amount or token transfers provided");
}

if (options.tokenTransfers?.length && options.data?.length) {
if (numberOfTokens && options.data?.length) {
throw new ErrBadUsage("Can't set data field when sending esdt tokens");
}

if (options.nativeAmount && !options.tokenTransfers) {
if (nativeAmount && !tokenTransfers) {
return this.createTransactionForNativeTokenTransfer({
sender: options.sender,
receiver: options.receiver,
nativeAmount: options.nativeAmount,
nativeAmount: nativeAmount,
data: options.data,
});
}

let tokenTransfers = options.tokenTransfers ? [...options.tokenTransfers] : [];

const nativeTransfer = options.nativeAmount ? TokenTransfer.newFromEgldAmount(options.nativeAmount) : undefined;
const nativeTransfer = nativeAmount ? TokenTransfer.newFromEgldAmount(nativeAmount) : undefined;
nativeTransfer ? tokenTransfers.push(nativeTransfer) : null;

return this.createTransactionForESDTTokenTransfer({
Expand Down

0 comments on commit 969d0df

Please sign in to comment.