diff --git a/modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts b/modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts index 5d3c2b96cc..86e8d9ffb6 100644 --- a/modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts +++ b/modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts @@ -277,8 +277,14 @@ export interface ParseTransactionOptions { [index: string]: unknown; } -// TODO (SDKT-9): reverse engineer and add options +/** + * This is only used for determining the PayGo fee of a transaction which is only relevant for UTXO coins. + * Some coins return various other fields here, but they are only used internally by the respective coins. + */ export interface ParsedTransaction { + // the callsite assumes that this is the PayGo amount + implicitExternalSpendAmount?: number | bigint; + // coins may add internal fields [index: string]: unknown; } diff --git a/modules/sdk-core/src/bitgo/pendingApproval/pendingApproval.ts b/modules/sdk-core/src/bitgo/pendingApproval/pendingApproval.ts index 6b903fcaf8..ebf7e898ff 100644 --- a/modules/sdk-core/src/bitgo/pendingApproval/pendingApproval.ts +++ b/modules/sdk-core/src/bitgo/pendingApproval/pendingApproval.ts @@ -304,16 +304,16 @@ export class PendingApproval implements IPendingApproval { prebuildParams = _.extend({}, prebuildParams, { reqId: reqId }); const signedTransaction = await this.wallet.prebuildAndSignTransaction(prebuildParams); // compare PAYGo fees - const originalParsedTransaction = (await this.baseCoin.parseTransaction({ + const originalParsedTransaction = await this.baseCoin.parseTransaction({ txParams: prebuildParams, wallet: this.wallet, txPrebuild: originalPrebuild, - })) as any; - const recreatedParsedTransaction = (await this.baseCoin.parseTransaction({ + }); + const recreatedParsedTransaction = await this.baseCoin.parseTransaction({ txParams: prebuildParams, wallet: this.wallet, txPrebuild: signedTransaction, - })) as any; + }); if (_.isUndefined(recreatedParsedTransaction.implicitExternalSpendAmount)) { return signedTransaction;