@@ -313,6 +313,49 @@ describe('LedgerKeyAgent', () => {
313313 expect ( LedgerKeyAgent . getSigningMode ( tx ) ) . toEqual ( Ledger . TransactionSigningMode . PLUTUS_TRANSACTION ) ;
314314 } ) ;
315315
316+ it ( 'can detect plutus transaction signing mode if there is a reference input' , async ( ) => {
317+ const tx : Ledger . Transaction = {
318+ fee : 10n ,
319+ includeNetworkId : false ,
320+ inputs : [
321+ {
322+ outputIndex : 0 ,
323+ path : [ util . harden ( CardanoKeyConst . PURPOSE ) , util . harden ( CardanoKeyConst . COIN_TYPE ) , util . harden ( 0 ) , 1 , 0 ] ,
324+ txHashHex : '0f3abbc8fc19c2e61bab6059bf8a466e6e754833a08a62a6c56fe0e78f19d9d5'
325+ }
326+ ] ,
327+ network : {
328+ networkId : Ledger . Networks . Testnet . networkId ,
329+ protocolMagic : 999
330+ } ,
331+ outputs : [
332+ {
333+ amount : 10n ,
334+ datumHashHex : '0f3abbc8fc19c2e61bab6059bf8a466e6e754833a08a62a6c56fe0e78f19d9d5' ,
335+ destination : {
336+ params : {
337+ addressHex :
338+ '009493315cd92eb5d8c4304e67b7e16ae36d61d34502694657811a2c8e32c728d3861e164cab28cb8f006448139c8f1740ffb8e7aa9e5232dc'
339+ } ,
340+ type : Ledger . TxOutputDestinationType . THIRD_PARTY
341+ } ,
342+ format : Ledger . TxOutputFormat . ARRAY_LEGACY
343+ }
344+ ] ,
345+ referenceInputs : [
346+ {
347+ outputIndex : 0 ,
348+ path : [ util . harden ( CardanoKeyConst . PURPOSE ) , util . harden ( CardanoKeyConst . COIN_TYPE ) , util . harden ( 0 ) , 1 , 0 ] ,
349+ txHashHex : '0f3abbc8fc19c2e61bab6059bf8a466e6e754833a08a62a6c56fe0e78f19d9d5'
350+ }
351+ ] ,
352+ ttl : 1000 ,
353+ validityIntervalStart : 100
354+ } ;
355+
356+ expect ( LedgerKeyAgent . getSigningMode ( tx ) ) . toEqual ( Ledger . TransactionSigningMode . PLUTUS_TRANSACTION ) ;
357+ } ) ;
358+
316359 it ( 'can detect multisig transaction signing mode' , async ( ) => {
317360 const tx : Ledger . Transaction = {
318361 certificates : [
0 commit comments