@swapkit/wallet-hardware 6.2.0 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/THIRD_PARTY_LICENSES.md +4 -4
  2. package/dist/{chunk-rydhx4se.js → chunk-0k1b2ddn.js} +3 -3
  3. package/dist/{chunk-rydhx4se.js.map → chunk-0k1b2ddn.js.map} +2 -2
  4. package/dist/{chunk-j3n6fbqh.js → chunk-2tzsz8f3.js} +4 -4
  5. package/dist/{chunk-j3n6fbqh.js.map → chunk-2tzsz8f3.js.map} +1 -1
  6. package/dist/{chunk-2jddegc1.js → chunk-410fpx61.js} +4 -4
  7. package/dist/{chunk-2jddegc1.js.map → chunk-410fpx61.js.map} +1 -1
  8. package/dist/chunk-8mkdjmw2.js +4 -0
  9. package/dist/chunk-8mkdjmw2.js.map +10 -0
  10. package/dist/{chunk-7kwtpk70.js → chunk-96p7njae.js} +3 -3
  11. package/dist/{chunk-7kwtpk70.js.map → chunk-96p7njae.js.map} +2 -2
  12. package/dist/{chunk-g6rrzxcx.js → chunk-97nsp4z6.js} +3 -3
  13. package/dist/{chunk-g6rrzxcx.js.map → chunk-97nsp4z6.js.map} +1 -1
  14. package/dist/{chunk-kaw35ae2.js → chunk-9a9gn4pb.js} +3 -3
  15. package/dist/{chunk-a47dwwv6.js.map → chunk-9a9gn4pb.js.map} +1 -1
  16. package/dist/chunk-a39rm9nv.js +4 -0
  17. package/dist/{chunk-42xrtarj.js.map → chunk-a39rm9nv.js.map} +5 -5
  18. package/dist/chunk-c8mwf9cn.js +4 -0
  19. package/dist/{chunk-kaw35ae2.js.map → chunk-c8mwf9cn.js.map} +1 -1
  20. package/dist/{chunk-b7htg03t.js → chunk-dhhmywmb.js} +4 -4
  21. package/dist/{chunk-b7htg03t.js.map → chunk-dhhmywmb.js.map} +1 -1
  22. package/dist/{chunk-x28a37pz.js → chunk-dsa641rq.js} +3 -3
  23. package/dist/{chunk-x28a37pz.js.map → chunk-dsa641rq.js.map} +2 -2
  24. package/dist/{chunk-7rbvcts9.js → chunk-grj9nvte.js} +3 -3
  25. package/dist/{chunk-7rbvcts9.js.map → chunk-grj9nvte.js.map} +1 -1
  26. package/dist/{chunk-tecse0bj.js → chunk-napm4102.js} +3 -3
  27. package/dist/{chunk-tecse0bj.js.map → chunk-napm4102.js.map} +1 -1
  28. package/dist/{chunk-a47dwwv6.js → chunk-nb08g045.js} +3 -3
  29. package/dist/{chunk-sp3dq5hr.js.map → chunk-nb08g045.js.map} +1 -1
  30. package/dist/chunk-npe2r2ge.js +4 -0
  31. package/dist/{chunk-tm5gk51g.js.map → chunk-npe2r2ge.js.map} +1 -1
  32. package/dist/chunk-p9mwkgye.js +4 -0
  33. package/dist/{chunk-s2akss77.js.map → chunk-p9mwkgye.js.map} +14 -12
  34. package/dist/{chunk-b093ajcq.js → chunk-qjp8j8e5.js} +3 -3
  35. package/dist/{chunk-b093ajcq.js.map → chunk-qjp8j8e5.js.map} +1 -1
  36. package/dist/{chunk-71kfnwdp.js → chunk-r1fk1sx9.js} +3 -3
  37. package/dist/{chunk-71kfnwdp.js.map → chunk-r1fk1sx9.js.map} +1 -1
  38. package/dist/{chunk-5xg0xc0g.js → chunk-ta7bqmy3.js} +3 -3
  39. package/dist/{chunk-5xg0xc0g.js.map → chunk-ta7bqmy3.js.map} +1 -1
  40. package/dist/{chunk-545s1tsc.js → chunk-tgvgr630.js} +3 -3
  41. package/dist/{chunk-545s1tsc.js.map → chunk-tgvgr630.js.map} +2 -2
  42. package/dist/{chunk-035dayv6.js → chunk-v8x9ptxs.js} +3 -3
  43. package/dist/{chunk-035dayv6.js.map → chunk-v8x9ptxs.js.map} +1 -1
  44. package/dist/{chunk-mzan0m09.js → chunk-wm89desc.js} +20 -20
  45. package/dist/{chunk-mzan0m09.js.map → chunk-wm89desc.js.map} +12 -10
  46. package/dist/{chunk-a6vcbcyd.js → chunk-wtyhjt5e.js} +3 -3
  47. package/dist/{chunk-a6vcbcyd.js.map → chunk-wtyhjt5e.js.map} +1 -1
  48. package/dist/{chunk-s5a5v0m1.js → chunk-xskdbz15.js} +3 -3
  49. package/dist/{chunk-s5a5v0m1.js.map → chunk-xskdbz15.js.map} +2 -2
  50. package/dist/{chunk-sbebfr50.js → chunk-ytjqb1sd.js} +3 -3
  51. package/dist/{chunk-sbebfr50.js.map → chunk-ytjqb1sd.js.map} +1 -1
  52. package/dist/{chunk-ys51wj1c.js → chunk-zbesf7sy.js} +3 -3
  53. package/dist/{chunk-ys51wj1c.js.map → chunk-zbesf7sy.js.map} +1 -1
  54. package/dist/keepkey/index.js +2 -2
  55. package/dist/keepkey/index.js.map +1 -1
  56. package/dist/ledger/index.cjs +28 -28
  57. package/dist/ledger/index.cjs.map +28 -24
  58. package/dist/ledger/index.js +2 -2
  59. package/dist/ledger/index.js.map +4 -4
  60. package/dist/trezor/index.cjs +2 -2
  61. package/dist/trezor/index.cjs.map +5 -4
  62. package/dist/trezor/index.js +2 -2
  63. package/dist/trezor/index.js.map +3 -3
  64. package/dist/types/ledger/clients/zcash.d.ts.map +1 -1
  65. package/dist/types/trezor/hypercoreSigner.d.ts +22 -0
  66. package/dist/types/trezor/hypercoreSigner.d.ts.map +1 -0
  67. package/dist/types/trezor/index.d.ts +2 -2
  68. package/dist/types/trezor/index.d.ts.map +1 -1
  69. package/package.json +12 -12
  70. package/src/ledger/clients/zcash.ts +16 -6
  71. package/src/ledger/index.ts +2 -2
  72. package/src/trezor/hypercoreSigner.ts +96 -0
  73. package/src/trezor/index.ts +72 -16
  74. package/dist/chunk-42xrtarj.js +0 -4
  75. package/dist/chunk-s2akss77.js +0 -4
  76. package/dist/chunk-sp3dq5hr.js +0 -4
  77. package/dist/chunk-tm5gk51g.js +0 -4
@@ -0,0 +1,4 @@
1
+ import{Da as W,Ea as _}from"./chunk-0k1b2ddn.js";import{$a as j,$c as xQ,Lb as o,Mb as U,Oa as OY,Pc as PQ,Ra as HQ,Sa as _0,Vc as n0,Vd as vX,Wa as i,Wc as q0,Xa as bQ,Xc as s0,Ya as M,Yc as e,Zc as CQ,_a as ZQ,_c as c,ad as a0,bd as i0,cb as z,cd as BQ,db as aX,eb as P,fb as b,hb as WQ,kb as I0,ld as _Q,md as T,nd as I,od as n,pd as $8,sc as kX}from"./chunk-wm89desc.js";import{Zd as KY}from"./chunk-9a9gn4pb.js";var EK=KY(OY(),1);var E={AppBinding:Symbol.for("AppBinding")};var d="Zcash";var NQ={Dmk:Symbol.for("Dmk"),SessionId:Symbol.for("SessionId")};var k=224,H={FIRST:0,NEXT:128,CHANGE_PATH:255},f={DEFAULT:0,SAPLING:5,HASH_INPUT_CONTINUE:128},A={FIRST:0,NEXT:128,LAST:1},r={CONTINUE:0,FINISHED:1},UQ=255;var v={6300:{message:"GPAuthFailedError"},"63c0":{message:"PinRemainingAttemptsError"},6400:{message:"ExecutionError"},6700:{message:"IncorrectLengthError"},6981:{message:"CommandIncompatibleFileStructureError"},6982:{message:"SecurityStatusNotSatisfiedError"},6985:{message:"UserRejectedError"},6986:{message:"ConditionsOfUseNotSatisfiedError"},"6a80":{message:"IncorrectDataError"},"6a84":{message:"NotEnoughMemorySpaceError"},"6a88":{message:"ReferencedDataNotFoundError"},"6a89":{message:"FileAlreadyExistsError"},"6a8a":{message:"SwapWithoutTrustedInputsError"},"6b00":{message:"IncorrectP1P2Error"},"6d00":{message:"InsNotSupportedError"},"6e00":{message:"ClaNotSupportedError"},"6f00":{message:"TechnicalProblemError"},"6f01":{message:"VersionParsingFailError"},"6f03":{message:"RngFailureError"},"6f42":{message:"LicensingError"},"6faa":{message:"HaltedError"},9240:{message:"MemoryProblemError"},9400:{message:"NoEFSelectedError"},9402:{message:"InvalidOffsetError"},9404:{message:"FileNotFoundError"},9408:{message:"InconsistentFileError"},9484:{message:"AlgorithmNotSupportedError"},9485:{message:"InvalidKCVError"},9802:{message:"CodeNotInitializedError"},9804:{message:"AccessConditionNotFullfilledError"},9808:{message:"ContradictionSecretCodeStatusError"},9810:{message:"ContradictionInvalidationError"},9840:{message:"CodeBlockedError"},9850:{message:"MaxValueReachedError"},b007:{message:"BadStateError"},unsupported_v6_transaction:{message:"UnsupportedV6TransactionError"}};class c0 extends WQ{constructor(Q){super({tag:"ZcashAppCommandError",...Q})}}var R=(Q)=>new c0(Q);var l0=32,Z8=64;class qQ{name="GetAddress";args;errorHelper=new W(v,R);constructor(Q){this.args=Q}getApdu(){let Q={cla:k,ins:Z8,p1:this.args.checkOnDevice?1:0,p2:0},X=new M(Q),$=_.splitPath(this.args.derivationPath);return X.add8BitUIntToData($.length),$.forEach((Y)=>{X.add32BitUIntToData(Y)}),X.build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefaultLazy(()=>{let X=new ZQ(Q),$=X.extract8BitUInt();if($===void 0)return P({error:new j("Public key length is missing")});if(X.testMinimalLength($)===!1)return P({error:new j("Public key is missing")});let Y=X.extractFieldByLength($);if(Y===void 0)return P({error:new j("Unable to extract public key")});let J=X.extract8BitUInt();if(J===void 0)return P({error:new j("Address length is missing")});if(X.testMinimalLength(J)===!1)return P({error:new j("Address is missing")});let N=X.extractFieldByLength(J);if(N===void 0)return P({error:new j("Unable to extract address")});let Z=X.encodeToString(N);if(X.testMinimalLength(l0)===!1)return P({error:new j("Chain code is missing")});let q=X.extractFieldByLength(l0);return q===void 0?P({error:new j("Unable to extract chain code")}):P({data:{publicKey:Y,address:Z,chainCode:q}})})}}var q8=196;class Q0{name="getAppConfig";errorHelper=new W(v,R);getApdu(){return new M({cla:k,ins:q8,p1:0,p2:f.DEFAULT}).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefaultLazy(()=>{let X=new ZQ(Q);X.extract8BitUInt(),X.extract8BitUInt();let $=X.extract8BitUInt(),Y=X.extract8BitUInt(),J=X.extract8BitUInt();return $===void 0||Y===void 0||J===void 0?P({error:new j("Cannot extract version")}):P({data:{version:`${$}.${Y}.${J}`}})})}}class X0{name="SignMessage";args;constructor(Q){this.args=Q}getApdu(){throw console.log(this.args),Error("SignMessageCommand.getApdu() not implemented")}parseResponse(Q){throw Error("SignMessageCommand.parseResponse() not implemented")}}var KQ={UFVK:0,ORCHARD_FVK:1},K8=80;class DQ{name="GetFullViewingKey";errorHelper=new W(v,R);args;constructor(Q){this.args=Q}getApdu(){let Q=this.args.isContinue?H.NEXT:H.FIRST,X={cla:k,ins:K8,p1:Q,p2:this.args.p2},$=new M(X);if(!this.args.isContinue){let Y=_.splitPath(this.args.derivationPath);if($.add8BitUIntToData(Y.length),Y.forEach((J)=>{$.add32BitUIntToData(J)}),this.args.p2===KQ.UFVK){if(!this.args.transparentDerivationPath)throw Error("GetFullViewingKeyCommand: UFVK export requires a transparent derivation path (app-zcash >= v3.8.0)");let J=_.splitPath(this.args.transparentDerivationPath);$.add8BitUIntToData(J.length),J.forEach((N)=>{$.add32BitUIntToData(N)})}}return $.build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefaultLazy(()=>P({data:{data:new Uint8Array(Q.data)}}))}}function o0(Q){return Q==="orchardFvk"?KQ.ORCHARD_FVK:KQ.UFVK}function D(...Q){let X=Q.reduce((J,N)=>J+N.length,0),$=new Uint8Array(X),Y=0;return Q.forEach((J)=>{$.set(J,Y),Y+=J.length}),$}function LQ(Q,X){return`32'/${Q}/${X}`}var p0=96;function O8(Q){let X=`Orchard FVK must be ${p0} bytes (got ${Q.length})`;if(Q.length<2)return X;let $=new DataView(Q.buffer,Q.byteOffset,Q.byteLength).getUint16(0,!1);return 2+$===Q.length?`${X}. Payload matches UFVK framing (u16 BE length + ${$} bytes). Use mode "ufvk" for this response, or use a Zcash app build that exports raw Orchard FVK for GET_VK P2=0x01.`:X}function P8(Q){return Q.length!==p0?z({error:new j(O8(Q))}):z({data:{mode:"orchardFvk",fullViewingKey:Q}})}function z8(Q){if(Q.length<2)return!1;let X=new DataView(Q.buffer,Q.byteOffset,Q.byteLength).getUint16(0,!1);return Q.length>=2+X}function j8(Q){if(Q.length<2)return z({error:new j("UFVK string length is missing")});let X=new DataView(Q.buffer,Q.byteOffset,Q.byteLength).getUint16(0,!1);if(2+X>Q.length)return z({error:new j("UFVK string is truncated")});let $=Q.slice(2,2+X),Y;try{Y=new TextDecoder("utf-8",{fatal:!0}).decode($)}catch{return z({error:new j("UFVK is not valid UTF-8")})}return 2+X<Q.length?z({error:new j("UFVK response has extra trailing bytes")}):z({data:{mode:"ufvk",fullViewingKey:Y}})}function x8(Q){let X=Q.split("/");if(X.length<3)return{error:new j(`Zcash UFVK derivation path must have at least purpose/coin/account levels (got "${Q}")`)};let[,$,Y]=X;return!$||!Y?{error:new j(`Zcash UFVK derivation path components are malformed (got "${Q}")`)}:{orchardDerivationPath:LQ($,Y),transparentDerivationPath:`44'/${$}/${Y}`}}class $0{constructor(Q,X){this.api=Q,this.args=X}async run(){let Q=o0(this.args.mode),X;if(this.args.mode==="ufvk"){let N=x8(this.args.derivationPath);if("error"in N)return z({error:N.error});X={isContinue:!1,p2:KQ.UFVK,derivationPath:N.orchardDerivationPath,transparentDerivationPath:N.transparentDerivationPath}}else X={isContinue:!1,p2:KQ.ORCHARD_FVK,derivationPath:this.args.derivationPath};let $=await this.api.sendCommand(new DQ(X));if(!b($))return z({error:$.error});let Y=new Uint8Array($.data.data),J=Y;for(;Y.length===bQ&&!(this.args.mode==="ufvk"&&z8(J));){let N=await this.api.sendCommand(new DQ({isContinue:!0,p2:Q}));if(!b(N))return z({error:N.error});Y=new Uint8Array(N.data.data),J=D(J,Y)}return this.args.mode==="ufvk"?j8(J):P8(J)}}var G8=81;class Y0{name="GetShieldedAddress";args;errorHelper=new W(v,R);constructor(Q){this.args=Q}getApdu(){let Q={cla:k,ins:G8,p1:this.args.checkOnDevice?1:0,p2:0},X=new M(Q),$=_.splitPath(this.args.orchardDerivationPath),Y=_.splitPath(this.args.transparentDerivationPath);return[$,Y].forEach((J)=>{X.add8BitUIntToData(J.length),J.forEach((N)=>{X.add32BitUIntToData(N)})}),X.build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefaultLazy(()=>{if(Q.data.length===bQ)return P({error:new j("Response requires continuation which is not supported")});let X=new ZQ(Q),$=X.extract16BitUInt();if($===void 0)return P({error:new j("Address length is missing")});if(X.testMinimalLength($)===!1)return P({error:new j("Address is missing")});let Y=X.extractFieldByLength($);if(Y===void 0)return P({error:new j("Unable to extract address")});if(X.testMinimalLength(1))return P({error:new j("Unexpected trailing bytes in response")});let J;try{J=new TextDecoder("utf-8",{fatal:!0}).decode(Y)}catch{return P({error:new j("Address is not valid UTF-8")})}return P({data:{address:J}})})}}function w8(Q){let X=Q.startsWith("m/")?Q.slice(2):Q,$=X.split("/");if($.length!==5)return{error:new j(`Shielded address derivation path must have exactly 5 levels purpose/coin/account/change/index (got "${Q}")`)};let Y=(O)=>/^\d+'?$/.test(O);if(!$.every(Y))return{error:new j(`Shielded address derivation path contains non-numeric components (got "${Q}")`)};let[J,N,Z,q]=$;return J!=="44'"?{error:new j(`Shielded address derivation path purpose must be 44' (got "${J}")`)}:N?.endsWith("'")?Z?.endsWith("'")?q!=="0"?{error:new j(`Shielded address derivation path change must be 0 (got "${q}")`)}:{orchardDerivationPath:LQ(N,Z),transparentDerivationPath:X}:{error:new j(`Shielded address derivation path account must be hardened (got "${Z}")`)}:{error:new j(`Shielded address derivation path coin type must be hardened (got "${N}")`)}}class J0{constructor(Q,X){this.api=Q,this.args=X}async run(){let Q=w8(this.args.derivationPath);if("error"in Q)return z({error:Q.error});let X=await this.api.sendCommand(new Y0({orchardDerivationPath:Q.orchardDerivationPath,transparentDerivationPath:Q.transparentDerivationPath,checkOnDevice:this.args.checkOnDevice}));return b(X)?z({data:{address:X.data.address}}):z({error:X.error})}}var N0=4,F8=66;class yQ{name="GetTrustedInput";errorHelper=new W(v,R);args;constructor(Q){this.args=Q}getApdu(){let{transaction:Q,indexLookup:X}=this.args,$,Y=!1;if(typeof X=="number"&&X>=0){Y=!0;let N=new Uint8Array(N0);new DataView(N.buffer,N.byteOffset,N.byteLength).setUint32(0,X,!1),$=new Uint8Array(Q.length+N0),$.set(N,0),$.set(Q,N0)}else $=Q;let J={cla:k,ins:F8,p1:Y?H.FIRST:H.NEXT,p2:f.DEFAULT};return new M(J).addBufferToData($).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefault(P({data:Q}))}}class Z0 extends WQ{appVersion;constructor(Q){super({tag:"UnsupportedV6TransactionError",message:`The Zcash app version ${Q} installed on the device does not support V6 (Ironwood) source transactions, so a UTXO received from one cannot be signed. Support is expected in a future Zcash app update.`,errorCode:"unsupported_v6_transaction"}),this.appVersion=Q}}function k8(Q,X,$,Y){if(typeof Q.setBigUint64==="function")return Q.setBigUint64(X,$,Y);let J=BigInt(32),N=BigInt(4294967295),Z=Number($>>J&N),q=Number($&N),O=Y?4:0,x=Y?0:4;Q.setUint32(X+O,Z,Y),Q.setUint32(X+x,q,Y)}function K0(Q,X,$){return Q&X^~Q&$}function O0(Q,X,$){return Q&X^Q&$^X&$}class jQ extends i0{constructor(Q,X,$,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=Q,this.outputLen=X,this.padOffset=$,this.isLE=Y,this.buffer=new Uint8Array(Q),this.view=CQ(this.buffer)}update(Q){q0(this),Q=a0(Q),n0(Q);let{view:X,buffer:$,blockLen:Y}=this,J=Q.length;for(let N=0;N<J;){let Z=Math.min(Y-this.pos,J-N);if(Z===Y){let q=CQ(Q);for(;Y<=J-N;N+=Y)this.process(q,N);continue}if($.set(Q.subarray(N,N+Z),this.pos),this.pos+=Z,N+=Z,this.pos===Y)this.process(X,0),this.pos=0}return this.length+=Q.length,this.roundClean(),this}digestInto(Q){q0(this),s0(Q,this),this.finished=!0;let{buffer:X,view:$,blockLen:Y,isLE:J}=this,{pos:N}=this;if(X[N++]=128,e(this.buffer.subarray(N)),this.padOffset>Y-N)this.process($,0),N=0;for(let K=N;K<Y;K++)X[K]=0;k8($,Y-8,BigInt(this.length*8),J),this.process($,0);let Z=CQ(Q),q=this.outputLen;if(q%4)throw Error("_sha2: outputLen should be aligned to 32bit");let O=q/4,x=this.get();if(O>x.length)throw Error("_sha2: outputLen bigger than state");for(let K=0;K<O;K++)Z.setUint32(4*K,x[K],J)}digest(){let{buffer:Q,outputLen:X}=this;this.digestInto(Q);let $=Q.slice(0,X);return this.destroy(),$}_cloneInto(Q){Q||(Q=new this.constructor),Q.set(...this.get());let{blockLen:X,buffer:$,length:Y,finished:J,destroyed:N,pos:Z}=this;if(Q.destroyed=N,Q.finished=J,Q.length=Y,Q.pos=Z,Y%X)Q.buffer.set($);return Q}clone(){return this._cloneInto()}}var s=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var v8=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),e0=(()=>Uint8Array.from(Array(16).fill(0).map((Q,X)=>X)))(),R8=(()=>e0.map((Q)=>(9*Q+5)%16))(),t0=(()=>{let $=[[e0],[R8]];for(let Y=0;Y<4;Y++)for(let J of $)J.push(J[Y].map((N)=>v8[N]));return $})(),QX=(()=>t0[0])(),XX=(()=>t0[1])(),$X=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((Q)=>Uint8Array.from(Q)),M8=QX.map((Q,X)=>Q.map(($)=>$X[X][$])),U8=XX.map((Q,X)=>Q.map(($)=>$X[X][$])),W8=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),D8=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function r0(Q,X,$,Y){if(Q===0)return X^$^Y;if(Q===1)return X&$|~X&Y;if(Q===2)return(X|~$)^Y;if(Q===3)return X&Y|$&~Y;return X^($|~Y)}var TQ=new Uint32Array(16);class P0 extends jQ{constructor(){super(64,20,8,!0);this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:Q,h1:X,h2:$,h3:Y,h4:J}=this;return[Q,X,$,Y,J]}set(Q,X,$,Y,J){this.h0=Q|0,this.h1=X|0,this.h2=$|0,this.h3=Y|0,this.h4=J|0}process(Q,X){for(let G=0;G<16;G++,X+=4)TQ[G]=Q.getUint32(X,!0);let $=this.h0|0,Y=$,J=this.h1|0,N=J,Z=this.h2|0,q=Z,O=this.h3|0,x=O,K=this.h4|0,F=K;for(let G=0;G<5;G++){let S=4-G,B=W8[G],m=D8[G],w=QX[G],L=XX[G],C=M8[G],zQ=U8[G];for(let h=0;h<16;h++){let JQ=xQ($+r0(G,J,Z,O)+TQ[w[h]]+B,C[h])+K|0;$=K,K=O,O=xQ(Z,10)|0,Z=J,J=JQ}for(let h=0;h<16;h++){let JQ=xQ(Y+r0(S,N,q,x)+TQ[L[h]]+m,zQ[h])+F|0;Y=F,F=x,x=xQ(q,10)|0,q=N,N=JQ}}this.set(this.h1+Z+x|0,this.h2+O+F|0,this.h3+K+Y|0,this.h4+$+N|0,this.h0+J+q|0)}roundClean(){e(TQ)}destroy(){this.destroyed=!0,e(this.buffer),this.set(0,0,0,0,0)}}var YX=BQ(()=>new P0);var JX=YX;var L8=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),t=new Uint32Array(64);class z0 extends jQ{constructor(Q=32){super(64,Q,8,!1);this.A=s[0]|0,this.B=s[1]|0,this.C=s[2]|0,this.D=s[3]|0,this.E=s[4]|0,this.F=s[5]|0,this.G=s[6]|0,this.H=s[7]|0}get(){let{A:Q,B:X,C:$,D:Y,E:J,F:N,G:Z,H:q}=this;return[Q,X,$,Y,J,N,Z,q]}set(Q,X,$,Y,J,N,Z,q){this.A=Q|0,this.B=X|0,this.C=$|0,this.D=Y|0,this.E=J|0,this.F=N|0,this.G=Z|0,this.H=q|0}process(Q,X){for(let K=0;K<16;K++,X+=4)t[K]=Q.getUint32(X,!1);for(let K=16;K<64;K++){let F=t[K-15],G=t[K-2],S=c(F,7)^c(F,18)^F>>>3,B=c(G,17)^c(G,19)^G>>>10;t[K]=B+t[K-7]+S+t[K-16]|0}let{A:$,B:Y,C:J,D:N,E:Z,F:q,G:O,H:x}=this;for(let K=0;K<64;K++){let F=c(Z,6)^c(Z,11)^c(Z,25),G=x+F+K0(Z,q,O)+L8[K]+t[K]|0,B=(c($,2)^c($,13)^c($,22))+O0($,Y,J)|0;x=O,O=q,q=Z,Z=N+G|0,N=J,J=Y,Y=$,$=G+B|0}$=$+this.A|0,Y=Y+this.B|0,J=J+this.C|0,N=N+this.D|0,Z=Z+this.E|0,q=q+this.F|0,O=O+this.G|0,x=x+this.H|0,this.set($,Y,J,N,Z,q,O,x)}roundClean(){e(t)}destroy(){this.set(0,0,0,0,0,0,0,0),e(this.buffer)}}var NX=BQ(()=>new z0);var ZX=NX;function qX(Q){let X=new Uint8Array(4);return new DataView(X.buffer).setUint32(0,Q>>>0,!1),X}function p(Q){let X=new Uint8Array(4);return new DataView(X.buffer).setUint32(0,Q>>>0,!0),X}var IQ=50,PX=0,x0=4294967295,fQ=1,b8=118,y8=169,C8=20,T8=136,B8=172,V8={mainnet:[{activationHeight:3543405,branchId:1998129881},{activationHeight:3428143,branchId:933566043},{activationHeight:3364600,branchId:1412952880},{activationHeight:3146400,branchId:1307332080},{activationHeight:2726400,branchId:3370586197},{activationHeight:1687104,branchId:3268858036},{activationHeight:1046400,branchId:3925833126},{activationHeight:903000,branchId:4122551051},{activationHeight:653600,branchId:733220448},{activationHeight:419200,branchId:1991772603}],testnet:[{activationHeight:4465026,branchId:1998129881},{activationHeight:4134000,branchId:933566043},{activationHeight:4052000,branchId:1412952880},{activationHeight:3536500,branchId:1307332080},{activationHeight:2976000,branchId:3370586197},{activationHeight:1842420,branchId:3268858036},{activationHeight:1028500,branchId:3925833126},{activationHeight:903800,branchId:4122551051},{activationHeight:584000,branchId:733220448},{activationHeight:280000,branchId:1991772603}]},E8=1537743641,u=(Q)=>Uint8Array.from(Q),I8=(Q,X)=>new DataView(Q.buffer,Q.byteOffset,Q.byteLength).getUint16(X,!0),VQ=(Q,X)=>new DataView(Q.buffer,Q.byteOffset,Q.byteLength).getUint32(X,!0),f8=(Q)=>({prevout:u(Q.prevout),script:u(Q.script),sequence:u(Q.sequence),tree:Q.tree?u(Q.tree):void 0}),g8=(Q)=>({amount:u(Q.amount),script:u(Q.script)}),zX=(Q)=>({version:u(Q.version),inputs:Q.inputs.map(f8),outputs:Q.outputs?.map(g8),locktime:Q.locktime?u(Q.locktime):void 0,timestamp:Q.timestamp?u(Q.timestamp):void 0,nVersionGroupId:Q.nVersionGroupId?u(Q.nVersionGroupId):void 0,nExpiryHeight:Q.nExpiryHeight?u(Q.nExpiryHeight):void 0,extraData:Q.extraData?u(Q.extraData):void 0,consensusBranchId:Q.consensusBranchId?u(Q.consensusBranchId):void 0}),y=(Q)=>Q<253?Uint8Array.of(Q):Q<=65535?Uint8Array.of(253,Q&255,Q>>8&255):Uint8Array.of(254,Q&255,Q>>8&255,Q>>16&255,Q>>24&255),KX=(Q,X)=>{if(X>=Q.length)return null;let $=Q[X];if($<253)return[$,X+1];if($===253)return X+3>Q.length?null:[I8(Q,X+1),X+3];if($===254)return X+5>Q.length?null:[VQ(Q,X+1)>>>0,X+5];if($===255){if(X+9>Q.length)return null;let Y=VQ(Q,X+1);return VQ(Q,X+5)!==0?null:[Y,X+9]}return null},jX=(Q)=>{if(Q.length===0)return null;let X=KX(Q,0);if(X===null||X[0]<0)return null;let $=X[0],Y=X[1],J=[];for(let N=0;N<$;N+=1){if(Y+8>Q.length)return null;Y+=8;let Z=KX(Q,Y);if(Z===null)return null;let[q,O]=Z;if(q<0||O+q>Q.length)return null;J.push(Q.subarray(O,O+q)),Y=O+q}return Y!==Q.length?null:J},OX=({outputs:Q})=>{let X=new Uint8Array(0);return Q&&(X=D(X,y(Q.length)),Q.forEach(($)=>{X=D(X,$.amount,y($.script.length),$.script)})),X},G0=(Q,X)=>{let $=new Uint8Array(0);if(Q.inputs.forEach((Z)=>{$=D($,Z.prevout,y(Z.script.length),Z.script,Z.sequence)}),Q.version.length>=4&&(VQ(Q.version,0)&2147483647)===4){let Z=Q.locktime&&Q.locktime.byteLength>0?Q.locktime:new Uint8Array(4),q=EQ(Q.nExpiryHeight),O=Q.extraData||new Uint8Array(0);return D(Q.version,Q.nVersionGroupId||new Uint8Array(0),Q.consensusBranchId||new Uint8Array(0),y(Q.inputs.length),$,OX(Q),new Uint8Array(3),Z,y(q.length+O.length),q,O)}let Y=OX(Q);Q.outputs&&Q.locktime&&(Y=D(Y,new Uint8Array(3),Q.extraData||new Uint8Array(0)));let J=Q.locktime&&Q.locktime.byteLength>0?Q.locktime:new Uint8Array(4),N=EQ(Q.nExpiryHeight);return D(Q.version,X??Q.timestamp??new Uint8Array(0),Q.nVersionGroupId||new Uint8Array(0),Q.consensusBranchId||new Uint8Array(0),J,N,y(Q.inputs.length),$,Y)},w0=(Q)=>{let X=((Q.at(64)??0)&1)===0?2:3;return D(Uint8Array.of(X),Q.subarray(1,33))},S8=(Q)=>JX(ZX(Q)),xX=(Q)=>{let X;if(Q.length===65?X=w0(Q):Q.length===33?X=Q:X=null,X?.length!==33)throw Error("Expected 65-byte uncompressed or 33-byte compressed secp256k1 public key");let $=S8(X);return D(Uint8Array.of(b8,y8,C8),$,Uint8Array.of(T8,B8))},gQ=(Q,X="mainnet")=>{let $=V8[X];if(Q==null)return p($[0].branchId);let Y=$.find((J)=>Q>=J.activationHeight);return p(Y?Y.branchId:E8)},GX=()=>p(2147483653),j0=4;function EQ(Q){if(Q===void 0||Q.byteLength===0)return new Uint8Array(j0);if(Q.byteLength!==j0)throw Error(`expiryHeight must be ${j0} bytes (got ${Q.byteLength})`);return u(Q)}var wX="0.0.0",FX={version:""},m8="3.8.0";class RX{resolve(Q,X){if(Q.sessionStateType===kX.Connected)return{isCompatible:!1,version:wX};let $=Q.currentApp;return $?.name!==d?{isCompatible:!1,version:wX}:{isCompatible:!0,version:$.version}}}function MX(Q){try{let X=Q.getDeviceSessionState(),$=new RX,{isCompatible:Y,version:J}=$.resolve(X,FX);return Y?new vX(X,FX,$).withMinVersionInclusive(m8).check()?void 0:J:void 0}catch{return}}var VX=255,H8=4,_8=VX-H8,u8=VX,U0=4,h8=5*U0,QQ=3*U0,g=32,EX=8,A8=1,SQ=64,UX=192,a=52,d8=16,FQ=512,OQ=a+FQ+d8,IX=80,c8=g,l8=c8+g,o8=l8+g,k0=g,p8=k0+g,GQ=p8+g,n8=GQ+OQ+IX,v0=g,R0=v0+g,M0=R0+g,s8=M0+g,wQ=s8+g,a8=wQ+OQ+IX,fX=A8+EX,i8=fX+g,WX=128,DX=50,r8=2147483647,e8=4,t8=5,gX=6,LX=3632576152,F0=(Q,X)=>(l(Q,X,X+1),Q[X]??0),W0=(Q,X)=>(l(Q,X,X+4),new DataView(Q.buffer,Q.byteOffset,Q.byteLength).getUint32(X,!0)),Q$=(Q,X)=>{l(Q,X,X+8);let $=new DataView(Q.buffer,Q.byteOffset,Q.byteLength),Y=$.getUint32(X,!0);return $.getUint32(X+4,!0)*4294967296+Y},bX=(Q)=>`0x${Q.toString(16).padStart(8,"0")}`,l=(Q,X,$)=>{if(X<0||$<X||$>Q.length)throw Error("Malformed transaction while splitting trusted input chunks")},XQ=(Q,X)=>{let $=F0(Q,X);if($<253)return{value:$,byteLength:1,nextOffset:X+1};if($===253)return{value:F0(Q,X+1)+(F0(Q,X+2)<<8),byteLength:3,nextOffset:X+3};if($===254)return{value:W0(Q,X+1),byteLength:5,nextOffset:X+5};l(Q,X+1,X+9);let Y=Q$(Q,X+1);if(!Number.isSafeInteger(Y))throw Error("CompactSize value exceeds JavaScript safe integer range");return{value:Y,byteLength:9,nextOffset:X+9}},yX=(Q)=>{let X=Q.filter((J)=>J.length>0);if(X.length===0)throw Error("Cannot send trusted input for an empty transaction");let $=[],Y=!0;return X.forEach((J)=>{let N=0;for(;N<J.length;){let Z=Math.min(N+(Y?_8:u8),J.length);$.push(J.slice(N,Z)),N=Z,Y=!1}}),$},X$=(Q,X)=>D(Q,new Uint8Array([4]),X),$$={actions:[],digestData:new Uint8Array},Y$=(Q,X)=>{let $=X;return{take:(Y)=>{l(Q,$,$+Y);let J=Q.slice($,$+Y);return $+=Y,J},skip:(Y)=>{l(Q,$,$+Y),$+=Y},takeCount:()=>{let{value:Y,nextOffset:J}=XQ(Q,$);return $=J,Y},consumed:()=>$}},CX=(Q,X)=>{let $=Q.takeCount();if($===0)return $$;let Y=Array.from({length:$},()=>Q.take(a8)),J=Q.take(X?i8:fX);return X||Q.skip(g),{actions:Y,digestData:J}},TX=(Q,X)=>{if(X===0)return;let $=Q.takeCount();Q.skip($+X*SQ+SQ)},J$=(Q,X,$)=>{let Y=Y$(Q,X),J=Y.takeCount(),N=Array.from({length:J},()=>Y.take(o8)),Z=Y.takeCount(),q=Array.from({length:Z},()=>Y.take(n8)),O=new Uint8Array,x=new Uint8Array;(J>0||Z>0)&&(O=Y.take(EX),J>0&&($?Y.skip(g):x=Y.take(g)),Y.skip(J*(UX+SQ)+Z*UX+SQ));let K=CX(Y,!$);TX(Y,K.actions.length);let F;if($&&(F=CX(Y,!1),TX(Y,F.actions.length)),Y.consumed()!==Q.length)throw Error("Malformed transaction while splitting trusted input chunks");return{saplingSpends:N,saplingOutputs:q,saplingValueBalance:O,saplingAnchor:x,orchard:K,ironwood:F}},N$=(Q)=>{let X=Q.subarray(0,k0),$=Q.subarray(k0,GQ),Y=Q.subarray(GQ,GQ+OQ),J=Q.subarray(GQ+OQ);return{compact:D($,Y.subarray(0,a)),memo:Y.subarray(a,a+FQ),nonCompact:D(X,Y.subarray(a+FQ),J)}},Z$=(Q)=>{let X=Q.subarray(0,v0),$=Q.subarray(v0,R0),Y=Q.subarray(R0,M0),J=Q.subarray(M0,wQ),N=Q.subarray(wQ,wQ+OQ),Z=Q.subarray(wQ+OQ);return{compact:D($,J,N.subarray(0,a)),memo:N.subarray(a,a+FQ),nonCompact:D(X,Y,N.subarray(a+FQ),Z)}},BX=(Q,X)=>{X.forEach(($)=>{for(let Y=0;Y<$.length;Y+=WX)Q.push($.subarray(Y,Y+WX))})},q$=(Q,X)=>{if(Q.push(D(y(X.saplingSpends.length),y(X.saplingOutputs.length),y(X.orchard.actions.length),...X.ironwood!==void 0?[y(X.ironwood.actions.length)]:[])),X.saplingSpends.length>0||X.saplingOutputs.length>0){Q.push(D(X.saplingValueBalance,X.saplingAnchor)),X.saplingSpends.forEach((Y)=>Q.push(Y));let $=X.saplingOutputs.map(N$);$.forEach(({compact:Y})=>Q.push(Y)),BX(Q,$.map(({memo:Y})=>Y)),$.forEach(({nonCompact:Y})=>Q.push(Y))}(X.ironwood!==void 0?[X.orchard,X.ironwood]:[X.orchard]).forEach(($)=>{if($.actions.length===0)return;let Y=$.actions.map(Z$);Y.forEach(({compact:J})=>Q.push(J)),BX(Q,Y.map(({memo:J})=>J)),Y.forEach(({nonCompact:J})=>Q.push(J)),Q.push($.digestData)})},SX=(Q)=>W0(Q,0)&r8,K$=(Q)=>SX(Q)===gX,O$=(Q)=>{let X=SX(Q),$=X===e8,Y=X===gX;if(!$&&!Y&&X!==t8)throw Error(`Unsupported transaction version ${X} while splitting trusted input chunks`);if(Y){let K=W0(Q,U0);if(K!==LX)throw Error(`Unexpected version group id for a v6 transaction while splitting trusted input chunks: expected ${bX(LX)}, got ${bX(K)}`)}let J=0,N=new Uint8Array,Z=new Uint8Array,q=[];$?J+=QQ:(l(Q,QQ,QQ+8),N=Q.slice(QQ,QQ+4),Z=Q.slice(QQ+4,QQ+8),J+=h8);let O=XQ(Q,J);J=O.nextOffset,q.push(D(Q.slice(0,QQ),Q.slice(J-O.byteLength,J)));for(let K=0;K<O.value;K+=1){let F=J;l(Q,J,J+36),J+=36;let G=XQ(Q,J);J=G.nextOffset,q.push(Q.slice(F,J));let S=J;l(Q,J,J+G.value+4),J+=G.value+4;let B=Q.slice(S,J);for(let m=0;m<B.length;m+=DX)q.push(B.slice(m,m+DX))}let x=XQ(Q,J);J=x.nextOffset,q.push(Q.slice(J-x.byteLength,J));for(let K=0;K<x.value;K+=1){let F=J;l(Q,J,J+8),J+=8;let G=XQ(Q,J);J=G.nextOffset,l(Q,J,J+G.value),J+=G.value,q.push(Q.slice(F,J))}if($){let K=XQ(Q,J),F=XQ(Q,K.nextOffset),G=XQ(Q,F.nextOffset);return q.push(Q.slice(J,G.nextOffset)),q.push(Q.slice(G.nextOffset)),yX(q)}return q$(q,J$(Q,J,Y)),q.push(X$(N,Z)),yX(q)};class kQ{constructor(Q,X){this.api=Q,this.args=X}async run(){let Q=this.args.indexLookup??0,X=O$(this.args.transaction);if(K$(this.args.transaction)){let Z=MX(this.api);if(Z!==void 0)return z({error:new Z0(Z)})}let $=X[0];if(!$)throw Error("Unable to prepare first trusted input APDU chunk");let Y=await this.api.sendCommand(new yQ({transaction:$,indexLookup:Q}));if(!b(Y))return z({error:Y.error});let J=Y.data,N=1;for(;N<X.length;){let Z=X[N];if(!Z)throw Error("Unable to prepare trusted input APDU chunk");let q=await this.api.sendCommand(new yQ({transaction:Z}));if(!b(q))return z({error:q.error});J=q.data,N+=1}return z({data:J})}}var P$=82;class D0{constructor(Q){this.args=Q}name="PcztHeader";errorHelper=new W(v,R);getApdu(){let Q={cla:k,ins:P$,p1:A.FIRST,p2:r.CONTINUE};return new M(Q).addBufferToData(this.args.data).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefault(P({data:void 0}))}}var z$=88;class L0{constructor(Q){this.args=Q}name="PcztIronwoodAction";errorHelper=new W(v,R);getApdu(){let Q={cla:k,ins:z$,p1:this.args.p1,p2:this.args.p2};return new M(Q).addBufferToData(this.args.data).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefault(P({data:void 0}))}}var j$=86;class b0{constructor(Q){this.args=Q}name="PcztOrchardAction";errorHelper=new W(v,R);getApdu(){let Q={cla:k,ins:j$,p1:this.args.p1,p2:this.args.p2};return new M(Q).addBufferToData(this.args.data).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefault(P({data:void 0}))}}var x$=83;class y0{constructor(Q){this.args=Q}name="PcztTransparentInput";errorHelper=new W(v,R);getApdu(){let Q={cla:k,ins:x$,p1:this.args.p1,p2:this.args.p2};return new M(Q).addBufferToData(this.args.data).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefault(P({data:void 0}))}}var G$=84;class C0{constructor(Q){this.args=Q}name="PcztTransparentOutput";errorHelper=new W(v,R);getApdu(){let Q={cla:k,ins:G$,p1:this.args.p1,p2:this.args.p2};return new M(Q).addBufferToData(this.args.data).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefault(P({data:void 0}))}}var w$=89,mX=64;class T0{constructor(Q){this.args=Q}name="SignPcztIronwood";errorHelper=new W(v,R);getApdu(){let Q={cla:k,ins:w$,p1:A.FIRST,p2:this.args.actionIndex};return new M(Q).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefaultLazy(()=>{let X=new Uint8Array(Q.data);return X.length!==mX?P({error:new j(`Expected ${mX}-byte Ironwood spendAuthSig, got ${X.length}`)}):P({data:{spendAuthSig:X}})})}}var F$=87,HX=64;class B0{constructor(Q){this.args=Q}name="SignPcztOrchard";errorHelper=new W(v,R);getApdu(){let Q={cla:k,ins:F$,p1:A.FIRST,p2:this.args.actionIndex};return new M(Q).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefaultLazy(()=>{let X=new Uint8Array(Q.data);return X.length!==HX?P({error:new j(`Expected ${HX}-byte Orchard spendAuthSig, got ${X.length}`)}):P({data:{spendAuthSig:X}})})}}var k$=85;class V0{constructor(Q){this.args=Q}name="SignPcztTransparent";errorHelper=new W(v,R);getApdu(){let Q={cla:k,ins:k$,p1:A.FIRST,p2:this.args.inputIndex};return new M(Q).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefaultLazy(()=>{let X=new Uint8Array(Q.data);return X.length<2?P({error:new j(`Expected a transparent signature with a trailing sighash byte, got ${X.length} bytes`)}):X[X.length-1]!==fQ?P({error:new j(`Expected sighash_type SIGHASH_ALL (0x01), got 0x${X[X.length-1].toString(16)}`)}):P({data:{signature:X}})})}}var _X=new Uint8Array(32),uX=(Q)=>{let X=_.splitPath(Q),$=new i;return $.add8BitUIntToData(X.length),X.forEach((Y)=>$.add32BitUIntToData(Y)),$.build()},hX=(Q)=>{if(Q===null)return Uint8Array.of(0);let X=new i;return X.add8BitUIntToData(1),X.add32BitUIntToData(Q,!1),X.build()},AX=(Q)=>Q?D(y(1),Q.pubkey,Q.seedFingerprint??_X,uX(Q.signingPath)):y(0),v$=(Q,X)=>D(X??_X,uX(Q)),mQ=(Q)=>R$(D(y(Q.length),Q)),R$=(Q)=>{if(Q.length<=UQ)return[Q];let X=[];for(let $=0;$<Q.length;$+=UQ)X.push(Q.subarray($,$+UQ));return X},dX=(Q)=>{let X=new i;return X.addBufferToData(Uint8Array.of(80,67,90,84)),X.add32BitUIntToData(Q.txVersion>=6?2:1,!1),X.add32BitUIntToData(Q.txVersion,!1),X.add32BitUIntToData(Q.versionGroupId,!1),X.add32BitUIntToData(Q.consensusBranchId,!1),X.addBufferToData(hX(Q.fallbackLockTime)),X.add32BitUIntToData(Q.expiryHeight,!1),X.add32BitUIntToData(Q.coinType,!1),X.add8BitUIntToData(Q.txModifiable),X.build()},cX=(Q)=>{let X=[y(Q.length)];for(let $ of Q){let Y=new i;Y.addBufferToData($.prevoutTxid),Y.add32BitUIntToData($.prevoutIndex,!1),Y.addBufferToData(hX($.sequence)),Y.add64BitUIntToData($.value,!1),X.push(Y.build()),X.push(...mQ($.scriptPubKey)),X.push(D(Uint8Array.of($.sighashType),AX($.derivation)))}return X},lX=(Q)=>{let X=[y(Q.length)];for(let $ of Q){let Y=new i;Y.add64BitUIntToData($.value,!1),X.push(Y.build()),X.push(...mQ($.scriptPubKey)),X.push(AX($.derivation))}return X},oX=(Q)=>{let X=[y(Q.actions.length)];if(Q.actions.length===0)return X;for(let J of Q.actions){let N=new i;N.addBufferToData(J.cvNet),N.addBufferToData(J.nullifier),N.addBufferToData(J.rk),N.addBufferToData(J.spendRecipient),N.add64BitUIntToData(J.spendValue,!1),N.addBufferToData(J.spendRho),N.addBufferToData(J.spendRseed),N.addBufferToData(J.alpha),X.push(N.build()),X.push(v$(J.signingPath,J.seedFingerprint)),X.push(D(J.cmx,J.ephemeralKey)),X.push(...mQ(J.encCiphertext)),X.push(...mQ(J.outCiphertext));let Z=new i;Z.addBufferToData(J.recipient),Z.add64BitUIntToData(J.value,!1),Z.addBufferToData(J.rseed),Z.addBufferToData(J.rcv),"notePlaintextVersion"in J&&Z.add8BitUIntToData(J.notePlaintextVersion),X.push(Z.build())}let $=new i,Y=Q.valueBalance;return $.add8BitUIntToData(Q.flags),$.add64BitUIntToData(Y<0n?-Y:Y,!1),$.add8BitUIntToData(Y<0n?1:0),$.addBufferToData(Q.anchor),X.push($.build()),X},pX=(Q)=>oX(Q),nX=(Q)=>oX(Q),vQ=(Q,X)=>Q===0?A.FIRST:Q===X-1?A.LAST:A.NEXT,E0=(Q,X,$)=>$&&Q===X-1?r.FINISHED:r.CONTINUE;var M$={actions:[],flags:0,valueBalance:0n,anchor:new Uint8Array(32)},U$=6;class f0{constructor(Q,X){this.api=Q,this.args=X}async run(){let{global:Q,transparentInputs:X,transparentOutputs:$,orchardBundle:Y,ironwoodBundle:J}=this.args.transaction,N=Y??M$,Z=J??null,q=Q.txVersion===U$;if(q&&Z===null)return z({error:new I0("V6 transaction requires a non-null Ironwood bundle")});if(!q&&Z!==null)return z({error:new I0("V5 transaction does not support an Ironwood bundle")});let O=q&&Z!==null,x=await this.api.sendCommand(new D0({data:dX(Q)}));if(!b(x))return z({error:x.error});let K=cX(X);for(let w=0;w<K.length;w+=1){let L=await this.api.sendCommand(new y0({data:K[w],p1:vQ(w,K.length),p2:r.CONTINUE}));if(!b(L))return z({error:L.error})}let F=lX($);for(let w=0;w<F.length;w+=1){let L=await this.api.sendCommand(new C0({data:F[w],p1:vQ(w,F.length),p2:r.CONTINUE}));if(!b(L))return z({error:L.error})}let G=pX(N);for(let w=0;w<G.length;w+=1){let L=await this.api.sendCommand(new b0({data:G[w],p1:vQ(w,G.length),p2:E0(w,G.length,!q)}));if(!b(L))return z({error:L.error})}if(O){let w=nX(Z);for(let L=0;L<w.length;L+=1){let C=await this.api.sendCommand(new L0({data:w[L],p1:vQ(L,w.length),p2:E0(L,w.length,!0)}));if(!b(C))return z({error:C.error})}}let S=[];for(let w=0;w<N.actions.length;w+=1){if(N.actions[w].spendValue===0n)continue;let L=await this.api.sendCommand(new B0({actionIndex:w}));if(!b(L))return z({error:L.error});S.push(L.data)}let B=[];if(O)for(let w=0;w<Z.actions.length;w+=1){if(Z.actions[w].spendValue===0n)continue;let L=await this.api.sendCommand(new T0({actionIndex:w}));if(!b(L))return z({error:L.error});B.push(L.data)}let m=[];for(let w=0;w<X.length;w+=1){let L=await this.api.sendCommand(new V0({inputIndex:w}));if(!b(L))return z({error:L.error});m.push(L.data.signature)}return z({data:{orchard:S,transparentInputSigs:m,ironwood:B}})}}var W$=74;class g0{constructor(Q){this.args=Q}name="HashOutputFull";errorHelper=new W(v,R);getApdu(){let Q={cla:k,ins:W$,p1:this.args.isLastChunk?H.NEXT:H.FIRST,p2:f.DEFAULT};return new M(Q).addBufferToData(this.args.outputChunk).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefault(P({data:Q}))}}var D$=74;class S0{constructor(Q){this.args=Q}name="ProvideOutputFullChangePath";errorHelper=new W(v,R);getApdu(){let Q={cla:k,ins:D$,p1:H.CHANGE_PATH,p2:f.DEFAULT},X=new M(Q),$=_.splitPath(this.args.derivationPath);return X.add8BitUIntToData($.length),$.forEach((Y)=>{X.add32BitUIntToData(Y)}),X.build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefault(P({data:Q}))}}class m0{constructor(Q){this.args=Q}name="SignTransaction";errorHelper=new W(v,R);getApdu(){let{derivationPath:Q,expiryHeight:X,lockTime:$,sigHashType:Y}=this.args,J=_.splitPath(Q),N=qX($),Z={cla:k,ins:72,p2:f.DEFAULT,p1:0},q=new M(Z);return q.add8BitUIntToData(J.length),J.forEach((O)=>{q.add32BitUIntToData(O)}),q.add8BitUIntToData(0).addBufferToData(N).add8BitUIntToData(Y),q.addBufferToData(X),q.build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefaultLazy(()=>{let X=new Uint8Array(Q.data);return X.length>0&&(X[0]=48),P({data:{signature:X}})})}}var L$=68;class RQ{constructor(Q){this.args=Q}name="StartUntrustedHashTransactionInput";errorHelper=new W(v,R);getApdu(){let Q={cla:k,ins:L$,p1:this.args.firstRound?H.FIRST:H.NEXT,p2:this.args.newTransaction?f.SAPLING:f.HASH_INPUT_CONTINUE};return new M(Q).addBufferToData(this.args.transactionData).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefault(P({data:Q}))}}var b$=72;class H0{constructor(Q){this.args=Q}name="ZcashSaplingOutputCommit";errorHelper=new W(v,R);getApdu(){let{lockTime:Q,sigHashType:X,expiryHeight:$}=this.args,Y=D(p(Q),Uint8Array.of(0,0),Uint8Array.of(X&255),$);if(Y.length!==11)throw Error("ZcashSaplingOutputCommit: internal payload length");let J={cla:k,ins:b$,p1:0,p2:f.DEFAULT};return new M(J).addBufferToData(Y).build()}parseResponse(Q){return U.fromNullable(this.errorHelper.getError(Q)).orDefault(P({data:{committed:!0}}))}}function sX(Q,X){if(Q.length!==X.length)return!1;for(let $=0;$<Q.length;$+=1)if(Q[$]!==X[$])return!1;return!0}class u0{constructor(Q,X){this.api=Q,this.args=X}async run(){let Q={...{lockTime:PX,sigHashType:fQ,additionals:[]},...this.args.transactionArg},{inputs:X,associatedKeysets:$,blockHeight:Y,changePath:J,outputScriptHex:N,lockTime:Z,sigHashType:q,additionals:O,expiryHeight:x,network:K}=Q,F=new Set(O.map((V)=>V.trim().toLowerCase()));if(!F.has("zcash"))return z({error:new j('signTransaction requires additionals to include "zcash" (Zcash transparent signing only).')});let G=F.has("sapling");if(X.length!==$.length)return z({error:new j("Inputs and associatedKeysets lengths mismatch")});let S=p(Z),B=GX(),m;try{m=EQ(x)}catch(V){return z({error:new j(V instanceof Error?V.message:"Invalid expiryHeight")})}let w=HQ(N)??new Uint8Array,L=new Uint8Array(0),C={inputs:[],version:B,timestamp:new Uint8Array(0)};C.nVersionGroupId=Uint8Array.of(10,39,167,38),C.nExpiryHeight=m,C.extraData=G?new Uint8Array(11):Uint8Array.of(0);let zQ=await this.collectTrustedInputsAndOutputs(X,K);if(!("trustedInputs"in zQ))return zQ;let{trustedInputs:h,regularOutputs:JQ}=zQ;C.inputs=X.map((V,MQ)=>{let N8=p(V.length>=4&&typeof V[3]=="number"?V[3]:x0);return{script:JQ[MQ].script,prevout:L,sequence:N8}});let iQ=await this.collectPublicKeys($);if(!Array.isArray(iQ))return iQ;let rQ=iQ,eQ=await this.shouldProvideChangePath(J,$,rQ,w);if(typeof eQ!="boolean")return eQ;C.consensusBranchId=gQ(Y,K);let A0=await this.executeHashSequence(C,h,J,eQ,w,G,Z,q,m);if(A0)return A0;let tQ=await this.signEachInput(X,$,JQ,C,h,Z,q,m);if(!Array.isArray(tQ))return tQ;let d0=tQ;C.version=B,C.consensusBranchId=gQ(Y,K);for(let V=0;V<X.length;V+=1){C.inputs[V].script=D(Uint8Array.of(d0[V].length),d0[V],Uint8Array.of(rQ[V].length),rQ[V]);let MQ=4;C.inputs[V].prevout=h[V].value.subarray(MQ,MQ+36)}C.locktime=S;let J8=D(G0(C,C.timestamp),w,Uint8Array.of(0,0,0));return z({data:_0(J8,!0)})}async collectTrustedInputsAndOutputs(Q,X){let $=[],Y=[];for(let J of Q){let N=J[0],Z=zX(N);Z.consensusBranchId=gQ(J[4],X);let q=await this.getTrustedInput(J[1],Z,N.serializedPreviousTransactionOverride);if(typeof q!="string")return q;let O=p(J.length>=4&&typeof J[3]=="number"?J[3]:x0);if($.push({trustedInput:!0,value:HQ(q)??new Uint8Array,sequence:O}),Z.outputs&&J[1]<=Z.outputs.length-1){let x=Z.outputs[J[1]];if(!x)return z({error:new j("Invalid output index in previous transaction")});Y.push(x)}else return z({error:new j("Invalid output index in previous transaction")})}return{trustedInputs:$,regularOutputs:Y}}async collectPublicKeys(Q){let X=[];for(let $ of Q){let Y=await this.api.sendCommand(new qQ({derivationPath:$,checkOnDevice:!1}));if(!b(Y))return z({error:Y.error});X.push(w0(Y.data.publicKey))}return X}async shouldProvideChangePath(Q,X,$,Y){let J=typeof Q=="string"?Q.trim():"";if(J==="")return!1;let N=X.indexOf(J),Z;if(N>=0)Z=$[N];else{let q=await this.api.sendCommand(new qQ({derivationPath:J,checkOnDevice:!1}));if(!b(q))return z({error:q.error});Z=q.data.publicKey}try{let q=xX(Z),O=jX(Y);return O!==null&&O.length>=2&&O.some((x)=>sX(x,q))}catch{return!1}}async executeHashSequence(Q,X,$,Y,J,N,Z,q,O){let x=await this.startUntrustedHashTransactionInput(!0,Q,X);if(x)return x;if(Y&&$){let F=await this.api.sendCommand(new S0({derivationPath:$}));if(!b(F))return z({error:F.error})}let K=await this.hashOutputFull(J);if(K)return K;if(N){let F=await this.api.sendCommand(new H0({lockTime:Z,sigHashType:q,expiryHeight:O}));if(!b(F))return z({error:F.error})}return null}async signEachInput(Q,X,$,Y,J,N,Z,q){let O=[];for(let x=0;x<Q.length;x+=1){let K=Q[x],F=K.length>=3&&typeof K[2]=="string"?HQ(K[2])??new Uint8Array:$[x].script,G={...Y,inputs:[{...Y.inputs[x],script:F}]},S=await this.startUntrustedHashTransactionInput(!1,G,[J[x]]);if(S)return S;let B=await this.api.sendCommand(new m0({derivationPath:X[x],lockTime:N,sigHashType:Z,expiryHeight:q}));if(!b(B))return z({error:B.error});O.push(B.data.signature)}return O}async getTrustedInput(Q,X,$){let Y=$&&$.length>0?$:G0(X,X.timestamp),J=await new kQ(this.api,{transaction:Y,indexLookup:Q}).run();return aX(J)?_0(J.data.data,!1):z({error:J.error})}async hashOutputFull(Q){let X=0;for(;X<Q.length;){let $=X+IQ>=Q.length?Q.length-X:IQ,Y=Q.subarray(X,X+$),J=await this.api.sendCommand(new g0({outputChunk:Y,isLastChunk:X+$===Q.length}));if(!b(J))return z({error:J.error});X+=$}return null}buildScriptBlocks(Q){if(Q.script.length===0)return[Q.sequence];let X=[],$=0;for(;$!==Q.script.length;){let Y=Math.min(IQ,Q.script.length-$),J=Q.script.subarray($,$+Y);X.push($+Y===Q.script.length?D(J,Q.sequence):Uint8Array.from(J)),$+=Y}return X}async sendInputBlocks(Q,X){for(let $ of Q){let Y=await this.api.sendCommand(new RQ({newTransaction:X,firstRound:!1,transactionData:$}));if(!b(Y))return z({error:Y.error})}return null}async startUntrustedHashTransactionInput(Q,X,$){let Y=X.consensusBranchId||new Uint8Array(0),J=D(X.version,X.timestamp||new Uint8Array(0),X.nVersionGroupId||new Uint8Array(0),Y,y(X.inputs.length)),N=await this.api.sendCommand(new RQ({newTransaction:Q,firstRound:!0,transactionData:J}));if(!b(N))return z({error:N.error});for(let Z=0;Z<X.inputs.length;Z+=1){let q=X.inputs[Z],O=$[Z].value,x=$[Z].trustedInput?Uint8Array.of(1,O.length):Uint8Array.of(0),K=D(x,O,y(q.script.length)),F=await this.api.sendCommand(new RQ({newTransaction:Q,firstRound:!1,transactionData:K}));if(!b(F))return z({error:F.error});let G=await this.sendInputBlocks(this.buildScriptBlocks(q),Q);if(G)return G}return null}}var{defineProperty:y$,getOwnPropertyDescriptor:C$}=Object,T$=(Q,X,$,Y)=>{for(var J=Y>1?void 0:Y?C$(X,$):X,N=Q.length-1,Z;N>=0;N--)(Z=Q[N])&&(J=(Y?Z(X,$,J):Z(J))||J);return Y&&J&&y$(X,$,J),J},iX=(Q,X)=>($,Y)=>X($,Y,Q),uQ=class{constructor(Q,X){this.dmk=Q,this.sessionId=X}getAppConfig(Q){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new _Q({input:{command:new Q0,appName:d,requiredUserInteraction:o.None,skipOpenApp:Q.skipOpenApp}})})}getAddress(Q){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new _Q({input:{command:new qQ(Q),appName:d,requiredUserInteraction:Q.checkOnDevice?o.VerifyAddress:o.None,skipOpenApp:Q.skipOpenApp}})})}getShieldedAddress(Q){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new PQ({input:{task:async(X)=>new J0(X,{derivationPath:Q.derivationPath,checkOnDevice:Q.checkOnDevice}).run(),appName:d,requiredUserInteraction:Q.checkOnDevice?o.VerifyAddress:o.None,skipOpenApp:Q.skipOpenApp}})})}getFullViewingKey(Q){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new PQ({input:{task:async(X)=>new $0(X,{derivationPath:Q.derivationPath,mode:Q.mode}).run(),appName:d,requiredUserInteraction:o.None,skipOpenApp:Q.skipOpenApp}})})}signTransaction(Q){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new PQ({input:{task:async(X)=>new u0(X,Q).run(),appName:d,requiredUserInteraction:o.SignTransaction,skipOpenApp:Q.skipOpenApp??!1}})})}signPcztTransaction(Q){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new PQ({input:{task:async(X)=>new f0(X,{transaction:Q.transaction}).run(),appName:d,requiredUserInteraction:o.SignTransaction,skipOpenApp:Q.skipOpenApp??!1}})})}signMessage(Q){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new _Q({input:{command:new X0(Q),appName:d,requiredUserInteraction:o.SignPersonalMessage,skipOpenApp:Q.skipOpenApp}})})}getTrustedInput(Q){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new PQ({input:{task:async(X)=>new kQ(X,Q).run(),appName:d,requiredUserInteraction:o.None,skipOpenApp:Q.skipOpenApp??!1}})})}};uQ=T$([I(),iX(0,T(NQ.Dmk)),iX(1,T(NQ.SessionId))],uQ);var rX=()=>new n(({bind:Q})=>{Q(E.AppBinding).to(uQ)});var $Q={GetAddressUseCase:Symbol.for("GetAddressUseCase"),GetFullViewingKeyUseCase:Symbol.for("GetFullViewingKeyUseCase"),GetShieldedAddressUseCase:Symbol.for("GetShieldedAddressUseCase")};var{defineProperty:B$,getOwnPropertyDescriptor:V$}=Object,E$=(Q,X,$,Y)=>{for(var J=Y>1?void 0:Y?V$(X,$):X,N=Q.length-1,Z;N>=0;N--)(Z=Q[N])&&(J=(Y?Z(X,$,J):Z(J))||J);return Y&&J&&B$(X,$,J),J},I$=(Q,X)=>($,Y)=>X($,Y,Q),hQ=class{_appBinder;constructor(Q){this._appBinder=Q}execute(Q,X){return this._appBinder.getAddress({derivationPath:Q,checkOnDevice:X?.checkOnDevice??!1,skipOpenApp:X?.skipOpenApp??!1})}};hQ=E$([I(),I$(0,T(E.AppBinding))],hQ);var{defineProperty:f$,getOwnPropertyDescriptor:g$}=Object,S$=(Q,X,$,Y)=>{for(var J=Y>1?void 0:Y?g$(X,$):X,N=Q.length-1,Z;N>=0;N--)(Z=Q[N])&&(J=(Y?Z(X,$,J):Z(J))||J);return Y&&J&&f$(X,$,J),J},m$=(Q,X)=>($,Y)=>X($,Y,Q),AQ=class{_appBinder;constructor(Q){this._appBinder=Q}execute(Q,X){return this._appBinder.getFullViewingKey({derivationPath:Q,mode:X?.mode??"ufvk",skipOpenApp:X?.skipOpenApp??!1})}};AQ=S$([I(),m$(0,T(E.AppBinding))],AQ);var{defineProperty:H$,getOwnPropertyDescriptor:_$}=Object,u$=(Q,X,$,Y)=>{for(var J=Y>1?void 0:Y?_$(X,$):X,N=Q.length-1,Z;N>=0;N--)(Z=Q[N])&&(J=(Y?Z(X,$,J):Z(J))||J);return Y&&J&&H$(X,$,J),J},h$=(Q,X)=>($,Y)=>X($,Y,Q),dQ=class{_appBinder;constructor(Q){this._appBinder=Q}execute(Q,X){return this._appBinder.getShieldedAddress({derivationPath:Q,checkOnDevice:X?.checkOnDevice??!1,skipOpenApp:X?.skipOpenApp??!1})}};dQ=u$([I(),h$(0,T(E.AppBinding))],dQ);var eX=()=>new n(({bind:Q})=>{Q($Q.GetAddressUseCase).to(hQ),Q($Q.GetFullViewingKeyUseCase).to(AQ),Q($Q.GetShieldedAddressUseCase).to(dQ)});var cQ={GetAppConfigUseCase:Symbol.for("GetAppConfigUseCase")};var{defineProperty:A$,getOwnPropertyDescriptor:d$}=Object,c$=(Q,X,$,Y)=>{for(var J=Y>1?void 0:Y?d$(X,$):X,N=Q.length-1,Z;N>=0;N--)(Z=Q[N])&&(J=(Y?Z(X,$,J):Z(J))||J);return Y&&J&&A$(X,$,J),J},l$=(Q,X)=>($,Y)=>X($,Y,Q),lQ=class{_appBinder;constructor(Q){this._appBinder=Q}execute(){return this._appBinder.getAppConfig({skipOpenApp:!1})}};lQ=c$([I(),l$(0,T(E.AppBinding))],lQ);var tX=()=>new n(({bind:Q})=>{Q(cQ.GetAppConfigUseCase).to(lQ)});var oQ={SignMessageUseCase:Symbol.for("SignMessageUseCase")};var{defineProperty:o$,getOwnPropertyDescriptor:p$}=Object,n$=(Q,X,$,Y)=>{for(var J=Y>1?void 0:Y?p$(X,$):X,N=Q.length-1,Z;N>=0;N--)(Z=Q[N])&&(J=(Y?Z(X,$,J):Z(J))||J);return Y&&J&&o$(X,$,J),J},s$=(Q,X)=>($,Y)=>X($,Y,Q),pQ=class{_appBinder;constructor(Q){this._appBinder=Q}execute(Q,X){return this._appBinder.signMessage({derivationPath:Q,message:X,skipOpenApp:!1})}};pQ=n$([I(),s$(0,T(E.AppBinding))],pQ);var Q8=()=>new n(({bind:Q})=>{Q(oQ.SignMessageUseCase).to(pQ)});var YQ={GetTrustedInputUseCase:Symbol.for("GetTrustedInputUseCase"),SignTransactionUseCase:Symbol.for("SignTransactionUseCase"),SignPcztTransactionUseCase:Symbol.for("SignPcztTransactionUseCase")};var{defineProperty:a$,getOwnPropertyDescriptor:i$}=Object,r$=(Q,X,$,Y)=>{for(var J=Y>1?void 0:Y?i$(X,$):X,N=Q.length-1,Z;N>=0;N--)(Z=Q[N])&&(J=(Y?Z(X,$,J):Z(J))||J);return Y&&J&&a$(X,$,J),J},e$=(Q,X)=>($,Y)=>X($,Y,Q),nQ=class{_appBinder;constructor(Q){this._appBinder=Q}execute(Q,X){return this._appBinder.getTrustedInput({transaction:Q,indexLookup:X?.indexLookup,skipOpenApp:X?.skipOpenApp??!1})}};nQ=r$([I(),e$(0,T(E.AppBinding))],nQ);var{defineProperty:t$,getOwnPropertyDescriptor:QY}=Object,XY=(Q,X,$,Y)=>{for(var J=Y>1?void 0:Y?QY(X,$):X,N=Q.length-1,Z;N>=0;N--)(Z=Q[N])&&(J=(Y?Z(X,$,J):Z(J))||J);return Y&&J&&t$(X,$,J),J},$Y=(Q,X)=>($,Y)=>X($,Y,Q),sQ=class{_appBinder;constructor(Q){this._appBinder=Q}execute(Q,X){return this._appBinder.signPcztTransaction({transaction:Q,skipOpenApp:X?.skipOpenApp})}};sQ=XY([I(),$Y(0,T(E.AppBinding))],sQ);var{defineProperty:YY,getOwnPropertyDescriptor:JY}=Object,NY=(Q,X,$,Y)=>{for(var J=Y>1?void 0:Y?JY(X,$):X,N=Q.length-1,Z;N>=0;N--)(Z=Q[N])&&(J=(Y?Z(X,$,J):Z(J))||J);return Y&&J&&YY(X,$,J),J},ZY=(Q,X)=>($,Y)=>X($,Y,Q),aQ=class{_appBinder;constructor(Q){this._appBinder=Q}execute(Q,X){return this._appBinder.signTransaction({transactionArg:Q,skipOpenApp:X?.skipOpenApp})}};aQ=NY([I(),ZY(0,T(E.AppBinding))],aQ);var X8=()=>new n(({bind:Q})=>{Q(YQ.GetTrustedInputUseCase).to(nQ),Q(YQ.SignTransactionUseCase).to(aQ),Q(YQ.SignPcztTransactionUseCase).to(sQ)});var Y8=({dmk:Q,sessionId:X})=>{let $=new $8;return $.bind(NQ.Dmk).toConstantValue(Q),$.bind(NQ.SessionId).toConstantValue(X),$.loadSync(rX(),tX(),eX(),X8(),Q8()),$};class h0{_container;constructor({dmk:Q,sessionId:X}){this._container=Y8({dmk:Q,sessionId:X})}getAppConfig(){return this._container.get(cQ.GetAppConfigUseCase).execute()}getAddress(Q,X){return this._container.get($Q.GetAddressUseCase).execute(Q,X)}getFullViewingKey(Q,X){return this._container.get($Q.GetFullViewingKeyUseCase).execute(Q,X)}getShieldedAddress(Q,X){return this._container.get($Q.GetShieldedAddressUseCase).execute(Q,X)}signTransaction(Q,X){return this._container.get(YQ.SignTransactionUseCase).execute(Q,X)}signPcztTransaction(Q,X){return this._container.get(YQ.SignPcztTransactionUseCase).execute(Q,X)}signMessage(Q,X){return this._container.get(oQ.SignMessageUseCase).execute(Q,X)}getTrustedInput(Q,X){return this._container.get(YQ.GetTrustedInputUseCase).execute(Q,X)}}class qY{_dmk;_sessionId;constructor({dmk:Q,sessionId:X}){this._dmk=Q,this._sessionId=X}build(){return new h0({dmk:this._dmk,sessionId:this._sessionId})}}export{qY as SignerZcashBuilder};
2
+
3
+ //# debugId=B5F1A78D61388F0464756E2164756E21
4
+ //# sourceMappingURL=chunk-a39rm9nv.js.map