@swapkit/wallet-hardware 6.1.0 → 6.2.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 (101) hide show
  1. package/dist/chunk-035dayv6.js +4 -0
  2. package/dist/chunk-035dayv6.js.map +10 -0
  3. package/dist/{chunk-yrxe491r.js → chunk-2jddegc1.js} +3 -3
  4. package/dist/{chunk-yrxe491r.js.map → chunk-2jddegc1.js.map} +1 -1
  5. package/dist/{chunk-gr3eswf1.js → chunk-42xrtarj.js} +3 -3
  6. package/dist/{chunk-gr3eswf1.js.map → chunk-42xrtarj.js.map} +1 -1
  7. package/dist/{chunk-3t17wpjg.js → chunk-545s1tsc.js} +3 -3
  8. package/dist/{chunk-3t17wpjg.js.map → chunk-545s1tsc.js.map} +1 -1
  9. package/dist/{chunk-1amf58aq.js → chunk-5xg0xc0g.js} +3 -3
  10. package/dist/{chunk-1amf58aq.js.map → chunk-5xg0xc0g.js.map} +1 -1
  11. package/dist/{chunk-xn0fnag5.js → chunk-71kfnwdp.js} +3 -3
  12. package/dist/{chunk-xn0fnag5.js.map → chunk-71kfnwdp.js.map} +1 -1
  13. package/dist/{chunk-xmvg4cds.js → chunk-7kwtpk70.js} +3 -3
  14. package/dist/{chunk-xmvg4cds.js.map → chunk-7kwtpk70.js.map} +1 -1
  15. package/dist/{chunk-0arpsm5f.js → chunk-7rbvcts9.js} +3 -3
  16. package/dist/{chunk-0arpsm5f.js.map → chunk-7rbvcts9.js.map} +1 -1
  17. package/dist/{chunk-k3thje6a.js → chunk-a47dwwv6.js} +3 -3
  18. package/dist/{chunk-k3thje6a.js.map → chunk-a47dwwv6.js.map} +1 -1
  19. package/dist/{chunk-5c7b7z2d.js → chunk-a6vcbcyd.js} +3 -3
  20. package/dist/{chunk-5c7b7z2d.js.map → chunk-a6vcbcyd.js.map} +1 -1
  21. package/dist/{chunk-wfbg89d3.js → chunk-b093ajcq.js} +3 -3
  22. package/dist/{chunk-wfbg89d3.js.map → chunk-b093ajcq.js.map} +1 -1
  23. package/dist/{chunk-ds2m83jp.js → chunk-b7htg03t.js} +3 -3
  24. package/dist/{chunk-ds2m83jp.js.map → chunk-b7htg03t.js.map} +1 -1
  25. package/dist/chunk-g6rrzxcx.js +5 -0
  26. package/dist/chunk-g6rrzxcx.js.map +10 -0
  27. package/dist/{chunk-jewm2ag3.js → chunk-j3n6fbqh.js} +4 -4
  28. package/dist/{chunk-jewm2ag3.js.map → chunk-j3n6fbqh.js.map} +1 -1
  29. package/dist/{chunk-nhva847d.js → chunk-kaw35ae2.js} +3 -3
  30. package/dist/{chunk-nhva847d.js.map → chunk-kaw35ae2.js.map} +1 -1
  31. package/dist/{chunk-dptbnkzm.js → chunk-mzan0m09.js} +4 -4
  32. package/dist/{chunk-dptbnkzm.js.map → chunk-mzan0m09.js.map} +1 -1
  33. package/dist/{chunk-jzrytcrf.js → chunk-rydhx4se.js} +3 -3
  34. package/dist/{chunk-jzrytcrf.js.map → chunk-rydhx4se.js.map} +1 -1
  35. package/dist/{chunk-09e51wma.js → chunk-s2akss77.js} +3 -3
  36. package/dist/{chunk-09e51wma.js.map → chunk-s2akss77.js.map} +1 -1
  37. package/dist/{chunk-tm47brht.js → chunk-s5a5v0m1.js} +3 -3
  38. package/dist/{chunk-tm47brht.js.map → chunk-s5a5v0m1.js.map} +1 -1
  39. package/dist/{chunk-8m2sn76p.js → chunk-sbebfr50.js} +3 -3
  40. package/dist/{chunk-8m2sn76p.js.map → chunk-sbebfr50.js.map} +1 -1
  41. package/dist/{chunk-xx7cwpzq.js → chunk-sp3dq5hr.js} +2 -2
  42. package/dist/{chunk-hg71hp4m.js → chunk-tecse0bj.js} +3 -3
  43. package/dist/{chunk-hg71hp4m.js.map → chunk-tecse0bj.js.map} +1 -1
  44. package/dist/chunk-tm5gk51g.js +4 -0
  45. package/dist/{chunk-eenx3cv6.js → chunk-x28a37pz.js} +3 -3
  46. package/dist/{chunk-eenx3cv6.js.map → chunk-x28a37pz.js.map} +1 -1
  47. package/dist/{chunk-3h1f3hyp.js → chunk-ys51wj1c.js} +3 -3
  48. package/dist/{chunk-3h1f3hyp.js.map → chunk-ys51wj1c.js.map} +1 -1
  49. package/dist/keepkey/index.cjs +2 -2
  50. package/dist/keepkey/index.cjs.map +3 -3
  51. package/dist/keepkey/index.js +2 -2
  52. package/dist/keepkey/index.js.map +3 -3
  53. package/dist/ledger/index.cjs +30 -30
  54. package/dist/ledger/index.cjs.map +11 -7
  55. package/dist/ledger/index.js +2 -2
  56. package/dist/ledger/index.js.map +10 -7
  57. package/dist/trezor/index.cjs +2 -2
  58. package/dist/trezor/index.cjs.map +6 -5
  59. package/dist/trezor/index.js +2 -2
  60. package/dist/trezor/index.js.map +3 -3
  61. package/dist/types/helpers/cardano.d.ts +35 -0
  62. package/dist/types/helpers/cardano.d.ts.map +1 -0
  63. package/dist/types/keepkey/index.d.ts +1 -0
  64. package/dist/types/keepkey/index.d.ts.map +1 -1
  65. package/dist/types/ledger/clients/cardano.d.ts +24 -0
  66. package/dist/types/ledger/clients/cardano.d.ts.map +1 -0
  67. package/dist/types/ledger/clients/evm.d.ts +1 -0
  68. package/dist/types/ledger/clients/evm.d.ts.map +1 -1
  69. package/dist/types/ledger/clients/stellar.d.ts +13 -0
  70. package/dist/types/ledger/clients/stellar.d.ts.map +1 -0
  71. package/dist/types/ledger/clients/ton.d.ts +13 -0
  72. package/dist/types/ledger/clients/ton.d.ts.map +1 -0
  73. package/dist/types/ledger/helpers/getLedgerAddress.d.ts.map +1 -1
  74. package/dist/types/ledger/helpers/getLedgerClient.d.ts +8 -1
  75. package/dist/types/ledger/helpers/getLedgerClient.d.ts.map +1 -1
  76. package/dist/types/ledger/index.d.ts +3 -2
  77. package/dist/types/ledger/index.d.ts.map +1 -1
  78. package/dist/types/ledger/types.d.ts +2 -2
  79. package/dist/types/ledger/types.d.ts.map +1 -1
  80. package/dist/types/trezor/cardanoSigner.d.ts.map +1 -1
  81. package/dist/types/trezor/index.d.ts +1 -0
  82. package/dist/types/trezor/index.d.ts.map +1 -1
  83. package/dist/types/trezor/stellarSigner.d.ts +1 -1
  84. package/package.json +17 -5
  85. package/src/helpers/cardano.ts +112 -0
  86. package/src/keepkey/index.ts +14 -14
  87. package/src/ledger/clients/cardano.ts +204 -0
  88. package/src/ledger/clients/evm.ts +4 -0
  89. package/src/ledger/clients/stellar.ts +83 -0
  90. package/src/ledger/clients/ton.ts +282 -0
  91. package/src/ledger/helpers/getLedgerAddress.ts +16 -0
  92. package/src/ledger/helpers/getLedgerClient.ts +13 -0
  93. package/src/ledger/index.ts +100 -28
  94. package/src/ledger/types.ts +2 -0
  95. package/src/trezor/cardanoSigner.ts +24 -80
  96. package/src/trezor/index.ts +86 -64
  97. package/dist/chunk-5p3ttw6y.js +0 -4
  98. package/dist/chunk-qjq7gvyx.js +0 -4
  99. package/dist/chunk-qjq7gvyx.js.map +0 -10
  100. /package/dist/{chunk-xx7cwpzq.js.map → chunk-sp3dq5hr.js.map} +0 -0
  101. /package/dist/{chunk-5p3ttw6y.js.map → chunk-tm5gk51g.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- var A$=Object.create;var{getPrototypeOf:H$,defineProperty:_M,getOwnPropertyNames:CM,getOwnPropertyDescriptor:z$}=Object,IM=Object.prototype.hasOwnProperty;function KM(M){return this[M]}var E$,k$,z4=(M,$,U)=>{var X=M!=null&&typeof M==="object";if(X){var J=$?E$??=new WeakMap:k$??=new WeakMap,Q=J.get(M);if(Q)return Q}U=M!=null?A$(H$(M)):{};let B=$||!M||!M.__esModule?_M(U,"default",{value:M,enumerable:!0}):U;for(let Z of CM(M))if(!IM.call(B,Z))_M(B,Z,{get:KM.bind(M,Z),enumerable:!0});if(X)J.set(M,B);return B},S$=(M)=>{var $=(TM??=new WeakMap).get(M),U;if($)return $;if($=_M({},"__esModule",{value:!0}),M&&typeof M==="object"||typeof M==="function"){for(var X of CM(M))if(!IM.call($,X))_M($,X,{get:KM.bind(M,X),enumerable:!(U=z$(M,X))||U.enumerable})}return TM.set(M,$),$},TM,E4=(M,$)=>()=>($||M(($={exports:{}}).exports,$),$.exports);var m$=(M)=>M;function F$(M,$){this[M]=m$.bind(null,$)}var a=(M,$)=>{for(var U in $)_M(M,U,{get:$[U],enumerable:!0,configurable:!0,set:F$.bind($,U)})};var qM=(M,$)=>()=>(M&&($=M(M=0)),$);var gM={};a(gM,{getEVMSigner:()=>w$});async function w$({chain:M,derivationPath:$,provider:U}){let{AbstractSigner:X}=await import("ethers");class J extends X{address;chain;derivationPath;provider;constructor({chain:Q,derivationPath:B,provider:Z}){super(Z);this.address="",this.chain=Q,this.derivationPath=B,this.provider=Z}getAddress=async()=>{if(!this.address){let B=await(await import("@trezor/connect-web")).default.ethereumGetAddress({path:g.derivationPathToString(this.derivationPath),showOnTrezor:!0});if(!B.success)throw new g.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{...B,chain:this.chain,derivationPath:this.derivationPath}});this.address=B.payload.address}return this.address};signMessage=async(Q)=>{let Z=await(await import("@trezor/connect-web")).default.ethereumSignMessage({message:Q,path:g.derivationPathToString(this.derivationPath)});if(!Z.success)throw new g.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...Z,chain:this.chain,derivationPath:this.derivationPath,message:Q}});return Z.payload.signature};signTypedData=async(Q,B,Z,_)=>{let j=(await import("@trezor/connect-web")).default,{buildEIP712DomainType:W}=await import("@swapkit/toolboxes/evm"),{TypedDataEncoder:N}=await import("ethers"),{EIP712Domain:G,...V}=B,Y=_??N.from(V).primaryType,O=W(Q),F={domain:Q,message:Z,primaryType:Y,types:{EIP712Domain:O,...V}},b=await j.ethereumSignTypedData({data:F,metamask_v4_compat:!0,path:g.derivationPathToString(this.derivationPath)});if(!b.success)throw new g.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:this.chain,error:b.payload.error}});return b.payload.signature.startsWith("0x")?b.payload.signature:`0x${b.payload.signature}`};signTransaction=async({to:Q,gasLimit:B,value:Z,data:_,nonce:j,maxFeePerGas:W,maxPriorityFeePerGas:N,gasPrice:G})=>{if(!Q)throw new g.SwapKitError({errorKey:"wallet_missing_params",info:{to:Q}});if(!B)throw new g.SwapKitError({errorKey:"wallet_missing_params",info:{gasLimit:B}});let V=W!=null||N!=null;if(V&&!W)throw new g.SwapKitError({errorKey:"wallet_missing_params",info:{maxFeePerGas:W}});if(!(V||G))throw new g.SwapKitError({errorKey:"wallet_missing_params",info:{gasPrice:G}});let Y=(await import("@trezor/connect-web")).default,{toHexString:O}=await import("@swapkit/toolboxes/evm"),F=V?{maxFeePerGas:O(BigInt(W?.toString()||0)),maxPriorityFeePerGas:O(BigInt(N?.toString()||0))}:G&&{gasPrice:O(BigInt(G?.toString()||0))}||{gasPrice:"0x0"},b=O(BigInt(j||await this.provider.getTransactionCount(await this.getAddress(),"pending"))),w={chainId:Number.parseInt(g.ChainToChainId[this.chain],10),data:_?.toString()||"0x",gasLimit:O(BigInt(B?.toString()||0)),nonce:b,to:Q.toString(),value:O(BigInt(Z?.toString()||0)),...F},{success:x,payload:P}=await Y.ethereumSignTransaction({path:g.derivationPathToString(this.derivationPath),transaction:w});if(!x)throw new g.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...P,chain:this.chain,derivationPath:this.derivationPath}});let v=P.serializedTx?P.serializedTx.startsWith("0x")?P.serializedTx:`0x${P.serializedTx}`:void 0;if(!v)throw new g.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:this.chain,derivationPath:this.derivationPath}});return v};connect=(Q)=>{if(!Q)throw new g.SwapKitError({errorKey:"wallet_provider_not_found",info:{chain:this.chain,derivationPath:this.derivationPath,wallet:g.WalletOption.TREZOR}});return new J({chain:this.chain,derivationPath:this.derivationPath,provider:Q})}}return new J({chain:M,derivationPath:$,provider:U})}var g;var PM=qM(()=>{g=require("@swapkit/helpers")});var xM={};a(xM,{toTrezorCardanoTransaction:()=>vM,getCardanoSigner:()=>b$,addTrezorWitnesses:()=>hM});function yM({CARDANO:M,PROTO:$}){return{derivationType:$.CardanoDerivationType.ICARUS,mainnet:{networkId:M.NETWORK_IDS.mainnet,protocolMagic:M.PROTOCOL_MAGICS.mainnet}}}function r(M){return new l.SwapKitError({errorKey:"wallet_trezor_method_not_supported",info:{chain:l.Chain.Cardano,reason:M}})}function AM(M){return new l.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:l.Chain.Cardano,error:M}})}function UM(M,$){let X=typeof M==="object"&&M!==null&&"toFixed"in M||Number.isSafeInteger(M)?String(M.toFixed()):"";if(!/^\d+$/.test(X))throw r(`Invalid ${$} in Cardano transaction`);return X}function C$(M){return[...M].map(([$,U])=>({policyId:e.hex.encode($),tokenAmounts:[...U].map(([X,J])=>({amount:UM(J,"token amount"),assetNameBytes:e.hex.encode(X)}))}))}async function I$(M,$,U){let X,J,Q;if(Array.isArray(M)){if(M.length!==2)throw r("Trezor cannot sign Cardano outputs with a datum");[X,J]=M,Q=U.CardanoTxOutputSerializationFormat.ARRAY_LEGACY}else if(M instanceof Map){if(M.has(2))throw r("Trezor cannot sign Cardano outputs with a datum");if(M.has(3))throw r("Trezor cannot sign Cardano outputs with a reference script");if(M.size!==2)throw r("Unsupported field in Cardano output");X=M.get(0),J=M.get(1),Q=U.CardanoTxOutputSerializationFormat.MAP_BABBAGE}else throw r("Invalid Cardano output");if(Array.isArray(J)&&J.length!==2)throw r("Invalid Cardano output value");let[B,Z]=Array.isArray(J)?J:[J],_=await u.getCardanoAddressFromBytes(X);return{..._===$.address?{addressParameters:{addressType:U.CardanoAddressType.BASE,path:$.path,stakingPath:$.stakingPath}}:{address:_},amount:UM(B,"output amount"),format:Q,...Z===void 0?{}:{tokenBundle:C$(Z)}}}function K$(M,$){let U=typeof M==="object"&&M!==null&&"tag"in M&&M.tag===T$&&"value"in M;return{inputs:(U?M.value:M).map((Q)=>{if(Q.length!==2)throw r("Invalid Cardano input");let[B,Z]=Q;return{path:$,prev_hash:e.hex.encode(B),prev_index:Number(UM(Z,"input index"))}}),tagCborSets:U}}async function vM(M,$,U){let{body:X}=await u.decodeCardanoTransaction(M),{derivationType:J,mainnet:Q}=yM(U),{PROTO:B}=U,Z=Object.values(t),_=[...X.keys()].filter((V)=>!Z.includes(V));if(_.length>0)throw r(`Trezor cannot sign Cardano transactions with body fields ${_.join(", ")}`);let j=X.get(t.OUTPUTS),W=X.get(t.AUXILIARY_DATA_HASH),N=X.get(t.TTL),G=X.get(t.VALIDITY_INTERVAL_START);return{...K$(X.get(t.INPUTS),$.path),...Q,derivationType:J,fee:UM(X.get(t.FEE),"fee"),outputs:await Promise.all(j.map((V)=>I$(V,$,B))),signingMode:B.CardanoTxSigningMode.ORDINARY_TRANSACTION,...W?{auxiliaryData:{hash:e.hex.encode(W)}}:{},...N===void 0?{}:{ttl:UM(N,"ttl")},...G===void 0?{}:{validityIntervalStart:UM(G,"validity interval start")}}}async function hM(M,{hash:$,witnesses:U},X,{PROTO:J}){let{bodyHash:Q}=await u.decodeCardanoTransaction(M);if($.toLowerCase()!==Q)throw AM("Trezor signed a different transaction body");let B=U.map(({pubKey:Z,signature:_,type:j})=>{if(j!==J.CardanoTxWitnessType.SHELLEY_WITNESS||Z.toLowerCase()!==X)throw AM("Trezor returned a witness for an unexpected key");return{publicKey:e.hex.decode(Z),signature:e.hex.decode(_)}});return u.addCardanoVkeyWitnesses(M,B)}async function b$({connect:M,derivationPath:$}){let[U,X,J,Q,B]=$;if($.length!==5||Q!==0||B===void 0)throw new l.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{chain:l.Chain.Cardano,derivationPath:$}});let Z=l.derivationPathToString($),_=l.derivationPathToString([U,X,J,2,0]),{derivationType:j,mainnet:W}=yM(M),N=M.default,G=await N.cardanoGetPublicKey({bundle:[Z,_].map((w)=>({derivationType:j,path:w}))});if(!G.success)throw new l.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:l.Chain.Cardano,derivationPath:$,error:G.payload.error}});let[V,Y]=G.payload.map(({node:w})=>Buffer.from(w.public_key,"hex")),O=await u.getCardanoPublicKeyHash(V),F=await u.getCardanoAddressFromBytes(Buffer.concat([Buffer.from([W.networkId]),O,await u.getCardanoPublicKeyHash(Y)]));async function b(w){let x=await vM(w,{address:F,path:Z,stakingPath:_},M),P=await N.cardanoSignTransaction(x);if(!P.success)throw AM(P.payload.error);return hM(w,P.payload,V.toString("hex"),M)}return{getAddress:()=>F,publicKey:V,publicKeyHash:O,signTransaction:b}}var e,l,u,t,T$=258;var cM=qM(()=>{e=require("@scure/base"),l=require("@swapkit/helpers"),u=require("@swapkit/toolboxes/cardano");t={AUXILIARY_DATA_HASH:7,FEE:2,INPUTS:0,OUTPUTS:1,TTL:3,VALIDITY_INTERVAL_START:8}});var uM={};a(uM,{toTrezorRippleTransaction:()=>lM,getRippleSigner:()=>P$});function o(M){return new p.SwapKitError({errorKey:"wallet_trezor_method_not_supported",info:{chain:p.Chain.Ripple,reason:M}})}function lM(M){let $=M;if($.TransactionType!=="Payment")throw o(`Trezor only signs XRP payments, got ${String($.TransactionType)}`);let U=Object.keys($).filter((W)=>$[W]!==void 0&&$[W]!==null&&!g$.has(W));if(U.length>0)throw o(`Trezor cannot sign XRP payments with ${U.join(", ")}`);let{Amount:X,Destination:J,DestinationTag:Q,Fee:B,Flags:Z,LastLedgerSequence:_,Sequence:j}=$;if(typeof X!=="string"||!/^\d+$/.test(X))throw o("Trezor only signs native XRP amounts");if(typeof J!=="string")throw o("Missing destination");if(!XM.isValidClassicAddress(J))throw o("Destination must be a classic XRP address");if(typeof B!=="string"||typeof j!=="number")throw o("Transaction is not autofilled");if(Z!==void 0&&typeof Z!=="number")throw o("Flags must be numeric");if(((Z??0)&XM.GlobalFlags.tfInnerBatchTxn)!==0)throw o("Trezor cannot sign Batch inner XRP transactions");return{fee:B,flags:Z,maxLedgerVersion:_,payment:{amount:X,destination:J,destinationTag:Q},sequence:j}}function P$({derivationPath:M}){let $=p.derivationPathToString(M),U="";async function X(){if(U)return U;let B=await(await import("@trezor/connect-web")).default.rippleGetAddress({path:$,showOnTrezor:!0});if(!B.success)throw new p.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:p.Chain.Ripple,derivationPath:M,error:B.payload.error}});return U=B.payload.address,U}async function J(Q){let B=lM(Q);if(Q.Account!==await X())throw o("Transaction account does not match the Trezor address");let _=await(await import("@trezor/connect-web")).default.rippleSignTransaction({path:$,transaction:B});if(!_.success)throw new p.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:p.Chain.Ripple,error:_.payload.error}});let j=_.payload.serializedTx.toUpperCase();return{hash:XM.hashes.hashSignedTx(j),tx_blob:j}}return{getAddress:X,signTransaction:J}}var p,XM,g$;var pM=qM(()=>{p=require("@swapkit/helpers"),XM=require("xrpl"),g$=new Set(["Account","Amount","Destination","DestinationTag","Fee","Flags","LastLedgerSequence","Sequence","SigningPubKey","TransactionType"])});var sM={};a(sM,{getSolanaSigner:()=>c$});function y$(M){return new y.SwapKitError({errorKey:"wallet_trezor_method_not_supported",info:{chain:y.Chain.Solana,reason:M}})}function v$(M){if("version"in M){let{header:$,staticAccountKeys:U}=M.message;return{message:M.message.serialize(),signerKeys:U.slice(0,$.numRequiredSignatures)}}return{message:M.serializeMessage(),signerKeys:M.signatures.map(({publicKey:$})=>$)}}function h$(M,$){let{message:U,signerKeys:X}=v$(M),J=X.find((Q)=>Q.toBase58()===$);if(!J)throw y$("Trezor account is not a required signer of this transaction");return{message:U,signerKey:J}}function x$(M,{message:$,signature:U,signerKey:X}){if(U.length!==64)throw new y.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:y.Chain.Solana,error:`Invalid signature length: ${U.length}`}});if(!dM.ed25519.verify(U,$,X.toBytes()))throw new y.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:y.Chain.Solana,error:"Signature does not match the Trezor account"}});return M.addSignature(X,Buffer.from(U)),M}function c$({address:M,derivationPath:$}){let[U,X]=$;if(U!==44||X!==501||$.length>4)throw new y.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{chain:y.Chain.Solana,derivationPath:$}});let J=y.derivationPathToString($,{allHardened:!0}),Q=M?new VM.PublicKey(M):null,B=null;async function Z(j){if(B)return B.toBase58();let N=await(await import("@trezor/connect-web")).default.solanaGetAddress({path:J,showOnTrezor:j});if(!N.success)throw new y.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:y.Chain.Solana,derivationPath:$,error:N.payload.error}});let G=new VM.PublicKey(N.payload.address);if(Q&&!G.equals(Q))throw new y.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:y.Chain.Solana,derivationPath:$,error:"Trezor account does not match the restored address"}});return B=G,N.payload.address}async function _(j){let{message:W,signerKey:N}=h$(j,await Z(!1)),V=await(await import("@trezor/connect-web")).default.solanaSignTransaction({path:J,serializedTx:HM.hex.encode(W)});if(!V.success)throw new y.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:y.Chain.Solana,error:V.payload.error}});let Y=HM.hex.decode(V.payload.signature.replace(/^0x/,""));return x$(j,{message:W,signature:Y,signerKey:N})}return{connect:async()=>({publicKey:new VM.PublicKey(await Z(!0))}),disconnect:()=>Promise.resolve(),getAddress:()=>Z(!0),get publicKey(){return B??Q},signTransaction:_}}var dM,HM,VM,y;var rM=qM(()=>{dM=require("@noble/curves/ed25519.js"),HM=require("@scure/base"),VM=require("@solana/web3.js"),y=require("@swapkit/helpers")});var aM={};a(aM,{toTrezorStellarTransaction:()=>nM,getStellarSigner:()=>o$});function d(M){return new c.SwapKitError({errorKey:"wallet_trezor_method_not_supported",info:{chain:c.Chain.Stellar,reason:M}})}function EM(M){let $=/^(\d+)(?:\.(\d{1,7}))?$/.exec(M);if(!$)throw d(`Invalid Stellar amount: ${M}`);let[,U="0",X=""]=$;return BigInt(`${U}${X.padEnd(l$,"0")}`).toString()}function oM(M){if(!/^\d+$/.test(M)||BigInt(M)>u$)throw d(`Unsupported Stellar time bound: ${M}`);return Number(M)}function iM(M){let $=p$[M.getAssetType()];if(!$||!("getCode"in M))throw d("Trezor does not support liquidity pool assets");return $==="NATIVE"?{type:$}:{code:M.getCode(),issuer:M.getIssuer(),type:$}}function d$({source:M,...$}){let U=M?{source:M}:{};switch($.type){case"payment":return{...U,amount:EM($.amount),asset:iM($.asset),destination:$.destination,type:"payment"};case"createAccount":return{...U,destination:$.destination,startingBalance:EM($.startingBalance),type:"createAccount"};case"changeTrust":return{...U,limit:EM($.limit),line:iM($.line),type:"changeTrust"};default:throw d(`Unsupported Stellar operation: ${$.type}`)}}function s$(M){if(typeof M==="string")return M;try{return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(M??void 0)}catch{throw d("Trezor only signs UTF-8 text memos")}}function r$({type:M,value:$}){switch(M){case"none":return;case"text":return{text:s$($),type:zM.text};case"id":return{id:String($),type:zM.id};case"hash":case"return":return{hash:Buffer.from($??"").toString("hex"),type:zM[M]};default:throw d(`Unsupported Stellar memo type: ${M}`)}}function nM(M){if("innerTransaction"in M)throw d("Trezor cannot sign fee bump transactions");if(!M.timeBounds)throw d("Trezor requires transaction time bounds");let{extraSigners:$,ledgerBounds:U,minAccountSequence:X,minAccountSequenceAge:J,minAccountSequenceLedgerGap:Q}=M;if([U,X,J,Q].some((Z)=>Z!==void 0)||$?.length)throw d("Trezor cannot sign Stellar transactions with extra preconditions");return{networkPassphrase:M.networkPassphrase,transaction:{fee:Number(M.fee),memo:r$(M.memo),operations:M.operations.map(d$),sequence:M.sequence,source:M.source,timebounds:{maxTime:oM(M.timeBounds.maxTime),minTime:oM(M.timeBounds.minTime)}}}}function o$({derivationPath:M}){if(M[3]||M[4])throw new c.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{chain:c.Chain.Stellar,derivationPath:M,reason:"Stellar only uses m/44'/148'/x'"}});let $=c.derivationPathToString(M.slice(0,3)),U="";async function X(){if(U)return U;let B=await(await import("@trezor/connect-web")).default.stellarGetAddress({path:$,showOnTrezor:!0});if(!B.success)throw new c.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:c.Chain.Stellar,derivationPath:M,error:B.payload.error}});return U=B.payload.address,U}async function J(Q){let B=nM(Q);if(B.transaction.source!==await X())throw d("Transaction source does not match the Trezor address");let _=await(await import("@trezor/connect-web")).default.stellarSignTransaction({path:$,...B});if(!_.success)throw new c.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:c.Chain.Stellar,error:_.payload.error}});try{Q.addSignature(U,Buffer.from(_.payload.signature,"hex").toString("base64"))}catch(j){throw new c.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:c.Chain.Stellar,error:j}})}return Q}return{getAddress:X,signTransaction:J}}var c,l$=7,u$=4294967295n,p$,zM;var tM=qM(()=>{c=require("@swapkit/helpers"),p$={credit_alphanum4:"ALPHANUM4",credit_alphanum12:"ALPHANUM12",native:"NATIVE"},zM={hash:3,id:2,return:4,text:1}});var q$={};a(q$,{toTrezorTronContract:()=>$$,getTronSigner:()=>$4});function BM(M){return new s.SwapKitError({errorKey:"wallet_trezor_method_not_supported",info:{chain:s.Chain.Tron,reason:M}})}function kM(M,$,U){let X=Object.keys(M).filter((J)=>!$.has(J)&&!e$.includes(M[J]));if(X.length>0)throw BM(`Trezor cannot sign Tron ${U} with ${X.join(", ")}`)}function eM(M,$){let U=M[$];if(typeof U!=="string"||!U)throw BM(`Missing ${$} in Tron contract`);return U}function M4(M){let{amount:$}=M;if(!(typeof $==="number"&&Number.isSafeInteger($)&&$>0||typeof $==="string"&&/^[1-9]\d*$/.test($)))throw BM("Invalid amount in Tron contract");return String($)}function $$(M){let[$,...U]=M.raw_data.contract;if(!$||U.length>0)throw BM("Trezor signs Tron transactions with exactly one contract");let X=$.parameter.value,J=t$[$.type];if(!J)throw BM(`Unsupported Tron contract type: ${$.type}`);kM(M.raw_data,n$,"transactions"),kM($,a$,"contracts"),kM(X,J,$.type);let Q=(Z)=>{let _=eM(X,Z);if(M.visible!==!1)return M$.tronAddressToHex(_);if(i$.test(_))return _.toLowerCase();throw BM(`Invalid hex ${Z} in Tron contract`)},B=Q("owner_address");if($.type==="TransferContract")return{parameter:{value:{amount:M4(X),owner_address:B,to_address:Q("to_address")}},type:"TransferContract"};return{parameter:{value:{contract_address:Q("contract_address"),data:eM(X,"data"),owner_address:B}},type:"TriggerSmartContract"}}function $4({address:M,derivationPath:$}){let U=s.derivationPathToString($),X=M??"";return{getAddress:async()=>{if(X)return X;let Q=await(await import("@trezor/connect-web")).default.tronGetAddress({path:U,showOnTrezor:!0});if(!Q.success)throw new s.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:s.Chain.Tron,derivationPath:$,error:Q.payload.error}});return X=Q.payload.address,X},signTransaction:async(J)=>{let Q=$$(J),B=(await import("@trezor/connect-web")).default,{data:Z,expiration:_,fee_limit:j,ref_block_bytes:W,ref_block_hash:N,timestamp:G}=J.raw_data,V=await B.tronSignTransaction({contract:[Q],data:Z,expiration:_,fee_limit:j,path:U,ref_block_bytes:W,ref_block_hash:N,timestamp:G});if(!V.success)throw new s.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:s.Chain.Tron,error:V.payload.error}});return{...J,signature:[V.payload.signature.replace(/^0x/,"")]}}}}var s,M$,i$,n$,a$,t$,e$;var U$=qM(()=>{s=require("@swapkit/helpers"),M$=require("@swapkit/toolboxes/tron"),i$=/^41[0-9a-f]{40}$/i,n$=new Set(["contract","data","expiration","fee_limit","ref_block_bytes","ref_block_hash","timestamp"]),a$=new Set(["parameter","type"]),t$={TransferContract:new Set(["amount","owner_address","to_address"]),TriggerSmartContract:new Set(["contract_address","data","owner_address"])},e$=[void 0,null,0,"",!1]});var H4={};a(H4,{trezorWallet:()=>G$,normalizeTrezorSignature:()=>W$,normalizeTrezorExtendedPublicKey:()=>fM,getTrezorExtendedPublicKey:()=>L$,TREZOR_SUPPORTED_CHAINS:()=>A4});module.exports=S$(H4);var MM=require("@scure/base"),LM=require("@scure/bip32"),q=require("@swapkit/helpers"),k=require("@swapkit/toolboxes/utxo"),GM=require("@swapkit/wallet-core");async function bM({chain:M,indexes:$,publicKey:U,tx:X}){let{getMissingSpendingMetadata:J,getNetworkForChain:Q}=await import("@swapkit/toolboxes/utxo");for(let{index:B,...Z}of J({chain:M,indexes:$,network:Q(M),publicKey:U,tx:X}))X.updateInput(B,Z)}var q4=new Set(["auto","iframe","popup","suite-desktop","suite-web"]),U4=new Set(["BridgeTransport","WebUsbTransport","NodeUsbTransport"]),Q$="auto",NM={appName:"SwapKit",appUrl:"https://swapkit.dev",email:"support@swapkit.dev"},Z$=["WebUsbTransport"],jM={keepSession:!0},X4=65,YM=new Map,$M,B4=[q.Chain.Bitcoin,q.Chain.BitcoinCash,q.Chain.Dash,q.Chain.Dogecoin,q.Chain.Litecoin].map((M)=>k.getNetworkForChain(M).bip32);async function J4(){YM.clear();let M=(async()=>{try{await(await import("@trezor/connect-web")).default.dispose()}catch{}})();if($M=M,await M,$M===M)$M=void 0}function _$(M){return typeof M==="string"&&q4.has(M)?M:void 0}function j$(M){if(!Array.isArray(M))return;let $=M.filter((U)=>typeof U==="string"&&U4.has(U));return $.length>0?$:void 0}function QM(M,$){return typeof M==="string"&&M.trim()?M:$}function N$(){return typeof globalThis.location<"u"&&globalThis.location.origin?globalThis.location.origin:NM.appUrl}async function Q4(){let M=(await import("@trezor/connect-web")).default,$=q.SKConfig.get("integrations").trezor,{connectSrc:U,coreMode:X,debug:J,interactionTimeout:Q,lazyLoad:B,pendingTransportEvent:Z,popup:_,transportReconnect:j,transports:W,...N}=$??{},G={...N,appName:QM($?.appName,NM.appName),appUrl:QM($?.appUrl,N$()),email:QM($?.email,NM.email)},V=typeof globalThis.location<"u"&&["localhost","127.0.0.1"].includes(globalThis.location.hostname),Y=_$(X)??Q$,O=j$(W)??Z$;if($M)await $M;if(V)await M.dispose();return await M.init({connectSrc:U,coreMode:Y,debug:J,interactionTimeout:Q,lazyLoad:B??!1,manifest:G,pendingTransportEvent:Z,popup:_??!0,transportReconnect:j,transports:O}),{coreMode:Y,isLocalhost:V,popup:_??!0,TrezorConnect:M}}function fM(M,$){let U=k.getNetworkForChain($).bip32,X=[U,...B4.filter((Q)=>Q.public!==U.public||Q.private!==U.private)],J;for(let Q of X)try{let B=LM.HDKey.fromExtendedKey(M,Q);if(!(B.publicKey&&B.chainCode))throw Error("Extended key is missing public key data");return new LM.HDKey({chainCode:B.chainCode,depth:B.depth,index:B.index,parentFingerprint:B.parentFingerprint,publicKey:B.publicKey,versions:U}).publicExtendedKey}catch(B){J=B}throw J instanceof Error?J:Error("Unable to parse Trezor extended public key")}function Y$(M,$){if(!M)return;try{return fM(M,$)}catch{return M}}async function V$(M){let{Script:$}=await import("@swapkit/utxo-signer");try{let[U,X]=$.decode(M),J=X===0?new Uint8Array:X;if(U!=="RETURN"||!(J instanceof Uint8Array))return null;return MM.hex.encode($.encode(["RETURN",J]))===MM.hex.encode(M)?MM.hex.encode(J):null}catch{return null}}async function mM(M,$,U){if($!==0n)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:U,error:"OP_RETURN output carrying value cannot be signed"}});let X=await V$(M);if(X===null)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:U,error:"Malformed OP_RETURN output cannot be signed"}});return{amount:"0",op_return_data:X,script_type:"PAYTOOPRETURN"}}async function X$(M,$,U){if(!$)return;let X=MM.hex.encode(new TextEncoder().encode($));for(let J=0;J<M.outputsLength;J++){let Q=M.getOutput(J).script;if(Q?.[0]===106&&await V$(Q)===X)return}throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:U,error:"Transaction does not carry the provided memo"}})}function Z4(M,$){switch($[0]){case 86:return M===q.Chain.Bitcoin?{input:"SPENDTAPROOT",output:"PAYTOTAPROOT",utxo:q.UTXOScriptType.P2TR}:null;case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS",utxo:q.UTXOScriptType.P2WPKH};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS",utxo:q.UTXOScriptType.P2SH_P2WPKH};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS",utxo:q.UTXOScriptType.P2PKH};default:return null}}function JM(M){return M.map(($,U)=>U<3?($|2147483648)>>>0:$)}function _4(M){return Array.isArray(M)&&M[0]instanceof Uint8Array&&typeof M[1]==="object"&&M[1]!==null&&typeof M[1].fingerprint==="number"&&Array.isArray(M[1].path)}function j4(M){if(!Array.isArray(M.bip32Derivation))return;let[$]=M.bip32Derivation;return _4($)?$:void 0}function N4(M){if(!(Array.isArray(M)&&M[0]instanceof Uint8Array))return!1;let $=M[1];return Array.isArray($?.hashes)&&Array.isArray($?.der?.path)}function Y4(M,$){let U=Array.isArray(M.tapBip32Derivation)?M.tapBip32Derivation:[];if(U.length===0)return;let{tapInternalKey:X}=M,J=U.filter((Z)=>N4(Z)&&Z[1].hashes.length===0&&(!X||MM.hex.encode(Z[0])===MM.hex.encode(X))),[Q,B]=J[0]??[];if(J.length!==1||!(Q&&B))throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:q.Chain.Bitcoin,error:`Input ${$} has no single taproot key-path origin to sign with`}});return{path:B.der.path,xOnlyKey:Q}}function B$(M){if(M.witnessUtxo?.amount!==void 0)return M.witnessUtxo.amount.toString();let $=M.index!==void 0?M.nonWitnessUtxo?.outputs?.[M.index]:void 0;if($?.amount!==void 0)return $.amount.toString();return}function W$(M,$){let U=Buffer.from(M,"hex"),X=U[1]!==void 0?U[1]+2:void 0;if(X!==void 0&&U.length===X)return new Uint8Array([...U,$===q.Chain.BitcoinCash?X4:1]);return new Uint8Array(U)}function V4(M,$,U){let X=[];for(let J=0;J<M.inputsLength;J++){let Q=M.getInput(J);X.push({address_n:$,amount:Q.value.toString(),prev_hash:U.encode(Q.txid),prev_index:Q.index,script_type:"SPENDADDRESS"})}return X}async function W4(M,$,U,X){let J=[];for(let Q=0;Q<M.outputsLength;Q++){let B=M.getOutput(Q),Z=B.scriptPubkey;if(Z?.[0]===106){J.push(await mM(Z,B.value,X));continue}let _=await L4(Z);if(!_&&B.value>0n)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:X,error:"Unable to decode output address from scriptPubkey"}});if(_===U)J.push({address_n:$,amount:B.value.toString(),script_type:"PAYTOADDRESS"});else J.push({address:_,amount:B.value.toString(),script_type:"PAYTOADDRESS"})}return J}async function L4(M){try{let{OutScript:$,Address:U,NETWORKS:X}=await import("@swapkit/utxo-signer"),J=$.decode(M);if(J.type==="pkh"||J.type==="pk")return U(X.zcash).encode(J)}catch{}return}async function G4(M,$){let{ZcashTransaction:U,Script:X}=await import("@swapkit/utxo-signer"),J=U.fromHex(M,{allowUnknownOutputs:!0}),Q=$.clone();for(let B=0;B<J.inputsLength;B++){let _=J.getInput(B).script;if(_&&_.length>0){let j=X.decode(_);if(j.length>=2)Q.addSignature(B,j[1],j[0])}}return Q}function f4(M,$,U,X){let J=[];for(let Q=0;Q<M.inputsLength;Q++){let B=M.getInput(Q),Z=$[Q];J.push({address_n:U,amount:Z?.value?.toString()||B.value?.toString()||"0",prev_hash:B.txid?X.encode(B.txid):"",prev_index:B.index??0,script_type:"SPENDADDRESS"})}return J}async function O4({addressN:M,chain:$,myAddress:U,network:X,tx:J}){let Q=[];for(let B=0;B<J.outputsLength;B++){let Z=J.getOutput(B),_=J.getOutputAddress(B,X),j=Z.script;if(j?.[0]===106){Q.push(await mM(j,Z.amount,$));continue}if(!_&&(Z.amount??0n)>0n)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:$,error:"Unable to decode output address"}});let N=_===U||!_?{address_n:M}:{address:_};Q.push({...N,amount:Z.amount?.toString()||"0",script_type:"PAYTOADDRESS"})}return Q}async function WM(M,$,U,X,J,Q,B,Z){let _=[];for(let j=0;j<M.outputsLength;j++){let W=M.getOutput(j),N=M.getOutputAddress(j,$);if(W.script?.[0]===106){_.push(await mM(W.script,W.amount,J));continue}if(!N)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:J,error:"Unable to decode output address from scriptPubkey"}});if(W.amount===void 0)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:J,error:"Output amount is missing"}});let G=J===q.Chain.BitcoinCash,V=G?B(N):N,Y=G?Z(V)===Z(X):V===X;_.push(Y?{address_n:U,amount:W.amount.toString(),script_type:Q.output}:{address:V,amount:W.amount.toString(),script_type:"PAYTOADDRESS"})}return _}function SM(M){return M===q.Chain.Bitcoin||M===q.Chain.Litecoin}function R4(M){return M===q.Chain.BitcoinCash||M===q.Chain.Dash||M===q.Chain.Dogecoin}function J$(M,$){if(M!==q.Chain.Dash)return;let U=new Map;for(let X of $){if(!X.txHex)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:M,error:`Missing previous transaction hex for ${X.hash}:${X.index}`}});U.set(X.hash,{details:{},hex:X.txHex,txid:X.hash})}return[...U.values()]}async function D4({address:M,chain:$,derivationPath:U}){switch($){case q.Chain.Arbitrum:case q.Chain.Arc:case q.Chain.Aurora:case q.Chain.Avalanche:case q.Chain.Base:case q.Chain.Berachain:case q.Chain.BinanceSmartChain:case q.Chain.Ethereum:case q.Chain.Gnosis:case q.Chain.Hyperevm:case q.Chain.Monad:case q.Chain.Optimism:case q.Chain.Polygon:case q.Chain.Robinhood:case q.Chain.XLayer:{let{getProvider:X,getEvmToolboxAsync:J}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:Q}=await Promise.resolve().then(() => (PM(),gM)),B=await X($),Z=await Q({chain:$,derivationPath:U,provider:B}),_=await Z.getAddress();return{...await J($,{provider:B,signer:Z}),address:_}}case q.Chain.Cardano:{let{getCardanoToolbox:X}=await import("@swapkit/toolboxes/cardano"),{getCardanoSigner:J}=await Promise.resolve().then(() => (cM(),xM)),Q=await import("@trezor/connect-web"),B=await J({connect:Q,derivationPath:U}),Z=B.getAddress();return{...X({signer:B}),address:Z}}case q.Chain.Ripple:{let{getRippleToolbox:X}=await import("@swapkit/toolboxes/ripple"),{getRippleSigner:J}=await Promise.resolve().then(() => (pM(),uM)),Q=J({derivationPath:U}),B=M??await Q.getAddress();return{...X({signer:Q}),address:B}}case q.Chain.Solana:{let{getSolanaToolbox:X}=await import("@swapkit/toolboxes/solana"),{getSolanaSigner:J}=await Promise.resolve().then(() => (rM(),sM)),Q=J({address:M,derivationPath:U}),B=M??await Q.getAddress();return{...X({signer:Q}),address:B}}case q.Chain.Stellar:{let{getStellarToolbox:X}=await import("@swapkit/toolboxes/stellar"),{getStellarSigner:J}=await Promise.resolve().then(() => (tM(),aM)),Q=J({derivationPath:U}),B=M??await Q.getAddress();return{...X({signer:Q}),address:B}}case q.Chain.Tron:{let{getTronToolbox:X}=await import("@swapkit/toolboxes/tron"),{getTronSigner:J}=await Promise.resolve().then(() => (U$(),q$)),Q=J({address:M,derivationPath:U}),B=await Q.getAddress();return{...X({signer:Q}),address:B}}case q.Chain.Zcash:{let{getUtxoToolbox:X}=await import("@swapkit/toolboxes/utxo"),J=q.derivationPathToString(U),B=M??await(async()=>{let Y=(await import("@trezor/connect-web")).default,{success:O,payload:F}=await Y.getAddress({coin:"zcash",path:J});if(!O)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:$,error:F.error||"Unknown error"}});return F.address})(),Z=async(Y)=>{let O=(await import("@trezor/connect-web")).default,{hex:F}=await import("@scure/base"),b=JM(U),w=Y.getGlobal(),x=V4(Y,b,F),P=await W4(Y,b,B,$),v=await O.signTransaction({branchId:w.consensusBranchId,coin:"zcash",expiry:w.expiryHeight,inputs:x,locktime:w.lockTime,outputs:P,overwintered:!0,version:w.txVersion,versionGroupId:w.versionGroupId});if(!v.success)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:$,error:v.payload.error}});return{serializedTx:v.payload.serializedTx,signedPczt:await G4(v.payload.serializedTx,Y)}},_=async(Y)=>{let{ZcashTransaction:O}=await import("@swapkit/utxo-signer");return O.fromHex(Y,{allowUnknownOutputs:!0})},j=async(Y)=>{let O=(await import("@trezor/connect-web")).default,{hex:F}=await import("@scure/base"),{NETWORKS:b,ZcashVersionGroupId:w}=await import("@swapkit/utxo-signer"),x=JM(U),P=f4(Y,[],x,F),v=await O4({addressN:x,chain:$,myAddress:B,network:b.zcash,tx:Y}),i=await O.signTransaction({branchId:Y.consensusBranchId,coin:"zcash",expiry:0,inputs:P,locktime:0,outputs:v,overwintered:!0,version:4,versionGroupId:w.SAPLING});if(i.success)return{serializedTx:i.payload.serializedTx,signedTx:await _(i.payload.serializedTx)};throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:$,error:i.payload.error}})},W={getAddress:async()=>B,signPCZT:async(Y)=>{return(await Z(Y)).signedPczt},signTransaction:async(Y)=>{if("toPCZT"in Y){let{serializedTx:O}=await Z(Y.toPCZT());return _(O)}if("getGlobal"in Y){let{serializedTx:O}=await Z(Y);return _(O)}return(await j(Y)).signedTx}},N=X(q.Chain.Zcash,{signer:W}),G=async(Y)=>{if("toPCZT"in Y){let{serializedTx:F}=await Z(Y.toPCZT());return N.broadcastTx(F)}if("getGlobal"in Y){let{serializedTx:F}=await Z(Y);return N.broadcastTx(F)}let{serializedTx:O}=await j(Y);return N.broadcastTx(O)},V=async({recipient:Y,feeOptionKey:O,feeRate:F,...b})=>{if(!(B&&Y))throw new q.SwapKitError({errorKey:"wallet_missing_params",info:{address:B,recipient:Y,wallet:q.WalletOption.TREZOR}});let w=F||(await N.getFeeRates())[O||q.FeeOption.Fast],{tx:x}=await N.createTransaction({...b,feeRate:w,fetchTxHex:!1,recipient:Y,sender:B}),{serializedTx:P}=await j(x);return N.broadcastTx(P)};return{...N,address:B,signAndBroadcastTransaction:G,signPCZT:W.signPCZT,transfer:V}}case q.Chain.Bitcoin:case q.Chain.BitcoinCash:case q.Chain.Dash:case q.Chain.Dogecoin:case q.Chain.Litecoin:{let f$=function(L={}){return DM(L)},{toCashAddress:X,getUtxoToolbox:J,stripPrefix:Q}=await import("@swapkit/toolboxes/utxo"),B=$,Z=Z4($,U);if(!Z)throw new q.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:U}});let _=Z,j=Z.utxo===q.UTXOScriptType.P2TR,W={scriptType:Z.utxo},N=$.toLowerCase(),V=M??await(async(L=U)=>{let S=(await import("@trezor/connect-web")).default,z=q.derivationPathToString(L),{success:D,payload:E}=await S.getAddress({coin:N,...jM,path:z,showOnTrezor:!1});if(!D)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:$,error:E.error||"Unknown error"}});if($===q.Chain.BitcoinCash)return Q(E.address);return E.address})(),Y=J($,W),O=async(L,S,z="")=>{await X$(L,z,$);let D=(await import("@trezor/connect-web")).default,E=JM(U),A=k.getNetworkForChain($),C=await WM(L,A,E,V,$,_,X,Q),I=S.map(({hash:T,index:K,value:f})=>({address_n:E,amount:f,prev_hash:T,prev_index:K,script_type:_.input})),R=await D.signTransaction({coin:N,inputs:I,outputs:C,refTxs:J$($,S)});if(R.success)return R.payload.serializedTx;let m=R.payload;throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:$,code:m?.code??"unknown",error:m?.error??"unknown",payload:m}})},F=async(L)=>{let S=(await import("@trezor/connect-web")).default,{hex:z}=await import("@scure/base"),D=JM(U),E=k.getNetworkForChain($),A;async function C(){if(!A){let f=await DM(),h=LM.HDKey.fromExtendedKey(f.xpub,E.bip32).derive(`m/${Number(U[3]??0)}/${Number(U[4]??0)}`);if(!h.publicKey)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_get_public_key",info:{chain:$,error:"Unable to derive Trezor leaf public key from account xpub"}});A=h.publicKey}return[A,{fingerprint:0,path:D}]}let I=[],R=[];async function m(f,H){if(j){let ZM=Y4(H,f);if(!ZM){let[D$,{path:wM}]=await C();ZM={path:wM,xOnlyKey:D$.slice(1)},L.updateInput(f,{tapBip32Derivation:[[ZM.xOnlyKey,{der:{fingerprint:0,path:wM},hashes:[]}]]})}if(!H.tapInternalKey)L.updateInput(f,{tapInternalKey:ZM.xOnlyKey});return ZM.path}let h=j4(H),n=h??await C();if(I[f]=n[0],!h)L.updateInput(f,{bip32Derivation:[n]});return await bM({chain:B,indexes:[f],publicKey:n[0],tx:L}),n[1].path}for(let f=0;f<L.inputsLength;f++){let H=L.getInput(f),h=B$(H);if(!H.txid||H.index===void 0||!h)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:$,error:`Input ${f} is missing prevout data required by Trezor`}});let n=await m(f,H);R.push({address_n:n,amount:h,prev_hash:z.encode(H.txid),prev_index:H.index,script_type:_.input,...H.sequence!==void 0?{sequence:H.sequence}:{}})}let T=await WM(L,E,D,V,$,_,X,Q),K=await S.signTransaction({coin:N,...jM,inputs:R,locktime:L.lockTime,outputs:T,version:L.version});if(!K.success){let f=K.payload;throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:$,code:f?.code??"unknown",error:f?.error??"unknown",payload:f}})}return K.payload.signatures.forEach((f,H)=>{if(!f)return;if(j){L.updateInput(H,{tapKeySig:z.decode(f)});return}let h=I[H];if(!h)return;L.updateInput(H,{partialSig:[[h,W$(f,$)]]})}),L},b=async(L)=>{let S=(await import("@trezor/connect-web")).default,{hex:z}=await import("@scure/base"),D=JM(U),E=k.getNetworkForChain($),A=[];for(let m=0;m<L.inputsLength;m++){let T=L.getInput(m),K=B$(T);if(!T.txid||T.index===void 0||!K)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:$,error:`Input ${m} is missing prevout data required by Trezor`}});A.push({address_n:D,amount:K,prev_hash:z.encode(T.txid),prev_index:T.index,script_type:_.input,...T.sequence!==void 0?{sequence:T.sequence}:{}})}let C=await WM(L,E,D,V,$,_,X,Q),I=await S.signTransaction({coin:N,inputs:A,locktime:L.lockTime,outputs:C,version:L.version});if(I.success)return I.payload.serializedTx;let R=I.payload;throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:$,code:R?.code??"unknown",error:R?.error??"unknown",payload:R}})},w=async(L,S,z="")=>{await X$(L,z,$);let D=(await import("@trezor/connect-web")).default,E=k.getNetworkForChain($),A=JM(U.slice(0,3)),C=await WM(L,E,A,V,$,_,X,Q),I=S.map(({hash:m,index:T,value:K,derivationIndex:f,isChange:H})=>{let h=H?1:0;return{address_n:[...A,h,f],amount:K,prev_hash:m,prev_index:T,script_type:_.input}}),R=await D.signTransaction({coin:N,inputs:I,outputs:C,refTxs:J$($,S)});if(R.success)return R.payload.serializedTx;throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:$,error:R.payload.error}})},x=async({utxos:L,recipient:S,assetValue:z,memo:D,feeRate:E,feeOptionKey:A})=>{let C=J($,W),I=E||(await C.getFeeRates())[A||q.FeeOption.Fast],{tx:R,inputs:m}=await C.createTransaction({assetValue:z,feeRate:I,fetchTxHex:$===q.Chain.Dash,memo:D,recipient:S,sender:V}),T=m.map((f)=>{let H=L.find((h)=>h.hash===f.hash&&h.index===f.index);return{...f,derivationIndex:H?.derivationIndex??0,isChange:H?.isChange??!1,txHex:H?.txHex}}),K=await w(R,T,D);return C.broadcastTx(K)},P=async({recipient:L,feeOptionKey:S,feeRate:z,memo:D,...E})=>{if(!(V&&L))throw new q.SwapKitError({errorKey:"wallet_missing_params",info:{address:V,memo:D,recipient:L,wallet:q.WalletOption.TREZOR}});let A=J($,W),C=z||(await A.getFeeRates())[S||q.FeeOption.Fast],I=A.createTransaction,{tx:R,inputs:m}=await I({...E,feeRate:C,fetchTxHex:$===q.Chain.Dash,memo:D,recipient:L,sender:V}),T=await O(R,m,D);return await A.broadcastTx(T)},v=SM($)?await J(B,{...W,signer:{getAddress:async()=>V,signTransaction:F}}):Y,i=R4($)?async(L)=>Y.broadcastTx(await b(L)):v.signAndBroadcastTransaction,OM=SM($)?v.signTransaction:O,RM=SM($)?v.transfer:P;async function DM({accountIndex:L}={}){let S=(await import("@trezor/connect-web")).default,z=k.getUTXOAccountPath({accountIndex:L,chain:B,derivationPath:U}),D=q.derivationPathToString(z),E=`${$}:${D}`,A=YM.get(E);if(A)return A;let C=await S.getPublicKey({coin:N,path:D}),{success:I,payload:R}=C;if(!I)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_get_public_key",info:{chain:$,error:R.error||"Unknown error"}});let m=fM(R.xpub,B),T=Y$(R.xpubSegwit,B),K={accountIndex:k.getUTXOAccountIndexFromPath(z),chainCode:R.chainCode,depth:R.depth,fingerprint:R.fingerprint,path:R.serializedPath,publicKey:R.publicKey,xpub:m,xpubSegwit:T};return YM.set(E,K),K}async function FM({accountIndex:L,index:S,change:z=!1}){k.assertDerivationIndex("index",S);let D=(await import("@trezor/connect-web")).default,E=k.getUTXOAccountPath({accountIndex:L,chain:B,derivationPath:U}),A=`${q.derivationPathToString(E)}/${Number(z)}/${S}`,{success:C,payload:I}=await D.getAddress({coin:N,...jM,path:A,showOnTrezor:!1});if(!C)return;let R=I.address;if($===q.Chain.BitcoinCash)R=(await J($)).stripPrefix(I.address);let m=await D.getPublicKey({coin:N,...jM,path:A,scriptType:_.input,showOnTrezor:!1}),T=m.success?m.payload.publicKey:"";return{accountIndex:k.getUTXOAccountIndexFromPath(E),address:R,change:z,index:S,path:A,pubkey:T}}async function O$({accountIndex:L,count:S,startIndex:z=0,change:D=!1}){k.assertDerivationIndex("count",S),k.assertDerivationIndex("startIndex",z);let E=(await import("@trezor/connect-web")).default,A=k.getUTXOAccountPath({accountIndex:L,chain:B,derivationPath:U}),C=q.derivationPathToString(A),I=Array.from({length:S},(K,f)=>({coin:N,path:`${C}/${Number(D)}/${z+f}`,showOnTrezor:!1})),{success:R,payload:m}=await E.getAddress({...jM,bundle:I});if(!R||!Array.isArray(m))return[];return await Promise.all(m.map(async(K,f)=>{let H=K.address;if($===q.Chain.BitcoinCash)H=(await J($)).stripPrefix(K.address);return{accountIndex:k.getUTXOAccountIndexFromPath(A),address:H,change:D,index:z+f,path:`${C}/${Number(D)}/${z+f}`,pubkey:""}}))}let R$=k.createHDWalletHelpers({chain:$,deriveAddress:FM,getBalance:v.getBalance,getUtxos:(L)=>k.getUtxoApi($).getUtxos({address:L,fetchTxHex:!0})});return{...v,...R$,address:V,deriveAddressAtIndex:FM,deriveAddresses:O$,getExtendedPublicKey:f$,getExtendedPublicKeyInfo:DM,signAndBroadcastTransaction:i,signTransaction:OM,signTransactionWithMultipleInputs:w,transfer:RM,transferFromMultipleAddresses:x}}default:throw new q.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:$,wallet:q.WalletOption.TREZOR}})}}async function L$(M,$,{accountIndex:U}={}){if(![q.Chain.BitcoinCash,q.Chain.Bitcoin,q.Chain.Dash,q.Chain.Dogecoin,q.Chain.Litecoin,q.Chain.Zcash].includes(M))throw new q.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:M,wallet:q.WalletOption.TREZOR}});let{TrezorConnect:X}=await Q4(),J=M,Q=$??q.NetworkDerivationPath[M],B=M===q.Chain.Zcash?"zcash":M.toLowerCase(),Z=k.getUTXOAccountPath({accountIndex:U,chain:J,derivationPath:Q}),_=q.derivationPathToString(Z),j=`${M}:${_}`,W=YM.get(j);if(W)return W;let{success:N,payload:G}=await X.getPublicKey({coin:B,path:_,showOnTrezor:!0});if(!N)throw new q.SwapKitError({errorKey:"wallet_trezor_failed_to_get_public_key",info:{chain:M,error:G.error||"Unknown error"}});let V={accountIndex:k.getUTXOAccountIndexFromPath(Z),chainCode:G.chainCode,depth:G.depth,fingerprint:G.fingerprint,path:G.serializedPath,publicKey:G.publicKey,xpub:fM(G.xpub,J),xpubSegwit:Y$(G.xpubSegwit,J)};return YM.set(j,V),V}var G$=GM.createWallet({connect:({addChain:M,supportedChains:$,walletType:U})=>async function(J,Q,{address:B}={}){let[Z]=q.filterSupportedChains({chains:J,supportedChains:$,walletType:U});if(!Z)throw new q.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:Z,wallet:q.WalletOption.TREZOR}});let _=(await import("@trezor/connect-web")).default,j=q.SKConfig.get("integrations").trezor,{connectSrc:W,coreMode:N,debug:G,interactionTimeout:V,lazyLoad:Y,pendingTransportEvent:O,popup:F,transportReconnect:b,transports:w,...x}=j??{},P={...x,appName:QM(j?.appName,NM.appName),appUrl:QM(j?.appUrl,N$()),email:QM(j?.email,NM.email)},v=typeof globalThis.location<"u"&&["localhost","127.0.0.1"].includes(globalThis.location.hostname),i=_$(N)??Q$,OM=j$(w)??Z$;if($M)await $M;if(v)await _.dispose();await _.init({connectSrc:W,coreMode:i,debug:G,interactionTimeout:V,lazyLoad:Y??!1,manifest:P,pendingTransportEvent:O,popup:F??!0,transportReconnect:b,transports:OM});let RM=await D4({address:B,chain:Z,derivationPath:Q});return M({...RM,chain:Z,disconnect:J4,walletType:U}),!0},directSigningSupport:{[q.Chain.Arbitrum]:!0,[q.Chain.Arc]:!0,[q.Chain.Aurora]:!0,[q.Chain.Avalanche]:!0,[q.Chain.Base]:!0,[q.Chain.Berachain]:!0,[q.Chain.BinanceSmartChain]:!0,[q.Chain.Bitcoin]:!0,[q.Chain.BitcoinCash]:!0,[q.Chain.Cardano]:!0,[q.Chain.Dash]:!0,[q.Chain.Ethereum]:!0,[q.Chain.Gnosis]:!0,[q.Chain.Dogecoin]:!0,[q.Chain.Hyperevm]:!0,[q.Chain.Litecoin]:!0,[q.Chain.Monad]:!0,[q.Chain.Optimism]:!0,[q.Chain.Polygon]:!0,[q.Chain.Ripple]:!0,[q.Chain.Robinhood]:!0,[q.Chain.Solana]:!0,[q.Chain.Stellar]:!0,[q.Chain.Tron]:!0,[q.Chain.XLayer]:!0,[q.Chain.Zcash]:!0},getExtendedPublicKey:L$,name:"connectTrezor",supportedChains:[q.Chain.Arbitrum,q.Chain.Arc,q.Chain.Aurora,q.Chain.Avalanche,q.Chain.Base,q.Chain.Berachain,q.Chain.BinanceSmartChain,q.Chain.Bitcoin,q.Chain.BitcoinCash,q.Chain.Cardano,q.Chain.Dash,q.Chain.Dogecoin,q.Chain.Ethereum,q.Chain.Gnosis,q.Chain.Hyperevm,q.Chain.Litecoin,q.Chain.Monad,q.Chain.Optimism,q.Chain.Polygon,q.Chain.Ripple,q.Chain.Robinhood,q.Chain.Solana,q.Chain.Stellar,q.Chain.Tron,q.Chain.XLayer,q.Chain.Zcash],walletType:q.WalletOption.TREZOR}),A4=GM.getWalletSupportedChains(G$);
1
+ var Tf=Object.create;var{getPrototypeOf:Rf,defineProperty:XU,getOwnPropertyNames:CU,getOwnPropertyDescriptor:mf}=Object,FU=Object.prototype.hasOwnProperty;function IU(U){return this[U]}var kf,Ef,E$=(U,f,$)=>{var _=U!=null&&typeof U==="object";if(_){var N=f?kf??=new WeakMap:Ef??=new WeakMap,A=N.get(U);if(A)return A}$=U!=null?Tf(Rf(U)):{};let B=f||!U||!U.__esModule?XU($,"default",{value:U,enumerable:!0}):$;for(let Y of CU(U))if(!FU.call(B,Y))XU(B,Y,{get:IU.bind(U,Y),enumerable:!0});if(_)N.set(U,B);return B},Hf=(U)=>{var f=(zU??=new WeakMap).get(U),$;if(f)return f;if(f=XU({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function"){for(var _ of CU(U))if(!FU.call(f,_))XU(f,_,{get:IU.bind(U,_),enumerable:!($=mf(U,_))||$.enumerable})}return zU.set(U,f),f},zU,H$=(U,f)=>()=>(f||U((f={exports:{}}).exports,f),f.exports);var Sf=(U)=>U;function zf(U,f){this[U]=Sf.bind(null,f)}var a=(U,f)=>{for(var $ in f)XU(U,$,{get:f[$],enumerable:!0,configurable:!0,set:zf.bind(f,$)})};var t=(U,f)=>()=>(U&&(f=U(U=0)),f);var gU={};a(gU,{getEVMSigner:()=>Cf});async function Cf({chain:U,derivationPath:f,provider:$}){let{AbstractSigner:_}=await import("ethers");class N extends _{address;chain;derivationPath;provider;constructor({chain:A,derivationPath:B,provider:Y}){super(Y);this.address="",this.chain=A,this.derivationPath=B,this.provider=Y}getAddress=async()=>{if(!this.address){let B=await(await import("@trezor/connect-web")).default.ethereumGetAddress({path:v.derivationPathToString(this.derivationPath),showOnTrezor:!0});if(!B.success)throw new v.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{...B,chain:this.chain,derivationPath:this.derivationPath}});this.address=B.payload.address}return this.address};signMessage=async(A)=>{let Y=await(await import("@trezor/connect-web")).default.ethereumSignMessage({message:A,path:v.derivationPathToString(this.derivationPath)});if(!Y.success)throw new v.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...Y,chain:this.chain,derivationPath:this.derivationPath,message:A}});return Y.payload.signature};signTypedData=async(A,B,Y,q)=>{let X=(await import("@trezor/connect-web")).default,{buildEIP712DomainType:J}=await import("@swapkit/toolboxes/evm"),{TypedDataEncoder:L}=await import("ethers"),{EIP712Domain:V,...j}=B,R=q??L.from(j).primaryType,S=J(A),Q={domain:A,message:Y,primaryType:R,types:{EIP712Domain:S,...j}},O=await X.ethereumSignTypedData({data:Q,metamask_v4_compat:!0,path:v.derivationPathToString(this.derivationPath)});if(!O.success)throw new v.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:this.chain,error:O.payload.error}});return O.payload.signature.startsWith("0x")?O.payload.signature:`0x${O.payload.signature}`};signTransaction=async({to:A,gasLimit:B,value:Y,data:q,nonce:X,maxFeePerGas:J,maxPriorityFeePerGas:L,gasPrice:V})=>{if(!A)throw new v.SwapKitError({errorKey:"wallet_missing_params",info:{to:A}});if(!B)throw new v.SwapKitError({errorKey:"wallet_missing_params",info:{gasLimit:B}});let j=J!=null||L!=null;if(j&&!J)throw new v.SwapKitError({errorKey:"wallet_missing_params",info:{maxFeePerGas:J}});if(!(j||V))throw new v.SwapKitError({errorKey:"wallet_missing_params",info:{gasPrice:V}});let R=(await import("@trezor/connect-web")).default,{toHexString:S}=await import("@swapkit/toolboxes/evm"),Q=j?{maxFeePerGas:S(BigInt(J?.toString()||0)),maxPriorityFeePerGas:S(BigInt(L?.toString()||0))}:V&&{gasPrice:S(BigInt(V?.toString()||0))}||{gasPrice:"0x0"},O=S(BigInt(X||await this.provider.getTransactionCount(await this.getAddress(),"pending"))),w={chainId:Number.parseInt(v.ChainToChainId[this.chain],10),data:q?.toString()||"0x",gasLimit:S(BigInt(B?.toString()||0)),nonce:O,to:A.toString(),value:S(BigInt(Y?.toString()||0)),...Q},{success:I,payload:y}=await R.ethereumSignTransaction({path:v.derivationPathToString(this.derivationPath),transaction:w});if(!I)throw new v.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...y,chain:this.chain,derivationPath:this.derivationPath}});let l=y.serializedTx?y.serializedTx.startsWith("0x")?y.serializedTx:`0x${y.serializedTx}`:void 0;if(!l)throw new v.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:this.chain,derivationPath:this.derivationPath}});return l};connect=(A)=>{if(!A)throw new v.SwapKitError({errorKey:"wallet_provider_not_found",info:{chain:this.chain,derivationPath:this.derivationPath,wallet:v.WalletOption.TREZOR}});return new N({chain:this.chain,derivationPath:this.derivationPath,provider:A})}}return new N({chain:U,derivationPath:f,provider:$})}var v;var KU=t(()=>{v=require("@swapkit/helpers")});function AU(U,f,$){let N=typeof U==="object"&&U!==null&&"toFixed"in U||Number.isSafeInteger(U)?String(U.toFixed()):"";if(!/^\d+$/.test(N))throw $(`Invalid ${f} in Cardano transaction`);return N}function Ff(U,f){if(!(U instanceof Map))throw f("Invalid Cardano output value");return[...U].map(([$,_])=>({policyId:$,tokens:[..._].map(([N,A])=>({amount:AU(A,"token amount",f),assetName:N}))}))}function If(U,f,$){let _,N,A;if(Array.isArray(U)){if(U.length!==2)throw $(`${f} cannot sign Cardano outputs with a datum`);[_,N]=U,A="legacy"}else if(U instanceof Map){if(U.has(2))throw $(`${f} cannot sign Cardano outputs with a datum`);if(U.has(3))throw $(`${f} cannot sign Cardano outputs with a reference script`);if([...U.keys()].some((q)=>q!==0&&q!==1))throw $("Unsupported field in Cardano output");_=U.get(0),N=U.get(1),A="babbage"}else throw $("Invalid Cardano output");if(!(_ instanceof Uint8Array))throw $("Invalid Cardano output address");if(Array.isArray(N)&&N.length!==2)throw $("Invalid Cardano output value");let[B,Y]=Array.isArray(N)?N:[N];return{address:_,amount:AU(B,"output amount",$),format:A,tokenGroups:Y===void 0?void 0:Ff(Y,$)}}function yU(U,f,$){let _=Object.values(e),N=[...U.keys()].filter((j)=>!_.includes(j));if(N.length>0)throw $(`${f} cannot sign Cardano transactions with body fields ${N.join(", ")}`);let A=U.get(e.INPUTS),B=typeof A==="object"&&A!==null&&"tag"in A&&A.tag===258&&"value"in A,Y=B?A.value:A;if(!Array.isArray(Y))throw $("Invalid Cardano inputs");let q=Y.map((j)=>{if(!Array.isArray(j)||j.length!==2)throw $("Invalid Cardano input");let[R,S]=j;if(!(R instanceof Uint8Array))throw $("Invalid Cardano input");return{index:Number(AU(S,"input index",$)),txHash:R}}),X=U.get(e.OUTPUTS);if(!Array.isArray(X))throw $("Invalid Cardano outputs");let J=U.get(e.AUXILIARY_DATA_HASH);if(J!==void 0&&!(J instanceof Uint8Array))throw $("Invalid Cardano auxiliary data hash");let L=U.get(e.TTL),V=U.get(e.VALIDITY_INTERVAL_START);return{auxiliaryDataHash:J,fee:AU(U.get(e.FEE),"fee",$),inputs:q,outputs:X.map((j)=>If(j,f,$)),tagCborSets:B,ttl:L===void 0?void 0:AU(L,"ttl",$),validityIntervalStart:V===void 0?void 0:AU(V,"validity interval start",$)}}var e;var vU=t(()=>{e={AUXILIARY_DATA_HASH:7,FEE:2,INPUTS:0,OUTPUTS:1,TTL:3,VALIDITY_INTERVAL_START:8}});var cU={};a(cU,{toTrezorCardanoTransaction:()=>hU,getCardanoSigner:()=>Kf,addTrezorWitnesses:()=>lU});function PU({CARDANO:U,PROTO:f}){return{derivationType:f.CardanoDerivationType.ICARUS,mainnet:{networkId:U.NETWORK_IDS.mainnet,protocolMagic:U.PROTOCOL_MAGICS.mainnet}}}function bf(U){return new u.SwapKitError({errorKey:"wallet_trezor_method_not_supported",info:{chain:u.Chain.Cardano,reason:U}})}function wU(U){return new u.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:u.Chain.Cardano,error:U}})}async function gf({address:U,amount:f,format:$,tokenGroups:_},N,A){let B=await x.getCardanoAddressFromBytes(U),Y=B===N.address?{addressParameters:{addressType:A.CardanoAddressType.BASE,path:N.path,stakingPath:N.stakingPath}}:{address:B},q=_?.map(({policyId:X,tokens:J})=>({policyId:UU.hex.encode(X),tokenAmounts:J.map(({amount:L,assetName:V})=>({amount:L,assetNameBytes:UU.hex.encode(V)}))}));return{...Y,amount:f,format:$==="legacy"?A.CardanoTxOutputSerializationFormat.ARRAY_LEGACY:A.CardanoTxOutputSerializationFormat.MAP_BABBAGE,...q===void 0?{}:{tokenBundle:q}}}async function hU(U,f,$){let{body:_}=await x.decodeCardanoTransaction(U),{derivationType:N,mainnet:A}=PU($),{PROTO:B}=$,{auxiliaryDataHash:Y,fee:q,inputs:X,outputs:J,tagCborSets:L,ttl:V,validityIntervalStart:j}=yU(_,"Trezor",bf);return{inputs:X.map(({index:R,txHash:S})=>({path:f.path,prev_hash:UU.hex.encode(S),prev_index:R})),tagCborSets:L,...A,derivationType:N,fee:q,outputs:await Promise.all(J.map((R)=>gf(R,f,B))),signingMode:B.CardanoTxSigningMode.ORDINARY_TRANSACTION,...Y?{auxiliaryData:{hash:UU.hex.encode(Y)}}:{},...V===void 0?{}:{ttl:V},...j===void 0?{}:{validityIntervalStart:j}}}async function lU(U,{hash:f,witnesses:$},_,{PROTO:N}){let{bodyHash:A}=await x.decodeCardanoTransaction(U);if(f.toLowerCase()!==A)throw wU("Trezor signed a different transaction body");let B=$.map(({pubKey:Y,signature:q,type:X})=>{if(X!==N.CardanoTxWitnessType.SHELLEY_WITNESS||Y.toLowerCase()!==_)throw wU("Trezor returned a witness for an unexpected key");return{publicKey:UU.hex.decode(Y),signature:UU.hex.decode(q)}});return x.addCardanoVkeyWitnesses(U,B)}async function Kf({connect:U,derivationPath:f}){let[$,_,N,A,B]=f;if(f.length!==5||A!==0||B===void 0)throw new u.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{chain:u.Chain.Cardano,derivationPath:f}});let Y=u.derivationPathToString(f),q=u.derivationPathToString([$,_,N,2,0]),{derivationType:X,mainnet:J}=PU(U),L=U.default,V=await L.cardanoGetPublicKey({bundle:[Y,q].map((w)=>({derivationType:X,path:w}))});if(!V.success)throw new u.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:u.Chain.Cardano,derivationPath:f,error:V.payload.error}});let[j,R]=V.payload.map(({node:w})=>Buffer.from(w.public_key,"hex")),S=await x.getCardanoPublicKeyHash(j),Q=await x.getCardanoAddressFromBytes(Buffer.concat([Buffer.from([J.networkId]),S,await x.getCardanoPublicKeyHash(R)]));async function O(w){let I=await hU(w,{address:Q,path:Y,stakingPath:q},U),y=await L.cardanoSignTransaction(I);if(!y.success)throw wU(y.payload.error);return lU(w,y.payload,j.toString("hex"),U)}return{getAddress:()=>Q,publicKey:j,publicKeyHash:S,signTransaction:O}}var UU,u,x;var uU=t(()=>{vU();UU=require("@scure/base"),u=require("@swapkit/helpers"),x=require("@swapkit/toolboxes/cardano")});var pU={};a(pU,{toTrezorRippleTransaction:()=>xU,getRippleSigner:()=>vf});function n(U){return new p.SwapKitError({errorKey:"wallet_trezor_method_not_supported",info:{chain:p.Chain.Ripple,reason:U}})}function xU(U){let f=U;if(f.TransactionType!=="Payment")throw n(`Trezor only signs XRP payments, got ${String(f.TransactionType)}`);let $=Object.keys(f).filter((J)=>f[J]!==void 0&&f[J]!==null&&!yf.has(J));if($.length>0)throw n(`Trezor cannot sign XRP payments with ${$.join(", ")}`);let{Amount:_,Destination:N,DestinationTag:A,Fee:B,Flags:Y,LastLedgerSequence:q,Sequence:X}=f;if(typeof _!=="string"||!/^\d+$/.test(_))throw n("Trezor only signs native XRP amounts");if(typeof N!=="string")throw n("Missing destination");if(!NU.isValidClassicAddress(N))throw n("Destination must be a classic XRP address");if(typeof B!=="string"||typeof X!=="number")throw n("Transaction is not autofilled");if(Y!==void 0&&typeof Y!=="number")throw n("Flags must be numeric");if(((Y??0)&NU.GlobalFlags.tfInnerBatchTxn)!==0)throw n("Trezor cannot sign Batch inner XRP transactions");return{fee:B,flags:Y,maxLedgerVersion:q,payment:{amount:_,destination:N,destinationTag:A},sequence:X}}function vf({derivationPath:U}){let f=p.derivationPathToString(U),$="";async function _(){if($)return $;let B=await(await import("@trezor/connect-web")).default.rippleGetAddress({path:f,showOnTrezor:!0});if(!B.success)throw new p.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:p.Chain.Ripple,derivationPath:U,error:B.payload.error}});return $=B.payload.address,$}async function N(A){let B=xU(A);if(A.Account!==await _())throw n("Transaction account does not match the Trezor address");let q=await(await import("@trezor/connect-web")).default.rippleSignTransaction({path:f,transaction:B});if(!q.success)throw new p.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:p.Chain.Ripple,error:q.payload.error}});let X=q.payload.serializedTx.toUpperCase();return{hash:NU.hashes.hashSignedTx(X),tx_blob:X}}return{getAddress:_,signTransaction:N}}var p,NU,yf;var rU=t(()=>{p=require("@swapkit/helpers"),NU=require("xrpl"),yf=new Set(["Account","Amount","Destination","DestinationTag","Fee","Flags","LastLedgerSequence","Sequence","SigningPubKey","TransactionType"])});var dU={};a(dU,{getSolanaSigner:()=>uf});function Pf(U){return new P.SwapKitError({errorKey:"wallet_trezor_method_not_supported",info:{chain:P.Chain.Solana,reason:U}})}function hf(U){if("version"in U){let{header:f,staticAccountKeys:$}=U.message;return{message:U.message.serialize(),signerKeys:$.slice(0,f.numRequiredSignatures)}}return{message:U.serializeMessage(),signerKeys:U.signatures.map(({publicKey:f})=>f)}}function lf(U,f){let{message:$,signerKeys:_}=hf(U),N=_.find((A)=>A.toBase58()===f);if(!N)throw Pf("Trezor account is not a required signer of this transaction");return{message:$,signerKey:N}}function cf(U,{message:f,signature:$,signerKey:_}){if($.length!==64)throw new P.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:P.Chain.Solana,error:`Invalid signature length: ${$.length}`}});if(!sU.ed25519.verify($,f,_.toBytes()))throw new P.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:P.Chain.Solana,error:"Signature does not match the Trezor account"}});return U.addSignature(_,Buffer.from($)),U}function uf({address:U,derivationPath:f}){let[$,_]=f;if($!==44||_!==501||f.length>4)throw new P.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{chain:P.Chain.Solana,derivationPath:f}});let N=P.derivationPathToString(f,{allHardened:!0}),A=U?new QU.PublicKey(U):null,B=null;async function Y(X){if(B)return B.toBase58();let L=await(await import("@trezor/connect-web")).default.solanaGetAddress({path:N,showOnTrezor:X});if(!L.success)throw new P.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:P.Chain.Solana,derivationPath:f,error:L.payload.error}});let V=new QU.PublicKey(L.payload.address);if(A&&!V.equals(A))throw new P.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:P.Chain.Solana,derivationPath:f,error:"Trezor account does not match the restored address"}});return B=V,L.payload.address}async function q(X){let{message:J,signerKey:L}=lf(X,await Y(!1)),j=await(await import("@trezor/connect-web")).default.solanaSignTransaction({path:N,serializedTx:DU.hex.encode(J)});if(!j.success)throw new P.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:P.Chain.Solana,error:j.payload.error}});let R=DU.hex.decode(j.payload.signature.replace(/^0x/,""));return cf(X,{message:J,signature:R,signerKey:L})}return{connect:async()=>({publicKey:new QU.PublicKey(await Y(!0))}),disconnect:()=>Promise.resolve(),getAddress:()=>Y(!0),get publicKey(){return B??A},signTransaction:q}}var sU,DU,QU,P;var nU=t(()=>{sU=require("@noble/curves/ed25519.js"),DU=require("@scure/base"),QU=require("@solana/web3.js"),P=require("@swapkit/helpers")});var tU={};a(tU,{toTrezorStellarTransaction:()=>aU,getStellarSigner:()=>of});function r(U){return new c.SwapKitError({errorKey:"wallet_trezor_method_not_supported",info:{chain:c.Chain.Stellar,reason:U}})}function RU(U){let f=/^(\d+)(?:\.(\d{1,7}))?$/.exec(U);if(!f)throw r(`Invalid Stellar amount: ${U}`);let[,$="0",_=""]=f;return BigInt(`${$}${_.padEnd(xf,"0")}`).toString()}function oU(U){if(!/^\d+$/.test(U)||BigInt(U)>pf)throw r(`Unsupported Stellar time bound: ${U}`);return Number(U)}function iU(U){let f=rf[U.getAssetType()];if(!f||!("getCode"in U))throw r("Trezor does not support liquidity pool assets");return f==="NATIVE"?{type:f}:{code:U.getCode(),issuer:U.getIssuer(),type:f}}function sf({source:U,...f}){let $=U?{source:U}:{};switch(f.type){case"payment":return{...$,amount:RU(f.amount),asset:iU(f.asset),destination:f.destination,type:"payment"};case"createAccount":return{...$,destination:f.destination,startingBalance:RU(f.startingBalance),type:"createAccount"};case"changeTrust":return{...$,limit:RU(f.limit),line:iU(f.line),type:"changeTrust"};default:throw r(`Unsupported Stellar operation: ${f.type}`)}}function df(U){if(typeof U==="string")return U;try{return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(U??void 0)}catch{throw r("Trezor only signs UTF-8 text memos")}}function nf({type:U,value:f}){switch(U){case"none":return;case"text":return{text:df(f),type:TU.text};case"id":return{id:String(f),type:TU.id};case"hash":case"return":return{hash:Buffer.from(f??"").toString("hex"),type:TU[U]};default:throw r(`Unsupported Stellar memo type: ${U}`)}}function aU(U){if("innerTransaction"in U)throw r("Trezor cannot sign fee bump transactions");if(!U.timeBounds)throw r("Trezor requires transaction time bounds");let{extraSigners:f,ledgerBounds:$,minAccountSequence:_,minAccountSequenceAge:N,minAccountSequenceLedgerGap:A}=U;if([$,_,N,A].some((Y)=>Y!==void 0)||f?.length)throw r("Trezor cannot sign Stellar transactions with extra preconditions");return{networkPassphrase:U.networkPassphrase,transaction:{fee:Number(U.fee),memo:nf(U.memo),operations:U.operations.map(sf),sequence:U.sequence,source:U.source,timebounds:{maxTime:oU(U.timeBounds.maxTime),minTime:oU(U.timeBounds.minTime)}}}}function of({derivationPath:U}){if(U[3]||U[4])throw new c.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{chain:c.Chain.Stellar,derivationPath:U,reason:"Stellar only uses m/44'/148'/x'"}});let f=c.derivationPathToString(U.slice(0,3)),$="";async function _(){if($)return $;let B=await(await import("@trezor/connect-web")).default.stellarGetAddress({path:f,showOnTrezor:!0});if(!B.success)throw new c.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:c.Chain.Stellar,derivationPath:U,error:B.payload.error}});return $=B.payload.address,$}async function N(A){let B=aU(A);if(B.transaction.source!==await _())throw r("Transaction source does not match the Trezor address");let q=await(await import("@trezor/connect-web")).default.stellarSignTransaction({path:f,...B});if(!q.success)throw new c.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:c.Chain.Stellar,error:q.payload.error}});try{A.addSignature($,Buffer.from(q.payload.signature,"hex").toString("base64"))}catch(X){throw new c.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:c.Chain.Stellar,error:X}})}return A}return{getAddress:_,signTransaction:N}}var c,xf=7,pf=4294967295n,rf,TU;var eU=t(()=>{c=require("@swapkit/helpers"),rf={credit_alphanum4:"ALPHANUM4",credit_alphanum12:"ALPHANUM12",native:"NATIVE"},TU={hash:3,id:2,return:4,text:1}});var Mf={};a(Mf,{toTrezorTronContract:()=>$f,getTronSigner:()=>M$});function BU(U){return new s.SwapKitError({errorKey:"wallet_trezor_method_not_supported",info:{chain:s.Chain.Tron,reason:U}})}function mU(U,f,$){let _=Object.keys(U).filter((N)=>!f.has(N)&&!f$.includes(U[N]));if(_.length>0)throw BU(`Trezor cannot sign Tron ${$} with ${_.join(", ")}`)}function Uf(U,f){let $=U[f];if(typeof $!=="string"||!$)throw BU(`Missing ${f} in Tron contract`);return $}function $$(U){let{amount:f}=U;if(!(typeof f==="number"&&Number.isSafeInteger(f)&&f>0||typeof f==="string"&&/^[1-9]\d*$/.test(f)))throw BU("Invalid amount in Tron contract");return String(f)}function $f(U){let[f,...$]=U.raw_data.contract;if(!f||$.length>0)throw BU("Trezor signs Tron transactions with exactly one contract");let _=f.parameter.value,N=U$[f.type];if(!N)throw BU(`Unsupported Tron contract type: ${f.type}`);mU(U.raw_data,tf,"transactions"),mU(f,ef,"contracts"),mU(_,N,f.type);let A=(Y)=>{let q=Uf(_,Y);if(U.visible!==!1)return ff.tronAddressToHex(q);if(af.test(q))return q.toLowerCase();throw BU(`Invalid hex ${Y} in Tron contract`)},B=A("owner_address");if(f.type==="TransferContract")return{parameter:{value:{amount:$$(_),owner_address:B,to_address:A("to_address")}},type:"TransferContract"};return{parameter:{value:{contract_address:A("contract_address"),data:Uf(_,"data"),owner_address:B}},type:"TriggerSmartContract"}}function M$({address:U,derivationPath:f}){let $=s.derivationPathToString(f),_=U??"";return{getAddress:async()=>{if(_)return _;let A=await(await import("@trezor/connect-web")).default.tronGetAddress({path:$,showOnTrezor:!0});if(!A.success)throw new s.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:s.Chain.Tron,derivationPath:f,error:A.payload.error}});return _=A.payload.address,_},signTransaction:async(N)=>{let A=$f(N),B=(await import("@trezor/connect-web")).default,{data:Y,expiration:q,fee_limit:X,ref_block_bytes:J,ref_block_hash:L,timestamp:V}=N.raw_data,j=await B.tronSignTransaction({contract:[A],data:Y,expiration:q,fee_limit:X,path:$,ref_block_bytes:J,ref_block_hash:L,timestamp:V});if(!j.success)throw new s.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:s.Chain.Tron,error:j.payload.error}});return{...N,signature:[j.payload.signature.replace(/^0x/,"")]}}}}var s,ff,af,tf,ef,U$,f$;var Af=t(()=>{s=require("@swapkit/helpers"),ff=require("@swapkit/toolboxes/tron"),af=/^41[0-9a-f]{40}$/i,tf=new Set(["contract","data","expiration","fee_limit","ref_block_bytes","ref_block_hash","timestamp"]),ef=new Set(["parameter","type"]),U$={TransferContract:new Set(["amount","owner_address","to_address"]),TriggerSmartContract:new Set(["contract_address","data","owner_address"])},f$=[void 0,null,0,"",!1]});var k$={};a(k$,{trezorWallet:()=>Gf,normalizeTrezorSignature:()=>Zf,normalizeTrezorExtendedPublicKey:()=>WU,getTrezorExtendedPublicKey:()=>Vf,TREZOR_SUPPORTED_CHAINS:()=>m$});module.exports=Hf(k$);var fU=require("@scure/base"),VU=require("@scure/bip32"),M=require("@swapkit/helpers"),H=require("@swapkit/toolboxes/utxo"),GU=require("@swapkit/wallet-core");async function bU({chain:U,indexes:f,publicKey:$,tx:_}){let{getMissingSpendingMetadata:N,getNetworkForChain:A}=await import("@swapkit/toolboxes/utxo");for(let{index:B,...Y}of N({chain:U,indexes:f,network:A(U),publicKey:$,tx:_}))_.updateInput(B,Y)}var A$=new Set(["auto","iframe","popup","suite-desktop","suite-web"]),N$=new Set(["BridgeTransport","WebUsbTransport","NodeUsbTransport"]),Yf="auto",JU={appName:"SwapKit",appUrl:"https://swapkit.dev",email:"support@swapkit.dev"},qf=["WebUsbTransport"],jU={keepSession:!0},B$=65,LU=new Map,$U,_$=[M.Chain.Bitcoin,M.Chain.BitcoinCash,M.Chain.Dash,M.Chain.Dogecoin,M.Chain.Litecoin].map((U)=>H.getNetworkForChain(U).bip32);async function Y$(){LU.clear();let U=(async()=>{try{await(await import("@trezor/connect-web")).default.dispose()}catch{}})();if($U=U,await U,$U===U)$U=void 0}function Xf(U){return typeof U==="string"&&A$.has(U)?U:void 0}function jf(U){if(!Array.isArray(U))return;let f=U.filter(($)=>typeof $==="string"&&N$.has($));return f.length>0?f:void 0}function YU(U,f){return typeof U==="string"&&U.trim()?U:f}function Jf(){return typeof globalThis.location<"u"&&globalThis.location.origin?globalThis.location.origin:JU.appUrl}async function q$(){let U=(await import("@trezor/connect-web")).default,f=M.SKConfig.get("integrations").trezor,{connectSrc:$,coreMode:_,debug:N,interactionTimeout:A,lazyLoad:B,pendingTransportEvent:Y,popup:q,transportReconnect:X,transports:J,...L}=f??{},V={...L,appName:YU(f?.appName,JU.appName),appUrl:YU(f?.appUrl,Jf()),email:YU(f?.email,JU.email)},j=typeof globalThis.location<"u"&&["localhost","127.0.0.1"].includes(globalThis.location.hostname),R=Xf(_)??Yf,S=jf(J)??qf;if($U)await $U;if(j)await U.dispose();return await U.init({connectSrc:$,coreMode:R,debug:N,interactionTimeout:A,lazyLoad:B??!1,manifest:V,pendingTransportEvent:Y,popup:q??!0,transportReconnect:X,transports:S}),{coreMode:R,isLocalhost:j,popup:q??!0,TrezorConnect:U}}function WU(U,f){let $=H.getNetworkForChain(f).bip32,_=[$,..._$.filter((A)=>A.public!==$.public||A.private!==$.private)],N;for(let A of _)try{let B=VU.HDKey.fromExtendedKey(U,A);if(!(B.publicKey&&B.chainCode))throw Error("Extended key is missing public key data");return new VU.HDKey({chainCode:B.chainCode,depth:B.depth,index:B.index,parentFingerprint:B.parentFingerprint,publicKey:B.publicKey,versions:$}).publicExtendedKey}catch(B){N=B}throw N instanceof Error?N:Error("Unable to parse Trezor extended public key")}function Lf(U,f){if(!U)return;try{return WU(U,f)}catch{return U}}async function Qf(U){let{Script:f}=await import("@swapkit/utxo-signer");try{let[$,_]=f.decode(U),N=_===0?new Uint8Array:_;if($!=="RETURN"||!(N instanceof Uint8Array))return null;return fU.hex.encode(f.encode(["RETURN",N]))===fU.hex.encode(U)?fU.hex.encode(N):null}catch{return null}}async function EU(U,f,$){if(f!==0n)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:$,error:"OP_RETURN output carrying value cannot be signed"}});let _=await Qf(U);if(_===null)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:$,error:"Malformed OP_RETURN output cannot be signed"}});return{amount:"0",op_return_data:_,script_type:"PAYTOOPRETURN"}}async function Nf(U,f,$){if(!f)return;let _=fU.hex.encode(new TextEncoder().encode(f));for(let N=0;N<U.outputsLength;N++){let A=U.getOutput(N).script;if(A?.[0]===106&&await Qf(A)===_)return}throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:$,error:"Transaction does not carry the provided memo"}})}function X$(U,f){switch(f[0]){case 86:return U===M.Chain.Bitcoin?{input:"SPENDTAPROOT",output:"PAYTOTAPROOT",utxo:M.UTXOScriptType.P2TR}:null;case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS",utxo:M.UTXOScriptType.P2WPKH};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS",utxo:M.UTXOScriptType.P2SH_P2WPKH};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS",utxo:M.UTXOScriptType.P2PKH};default:return null}}function _U(U){return U.map((f,$)=>$<3?(f|2147483648)>>>0:f)}function j$(U){return Array.isArray(U)&&U[0]instanceof Uint8Array&&typeof U[1]==="object"&&U[1]!==null&&typeof U[1].fingerprint==="number"&&Array.isArray(U[1].path)}function J$(U){if(!Array.isArray(U.bip32Derivation))return;let[f]=U.bip32Derivation;return j$(f)?f:void 0}function L$(U){if(!(Array.isArray(U)&&U[0]instanceof Uint8Array))return!1;let f=U[1];return Array.isArray(f?.hashes)&&Array.isArray(f?.der?.path)}function Q$(U,f){let $=Array.isArray(U.tapBip32Derivation)?U.tapBip32Derivation:[];if($.length===0)return;let{tapInternalKey:_}=U,N=$.filter((Y)=>L$(Y)&&Y[1].hashes.length===0&&(!_||fU.hex.encode(Y[0])===fU.hex.encode(_))),[A,B]=N[0]??[];if(N.length!==1||!(A&&B))throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:M.Chain.Bitcoin,error:`Input ${f} has no single taproot key-path origin to sign with`}});return{path:B.der.path,xOnlyKey:A}}function Bf(U){if(U.witnessUtxo?.amount!==void 0)return U.witnessUtxo.amount.toString();let f=U.index!==void 0?U.nonWitnessUtxo?.outputs?.[U.index]:void 0;if(f?.amount!==void 0)return f.amount.toString();return}function Zf(U,f){let $=Buffer.from(U,"hex"),_=$[1]!==void 0?$[1]+2:void 0;if(_!==void 0&&$.length===_)return new Uint8Array([...$,f===M.Chain.BitcoinCash?B$:1]);return new Uint8Array($)}function Z$(U,f,$){let _=[];for(let N=0;N<U.inputsLength;N++){let A=U.getInput(N);_.push({address_n:f,amount:A.value.toString(),prev_hash:$.encode(A.txid),prev_index:A.index,script_type:"SPENDADDRESS"})}return _}async function V$(U,f,$,_){let N=[];for(let A=0;A<U.outputsLength;A++){let B=U.getOutput(A),Y=B.scriptPubkey;if(Y?.[0]===106){N.push(await EU(Y,B.value,_));continue}let q=await G$(Y);if(!q&&B.value>0n)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:_,error:"Unable to decode output address from scriptPubkey"}});if(q===$)N.push({address_n:f,amount:B.value.toString(),script_type:"PAYTOADDRESS"});else N.push({address:q,amount:B.value.toString(),script_type:"PAYTOADDRESS"})}return N}async function G$(U){try{let{OutScript:f,Address:$,NETWORKS:_}=await import("@swapkit/utxo-signer"),N=f.decode(U);if(N.type==="pkh"||N.type==="pk")return $(_.zcash).encode(N)}catch{}return}async function W$(U,f){let{ZcashTransaction:$,Script:_}=await import("@swapkit/utxo-signer"),N=$.fromHex(U,{allowUnknownOutputs:!0}),A=f.clone();for(let B=0;B<N.inputsLength;B++){let q=N.getInput(B).script;if(q&&q.length>0){let X=_.decode(q);if(X.length>=2)A.addSignature(B,X[1],X[0])}}return A}function O$(U,f,$,_){let N=[];for(let A=0;A<U.inputsLength;A++){let B=U.getInput(A),Y=f[A];N.push({address_n:$,amount:Y?.value?.toString()||B.value?.toString()||"0",prev_hash:B.txid?_.encode(B.txid):"",prev_index:B.index??0,script_type:"SPENDADDRESS"})}return N}async function w$({addressN:U,chain:f,myAddress:$,network:_,tx:N}){let A=[];for(let B=0;B<N.outputsLength;B++){let Y=N.getOutput(B),q=N.getOutputAddress(B,_),X=Y.script;if(X?.[0]===106){A.push(await EU(X,Y.amount,f));continue}if(!q&&(Y.amount??0n)>0n)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:f,error:"Unable to decode output address"}});let L=q===$||!q?{address_n:U}:{address:q};A.push({...L,amount:Y.amount?.toString()||"0",script_type:"PAYTOADDRESS"})}return A}function D$({inputs:U,outputs:f,...$}){let _=(B)=>B.reduce((Y,{amount:q})=>Y+BigInt(q),0n),N=_(U),A=_(f);return{...$,fee:(N-A).toString(),inputAmounts:U.map(({amount:B})=>B),inputs:U.map(({prev_hash:B,prev_index:Y})=>`${B}:${Y}`),inputTotal:N.toString(),outputs:f.map(({address:B,amount:Y,script_type:q})=>({amount:Y,kind:q==="PAYTOOPRETURN"?"op_return":B?"external":"change"})),outputTotal:A.toString()}}async function ZU(U,f,$,_,N,A,B,Y){let q=[];for(let X=0;X<U.outputsLength;X++){let J=U.getOutput(X),L=U.getOutputAddress(X,f);if(J.script?.[0]===106){q.push(await EU(J.script,J.amount,N));continue}if(!L)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:N,error:"Unable to decode output address from scriptPubkey"}});if(J.amount===void 0)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:N,error:"Output amount is missing"}});let V=N===M.Chain.BitcoinCash,j=V?B(L):L,R=V?Y(j)===Y(_):j===_;q.push(R?{address_n:$,amount:J.amount.toString(),script_type:A.output}:{address:j,amount:J.amount.toString(),script_type:"PAYTOADDRESS"})}return q}function kU(U){return U===M.Chain.Bitcoin||U===M.Chain.Litecoin}function T$(U){return U===M.Chain.BitcoinCash||U===M.Chain.Dash||U===M.Chain.Dogecoin}function _f(U,f){if(U!==M.Chain.Dash)return;let $=new Map;for(let _ of f){if(!_.txHex)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:U,error:`Missing previous transaction hex for ${_.hash}:${_.index}`}});$.set(_.hash,{details:{},hex:_.txHex,txid:_.hash})}return[...$.values()]}async function R$({address:U,chain:f,derivationPath:$}){switch(f){case M.Chain.Arbitrum:case M.Chain.Arc:case M.Chain.Aurora:case M.Chain.Avalanche:case M.Chain.Base:case M.Chain.Berachain:case M.Chain.BinanceSmartChain:case M.Chain.Ethereum:case M.Chain.Gnosis:case M.Chain.Hyperevm:case M.Chain.Monad:case M.Chain.Optimism:case M.Chain.Polygon:case M.Chain.Robinhood:case M.Chain.XLayer:{let{getProvider:_,getEvmToolboxAsync:N}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:A}=await Promise.resolve().then(() => (KU(),gU)),B=await _(f),Y=await A({chain:f,derivationPath:$,provider:B}),q=await Y.getAddress();return{...await N(f,{provider:B,signer:Y}),address:q}}case M.Chain.Cardano:{let{getCardanoToolbox:_}=await import("@swapkit/toolboxes/cardano"),{getCardanoSigner:N}=await Promise.resolve().then(() => (uU(),cU)),A=await import("@trezor/connect-web"),B=await N({connect:A,derivationPath:$}),Y=B.getAddress();return{..._({signer:B}),address:Y}}case M.Chain.Ripple:{let{getRippleToolbox:_}=await import("@swapkit/toolboxes/ripple"),{getRippleSigner:N}=await Promise.resolve().then(() => (rU(),pU)),A=N({derivationPath:$}),B=U??await A.getAddress();return{..._({signer:A}),address:B}}case M.Chain.Solana:{let{getSolanaToolbox:_}=await import("@swapkit/toolboxes/solana"),{getSolanaSigner:N}=await Promise.resolve().then(() => (nU(),dU)),A=N({address:U,derivationPath:$}),B=U??await A.getAddress();return{..._({signer:A}),address:B}}case M.Chain.Stellar:{let{getStellarToolbox:_}=await import("@swapkit/toolboxes/stellar"),{getStellarSigner:N}=await Promise.resolve().then(() => (eU(),tU)),A=N({derivationPath:$}),B=U??await A.getAddress();return{..._({signer:A}),address:B}}case M.Chain.Tron:{let{getTronToolbox:_}=await import("@swapkit/toolboxes/tron"),{getTronSigner:N}=await Promise.resolve().then(() => (Af(),Mf)),A=N({address:U,derivationPath:$}),B=await A.getAddress();return{..._({signer:A}),address:B}}case M.Chain.Zcash:{let{getUtxoToolbox:_}=await import("@swapkit/toolboxes/utxo"),N=f.toLowerCase(),A=M.derivationPathToString($),Y=U??await(async()=>{let Q=(await import("@trezor/connect-web")).default,{success:O,payload:w}=await Q.getAddress({coin:N,path:A});if(!O)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:f,error:w.error||"Unknown error"}});return w.address})(),q=async(Q,O)=>{let I=await(await import("@trezor/connect-web")).default.signTransaction({...Q,coin:N,overwintered:!0});if(!I.success)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...I.payload,chain:f,derivationPath:$,request:D$(Q),signingPath:O}});return I.payload.serializedTx},X=async(Q)=>{let{hex:O}=await import("@scure/base"),w=_U($),I=Q.getGlobal(),y=Z$(Q,w,O),l=await V$(Q,w,Y,f),d={branchId:I.consensusBranchId,expiry:I.expiryHeight,inputs:y,locktime:I.lockTime,outputs:l,version:I.txVersion,versionGroupId:I.versionGroupId},o=await q(d,"pczt");return{serializedTx:o,signedPczt:await W$(o,Q)}},J=async(Q)=>{let{ZcashTransaction:O}=await import("@swapkit/utxo-signer");return O.fromHex(Q,{allowUnknownOutputs:!0})},L=async(Q)=>{let{hex:O}=await import("@scure/base"),{NETWORKS:w,ZcashVersionGroupId:I}=await import("@swapkit/utxo-signer"),y=_U($),l=O$(Q,[],y,O),d=await w$({addressN:y,chain:f,myAddress:Y,network:w.zcash,tx:Q}),o={branchId:Q.consensusBranchId,expiry:0,inputs:l,locktime:0,outputs:d,version:4,versionGroupId:I.SAPLING},MU=await q(o,"transaction");return{serializedTx:MU,signedTx:await J(MU)}},V={getAddress:async()=>Y,signPCZT:async(Q)=>{return(await X(Q)).signedPczt},signTransaction:async(Q)=>{if("toPCZT"in Q){let{serializedTx:O}=await X(Q.toPCZT());return J(O)}if("getGlobal"in Q){let{serializedTx:O}=await X(Q);return J(O)}return(await L(Q)).signedTx}},j=_(M.Chain.Zcash,{signer:V}),R=async(Q)=>{if("toPCZT"in Q){let{serializedTx:w}=await X(Q.toPCZT());return j.broadcastTx(w)}if("getGlobal"in Q){let{serializedTx:w}=await X(Q);return j.broadcastTx(w)}let{serializedTx:O}=await L(Q);return j.broadcastTx(O)},S=async({recipient:Q,feeOptionKey:O,feeRate:w,...I})=>{if(!(Y&&Q))throw new M.SwapKitError({errorKey:"wallet_missing_params",info:{address:Y,recipient:Q,wallet:M.WalletOption.TREZOR}});let y=w||(await j.getFeeRates())[O||M.FeeOption.Fast],{tx:l}=await j.createTransaction({...I,feeRate:y,fetchTxHex:!1,recipient:Q,sender:Y}),{serializedTx:d}=await L(l);return j.broadcastTx(d)};return{...j,address:Y,signAndBroadcastTransaction:R,signPCZT:V.signPCZT,transfer:S}}case M.Chain.Bitcoin:case M.Chain.BitcoinCash:case M.Chain.Dash:case M.Chain.Dogecoin:case M.Chain.Litecoin:{let Wf=function(Z={}){return OU(Z)},{toCashAddress:_,getUtxoToolbox:N,stripPrefix:A}=await import("@swapkit/toolboxes/utxo"),B=f,Y=X$(f,$);if(!Y)throw new M.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:$}});let q=Y,X=Y.utxo===M.UTXOScriptType.P2TR,J={scriptType:Y.utxo},L=f.toLowerCase(),j=U??await(async(Z=$)=>{let z=(await import("@trezor/connect-web")).default,k=M.derivationPathToString(Z),{success:D,payload:E}=await z.getAddress({coin:L,...jU,path:k,showOnTrezor:!1});if(!D)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:f,error:E.error||"Unknown error"}});if(f===M.Chain.BitcoinCash)return A(E.address);return E.address})(),R=N(f,J),S=async(Z,z,k="")=>{await Nf(Z,k,f);let D=(await import("@trezor/connect-web")).default,E=_U($),T=H.getNetworkForChain(f),b=await ZU(Z,T,E,j,f,q,_,A),g=z.map(({hash:F,index:K,value:G})=>({address_n:E,amount:G,prev_hash:F,prev_index:K,script_type:q.input})),W=await D.signTransaction({coin:L,inputs:g,outputs:b,refTxs:_f(f,z)});if(W.success)return W.payload.serializedTx;let C=W.payload;throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:f,code:C?.code??"unknown",error:C?.error??"unknown",payload:C}})},Q=async(Z)=>{let z=(await import("@trezor/connect-web")).default,{hex:k}=await import("@scure/base"),D=_U($),E=H.getNetworkForChain(f),T;async function b(){if(!T){let G=await OU(),h=VU.HDKey.fromExtendedKey(G.xpub,E.bip32).derive(`m/${Number($[3]??0)}/${Number($[4]??0)}`);if(!h.publicKey)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_get_public_key",info:{chain:f,error:"Unable to derive Trezor leaf public key from account xpub"}});T=h.publicKey}return[T,{fingerprint:0,path:D}]}let g=[],W=[];async function C(G,m){if(X){let qU=Q$(m,G);if(!qU){let[Df,{path:SU}]=await b();qU={path:SU,xOnlyKey:Df.slice(1)},Z.updateInput(G,{tapBip32Derivation:[[qU.xOnlyKey,{der:{fingerprint:0,path:SU},hashes:[]}]]})}if(!m.tapInternalKey)Z.updateInput(G,{tapInternalKey:qU.xOnlyKey});return qU.path}let h=J$(m),i=h??await b();if(g[G]=i[0],!h)Z.updateInput(G,{bip32Derivation:[i]});return await bU({chain:B,indexes:[G],publicKey:i[0],tx:Z}),i[1].path}for(let G=0;G<Z.inputsLength;G++){let m=Z.getInput(G),h=Bf(m);if(!m.txid||m.index===void 0||!h)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:f,error:`Input ${G} is missing prevout data required by Trezor`}});let i=await C(G,m);W.push({address_n:i,amount:h,prev_hash:k.encode(m.txid),prev_index:m.index,script_type:q.input,...m.sequence!==void 0?{sequence:m.sequence}:{}})}let F=await ZU(Z,E,D,j,f,q,_,A),K=await z.signTransaction({coin:L,...jU,inputs:W,locktime:Z.lockTime,outputs:F,version:Z.version});if(!K.success){let G=K.payload;throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:f,code:G?.code??"unknown",error:G?.error??"unknown",payload:G}})}return K.payload.signatures.forEach((G,m)=>{if(!G)return;if(X){Z.updateInput(m,{tapKeySig:k.decode(G)});return}let h=g[m];if(!h)return;Z.updateInput(m,{partialSig:[[h,Zf(G,f)]]})}),Z},O=async(Z)=>{let z=(await import("@trezor/connect-web")).default,{hex:k}=await import("@scure/base"),D=_U($),E=H.getNetworkForChain(f),T=[];for(let C=0;C<Z.inputsLength;C++){let F=Z.getInput(C),K=Bf(F);if(!F.txid||F.index===void 0||!K)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:f,error:`Input ${C} is missing prevout data required by Trezor`}});T.push({address_n:D,amount:K,prev_hash:k.encode(F.txid),prev_index:F.index,script_type:q.input,...F.sequence!==void 0?{sequence:F.sequence}:{}})}let b=await ZU(Z,E,D,j,f,q,_,A),g=await z.signTransaction({coin:L,inputs:T,locktime:Z.lockTime,outputs:b,version:Z.version});if(g.success)return g.payload.serializedTx;let W=g.payload;throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:f,code:W?.code??"unknown",error:W?.error??"unknown",payload:W}})},w=async(Z,z,k="")=>{await Nf(Z,k,f);let D=(await import("@trezor/connect-web")).default,E=H.getNetworkForChain(f),T=_U($.slice(0,3)),b=await ZU(Z,E,T,j,f,q,_,A),g=z.map(({hash:C,index:F,value:K,derivationIndex:G,isChange:m})=>{let h=m?1:0;return{address_n:[...T,h,G],amount:K,prev_hash:C,prev_index:F,script_type:q.input}}),W=await D.signTransaction({coin:L,inputs:g,outputs:b,refTxs:_f(f,z)});if(W.success)return W.payload.serializedTx;throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:f,error:W.payload.error}})},I=async({utxos:Z,recipient:z,assetValue:k,memo:D,feeRate:E,feeOptionKey:T})=>{let b=N(f,J),g=E||(await b.getFeeRates())[T||M.FeeOption.Fast],{tx:W,inputs:C}=await b.createTransaction({assetValue:k,feeRate:g,fetchTxHex:f===M.Chain.Dash,memo:D,recipient:z,sender:j}),F=C.map((G)=>{let m=Z.find((h)=>h.hash===G.hash&&h.index===G.index);return{...G,derivationIndex:m?.derivationIndex??0,isChange:m?.isChange??!1,txHex:m?.txHex}}),K=await w(W,F,D);return b.broadcastTx(K)},y=async({recipient:Z,feeOptionKey:z,feeRate:k,memo:D,...E})=>{if(!(j&&Z))throw new M.SwapKitError({errorKey:"wallet_missing_params",info:{address:j,memo:D,recipient:Z,wallet:M.WalletOption.TREZOR}});let T=N(f,J),b=k||(await T.getFeeRates())[z||M.FeeOption.Fast],g=T.createTransaction,{tx:W,inputs:C}=await g({...E,feeRate:b,fetchTxHex:f===M.Chain.Dash,memo:D,recipient:Z,sender:j}),F=await S(W,C,D);return await T.broadcastTx(F)},l=kU(f)?await N(B,{...J,signer:{getAddress:async()=>j,signTransaction:Q}}):R,d=T$(f)?async(Z)=>R.broadcastTx(await O(Z)):l.signAndBroadcastTransaction,o=kU(f)?l.signTransaction:S,MU=kU(f)?l.transfer:y;async function OU({accountIndex:Z}={}){let z=(await import("@trezor/connect-web")).default,k=H.getUTXOAccountPath({accountIndex:Z,chain:B,derivationPath:$}),D=M.derivationPathToString(k),E=`${f}:${D}`,T=LU.get(E);if(T)return T;let b=await z.getPublicKey({coin:L,path:D}),{success:g,payload:W}=b;if(!g)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_get_public_key",info:{chain:f,error:W.error||"Unknown error"}});let C=WU(W.xpub,B),F=Lf(W.xpubSegwit,B),K={accountIndex:H.getUTXOAccountIndexFromPath(k),chainCode:W.chainCode,depth:W.depth,fingerprint:W.fingerprint,path:W.serializedPath,publicKey:W.publicKey,xpub:C,xpubSegwit:F};return LU.set(E,K),K}async function HU({accountIndex:Z,index:z,change:k=!1}){H.assertDerivationIndex("index",z);let D=(await import("@trezor/connect-web")).default,E=H.getUTXOAccountPath({accountIndex:Z,chain:B,derivationPath:$}),T=`${M.derivationPathToString(E)}/${Number(k)}/${z}`,{success:b,payload:g}=await D.getAddress({coin:L,...jU,path:T,showOnTrezor:!1});if(!b)return;let W=g.address;if(f===M.Chain.BitcoinCash)W=(await N(f)).stripPrefix(g.address);let C=await D.getPublicKey({coin:L,...jU,path:T,scriptType:q.input,showOnTrezor:!1}),F=C.success?C.payload.publicKey:"";return{accountIndex:H.getUTXOAccountIndexFromPath(E),address:W,change:k,index:z,path:T,pubkey:F}}async function Of({accountIndex:Z,count:z,startIndex:k=0,change:D=!1}){H.assertDerivationIndex("count",z),H.assertDerivationIndex("startIndex",k);let E=(await import("@trezor/connect-web")).default,T=H.getUTXOAccountPath({accountIndex:Z,chain:B,derivationPath:$}),b=M.derivationPathToString(T),g=Array.from({length:z},(K,G)=>({coin:L,path:`${b}/${Number(D)}/${k+G}`,showOnTrezor:!1})),{success:W,payload:C}=await E.getAddress({...jU,bundle:g});if(!W||!Array.isArray(C))return[];return await Promise.all(C.map(async(K,G)=>{let m=K.address;if(f===M.Chain.BitcoinCash)m=(await N(f)).stripPrefix(K.address);return{accountIndex:H.getUTXOAccountIndexFromPath(T),address:m,change:D,index:k+G,path:`${b}/${Number(D)}/${k+G}`,pubkey:""}}))}let wf=H.createHDWalletHelpers({chain:f,deriveAddress:HU,getBalance:l.getBalance,getUtxos:(Z)=>H.getUtxoApi(f).getUtxos({address:Z,fetchTxHex:!0})});return{...l,...wf,address:j,deriveAddressAtIndex:HU,deriveAddresses:Of,getExtendedPublicKey:Wf,getExtendedPublicKeyInfo:OU,signAndBroadcastTransaction:d,signTransaction:o,signTransactionWithMultipleInputs:w,transfer:MU,transferFromMultipleAddresses:I}}default:throw new M.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:f,wallet:M.WalletOption.TREZOR}})}}async function Vf(U,f,{accountIndex:$}={}){if(![M.Chain.BitcoinCash,M.Chain.Bitcoin,M.Chain.Dash,M.Chain.Dogecoin,M.Chain.Litecoin,M.Chain.Zcash].includes(U))throw new M.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:U,wallet:M.WalletOption.TREZOR}});let{TrezorConnect:_}=await q$(),N=U,A=f??M.NetworkDerivationPath[U],B=U.toLowerCase(),Y=H.getUTXOAccountPath({accountIndex:$,chain:N,derivationPath:A}),q=M.derivationPathToString(Y),X=`${U}:${q}`,J=LU.get(X);if(J)return J;let{success:L,payload:V}=await _.getPublicKey({coin:B,path:q,showOnTrezor:!0});if(!L)throw new M.SwapKitError({errorKey:"wallet_trezor_failed_to_get_public_key",info:{chain:U,error:V.error||"Unknown error"}});let j={accountIndex:H.getUTXOAccountIndexFromPath(Y),chainCode:V.chainCode,depth:V.depth,fingerprint:V.fingerprint,path:V.serializedPath,publicKey:V.publicKey,xpub:WU(V.xpub,N),xpubSegwit:Lf(V.xpubSegwit,N)};return LU.set(X,j),j}var Gf=GU.createWallet({connect:({addChain:U,supportedChains:f,walletType:$})=>async function(N,A,{address:B}={}){let[Y]=M.filterSupportedChains({chains:N,supportedChains:f,walletType:$});if(!Y)throw new M.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:Y,wallet:M.WalletOption.TREZOR}});let q=(await import("@trezor/connect-web")).default,X=M.SKConfig.get("integrations").trezor,{connectSrc:J,coreMode:L,debug:V,interactionTimeout:j,lazyLoad:R,pendingTransportEvent:S,popup:Q,transportReconnect:O,transports:w,...I}=X??{},y={...I,appName:YU(X?.appName,JU.appName),appUrl:YU(X?.appUrl,Jf()),email:YU(X?.email,JU.email)},l=typeof globalThis.location<"u"&&["localhost","127.0.0.1"].includes(globalThis.location.hostname),d=Xf(L)??Yf,o=jf(w)??qf;if($U)await $U;if(l)await q.dispose();await q.init({connectSrc:J,coreMode:d,debug:V,interactionTimeout:j,lazyLoad:R??!1,manifest:y,pendingTransportEvent:S,popup:Q??!0,transportReconnect:O,transports:o});let MU=await R$({address:B,chain:Y,derivationPath:A});return U({...MU,chain:Y,disconnect:Y$,walletType:$}),!0},getExtendedPublicKey:Vf,name:"connectTrezor",signingSupport:{[M.Chain.Arbitrum]:{direct:!0,typedData:!0},[M.Chain.Arc]:{direct:!0,typedData:!0},[M.Chain.Aurora]:{direct:!0,typedData:!0},[M.Chain.Avalanche]:{direct:!0,typedData:!0},[M.Chain.Base]:{direct:!0,typedData:!0},[M.Chain.Berachain]:{direct:!0,typedData:!0},[M.Chain.BinanceSmartChain]:{direct:!0,typedData:!0},[M.Chain.Bitcoin]:{direct:!0},[M.Chain.BitcoinCash]:{direct:!0},[M.Chain.Cardano]:{direct:!0},[M.Chain.Dash]:{direct:!0},[M.Chain.Ethereum]:{direct:!0,typedData:!0},[M.Chain.Gnosis]:{direct:!0,typedData:!0},[M.Chain.Dogecoin]:{direct:!0},[M.Chain.Hyperevm]:{direct:!0,typedData:!0},[M.Chain.Litecoin]:{direct:!0},[M.Chain.Monad]:{direct:!0,typedData:!0},[M.Chain.Optimism]:{direct:!0,typedData:!0},[M.Chain.Polygon]:{direct:!0,typedData:!0},[M.Chain.Ripple]:{direct:!0},[M.Chain.Robinhood]:{direct:!0,typedData:!0},[M.Chain.Solana]:{direct:!0},[M.Chain.Stellar]:{direct:!0},[M.Chain.Tron]:{direct:!0},[M.Chain.XLayer]:{direct:!0,typedData:!0},[M.Chain.Zcash]:{direct:!0}},supportedChains:[M.Chain.Arbitrum,M.Chain.Arc,M.Chain.Aurora,M.Chain.Avalanche,M.Chain.Base,M.Chain.Berachain,M.Chain.BinanceSmartChain,M.Chain.Bitcoin,M.Chain.BitcoinCash,M.Chain.Cardano,M.Chain.Dash,M.Chain.Dogecoin,M.Chain.Ethereum,M.Chain.Gnosis,M.Chain.Hyperevm,M.Chain.Litecoin,M.Chain.Monad,M.Chain.Optimism,M.Chain.Polygon,M.Chain.Ripple,M.Chain.Robinhood,M.Chain.Solana,M.Chain.Stellar,M.Chain.Tron,M.Chain.XLayer,M.Chain.Zcash],walletType:M.WalletOption.TREZOR}),m$=GU.getWalletSupportedChains(Gf);
2
2
 
3
- //# debugId=CBDA9F4428A5BBCD64756E2164756E21
3
+ //# debugId=31BAE65F79277EA664756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map