Skip to content

Commit c98a7eb

Browse files
refactor: move token creation built inside a conditional if
1 parent e301b7d commit c98a7eb

File tree

1 file changed

+32
-28
lines changed

1 file changed

+32
-28
lines changed

src/nano_contracts/builder.ts

+32-28
Original file line numberDiff line numberDiff line change
@@ -480,38 +480,42 @@ class NanoContractTransactionBuilder {
480480
);
481481
}
482482

483-
if (this.createTokenOptions === null) {
484-
throw new NanoContractTransactionError(
485-
"Create token options can't be null when creating a create token transaction."
483+
if (this.vertexType === NanoContractVertexType.CREATE_TOKEN_TRANSACTION) {
484+
if (this.createTokenOptions === null) {
485+
throw new NanoContractTransactionError(
486+
'Create token options can\'t be null when creating a create token transaction.'
487+
);
488+
}
489+
490+
// It's a token creation transaction
491+
// then we get the token creation data from the utils method
492+
// and concatenate the nano actions inputs/outputs/tokens
493+
const data = await tokensUtils.prepareCreateTokenData(
494+
this.createTokenOptions.mintAddress,
495+
this.createTokenOptions.name,
496+
this.createTokenOptions.symbol,
497+
this.createTokenOptions.amount,
498+
this.wallet.storage,
499+
{
500+
changeAddress: this.createTokenOptions.changeAddress,
501+
createMint: this.createTokenOptions.createMint,
502+
mintAuthorityAddress: this.createTokenOptions.mintAuthorityAddress,
503+
createMelt: this.createTokenOptions.createMelt,
504+
meltAuthorityAddress: this.createTokenOptions.meltAuthorityAddress,
505+
data: this.createTokenOptions.data,
506+
isCreateNFT: this.createTokenOptions.isCreateNFT,
507+
skipDepositFee: this.createTokenOptions.contractPaysTokenDeposit,
508+
}
486509
);
487-
}
488510

489-
// It's a token creation transaction
490-
// then we get the token creation data from the utils method
491-
// and concatenate the nano actions inputs/outputs/tokens
492-
const data = await tokensUtils.prepareCreateTokenData(
493-
this.createTokenOptions.mintAddress,
494-
this.createTokenOptions.name,
495-
this.createTokenOptions.symbol,
496-
this.createTokenOptions.amount,
497-
this.wallet.storage,
498-
{
499-
changeAddress: this.createTokenOptions.changeAddress,
500-
createMint: this.createTokenOptions.createMint,
501-
mintAuthorityAddress: this.createTokenOptions.mintAuthorityAddress,
502-
createMelt: this.createTokenOptions.createMelt,
503-
meltAuthorityAddress: this.createTokenOptions.meltAuthorityAddress,
504-
data: this.createTokenOptions.data,
505-
isCreateNFT: this.createTokenOptions.isCreateNFT,
506-
skipDepositFee: this.createTokenOptions.contractPaysTokenDeposit,
507-
}
508-
);
511+
data.inputs = concat(data.inputs, inputs);
512+
data.outputs = concat(data.outputs, outputs);
513+
data.tokens = uniq(concat(data.tokens, tokens));
509514

510-
data.inputs = concat(data.inputs, inputs);
511-
data.outputs = concat(data.outputs, outputs);
512-
data.tokens = uniq(concat(data.tokens, tokens));
515+
return transactionUtils.createTransactionFromData(data, this.wallet.getNetworkObject());
516+
}
513517

514-
return transactionUtils.createTransactionFromData(data, this.wallet.getNetworkObject());
518+
throw new NanoContractTransactionError('Invalid vertex type.');
515519
}
516520

517521
/**

0 commit comments

Comments
 (0)