Skip to content

Commit

Permalink
small refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
popenta committed Jul 1, 2024
1 parent e979e03 commit f08ed7a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 17 deletions.
6 changes: 3 additions & 3 deletions src/transactionsFactories/transferTransactionsFactory.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ describe("test transfer transactions factory", function () {

it("should fail to create transaction for token transfers", async () => {
assert.throws(() => {
transferFactory.createTransactionForTokenTransfer({
transferFactory.createTransactionForTransfer({
sender: alice,
receiver: bob,
});
Expand All @@ -131,7 +131,7 @@ describe("test transfer transactions factory", function () {
const nft = new Token({ identifier: "NFT-123456", nonce: 10n });
const transfer = new TokenTransfer({ token: nft, amount: 1n });

transferFactory.createTransactionForTokenTransfer({
transferFactory.createTransactionForTransfer({
sender: alice,
receiver: bob,
tokenTransfers: [transfer],
Expand All @@ -147,7 +147,7 @@ describe("test transfer transactions factory", function () {
const secondNft = new Token({ identifier: "TEST-987654", nonce: 1n });
const secondTransfer = new TokenTransfer({ token: secondNft, amount: 1n });

const transaction = transferFactory.createTransactionForTokenTransfer({
const transaction = transferFactory.createTransactionForTransfer({
sender: alice,
receiver: bob,
nativeAmount: 1000000000000000000n,
Expand Down
26 changes: 12 additions & 14 deletions src/transactionsFactories/transferTransactionsFactory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ export class TransferTransactionsFactory {
}).build();
}

createTransactionForTokenTransfer(options: {
createTransactionForTransfer(options: {
sender: IAddress;
receiver: IAddress;
nativeAmount?: bigint;
Expand All @@ -169,29 +169,27 @@ export class TransferTransactionsFactory {
});
}

if (options.tokenTransfers?.length && !options.nativeAmount) {
return this.createTransactionForESDTTokenTransfer({
sender: options.sender,
receiver: options.receiver,
tokenTransfers: options.tokenTransfers,
});
}

// if the method does not return until here it means both nativeAmount and tokenTransfers have been provided
const nativeAmount = options.nativeAmount || 0n;
let tokenTransfers = options.tokenTransfers ? [...options.tokenTransfers] : [];

const nativeToken = new Token({ identifier: EGLD_IDENTIFIER_FOR_MULTI_ESDTNFT_TRANSFER });
const nativeTransfer = new TokenTransfer({ token: nativeToken, amount: nativeAmount });
const nativeTransfer = this.createNativeTransfer(options.nativeAmount);
nativeTransfer ? tokenTransfers.push(nativeTransfer) : null;

tokenTransfers.push(nativeTransfer);
return this.createTransactionForESDTTokenTransfer({
sender: options.sender,
receiver: options.receiver,
tokenTransfers: tokenTransfers,
});
}

private createNativeTransfer(nativeAmount?: bigint): TokenTransfer | undefined {
if (!nativeAmount) {
return undefined;
}

const nativeToken = new Token({ identifier: EGLD_IDENTIFIER_FOR_MULTI_ESDTNFT_TRANSFER });
return new TokenTransfer({ token: nativeToken, amount: nativeAmount });
}

/**
* This is a legacy method. Can only be used if the class was instantiated using `GasEstimator`.
* Use {@link createTransactionForNativeTokenTransfer} instead.
Expand Down

0 comments on commit f08ed7a

Please sign in to comment.