diff --git a/modules/sdk-coin-ada/src/lib/transactionBuilder.ts b/modules/sdk-coin-ada/src/lib/transactionBuilder.ts index 46b44c9a25..c686a10f91 100644 --- a/modules/sdk-coin-ada/src/lib/transactionBuilder.ts +++ b/modules/sdk-coin-ada/src/lib/transactionBuilder.ts @@ -455,6 +455,11 @@ export abstract class TransactionBuilder extends BaseTransactionBuilder { if (this._type !== TransactionType.Send) { vkeyWitnesses.add(vkeyWitness); } + if (this._sponsorshipInfo) { + const sponsorPrv = CardanoWasm.PrivateKey.generate_ed25519(); + const sponsorVkeyWitness = CardanoWasm.make_vkey_witness(txHash, sponsorPrv); + vkeyWitnesses.add(sponsorVkeyWitness); + } } witnessSet.set_vkeys(vkeyWitnesses); diff --git a/modules/sdk-coin-ada/test/unit/tokenWithdrawal.ts b/modules/sdk-coin-ada/test/unit/tokenWithdrawal.ts index 8a1b8c5a2c..424c658278 100644 --- a/modules/sdk-coin-ada/test/unit/tokenWithdrawal.ts +++ b/modules/sdk-coin-ada/test/unit/tokenWithdrawal.ts @@ -399,6 +399,8 @@ describe('ADA Token Operations', async () => { feeAddressChangeOutput.length.should.equal(1); // Fee address change should not have any tokens should.not.exist(feeAddressChangeOutput[0].multiAssets); + + tx.getFee.should.equal('182485'); // Fee with two witnesses }); describe('AdaToken verifyTransaction', () => {