@swapkit/wallet-hardware 5.0.0 → 5.0.1

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 (34) hide show
  1. package/dist/{chunk-n05bv2n5.js → chunk-1jpcb30j.js} +3 -3
  2. package/dist/{chunk-n05bv2n5.js.map → chunk-1jpcb30j.js.map} +1 -1
  3. package/dist/{chunk-9gy0xve4.js → chunk-20wx60bn.js} +3 -3
  4. package/dist/{chunk-9gy0xve4.js.map → chunk-20wx60bn.js.map} +1 -1
  5. package/dist/chunk-4tbtxdxa.js +5 -0
  6. package/dist/chunk-4tbtxdxa.js.map +10 -0
  7. package/dist/chunk-7v7cgm69.js +4 -0
  8. package/dist/chunk-7v7cgm69.js.map +10 -0
  9. package/dist/{chunk-3yr76n9s.js → chunk-83g13ck6.js} +3 -3
  10. package/dist/{chunk-3yr76n9s.js.map → chunk-83g13ck6.js.map} +1 -1
  11. package/dist/{chunk-bwf31zxr.js → chunk-h2r568rz.js} +3 -3
  12. package/dist/{chunk-bwf31zxr.js.map → chunk-h2r568rz.js.map} +1 -1
  13. package/dist/{chunk-vwv6z2mk.js → chunk-xkh15edk.js} +2 -2
  14. package/dist/keepkey/index.js +2 -2
  15. package/dist/keepkey/index.js.map +1 -1
  16. package/dist/ledger/index.cjs +2 -2
  17. package/dist/ledger/index.cjs.map +5 -4
  18. package/dist/ledger/index.js +2 -2
  19. package/dist/ledger/index.js.map +1 -1
  20. package/dist/trezor/index.cjs +2 -2
  21. package/dist/trezor/index.cjs.map +5 -4
  22. package/dist/trezor/index.js +2 -2
  23. package/dist/trezor/index.js.map +3 -3
  24. package/dist/types/helpers/psbt.d.ts +9 -0
  25. package/dist/types/helpers/psbt.d.ts.map +1 -0
  26. package/dist/types/ledger/clients/utxo-psbt.d.ts.map +1 -1
  27. package/dist/types/trezor/index.d.ts.map +1 -1
  28. package/package.json +1 -1
  29. package/src/helpers/psbt.ts +26 -0
  30. package/src/ledger/clients/utxo-psbt.ts +33 -1
  31. package/src/trezor/index.ts +4 -0
  32. package/dist/chunk-egtwbe6q.js +0 -4
  33. package/dist/chunk-egtwbe6q.js.map +0 -10
  34. /package/dist/{chunk-vwv6z2mk.js.map → chunk-xkh15edk.js.map} +0 -0
@@ -21,6 +21,6 @@
21
21
  "import Xrp from \"@ledgerhq/hw-app-xrp\";\nimport type Transport from \"@ledgerhq/hw-transport\";\nimport { Chain, type DerivationPathArray, derivationPathToString, NetworkDerivationPath } from \"@swapkit/helpers\";\nimport type { RippleTransaction } from \"@swapkit/toolboxes/ripple\";\nimport { encode } from \"ripple-binary-codec\";\nimport type { Payment } from \"xrpl\";\nimport { getLedgerTransport } from \"../helpers/getLedgerTransport\";\n\nconst TF_FULLY_CANONICAL_SIG = 2147483648;\n\nfunction cleanTransactionObject(obj: Record<string, any>) {\n const cleaned: Record<string, any> = {};\n for (const key in obj) {\n if (obj[key] !== null && obj[key] !== undefined) {\n cleaned[key] = obj[key];\n }\n }\n return cleaned;\n}\n\nfunction establishConnection(transport: Transport) {\n return new Xrp(transport);\n}\n\nexport const XRPLedger = async (derivationPath?: DerivationPathArray, injectedTransport?: Transport) => {\n const path = derivationPathToString(derivationPath || NetworkDerivationPath[Chain.Ripple]);\n const transport = injectedTransport ?? (await getLedgerTransport());\n const xrpInstance = establishConnection(transport);\n\n const { address, publicKey } = await xrpInstance.getAddress(path);\n\n async function signTransaction(transaction: Payment | RippleTransaction) {\n const { hashes } = await import(\"xrpl\");\n const cleanedTxWithPubKey = cleanTransactionObject(transaction);\n const transactionJSON = {\n ...cleanedTxWithPubKey,\n Flags: transaction.Flags || TF_FULLY_CANONICAL_SIG,\n SigningPubKey: publicKey.toUpperCase(),\n };\n\n const transactionToSignOnLedger = encode(transactionJSON);\n const txnSignature = await xrpInstance.signTransaction(path, transactionToSignOnLedger);\n const tx_blob = encode({ ...transactionJSON, TxnSignature: txnSignature });\n const hash = hashes.hashSignedTx(tx_blob);\n\n return { hash, tx_blob };\n }\n\n return { getAddress: () => address, signTransaction };\n};\n"
22
22
  ],
23
23
  "mappings": "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",
24
- "debugId": "4FBDCA7A0E5C984C64756E2164756E21",
24
+ "debugId": "E0C6440FC62DB24464756E2164756E21",
25
25
  "names": []
26
26
  }
@@ -1,4 +1,4 @@
1
- var wj=Object.create;var{getPrototypeOf:Sj,defineProperty:d,getOwnPropertyNames:Xj,getOwnPropertyDescriptor:Cj}=Object,Yj=Object.prototype.hasOwnProperty;function Zj(q){return this[q]}var zj,fj,jq=(q,B,Q)=>{var X=q!=null&&typeof q==="object";if(X){var Z=B?zj??=new WeakMap:fj??=new WeakMap,U=Z.get(q);if(U)return U}Q=q!=null?wj(Sj(q)):{};let J=B||!q||!q.__esModule?d(Q,"default",{value:q,enumerable:!0}):Q;for(let Y of Xj(q))if(!Yj.call(J,Y))d(J,Y,{get:Zj.bind(q,Y),enumerable:!0});if(X)Z.set(q,J);return J},bj=(q)=>{var B=(Uj??=new WeakMap).get(q),Q;if(B)return B;if(B=d({},"__esModule",{value:!0}),q&&typeof q==="object"||typeof q==="function"){for(var X of Xj(q))if(!Yj.call(B,X))d(B,X,{get:Zj.bind(q,X),enumerable:!(Q=Cj(q,X))||Q.enumerable})}return Uj.set(q,B),B},Uj;var vj=(q)=>q;function Tj(q,B){this[q]=vj.bind(null,B)}var $j=(q,B)=>{for(var Q in B)d(q,Q,{get:B[Q],enumerable:!0,configurable:!0,set:Tj.bind(B,Q)})};var Ij=(q,B)=>()=>(q&&(B=q(q=0)),B);var Vj={};$j(Vj,{getEVMSigner:()=>Pj});async function Pj({chain:q,derivationPath:B,provider:Q}){let{AbstractSigner:X}=await import("ethers");class Z extends X{address;chain;derivationPath;provider;constructor({chain:U,derivationPath:J,provider:Y}){super(Y);this.address="",this.chain=U,this.derivationPath=J,this.provider=Y}getAddress=async()=>{if(!this.address){let J=await(await import("@trezor/connect-web")).default.ethereumGetAddress({path:I.derivationPathToString(this.derivationPath),showOnTrezor:!0});if(!J.success)throw new I.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{...J,chain:this.chain,derivationPath:this.derivationPath}});this.address=J.payload.address}return this.address};signMessage=async(U)=>{let Y=await(await import("@trezor/connect-web")).default.ethereumSignMessage({message:U,path:I.derivationPathToString(this.derivationPath)});if(!Y.success)throw new I.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...Y,chain:this.chain,derivationPath:this.derivationPath,message:U}});return Y.payload.signature};signTypedData=async(U,J,Y,V)=>{let M=(await import("@trezor/connect-web")).default,{buildEIP712DomainType:W}=await import("@swapkit/toolboxes/evm"),{TypedDataEncoder:_}=await import("ethers"),{EIP712Domain:O,...z}=J,$=V??_.from(z).primaryType,L=W(U),C={domain:U,message:Y,primaryType:$,types:{EIP712Domain:L,...z}},v=await M.ethereumSignTypedData({data:C,metamask_v4_compat:!0,path:I.derivationPathToString(this.derivationPath)});if(!v.success)throw new I.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:this.chain,error:v.payload.error}});return v.payload.signature.startsWith("0x")?v.payload.signature:`0x${v.payload.signature}`};signTransaction=async({to:U,gasLimit:J,value:Y,data:V,nonce:M,maxFeePerGas:W,maxPriorityFeePerGas:_,gasPrice:O})=>{if(!U)throw new I.SwapKitError({errorKey:"wallet_missing_params",info:{to:U}});if(!J)throw new I.SwapKitError({errorKey:"wallet_missing_params",info:{gasLimit:J}});let z=W!=null||_!=null;if(z&&!W)throw new I.SwapKitError({errorKey:"wallet_missing_params",info:{maxFeePerGas:W}});if(!(z||O))throw new I.SwapKitError({errorKey:"wallet_missing_params",info:{gasPrice:O}});let $=(await import("@trezor/connect-web")).default,{toHexString:L}=await import("@swapkit/toolboxes/evm"),C=z?{maxFeePerGas:L(BigInt(W?.toString()||0)),maxPriorityFeePerGas:L(BigInt(_?.toString()||0))}:O&&{gasPrice:L(BigInt(O?.toString()||0))}||{gasPrice:"0x0"},v=L(BigInt(M||await this.provider.getTransactionCount(await this.getAddress(),"pending"))),m={chainId:Number.parseInt(I.ChainToChainId[this.chain],10),data:V?.toString()||"0x",gasLimit:L(BigInt(J?.toString()||0)),nonce:v,to:U.toString(),value:L(BigInt(Y?.toString()||0)),...C},{success:y,payload:f}=await $.ethereumSignTransaction({path:I.derivationPathToString(this.derivationPath),transaction:m});if(!y)throw new I.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...f,chain:this.chain,derivationPath:this.derivationPath}});let h=f.serializedTx?f.serializedTx.startsWith("0x")?f.serializedTx:`0x${f.serializedTx}`:void 0;if(!h)throw new I.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:this.chain,derivationPath:this.derivationPath}});return h};connect=(U)=>{if(!U)throw new I.SwapKitError({errorKey:"wallet_provider_not_found",info:{chain:this.chain,derivationPath:this.derivationPath,wallet:I.WalletOption.TREZOR}});return new Z({chain:this.chain,derivationPath:this.derivationPath,provider:U})}}return new Z({chain:q,derivationPath:B,provider:Q})}var I;var Nj=Ij(()=>{I=require("@swapkit/helpers")});var ej={};$j(ej,{trezorWallet:()=>Aj,normalizeTrezorSignature:()=>Hj,normalizeTrezorExtendedPublicKey:()=>t,getTrezorExtendedPublicKey:()=>kj,TREZOR_SUPPORTED_CHAINS:()=>tj});module.exports=bj(ej);var n=require("@scure/bip32"),j=require("@swapkit/helpers"),S=require("@swapkit/toolboxes/utxo"),g=require("@swapkit/utxo-signer"),a=require("@swapkit/wallet-core"),mj=new Set(["auto","iframe","popup","suite-desktop","suite-web"]),gj=new Set(["BridgeTransport","WebUsbTransport","NodeUsbTransport"]),Mj="auto",r={appName:"SwapKit",appUrl:"https://swapkit.dev",email:"support@swapkit.dev"},Dj=["WebUsbTransport"],s={keepSession:!0},i=new Map,l,yj=[g.NETWORKS.bitcoin.bip32,g.NETWORKS.bitcoinCash.bip32,g.NETWORKS.dash.bip32,g.NETWORKS.dogecoin.bip32,g.NETWORKS.litecoin.bip32];async function hj(){i.clear();let q=(async()=>{try{await(await import("@trezor/connect-web")).default.dispose()}catch{}})();if(l=q,await q,l===q)l=void 0}function Lj(q){return typeof q==="string"&&mj.has(q)?q:void 0}function Rj(q){if(!Array.isArray(q))return;let B=q.filter((Q)=>typeof Q==="string"&&gj.has(Q));return B.length>0?B:void 0}function c(q,B){return typeof q==="string"&&q.trim()?q:B}function _j(){return typeof globalThis.location<"u"&&globalThis.location.origin?globalThis.location.origin:r.appUrl}async function xj(){let q=(await import("@trezor/connect-web")).default,B=j.SKConfig.get("integrations").trezor,{connectSrc:Q,coreMode:X,debug:Z,interactionTimeout:U,lazyLoad:J,pendingTransportEvent:Y,popup:V,transportReconnect:M,transports:W,..._}=B??{},O={..._,appName:c(B?.appName,r.appName),appUrl:c(B?.appUrl,_j()),email:c(B?.email,r.email)},z=typeof globalThis.location<"u"&&["localhost","127.0.0.1"].includes(globalThis.location.hostname),$=Lj(X)??Mj,L=Rj(W)??Dj;if(l)await l;if(z)await q.dispose();return await q.init({connectSrc:Q,coreMode:$,debug:Z,interactionTimeout:U,lazyLoad:J??!1,manifest:O,pendingTransportEvent:Y,popup:V??!0,transportReconnect:M,transports:L}),{coreMode:$,isLocalhost:z,popup:V??!0,TrezorConnect:q}}function t(q,B){let Q=S.getNetworkForChain(B).bip32,X=[Q,...yj.filter((U)=>U.public!==Q.public||U.private!==Q.private)],Z;for(let U of X)try{let J=n.HDKey.fromExtendedKey(q,U);if(!(J.publicKey&&J.chainCode))throw Error("Extended key is missing public key data");return new n.HDKey({chainCode:J.chainCode,depth:J.depth,index:J.index,parentFingerprint:J.parentFingerprint,publicKey:J.publicKey,versions:Q}).publicExtendedKey}catch(J){Z=J}throw Z instanceof Error?Z:Error("Unable to parse Trezor extended public key")}function Gj(q,B){if(!q)return;try{return t(q,B)}catch{return q}}function Jj(q){if(q.length<2||q[0]!==106)return null;let B=q[1];if(B===void 0||q.length<2+B)return null;return Buffer.from(q.slice(2,2+B)).toString("hex")}function lj(q){switch(q[0]){case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS",utxo:j.UTXOScriptType.P2WPKH};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS",utxo:j.UTXOScriptType.P2SH_P2WPKH};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS",utxo:j.UTXOScriptType.P2PKH};default:return null}}function u(q){return q.map((B,Q)=>Q<3?(B|2147483648)>>>0:B)}function uj(q){return Array.isArray(q)&&q[0]instanceof Uint8Array&&typeof q[1]==="object"&&q[1]!==null&&typeof q[1].fingerprint==="number"&&Array.isArray(q[1].path)}function cj(q){if(!Array.isArray(q.bip32Derivation))return;let[B]=q.bip32Derivation;return uj(B)?B:void 0}function Wj(q){if(q.witnessUtxo?.amount!==void 0)return q.witnessUtxo.amount.toString();let B=q.index!==void 0?q.nonWitnessUtxo?.outputs?.[q.index]:void 0;if(B?.amount!==void 0)return B.amount.toString();return}function Hj(q,B){let Q=Buffer.from(q,"hex"),X=Q[1]!==void 0?Q[1]+2:void 0;if(X!==void 0&&Q.length===X)return new Uint8Array([...Q,B===j.Chain.BitcoinCash?g.BCHSigHash.ALL:1]);return new Uint8Array(Q)}function pj(q,B,Q){let X=[];for(let Z=0;Z<q.inputsLength;Z++){let U=q.getInput(Z);X.push({address_n:B,amount:U.value.toString(),prev_hash:Q.encode(U.txid),prev_index:U.index,script_type:"SPENDADDRESS"})}return X}async function dj(q,B,Q,X){let Z=[];for(let U=0;U<q.outputsLength;U++){let J=q.getOutput(U),Y=J.scriptPubkey;if(J.value===0n&&Y?.length>0&&Y[0]===106){let W=Jj(Y);if(W){Z.push({amount:"0",op_return_data:W,script_type:"PAYTOOPRETURN"});continue}throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:X,error:"Malformed OP_RETURN output cannot be signed"}})}let V=await sj(Y);if(!V&&J.value>0n)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:X,error:"Unable to decode output address from scriptPubkey"}});if(V===Q)Z.push({address_n:B,amount:J.value.toString(),script_type:"PAYTOADDRESS"});else Z.push({address:V,amount:J.value.toString(),script_type:"PAYTOADDRESS"})}return Z}async function sj(q){try{let{OutScript:B,Address:Q}=await import("@swapkit/utxo-signer"),X=B.decode(q);if(X.type==="pkh"||X.type==="pk")return Q(g.NETWORKS.zcash).encode(X)}catch{}return}async function rj(q,B){let{ZcashTransaction:Q,Script:X}=await import("@swapkit/utxo-signer"),Z=Q.fromHex(q,{allowUnknownOutputs:!0}),U=B.clone();for(let J=0;J<Z.inputsLength;J++){let V=Z.getInput(J).script;if(V&&V.length>0){let M=X.decode(V);if(M.length>=2)U.addSignature(J,M[1],M[0])}}return U}function ij(q,B,Q,X){let Z=[];for(let U=0;U<q.inputsLength;U++){let J=q.getInput(U),Y=B[U];Z.push({address_n:Q,amount:Y?.value?.toString()||J.value?.toString()||"0",prev_hash:J.txid?X.encode(J.txid):"",prev_index:J.index??0,script_type:"SPENDADDRESS"})}return Z}function oj(q,B,Q,X){let Z=[];for(let U=0;U<q.outputsLength;U++){let J=q.getOutput(U),Y=q.getOutputAddress(U,g.NETWORKS.zcash),V=J.script;if(J.amount===0n&&V?.length>0&&V[0]===106){let _=Jj(V);if(_){Z.push({amount:"0",op_return_data:_,script_type:"PAYTOOPRETURN"});continue}continue}if(!Y&&(J.amount??0n)>0n)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:X,error:"Unable to decode output address"}});let W=Y===Q||!Y?{address_n:B}:{address:Y};Z.push({...W,amount:J.amount?.toString()||"0",script_type:"PAYTOADDRESS"})}return Z}function o(q,B,Q,X,Z,U,J,Y,V){let M=[];for(let W=0;W<q.outputsLength;W++){let _=q.getOutput(W),O=q.getOutputAddress(W,B);if(!O){let C=_.script?Jj(_.script):null;if(C!==null||Z){M.push({amount:"0",op_return_data:C??Buffer.from(Z).toString("hex"),script_type:"PAYTOOPRETURN"});continue}throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:U,error:"Unable to decode output address from scriptPubkey"}})}if(_.amount===void 0)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:U,error:"Output amount is missing"}});let z=U===j.Chain.BitcoinCash,$=z?Y(O):O,L=z?V($)===V(X):$===X;M.push(L?{address_n:Q,amount:_.amount.toString(),script_type:J.output}:{address:$,amount:_.amount.toString(),script_type:"PAYTOADDRESS"})}return M}function Bj(q){return q===j.Chain.Bitcoin||q===j.Chain.Litecoin}function nj(q){return q===j.Chain.BitcoinCash||q===j.Chain.Dash||q===j.Chain.Dogecoin}function Oj(q,B){if(q!==j.Chain.Dash)return;let Q=new Map;for(let X of B){if(!X.txHex)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:q,error:`Missing previous transaction hex for ${X.hash}:${X.index}`}});Q.set(X.hash,{details:{},hex:X.txHex,txid:X.hash})}return[...Q.values()]}async function aj({address:q,chain:B,derivationPath:Q}){switch(B){case j.Chain.Arbitrum:case j.Chain.Arc:case j.Chain.Aurora:case j.Chain.Avalanche:case j.Chain.Base:case j.Chain.Berachain:case j.Chain.BinanceSmartChain:case j.Chain.Ethereum:case j.Chain.Gnosis:case j.Chain.Monad:case j.Chain.Optimism:case j.Chain.Polygon:case j.Chain.XLayer:{let{getProvider:X,getEvmToolboxAsync:Z}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:U}=await Promise.resolve().then(() => (Nj(),Vj)),J=await X(B),Y=await U({chain:B,derivationPath:Q,provider:J}),V=await Y.getAddress();return{...await Z(B,{provider:J,signer:Y}),address:V}}case j.Chain.Zcash:{let{getUtxoToolbox:X}=await import("@swapkit/toolboxes/utxo"),Z=j.derivationPathToString(Q),J=q??await(async()=>{let $=(await import("@trezor/connect-web")).default,{success:L,payload:C}=await $.getAddress({coin:"zcash",path:Z});if(!L)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:B,error:C.error||"Unknown error"}});return C.address})(),Y=async($)=>{let L=(await import("@trezor/connect-web")).default,{hex:C}=await import("@scure/base"),v=u(Q),m=$.getGlobal(),y=pj($,v,C),f=await dj($,v,J,B),h=await L.signTransaction({branchId:m.consensusBranchId,coin:"zcash",expiry:m.expiryHeight,inputs:y,locktime:m.lockTime,outputs:f,overwintered:!0,version:m.txVersion,versionGroupId:m.versionGroupId});if(!h.success)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:B,error:h.payload.error}});return{serializedTx:h.payload.serializedTx,signedPczt:await rj(h.payload.serializedTx,$)}},V=async($)=>{let{ZcashTransaction:L}=await import("@swapkit/utxo-signer");return L.fromHex($,{allowUnknownOutputs:!0})},M=async($)=>{let L=(await import("@trezor/connect-web")).default,{hex:C}=await import("@scure/base"),v=u(Q),m=ij($,[],v,C),y=oj($,v,J,B),f=await L.signTransaction({branchId:$.consensusBranchId,coin:"zcash",expiry:0,inputs:m,locktime:0,outputs:y,overwintered:!0,version:4,versionGroupId:g.ZcashVersionGroupId.SAPLING});if(f.success)return{serializedTx:f.payload.serializedTx,signedTx:await V(f.payload.serializedTx)};throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:B,error:f.payload.error}})},W={getAddress:async()=>J,signPCZT:async($)=>{return(await Y($)).signedPczt},signTransaction:async($)=>{if("toPCZT"in $){let{serializedTx:L}=await Y($.toPCZT());return V(L)}if("getGlobal"in $){let{serializedTx:L}=await Y($);return V(L)}return(await M($)).signedTx}},_=X(j.Chain.Zcash,{signer:W}),O=async($)=>{if("toPCZT"in $){let{serializedTx:C}=await Y($.toPCZT());return _.broadcastTx(C)}if("getGlobal"in $){let{serializedTx:C}=await Y($);return _.broadcastTx(C)}let{serializedTx:L}=await M($);return _.broadcastTx(L)},z=async({recipient:$,feeOptionKey:L,feeRate:C,...v})=>{if(!(J&&$))throw new j.SwapKitError({errorKey:"wallet_missing_params",info:{address:J,recipient:$,wallet:j.WalletOption.TREZOR}});let m=C||(await _.getFeeRates())[L||j.FeeOption.Fast],{tx:y}=await _.createTransaction({...v,feeRate:m,fetchTxHex:!1,recipient:$,sender:J}),{serializedTx:f}=await M(y);return _.broadcastTx(f)};return{..._,address:J,signAndBroadcastTransaction:O,signPCZT:W.signPCZT,transfer:z}}case j.Chain.Bitcoin:case j.Chain.BitcoinCash:case j.Chain.Dash:case j.Chain.Dogecoin:case j.Chain.Litecoin:{let Fj=function(N={}){return p(N)},{toCashAddress:X,getUtxoToolbox:Z,stripPrefix:U}=await import("@swapkit/toolboxes/utxo"),J=B,Y=lj(Q);if(!Y)throw new j.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:Q}});let V=Y,M={scriptType:Y.utxo},W=B.toLowerCase(),O=q??await(async(N=Q)=>{let F=(await import("@trezor/connect-web")).default,E=j.derivationPathToString(N),{success:G,payload:k}=await F.getAddress({coin:W,...s,path:E,showOnTrezor:!1});if(!G)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:B,error:k.error||"Unknown error"}});if(B===j.Chain.BitcoinCash)return U(k.address);return k.address})(),z=Z(B,M),$=async(N,F,E="")=>{let G=(await import("@trezor/connect-web")).default,k=u(Q),H=S.getNetworkForChain(B),T=o(N,H,k,O,E,B,V,X,U),b=F.map(({hash:w,index:D,value:A})=>({address_n:k,amount:A,prev_hash:w,prev_index:D,script_type:V.input})),R=await G.signTransaction({coin:W,inputs:b,outputs:T,refTxs:Oj(B,F)});if(R.success)return R.payload.serializedTx;let K=R.payload;throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:B,code:K?.code??"unknown",error:K?.error??"unknown",payload:K}})},L=async(N)=>{let F=(await import("@trezor/connect-web")).default,{hex:E}=await import("@scure/base"),G=u(Q),k=S.getNetworkForChain(B),H;async function T(){if(!H){let D=await p(),P=n.HDKey.fromExtendedKey(D.xpub,k.bip32).derive(`m/${Number(Q[3]??0)}/${Number(Q[4]??0)}`);if(!P.publicKey)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_get_public_key",info:{chain:B,error:"Unable to derive Trezor leaf public key from account xpub"}});H=P.publicKey}return[H,{fingerprint:0,path:G}]}let b=[],R=[];for(let D=0;D<N.inputsLength;D++){let A=N.getInput(D),P=cj(A),x=P??await T(),qj=Wj(A);if(!A.txid||A.index===void 0||!qj)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:B,error:`Input ${D} is missing prevout data required by Trezor`}});if(b[D]=x[0],!P)N.updateInput(D,{bip32Derivation:[x]});R.push({address_n:x[1].path,amount:qj,prev_hash:E.encode(A.txid),prev_index:A.index,script_type:V.input,...A.sequence!==void 0?{sequence:A.sequence}:{}})}let K=o(N,k,G,O,"",B,V,X,U),w=await F.signTransaction({coin:W,...s,inputs:R,locktime:N.lockTime,outputs:K,version:N.version});if(!w.success){let D=w.payload;throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:B,code:D?.code??"unknown",error:D?.error??"unknown",payload:D}})}return w.payload.signatures.forEach((D,A)=>{let P=b[A];if(!(D&&P))return;N.updateInput(A,{partialSig:[[P,Hj(D,B)]]})}),N},C=async(N)=>{let F=(await import("@trezor/connect-web")).default,{hex:E}=await import("@scure/base"),G=u(Q),k=S.getNetworkForChain(B),H=[];for(let K=0;K<N.inputsLength;K++){let w=N.getInput(K),D=Wj(w);if(!w.txid||w.index===void 0||!D)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:B,error:`Input ${K} is missing prevout data required by Trezor`}});H.push({address_n:G,amount:D,prev_hash:E.encode(w.txid),prev_index:w.index,script_type:V.input,...w.sequence!==void 0?{sequence:w.sequence}:{}})}let T=o(N,k,G,O,"",B,V,X,U),b=await F.signTransaction({coin:W,inputs:H,locktime:N.lockTime,outputs:T,version:N.version});if(b.success)return b.payload.serializedTx;let R=b.payload;throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:B,code:R?.code??"unknown",error:R?.error??"unknown",payload:R}})},v=async(N,F,E="")=>{let G=(await import("@trezor/connect-web")).default,k=S.getNetworkForChain(B),H=u(Q.slice(0,3)),T=o(N,k,H,O,E,B,V,X,U),b=F.map(({hash:K,index:w,value:D,derivationIndex:A,isChange:P})=>{let x=P?1:0;return{address_n:[...H,x,A],amount:D,prev_hash:K,prev_index:w,script_type:V.input}}),R=await G.signTransaction({coin:W,inputs:b,outputs:T,refTxs:Oj(B,F)});if(R.success)return R.payload.serializedTx;throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:B,error:R.payload.error}})},m=async({utxos:N,recipient:F,assetValue:E,memo:G,feeRate:k,feeOptionKey:H})=>{let T=Z(B,M),b=k||(await T.getFeeRates())[H||j.FeeOption.Fast],{tx:R,inputs:K}=await T.createTransaction({assetValue:E,feeRate:b,fetchTxHex:B===j.Chain.Dash,memo:G,recipient:F,sender:O}),w=K.map((A)=>{let P=N.find((x)=>x.hash===A.hash&&x.index===A.index);return{...A,derivationIndex:P?.derivationIndex??0,isChange:P?.isChange??!1,txHex:P?.txHex}}),D=await v(R,w,G);return T.broadcastTx(D)},y=async({recipient:N,feeOptionKey:F,feeRate:E,memo:G,...k})=>{if(!(O&&N))throw new j.SwapKitError({errorKey:"wallet_missing_params",info:{address:O,memo:G,recipient:N,wallet:j.WalletOption.TREZOR}});let H=Z(B,M),T=E||(await H.getFeeRates())[F||j.FeeOption.Fast],b=H.createTransaction,{tx:R,inputs:K}=await b({...k,feeRate:T,fetchTxHex:B===j.Chain.Dash,memo:G,recipient:N,sender:O}),w=await $(R,K,G);return await H.broadcastTx(w)},f=Bj(B)?await Z(J,{...M,signer:{getAddress:async()=>O,signTransaction:L}}):z,h=nj(B)?async(N)=>z.broadcastTx(await C(N)):f.signAndBroadcastTransaction,e=Bj(B)?f.signTransaction:$,jj=Bj(B)?f.transfer:y;async function p({accountIndex:N}={}){let F=(await import("@trezor/connect-web")).default,E=S.getUTXOAccountPath({accountIndex:N,chain:J,derivationPath:Q}),G=j.derivationPathToString(E),k=`${B}:${G}`,H=i.get(k);if(H)return H;let T=await F.getPublicKey({coin:W,path:G}),{success:b,payload:R}=T;if(!b)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_get_public_key",info:{chain:B,error:R.error||"Unknown error"}});let K=t(R.xpub,J),w=Gj(R.xpubSegwit,J),D={accountIndex:S.getUTXOAccountIndexFromPath(E),chainCode:R.chainCode,depth:R.depth,fingerprint:R.fingerprint,path:R.serializedPath,publicKey:R.publicKey,xpub:K,xpubSegwit:w};return i.set(k,D),D}async function Qj({accountIndex:N,index:F,change:E=!1}){S.assertDerivationIndex("index",F);let G=(await import("@trezor/connect-web")).default,k=S.getUTXOAccountPath({accountIndex:N,chain:J,derivationPath:Q}),H=`${j.derivationPathToString(k)}/${Number(E)}/${F}`,{success:T,payload:b}=await G.getAddress({coin:W,...s,path:H,showOnTrezor:!1});if(!T)return;let R=b.address;if(B===j.Chain.BitcoinCash)R=(await Z(B)).stripPrefix(b.address);let K=await G.getPublicKey({coin:W,...s,path:H,scriptType:V.input,showOnTrezor:!1}),w=K.success?K.payload.publicKey:"";return{accountIndex:S.getUTXOAccountIndexFromPath(k),address:R,change:E,index:F,path:H,pubkey:w}}async function Ej({accountIndex:N,count:F,startIndex:E=0,change:G=!1}){S.assertDerivationIndex("count",F),S.assertDerivationIndex("startIndex",E);let k=(await import("@trezor/connect-web")).default,H=S.getUTXOAccountPath({accountIndex:N,chain:J,derivationPath:Q}),T=j.derivationPathToString(H),b=Array.from({length:F},(D,A)=>({coin:W,path:`${T}/${Number(G)}/${E+A}`,showOnTrezor:!1})),{success:R,payload:K}=await k.getAddress({...s,bundle:b});if(!R||!Array.isArray(K))return[];return await Promise.all(K.map(async(D,A)=>{let P=D.address;if(B===j.Chain.BitcoinCash)P=(await Z(B)).stripPrefix(D.address);return{accountIndex:S.getUTXOAccountIndexFromPath(H),address:P,change:G,index:E+A,path:`${T}/${Number(G)}/${E+A}`,pubkey:""}}))}let Kj=S.createHDWalletHelpers({chain:B,deriveAddress:Qj,getBalance:f.getBalance,getUtxos:(N)=>S.getUtxoApi(B).getUtxos({address:N,fetchTxHex:!0})});return{...f,...Kj,address:O,deriveAddressAtIndex:Qj,deriveAddresses:Ej,getExtendedPublicKey:Fj,getExtendedPublicKeyInfo:p,signAndBroadcastTransaction:h,signTransaction:e,signTransactionWithMultipleInputs:v,transfer:jj,transferFromMultipleAddresses:m}}default:throw new j.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:B,wallet:j.WalletOption.TREZOR}})}}async function kj(q,B,{accountIndex:Q}={}){if(![j.Chain.BitcoinCash,j.Chain.Bitcoin,j.Chain.Dash,j.Chain.Dogecoin,j.Chain.Litecoin,j.Chain.Zcash].includes(q))throw new j.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:q,wallet:j.WalletOption.TREZOR}});let{TrezorConnect:X}=await xj(),Z=q,U=B??j.NetworkDerivationPath[q],J=q===j.Chain.Zcash?"zcash":q.toLowerCase(),Y=S.getUTXOAccountPath({accountIndex:Q,chain:Z,derivationPath:U}),V=j.derivationPathToString(Y),M=`${q}:${V}`,W=i.get(M);if(W)return W;let{success:_,payload:O}=await X.getPublicKey({coin:J,path:V,showOnTrezor:!0});if(!_)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_get_public_key",info:{chain:q,error:O.error||"Unknown error"}});let z={accountIndex:S.getUTXOAccountIndexFromPath(Y),chainCode:O.chainCode,depth:O.depth,fingerprint:O.fingerprint,path:O.serializedPath,publicKey:O.publicKey,xpub:t(O.xpub,Z),xpubSegwit:Gj(O.xpubSegwit,Z)};return i.set(M,z),z}var Aj=a.createWallet({connect:({addChain:q,supportedChains:B,walletType:Q})=>async function(Z,U,{address:J}={}){let[Y]=j.filterSupportedChains({chains:Z,supportedChains:B,walletType:Q});if(!Y)throw new j.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:Y,wallet:j.WalletOption.TREZOR}});let V=(await import("@trezor/connect-web")).default,M=j.SKConfig.get("integrations").trezor,{connectSrc:W,coreMode:_,debug:O,interactionTimeout:z,lazyLoad:$,pendingTransportEvent:L,popup:C,transportReconnect:v,transports:m,...y}=M??{},f={...y,appName:c(M?.appName,r.appName),appUrl:c(M?.appUrl,_j()),email:c(M?.email,r.email)},h=typeof globalThis.location<"u"&&["localhost","127.0.0.1"].includes(globalThis.location.hostname),e=Lj(_)??Mj,jj=Rj(m)??Dj;if(l)await l;if(h)await V.dispose();await V.init({connectSrc:W,coreMode:e,debug:O,interactionTimeout:z,lazyLoad:$??!1,manifest:f,pendingTransportEvent:L,popup:C??!0,transportReconnect:v,transports:jj});let p=await aj({address:J,chain:Y,derivationPath:U});return q({...p,chain:Y,disconnect:hj,walletType:Q}),!0},directSigningSupport:{[j.Chain.Arbitrum]:!0,[j.Chain.Arc]:!0,[j.Chain.Aurora]:!0,[j.Chain.Avalanche]:!0,[j.Chain.Base]:!0,[j.Chain.Berachain]:!0,[j.Chain.BinanceSmartChain]:!0,[j.Chain.Bitcoin]:!0,[j.Chain.BitcoinCash]:!0,[j.Chain.Dash]:!0,[j.Chain.Ethereum]:!0,[j.Chain.Gnosis]:!0,[j.Chain.Dogecoin]:!0,[j.Chain.Litecoin]:!0,[j.Chain.Monad]:!0,[j.Chain.Optimism]:!0,[j.Chain.Polygon]:!0,[j.Chain.XLayer]:!0,[j.Chain.Zcash]:!0},getExtendedPublicKey:kj,name:"connectTrezor",supportedChains:[j.Chain.Arbitrum,j.Chain.Arc,j.Chain.Aurora,j.Chain.Avalanche,j.Chain.Base,j.Chain.Berachain,j.Chain.BinanceSmartChain,j.Chain.Bitcoin,j.Chain.BitcoinCash,j.Chain.Dash,j.Chain.Dogecoin,j.Chain.Ethereum,j.Chain.Gnosis,j.Chain.Litecoin,j.Chain.Monad,j.Chain.Optimism,j.Chain.Polygon,j.Chain.XLayer,j.Chain.Zcash],walletType:j.WalletOption.TREZOR}),tj=a.getWalletSupportedChains(Aj);
1
+ var SU=Object.create;var{getPrototypeOf:CU,defineProperty:d,getOwnPropertyNames:QU,getOwnPropertyDescriptor:zU}=Object,YU=Object.prototype.hasOwnProperty;function ZU(U){return this[U]}var fU,bU,jX=(U,j,B)=>{var Q=U!=null&&typeof U==="object";if(Q){var Z=j?fU??=new WeakMap:bU??=new WeakMap,J=Z.get(U);if(J)return J}B=U!=null?SU(CU(U)):{};let q=j||!U||!U.__esModule?d(B,"default",{value:U,enumerable:!0}):B;for(let Y of QU(U))if(!YU.call(q,Y))d(q,Y,{get:ZU.bind(U,Y),enumerable:!0});if(Q)Z.set(U,q);return q},TU=(U)=>{var j=(JU??=new WeakMap).get(U),B;if(j)return j;if(j=d({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function"){for(var Q of QU(U))if(!YU.call(j,Q))d(j,Q,{get:ZU.bind(U,Q),enumerable:!(B=zU(U,Q))||B.enumerable})}return JU.set(U,j),j},JU;var vU=(U)=>U;function IU(U,j){this[U]=vU.bind(null,j)}var $U=(U,j)=>{for(var B in j)d(U,B,{get:j[B],enumerable:!0,configurable:!0,set:IU.bind(j,B)})};var PU=(U,j)=>()=>(U&&(j=U(U=0)),j);async function MU({chain:U,indexes:j,publicKey:B,tx:Q}){let{getMissingSpendingMetadata:Z,getNetworkForChain:J}=await import("@swapkit/toolboxes/utxo");for(let{index:q,...Y}of Z({chain:U,indexes:j,network:J(U),publicKey:B,tx:Q}))Q.updateInput(q,Y)}var NU={};$U(NU,{getEVMSigner:()=>gU});async function gU({chain:U,derivationPath:j,provider:B}){let{AbstractSigner:Q}=await import("ethers");class Z extends Q{address;chain;derivationPath;provider;constructor({chain:J,derivationPath:q,provider:Y}){super(Y);this.address="",this.chain=J,this.derivationPath=q,this.provider=Y}getAddress=async()=>{if(!this.address){let q=await(await import("@trezor/connect-web")).default.ethereumGetAddress({path:I.derivationPathToString(this.derivationPath),showOnTrezor:!0});if(!q.success)throw new I.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{...q,chain:this.chain,derivationPath:this.derivationPath}});this.address=q.payload.address}return this.address};signMessage=async(J)=>{let Y=await(await import("@trezor/connect-web")).default.ethereumSignMessage({message:J,path:I.derivationPathToString(this.derivationPath)});if(!Y.success)throw new I.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...Y,chain:this.chain,derivationPath:this.derivationPath,message:J}});return Y.payload.signature};signTypedData=async(J,q,Y,M)=>{let D=(await import("@trezor/connect-web")).default,{buildEIP712DomainType:V}=await import("@swapkit/toolboxes/evm"),{TypedDataEncoder:_}=await import("ethers"),{EIP712Domain:O,...z}=q,$=M??_.from(z).primaryType,L=V(J),C={domain:J,message:Y,primaryType:$,types:{EIP712Domain:L,...z}},T=await D.ethereumSignTypedData({data:C,metamask_v4_compat:!0,path:I.derivationPathToString(this.derivationPath)});if(!T.success)throw new I.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:this.chain,error:T.payload.error}});return T.payload.signature.startsWith("0x")?T.payload.signature:`0x${T.payload.signature}`};signTransaction=async({to:J,gasLimit:q,value:Y,data:M,nonce:D,maxFeePerGas:V,maxPriorityFeePerGas:_,gasPrice:O})=>{if(!J)throw new I.SwapKitError({errorKey:"wallet_missing_params",info:{to:J}});if(!q)throw new I.SwapKitError({errorKey:"wallet_missing_params",info:{gasLimit:q}});let z=V!=null||_!=null;if(z&&!V)throw new I.SwapKitError({errorKey:"wallet_missing_params",info:{maxFeePerGas:V}});if(!(z||O))throw new I.SwapKitError({errorKey:"wallet_missing_params",info:{gasPrice:O}});let $=(await import("@trezor/connect-web")).default,{toHexString:L}=await import("@swapkit/toolboxes/evm"),C=z?{maxFeePerGas:L(BigInt(V?.toString()||0)),maxPriorityFeePerGas:L(BigInt(_?.toString()||0))}:O&&{gasPrice:L(BigInt(O?.toString()||0))}||{gasPrice:"0x0"},T=L(BigInt(D||await this.provider.getTransactionCount(await this.getAddress(),"pending"))),m={chainId:Number.parseInt(I.ChainToChainId[this.chain],10),data:M?.toString()||"0x",gasLimit:L(BigInt(q?.toString()||0)),nonce:T,to:J.toString(),value:L(BigInt(Y?.toString()||0)),...C},{success:y,payload:f}=await $.ethereumSignTransaction({path:I.derivationPathToString(this.derivationPath),transaction:m});if(!y)throw new I.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...f,chain:this.chain,derivationPath:this.derivationPath}});let h=f.serializedTx?f.serializedTx.startsWith("0x")?f.serializedTx:`0x${f.serializedTx}`:void 0;if(!h)throw new I.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:this.chain,derivationPath:this.derivationPath}});return h};connect=(J)=>{if(!J)throw new I.SwapKitError({errorKey:"wallet_provider_not_found",info:{chain:this.chain,derivationPath:this.derivationPath,wallet:I.WalletOption.TREZOR}});return new Z({chain:this.chain,derivationPath:this.derivationPath,provider:J})}}return new Z({chain:U,derivationPath:j,provider:B})}var I;var VU=PU(()=>{I=require("@swapkit/helpers")});var XX={};$U(XX,{trezorWallet:()=>FU,normalizeTrezorSignature:()=>HU,normalizeTrezorExtendedPublicKey:()=>t,getTrezorExtendedPublicKey:()=>AU,TREZOR_SUPPORTED_CHAINS:()=>UX});module.exports=TU(XX);var n=require("@scure/bip32"),X=require("@swapkit/helpers"),S=require("@swapkit/toolboxes/utxo"),g=require("@swapkit/utxo-signer"),a=require("@swapkit/wallet-core"),yU=new Set(["auto","iframe","popup","suite-desktop","suite-web"]),hU=new Set(["BridgeTransport","WebUsbTransport","NodeUsbTransport"]),DU="auto",r={appName:"SwapKit",appUrl:"https://swapkit.dev",email:"support@swapkit.dev"},LU=["WebUsbTransport"],s={keepSession:!0},i=new Map,l,xU=[g.NETWORKS.bitcoin.bip32,g.NETWORKS.bitcoinCash.bip32,g.NETWORKS.dash.bip32,g.NETWORKS.dogecoin.bip32,g.NETWORKS.litecoin.bip32];async function lU(){i.clear();let U=(async()=>{try{await(await import("@trezor/connect-web")).default.dispose()}catch{}})();if(l=U,await U,l===U)l=void 0}function RU(U){return typeof U==="string"&&yU.has(U)?U:void 0}function _U(U){if(!Array.isArray(U))return;let j=U.filter((B)=>typeof B==="string"&&hU.has(B));return j.length>0?j:void 0}function u(U,j){return typeof U==="string"&&U.trim()?U:j}function GU(){return typeof globalThis.location<"u"&&globalThis.location.origin?globalThis.location.origin:r.appUrl}async function pU(){let U=(await import("@trezor/connect-web")).default,j=X.SKConfig.get("integrations").trezor,{connectSrc:B,coreMode:Q,debug:Z,interactionTimeout:J,lazyLoad:q,pendingTransportEvent:Y,popup:M,transportReconnect:D,transports:V,..._}=j??{},O={..._,appName:u(j?.appName,r.appName),appUrl:u(j?.appUrl,GU()),email:u(j?.email,r.email)},z=typeof globalThis.location<"u"&&["localhost","127.0.0.1"].includes(globalThis.location.hostname),$=RU(Q)??DU,L=_U(V)??LU;if(l)await l;if(z)await U.dispose();return await U.init({connectSrc:B,coreMode:$,debug:Z,interactionTimeout:J,lazyLoad:q??!1,manifest:O,pendingTransportEvent:Y,popup:M??!0,transportReconnect:D,transports:L}),{coreMode:$,isLocalhost:z,popup:M??!0,TrezorConnect:U}}function t(U,j){let B=S.getNetworkForChain(j).bip32,Q=[B,...xU.filter((J)=>J.public!==B.public||J.private!==B.private)],Z;for(let J of Q)try{let q=n.HDKey.fromExtendedKey(U,J);if(!(q.publicKey&&q.chainCode))throw Error("Extended key is missing public key data");return new n.HDKey({chainCode:q.chainCode,depth:q.depth,index:q.index,parentFingerprint:q.parentFingerprint,publicKey:q.publicKey,versions:B}).publicExtendedKey}catch(q){Z=q}throw Z instanceof Error?Z:Error("Unable to parse Trezor extended public key")}function kU(U,j){if(!U)return;try{return t(U,j)}catch{return U}}function qU(U){if(U.length<2||U[0]!==106)return null;let j=U[1];if(j===void 0||U.length<2+j)return null;return Buffer.from(U.slice(2,2+j)).toString("hex")}function uU(U){switch(U[0]){case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS",utxo:X.UTXOScriptType.P2WPKH};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS",utxo:X.UTXOScriptType.P2SH_P2WPKH};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS",utxo:X.UTXOScriptType.P2PKH};default:return null}}function p(U){return U.map((j,B)=>B<3?(j|2147483648)>>>0:j)}function cU(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 dU(U){if(!Array.isArray(U.bip32Derivation))return;let[j]=U.bip32Derivation;return cU(j)?j:void 0}function OU(U){if(U.witnessUtxo?.amount!==void 0)return U.witnessUtxo.amount.toString();let j=U.index!==void 0?U.nonWitnessUtxo?.outputs?.[U.index]:void 0;if(j?.amount!==void 0)return j.amount.toString();return}function HU(U,j){let B=Buffer.from(U,"hex"),Q=B[1]!==void 0?B[1]+2:void 0;if(Q!==void 0&&B.length===Q)return new Uint8Array([...B,j===X.Chain.BitcoinCash?g.BCHSigHash.ALL:1]);return new Uint8Array(B)}function sU(U,j,B){let Q=[];for(let Z=0;Z<U.inputsLength;Z++){let J=U.getInput(Z);Q.push({address_n:j,amount:J.value.toString(),prev_hash:B.encode(J.txid),prev_index:J.index,script_type:"SPENDADDRESS"})}return Q}async function rU(U,j,B,Q){let Z=[];for(let J=0;J<U.outputsLength;J++){let q=U.getOutput(J),Y=q.scriptPubkey;if(q.value===0n&&Y?.length>0&&Y[0]===106){let V=qU(Y);if(V){Z.push({amount:"0",op_return_data:V,script_type:"PAYTOOPRETURN"});continue}throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:Q,error:"Malformed OP_RETURN output cannot be signed"}})}let M=await iU(Y);if(!M&&q.value>0n)throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:Q,error:"Unable to decode output address from scriptPubkey"}});if(M===B)Z.push({address_n:j,amount:q.value.toString(),script_type:"PAYTOADDRESS"});else Z.push({address:M,amount:q.value.toString(),script_type:"PAYTOADDRESS"})}return Z}async function iU(U){try{let{OutScript:j,Address:B}=await import("@swapkit/utxo-signer"),Q=j.decode(U);if(Q.type==="pkh"||Q.type==="pk")return B(g.NETWORKS.zcash).encode(Q)}catch{}return}async function oU(U,j){let{ZcashTransaction:B,Script:Q}=await import("@swapkit/utxo-signer"),Z=B.fromHex(U,{allowUnknownOutputs:!0}),J=j.clone();for(let q=0;q<Z.inputsLength;q++){let M=Z.getInput(q).script;if(M&&M.length>0){let D=Q.decode(M);if(D.length>=2)J.addSignature(q,D[1],D[0])}}return J}function nU(U,j,B,Q){let Z=[];for(let J=0;J<U.inputsLength;J++){let q=U.getInput(J),Y=j[J];Z.push({address_n:B,amount:Y?.value?.toString()||q.value?.toString()||"0",prev_hash:q.txid?Q.encode(q.txid):"",prev_index:q.index??0,script_type:"SPENDADDRESS"})}return Z}function aU(U,j,B,Q){let Z=[];for(let J=0;J<U.outputsLength;J++){let q=U.getOutput(J),Y=U.getOutputAddress(J,g.NETWORKS.zcash),M=q.script;if(q.amount===0n&&M?.length>0&&M[0]===106){let _=qU(M);if(_){Z.push({amount:"0",op_return_data:_,script_type:"PAYTOOPRETURN"});continue}continue}if(!Y&&(q.amount??0n)>0n)throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:Q,error:"Unable to decode output address"}});let V=Y===B||!Y?{address_n:j}:{address:Y};Z.push({...V,amount:q.amount?.toString()||"0",script_type:"PAYTOADDRESS"})}return Z}function o(U,j,B,Q,Z,J,q,Y,M){let D=[];for(let V=0;V<U.outputsLength;V++){let _=U.getOutput(V),O=U.getOutputAddress(V,j);if(!O){let C=_.script?qU(_.script):null;if(C!==null||Z){D.push({amount:"0",op_return_data:C??Buffer.from(Z).toString("hex"),script_type:"PAYTOOPRETURN"});continue}throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:J,error:"Unable to decode output address from scriptPubkey"}})}if(_.amount===void 0)throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:J,error:"Output amount is missing"}});let z=J===X.Chain.BitcoinCash,$=z?Y(O):O,L=z?M($)===M(Q):$===Q;D.push(L?{address_n:B,amount:_.amount.toString(),script_type:q.output}:{address:$,amount:_.amount.toString(),script_type:"PAYTOADDRESS"})}return D}function jU(U){return U===X.Chain.Bitcoin||U===X.Chain.Litecoin}function tU(U){return U===X.Chain.BitcoinCash||U===X.Chain.Dash||U===X.Chain.Dogecoin}function WU(U,j){if(U!==X.Chain.Dash)return;let B=new Map;for(let Q of j){if(!Q.txHex)throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:U,error:`Missing previous transaction hex for ${Q.hash}:${Q.index}`}});B.set(Q.hash,{details:{},hex:Q.txHex,txid:Q.hash})}return[...B.values()]}async function eU({address:U,chain:j,derivationPath:B}){switch(j){case X.Chain.Arbitrum:case X.Chain.Arc:case X.Chain.Aurora:case X.Chain.Avalanche:case X.Chain.Base:case X.Chain.Berachain:case X.Chain.BinanceSmartChain:case X.Chain.Ethereum:case X.Chain.Gnosis:case X.Chain.Monad:case X.Chain.Optimism:case X.Chain.Polygon:case X.Chain.XLayer:{let{getProvider:Q,getEvmToolboxAsync:Z}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:J}=await Promise.resolve().then(() => (VU(),NU)),q=await Q(j),Y=await J({chain:j,derivationPath:B,provider:q}),M=await Y.getAddress();return{...await Z(j,{provider:q,signer:Y}),address:M}}case X.Chain.Zcash:{let{getUtxoToolbox:Q}=await import("@swapkit/toolboxes/utxo"),Z=X.derivationPathToString(B),q=U??await(async()=>{let $=(await import("@trezor/connect-web")).default,{success:L,payload:C}=await $.getAddress({coin:"zcash",path:Z});if(!L)throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:j,error:C.error||"Unknown error"}});return C.address})(),Y=async($)=>{let L=(await import("@trezor/connect-web")).default,{hex:C}=await import("@scure/base"),T=p(B),m=$.getGlobal(),y=sU($,T,C),f=await rU($,T,q,j),h=await L.signTransaction({branchId:m.consensusBranchId,coin:"zcash",expiry:m.expiryHeight,inputs:y,locktime:m.lockTime,outputs:f,overwintered:!0,version:m.txVersion,versionGroupId:m.versionGroupId});if(!h.success)throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:j,error:h.payload.error}});return{serializedTx:h.payload.serializedTx,signedPczt:await oU(h.payload.serializedTx,$)}},M=async($)=>{let{ZcashTransaction:L}=await import("@swapkit/utxo-signer");return L.fromHex($,{allowUnknownOutputs:!0})},D=async($)=>{let L=(await import("@trezor/connect-web")).default,{hex:C}=await import("@scure/base"),T=p(B),m=nU($,[],T,C),y=aU($,T,q,j),f=await L.signTransaction({branchId:$.consensusBranchId,coin:"zcash",expiry:0,inputs:m,locktime:0,outputs:y,overwintered:!0,version:4,versionGroupId:g.ZcashVersionGroupId.SAPLING});if(f.success)return{serializedTx:f.payload.serializedTx,signedTx:await M(f.payload.serializedTx)};throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:j,error:f.payload.error}})},V={getAddress:async()=>q,signPCZT:async($)=>{return(await Y($)).signedPczt},signTransaction:async($)=>{if("toPCZT"in $){let{serializedTx:L}=await Y($.toPCZT());return M(L)}if("getGlobal"in $){let{serializedTx:L}=await Y($);return M(L)}return(await D($)).signedTx}},_=Q(X.Chain.Zcash,{signer:V}),O=async($)=>{if("toPCZT"in $){let{serializedTx:C}=await Y($.toPCZT());return _.broadcastTx(C)}if("getGlobal"in $){let{serializedTx:C}=await Y($);return _.broadcastTx(C)}let{serializedTx:L}=await D($);return _.broadcastTx(L)},z=async({recipient:$,feeOptionKey:L,feeRate:C,...T})=>{if(!(q&&$))throw new X.SwapKitError({errorKey:"wallet_missing_params",info:{address:q,recipient:$,wallet:X.WalletOption.TREZOR}});let m=C||(await _.getFeeRates())[L||X.FeeOption.Fast],{tx:y}=await _.createTransaction({...T,feeRate:m,fetchTxHex:!1,recipient:$,sender:q}),{serializedTx:f}=await D(y);return _.broadcastTx(f)};return{..._,address:q,signAndBroadcastTransaction:O,signPCZT:V.signPCZT,transfer:z}}case X.Chain.Bitcoin:case X.Chain.BitcoinCash:case X.Chain.Dash:case X.Chain.Dogecoin:case X.Chain.Litecoin:{let EU=function(N={}){return c(N)},{toCashAddress:Q,getUtxoToolbox:Z,stripPrefix:J}=await import("@swapkit/toolboxes/utxo"),q=j,Y=uU(B);if(!Y)throw new X.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:B}});let M=Y,D={scriptType:Y.utxo},V=j.toLowerCase(),O=U??await(async(N=B)=>{let F=(await import("@trezor/connect-web")).default,E=X.derivationPathToString(N),{success:G,payload:H}=await F.getAddress({coin:V,...s,path:E,showOnTrezor:!1});if(!G)throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:j,error:H.error||"Unknown error"}});if(j===X.Chain.BitcoinCash)return J(H.address);return H.address})(),z=Z(j,D),$=async(N,F,E="")=>{let G=(await import("@trezor/connect-web")).default,H=p(B),k=S.getNetworkForChain(j),v=o(N,k,H,O,E,j,M,Q,J),b=F.map(({hash:K,index:W,value:A})=>({address_n:H,amount:A,prev_hash:K,prev_index:W,script_type:M.input})),R=await G.signTransaction({coin:V,inputs:b,outputs:v,refTxs:WU(j,F)});if(R.success)return R.payload.serializedTx;let w=R.payload;throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:j,code:w?.code??"unknown",error:w?.error??"unknown",payload:w}})},L=async(N)=>{let F=(await import("@trezor/connect-web")).default,{hex:E}=await import("@scure/base"),G=p(B),H=S.getNetworkForChain(j),k;async function v(){if(!k){let W=await c(),P=n.HDKey.fromExtendedKey(W.xpub,H.bip32).derive(`m/${Number(B[3]??0)}/${Number(B[4]??0)}`);if(!P.publicKey)throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_get_public_key",info:{chain:j,error:"Unable to derive Trezor leaf public key from account xpub"}});k=P.publicKey}return[k,{fingerprint:0,path:G}]}let b=[],R=[];for(let W=0;W<N.inputsLength;W++){let A=N.getInput(W),P=dU(A),x=P??await v(),XU=OU(A);if(!A.txid||A.index===void 0||!XU)throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:j,error:`Input ${W} is missing prevout data required by Trezor`}});if(b[W]=x[0],!P)N.updateInput(W,{bip32Derivation:[x]});await MU({chain:q,indexes:[W],publicKey:x[0],tx:N}),R.push({address_n:x[1].path,amount:XU,prev_hash:E.encode(A.txid),prev_index:A.index,script_type:M.input,...A.sequence!==void 0?{sequence:A.sequence}:{}})}let w=o(N,H,G,O,"",j,M,Q,J),K=await F.signTransaction({coin:V,...s,inputs:R,locktime:N.lockTime,outputs:w,version:N.version});if(!K.success){let W=K.payload;throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:j,code:W?.code??"unknown",error:W?.error??"unknown",payload:W}})}return K.payload.signatures.forEach((W,A)=>{let P=b[A];if(!(W&&P))return;N.updateInput(A,{partialSig:[[P,HU(W,j)]]})}),N},C=async(N)=>{let F=(await import("@trezor/connect-web")).default,{hex:E}=await import("@scure/base"),G=p(B),H=S.getNetworkForChain(j),k=[];for(let w=0;w<N.inputsLength;w++){let K=N.getInput(w),W=OU(K);if(!K.txid||K.index===void 0||!W)throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:j,error:`Input ${w} is missing prevout data required by Trezor`}});k.push({address_n:G,amount:W,prev_hash:E.encode(K.txid),prev_index:K.index,script_type:M.input,...K.sequence!==void 0?{sequence:K.sequence}:{}})}let v=o(N,H,G,O,"",j,M,Q,J),b=await F.signTransaction({coin:V,inputs:k,locktime:N.lockTime,outputs:v,version:N.version});if(b.success)return b.payload.serializedTx;let R=b.payload;throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:j,code:R?.code??"unknown",error:R?.error??"unknown",payload:R}})},T=async(N,F,E="")=>{let G=(await import("@trezor/connect-web")).default,H=S.getNetworkForChain(j),k=p(B.slice(0,3)),v=o(N,H,k,O,E,j,M,Q,J),b=F.map(({hash:w,index:K,value:W,derivationIndex:A,isChange:P})=>{let x=P?1:0;return{address_n:[...k,x,A],amount:W,prev_hash:w,prev_index:K,script_type:M.input}}),R=await G.signTransaction({coin:V,inputs:b,outputs:v,refTxs:WU(j,F)});if(R.success)return R.payload.serializedTx;throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:j,error:R.payload.error}})},m=async({utxos:N,recipient:F,assetValue:E,memo:G,feeRate:H,feeOptionKey:k})=>{let v=Z(j,D),b=H||(await v.getFeeRates())[k||X.FeeOption.Fast],{tx:R,inputs:w}=await v.createTransaction({assetValue:E,feeRate:b,fetchTxHex:j===X.Chain.Dash,memo:G,recipient:F,sender:O}),K=w.map((A)=>{let P=N.find((x)=>x.hash===A.hash&&x.index===A.index);return{...A,derivationIndex:P?.derivationIndex??0,isChange:P?.isChange??!1,txHex:P?.txHex}}),W=await T(R,K,G);return v.broadcastTx(W)},y=async({recipient:N,feeOptionKey:F,feeRate:E,memo:G,...H})=>{if(!(O&&N))throw new X.SwapKitError({errorKey:"wallet_missing_params",info:{address:O,memo:G,recipient:N,wallet:X.WalletOption.TREZOR}});let k=Z(j,D),v=E||(await k.getFeeRates())[F||X.FeeOption.Fast],b=k.createTransaction,{tx:R,inputs:w}=await b({...H,feeRate:v,fetchTxHex:j===X.Chain.Dash,memo:G,recipient:N,sender:O}),K=await $(R,w,G);return await k.broadcastTx(K)},f=jU(j)?await Z(q,{...D,signer:{getAddress:async()=>O,signTransaction:L}}):z,h=tU(j)?async(N)=>z.broadcastTx(await C(N)):f.signAndBroadcastTransaction,e=jU(j)?f.signTransaction:$,UU=jU(j)?f.transfer:y;async function c({accountIndex:N}={}){let F=(await import("@trezor/connect-web")).default,E=S.getUTXOAccountPath({accountIndex:N,chain:q,derivationPath:B}),G=X.derivationPathToString(E),H=`${j}:${G}`,k=i.get(H);if(k)return k;let v=await F.getPublicKey({coin:V,path:G}),{success:b,payload:R}=v;if(!b)throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_get_public_key",info:{chain:j,error:R.error||"Unknown error"}});let w=t(R.xpub,q),K=kU(R.xpubSegwit,q),W={accountIndex:S.getUTXOAccountIndexFromPath(E),chainCode:R.chainCode,depth:R.depth,fingerprint:R.fingerprint,path:R.serializedPath,publicKey:R.publicKey,xpub:w,xpubSegwit:K};return i.set(H,W),W}async function BU({accountIndex:N,index:F,change:E=!1}){S.assertDerivationIndex("index",F);let G=(await import("@trezor/connect-web")).default,H=S.getUTXOAccountPath({accountIndex:N,chain:q,derivationPath:B}),k=`${X.derivationPathToString(H)}/${Number(E)}/${F}`,{success:v,payload:b}=await G.getAddress({coin:V,...s,path:k,showOnTrezor:!1});if(!v)return;let R=b.address;if(j===X.Chain.BitcoinCash)R=(await Z(j)).stripPrefix(b.address);let w=await G.getPublicKey({coin:V,...s,path:k,scriptType:M.input,showOnTrezor:!1}),K=w.success?w.payload.publicKey:"";return{accountIndex:S.getUTXOAccountIndexFromPath(H),address:R,change:E,index:F,path:k,pubkey:K}}async function wU({accountIndex:N,count:F,startIndex:E=0,change:G=!1}){S.assertDerivationIndex("count",F),S.assertDerivationIndex("startIndex",E);let H=(await import("@trezor/connect-web")).default,k=S.getUTXOAccountPath({accountIndex:N,chain:q,derivationPath:B}),v=X.derivationPathToString(k),b=Array.from({length:F},(W,A)=>({coin:V,path:`${v}/${Number(G)}/${E+A}`,showOnTrezor:!1})),{success:R,payload:w}=await H.getAddress({...s,bundle:b});if(!R||!Array.isArray(w))return[];return await Promise.all(w.map(async(W,A)=>{let P=W.address;if(j===X.Chain.BitcoinCash)P=(await Z(j)).stripPrefix(W.address);return{accountIndex:S.getUTXOAccountIndexFromPath(k),address:P,change:G,index:E+A,path:`${v}/${Number(G)}/${E+A}`,pubkey:""}}))}let KU=S.createHDWalletHelpers({chain:j,deriveAddress:BU,getBalance:f.getBalance,getUtxos:(N)=>S.getUtxoApi(j).getUtxos({address:N,fetchTxHex:!0})});return{...f,...KU,address:O,deriveAddressAtIndex:BU,deriveAddresses:wU,getExtendedPublicKey:EU,getExtendedPublicKeyInfo:c,signAndBroadcastTransaction:h,signTransaction:e,signTransactionWithMultipleInputs:T,transfer:UU,transferFromMultipleAddresses:m}}default:throw new X.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:j,wallet:X.WalletOption.TREZOR}})}}async function AU(U,j,{accountIndex:B}={}){if(![X.Chain.BitcoinCash,X.Chain.Bitcoin,X.Chain.Dash,X.Chain.Dogecoin,X.Chain.Litecoin,X.Chain.Zcash].includes(U))throw new X.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:U,wallet:X.WalletOption.TREZOR}});let{TrezorConnect:Q}=await pU(),Z=U,J=j??X.NetworkDerivationPath[U],q=U===X.Chain.Zcash?"zcash":U.toLowerCase(),Y=S.getUTXOAccountPath({accountIndex:B,chain:Z,derivationPath:J}),M=X.derivationPathToString(Y),D=`${U}:${M}`,V=i.get(D);if(V)return V;let{success:_,payload:O}=await Q.getPublicKey({coin:q,path:M,showOnTrezor:!0});if(!_)throw new X.SwapKitError({errorKey:"wallet_trezor_failed_to_get_public_key",info:{chain:U,error:O.error||"Unknown error"}});let z={accountIndex:S.getUTXOAccountIndexFromPath(Y),chainCode:O.chainCode,depth:O.depth,fingerprint:O.fingerprint,path:O.serializedPath,publicKey:O.publicKey,xpub:t(O.xpub,Z),xpubSegwit:kU(O.xpubSegwit,Z)};return i.set(D,z),z}var FU=a.createWallet({connect:({addChain:U,supportedChains:j,walletType:B})=>async function(Z,J,{address:q}={}){let[Y]=X.filterSupportedChains({chains:Z,supportedChains:j,walletType:B});if(!Y)throw new X.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:Y,wallet:X.WalletOption.TREZOR}});let M=(await import("@trezor/connect-web")).default,D=X.SKConfig.get("integrations").trezor,{connectSrc:V,coreMode:_,debug:O,interactionTimeout:z,lazyLoad:$,pendingTransportEvent:L,popup:C,transportReconnect:T,transports:m,...y}=D??{},f={...y,appName:u(D?.appName,r.appName),appUrl:u(D?.appUrl,GU()),email:u(D?.email,r.email)},h=typeof globalThis.location<"u"&&["localhost","127.0.0.1"].includes(globalThis.location.hostname),e=RU(_)??DU,UU=_U(m)??LU;if(l)await l;if(h)await M.dispose();await M.init({connectSrc:V,coreMode:e,debug:O,interactionTimeout:z,lazyLoad:$??!1,manifest:f,pendingTransportEvent:L,popup:C??!0,transportReconnect:T,transports:UU});let c=await eU({address:q,chain:Y,derivationPath:J});return U({...c,chain:Y,disconnect:lU,walletType:B}),!0},directSigningSupport:{[X.Chain.Arbitrum]:!0,[X.Chain.Arc]:!0,[X.Chain.Aurora]:!0,[X.Chain.Avalanche]:!0,[X.Chain.Base]:!0,[X.Chain.Berachain]:!0,[X.Chain.BinanceSmartChain]:!0,[X.Chain.Bitcoin]:!0,[X.Chain.BitcoinCash]:!0,[X.Chain.Dash]:!0,[X.Chain.Ethereum]:!0,[X.Chain.Gnosis]:!0,[X.Chain.Dogecoin]:!0,[X.Chain.Litecoin]:!0,[X.Chain.Monad]:!0,[X.Chain.Optimism]:!0,[X.Chain.Polygon]:!0,[X.Chain.XLayer]:!0,[X.Chain.Zcash]:!0},getExtendedPublicKey:AU,name:"connectTrezor",supportedChains:[X.Chain.Arbitrum,X.Chain.Arc,X.Chain.Aurora,X.Chain.Avalanche,X.Chain.Base,X.Chain.Berachain,X.Chain.BinanceSmartChain,X.Chain.Bitcoin,X.Chain.BitcoinCash,X.Chain.Dash,X.Chain.Dogecoin,X.Chain.Ethereum,X.Chain.Gnosis,X.Chain.Litecoin,X.Chain.Monad,X.Chain.Optimism,X.Chain.Polygon,X.Chain.XLayer,X.Chain.Zcash],walletType:X.WalletOption.TREZOR}),UX=a.getWalletSupportedChains(FU);
2
2
 
3
- //# debugId=314C7BF7F7A7033564756E2164756E21
3
+ //# debugId=8D40271199792CCA64756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map