diff --git a/modules/abstract-cosmos/src/lib/transaction.ts b/modules/abstract-cosmos/src/lib/transaction.ts index 4c99660434..08006194ae 100644 --- a/modules/abstract-cosmos/src/lib/transaction.ts +++ b/modules/abstract-cosmos/src/lib/transaction.ts @@ -61,13 +61,13 @@ export class CosmosTransaction extends BaseTransaction { } /** @inheritDoc **/ - get id(): string { + get id(): string | undefined { if (this._id) { return this._id; } else if (this._cosmosLikeTransaction?.hash !== undefined) { return this._cosmosLikeTransaction.hash; } - return UNAVAILABLE_TEXT; + return undefined; } /** @inheritdoc */ diff --git a/modules/sdk-coin-ada/src/lib/transaction.ts b/modules/sdk-coin-ada/src/lib/transaction.ts index 1fa4cb90ea..5055dcfec2 100644 --- a/modules/sdk-coin-ada/src/lib/transaction.ts +++ b/modules/sdk-coin-ada/src/lib/transaction.ts @@ -77,7 +77,7 @@ export interface PledgeDetails { * The transaction data returned from the toJson() function of a transaction */ export interface TxData { - id: string; + id: string | undefined; type: TransactionType; inputs: TransactionInput[]; outputs: TransactionOutput[]; @@ -387,7 +387,7 @@ export class Transaction extends BaseTransaction { outputAmount: string; fee: { fee: string }; displayOrder: string[]; - id: string; + id: string | undefined; changeAmount: string; type: string; withdrawals: Withdrawal[]; diff --git a/modules/sdk-coin-ada/test/unit/StakingActivateBuilder.ts b/modules/sdk-coin-ada/test/unit/StakingActivateBuilder.ts index 78452c1364..0a099e407c 100644 --- a/modules/sdk-coin-ada/test/unit/StakingActivateBuilder.ts +++ b/modules/sdk-coin-ada/test/unit/StakingActivateBuilder.ts @@ -169,7 +169,7 @@ describe('ADA Staking Activate Transaction Builder', async () => { txBuilder2.addSignature({ pub: keyPairPayment.getKeys().pub }, Buffer.from(signaturePayment)); txBuilder2.addSignature({ pub: keyPairStake.getKeys().pub }, Buffer.from(signatureStake)); const signedTransaction2 = await txBuilder2.build(); - signedTransaction.id.should.equal(tx.id); + signedTransaction.id!.should.equal(tx.id); const serializedTransaction2 = signedTransaction2.toBroadcastFormat(); serializedTransaction2.should.equal(serializedTransaction); }); @@ -213,7 +213,7 @@ describe('ADA Staking Activate Transaction Builder', async () => { const signaturePayment = keyPairPayment.signMessage(signableHex2); txBuilder2.addSignature({ pub: keyPairPayment.getKeys().pub }, Buffer.from(signaturePayment)); const signedTransaction2 = await txBuilder2.build(); - signedTransaction.id.should.equal(tx.id); + signedTransaction.id!.should.equal(tx.id); const serializedTransaction2 = signedTransaction2.toBroadcastFormat(); serializedTransaction2.should.equal(serializedTransaction); }); diff --git a/modules/sdk-coin-ada/test/unit/StakingDeactivateBuilder.ts b/modules/sdk-coin-ada/test/unit/StakingDeactivateBuilder.ts index 5909022512..598cbfbe32 100644 --- a/modules/sdk-coin-ada/test/unit/StakingDeactivateBuilder.ts +++ b/modules/sdk-coin-ada/test/unit/StakingDeactivateBuilder.ts @@ -131,7 +131,7 @@ describe('ADA Staking Deactivate Transaction Builder', async () => { txBuilder2.addSignature({ pub: keyPairPayment.getKeys().pub }, Buffer.from(signaturePayment)); txBuilder2.addSignature({ pub: keyPairStake.getKeys().pub }, Buffer.from(signatureStake)); const signedTransaction2 = await txBuilder2.build(); - signedTransaction.id.should.equal(tx.id); + signedTransaction.id!.should.equal(tx.id); const serializedTransaction2 = signedTransaction2.toBroadcastFormat(); serializedTransaction2.should.equal(serializedTransaction); }); diff --git a/modules/sdk-coin-ada/test/unit/stakingWithdrawBuilder.ts b/modules/sdk-coin-ada/test/unit/stakingWithdrawBuilder.ts index a7a54b8942..5c8bb30dfe 100644 --- a/modules/sdk-coin-ada/test/unit/stakingWithdrawBuilder.ts +++ b/modules/sdk-coin-ada/test/unit/stakingWithdrawBuilder.ts @@ -140,7 +140,7 @@ describe('ADA Staking Withdraw Transaction Builder', async () => { txBuilder2.addSignature({ pub: keyPairPayment.getKeys().pub }, Buffer.from(signaturePayment)); txBuilder2.addSignature({ pub: keyPairStake.getKeys().pub }, Buffer.from(signatureStake)); const signedTransaction2 = await txBuilder2.build(); - signedTransaction.id.should.equal(tx.id); + signedTransaction.id!.should.equal(tx.id); const serializedTransaction2 = signedTransaction2.toBroadcastFormat(); serializedTransaction2.should.equal(serializedTransaction); }); diff --git a/modules/sdk-coin-ada/test/unit/transaction.ts b/modules/sdk-coin-ada/test/unit/transaction.ts index 740d3783c0..7db7da6ee6 100644 --- a/modules/sdk-coin-ada/test/unit/transaction.ts +++ b/modules/sdk-coin-ada/test/unit/transaction.ts @@ -47,7 +47,7 @@ describe('ADA Transaction', () => { it('a signed transfer transaction', async () => { tx.fromRawTransaction(resources.rawTx.signedTx); const explain = tx.explainTransaction(); - explain.id.should.equal('1d0ac4a6496847341ddfd5087db6a687157cc6cc8ec9f999e72fbbc581a34523'); + explain.id!.should.equal('1d0ac4a6496847341ddfd5087db6a687157cc6cc8ec9f999e72fbbc581a34523'); explain.outputAmount.should.equal('253329150'); explain.outputs[0].amount.should.equal(resources.rawTx.outputAddress1.value); explain.outputs[0].address.should.equal(resources.rawTx.outputAddress1.address); @@ -58,7 +58,7 @@ describe('ADA Transaction', () => { it('an unsigned transfer transaction', async () => { tx.fromRawTransaction(resources.rawTx.unsignedTx); const explain = tx.explainTransaction(); - explain.id.should.equal('c091e2a0ac5a8bc4f522e69b2986d3a9b2b5615e6fcb7b265d0b8d449c03e591'); + explain.id!.should.equal('c091e2a0ac5a8bc4f522e69b2986d3a9b2b5615e6fcb7b265d0b8d449c03e591'); explain.outputAmount.should.equal('253329150'); explain.outputs[0].amount.should.equal(resources.rawTx.outputAddress1.value); explain.outputs[0].address.should.equal(resources.rawTx.outputAddress1.address); diff --git a/modules/sdk-coin-ada/test/unit/transactionBuilder.ts b/modules/sdk-coin-ada/test/unit/transactionBuilder.ts index e104a441a6..e0e9c3b684 100644 --- a/modules/sdk-coin-ada/test/unit/transactionBuilder.ts +++ b/modules/sdk-coin-ada/test/unit/transactionBuilder.ts @@ -35,7 +35,7 @@ describe('ADA Transaction Builder', async () => { const fee = tx.getFee; txData.outputs[1].amount.should.equal((totalInput - outputAmount - Number(fee)).toString()); fee.should.equal('167437'); - txData.id.should.equal(testData.rawTxByron.txHash2); + txData.id!.should.equal(testData.rawTxByron.txHash2); const txBroadcast = tx.toBroadcastFormat(); should.equal(txBroadcast, testData.rawTxByron.unsignedTx2); }); @@ -66,7 +66,7 @@ describe('ADA Transaction Builder', async () => { const fee = tx.getFee; txData.outputs[1].amount.should.equal((totalInput - outputAmount - Number(fee)).toString()); fee.should.equal('167173'); - txData.id.should.equal(testData.rawTx.txHash2); + txData.id!.should.equal(testData.rawTx.txHash2); const txBroadcast = tx.toBroadcastFormat(); should.equal(txBroadcast, testData.rawTx.unsignedTx2); }); @@ -93,7 +93,7 @@ describe('ADA Transaction Builder', async () => { const fee = tx.getFee; txData.outputs[0].amount.should.equal((totalInput - outputAmount - Number(fee)).toString()); fee.should.equal('165545'); - txData.id.should.equal(testData.rawTx.txHash5); + txData.id!.should.equal(testData.rawTx.txHash5); const txBroadcast = tx.toBroadcastFormat(); should.equal(txBroadcast, testData.rawTx.unsignedTx5); }); @@ -116,7 +116,7 @@ describe('ADA Transaction Builder', async () => { .get_asset(expectedPolicyId, expectedAssetName) .to_str() .should.equal(quantity); - txData.id.should.equal(testData.rawTx.txHash3); + txData.id!.should.equal(testData.rawTx.txHash3); const txBroadcast = tx.toBroadcastFormat(); should.equal(txBroadcast, testData.rawTx.unsignedTx3); }); @@ -166,7 +166,7 @@ describe('ADA Transaction Builder', async () => { (totalInput - minAmountForSingleAsset - outputAmount - Number(fee)).toString() ); fee.should.equal('170253'); - txData.id.should.equal(testData.rawTx.txHash3); + txData.id!.should.equal(testData.rawTx.txHash3); const txBroadcast = tx.toBroadcastFormat(); should.equal(txBroadcast, testData.rawTx.unsignedTx3); }); @@ -235,7 +235,7 @@ describe('ADA Transaction Builder', async () => { (totalInput - minAmountForSingleAsset * 2 - outputAmount - Number(fee)).toString() ); fee.should.equal('175137'); - txData.id.should.equal(testData.rawTx.txHash4); + txData.id!.should.equal(testData.rawTx.txHash4); const txBroadcast = tx.toBroadcastFormat(); should.equal(txBroadcast, testData.rawTx.unsignedTx4); }); @@ -293,7 +293,7 @@ describe('ADA Transaction Builder', async () => { const fee = tx.getFee; txData.outputs[1].amount.should.equal((totalInput - outputAmount - Number(fee)).toString()); fee.should.equal('167173'); - txData.id.should.equal(testData.rawTx.txHash2); + txData.id!.should.equal(testData.rawTx.txHash2); const txBroadcast = tx.toBroadcastFormat(); should.equal(txBroadcast, testData.rawTx.signedTx2); }); diff --git a/modules/sdk-coin-apt/src/lib/iface.ts b/modules/sdk-coin-apt/src/lib/iface.ts index b4baeff87c..910ab99671 100644 --- a/modules/sdk-coin-apt/src/lib/iface.ts +++ b/modules/sdk-coin-apt/src/lib/iface.ts @@ -14,7 +14,7 @@ export interface AptTransactionExplanation extends BaseTransactionExplanation { * The transaction data returned from the toJson() function of a transaction */ export interface TxData { - id: string; + id: string | undefined; sender: string; /** @deprecated - use `recipients`. */ recipient?: TransactionRecipient; diff --git a/modules/sdk-coin-apt/src/lib/transaction/transaction.ts b/modules/sdk-coin-apt/src/lib/transaction/transaction.ts index 692a7e5d08..a09217d522 100644 --- a/modules/sdk-coin-apt/src/lib/transaction/transaction.ts +++ b/modules/sdk-coin-apt/src/lib/transaction/transaction.ts @@ -34,7 +34,7 @@ import { TransactionAuthenticatorFeePayer, TransactionPayload, } from '@aptos-labs/ts-sdk'; -import { DEFAULT_GAS_UNIT_PRICE, UNAVAILABLE_TEXT } from '../constants'; +import { DEFAULT_GAS_UNIT_PRICE } from '../constants'; import utils from '../utils'; import BigNumber from 'bignumber.js'; import { AptTransactionExplanation, TxData } from '../iface'; @@ -94,9 +94,9 @@ export abstract class Transaction extends BaseTransaction { } /** @inheritDoc **/ - public override get id(): string { + public override get id(): string | undefined { this.generateTxnId(); - return this._id ?? UNAVAILABLE_TEXT; + return this._id; } get sender(): string { diff --git a/modules/sdk-coin-avaxp/test/unit/lib/permissionlessValidatorTxBuilder.ts b/modules/sdk-coin-avaxp/test/unit/lib/permissionlessValidatorTxBuilder.ts index 4e8698ad22..19057d6ea8 100644 --- a/modules/sdk-coin-avaxp/test/unit/lib/permissionlessValidatorTxBuilder.ts +++ b/modules/sdk-coin-avaxp/test/unit/lib/permissionlessValidatorTxBuilder.ts @@ -46,7 +46,7 @@ describe('AvaxP permissionlessValidatorTxBuilder', () => { }); it('Should get a txid', async () => { - tx.id.should.equal(testData.ADD_VALIDATOR_ID_SAMPLE.txid); + tx.id!.should.equal(testData.ADD_VALIDATOR_ID_SAMPLE.txid); }); }); diff --git a/modules/sdk-coin-avaxp/test/unit/lib/transactionBuilderFactory.ts b/modules/sdk-coin-avaxp/test/unit/lib/transactionBuilderFactory.ts index 4ebe09d0b3..44192628ed 100644 --- a/modules/sdk-coin-avaxp/test/unit/lib/transactionBuilderFactory.ts +++ b/modules/sdk-coin-avaxp/test/unit/lib/transactionBuilderFactory.ts @@ -80,7 +80,7 @@ describe('AvaxP Transaction Builder Factory', () => { }); it('Should get a txid', async () => { - tx.id.should.equal(testData.ADD_VALIDATOR_ID_SAMPLE.txid); + tx.id!.should.equal(testData.ADD_VALIDATOR_ID_SAMPLE.txid); }); }); diff --git a/modules/sdk-coin-canton/src/lib/iface.ts b/modules/sdk-coin-canton/src/lib/iface.ts index d2e2fdd0a5..e8626f2dfa 100644 --- a/modules/sdk-coin-canton/src/lib/iface.ts +++ b/modules/sdk-coin-canton/src/lib/iface.ts @@ -34,7 +34,7 @@ export interface PreparedTxnParsedInfo { } export interface WalletInitTxData { - id: string; + id: string | undefined; type: TransactionType; preparedParty: PreparedParty; } diff --git a/modules/sdk-coin-dot/test/unit/transaction.ts b/modules/sdk-coin-dot/test/unit/transaction.ts index e1d3cd7dd6..71962593ed 100644 --- a/modules/sdk-coin-dot/test/unit/transaction.ts +++ b/modules/sdk-coin-dot/test/unit/transaction.ts @@ -119,7 +119,7 @@ describe('Dot Transaction', () => { tx.setTxJson(json); tx.transactionType(TransactionType.Send); const explain = tx.explainTransaction(); - explain.id.should.equal('0xecb860905342cf985b39276a07d6e6696746de4623c07df863f69cba153f939a'); + explain.id!.should.equal('0xecb860905342cf985b39276a07d6e6696746de4623c07df863f69cba153f939a'); explain.outputAmount.should.equal('1000000000000'); explain.outputs[0].amount.should.equal('1000000000000'); explain.outputs[0].address.should.equal(accounts.account2.address); diff --git a/modules/sdk-coin-flrp/test/unit/lib/exportInCTxBuilder.ts b/modules/sdk-coin-flrp/test/unit/lib/exportInCTxBuilder.ts index 2869bfd25d..f21a322586 100644 --- a/modules/sdk-coin-flrp/test/unit/lib/exportInCTxBuilder.ts +++ b/modules/sdk-coin-flrp/test/unit/lib/exportInCTxBuilder.ts @@ -137,7 +137,7 @@ describe('ExportInCTxBuilder', function () { const tx = await txBuilder.build(); const rawTx = tx.toBroadcastFormat(); rawTx.should.equal(testData.signedHex); - tx.id.should.equal(testData.txhash); + tx.id!.should.equal(testData.txhash); }); it('should sign export tx built from scratch and produce valid signature', async () => { @@ -162,7 +162,7 @@ describe('ExportInCTxBuilder', function () { const tx = await txBuilder.build(); const rawTx = tx.toBroadcastFormat(); rawTx.should.equal(testData.signedHex); - tx.id.should.equal(testData.txhash); + tx.id!.should.equal(testData.txhash); }); it('should reject signing with key that does not match from address', () => { @@ -185,7 +185,7 @@ describe('ExportInCTxBuilder', function () { const tx = await txBuilder.build(); const rawTx = tx.toBroadcastFormat(); rawTx.should.equal(signedExportHex); - tx.id.should.equal('3kXUsHix1bZRQ9hqUc24cp7sXFiy2LbPn6Eh2HQCAaMUi75s9'); + tx.id!.should.equal('3kXUsHix1bZRQ9hqUc24cp7sXFiy2LbPn6Eh2HQCAaMUi75s9'); }); }); }); diff --git a/modules/sdk-coin-flrp/test/unit/lib/exportInPTxBuilder.ts b/modules/sdk-coin-flrp/test/unit/lib/exportInPTxBuilder.ts index 5e699aa065..46b2ee9475 100644 --- a/modules/sdk-coin-flrp/test/unit/lib/exportInPTxBuilder.ts +++ b/modules/sdk-coin-flrp/test/unit/lib/exportInPTxBuilder.ts @@ -344,7 +344,7 @@ describe('Flrp Export In P Tx Builder', () => { const tx = await txBuilder.build(); const rawTx = tx.toBroadcastFormat(); - tx.id.should.equal('nSBwNcgfLbk5S425b1qaYaqTTCiMCV75KU4Fbnq8SPUUqLq2'); + tx.id!.should.equal('nSBwNcgfLbk5S425b1qaYaqTTCiMCV75KU4Fbnq8SPUUqLq2'); const hex = rawTx.replace('0x', ''); diff --git a/modules/sdk-coin-flrp/test/unit/lib/importInCTxBuilder.ts b/modules/sdk-coin-flrp/test/unit/lib/importInCTxBuilder.ts index 710b312508..148788327d 100644 --- a/modules/sdk-coin-flrp/test/unit/lib/importInCTxBuilder.ts +++ b/modules/sdk-coin-flrp/test/unit/lib/importInCTxBuilder.ts @@ -197,7 +197,7 @@ describe('Flrp Import In C Tx Builder', () => { const tx = await txBuilder.build(); const rawTx = tx.toBroadcastFormat(); - tx.id.should.equal('2t4gxEAdPLiiy9HsbjaQun1mVFewMoixNS64eZ56C38L4mpP1j'); + tx.id!.should.equal('2t4gxEAdPLiiy9HsbjaQun1mVFewMoixNS64eZ56C38L4mpP1j'); const hex = rawTx.replace('0x', ''); diff --git a/modules/sdk-coin-flrp/test/unit/lib/importInPTxBuilder.ts b/modules/sdk-coin-flrp/test/unit/lib/importInPTxBuilder.ts index 9d7c3412f3..5735ecd388 100644 --- a/modules/sdk-coin-flrp/test/unit/lib/importInPTxBuilder.ts +++ b/modules/sdk-coin-flrp/test/unit/lib/importInPTxBuilder.ts @@ -149,7 +149,7 @@ describe('Flrp Import In P Tx Builder', () => { const tx = await txBuilder.build(); const rawTx = tx.toBroadcastFormat(); rawTx.should.equal(signedImportHex); - tx.id.should.equal('2vwvuXp47dsUmqb4vkaMk7UsukrZNapKXT2ruZhVibbjMDpqr9'); + tx.id!.should.equal('2vwvuXp47dsUmqb4vkaMk7UsukrZNapKXT2ruZhVibbjMDpqr9'); }); it('should build and sign import tx with correct sigIndices - on-chain verified', async () => { @@ -195,7 +195,7 @@ describe('Flrp Import In P Tx Builder', () => { const tx = await txBuilder.build(); const rawTx = tx.toBroadcastFormat(); - tx.id.should.equal('bgHnEJ64td8u31aZrGDaWcDqxZ8vDV5qGd7bmSifgvUnUW8v2'); + tx.id!.should.equal('bgHnEJ64td8u31aZrGDaWcDqxZ8vDV5qGd7bmSifgvUnUW8v2'); const hex = rawTx.replace('0x', ''); const amountHex = parseInt(utxo.amount, 10).toString(16).padStart(16, '0'); diff --git a/modules/sdk-coin-flrp/test/unit/lib/signFlowTestSuit.ts b/modules/sdk-coin-flrp/test/unit/lib/signFlowTestSuit.ts index c698ad8569..fc576ec9d6 100644 --- a/modules/sdk-coin-flrp/test/unit/lib/signFlowTestSuit.ts +++ b/modules/sdk-coin-flrp/test/unit/lib/signFlowTestSuit.ts @@ -67,7 +67,7 @@ export default function signFlowTestSuit(data: signFlowTestSuitArgs): void { const tx = await txBuilder.build(); const rawTx = tx.toBroadcastFormat(); rawTx.should.equal(data.fullSignedTxHex); - tx.id.should.equal(data.txHash); + tx.id!.should.equal(data.txHash); }); it('Should full sign a tx for same values', async () => { @@ -77,7 +77,7 @@ export default function signFlowTestSuit(data: signFlowTestSuitArgs): void { const tx = await txBuilder.build(); const rawTx = tx.toBroadcastFormat(); rawTx.should.equal(data.fullSignedTxHex); - tx.id.should.equal(data.txHash); + tx.id!.should.equal(data.txHash); }); it('Should full sign a tx from half signed raw tx', async () => { @@ -86,7 +86,7 @@ export default function signFlowTestSuit(data: signFlowTestSuitArgs): void { const tx = await txBuilder.build(); const rawTx = tx.toBroadcastFormat(); rawTx.should.equal(data.fullSignedTxHex); - tx.id.should.equal(data.txHash); + tx.id!.should.equal(data.txHash); }); it('Should full sign a tx from unsigned raw tx', async () => { @@ -96,7 +96,7 @@ export default function signFlowTestSuit(data: signFlowTestSuitArgs): void { const tx = await txBuilder.build(); const rawTx = tx.toBroadcastFormat(); rawTx.should.equal(data.fullSignedTxHex); - tx.id.should.equal(data.txHash); + tx.id!.should.equal(data.txHash); }); }); } diff --git a/modules/sdk-coin-icp/src/lib/iface.ts b/modules/sdk-coin-icp/src/lib/iface.ts index f1a83621d6..5d2b65cb74 100644 --- a/modules/sdk-coin-icp/src/lib/iface.ts +++ b/modules/sdk-coin-icp/src/lib/iface.ts @@ -196,7 +196,7 @@ export interface RecoveryOptions { } export interface RecoveryTransaction { - id: string; + id: string | undefined; tx: string; } diff --git a/modules/sdk-coin-near/test/unit/transaction.ts b/modules/sdk-coin-near/test/unit/transaction.ts index e49c83cdb4..6c37f79bc9 100644 --- a/modules/sdk-coin-near/test/unit/transaction.ts +++ b/modules/sdk-coin-near/test/unit/transaction.ts @@ -66,7 +66,7 @@ describe('Near Transaction', () => { it('a signed transfer transaction', async () => { tx.fromRawTransaction(NearResources.rawTx.transfer.signed); const explain = tx.explainTransaction(); - explain.id.should.equal('5jTEPuDcMCeEgp1iyEbNBKsnhYz4F4c1EPDtRmxm3wCw'); + explain.id!.should.equal('5jTEPuDcMCeEgp1iyEbNBKsnhYz4F4c1EPDtRmxm3wCw'); /* TO-DO, fix amount calculation */ explain.outputAmount.should.equal('1000000000000000000000000'); explain.outputs[0].amount.should.equal('1000000000000000000000000'); @@ -79,7 +79,7 @@ describe('Near Transaction', () => { it('an unsigned transfer transaction', async () => { tx.fromRawTransaction(NearResources.rawTx.transfer.unsigned); const explain = tx.explainTransaction(); - explain.id.should.equal('5jTEPuDcMCeEgp1iyEbNBKsnhYz4F4c1EPDtRmxm3wCw'); + explain.id!.should.equal('5jTEPuDcMCeEgp1iyEbNBKsnhYz4F4c1EPDtRmxm3wCw'); explain.outputAmount.should.equal('1000000000000000000000000'); explain.outputs[0].amount.should.equal('1000000000000000000000000'); explain.outputs[0].address.should.equal(NearResources.accounts.account2.address); diff --git a/modules/sdk-coin-near/test/unit/transactionBuilder/stakingActivateBuilder.ts b/modules/sdk-coin-near/test/unit/transactionBuilder/stakingActivateBuilder.ts index 2657a42306..5811e203a2 100644 --- a/modules/sdk-coin-near/test/unit/transactionBuilder/stakingActivateBuilder.ts +++ b/modules/sdk-coin-near/test/unit/transactionBuilder/stakingActivateBuilder.ts @@ -122,7 +122,7 @@ describe('Near Staking Activate Builder', () => { value: '1000000', coin: 'tnear', }); - tx.id.should.equal('GpiLLaGs2Fk2bd7SQvhkJaZjj74UnPPdF7cUa9pw15je'); + tx.id!.should.equal('GpiLLaGs2Fk2bd7SQvhkJaZjj74UnPPdF7cUa9pw15je'); }); it('build from an signed staking activate', async () => { @@ -140,7 +140,7 @@ describe('Near Staking Activate Builder', () => { value: '1000000', coin: 'tnear', }); - tx.id.should.equal('GpiLLaGs2Fk2bd7SQvhkJaZjj74UnPPdF7cUa9pw15je'); + tx.id!.should.equal('GpiLLaGs2Fk2bd7SQvhkJaZjj74UnPPdF7cUa9pw15je'); const txJson = tx.toJson(); txJson.should.have.properties(['id', 'signerId', 'publicKey', 'nonce', 'actions', 'signature']); txJson.id.should.equal('GpiLLaGs2Fk2bd7SQvhkJaZjj74UnPPdF7cUa9pw15je'); diff --git a/modules/sdk-coin-sol/src/lib/transaction.ts b/modules/sdk-coin-sol/src/lib/transaction.ts index 1ddbc53c79..9748c8d62d 100644 --- a/modules/sdk-coin-sol/src/lib/transaction.ts +++ b/modules/sdk-coin-sol/src/lib/transaction.ts @@ -93,7 +93,7 @@ export class Transaction extends BaseTransaction { } /** @inheritDoc **/ - get id(): string { + get id(): string | undefined { // Solana transaction ID === first signature: https://docs.solana.com/terminology#transaction-id if (this._versionedTransaction) { const sig = this._versionedTransaction.signatures?.[0]; @@ -107,7 +107,7 @@ export class Transaction extends BaseTransaction { return base58.encode(this._solTransaction.signature); } - return UNAVAILABLE_TEXT; + return undefined; } get lamportsPerSignature(): number | undefined { diff --git a/modules/sdk-coin-sol/test/unit/sol.ts b/modules/sdk-coin-sol/test/unit/sol.ts index 2c5c79e6e7..f25bdb8288 100644 --- a/modules/sdk-coin-sol/test/unit/sol.ts +++ b/modules/sdk-coin-sol/test/unit/sol.ts @@ -890,7 +890,7 @@ describe('SOL:', function () { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'Send', changeOutputs: [], changeAmount: '0', @@ -983,7 +983,7 @@ describe('SOL:', function () { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'WalletInitialization', changeOutputs: [], changeAmount: '0', @@ -1070,7 +1070,7 @@ describe('SOL:', function () { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'Send', changeOutputs: [], changeAmount: '0', @@ -1175,7 +1175,7 @@ describe('SOL:', function () { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'StakingActivate', changeOutputs: [], changeAmount: '0', @@ -1227,7 +1227,7 @@ describe('SOL:', function () { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'StakingDeactivate', changeOutputs: [], changeAmount: '0', @@ -1275,7 +1275,7 @@ describe('SOL:', function () { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'StakingWithdraw', changeOutputs: [], changeAmount: '0', @@ -1331,7 +1331,7 @@ describe('SOL:', function () { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'AssociatedTokenAccountInitialization', changeOutputs: [], changeAmount: '0', @@ -1398,7 +1398,7 @@ describe('SOL:', function () { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'AssociatedTokenAccountInitialization', changeOutputs: [], changeAmount: '0', @@ -1448,7 +1448,7 @@ describe('SOL:', function () { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'Send', changeOutputs: [], changeAmount: '0', diff --git a/modules/sdk-coin-sol/test/unit/transaction.ts b/modules/sdk-coin-sol/test/unit/transaction.ts index effb9aa0fc..95da010e84 100644 --- a/modules/sdk-coin-sol/test/unit/transaction.ts +++ b/modules/sdk-coin-sol/test/unit/transaction.ts @@ -248,7 +248,7 @@ describe('Sol Transaction', () => { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'Send', changeOutputs: [], changeAmount: '0', @@ -293,7 +293,7 @@ describe('Sol Transaction', () => { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'Send', changeOutputs: [], changeAmount: '0', @@ -344,7 +344,7 @@ describe('Sol Transaction', () => { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'Send', changeOutputs: [], changeAmount: '0', @@ -449,7 +449,7 @@ describe('Sol Transaction', () => { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'WalletInitialization', changeOutputs: [], changeAmount: '0', @@ -496,7 +496,7 @@ describe('Sol Transaction', () => { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'WalletInitialization', changeOutputs: [], changeAmount: '0', @@ -592,7 +592,7 @@ describe('Sol Transaction', () => { explainedTransaction.displayOrder.should.containEql('tokenEnablements'); // Verify other important fields - explainedTransaction.id.should.equal('UNAVAILABLE'); + should.equal(explainedTransaction.id, undefined); explainedTransaction.type.should.equal('AssociatedTokenAccountInitialization'); explainedTransaction.outputs.should.be.an.Array().and.be.empty(); explainedTransaction.fee.fee.should.equal('15000'); @@ -669,7 +669,7 @@ describe('Sol Transaction', () => { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'StakingActivate', changeOutputs: [], changeAmount: '0', @@ -717,7 +717,7 @@ describe('Sol Transaction', () => { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'StakingDeactivate', changeOutputs: [], changeAmount: '0', @@ -760,7 +760,7 @@ describe('Sol Transaction', () => { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'StakingWithdraw', changeOutputs: [], changeAmount: '0', @@ -809,7 +809,7 @@ describe('Sol Transaction', () => { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'StakingWithdraw', changeOutputs: [], changeAmount: '0', @@ -858,7 +858,7 @@ describe('Sol Transaction', () => { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'Send', changeOutputs: [], changeAmount: '0', @@ -912,7 +912,7 @@ describe('Sol Transaction', () => { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'Send', changeOutputs: [], changeAmount: '0', @@ -961,7 +961,7 @@ describe('Sol Transaction', () => { 'fee', 'memo', ], - id: 'UNAVAILABLE', + id: undefined, type: 'Send', changeOutputs: [], changeAmount: '0', diff --git a/modules/sdk-coin-sol/test/unit/transactionBuilder/tokenTransferBuilder.ts b/modules/sdk-coin-sol/test/unit/transactionBuilder/tokenTransferBuilder.ts index b555b330b0..b05f11e144 100644 --- a/modules/sdk-coin-sol/test/unit/transactionBuilder/tokenTransferBuilder.ts +++ b/modules/sdk-coin-sol/test/unit/transactionBuilder/tokenTransferBuilder.ts @@ -154,7 +154,7 @@ describe('Sol Token Transfer Builder', () => { txBuilder.sign({ key: walletSK }); txBuilder.setPriorityFee(priorityFee); const tx = await txBuilder.build(); - tx.id.should.not.equal(undefined); + should.exist(tx.id); tx.inputs.length.should.equal(1); tx.inputs[0].should.deepEqual({ address: walletPK, diff --git a/modules/sdk-coin-sol/test/unit/transactionBuilder/transactionBuilder.ts b/modules/sdk-coin-sol/test/unit/transactionBuilder/transactionBuilder.ts index 561edbfc58..33edc687dd 100644 --- a/modules/sdk-coin-sol/test/unit/transactionBuilder/transactionBuilder.ts +++ b/modules/sdk-coin-sol/test/unit/transactionBuilder/transactionBuilder.ts @@ -429,7 +429,7 @@ describe('Sol Transaction Builder', async () => { let signedTransaction = await transferBuilder.build(); signedTransaction.signature.length.should.equal(1); signedTransaction.signature[0].should.equal(bs58.encode(rawSignature)); - signedTransaction.id.should.equal(bs58.encode(rawSignature)); + signedTransaction.id!.should.equal(bs58.encode(rawSignature)); // signing with A and C A_sign_share = MPC.signShare(signablePayload, A_combine.pShare, [A_combine.jShares[3]]); @@ -449,7 +449,7 @@ describe('Sol Transaction Builder', async () => { signedTransaction = await transferBuilder.build(); signedTransaction.signature.length.should.equal(1); signedTransaction.signature[0].should.equal(bs58.encode(rawSignature)); - signedTransaction.id.should.equal(bs58.encode(rawSignature)); + signedTransaction.id!.should.equal(bs58.encode(rawSignature)); // signing with B and C B_sign_share = MPC.signShare(signablePayload, B_combine.pShare, [B_combine.jShares[3]]); @@ -469,11 +469,11 @@ describe('Sol Transaction Builder', async () => { signedTransaction = await transferBuilder.build(); signedTransaction.signature.length.should.equal(1); signedTransaction.signature[0].should.equal(bs58.encode(rawSignature)); - signedTransaction.id.should.equal(bs58.encode(rawSignature)); + signedTransaction.id!.should.equal(bs58.encode(rawSignature)); const rawTransaction = signedTransaction.toBroadcastFormat() as string; const rebuiltTransaction = await factory.from(rawTransaction).build(); - rebuiltTransaction.id.should.equal(signedTransaction.id); + rebuiltTransaction.id!.should.equal(signedTransaction.id); rebuiltTransaction.signature.should.deepEqual(signedTransaction.signature); }); @@ -516,11 +516,11 @@ describe('Sol Transaction Builder', async () => { const signedTransaction = await transferBuilder.build(); signedTransaction.signature.length.should.equal(1); signedTransaction.signature[0].should.equal(bs58.encode(rawSignature)); - signedTransaction.id.should.equal(bs58.encode(rawSignature)); + signedTransaction.id!.should.equal(bs58.encode(rawSignature)); const rawTransaction = signedTransaction.toBroadcastFormat() as string; const rebuiltTransaction = await factory.from(rawTransaction).build(); - rebuiltTransaction.id.should.equal(signedTransaction.id); + rebuiltTransaction.id!.should.equal(signedTransaction.id); rebuiltTransaction.signature.should.deepEqual(signedTransaction.signature); } }); diff --git a/modules/sdk-coin-sol/test/unit/transactionBuilder/transferBuilderV2.ts b/modules/sdk-coin-sol/test/unit/transactionBuilder/transferBuilderV2.ts index 60cd1ebbf8..6c294e0135 100644 --- a/modules/sdk-coin-sol/test/unit/transactionBuilder/transferBuilderV2.ts +++ b/modules/sdk-coin-sol/test/unit/transactionBuilder/transferBuilderV2.ts @@ -407,7 +407,8 @@ describe('Sol Transfer Builder V2', () => { txBuilder.sign({ key: walletSK }); txBuilder.setPriorityFee(priorityFee); const tx = await txBuilder.build(); - tx.id.should.not.equal(undefined); + // tx.id is undefined because the fee payer signature slot is all zeros (partially signed) + should.not.exist(tx.id); tx.inputs.length.should.equal(1); tx.inputs[0].should.deepEqual({ address: walletPK, @@ -439,7 +440,8 @@ describe('Sol Transfer Builder V2', () => { txBuilder.sign({ key: walletSK }); txBuilder.setPriorityFee(priorityFee); const tx = await txBuilder.build(); - tx.id.should.not.equal(undefined); + // tx.id is undefined because the fee payer signature slot is all zeros (partially signed) + should.not.exist(tx.id); tx.inputs.length.should.equal(1); tx.inputs[0].should.deepEqual({ address: walletPK, @@ -509,7 +511,8 @@ describe('Sol Transfer Builder V2', () => { txBuilder.sign({ key: walletSK }); txBuilder.setPriorityFee(priorityFee); const tx = await txBuilder.build(); - tx.id.should.not.equal(undefined); + // tx.id is undefined because the fee payer signature slot is all zeros (partially signed) + should.not.exist(tx.id); tx.inputs.length.should.equal(1); tx.inputs[0].should.deepEqual({ address: walletPK, diff --git a/modules/sdk-coin-sui/src/lib/customTransaction.ts b/modules/sdk-coin-sui/src/lib/customTransaction.ts index 0075a3e3a6..966df15946 100644 --- a/modules/sdk-coin-sui/src/lib/customTransaction.ts +++ b/modules/sdk-coin-sui/src/lib/customTransaction.ts @@ -9,7 +9,6 @@ import { Transaction } from './transaction'; import { BaseCoin as CoinConfig } from '@bitgo/statics'; import utils from './utils'; import { BaseKey, InvalidTransactionError, Recipient, TransactionRecipient, TransactionType } from '@bitgo/sdk-core'; -import { UNAVAILABLE_TEXT } from './constants'; export class CustomTransaction extends Transaction { private _rawTransaction: string; @@ -42,8 +41,8 @@ export class CustomTransaction extends Transaction extends BaseTransaction { } /** @inheritDoc **/ - get id(): string { + get id(): string | undefined { const dataBytes = this.getDataBytes(); const hash = hashTypedData('TransactionData', dataBytes); this._id = bs58.encode(hash); diff --git a/modules/sdk-coin-sui/src/lib/transferTransaction.ts b/modules/sdk-coin-sui/src/lib/transferTransaction.ts index eff8af6b04..7bbfa8b96e 100644 --- a/modules/sdk-coin-sui/src/lib/transferTransaction.ts +++ b/modules/sdk-coin-sui/src/lib/transferTransaction.ts @@ -9,7 +9,7 @@ import { } from '@bitgo/sdk-core'; import { SuiTransaction, TransactionExplanation, TransferProgrammableTransaction, TxData } from './iface'; import { BaseCoin as CoinConfig } from '@bitgo/statics'; -import { MAX_GAS_OBJECTS, SUI_ADDRESS_LENGTH, UNAVAILABLE_TEXT } from './constants'; +import { MAX_GAS_OBJECTS, SUI_ADDRESS_LENGTH } from './constants'; import { Buffer } from 'buffer'; import { Transaction } from './transaction'; import { CallArg, SuiObjectRef, normalizeSuiAddress } from './mystenlab/types'; @@ -38,8 +38,8 @@ export class TransferTransaction extends Transaction { txBuilder.send(recipients); txBuilder.gasData(testData.gasData); const tx = await txBuilder.build(); - should.equal(tx.id, 'UNAVAILABLE'); + should.equal(tx.id, undefined); const rawTx = tx.toBroadcastFormat(); should.equal(rawTx, testData.TRANSFER); @@ -70,7 +70,7 @@ describe('Sui Transaction Builder', async () => { txBuilder.send(recipients); txBuilder.gasData(testData.gasDataHavingDifferentOwner); const tx = await txBuilder.build(); - should.equal(tx.id, 'UNAVAILABLE'); + should.equal(tx.id, undefined); const rawTx = tx.toBroadcastFormat(); should.equal(rawTx, testData.FEE_SPONSOR_TRANSFER); diff --git a/modules/sdk-coin-tempo/src/lib/transaction.ts b/modules/sdk-coin-tempo/src/lib/transaction.ts index 941ac2bcf8..d233309e98 100644 --- a/modules/sdk-coin-tempo/src/lib/transaction.ts +++ b/modules/sdk-coin-tempo/src/lib/transaction.ts @@ -199,8 +199,8 @@ export class Tip20Transaction extends BaseTransaction { return await this.serialize(this._signature); } - get id(): string { - return 'pending'; + get id(): string | undefined { + return undefined; } toString(): string { diff --git a/modules/sdk-coin-ton/src/lib/iface.ts b/modules/sdk-coin-ton/src/lib/iface.ts index 7c24021ee5..1a2c579882 100644 --- a/modules/sdk-coin-ton/src/lib/iface.ts +++ b/modules/sdk-coin-ton/src/lib/iface.ts @@ -5,7 +5,7 @@ import { ITransactionExplanation } from './transactionExplanation'; * The transaction data returned from the toJson() function of a transaction */ export interface TxData { - id: string; + id: string | undefined; sender: string; destination: string; destinationAlias: string; diff --git a/modules/sdk-coin-ton/src/lib/transactionExplanation.ts b/modules/sdk-coin-ton/src/lib/transactionExplanation.ts index 2d35f69693..9f8bcb711d 100644 --- a/modules/sdk-coin-ton/src/lib/transactionExplanation.ts +++ b/modules/sdk-coin-ton/src/lib/transactionExplanation.ts @@ -2,7 +2,7 @@ import { ITransactionRecipient } from '@bitgo/sdk-core'; export interface ITransactionExplanation { displayOrder: string[]; - id: string; + id: string | undefined; outputs: ITransactionRecipient[]; outputAmount: TAmount; changeOutputs: ITransactionRecipient[]; diff --git a/modules/sdk-coin-ton/test/unit/singleNominatorWithdrawBuilder.ts b/modules/sdk-coin-ton/test/unit/singleNominatorWithdrawBuilder.ts index c387285985..7380c4a716 100644 --- a/modules/sdk-coin-ton/test/unit/singleNominatorWithdrawBuilder.ts +++ b/modules/sdk-coin-ton/test/unit/singleNominatorWithdrawBuilder.ts @@ -36,7 +36,7 @@ describe('Ton Single Nominator Withdraw Builder', () => { value: testData.recipients[0].amount, coin: 'tton', }); - tx.id.should.equal(txId); + tx.id!.should.equal(txId); const rawTx = tx.toBroadcastFormat(); factory.from(rawTx); rawTx.should.equal( @@ -71,7 +71,7 @@ describe('Ton Single Nominator Withdraw Builder', () => { value: testData.recipients[0].amount, coin: 'tton', }); - tx.id.should.equal(txId); + tx.id!.should.equal(txId); const rawTx = tx.toBroadcastFormat(); rawTx.should.equal( 'te6cckECGAEAA8MAAuGIADZN0H0n1tz6xkYgWqJSRmkURKYajjEgXeawBo9cifPIGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACmpoxdJlgLSAAAAAAADgEXAgE0AhYBFP8A9KQT9LzyyAsDAgEgBBECAUgFCALm0AHQ0wMhcbCSXwTgItdJwSCSXwTgAtMfIYIQcGx1Z70ighBkc3RyvbCSXwXgA/pAMCD6RAHIygfL/8nQ7UTQgQFA1yH0BDBcgQEI9ApvoTGzkl8H4AXTP8glghBwbHVnupI4MOMNA4IQZHN0crqSXwbjDQYHAHgB+gD0BDD4J28iMFAKoSG+8uBQghBwbHVngx6xcIAYUATLBSbPFlj6Ahn0AMtpF8sfUmDLPyDJgED7AAYAilAEgQEI9Fkw7UTQgQFA1yDIAc8W9ADJ7VQBcrCOI4IQZHN0coMesXCAGFAFywVQA88WI/oCE8tqyx/LP8mAQPsAkl8D4gIBIAkQAgEgCg8CAVgLDAA9sp37UTQgQFA1yH0BDACyMoHy//J0AGBAQj0Cm+hMYAIBIA0OABmtznaiaEAga5Drhf/AABmvHfaiaEAQa5DrhY/AABG4yX7UTQ1wsfgAWb0kK29qJoQICga5D6AhhHDUCAhHpJN9KZEM5pA+n/mDeBKAG3gQFImHFZ8xhAT48oMI1xgg0x/TH9MfAvgju/Jk7UTQ0x/TH9P/9ATRUUO68qFRUbryogX5AVQQZPkQ8qP4ACSkyMsfUkDLH1Iwy/9SEPQAye1U+A8B0wchwACfbFGTINdKltMH1AL7AOgw4CHAAeMAIcAC4wABwAORMOMNA6TIyx8Syx/L/xITFBUAbtIH+gDU1CL5AAXIygcVy//J0Hd0gBjIywXLAiLPFlAF+gIUy2sSzMzJc/sAyEAUgQEI9FHypwIAcIEBCNcY+gDTP8hUIEeBAQj0UfKnghBub3RlcHSAGMjLBcsCUAbPFlAE+gIUy2oSyx/LP8lz+wACAGyBAQjXGPoA0z8wUiSBAQj0WfKnghBkc3RycHSAGMjLBcsCUAXPFlAD+gITy2rLHxLLP8lz+wAACvQAye1UAFEAAAAAKamjF8DDudwJkyEh7jUbJEjFCjriVxsSlRJFyF872V1eegb4QACPYgAaRefBOjTi/hwqDjv+7I6nGj9WEAe3ls/rFuBEQvggr6A613oAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAHA0/PoUC5EIBDddHQ==' diff --git a/modules/sdk-coin-ton/test/unit/tokenTransferBuilder.ts b/modules/sdk-coin-ton/test/unit/tokenTransferBuilder.ts index e1879d42e0..528031d07f 100644 --- a/modules/sdk-coin-ton/test/unit/tokenTransferBuilder.ts +++ b/modules/sdk-coin-ton/test/unit/tokenTransferBuilder.ts @@ -37,7 +37,7 @@ describe('Ton Token Transfer Builder', () => { value: testData.tokenRecipients[0].amount, coin: tokenName, }); - tx.id.should.equal(txId); + tx.id!.should.equal(txId); const rawTx = tx.toBroadcastFormat(); rawTx.should.equal(testData.signedTokenSendTransaction.tx); }); @@ -71,7 +71,7 @@ describe('Ton Token Transfer Builder', () => { value: testData.tokenRecipients[0].amount, coin: tokenName, }); - tx.id.should.equal(txId); + tx.id!.should.equal(txId); const rawTx = tx.toBroadcastFormat(); rawTx.should.equal(testData.signedTokenSendTransaction.txBounceable); }); diff --git a/modules/sdk-coin-ton/test/unit/transferBuilder.ts b/modules/sdk-coin-ton/test/unit/transferBuilder.ts index 5a00acc918..c18cb0cfd6 100644 --- a/modules/sdk-coin-ton/test/unit/transferBuilder.ts +++ b/modules/sdk-coin-ton/test/unit/transferBuilder.ts @@ -33,7 +33,7 @@ describe('Ton Transfer Builder', () => { value: testData.recipients[0].amount, coin: 'tton', }); - tx.id.should.equal(txId); + tx.id!.should.equal(txId); const rawTx = tx.toBroadcastFormat(); console.log(rawTx); rawTx.should.equal( @@ -66,7 +66,7 @@ describe('Ton Transfer Builder', () => { value: testData.recipients[0].amount, coin: 'tton', }); - tx.id.should.equal(txId); + tx.id!.should.equal(txId); const rawTx = tx.toBroadcastFormat(); console.log(rawTx); rawTx.should.equal( diff --git a/modules/sdk-coin-vet/src/lib/iface.ts b/modules/sdk-coin-vet/src/lib/iface.ts index 15c94b418e..9b8ed860f5 100644 --- a/modules/sdk-coin-vet/src/lib/iface.ts +++ b/modules/sdk-coin-vet/src/lib/iface.ts @@ -9,7 +9,7 @@ import { ClaimRewardsData } from './types'; * The transaction data returned from the toJson() function of a transaction */ export interface VetTransactionData { - id: string; + id: string | undefined; chainTag: number; blockRef: string; expiration: number; diff --git a/modules/sdk-coin-vet/src/lib/transaction/transaction.ts b/modules/sdk-coin-vet/src/lib/transaction/transaction.ts index b6d56e0600..23e3fe2738 100644 --- a/modules/sdk-coin-vet/src/lib/transaction/transaction.ts +++ b/modules/sdk-coin-vet/src/lib/transaction/transaction.ts @@ -51,9 +51,9 @@ export class Transaction extends BaseTransaction { this._isRecovery = false; } - public get id(): string { + public get id(): string | undefined { this.generateTxnIdAndSetSender(); - return this._id ?? 'UNAVAILABLE'; + return this._id; } get rawTransaction(): VetTransaction { diff --git a/modules/sdk-coin-vet/src/lib/types.ts b/modules/sdk-coin-vet/src/lib/types.ts index c4147cfc51..dfdbd95da9 100644 --- a/modules/sdk-coin-vet/src/lib/types.ts +++ b/modules/sdk-coin-vet/src/lib/types.ts @@ -24,7 +24,7 @@ export type RecoverOptions = { }; export interface RecoveryTransaction { - id: string; + id: string | undefined; tx: string; } diff --git a/modules/sdk-coin-vet/test/transactionBuilder/burnNftBuilder.ts b/modules/sdk-coin-vet/test/transactionBuilder/burnNftBuilder.ts index fd9ca04601..280a2a75b9 100644 --- a/modules/sdk-coin-vet/test/transactionBuilder/burnNftBuilder.ts +++ b/modules/sdk-coin-vet/test/transactionBuilder/burnNftBuilder.ts @@ -107,7 +107,7 @@ describe('Vet Burn NFT Transaction', () => { const txBuilder = factory.from(testData.BURN_NFT_TRANSACTION); const tx = txBuilder.transaction as BurnNftTransaction; const toJson = tx.toJson(); - toJson.id.should.equal('0xf5e074f2d127fa3ef014873ec193b76823efab51891d43861092bd52b122563e'); + toJson.id!.should.equal('0xf5e074f2d127fa3ef014873ec193b76823efab51891d43861092bd52b122563e'); toJson.stakingContractAddress?.should.equal('0x1e02b2953adefec225cf0ec49805b1146a4429c1'); toJson.nonce.should.equal('327224'); toJson.gas.should.equal(349324); diff --git a/modules/sdk-coin-vet/test/transactionBuilder/claimRewardsBuilder.ts b/modules/sdk-coin-vet/test/transactionBuilder/claimRewardsBuilder.ts index 4054907f8c..fef7a046f5 100644 --- a/modules/sdk-coin-vet/test/transactionBuilder/claimRewardsBuilder.ts +++ b/modules/sdk-coin-vet/test/transactionBuilder/claimRewardsBuilder.ts @@ -134,7 +134,7 @@ describe('VET Claim Rewards Transaction', function () { const txBuilder = factory.from(testData.CLAIM_REWARDS_TRANSACTION); const tx = txBuilder.transaction as ClaimRewardsTransaction; const toJson = tx.toJson(); - toJson.id.should.equal('0x841b388ee325838eb1e3efad661c2ae3266e950b8fc86b8bb484571bdfa27c6d'); + toJson.id!.should.equal('0x841b388ee325838eb1e3efad661c2ae3266e950b8fc86b8bb484571bdfa27c6d'); toJson.stakingContractAddress?.should.equal('0x1e02b2953adefec225cf0ec49805b1146a4429c1'); toJson.nonce.should.equal('973150'); toJson.gas.should.equal(150878); diff --git a/modules/sdk-coin-vet/test/transactionBuilder/delegateClauseTxnBuilder.ts b/modules/sdk-coin-vet/test/transactionBuilder/delegateClauseTxnBuilder.ts index 7d46aecfd1..cb6ffd7087 100644 --- a/modules/sdk-coin-vet/test/transactionBuilder/delegateClauseTxnBuilder.ts +++ b/modules/sdk-coin-vet/test/transactionBuilder/delegateClauseTxnBuilder.ts @@ -159,7 +159,7 @@ describe('VET Delegation Transaction', function () { const txBuilder = factory.from(testData.DELEGATION_TRANSACTION); const tx = txBuilder.transaction as DelegateClauseTransaction; const toJson = tx.toJson(); - toJson.id.should.equal('0x841fd66a1d7feff7ab3d432720a659697197e6c67da1aeb9ce9d93b131e46ab7'); + toJson.id!.should.equal('0x841fd66a1d7feff7ab3d432720a659697197e6c67da1aeb9ce9d93b131e46ab7'); toJson.stakingContractAddress?.should.equal('0x1e02b2953adefec225cf0ec49805b1146a4429c1'); toJson.nonce.should.equal('0xf341b4c6b5ff5294'); toJson.gas.should.equal(242796); diff --git a/modules/sdk-coin-vet/test/transactionBuilder/exitDelegationBuilder.ts b/modules/sdk-coin-vet/test/transactionBuilder/exitDelegationBuilder.ts index f2a13c3c6e..68b3bda78f 100644 --- a/modules/sdk-coin-vet/test/transactionBuilder/exitDelegationBuilder.ts +++ b/modules/sdk-coin-vet/test/transactionBuilder/exitDelegationBuilder.ts @@ -107,7 +107,7 @@ describe('Vet Exit Delegation Transaction', () => { const txBuilder = factory.from(testData.EXIT_DELEGATION_TRANSACTION); const tx = txBuilder.transaction as ExitDelegationTransaction; const toJson = tx.toJson(); - toJson.id.should.equal('0xeca0ba2c8fa91332a1fe037232aa0af9fe6e939313458a6838c6d4060ede0278'); + toJson.id!.should.equal('0xeca0ba2c8fa91332a1fe037232aa0af9fe6e939313458a6838c6d4060ede0278'); toJson.stakingContractAddress?.should.equal('0x1e02b2953adefec225cf0ec49805b1146a4429c1'); toJson.nonce.should.equal('390746'); toJson.gas.should.equal(217695); diff --git a/modules/sdk-coin-vet/test/transactionBuilder/stakeClauseTransactionBuilder.ts b/modules/sdk-coin-vet/test/transactionBuilder/stakeClauseTransactionBuilder.ts index c938167fc7..ac8f2be6f3 100644 --- a/modules/sdk-coin-vet/test/transactionBuilder/stakeClauseTransactionBuilder.ts +++ b/modules/sdk-coin-vet/test/transactionBuilder/stakeClauseTransactionBuilder.ts @@ -240,7 +240,7 @@ describe('VET Staking Transaction', function () { const txBuilder = factory.from(testData.STAKE_CLAUSE_TRANSACTION); const tx = txBuilder.transaction as StakeClauseTransaction; const toJson = tx.toJson(); - toJson.id.should.equal('0xe003dbe6db08e71b962aa97ba5cb9e69810f52db41d31111fe39654281c6227c'); + toJson.id!.should.equal('0xe003dbe6db08e71b962aa97ba5cb9e69810f52db41d31111fe39654281c6227c'); toJson.stakingContractAddress?.should.equal('0x1e02b2953adefec225cf0ec49805b1146a4429c1'); toJson.amountToStake?.should.equal(amountToStake); toJson.nonce.should.equal('0xf536788f0c121df3'); diff --git a/modules/sdk-coin-vet/test/transactionBuilder/stakingTransaction.ts b/modules/sdk-coin-vet/test/transactionBuilder/stakingTransaction.ts index f1fd4bbbd8..e511c15414 100644 --- a/modules/sdk-coin-vet/test/transactionBuilder/stakingTransaction.ts +++ b/modules/sdk-coin-vet/test/transactionBuilder/stakingTransaction.ts @@ -243,7 +243,7 @@ describe('VET Staking Transaction', function () { const txBuilder = factory.from(testData.STAKING_TRANSACTION); const tx = txBuilder.transaction as StakingTransaction; const toJson = tx.toJson(); - toJson.id.should.equal('0x99325b39cd04bd1821f6f6af7b679c247e6425a4eb95eb429fa8dff477298d0e'); + toJson.id!.should.equal('0x99325b39cd04bd1821f6f6af7b679c247e6425a4eb95eb429fa8dff477298d0e'); toJson.stakingContractAddress?.should.equal('0x1856c533ac2d94340aaa8544d35a5c1d4a21dee7'); toJson.amountToStake?.should.equal('0xde0b6b3a7640000'); toJson.nonce.should.equal('609363'); diff --git a/modules/sdk-coin-vet/test/unit/stakingFlowE2E.ts b/modules/sdk-coin-vet/test/unit/stakingFlowE2E.ts index 4add1b3fb9..0e5f986390 100644 --- a/modules/sdk-coin-vet/test/unit/stakingFlowE2E.ts +++ b/modules/sdk-coin-vet/test/unit/stakingFlowE2E.ts @@ -76,7 +76,7 @@ describe('VET Staking Flow - End-to-End Test', function () { // This should NOT throw "not signed transaction: id unavailable" error anymore const transactionId = stakingTx.id; should.exist(transactionId); - transactionId.should.not.equal('UNAVAILABLE'); + transactionId!.should.not.equal('UNAVAILABLE'); // Step 6: Serialize the fully signed transaction const serializedTx = stakingTx.toBroadcastFormat(); @@ -157,7 +157,7 @@ describe('VET Staking Flow - End-to-End Test', function () { // This should NOT throw "not signed transaction: id unavailable" error anymore const transactionId = validatorRegistrationTx.id; should.exist(transactionId); - transactionId.should.not.equal('UNAVAILABLE'); + transactionId!.should.not.equal('UNAVAILABLE'); // Step 6: Serialize the fully signed transaction const serializedTx = validatorRegistrationTx.toBroadcastFormat(); @@ -214,11 +214,11 @@ describe('VET Staking Flow - End-to-End Test', function () { // Should be able to get transaction ID with both signatures const fullSignedId = tx.id; should.exist(fullSignedId); - fullSignedId.should.not.equal('UNAVAILABLE'); + fullSignedId!.should.not.equal('UNAVAILABLE'); // The ID should be consistent - fullSignedId.should.be.type('string'); - fullSignedId.length.should.be.greaterThan(10); + fullSignedId!.should.be.type('string'); + fullSignedId!.length.should.be.greaterThan(10); }); it('should properly set transaction type for fee delegation validation', async function () { @@ -260,7 +260,7 @@ describe('VET Staking Flow - End-to-End Test', function () { // Should be able to get ID without throwing errors const txId = tx.id; should.exist(txId); - txId.should.not.equal('UNAVAILABLE'); + txId!.should.not.equal('UNAVAILABLE'); // Verify all staking properties are preserved // Note: The test data uses a different contract address in the transaction diff --git a/modules/sdk-core/src/account-lib/baseCoin/baseTransaction.ts b/modules/sdk-core/src/account-lib/baseCoin/baseTransaction.ts index ccb3e79641..2e540fca7a 100644 --- a/modules/sdk-core/src/account-lib/baseCoin/baseTransaction.ts +++ b/modules/sdk-core/src/account-lib/baseCoin/baseTransaction.ts @@ -31,8 +31,8 @@ export abstract class BaseTransaction { * Get the transaction id as seen in the blockchain. Transactions computed offline may not have an * id, however, this is left to the coin implementation. */ - get id(): string { - return this._id as string; + get id(): string | undefined { + return this._id; } /** diff --git a/modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts b/modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts index 936d4edd3d..fccca91c00 100644 --- a/modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts +++ b/modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts @@ -119,7 +119,7 @@ export type AuditDecryptedKeyParams = Omit { /** @deprecated */ displayOrder?: string[]; - id: string; + id: string | undefined; /** NOTE: External recipients */ outputs: ITransactionRecipient[]; /** NOTE: External amount */