@tcswap/wallet-hardware 4.2.16 → 4.2.17

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.
@@ -0,0 +1,5 @@
1
+ var d=((a)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(b,c)=>(typeof require<"u"?require:b)[c]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});
2
+ export{d as c};
3
+
4
+ //# debugId=EE38492480DB810064756E2164756E21
5
+ //# sourceMappingURL=chunk-25q3rr1d.js.map
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "EE38492480DB810064756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,4 @@
1
+ import{b as z}from"./chunk-1w9rn6fj.js";import"./chunk-25q3rr1d.js";import{Chain as W,DerivationPath as X,derivationPathToString as Y}from"@tcswap/helpers";import{getRippleToolbox as Z}from"@tcswap/toolboxes/ripple";var w=async({sdk:E,derivationPath:F})=>{let G=F?Y(F):`${X[W.Ripple]}/0`,{address:j}=await E.address.xrpGetAddress({address_n:z(G)}),y=await Z({signer:{getAddress:()=>Promise.resolve(j),signTransaction:()=>{throw Error("signTransaction not supported via toolbox")}}});return{...y,address:j,getAddress:()=>j,transfer:async({recipient:I,assetValue:M,memo:q})=>{let f=await y.createTransaction({assetValue:M,memo:q,recipient:I,sender:j}),O={type:"auth/StdTx",value:{fee:{amount:[{amount:"1000",denom:"drop"}],gas:"28000"},memo:q&&q.length>0?q:"",msg:[{type:"ripple-sdk/MsgSend",value:{amount:[{amount:f.Amount,denom:"drop"}],from_address:j,to_address:I}}],signatures:null}},Q={addressNList:z(G),flags:f.Flags===0?void 0:f.Flags,lastLedgerSequence:f.LastLedgerSequence?.toString(),payment:{amount:f.Amount,destination:f.Destination,destinationTag:(f.DestinationTag??"0").toString()},sequence:(f.Sequence??0).toString(),tx:O},J=JSON.parse(await E.xrp.xrpSignTransaction(Q)),K=J.tx_blob??J.value?.signatures?.[0]?.serializedTx;if(!K)throw Error("KeepKey XRP sign failed");let U=Buffer.from(K,"base64").toString("hex");return y.broadcastTransaction(U)}}};export{w as rippleWalletMethods};
2
+
3
+ //# debugId=4EEEC896E459ADCE64756E2164756E21
4
+ //# sourceMappingURL=chunk-9pax4q2c.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/keepkey/chains/ripple.ts"],
4
+ "sourcesContent": [
5
+ "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n type GenericTransferParams,\n} from \"@tcswap/helpers\";\nimport { getRippleToolbox } from \"@tcswap/toolboxes/ripple\";\nimport { bip32ToAddressNList } from \"../coins\";\n\nexport const rippleWalletMethods = async ({\n sdk,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n derivationPath?: DerivationPathArray;\n}) => {\n // Derivation path handling (default to standard XRP 44'/144'/0'/0/0)\n const derivationPathString = derivationPath\n ? derivationPathToString(derivationPath)\n : `${DerivationPath[Chain.Ripple]}/0`;\n\n // Fetch address from KeepKey\n const { address } = await (sdk as any).address.xrpGetAddress({\n address_n: bip32ToAddressNList(derivationPathString),\n });\n\n // Inject minimal signer so toolbox's address helpers work\n const signer = {\n getAddress: () => Promise.resolve(address),\n signTransaction: () => {\n throw new Error(\"signTransaction not supported via toolbox\");\n },\n };\n\n const toolbox = await getRippleToolbox({ signer });\n\n const transfer = async ({ recipient, assetValue, memo }: GenericTransferParams) => {\n // Build XRPL Payment tx using toolbox helper\n const tx = await toolbox.createTransaction({ assetValue, memo, recipient, sender: address });\n\n // Convert toolbox Payment tx into KeepKey StdTx wrapper (KeepKey-specific format)\n const stdTx = {\n type: \"auth/StdTx\",\n value: {\n fee: { amount: [{ amount: \"1000\", denom: \"drop\" }], gas: \"28000\" },\n memo: memo && memo.length > 0 ? memo : \"\",\n msg: [\n {\n type: \"ripple-sdk/MsgSend\",\n value: { amount: [{ amount: tx.Amount, denom: \"drop\" }], from_address: address, to_address: recipient },\n },\n ],\n signatures: null,\n },\n };\n\n const unsignedTx = {\n addressNList: bip32ToAddressNList(derivationPathString),\n flags: tx.Flags === 0 ? undefined : tx.Flags,\n lastLedgerSequence: tx.LastLedgerSequence?.toString(),\n payment: {\n amount: tx.Amount,\n destination: tx.Destination,\n destinationTag: (tx.DestinationTag ?? \"0\").toString(),\n },\n sequence: (tx.Sequence ?? 0).toString(),\n tx: stdTx,\n } as any;\n\n // Sign with KeepKey\n const responseSign = JSON.parse(await (sdk as any).xrp.xrpSignTransaction(unsignedTx));\n\n // keepkey-sdk may return either { tx_blob } or StdTx with Base64 serializedTx\n const txBlob: string | undefined =\n (responseSign as any).tx_blob ?? (responseSign as any).value?.signatures?.[0]?.serializedTx;\n if (!txBlob) throw new Error(\"KeepKey XRP sign failed\");\n\n const buffer = Buffer.from(txBlob, \"base64\");\n const txBlobHex = buffer.toString(\"hex\");\n\n // Broadcast signed tx via toolbox\n return toolbox.broadcastTransaction(txBlobHex);\n };\n\n return { ...toolbox, address, getAddress: () => address, transfer };\n};\n"
6
+ ],
7
+ "mappings": "0EACA,UACE,oBACA,4BAEA,wBAGF,2BAAS,iCAGF,IAAM,EAAsB,OACjC,MACA,oBAII,CAEJ,IAAM,EAAuB,EACzB,EAAuB,CAAc,EACrC,GAAG,EAAe,EAAM,aAGpB,WAAY,MAAO,EAAY,QAAQ,cAAc,CAC3D,UAAW,EAAoB,CAAoB,CACrD,CAAC,EAUK,EAAU,MAAM,EAAiB,CAAE,OAP1B,CACb,WAAY,IAAM,QAAQ,QAAQ,CAAO,EACzC,gBAAiB,IAAM,CACrB,MAAU,MAAM,2CAA2C,EAE/D,CAEgD,CAAC,EAkDjD,MAAO,IAAK,EAAS,UAAS,WAAY,IAAM,EAAS,SAhDxC,OAAS,YAAW,aAAY,UAAkC,CAEjF,IAAM,EAAK,MAAM,EAAQ,kBAAkB,CAAE,aAAY,OAAM,YAAW,OAAQ,CAAQ,CAAC,EAGrF,EAAQ,CACZ,KAAM,aACN,MAAO,CACL,IAAK,CAAE,OAAQ,CAAC,CAAE,OAAQ,OAAQ,MAAO,MAAO,CAAC,EAAG,IAAK,OAAQ,EACjE,KAAM,GAAQ,EAAK,OAAS,EAAI,EAAO,GACvC,IAAK,CACH,CACE,KAAM,qBACN,MAAO,CAAE,OAAQ,CAAC,CAAE,OAAQ,EAAG,OAAQ,MAAO,MAAO,CAAC,EAAG,aAAc,EAAS,WAAY,CAAU,CACxG,CACF,EACA,WAAY,IACd,CACF,EAEM,EAAa,CACjB,aAAc,EAAoB,CAAoB,EACtD,MAAO,EAAG,QAAU,EAAI,OAAY,EAAG,MACvC,mBAAoB,EAAG,oBAAoB,SAAS,EACpD,QAAS,CACP,OAAQ,EAAG,OACX,YAAa,EAAG,YAChB,gBAAiB,EAAG,gBAAkB,KAAK,SAAS,CACtD,EACA,UAAW,EAAG,UAAY,GAAG,SAAS,EACtC,GAAI,CACN,EAGM,EAAe,KAAK,MAAM,MAAO,EAAY,IAAI,mBAAmB,CAAU,CAAC,EAG/E,EACH,EAAqB,SAAY,EAAqB,OAAO,aAAa,IAAI,aACjF,GAAI,CAAC,EAAQ,MAAU,MAAM,yBAAyB,EAGtD,IAAM,EADS,OAAO,KAAK,EAAQ,QAAQ,EAClB,SAAS,KAAK,EAGvC,OAAO,EAAQ,qBAAqB,CAAS,EAGmB",
8
+ "debugId": "4EEEC896E459ADCE64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,4 @@
1
+ var j=require("@tcswap/helpers");async function y({chain:Z,derivationPath:$,provider:A}){let{AbstractSigner:O,Signature:W}=await import("ethers");class R extends O{address;chain;derivationPath;provider;constructor({chain:k,derivationPath:q,provider:B}){super(B);this.address="",this.chain=k,this.derivationPath=q,this.provider=B}getAddress=async()=>{if(!this.address){let q=await(await import("@trezor/connect-web")).default.ethereumGetAddress({path:j.derivationPathToString(this.derivationPath),showOnTrezor:!0});if(!q.success)throw new j.USwapError({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(k)=>{let B=await(await import("@trezor/connect-web")).default.ethereumSignMessage({message:k,path:j.derivationPathToString(this.derivationPath)});if(!B.success)throw new j.USwapError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...B,chain:this.chain,derivationPath:this.derivationPath,message:k}});return B.payload.signature};signTypedData(){throw new j.USwapError("wallet_trezor_method_not_supported",{method:"signTypedData"})}signTransaction=async({to:k,gasLimit:q,value:B,data:N,nonce:f,maxFeePerGas:K,maxPriorityFeePerGas:M,gasPrice:Q})=>{if(!k)throw new j.USwapError({errorKey:"wallet_missing_params",info:{to:k}});if(!q)throw new j.USwapError({errorKey:"wallet_missing_params",info:{gasLimit:q}});let J=K&&M;if(J&&!K)throw new j.USwapError({errorKey:"wallet_missing_params",info:{maxFeePerGas:K}});if(J&&!M)throw new j.USwapError({errorKey:"wallet_missing_params",info:{maxPriorityFeePerGas:M}});if(!(J||Q))throw new j.USwapError({errorKey:"wallet_missing_params",info:{gasPrice:Q}});let C=(await import("@trezor/connect-web")).default,{toHexString:D}=await import("@tcswap/toolboxes/evm"),{Transaction:_}=await import("ethers"),H=J?{maxFeePerGas:D(BigInt(K?.toString()||0)),maxPriorityFeePerGas:D(BigInt(M?.toString()||0))}:Q&&{gasPrice:D(BigInt(Q?.toString()||0))}||{gasPrice:"0x0"},I=D(BigInt(f||await this.provider.getTransactionCount(await this.getAddress(),"pending"))),V={chainId:Number.parseInt(j.ChainToChainId[this.chain],10),data:N?.toString()||"0x",gasLimit:D(BigInt(q?.toString()||0)),nonce:I,to:k.toString(),value:D(BigInt(B?.toString()||0)),...H},{success:L,payload:X}=await C.ethereumSignTransaction({path:j.derivationPathToString(this.derivationPath),transaction:V});if(!L)throw new j.USwapError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...X,chain:this.chain,derivationPath:this.derivationPath}});let{r:b,s:z,v:u}=X,U=W.from({r:b,s:z,v:new j.USwapNumber(BigInt(u)).getBaseValue("number")}),Y=_.from({...V,nonce:Number.parseInt(V.nonce,16),signature:U,type:J?2:0}).serialized;if(!Y)throw new j.USwapError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:this.chain,derivationPath:this.derivationPath}});return Y};connect=(k)=>{if(!k)throw new j.USwapError({errorKey:"wallet_provider_not_found",info:{chain:this.chain,derivationPath:this.derivationPath,wallet:j.WalletOption.TREZOR}});return new R({chain:this.chain,derivationPath:this.derivationPath,provider:k})}}return new R({chain:Z,derivationPath:$,provider:A})}
2
+
3
+ //# debugId=A6238F79F2564C9064756E2164756E21
4
+ //# sourceMappingURL=chunk-jxvxv38y.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/trezor/evmSigner.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport {\n type Chain,\n ChainToChainId,\n type DerivationPathArray,\n derivationPathToString,\n USwapError,\n USwapNumber,\n WalletOption,\n} from \"@tcswap/helpers\";\nimport type { JsonRpcProvider, Provider, TransactionRequest } from \"ethers\";\n\ntype TrezorEVMSignerParams = {\n chain: Chain;\n derivationPath: DerivationPathArray;\n provider: Provider | JsonRpcProvider;\n};\n\nexport async function getEVMSigner({ chain, derivationPath, provider }: TrezorEVMSignerParams) {\n const { AbstractSigner, Signature } = await import(\"ethers\");\n\n class TrezorSigner extends AbstractSigner {\n address: string;\n chain: Chain;\n derivationPath: DerivationPathArray;\n readonly provider: Provider | JsonRpcProvider;\n\n constructor({ chain, derivationPath, provider }: TrezorEVMSignerParams) {\n super(provider);\n\n this.address = \"\";\n this.chain = chain;\n this.derivationPath = derivationPath;\n this.provider = provider;\n }\n\n getAddress = async () => {\n if (!this.address) {\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n\n const result = await TrezorConnect.ethereumGetAddress({\n path: derivationPathToString(this.derivationPath),\n showOnTrezor: true,\n });\n\n if (!result.success) {\n throw new USwapError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: { ...result, chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n this.address = result.payload.address;\n }\n\n return this.address;\n };\n\n signMessage = async (message: string) => {\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n\n const result = await TrezorConnect.ethereumSignMessage({\n message,\n path: derivationPathToString(this.derivationPath),\n });\n\n if (!result.success) {\n throw new USwapError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: { ...result, chain: this.chain, derivationPath: this.derivationPath, message },\n });\n }\n\n return result.payload.signature;\n };\n\n signTypedData(): Promise<string> {\n throw new USwapError(\"wallet_trezor_method_not_supported\", { method: \"signTypedData\" });\n }\n\n signTransaction = async ({\n to,\n gasLimit,\n value,\n data,\n nonce,\n maxFeePerGas,\n maxPriorityFeePerGas,\n gasPrice,\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: any: refactor\n }: TransactionRequest) => {\n if (!to) throw new USwapError({ errorKey: \"wallet_missing_params\", info: { to } });\n if (!gasLimit) throw new USwapError({ errorKey: \"wallet_missing_params\", info: { gasLimit } });\n\n const isEIP1559 = maxFeePerGas && maxPriorityFeePerGas;\n\n if (isEIP1559 && !maxFeePerGas) {\n throw new USwapError({ errorKey: \"wallet_missing_params\", info: { maxFeePerGas } });\n }\n if (isEIP1559 && !maxPriorityFeePerGas) {\n throw new USwapError({ errorKey: \"wallet_missing_params\", info: { maxPriorityFeePerGas } });\n }\n if (!(isEIP1559 || gasPrice)) {\n throw new USwapError({ errorKey: \"wallet_missing_params\", info: { gasPrice } });\n }\n\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const { toHexString } = await import(\"@tcswap/toolboxes/evm\");\n const { Transaction } = await import(\"ethers\");\n\n const additionalFields = isEIP1559\n ? {\n maxFeePerGas: toHexString(BigInt(maxFeePerGas?.toString() || 0)),\n maxPriorityFeePerGas: toHexString(BigInt(maxPriorityFeePerGas?.toString() || 0)),\n }\n : (gasPrice && { gasPrice: toHexString(BigInt(gasPrice?.toString() || 0)) }) || { gasPrice: \"0x0\" };\n\n const hexifiedNonce = toHexString(\n BigInt(nonce || (await this.provider.getTransactionCount(await this.getAddress(), \"pending\"))),\n );\n\n const formattedTx = {\n chainId: Number.parseInt(ChainToChainId[this.chain], 10),\n data: data?.toString() || \"0x\",\n gasLimit: toHexString(BigInt(gasLimit?.toString() || 0)),\n nonce: hexifiedNonce,\n to: to.toString(),\n value: toHexString(BigInt(value?.toString() || 0)),\n ...additionalFields,\n };\n\n const { success, payload } = await TrezorConnect.ethereumSignTransaction({\n path: derivationPathToString(this.derivationPath),\n transaction: formattedTx,\n });\n\n if (!success) {\n throw new USwapError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: { ...payload, chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n const { r, s, v } = payload;\n\n const signature = Signature.from({ r, s, v: new USwapNumber(BigInt(v)).getBaseValue(\"number\") });\n\n const serializedTx = Transaction.from({\n ...formattedTx,\n nonce: Number.parseInt(formattedTx.nonce, 16),\n signature,\n type: isEIP1559 ? 2 : 0,\n }).serialized;\n\n if (!serializedTx) {\n throw new USwapError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: { chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n return serializedTx;\n };\n\n connect = (provider: Provider | null) => {\n if (!provider) {\n throw new USwapError({\n errorKey: \"wallet_provider_not_found\",\n info: { chain: this.chain, derivationPath: this.derivationPath, wallet: WalletOption.TREZOR },\n });\n }\n\n return new TrezorSigner({ chain: this.chain, derivationPath: this.derivationPath, provider });\n };\n }\n\n return new TrezorSigner({ chain, derivationPath, provider });\n}\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "A6238F79F2564C9064756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,4 @@
1
+ import{c as J}from"./chunk-25q3rr1d.js";import{ChainToChainId as G,derivationPathToString as Y,USwapError as k,USwapNumber as h,WalletOption as w}from"@tcswap/helpers";async function F({chain:A,derivationPath:O,provider:W}){let{AbstractSigner:N,Signature:f}=await import("ethers");class V extends N{address;chain;derivationPath;provider;constructor({chain:j,derivationPath:q,provider:B}){super(B);this.address="",this.chain=j,this.derivationPath=q,this.provider=B}getAddress=async()=>{if(!this.address){let q=await(await import("@trezor/connect-web")).default.ethereumGetAddress({path:Y(this.derivationPath),showOnTrezor:!0});if(!q.success)throw new k({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 B=await(await import("@trezor/connect-web")).default.ethereumSignMessage({message:j,path:Y(this.derivationPath)});if(!B.success)throw new k({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...B,chain:this.chain,derivationPath:this.derivationPath,message:j}});return B.payload.signature};signTypedData(){throw new k("wallet_trezor_method_not_supported",{method:"signTypedData"})}signTransaction=async({to:j,gasLimit:q,value:B,data:C,nonce:_,maxFeePerGas:M,maxPriorityFeePerGas:Q,gasPrice:R})=>{if(!j)throw new k({errorKey:"wallet_missing_params",info:{to:j}});if(!q)throw new k({errorKey:"wallet_missing_params",info:{gasLimit:q}});let K=M&&Q;if(K&&!M)throw new k({errorKey:"wallet_missing_params",info:{maxFeePerGas:M}});if(K&&!Q)throw new k({errorKey:"wallet_missing_params",info:{maxPriorityFeePerGas:Q}});if(!(K||R))throw new k({errorKey:"wallet_missing_params",info:{gasPrice:R}});let H=(await import("@trezor/connect-web")).default,{toHexString:D}=await import("@tcswap/toolboxes/evm"),{Transaction:I}=await import("ethers"),L=K?{maxFeePerGas:D(BigInt(M?.toString()||0)),maxPriorityFeePerGas:D(BigInt(Q?.toString()||0))}:R&&{gasPrice:D(BigInt(R?.toString()||0))}||{gasPrice:"0x0"},b=D(BigInt(_||await this.provider.getTransactionCount(await this.getAddress(),"pending"))),X={chainId:Number.parseInt(G[this.chain],10),data:C?.toString()||"0x",gasLimit:D(BigInt(q?.toString()||0)),nonce:b,to:j.toString(),value:D(BigInt(B?.toString()||0)),...L},{success:z,payload:Z}=await H.ethereumSignTransaction({path:Y(this.derivationPath),transaction:X});if(!z)throw new k({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...Z,chain:this.chain,derivationPath:this.derivationPath}});let{r:u,s:U,v:y}=Z,T=f.from({r:u,s:U,v:new h(BigInt(y)).getBaseValue("number")}),$=I.from({...X,nonce:Number.parseInt(X.nonce,16),signature:T,type:K?2:0}).serialized;if(!$)throw new k({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:this.chain,derivationPath:this.derivationPath}});return $};connect=(j)=>{if(!j)throw new k({errorKey:"wallet_provider_not_found",info:{chain:this.chain,derivationPath:this.derivationPath,wallet:w.TREZOR}});return new V({chain:this.chain,derivationPath:this.derivationPath,provider:j})}}return new V({chain:A,derivationPath:O,provider:W})}export{F as getEVMSigner};
2
+
3
+ //# debugId=F2F62191B9F2829464756E2164756E21
4
+ //# sourceMappingURL=chunk-nwvz7f9x.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/trezor/evmSigner.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport {\n type Chain,\n ChainToChainId,\n type DerivationPathArray,\n derivationPathToString,\n USwapError,\n USwapNumber,\n WalletOption,\n} from \"@tcswap/helpers\";\nimport type { JsonRpcProvider, Provider, TransactionRequest } from \"ethers\";\n\ntype TrezorEVMSignerParams = {\n chain: Chain;\n derivationPath: DerivationPathArray;\n provider: Provider | JsonRpcProvider;\n};\n\nexport async function getEVMSigner({ chain, derivationPath, provider }: TrezorEVMSignerParams) {\n const { AbstractSigner, Signature } = await import(\"ethers\");\n\n class TrezorSigner extends AbstractSigner {\n address: string;\n chain: Chain;\n derivationPath: DerivationPathArray;\n readonly provider: Provider | JsonRpcProvider;\n\n constructor({ chain, derivationPath, provider }: TrezorEVMSignerParams) {\n super(provider);\n\n this.address = \"\";\n this.chain = chain;\n this.derivationPath = derivationPath;\n this.provider = provider;\n }\n\n getAddress = async () => {\n if (!this.address) {\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n\n const result = await TrezorConnect.ethereumGetAddress({\n path: derivationPathToString(this.derivationPath),\n showOnTrezor: true,\n });\n\n if (!result.success) {\n throw new USwapError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: { ...result, chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n this.address = result.payload.address;\n }\n\n return this.address;\n };\n\n signMessage = async (message: string) => {\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n\n const result = await TrezorConnect.ethereumSignMessage({\n message,\n path: derivationPathToString(this.derivationPath),\n });\n\n if (!result.success) {\n throw new USwapError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: { ...result, chain: this.chain, derivationPath: this.derivationPath, message },\n });\n }\n\n return result.payload.signature;\n };\n\n signTypedData(): Promise<string> {\n throw new USwapError(\"wallet_trezor_method_not_supported\", { method: \"signTypedData\" });\n }\n\n signTransaction = async ({\n to,\n gasLimit,\n value,\n data,\n nonce,\n maxFeePerGas,\n maxPriorityFeePerGas,\n gasPrice,\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: any: refactor\n }: TransactionRequest) => {\n if (!to) throw new USwapError({ errorKey: \"wallet_missing_params\", info: { to } });\n if (!gasLimit) throw new USwapError({ errorKey: \"wallet_missing_params\", info: { gasLimit } });\n\n const isEIP1559 = maxFeePerGas && maxPriorityFeePerGas;\n\n if (isEIP1559 && !maxFeePerGas) {\n throw new USwapError({ errorKey: \"wallet_missing_params\", info: { maxFeePerGas } });\n }\n if (isEIP1559 && !maxPriorityFeePerGas) {\n throw new USwapError({ errorKey: \"wallet_missing_params\", info: { maxPriorityFeePerGas } });\n }\n if (!(isEIP1559 || gasPrice)) {\n throw new USwapError({ errorKey: \"wallet_missing_params\", info: { gasPrice } });\n }\n\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const { toHexString } = await import(\"@tcswap/toolboxes/evm\");\n const { Transaction } = await import(\"ethers\");\n\n const additionalFields = isEIP1559\n ? {\n maxFeePerGas: toHexString(BigInt(maxFeePerGas?.toString() || 0)),\n maxPriorityFeePerGas: toHexString(BigInt(maxPriorityFeePerGas?.toString() || 0)),\n }\n : (gasPrice && { gasPrice: toHexString(BigInt(gasPrice?.toString() || 0)) }) || { gasPrice: \"0x0\" };\n\n const hexifiedNonce = toHexString(\n BigInt(nonce || (await this.provider.getTransactionCount(await this.getAddress(), \"pending\"))),\n );\n\n const formattedTx = {\n chainId: Number.parseInt(ChainToChainId[this.chain], 10),\n data: data?.toString() || \"0x\",\n gasLimit: toHexString(BigInt(gasLimit?.toString() || 0)),\n nonce: hexifiedNonce,\n to: to.toString(),\n value: toHexString(BigInt(value?.toString() || 0)),\n ...additionalFields,\n };\n\n const { success, payload } = await TrezorConnect.ethereumSignTransaction({\n path: derivationPathToString(this.derivationPath),\n transaction: formattedTx,\n });\n\n if (!success) {\n throw new USwapError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: { ...payload, chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n const { r, s, v } = payload;\n\n const signature = Signature.from({ r, s, v: new USwapNumber(BigInt(v)).getBaseValue(\"number\") });\n\n const serializedTx = Transaction.from({\n ...formattedTx,\n nonce: Number.parseInt(formattedTx.nonce, 16),\n signature,\n type: isEIP1559 ? 2 : 0,\n }).serialized;\n\n if (!serializedTx) {\n throw new USwapError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: { chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n return serializedTx;\n };\n\n connect = (provider: Provider | null) => {\n if (!provider) {\n throw new USwapError({\n errorKey: \"wallet_provider_not_found\",\n info: { chain: this.chain, derivationPath: this.derivationPath, wallet: WalletOption.TREZOR },\n });\n }\n\n return new TrezorSigner({ chain: this.chain, derivationPath: this.derivationPath, provider });\n };\n }\n\n return new TrezorSigner({ chain, derivationPath, provider });\n}\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "F2F62191B9F2829464756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,4 @@
1
+ var n=Object.create;var{getPrototypeOf:o,defineProperty:e,getOwnPropertyNames:k,getOwnPropertyDescriptor:p}=Object,l=Object.prototype.hasOwnProperty;function m(a){return this[a]}var q,r,u=(a,b,c)=>{var d=a!=null&&typeof a==="object";if(d){var h=b?q??=new WeakMap:r??=new WeakMap,i=h.get(a);if(i)return i}c=a!=null?n(o(a)):{};let f=b||!a||!a.__esModule?e(c,"default",{value:a,enumerable:!0}):c;for(let g of k(a))if(!l.call(f,g))e(f,g,{get:m.bind(a,g),enumerable:!0});if(d)h.set(a,f);return f},v=(a)=>{var b=(j??=new WeakMap).get(a),c;if(b)return b;if(b=e({},"__esModule",{value:!0}),a&&typeof a==="object"||typeof a==="function"){for(var d of k(a))if(!l.call(b,d))e(b,d,{get:m.bind(a,d),enumerable:!(c=p(a,d))||c.enumerable})}return j.set(a,b),b},j;var s=(a)=>a;function t(a,b){this[a]=s.bind(null,b)}var w=(a,b)=>{for(var c in b)e(a,c,{get:b[c],enumerable:!0,configurable:!0,set:t.bind(b,c)})};
2
+
3
+ //# debugId=38C1B53315535EB464756E2164756E21
4
+ //# sourceMappingURL=chunk-p94hfx8x.js.map
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "38C1B53315535EB464756E2164756E21",
8
+ "names": []
9
+ }
@@ -1,4 +1,4 @@
1
- var e={};n(e,{keepkeyWallet:()=>d,KEEPKEY_SUPPORTED_CHAINS:()=>t});module.exports=s(e);var c=require("@keepkey/keepkey-sdk"),z=require("@tcswap/helpers"),v=require("@tcswap/wallet-core");var b=require("@tcswap/helpers");async function g({sdk:J,derivationPath:Q}){let{DEFAULT_COSMOS_FEE_MAINNET:X,getCosmosToolbox:H,getFeeRateFromSwapKit:Y,createStargateClient:q}=await import("@tcswap/toolboxes/cosmos"),_=Q?b.derivationPathToString(Q):`${b.DerivationPath.GAIA}/0`,{address:$}=await J.address.cosmosGetAddress({address_n:y(_)}),j=await H(b.Chain.Cosmos);if(X.amount[0])X.amount[0].amount=String(await Y(b.GAIAConfig.chainId,500));return{...j,address:$,transfer:async({assetValue:N,recipient:Z,memo:W})=>{let O=N.getBaseValue("string"),B=await j.getAccount($),L=await J.cosmos.cosmosSignAmino({signDoc:{account_number:B?.accountNumber.toString()??"",chain_id:b.GAIAConfig.chainId,fee:X,memo:W||"",msgs:[{type:"cosmos-sdk/MsgSend",value:{amount:[{amount:O,denom:"uatom"}],from_address:$,to_address:Z}}],sequence:B?.sequence.toString()??""},signerAddress:$}),I=atob(L.serialized),K=new Uint8Array(I.length).map((w,A)=>I.charCodeAt(A)),G=await b.getRPCUrl(b.Chain.Cosmos);return(await(await q(G)).broadcastTx(K)).transactionHash}}}var M=require("@tcswap/helpers"),l=require("ethers");class k extends l.AbstractSigner{sdk;chain;derivationPath;address;provider;constructor({sdk:J,chain:Q,derivationPath:X,provider:H}){super();this.sdk=J,this.chain=Q,this.derivationPath=X||M.NetworkDerivationPath.ETH,this.address="",this.provider=H}signTypedData(){throw new M.USwapError("wallet_keepkey_method_not_supported",{method:"signTypedData"})}getAddress=async()=>{if(this.address)return this.address;let{address:J}=await this.sdk.address.ethereumGetAddress({address_n:y(M.derivationPathToString(this.derivationPath))});return this.address=J,J};signMessage=(J)=>this.sdk.eth.ethSign({address:this.address,message:J});signTransaction=async({to:J,value:Q,gasLimit:X,nonce:H,data:Y,maxFeePerGas:q,maxPriorityFeePerGas:_,gasPrice:$})=>{if(!J)throw new M.USwapError("wallet_keepkey_invalid_params",{reason:"Missing to address"});if(!X)throw new M.USwapError("wallet_keepkey_invalid_params",{reason:"Missing gasLimit"});if(!Y)throw new M.USwapError("wallet_keepkey_invalid_params",{reason:"Missing data"});let j=!!((q||_)&&!$);if(j&&!q)throw new M.USwapError("wallet_keepkey_invalid_params",{reason:"Missing maxFeePerGas"});if(j&&!_)throw new M.USwapError("wallet_keepkey_invalid_params",{reason:"Missing maxPriorityFeePerGas"});if(!(j||$))throw new M.USwapError("wallet_keepkey_invalid_params",{reason:"Missing gasPrice"});let{toHexString:R}=await import("@tcswap/toolboxes/evm"),N=H?BigInt(H):BigInt(await this.provider.getTransactionCount(await this.getAddress(),"pending")),Z={addressNList:[2147483692,2147483708,2147483648,0,0],chainId:R(BigInt(M.ChainToChainId[this.chain])),data:Y,from:this.address,gas:R(BigInt(X)),nonce:R(N),to:J.toString(),value:R(BigInt(Q||0)),...j&&{maxFeePerGas:R(BigInt(q?.toString()||"0")),maxPriorityFeePerGas:R(BigInt(_?.toString()||"0"))},...!j&&{gasPrice:R(BigInt($?.toString()||"0"))}};return(await this.sdk.eth.ethSignTransaction(Z)).serialized};sendTransaction=async(J)=>{if(!this.provider)throw new M.USwapError("wallet_keepkey_no_provider");let Q=await this.signTransaction(J);return await this.provider.broadcastTransaction(Q)};connect=(J)=>new k({chain:this.chain,derivationPath:this.derivationPath,provider:J,sdk:this.sdk})}var V=require("@tcswap/helpers");async function m({sdk:J,derivationPath:Q}){let{createStargateClient:X,getCosmosToolbox:H}=await import("@tcswap/toolboxes/cosmos"),Y=await H(V.Chain.Maya),q=Q?V.derivationPathToString(Q):`${V.DerivationPath.MAYA}/0`,{address:_}=await J.address.mayachainGetAddress({address_n:y(q)}),$=async({assetValue:N,recipient:Z,sender:W,memo:O})=>{let B=await import("@cosmjs/amino"),L=B.makeSignDoc??B.default?.makeSignDoc,{getDenomWithChain:I}=await import("@tcswap/toolboxes/cosmos"),K=await Y.getAccount(W);if(!K)throw new V.USwapError("wallet_keepkey_account_not_found");let{accountNumber:G,sequence:F=0}=K,E=N.getBaseValue("string"),w=Z&&Z!=="",A=w?{type:"mayachain/MsgSend",value:{amount:[{amount:E,denom:N.symbol.toLowerCase()}],from_address:W,to_address:Z}}:{type:"mayachain/MsgDeposit",value:{coins:[{amount:E,asset:I(N)}],memo:O,signer:W}},T=L([A],{amount:[],gas:"500000000"},V.MAYAConfig.chainId,O,G?.toString(),F),x=await(w?J.mayachain.mayachainSignAminoTransfer:J.mayachain.mayachainSignAminoDeposit)({signDoc:T,signerAddress:W}),u=atob(x.serialized);return new Uint8Array(u.length).map((C,r)=>u.charCodeAt(r))};return{...Y,address:_,deposit:async({assetValue:N,memo:Z})=>{let W=await V.getRPCUrl(V.Chain.Maya),O=await X(W),B=await $({assetValue:N,memo:Z,sender:_}),{transactionHash:L}=await O.broadcastTx(B);return L},transfer:async({assetValue:N,recipient:Z,memo:W})=>{let O=await V.getRPCUrl(V.Chain.Maya),B=await X(O),L=await $({assetValue:N,memo:W,recipient:Z,sender:_}),{transactionHash:I}=await B.broadcastTx(L);return I}}}var D=require("@tcswap/helpers");async function p({sdk:J,derivationPath:Q}){let X=await import("@cosmjs/amino"),H=X.makeSignDoc??X.default?.makeSignDoc,{buildAminoMsg:Y,getDefaultChainFee:q,createStargateClient:_,getCosmosToolbox:$}=await import("@tcswap/toolboxes/cosmos"),j=await $(D.Chain.THORChain),R=Q?D.derivationPathToString(Q):`${D.DerivationPath.THOR}/0`,{address:N}=await J.address.thorchainGetAddress({address_n:y(R)}),Z=async({assetValue:B,recipient:L,sender:I,memo:K})=>{let G=await j.getAccount(I);if(!G)throw new D.USwapError("wallet_keepkey_account_not_found");let{accountNumber:F,sequence:E=0}=G,w=L&&L!=="",A=Y({assetValue:B,memo:K,recipient:L,sender:I}),T=H([A],q(D.Chain.THORChain),D.THORConfig.chainId,K,F?.toString(),E),S=w?await J.thorchain.thorchainSignAminoTransfer({signDoc:T,signerAddress:I}):await J.thorchain.thorchainSignAminoDeposit({signDoc:T,signerAddress:I}),x=atob(S.serialized);return new Uint8Array(x.length).map((u,C)=>x.charCodeAt(C))};return{...j,address:N,deposit:async({assetValue:B,memo:L})=>{let I=await D.getRPCUrl(D.Chain.THORChain),K=await _(I),G=await Z({assetValue:B,memo:L,sender:N}),{transactionHash:F}=await K.broadcastTx(G);return F},transfer:async({assetValue:B,recipient:L,memo:I})=>{let K=await D.getRPCUrl(D.Chain.THORChain),G=await _(K),F=await Z({assetValue:B,memo:I,recipient:L,sender:N}),{transactionHash:E}=await G.broadcastTx(F);return E}}}var U=require("@tcswap/helpers");async function h({sdk:J,chain:Q,derivationPath:X}){let{getUtxoToolbox:H}=await import("@tcswap/toolboxes/utxo"),Y=await H(Q),q=[U.Chain.Bitcoin,U.Chain.Litecoin].includes(Q)?"p2wpkh":"p2pkh",_=X?U.derivationPathToString(X):`${U.DerivationPath[Q]}/0`,$={address_n:y(_),coin:P[Q],script_type:q},j=(await J.address.utxoGetAddress($)).address,R=async(Z,W,O="")=>{let B=Z.txOutputs.map((K)=>{let{value:G,address:F,change:E}=K,w=Q===U.Chain.BitcoinCash?Y.stripToCashAddress(F):F;if(E||F===j)return{addressNList:$.address_n,addressType:"change",amount:G,isChange:!0,scriptType:q};if(w)return{address:w,addressType:"spend",amount:G};return null}).filter(Boolean),L=(K)=>{return K.filter((G)=>G!==null&&typeof G==="object"&&Object.keys(G).length>0)};return(await J.utxo.utxoSignTransaction({coin:P[Q],inputs:W,opReturnData:O,outputs:L(B)})).serializedTx?.toString()};return{...Y,address:j,signTransaction:R,transfer:async({recipient:Z,feeOptionKey:W,feeRate:O,memo:B,...L})=>{if(!j)throw new U.USwapError("wallet_keepkey_invalid_params",{reason:"From address must be provided"});if(!Z)throw new U.USwapError("wallet_keepkey_invalid_params",{reason:"Recipient address must be provided"});let I=Q===U.Chain.BitcoinCash?Y.buildTx:Y.createTransaction,{psbt:K,inputs:G}=await I({...L,feeRate:O||(await Y.getFeeRates())[W||U.FeeOption.Fast],fetchTxHex:!0,memo:B,recipient:Z,sender:j}),F=G.map(({value:w,index:A,hash:T,txHex:S})=>({addressNList:$.address_n,amount:w.toString(),hex:S||"",scriptType:q,txid:T,vout:A})),E=await R(K,F,B);return Y.broadcastTx(E)}}}var d=v.createWallet({connect:({addChain:J,supportedChains:Q,walletType:X})=>async function(Y,q){let _=z.filterSupportedChains({chains:Y,supportedChains:Q,walletType:X}),$=z.USwapConfig.get("integrations").keepKey;if(!$)throw Error("KeepKey config not found");let j=z.USwapConfig.get("apiKeys").keepKey||"1234";await o();let R={apiKey:j,pairingInfo:$},N=await c.KeepKeySdk.create(R);if(R.apiKey&&R.apiKey!==j)z.USwapConfig.setApiKey("keepKey",R.apiKey);return await Promise.all(_.map(async(Z)=>{let W=await i({chain:Z,derivationPath:q?.[Z]||z.NetworkDerivationPath[Z],sdk:N}),O=await W.getAddress()||"";J({...W,address:O,chain:Z,walletType:z.WalletOption.KEEPKEY})})),!0},name:"connectKeepkey",supportedChains:[z.Chain.Arbitrum,z.Chain.Avalanche,z.Chain.Base,z.Chain.BinanceSmartChain,z.Chain.Bitcoin,z.Chain.BitcoinCash,z.Chain.Cosmos,z.Chain.Dogecoin,z.Chain.Dash,z.Chain.Ethereum,z.Chain.Litecoin,z.Chain.Monad,z.Chain.Ripple,z.Chain.Optimism,z.Chain.Polygon,z.Chain.THORChain,z.Chain.Maya,z.Chain.XLayer],walletType:z.WalletOption.KEEPKEY}),t=v.getWalletSupportedChains(d);async function i({sdk:J,chain:Q,derivationPath:X}){let{getProvider:H,getEvmToolbox:Y}=await import("@tcswap/toolboxes/evm");switch(Q){case z.Chain.BinanceSmartChain:case z.Chain.Arbitrum:case z.Chain.Optimism:case z.Chain.Polygon:case z.Chain.Avalanche:case z.Chain.Base:case z.Chain.Ethereum:case z.Chain.Monad:case z.Chain.XLayer:{let q=await H(Q),_=new k({chain:Q,derivationPath:X,provider:q,sdk:J});return await Y(Q,{provider:q,signer:_})}case z.Chain.Cosmos:return g({derivationPath:X,sdk:J});case z.Chain.THORChain:return p({derivationPath:X,sdk:J});case z.Chain.Maya:return m({derivationPath:X,sdk:J});case z.Chain.Bitcoin:case z.Chain.BitcoinCash:case z.Chain.Dash:case z.Chain.Dogecoin:case z.Chain.Litecoin:return h({chain:Q,derivationPath:X,sdk:J});case z.Chain.Ripple:{let{rippleWalletMethods:q}=await import("../chunk-9kbkdt6e.js");return q({derivationPath:X,sdk:J})}default:throw new z.USwapError("wallet_keepkey_chain_not_supported",{chain:Q})}}async function o(J=0){if(J>=3)alert("KeepKey desktop is required for keepkey-sdk, please go to https://keepkey.com/get-started");if(!await a())window.location.assign("keepkey://launch"),await new Promise((X)=>setTimeout(X,30000)),await o(J+1)}async function a(J="http://localhost:1646/spec/swagger.json"){try{return(await fetch(J)).status===200}catch{return!1}}
1
+ var a={};s(a,{keepkeyWallet:()=>c,KEEPKEY_SUPPORTED_CHAINS:()=>n});module.exports=r(a);var h=require("@keepkey/keepkey-sdk"),z=require("@tcswap/helpers"),k=require("@tcswap/wallet-core");var b=require("@tcswap/helpers");async function C({sdk:J,derivationPath:Q}){let{DEFAULT_COSMOS_FEE_MAINNET:X,getCosmosToolbox:H,getFeeRateFromSwapKit:Y,createStargateClient:q}=await import("@tcswap/toolboxes/cosmos"),_=Q?b.derivationPathToString(Q):`${b.DerivationPath.GAIA}/0`,{address:$}=await J.address.cosmosGetAddress({address_n:f(_)}),j=await H(b.Chain.Cosmos);if(X.amount[0])X.amount[0].amount=String(await Y(b.GAIAConfig.chainId,500));return{...j,address:$,transfer:async({assetValue:N,recipient:Z,memo:W})=>{let O=N.getBaseValue("string"),B=await j.getAccount($),L=await J.cosmos.cosmosSignAmino({signDoc:{account_number:B?.accountNumber.toString()??"",chain_id:b.GAIAConfig.chainId,fee:X,memo:W||"",msgs:[{type:"cosmos-sdk/MsgSend",value:{amount:[{amount:O,denom:"uatom"}],from_address:$,to_address:Z}}],sequence:B?.sequence.toString()??""},signerAddress:$}),I=atob(L.serialized),K=new Uint8Array(I.length).map((w,y)=>I.charCodeAt(y)),G=await b.getRPCUrl(b.Chain.Cosmos);return(await(await q(G)).broadcastTx(K)).transactionHash}}}var M=require("@tcswap/helpers"),g=require("ethers");class x extends g.AbstractSigner{sdk;chain;derivationPath;address;provider;constructor({sdk:J,chain:Q,derivationPath:X,provider:H}){super();this.sdk=J,this.chain=Q,this.derivationPath=X||M.NetworkDerivationPath.ETH,this.address="",this.provider=H}signTypedData(){throw new M.USwapError("wallet_keepkey_method_not_supported",{method:"signTypedData"})}getAddress=async()=>{if(this.address)return this.address;let{address:J}=await this.sdk.address.ethereumGetAddress({address_n:f(M.derivationPathToString(this.derivationPath))});return this.address=J,J};signMessage=(J)=>this.sdk.eth.ethSign({address:this.address,message:J});signTransaction=async({to:J,value:Q,gasLimit:X,nonce:H,data:Y,maxFeePerGas:q,maxPriorityFeePerGas:_,gasPrice:$})=>{if(!J)throw new M.USwapError("wallet_keepkey_invalid_params",{reason:"Missing to address"});if(!X)throw new M.USwapError("wallet_keepkey_invalid_params",{reason:"Missing gasLimit"});if(!Y)throw new M.USwapError("wallet_keepkey_invalid_params",{reason:"Missing data"});let j=!!((q||_)&&!$);if(j&&!q)throw new M.USwapError("wallet_keepkey_invalid_params",{reason:"Missing maxFeePerGas"});if(j&&!_)throw new M.USwapError("wallet_keepkey_invalid_params",{reason:"Missing maxPriorityFeePerGas"});if(!(j||$))throw new M.USwapError("wallet_keepkey_invalid_params",{reason:"Missing gasPrice"});let{toHexString:R}=await import("@tcswap/toolboxes/evm"),N=H?BigInt(H):BigInt(await this.provider.getTransactionCount(await this.getAddress(),"pending")),Z={addressNList:[2147483692,2147483708,2147483648,0,0],chainId:R(BigInt(M.ChainToChainId[this.chain])),data:Y,from:this.address,gas:R(BigInt(X)),nonce:R(N),to:J.toString(),value:R(BigInt(Q||0)),...j&&{maxFeePerGas:R(BigInt(q?.toString()||"0")),maxPriorityFeePerGas:R(BigInt(_?.toString()||"0"))},...!j&&{gasPrice:R(BigInt($?.toString()||"0"))}};return(await this.sdk.eth.ethSignTransaction(Z)).serialized};sendTransaction=async(J)=>{if(!this.provider)throw new M.USwapError("wallet_keepkey_no_provider");let Q=await this.signTransaction(J);return await this.provider.broadcastTransaction(Q)};connect=(J)=>new x({chain:this.chain,derivationPath:this.derivationPath,provider:J,sdk:this.sdk})}var V=require("@tcswap/helpers");async function l({sdk:J,derivationPath:Q}){let{createStargateClient:X,getCosmosToolbox:H}=await import("@tcswap/toolboxes/cosmos"),Y=await H(V.Chain.Maya),q=Q?V.derivationPathToString(Q):`${V.DerivationPath.MAYA}/0`,{address:_}=await J.address.mayachainGetAddress({address_n:f(q)}),$=async({assetValue:N,recipient:Z,sender:W,memo:O})=>{let B=await import("@cosmjs/amino"),L=B.makeSignDoc??B.default?.makeSignDoc,{getDenomWithChain:I}=await import("@tcswap/toolboxes/cosmos"),K=await Y.getAccount(W);if(!K)throw new V.USwapError("wallet_keepkey_account_not_found");let{accountNumber:G,sequence:F=0}=K,E=N.getBaseValue("string"),w=Z&&Z!=="",y=w?{type:"mayachain/MsgSend",value:{amount:[{amount:E,denom:N.symbol.toLowerCase()}],from_address:W,to_address:Z}}:{type:"mayachain/MsgDeposit",value:{coins:[{amount:E,asset:I(N)}],memo:O,signer:W}},A=L([y],{amount:[],gas:"500000000"},V.MAYAConfig.chainId,O,G?.toString(),F),S=await(w?J.mayachain.mayachainSignAminoTransfer:J.mayachain.mayachainSignAminoDeposit)({signDoc:A,signerAddress:W}),v=atob(S.serialized);return new Uint8Array(v.length).map((P,o)=>v.charCodeAt(o))};return{...Y,address:_,deposit:async({assetValue:N,memo:Z})=>{let W=await V.getRPCUrl(V.Chain.Maya),O=await X(W),B=await $({assetValue:N,memo:Z,sender:_}),{transactionHash:L}=await O.broadcastTx(B);return L},transfer:async({assetValue:N,recipient:Z,memo:W})=>{let O=await V.getRPCUrl(V.Chain.Maya),B=await X(O),L=await $({assetValue:N,memo:W,recipient:Z,sender:_}),{transactionHash:I}=await B.broadcastTx(L);return I}}}var D=require("@tcswap/helpers");async function m({sdk:J,derivationPath:Q}){let X=await import("@cosmjs/amino"),H=X.makeSignDoc??X.default?.makeSignDoc,{buildAminoMsg:Y,getDefaultChainFee:q,createStargateClient:_,getCosmosToolbox:$}=await import("@tcswap/toolboxes/cosmos"),j=await $(D.Chain.THORChain),R=Q?D.derivationPathToString(Q):`${D.DerivationPath.THOR}/0`,{address:N}=await J.address.thorchainGetAddress({address_n:f(R)}),Z=async({assetValue:B,recipient:L,sender:I,memo:K})=>{let G=await j.getAccount(I);if(!G)throw new D.USwapError("wallet_keepkey_account_not_found");let{accountNumber:F,sequence:E=0}=G,w=L&&L!=="",y=Y({assetValue:B,memo:K,recipient:L,sender:I}),A=H([y],q(D.Chain.THORChain),D.THORConfig.chainId,K,F?.toString(),E),T=w?await J.thorchain.thorchainSignAminoTransfer({signDoc:A,signerAddress:I}):await J.thorchain.thorchainSignAminoDeposit({signDoc:A,signerAddress:I}),S=atob(T.serialized);return new Uint8Array(S.length).map((v,P)=>S.charCodeAt(P))};return{...j,address:N,deposit:async({assetValue:B,memo:L})=>{let I=await D.getRPCUrl(D.Chain.THORChain),K=await _(I),G=await Z({assetValue:B,memo:L,sender:N}),{transactionHash:F}=await K.broadcastTx(G);return F},transfer:async({assetValue:B,recipient:L,memo:I})=>{let K=await D.getRPCUrl(D.Chain.THORChain),G=await _(K),F=await Z({assetValue:B,memo:I,recipient:L,sender:N}),{transactionHash:E}=await G.broadcastTx(F);return E}}}var U=require("@tcswap/helpers");async function p({sdk:J,chain:Q,derivationPath:X}){let{getUtxoToolbox:H}=await import("@tcswap/toolboxes/utxo"),Y=await H(Q),q=[U.Chain.Bitcoin,U.Chain.Litecoin].includes(Q)?"p2wpkh":"p2pkh",_=X?U.derivationPathToString(X):`${U.DerivationPath[Q]}/0`,$={address_n:f(_),coin:u[Q],script_type:q},j=(await J.address.utxoGetAddress($)).address,R=async(Z,W,O="")=>{let B=Z.txOutputs.map((K)=>{let{value:G,address:F,change:E}=K,w=Q===U.Chain.BitcoinCash?Y.stripToCashAddress(F):F;if(E||F===j)return{addressNList:$.address_n,addressType:"change",amount:G,isChange:!0,scriptType:q};if(w)return{address:w,addressType:"spend",amount:G};return null}).filter(Boolean),L=(K)=>{return K.filter((G)=>G!==null&&typeof G==="object"&&Object.keys(G).length>0)};return(await J.utxo.utxoSignTransaction({coin:u[Q],inputs:W,opReturnData:O,outputs:L(B)})).serializedTx?.toString()};return{...Y,address:j,signTransaction:R,transfer:async({recipient:Z,feeOptionKey:W,feeRate:O,memo:B,...L})=>{if(!j)throw new U.USwapError("wallet_keepkey_invalid_params",{reason:"From address must be provided"});if(!Z)throw new U.USwapError("wallet_keepkey_invalid_params",{reason:"Recipient address must be provided"});let I=Q===U.Chain.BitcoinCash?Y.buildTx:Y.createTransaction,{psbt:K,inputs:G}=await I({...L,feeRate:O||(await Y.getFeeRates())[W||U.FeeOption.Fast],fetchTxHex:!0,memo:B,recipient:Z,sender:j}),F=G.map(({value:w,index:y,hash:A,txHex:T})=>({addressNList:$.address_n,amount:w.toString(),hex:T||"",scriptType:q,txid:A,vout:y})),E=await R(K,F,B);return Y.broadcastTx(E)}}}var c=k.createWallet({connect:({addChain:J,supportedChains:Q,walletType:X})=>async function(Y,q){let _=z.filterSupportedChains({chains:Y,supportedChains:Q,walletType:X}),$=z.USwapConfig.get("integrations").keepKey;if(!$)throw Error("KeepKey config not found");let j=z.USwapConfig.get("apiKeys").keepKey||"1234";await d();let R={apiKey:j,pairingInfo:$},N=await h.KeepKeySdk.create(R);if(R.apiKey&&R.apiKey!==j)z.USwapConfig.setApiKey("keepKey",R.apiKey);return await Promise.all(_.map(async(Z)=>{let W=await t({chain:Z,derivationPath:q?.[Z]||z.NetworkDerivationPath[Z],sdk:N}),O=await W.getAddress()||"";J({...W,address:O,chain:Z,walletType:z.WalletOption.KEEPKEY})})),!0},name:"connectKeepkey",supportedChains:[z.Chain.Arbitrum,z.Chain.Avalanche,z.Chain.Base,z.Chain.BinanceSmartChain,z.Chain.Bitcoin,z.Chain.BitcoinCash,z.Chain.Cosmos,z.Chain.Dogecoin,z.Chain.Dash,z.Chain.Ethereum,z.Chain.Litecoin,z.Chain.Monad,z.Chain.Ripple,z.Chain.Optimism,z.Chain.Polygon,z.Chain.THORChain,z.Chain.Maya,z.Chain.XLayer],walletType:z.WalletOption.KEEPKEY}),n=k.getWalletSupportedChains(c);async function t({sdk:J,chain:Q,derivationPath:X}){let{getProvider:H,getEvmToolbox:Y}=await import("@tcswap/toolboxes/evm");switch(Q){case z.Chain.BinanceSmartChain:case z.Chain.Arbitrum:case z.Chain.Optimism:case z.Chain.Polygon:case z.Chain.Avalanche:case z.Chain.Base:case z.Chain.Ethereum:case z.Chain.Monad:case z.Chain.XLayer:{let q=await H(Q),_=new x({chain:Q,derivationPath:X,provider:q,sdk:J});return await Y(Q,{provider:q,signer:_})}case z.Chain.Cosmos:return C({derivationPath:X,sdk:J});case z.Chain.THORChain:return m({derivationPath:X,sdk:J});case z.Chain.Maya:return l({derivationPath:X,sdk:J});case z.Chain.Bitcoin:case z.Chain.BitcoinCash:case z.Chain.Dash:case z.Chain.Dogecoin:case z.Chain.Litecoin:return p({chain:Q,derivationPath:X,sdk:J});case z.Chain.Ripple:{let{rippleWalletMethods:q}=await import("../chunk-9kbkdt6e.js");return q({derivationPath:X,sdk:J})}default:throw new z.USwapError("wallet_keepkey_chain_not_supported",{chain:Q})}}async function d(J=0){if(J>=3)alert("KeepKey desktop is required for keepkey-sdk, please go to https://keepkey.com/get-started");if(!await i())window.location.assign("keepkey://launch"),await new Promise((X)=>setTimeout(X,30000)),await d(J+1)}async function i(J="http://localhost:1646/spec/swagger.json"){try{return(await fetch(J)).status===200}catch{return!1}}
2
2
 
3
- //# debugId=AD24B048AA0F1BA964756E2164756E21
3
+ //# debugId=9B598081ABE2515264756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -10,6 +10,6 @@
10
10
  "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n FeeOption,\n type GenericTransferParams,\n USwapError,\n type UTXOChain,\n} from \"@tcswap/helpers\";\nimport type { UTXOToolboxes } from \"@tcswap/toolboxes/utxo\";\nimport type { Psbt } from \"bitcoinjs-lib\";\nimport { bip32ToAddressNList, ChainToKeepKeyName } from \"../coins\";\n\ninterface KeepKeyInputObject {\n addressNList: number[];\n scriptType: string;\n amount: string;\n vout: number;\n txid: string;\n hex: string;\n}\n\nexport async function utxoWalletMethods({\n sdk,\n chain,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n chain: Exclude<UTXOChain, typeof Chain.Zcash>;\n derivationPath?: DerivationPathArray;\n}): Promise<\n UTXOToolboxes[UTXOChain] & {\n address: string;\n signTransaction: (psbt: Psbt, inputs: KeepKeyInputObject[], memo?: string) => Promise<string>;\n }\n> {\n const { getUtxoToolbox } = await import(\"@tcswap/toolboxes/utxo\");\n // This might not work for BCH\n const toolbox = await getUtxoToolbox(chain);\n const scriptType = [Chain.Bitcoin, Chain.Litecoin].includes(chain as typeof Chain.Bitcoin)\n ? (\"p2wpkh\" as const)\n : (\"p2pkh\" as const);\n\n const derivationPathString = derivationPath ? derivationPathToString(derivationPath) : `${DerivationPath[chain]}/0`;\n\n const addressInfo = {\n address_n: bip32ToAddressNList(derivationPathString),\n coin: ChainToKeepKeyName[chain],\n script_type: scriptType,\n };\n\n const walletAddress: string = (await sdk.address.utxoGetAddress(addressInfo)).address;\n\n const signTransaction = async (psbt: Psbt, inputs: KeepKeyInputObject[], memo = \"\") => {\n const outputs = psbt.txOutputs\n .map((output) => {\n const { value, address, change } = output as {\n address: string;\n script: Buffer;\n value: number;\n change?: boolean;\n };\n\n const outputAddress =\n // @ts-expect-error - stripToCashAddress is not defined in the UTXO toolbox just only on BCH\n chain === Chain.BitcoinCash ? toolbox.stripToCashAddress(address) : address;\n\n if (change || address === walletAddress) {\n return {\n addressNList: addressInfo.address_n,\n addressType: \"change\",\n amount: value,\n isChange: true,\n scriptType,\n };\n }\n\n if (outputAddress) {\n return { address: outputAddress, addressType: \"spend\", amount: value };\n }\n\n return null;\n })\n .filter(Boolean);\n\n const removeNullAndEmptyObjectsFromArray = (arr: any[]) => {\n return arr.filter((item) => item !== null && typeof item === \"object\" && Object.keys(item).length > 0);\n };\n\n const responseSign = await sdk.utxo.utxoSignTransaction({\n coin: ChainToKeepKeyName[chain],\n inputs,\n opReturnData: memo,\n outputs: removeNullAndEmptyObjectsFromArray(outputs),\n });\n\n return responseSign.serializedTx?.toString();\n };\n\n const transfer = async ({ recipient, feeOptionKey, feeRate, memo, ...rest }: GenericTransferParams) => {\n if (!walletAddress)\n throw new USwapError(\"wallet_keepkey_invalid_params\", { reason: \"From address must be provided\" });\n if (!recipient)\n throw new USwapError(\"wallet_keepkey_invalid_params\", { reason: \"Recipient address must be provided\" });\n\n const createTxMethod =\n chain === Chain.BitcoinCash\n ? (toolbox as UTXOToolboxes[\"BCH\"]).buildTx\n : (toolbox as UTXOToolboxes[\"BTC\"]).createTransaction;\n\n const { psbt, inputs: rawInputs } = await createTxMethod({\n ...rest,\n feeRate: feeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast],\n fetchTxHex: true,\n memo,\n recipient,\n sender: walletAddress,\n });\n\n const inputs = rawInputs.map(({ value, index, hash, txHex }) => ({\n //@TODO don't hardcode master, lookup on blockbook what input this is for and what path that address is!\n addressNList: addressInfo.address_n,\n amount: value.toString(),\n hex: txHex || \"\",\n scriptType,\n txid: hash,\n vout: index,\n }));\n\n const txHex = await signTransaction(psbt, inputs, memo);\n return toolbox.broadcastTx(txHex);\n };\n\n return { ...toolbox, address: walletAddress, signTransaction, transfer };\n}\n"
11
11
  ],
12
12
  "mappings": "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",
13
- "debugId": "AD24B048AA0F1BA964756E2164756E21",
13
+ "debugId": "9B598081ABE2515264756E2164756E21",
14
14
  "names": []
15
15
  }
@@ -1,4 +1,4 @@
1
- import{a as u,b}from"../chunk-1w9rn6fj.js";import{c as F,d as U}from"../chunk-zzfbcc7e.js";import{KeepKeySdk as Nz}from"@keepkey/keepkey-sdk";import{Chain as J,filterSupportedChains as Iz,NetworkDerivationPath as Kz,USwapConfig as P,USwapError as Dz,WalletOption as s}from"@tcswap/helpers";import{createWallet as Hz,getWalletSupportedChains as Oz}from"@tcswap/wallet-core";import{Chain as g,DerivationPath as i,derivationPathToString as a,GAIAConfig as l,getRPCUrl as e}from"@tcswap/helpers";async function m({sdk:z,derivationPath:Q}){let{DEFAULT_COSMOS_FEE_MAINNET:X,getCosmosToolbox:D,getFeeRateFromSwapKit:Y,createStargateClient:q}=await import("@tcswap/toolboxes/cosmos"),_=Q?a(Q):`${i.GAIA}/0`,{address:$}=await z.address.cosmosGetAddress({address_n:b(_)}),j=await D(g.Cosmos);if(X.amount[0])X.amount[0].amount=String(await Y(l.chainId,500));return{...j,address:$,transfer:async({assetValue:N,recipient:Z,memo:W})=>{let H=N.getBaseValue("string"),B=await j.getAccount($),L=await z.cosmos.cosmosSignAmino({signDoc:{account_number:B?.accountNumber.toString()??"",chain_id:l.chainId,fee:X,memo:W||"",msgs:[{type:"cosmos-sdk/MsgSend",value:{amount:[{amount:H,denom:"uatom"}],from_address:$,to_address:Z}}],sequence:B?.sequence.toString()??""},signerAddress:$}),I=atob(L.serialized),K=new Uint8Array(I.length).map((V,w)=>I.charCodeAt(w)),G=await e(g.Cosmos);return(await(await q(G)).broadcastTx(K)).transactionHash}}}import{ChainToChainId as zz,derivationPathToString as Jz,NetworkDerivationPath as Qz,USwapError as E}from"@tcswap/helpers";import{AbstractSigner as Xz}from"ethers";class T extends Xz{sdk;chain;derivationPath;address;provider;constructor({sdk:z,chain:Q,derivationPath:X,provider:D}){super();this.sdk=z,this.chain=Q,this.derivationPath=X||Qz.ETH,this.address="",this.provider=D}signTypedData(){throw new E("wallet_keepkey_method_not_supported",{method:"signTypedData"})}getAddress=async()=>{if(this.address)return this.address;let{address:z}=await this.sdk.address.ethereumGetAddress({address_n:b(Jz(this.derivationPath))});return this.address=z,z};signMessage=(z)=>this.sdk.eth.ethSign({address:this.address,message:z});signTransaction=async({to:z,value:Q,gasLimit:X,nonce:D,data:Y,maxFeePerGas:q,maxPriorityFeePerGas:_,gasPrice:$})=>{if(!z)throw new E("wallet_keepkey_invalid_params",{reason:"Missing to address"});if(!X)throw new E("wallet_keepkey_invalid_params",{reason:"Missing gasLimit"});if(!Y)throw new E("wallet_keepkey_invalid_params",{reason:"Missing data"});let j=!!((q||_)&&!$);if(j&&!q)throw new E("wallet_keepkey_invalid_params",{reason:"Missing maxFeePerGas"});if(j&&!_)throw new E("wallet_keepkey_invalid_params",{reason:"Missing maxPriorityFeePerGas"});if(!(j||$))throw new E("wallet_keepkey_invalid_params",{reason:"Missing gasPrice"});let{toHexString:R}=await import("@tcswap/toolboxes/evm"),N=D?BigInt(D):BigInt(await this.provider.getTransactionCount(await this.getAddress(),"pending")),Z={addressNList:[2147483692,2147483708,2147483648,0,0],chainId:R(BigInt(zz[this.chain])),data:Y,from:this.address,gas:R(BigInt(X)),nonce:R(N),to:z.toString(),value:R(BigInt(Q||0)),...j&&{maxFeePerGas:R(BigInt(q?.toString()||"0")),maxPriorityFeePerGas:R(BigInt(_?.toString()||"0"))},...!j&&{gasPrice:R(BigInt($?.toString()||"0"))}};return(await this.sdk.eth.ethSignTransaction(Z)).serialized};sendTransaction=async(z)=>{if(!this.provider)throw new E("wallet_keepkey_no_provider");let Q=await this.signTransaction(z);return await this.provider.broadcastTransaction(Q)};connect=(z)=>new T({chain:this.chain,derivationPath:this.derivationPath,provider:z,sdk:this.sdk})}import{Chain as v,DerivationPath as Zz,derivationPathToString as $z,getRPCUrl as p,MAYAConfig as Yz,USwapError as qz}from"@tcswap/helpers";async function h({sdk:z,derivationPath:Q}){let{createStargateClient:X,getCosmosToolbox:D}=await import("@tcswap/toolboxes/cosmos"),Y=await D(v.Maya),q=Q?$z(Q):`${Zz.MAYA}/0`,{address:_}=await z.address.mayachainGetAddress({address_n:b(q)}),$=async({assetValue:N,recipient:Z,sender:W,memo:H})=>{let B=await import("@cosmjs/amino"),L=B.makeSignDoc??B.default?.makeSignDoc,{getDenomWithChain:I}=await import("@tcswap/toolboxes/cosmos"),K=await Y.getAccount(W);if(!K)throw new qz("wallet_keepkey_account_not_found");let{accountNumber:G,sequence:O=0}=K,M=N.getBaseValue("string"),V=Z&&Z!=="",w=V?{type:"mayachain/MsgSend",value:{amount:[{amount:M,denom:N.symbol.toLowerCase()}],from_address:W,to_address:Z}}:{type:"mayachain/MsgDeposit",value:{coins:[{amount:M,asset:I(N)}],memo:H,signer:W}},f=L([w],{amount:[],gas:"500000000"},Yz.chainId,H,G?.toString(),O),A=await(V?z.mayachain.mayachainSignAminoTransfer:z.mayachain.mayachainSignAminoDeposit)({signDoc:f,signerAddress:W}),k=atob(A.serialized);return new Uint8Array(k.length).map((C,t)=>k.charCodeAt(t))};return{...Y,address:_,deposit:async({assetValue:N,memo:Z})=>{let W=await p(v.Maya),H=await X(W),B=await $({assetValue:N,memo:Z,sender:_}),{transactionHash:L}=await H.broadcastTx(B);return L},transfer:async({assetValue:N,recipient:Z,memo:W})=>{let H=await p(v.Maya),B=await X(H),L=await $({assetValue:N,memo:W,recipient:Z,sender:_}),{transactionHash:I}=await B.broadcastTx(L);return I}}}import{Chain as S,DerivationPath as jz,derivationPathToString as Bz,getRPCUrl as c,THORConfig as Rz,USwapError as Wz}from"@tcswap/helpers";async function d({sdk:z,derivationPath:Q}){let X=await import("@cosmjs/amino"),D=X.makeSignDoc??X.default?.makeSignDoc,{buildAminoMsg:Y,getDefaultChainFee:q,createStargateClient:_,getCosmosToolbox:$}=await import("@tcswap/toolboxes/cosmos"),j=await $(S.THORChain),R=Q?Bz(Q):`${jz.THOR}/0`,{address:N}=await z.address.thorchainGetAddress({address_n:b(R)}),Z=async({assetValue:B,recipient:L,sender:I,memo:K})=>{let G=await j.getAccount(I);if(!G)throw new Wz("wallet_keepkey_account_not_found");let{accountNumber:O,sequence:M=0}=G,V=L&&L!=="",w=Y({assetValue:B,memo:K,recipient:L,sender:I}),f=D([w],q(S.THORChain),Rz.chainId,K,O?.toString(),M),y=V?await z.thorchain.thorchainSignAminoTransfer({signDoc:f,signerAddress:I}):await z.thorchain.thorchainSignAminoDeposit({signDoc:f,signerAddress:I}),A=atob(y.serialized);return new Uint8Array(A.length).map((k,C)=>A.charCodeAt(C))};return{...j,address:N,deposit:async({assetValue:B,memo:L})=>{let I=await c(S.THORChain),K=await _(I),G=await Z({assetValue:B,memo:L,sender:N}),{transactionHash:O}=await K.broadcastTx(G);return O},transfer:async({assetValue:B,recipient:L,memo:I})=>{let K=await c(S.THORChain),G=await _(K),O=await Z({assetValue:B,memo:I,recipient:L,sender:N}),{transactionHash:M}=await G.broadcastTx(O);return M}}}import{Chain as x,DerivationPath as Lz,derivationPathToString as Gz,FeeOption as _z,USwapError as o}from"@tcswap/helpers";async function r({sdk:z,chain:Q,derivationPath:X}){let{getUtxoToolbox:D}=await import("@tcswap/toolboxes/utxo"),Y=await D(Q),q=[x.Bitcoin,x.Litecoin].includes(Q)?"p2wpkh":"p2pkh",_=X?Gz(X):`${Lz[Q]}/0`,$={address_n:b(_),coin:u[Q],script_type:q},j=(await z.address.utxoGetAddress($)).address,R=async(Z,W,H="")=>{let B=Z.txOutputs.map((K)=>{let{value:G,address:O,change:M}=K,V=Q===x.BitcoinCash?Y.stripToCashAddress(O):O;if(M||O===j)return{addressNList:$.address_n,addressType:"change",amount:G,isChange:!0,scriptType:q};if(V)return{address:V,addressType:"spend",amount:G};return null}).filter(Boolean),L=(K)=>{return K.filter((G)=>G!==null&&typeof G==="object"&&Object.keys(G).length>0)};return(await z.utxo.utxoSignTransaction({coin:u[Q],inputs:W,opReturnData:H,outputs:L(B)})).serializedTx?.toString()};return{...Y,address:j,signTransaction:R,transfer:async({recipient:Z,feeOptionKey:W,feeRate:H,memo:B,...L})=>{if(!j)throw new o("wallet_keepkey_invalid_params",{reason:"From address must be provided"});if(!Z)throw new o("wallet_keepkey_invalid_params",{reason:"Recipient address must be provided"});let I=Q===x.BitcoinCash?Y.buildTx:Y.createTransaction,{psbt:K,inputs:G}=await I({...L,feeRate:H||(await Y.getFeeRates())[W||_z.Fast],fetchTxHex:!0,memo:B,recipient:Z,sender:j}),O=G.map(({value:V,index:w,hash:f,txHex:y})=>({addressNList:$.address_n,amount:V.toString(),hex:y||"",scriptType:q,txid:f,vout:w})),M=await R(K,O,B);return Y.broadcastTx(M)}}}var Mz=Hz({connect:({addChain:z,supportedChains:Q,walletType:X})=>async function(Y,q){let _=Iz({chains:Y,supportedChains:Q,walletType:X}),$=P.get("integrations").keepKey;if(!$)throw Error("KeepKey config not found");let j=P.get("apiKeys").keepKey||"1234";await n();let R={apiKey:j,pairingInfo:$},N=await Nz.create(R);if(R.apiKey&&R.apiKey!==j)P.setApiKey("keepKey",R.apiKey);return await Promise.all(_.map(async(Z)=>{let W=await Vz({chain:Z,derivationPath:q?.[Z]||Kz[Z],sdk:N}),H=await W.getAddress()||"";z({...W,address:H,chain:Z,walletType:s.KEEPKEY})})),!0},name:"connectKeepkey",supportedChains:[J.Arbitrum,J.Avalanche,J.Base,J.BinanceSmartChain,J.Bitcoin,J.BitcoinCash,J.Cosmos,J.Dogecoin,J.Dash,J.Ethereum,J.Litecoin,J.Monad,J.Ripple,J.Optimism,J.Polygon,J.THORChain,J.Maya,J.XLayer],walletType:s.KEEPKEY}),sz=Oz(Mz);async function Vz({sdk:z,chain:Q,derivationPath:X}){let{getProvider:D,getEvmToolbox:Y}=await import("@tcswap/toolboxes/evm");switch(Q){case J.BinanceSmartChain:case J.Arbitrum:case J.Optimism:case J.Polygon:case J.Avalanche:case J.Base:case J.Ethereum:case J.Monad:case J.XLayer:{let q=await D(Q),_=new T({chain:Q,derivationPath:X,provider:q,sdk:z});return await Y(Q,{provider:q,signer:_})}case J.Cosmos:return m({derivationPath:X,sdk:z});case J.THORChain:return d({derivationPath:X,sdk:z});case J.Maya:return h({derivationPath:X,sdk:z});case J.Bitcoin:case J.BitcoinCash:case J.Dash:case J.Dogecoin:case J.Litecoin:return r({chain:Q,derivationPath:X,sdk:z});case J.Ripple:{let{rippleWalletMethods:q}=await import("../chunk-eng8tyvd.js");return q({derivationPath:X,sdk:z})}default:throw new Dz("wallet_keepkey_chain_not_supported",{chain:Q})}}async function n(z=0){if(z>=3)alert("KeepKey desktop is required for keepkey-sdk, please go to https://keepkey.com/get-started");if(!await Fz())window.location.assign("keepkey://launch"),await new Promise((X)=>setTimeout(X,30000)),await n(z+1)}async function Fz(z="http://localhost:1646/spec/swagger.json"){try{return(await fetch(z)).status===200}catch{return!1}}export{Mz as keepkeyWallet,sz as KEEPKEY_SUPPORTED_CHAINS};
1
+ import{a as v,b as U}from"../chunk-1w9rn6fj.js";import{c as F}from"../chunk-25q3rr1d.js";import{KeepKeySdk as _z}from"@keepkey/keepkey-sdk";import{Chain as J,filterSupportedChains as Nz,NetworkDerivationPath as Iz,USwapConfig as u,USwapError as Kz,WalletOption as r}from"@tcswap/helpers";import{createWallet as Dz,getWalletSupportedChains as Hz}from"@tcswap/wallet-core";import{Chain as C,DerivationPath as t,derivationPathToString as i,GAIAConfig as g,getRPCUrl as a}from"@tcswap/helpers";async function l({sdk:z,derivationPath:Q}){let{DEFAULT_COSMOS_FEE_MAINNET:X,getCosmosToolbox:D,getFeeRateFromSwapKit:Y,createStargateClient:q}=await import("@tcswap/toolboxes/cosmos"),_=Q?i(Q):`${t.GAIA}/0`,{address:$}=await z.address.cosmosGetAddress({address_n:U(_)}),j=await D(C.Cosmos);if(X.amount[0])X.amount[0].amount=String(await Y(g.chainId,500));return{...j,address:$,transfer:async({assetValue:N,recipient:Z,memo:W})=>{let H=N.getBaseValue("string"),B=await j.getAccount($),L=await z.cosmos.cosmosSignAmino({signDoc:{account_number:B?.accountNumber.toString()??"",chain_id:g.chainId,fee:X,memo:W||"",msgs:[{type:"cosmos-sdk/MsgSend",value:{amount:[{amount:H,denom:"uatom"}],from_address:$,to_address:Z}}],sequence:B?.sequence.toString()??""},signerAddress:$}),I=atob(L.serialized),K=new Uint8Array(I.length).map((V,E)=>I.charCodeAt(E)),G=await a(C.Cosmos);return(await(await q(G)).broadcastTx(K)).transactionHash}}}import{ChainToChainId as e,derivationPathToString as zz,NetworkDerivationPath as Jz,USwapError as b}from"@tcswap/helpers";import{AbstractSigner as Qz}from"ethers";class A extends Qz{sdk;chain;derivationPath;address;provider;constructor({sdk:z,chain:Q,derivationPath:X,provider:D}){super();this.sdk=z,this.chain=Q,this.derivationPath=X||Jz.ETH,this.address="",this.provider=D}signTypedData(){throw new b("wallet_keepkey_method_not_supported",{method:"signTypedData"})}getAddress=async()=>{if(this.address)return this.address;let{address:z}=await this.sdk.address.ethereumGetAddress({address_n:U(zz(this.derivationPath))});return this.address=z,z};signMessage=(z)=>this.sdk.eth.ethSign({address:this.address,message:z});signTransaction=async({to:z,value:Q,gasLimit:X,nonce:D,data:Y,maxFeePerGas:q,maxPriorityFeePerGas:_,gasPrice:$})=>{if(!z)throw new b("wallet_keepkey_invalid_params",{reason:"Missing to address"});if(!X)throw new b("wallet_keepkey_invalid_params",{reason:"Missing gasLimit"});if(!Y)throw new b("wallet_keepkey_invalid_params",{reason:"Missing data"});let j=!!((q||_)&&!$);if(j&&!q)throw new b("wallet_keepkey_invalid_params",{reason:"Missing maxFeePerGas"});if(j&&!_)throw new b("wallet_keepkey_invalid_params",{reason:"Missing maxPriorityFeePerGas"});if(!(j||$))throw new b("wallet_keepkey_invalid_params",{reason:"Missing gasPrice"});let{toHexString:R}=await import("@tcswap/toolboxes/evm"),N=D?BigInt(D):BigInt(await this.provider.getTransactionCount(await this.getAddress(),"pending")),Z={addressNList:[2147483692,2147483708,2147483648,0,0],chainId:R(BigInt(e[this.chain])),data:Y,from:this.address,gas:R(BigInt(X)),nonce:R(N),to:z.toString(),value:R(BigInt(Q||0)),...j&&{maxFeePerGas:R(BigInt(q?.toString()||"0")),maxPriorityFeePerGas:R(BigInt(_?.toString()||"0"))},...!j&&{gasPrice:R(BigInt($?.toString()||"0"))}};return(await this.sdk.eth.ethSignTransaction(Z)).serialized};sendTransaction=async(z)=>{if(!this.provider)throw new b("wallet_keepkey_no_provider");let Q=await this.signTransaction(z);return await this.provider.broadcastTransaction(Q)};connect=(z)=>new A({chain:this.chain,derivationPath:this.derivationPath,provider:z,sdk:this.sdk})}import{Chain as k,DerivationPath as Xz,derivationPathToString as Zz,getRPCUrl as m,MAYAConfig as $z,USwapError as Yz}from"@tcswap/helpers";async function p({sdk:z,derivationPath:Q}){let{createStargateClient:X,getCosmosToolbox:D}=await import("@tcswap/toolboxes/cosmos"),Y=await D(k.Maya),q=Q?Zz(Q):`${Xz.MAYA}/0`,{address:_}=await z.address.mayachainGetAddress({address_n:U(q)}),$=async({assetValue:N,recipient:Z,sender:W,memo:H})=>{let B=await import("@cosmjs/amino"),L=B.makeSignDoc??B.default?.makeSignDoc,{getDenomWithChain:I}=await import("@tcswap/toolboxes/cosmos"),K=await Y.getAccount(W);if(!K)throw new Yz("wallet_keepkey_account_not_found");let{accountNumber:G,sequence:O=0}=K,M=N.getBaseValue("string"),V=Z&&Z!=="",E=V?{type:"mayachain/MsgSend",value:{amount:[{amount:M,denom:N.symbol.toLowerCase()}],from_address:W,to_address:Z}}:{type:"mayachain/MsgDeposit",value:{coins:[{amount:M,asset:I(N)}],memo:H,signer:W}},w=L([E],{amount:[],gas:"500000000"},$z.chainId,H,G?.toString(),O),y=await(V?z.mayachain.mayachainSignAminoTransfer:z.mayachain.mayachainSignAminoDeposit)({signDoc:w,signerAddress:W}),x=atob(y.serialized);return new Uint8Array(x.length).map((P,n)=>x.charCodeAt(n))};return{...Y,address:_,deposit:async({assetValue:N,memo:Z})=>{let W=await m(k.Maya),H=await X(W),B=await $({assetValue:N,memo:Z,sender:_}),{transactionHash:L}=await H.broadcastTx(B);return L},transfer:async({assetValue:N,recipient:Z,memo:W})=>{let H=await m(k.Maya),B=await X(H),L=await $({assetValue:N,memo:W,recipient:Z,sender:_}),{transactionHash:I}=await B.broadcastTx(L);return I}}}import{Chain as T,DerivationPath as qz,derivationPathToString as jz,getRPCUrl as h,THORConfig as Bz,USwapError as Rz}from"@tcswap/helpers";async function c({sdk:z,derivationPath:Q}){let X=await import("@cosmjs/amino"),D=X.makeSignDoc??X.default?.makeSignDoc,{buildAminoMsg:Y,getDefaultChainFee:q,createStargateClient:_,getCosmosToolbox:$}=await import("@tcswap/toolboxes/cosmos"),j=await $(T.THORChain),R=Q?jz(Q):`${qz.THOR}/0`,{address:N}=await z.address.thorchainGetAddress({address_n:U(R)}),Z=async({assetValue:B,recipient:L,sender:I,memo:K})=>{let G=await j.getAccount(I);if(!G)throw new Rz("wallet_keepkey_account_not_found");let{accountNumber:O,sequence:M=0}=G,V=L&&L!=="",E=Y({assetValue:B,memo:K,recipient:L,sender:I}),w=D([E],q(T.THORChain),Bz.chainId,K,O?.toString(),M),f=V?await z.thorchain.thorchainSignAminoTransfer({signDoc:w,signerAddress:I}):await z.thorchain.thorchainSignAminoDeposit({signDoc:w,signerAddress:I}),y=atob(f.serialized);return new Uint8Array(y.length).map((x,P)=>y.charCodeAt(P))};return{...j,address:N,deposit:async({assetValue:B,memo:L})=>{let I=await h(T.THORChain),K=await _(I),G=await Z({assetValue:B,memo:L,sender:N}),{transactionHash:O}=await K.broadcastTx(G);return O},transfer:async({assetValue:B,recipient:L,memo:I})=>{let K=await h(T.THORChain),G=await _(K),O=await Z({assetValue:B,memo:I,recipient:L,sender:N}),{transactionHash:M}=await G.broadcastTx(O);return M}}}import{Chain as S,DerivationPath as Wz,derivationPathToString as Lz,FeeOption as Gz,USwapError as d}from"@tcswap/helpers";async function o({sdk:z,chain:Q,derivationPath:X}){let{getUtxoToolbox:D}=await import("@tcswap/toolboxes/utxo"),Y=await D(Q),q=[S.Bitcoin,S.Litecoin].includes(Q)?"p2wpkh":"p2pkh",_=X?Lz(X):`${Wz[Q]}/0`,$={address_n:U(_),coin:v[Q],script_type:q},j=(await z.address.utxoGetAddress($)).address,R=async(Z,W,H="")=>{let B=Z.txOutputs.map((K)=>{let{value:G,address:O,change:M}=K,V=Q===S.BitcoinCash?Y.stripToCashAddress(O):O;if(M||O===j)return{addressNList:$.address_n,addressType:"change",amount:G,isChange:!0,scriptType:q};if(V)return{address:V,addressType:"spend",amount:G};return null}).filter(Boolean),L=(K)=>{return K.filter((G)=>G!==null&&typeof G==="object"&&Object.keys(G).length>0)};return(await z.utxo.utxoSignTransaction({coin:v[Q],inputs:W,opReturnData:H,outputs:L(B)})).serializedTx?.toString()};return{...Y,address:j,signTransaction:R,transfer:async({recipient:Z,feeOptionKey:W,feeRate:H,memo:B,...L})=>{if(!j)throw new d("wallet_keepkey_invalid_params",{reason:"From address must be provided"});if(!Z)throw new d("wallet_keepkey_invalid_params",{reason:"Recipient address must be provided"});let I=Q===S.BitcoinCash?Y.buildTx:Y.createTransaction,{psbt:K,inputs:G}=await I({...L,feeRate:H||(await Y.getFeeRates())[W||Gz.Fast],fetchTxHex:!0,memo:B,recipient:Z,sender:j}),O=G.map(({value:V,index:E,hash:w,txHex:f})=>({addressNList:$.address_n,amount:V.toString(),hex:f||"",scriptType:q,txid:w,vout:E})),M=await R(K,O,B);return Y.broadcastTx(M)}}}var Oz=Dz({connect:({addChain:z,supportedChains:Q,walletType:X})=>async function(Y,q){let _=Nz({chains:Y,supportedChains:Q,walletType:X}),$=u.get("integrations").keepKey;if(!$)throw Error("KeepKey config not found");let j=u.get("apiKeys").keepKey||"1234";await s();let R={apiKey:j,pairingInfo:$},N=await _z.create(R);if(R.apiKey&&R.apiKey!==j)u.setApiKey("keepKey",R.apiKey);return await Promise.all(_.map(async(Z)=>{let W=await Mz({chain:Z,derivationPath:q?.[Z]||Iz[Z],sdk:N}),H=await W.getAddress()||"";z({...W,address:H,chain:Z,walletType:r.KEEPKEY})})),!0},name:"connectKeepkey",supportedChains:[J.Arbitrum,J.Avalanche,J.Base,J.BinanceSmartChain,J.Bitcoin,J.BitcoinCash,J.Cosmos,J.Dogecoin,J.Dash,J.Ethereum,J.Litecoin,J.Monad,J.Ripple,J.Optimism,J.Polygon,J.THORChain,J.Maya,J.XLayer],walletType:r.KEEPKEY}),rz=Hz(Oz);async function Mz({sdk:z,chain:Q,derivationPath:X}){let{getProvider:D,getEvmToolbox:Y}=await import("@tcswap/toolboxes/evm");switch(Q){case J.BinanceSmartChain:case J.Arbitrum:case J.Optimism:case J.Polygon:case J.Avalanche:case J.Base:case J.Ethereum:case J.Monad:case J.XLayer:{let q=await D(Q),_=new A({chain:Q,derivationPath:X,provider:q,sdk:z});return await Y(Q,{provider:q,signer:_})}case J.Cosmos:return l({derivationPath:X,sdk:z});case J.THORChain:return c({derivationPath:X,sdk:z});case J.Maya:return p({derivationPath:X,sdk:z});case J.Bitcoin:case J.BitcoinCash:case J.Dash:case J.Dogecoin:case J.Litecoin:return o({chain:Q,derivationPath:X,sdk:z});case J.Ripple:{let{rippleWalletMethods:q}=await import("../chunk-9pax4q2c.js");return q({derivationPath:X,sdk:z})}default:throw new Kz("wallet_keepkey_chain_not_supported",{chain:Q})}}async function s(z=0){if(z>=3)alert("KeepKey desktop is required for keepkey-sdk, please go to https://keepkey.com/get-started");if(!await Vz())window.location.assign("keepkey://launch"),await new Promise((X)=>setTimeout(X,30000)),await s(z+1)}async function Vz(z="http://localhost:1646/spec/swagger.json"){try{return(await fetch(z)).status===200}catch{return!1}}export{Oz as keepkeyWallet,rz as KEEPKEY_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=3DDA3940447F089164756E2164756E21
3
+ //# debugId=B00222DD30CAD9D564756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -9,7 +9,7 @@
9
9
  "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type { KeepKeySdk, TypesThorchainSignDocDeposit, TypesThorchainSignDocTransfer } from \"@keepkey/keepkey-sdk\";\nimport {\n type AssetValue,\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n type GenericTransferParams,\n getRPCUrl,\n THORConfig,\n USwapError,\n} from \"@tcswap/helpers\";\nimport type { ThorchainDepositParams } from \"@tcswap/toolboxes/cosmos\";\n\nimport { bip32ToAddressNList } from \"../coins\";\n\ntype SignTransactionParams = { assetValue: AssetValue; recipient?: string; sender: string; memo: string | undefined };\n\nexport async function thorchainWalletMethods({\n sdk,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n derivationPath?: DerivationPathArray;\n}): Promise<any> {\n const importedAmino = await import(\"@cosmjs/amino\");\n const makeSignDoc = importedAmino.makeSignDoc ?? importedAmino.default?.makeSignDoc;\n const { buildAminoMsg, getDefaultChainFee, createStargateClient, getCosmosToolbox } = await import(\n \"@tcswap/toolboxes/cosmos\"\n );\n\n const toolbox = await getCosmosToolbox(Chain.THORChain);\n const derivationPathString = derivationPath ? derivationPathToString(derivationPath) : `${DerivationPath.THOR}/0`;\n\n const { address: fromAddress } = (await sdk.address.thorchainGetAddress({\n address_n: bip32ToAddressNList(derivationPathString),\n })) as { address: string };\n\n const signTransaction = async ({ assetValue, recipient, sender, memo }: SignTransactionParams) => {\n const account = await toolbox.getAccount(sender);\n if (!account) throw new USwapError(\"wallet_keepkey_account_not_found\");\n const { accountNumber, sequence = 0 } = account;\n\n const isTransfer = recipient && recipient !== \"\";\n const msg = buildAminoMsg({ assetValue, memo, recipient, sender });\n\n const signDoc = makeSignDoc(\n [msg],\n getDefaultChainFee(Chain.THORChain),\n THORConfig.chainId,\n memo,\n accountNumber?.toString(),\n sequence,\n );\n\n const signedTx = isTransfer\n ? await sdk.thorchain.thorchainSignAminoTransfer({\n signDoc: signDoc as TypesThorchainSignDocTransfer,\n signerAddress: sender,\n })\n : await sdk.thorchain.thorchainSignAminoDeposit({\n signDoc: signDoc as TypesThorchainSignDocDeposit,\n signerAddress: sender,\n });\n const decodedBytes = atob(signedTx.serialized);\n return new Uint8Array(decodedBytes.length).map((_, i) => decodedBytes.charCodeAt(i));\n };\n\n const transfer = async ({ assetValue, recipient, memo }: GenericTransferParams) => {\n const rpcUrl = await getRPCUrl(Chain.THORChain);\n const stargateClient = await createStargateClient(rpcUrl);\n const signedTransaction = await signTransaction({ assetValue, memo, recipient, sender: fromAddress });\n const { transactionHash } = await stargateClient.broadcastTx(signedTransaction);\n\n return transactionHash;\n };\n\n const deposit = async ({ assetValue, memo }: ThorchainDepositParams) => {\n const rpcUrl = await getRPCUrl(Chain.THORChain);\n const stargateClient = await createStargateClient(rpcUrl);\n const signedTransaction = await signTransaction({ assetValue, memo, sender: fromAddress });\n const { transactionHash } = await stargateClient.broadcastTx(signedTransaction);\n\n return transactionHash;\n };\n\n // const signMessage = async (message: string) => {\n // const stargateClient = await createStargateClient(RPCUrl.THORChain);\n // // return signedTx;\n // };\n\n return { ...toolbox, address: fromAddress, deposit, transfer };\n}\n",
10
10
  "/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n FeeOption,\n type GenericTransferParams,\n USwapError,\n type UTXOChain,\n} from \"@tcswap/helpers\";\nimport type { UTXOToolboxes } from \"@tcswap/toolboxes/utxo\";\nimport type { Psbt } from \"bitcoinjs-lib\";\nimport { bip32ToAddressNList, ChainToKeepKeyName } from \"../coins\";\n\ninterface KeepKeyInputObject {\n addressNList: number[];\n scriptType: string;\n amount: string;\n vout: number;\n txid: string;\n hex: string;\n}\n\nexport async function utxoWalletMethods({\n sdk,\n chain,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n chain: Exclude<UTXOChain, typeof Chain.Zcash>;\n derivationPath?: DerivationPathArray;\n}): Promise<\n UTXOToolboxes[UTXOChain] & {\n address: string;\n signTransaction: (psbt: Psbt, inputs: KeepKeyInputObject[], memo?: string) => Promise<string>;\n }\n> {\n const { getUtxoToolbox } = await import(\"@tcswap/toolboxes/utxo\");\n // This might not work for BCH\n const toolbox = await getUtxoToolbox(chain);\n const scriptType = [Chain.Bitcoin, Chain.Litecoin].includes(chain as typeof Chain.Bitcoin)\n ? (\"p2wpkh\" as const)\n : (\"p2pkh\" as const);\n\n const derivationPathString = derivationPath ? derivationPathToString(derivationPath) : `${DerivationPath[chain]}/0`;\n\n const addressInfo = {\n address_n: bip32ToAddressNList(derivationPathString),\n coin: ChainToKeepKeyName[chain],\n script_type: scriptType,\n };\n\n const walletAddress: string = (await sdk.address.utxoGetAddress(addressInfo)).address;\n\n const signTransaction = async (psbt: Psbt, inputs: KeepKeyInputObject[], memo = \"\") => {\n const outputs = psbt.txOutputs\n .map((output) => {\n const { value, address, change } = output as {\n address: string;\n script: Buffer;\n value: number;\n change?: boolean;\n };\n\n const outputAddress =\n // @ts-expect-error - stripToCashAddress is not defined in the UTXO toolbox just only on BCH\n chain === Chain.BitcoinCash ? toolbox.stripToCashAddress(address) : address;\n\n if (change || address === walletAddress) {\n return {\n addressNList: addressInfo.address_n,\n addressType: \"change\",\n amount: value,\n isChange: true,\n scriptType,\n };\n }\n\n if (outputAddress) {\n return { address: outputAddress, addressType: \"spend\", amount: value };\n }\n\n return null;\n })\n .filter(Boolean);\n\n const removeNullAndEmptyObjectsFromArray = (arr: any[]) => {\n return arr.filter((item) => item !== null && typeof item === \"object\" && Object.keys(item).length > 0);\n };\n\n const responseSign = await sdk.utxo.utxoSignTransaction({\n coin: ChainToKeepKeyName[chain],\n inputs,\n opReturnData: memo,\n outputs: removeNullAndEmptyObjectsFromArray(outputs),\n });\n\n return responseSign.serializedTx?.toString();\n };\n\n const transfer = async ({ recipient, feeOptionKey, feeRate, memo, ...rest }: GenericTransferParams) => {\n if (!walletAddress)\n throw new USwapError(\"wallet_keepkey_invalid_params\", { reason: \"From address must be provided\" });\n if (!recipient)\n throw new USwapError(\"wallet_keepkey_invalid_params\", { reason: \"Recipient address must be provided\" });\n\n const createTxMethod =\n chain === Chain.BitcoinCash\n ? (toolbox as UTXOToolboxes[\"BCH\"]).buildTx\n : (toolbox as UTXOToolboxes[\"BTC\"]).createTransaction;\n\n const { psbt, inputs: rawInputs } = await createTxMethod({\n ...rest,\n feeRate: feeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast],\n fetchTxHex: true,\n memo,\n recipient,\n sender: walletAddress,\n });\n\n const inputs = rawInputs.map(({ value, index, hash, txHex }) => ({\n //@TODO don't hardcode master, lookup on blockbook what input this is for and what path that address is!\n addressNList: addressInfo.address_n,\n amount: value.toString(),\n hex: txHex || \"\",\n scriptType,\n txid: hash,\n vout: index,\n }));\n\n const txHex = await signTransaction(psbt, inputs, memo);\n return toolbox.broadcastTx(txHex);\n };\n\n return { ...toolbox, address: walletAddress, signTransaction, transfer };\n}\n"
11
11
  ],
12
- "mappings": "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",
13
- "debugId": "3DDA3940447F089164756E2164756E21",
12
+ "mappings": "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",
13
+ "debugId": "B00222DD30CAD9D564756E2164756E21",
14
14
  "names": []
15
15
  }
@@ -1,5 +1,5 @@
1
- var Zy={};Ny(Zy,{ledgerWallet:()=>VL,LEDGER_SUPPORTED_CHAINS:()=>Cy});module.exports=By(Zy);var T=require("@tcswap/helpers"),x=require("@tcswap/wallet-core");var B=require("@tcswap/helpers"),o=async({chain:L,ledgerClient:y})=>{if(!y)return"";switch(L){case B.Chain.Cosmos:case B.Chain.THORChain:return y.connect();case B.Chain.Ethereum:case B.Chain.BinanceSmartChain:case B.Chain.Avalanche:case B.Chain.Polygon:case B.Chain.Arbitrum:case B.Chain.Optimism:case B.Chain.Base:case B.Chain.Aurora:case B.Chain.Gnosis:case B.Chain.XLayer:return y.getAddress();case B.Chain.Bitcoin:case B.Chain.BitcoinCash:case B.Chain.Dash:case B.Chain.Dogecoin:case B.Chain.Litecoin:case B.Chain.Zcash:{let i=y;await i.connect();let m=await i.getAddress();return L===B.Chain.BitcoinCash?m.replace("bitcoincash:",""):m}case B.Chain.Near:return await y.getAddress();case B.Chain.Ripple:return y.getAddress();case B.Chain.Tron:return y.getAddress();default:throw new B.USwapError("wallet_chain_not_supported",{chain:L,wallet:B.WalletOption.LEDGER})}};var G=require("@tcswap/helpers");var z=require("@tcswap/helpers");var f=require("@tcswap/helpers");var yL=require("@tcswap/helpers");var S=85,e=250;var P={GET_ADDR_SECP256K1:4,GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2},I={ADD:1,INIT:0,LAST:2},r={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},c={JSON:0},W={NoError:36864},GL={1:"U2F: Unknown",2:"U2F: Bad request",3:"U2F: Configuration unsupported",4:"U2F: Device Ineligible",5:"U2F: Timeout",14:"Timeout",25600:"Execution Error",26368:"Wrong Length",26626:"Error deriving keys",27010:"Empty Buffer",27011:"Output buffer too small",27012:"Data is invalid",27013:"Conditions not satisfied",27014:"Transaction rejected",27264:"Bad key handle",27392:"Invalid P1/P2",27904:"Instruction not supported",28160:"App does not seem to be open",28416:"Unknown error",28417:"Sign/verify error",36864:"No errors",36865:"Device is busy"};function J(L){if(L in GL)return GL[L];return`Unknown Status Code: ${L}`}function wy(L){return typeof L==="object"&&L!==null&&!Array.isArray(L)&&!(L instanceof Date)}function j(L){if(L){if(wy(L)){if(Object.hasOwn(L,"statusCode"))return{error_message:J(L.statusCode),return_code:L.statusCode};if(Object.hasOwn(L,"return_code")&&Object.hasOwn(L,"error_message"))return L}return{error_message:L.toString(),return_code:65535}}return{error_message:L.toString(),return_code:65535}}function s(L){return L.send(85,P.GET_VERSION,0,0).then((y)=>{let i=y.slice(-2),m=i[0]*256+i[1],_=0;if(y.length>=9)_=(y[5]<<24)+(y[6]<<16)+(y[7]<<8)+(y[8]<<0);return{device_locked:y[4]===1,error_message:J(m),major:y[1],minor:y[2],patch:y[3],return_code:m,target_id:_.toString(16),test_mode:y[0]!==0}},j)}var E=require("@tcswap/helpers");function XL(L){if(L==null||L.length<3)throw new E.USwapError("wallet_ledger_invalid_params",{reason:"Path too short"});if(L.length>10)throw new E.USwapError("wallet_ledger_invalid_params",{reason:"Path too long"});let y=Buffer.alloc(1+4*L.length);y.writeUInt8(L.length,0);for(let i=0;i<L.length;i+=1){let m=L[i]||0;if(i<3)m|=2147483648;y.writeInt32LE(m,1+i*4)}return y}function LL(L,y,i,m,_=c.JSON){return L.transport.send(S,P.SIGN_SECP256K1,y,_,m,[W.NoError,27012,27264]).then((w)=>{let l=w.slice(-2),t=l[0]*256+l[1],O=J(t);if(t===27264||t===27012)O=`${O} : ${w.slice(0,w.length-2).toString("ascii")}`;let R=null;if(w.length>2)R=w.slice(0,w.length-2);return{error_message:O,return_code:t,signature:R}},j)}function ty(L){if(L.length!==65)throw new E.USwapError("wallet_ledger_invalid_params",{reason:"decompressed public key length should be 65 bytes"});let y=L.slice(33,65),i=Buffer.from([2+(y[y.length-1]&1)]);return Buffer.concat([i,L.slice(1,33)])}function BL(L,y){return L.transport.send(S,P.INS_PUBLIC_KEY_SECP256K1,0,0,y,[W.NoError]).then((i)=>{let m=i.slice(-2),_=m[0]*256+m[1],w=Buffer.from(i.slice(0,65));return{compressed_pk:ty(w),error_message:J(_),pk:w,return_code:_}},j)}function NL(L){if(!L||L.length!==5)throw new E.USwapError("wallet_ledger_invalid_params",{reason:"Path must be exactly 5 elements"});let y=Buffer.alloc(20);return y.writeUInt32LE(2147483648+L[0],0),y.writeUInt32LE(2147483648+L[1],4),y.writeUInt32LE(2147483648+L[2],8),y.writeUInt32LE(L[3],12),y.writeUInt32LE(L[4],16),y}function CL(L,y,i,m,_=c.JSON){let w=I.ADD;if(y===1)w=I.INIT;if(y===i)w=I.LAST;return LL(L,w,0,m,_)}function ML(L,y){return L.transport.send(S,P.GET_ADDR_SECP256K1,0,0,y,[W.NoError]).then((i)=>{let m=i.slice(-2),_=m[0]*256+m[1];return{compressed_pk:Buffer.from(i.slice(0,33)),error_message:J(_),pk:"OBSOLETE PROPERTY",return_code:_}},j)}class b{transport;versionResponse;constructor(L){if(!L)throw new yL.USwapError("wallet_ledger_transport_not_defined");this.transport=L}static serializeHRP(L){if(L==null||L.length<3||L.length>83)throw new yL.USwapError("wallet_ledger_invalid_params",{reason:"Invalid HRP"});let y=Buffer.alloc(1+L.length);return y.writeUInt8(L.length,0),y.write(L,1),y}async serializePath(L){if(this.versionResponse=await s(this.transport),this.versionResponse.return_code!==W.NoError)throw this.versionResponse;switch(this.versionResponse.major){case 1:return XL(L);case 2:return NL(L);default:return Buffer.alloc(0)}}async signGetChunks(L,y){let i=await this.serializePath(L),m=[];m.push(i);for(let _=0;_<y.length;_+=e){let w=_+e;if(_>y.length)w=y.length;m.push(y.slice(_,w))}return m}async getVersion(){try{return this.versionResponse=await s(this.transport),this.versionResponse}catch(L){return j(L)}}appInfo(){return this.transport.send(176,1,0,0).then((L)=>{let y=L.slice(-2),i=y[0]*256+y[1],m="",_="",w=0,l=0;if(L[0]!==1)return{error_message:"response format ID not recognized",return_code:36865};let t=L[1];m=L.slice(2,2+t).toString("ascii");let O=2+t,R=L[O];O+=1,_=L.slice(O,O+R).toString("ascii"),O+=R;let g=L[O];return O+=1,w=g,l=L[O],{appName:m,appVersion:_,error_message:J(i),flag_onboarded:(l&4)!==0,flag_pin_validated:(l&128)!==0,flag_recovery:(l&1)!==0,flag_signed_mcu_code:(l&2)!==0,flagLen:w,flagsValue:l,return_code:i}},j)}deviceInfo(){return this.transport.send(224,1,0,0,Buffer.from([]),[W.NoError,28160]).then((L)=>{let y=L.slice(-2),i=y[0]*256+y[1];if(i===28160)return{error_message:"This command is only available in the Dashboard",return_code:i};let m=L.slice(0,4).toString("hex"),_=4,w=L[_];_+=1;let l=L.slice(_,_+w).toString();_+=w;let t=L[_];_+=1;let O=L.slice(_,_+t).toString("hex");_+=t;let R=L[_];_+=1;let g=L.slice(_,_+R);if(g[R-1]===0)g=L.slice(_,_+R-1);let N=g.toString();return{error_message:J(i),flag:O,mcuVersion:N,return_code:i,seVersion:l,targetId:m}},j)}async publicKey(L){try{let y=await this.serializePath(L);switch(this.versionResponse.major){case 1:return BL(this,y);case 2:{let i=Buffer.concat([b.serializeHRP("thor"),y]);return ML(this,i)}default:return{error_message:"App Version is not supported",return_code:25600}}}catch(y){return j(y)}}getAddressAndPubKey(L,y,i=!1){return this.serializePath(L).then((m)=>{let _=Buffer.concat([b.serializeHRP(y),m]);return this.transport.send(S,P.GET_ADDR_SECP256K1,i?r.SHOW_ADDRESS_IN_DEVICE:r.ONLY_RETRIEVE,0,_,[W.NoError]).then((w)=>{let l=w.slice(-2),t=l[0]*256+l[1],O=Buffer.from(w.slice(0,33));return{bech32_address:Buffer.from(w.slice(33,-2)).toString(),compressed_pk:O,error_message:J(t),return_code:t}},j)}).catch((m)=>j(m))}showAddressAndPubKey(L,y){return this.getAddressAndPubKey(L,y,!0)}signSendChunk(L,y,i,m=c.JSON){switch(this.versionResponse.major){case 1:return LL(this,L,y,i,m);case 2:return CL(this,L,y,i,m);default:return{error_message:"App Version is not supported",return_code:25600}}}async sign(L,y,i=c.JSON){let m=Buffer.from(y),_=[],w;try{_=await this.signGetChunks(L,m),w=await this.signSendChunk(1,_.length,_[0],i)}catch(t){j(t)}let l={error_message:w.error_message,return_code:w.return_code,signature:null};for(let t=1;t<_.length;t+=1)if(l=await this.signSendChunk(1+t,_.length,_[t],i),l.return_code!==W.NoError)break;return{error_message:l.error_message,return_code:l.return_code,signature:l.signature}}}var n=require("@tcswap/helpers"),iL=()=>navigator?.usb,ly=async()=>{let L=iL();if(typeof L?.getDevices!=="function")return{};let{ledgerUSBVendorId:y}=await import("@ledgerhq/devices"),m=(await L?.getDevices()).filter((_)=>_.vendorId===y);if(m.length>0)return m[0];return L?.requestDevice({filters:[{vendorId:y}]})},F=async()=>{let L=await ly();if(!L)throw new n.USwapError("wallet_ledger_device_not_found");if(L.opened||await L.open(),L.configuration===null)await L.selectConfiguration(1);try{await L.reset()}catch{}let y=L.configuration??L.configurations?.[0],i=y?.interfaces.find(({alternates:g})=>g.some(({interfaceClass:N})=>N===255))||y?.interfaces.find(({alternates:g})=>g.some(({interfaceClass:N})=>N===3));if(!i)throw await L.close(),new n.USwapError("wallet_ledger_connection_error");let m=i.alternates?.find(({interfaceClass:g})=>g===3)?.interfaceClass,_=i.alternates?.find(({interfaceClass:g})=>g===255)?.interfaceClass;if(m&&!_){let g=(await import("@ledgerhq/hw-transport-webhid")).default;if(!await g.isSupported())throw await L.close(),new n.USwapError("wallet_ledger_webhid_not_supported");return await g.create()}try{await L.claimInterface(i.interfaceNumber)}catch(g){throw await L.close(),new n.USwapError("wallet_ledger_connection_claimed",g)}let w=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await w.isSupported())throw new n.USwapError("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:t}=await import("@ledgerhq/errors"),O=new w(L,i.interfaceNumber),R=(g)=>{if(L===g.device)iL()?.removeEventListener("disconnect",R),O._emitDisconnect(new t)};return iL()?.addEventListener("disconnect",R),O};class V{ledgerTimeout=50000;derivationPath=f.NetworkDerivationPath.GAIA;transport;ledgerApp;chain="thor";checkOrCreateTransportAndLedger=async(L=!1)=>{if(!L&&this.transport&&this.ledgerApp)return;try{switch(this.transport=L||!this.transport?await F():this.transport,this.chain){case"thor":{this.ledgerApp=L||!this.ledgerApp?new b(this.transport):this.ledgerApp;break}case"cosmos":{let y=(await import("@ledgerhq/hw-app-cosmos")).default;this.ledgerApp=L||!this.ledgerApp?new y(this.transport):this.ledgerApp}}return this.ledgerApp}catch(y){throw new f.USwapError("wallet_ledger_connection_error",y)}};validateResponse=(L,y)=>{switch(L){case f.LedgerErrorCode.NoError:return;case f.LedgerErrorCode.LockedDevice:throw new f.USwapError("wallet_ledger_device_locked",{message:`Ledger is locked: ${y}`});case f.LedgerErrorCode.TC_NotFound:throw new f.USwapError("wallet_ledger_device_not_found");default:break}}}class _L extends V{pubKey=null;derivationPath;constructor(L=z.NetworkDerivationPath.GAIA){super();this.chain="cosmos",this.derivationPath=z.derivationPathToString(L)}connect=async()=>{await this.checkOrCreateTransportAndLedger(!0);let{publicKey:L,address:y}=await this.getAddressAndPubKey();return this.pubKey=Buffer.from(L,"hex").toString("base64"),y};getAddressAndPubKey=async()=>{return await this.checkOrCreateTransportAndLedger(!0),await this.ledgerApp.getAddress(this.derivationPath,this.chain)};signTransaction=async(L,y="0")=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:i,error_message:m,signature:_}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new z.USwapError("wallet_ledger_pubkey_not_found");return this.validateResponse(i,m),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:y,signature:_}]};signAmino=async(L,y)=>{await this.checkOrCreateTransportAndLedger(!0);let i=await this.getAccounts();if(i.findIndex((M)=>M.address===L)===-1)throw new z.USwapError("wallet_ledger_address_not_found",{address:L});let _=await import("@cosmjs/amino"),w=_.encodeSecp256k1Signature??_.default?.encodeSecp256k1Signature,l=_.serializeSignDoc??_.default?.serializeSignDoc,t=await import("@cosmjs/crypto"),O=t.Secp256k1Signature??t.default?.Secp256k1Signature,R=l(y),g=await this.ledgerApp.sign(this.derivationPath,R);this.validateResponse(g.return_code,g.error_message);let N=O.fromDer(g.signature).toFixedLength();return{signature:w(i[0].pubkey,N),signed:y}};getAccounts=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.getAddressAndPubKey();return[{address:L.address,algo:"secp256k1",pubkey:Buffer.from(L.publicKey,"hex")}]}}var C=require("@tcswap/helpers"),FL=require("ethers");class Z extends FL.AbstractSigner{chainId=C.ChainId.Ethereum;derivationPath="";ledgerApp=null;ledgerTimeout=50000;constructor({provider:L,derivationPath:y=C.NetworkDerivationPath.OP,chainId:i=C.ChainId.Optimism}){super(L);this.chainId=i||C.ChainId.Ethereum,this.derivationPath=typeof y==="string"?y:C.derivationPathToString(y),Object.defineProperty(this,"provider",{enumerable:!0,value:L||null,writable:!1})}connect=(L)=>new Z({chainId:this.chainId,derivationPath:this.derivationPath,provider:L});checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await F(),y=(await import("@ledgerhq/hw-app-eth")).default;this.ledgerApp=new y(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new C.USwapError("wallet_ledger_failed_to_get_address");return L.address};getAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath)};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signMessage=async(L)=>{let{Signature:y}=await import("ethers");await this.createTransportAndLedger();let i=await this.ledgerApp?.signPersonalMessage(this.derivationPath,L);if(!i)throw new C.USwapError("wallet_ledger_signing_error");return i.r=`0x${i.r}`,i.s=`0x${i.s}`,y.from(i).serialized};sendTransaction=async(L)=>{if(!this.provider)throw new C.USwapError("wallet_ledger_no_provider");let y=await this.signTransaction(L);return await this.provider.broadcastTransaction(y)};signTypedData(){throw new C.USwapError("wallet_ledger_method_not_supported",{method:"signTypedData"})}signTransaction=async(L)=>{let{Transaction:y}=await import("ethers");await this.createTransportAndLedger();let i=await this.provider?.getTransactionCount(L.from||await this.getAddress()),m={chainId:L.chainId||this.chainId,data:L.data,gasLimit:L.gasLimit,...L.gasPrice&&{gasPrice:L.gasPrice},...!L.gasPrice&&L.maxFeePerGas&&{maxFeePerGas:L.maxFeePerGas,maxPriorityFeePerGas:L.maxPriorityFeePerGas},nonce:L.nonce!==void 0?Number((L.nonce||i||0).toString()):i,to:L.to?.toString(),type:L.type&&!Number.isNaN(L.type)?L.type:L.maxFeePerGas?2:0,value:L.value},_=y.from(m).unsignedSerialized.slice(2),{ledgerService:w}=await import("@ledgerhq/hw-app-eth"),l=await w.resolveTransaction(_,{},{erc20:!0,externalPlugins:!0}),t=await this.ledgerApp?.signTransaction(this.derivationPath,_,l);if(!t)throw new C.USwapError("wallet_ledger_signing_error");let{r:O,s:R,v:g}=t;return y.from({...m,signature:{r:`0x${O}`,s:`0x${R}`,v:Number(BigInt(g))}}).serialized}}var jL=(L)=>new Z({...L,chainId:C.ChainId.Arbitrum}),ZL=(L)=>new Z({...L,chainId:C.ChainId.Aurora}),AL=(L)=>new Z({...L,chainId:C.ChainId.Avalanche}),$L=(L)=>new Z({...L,chainId:C.ChainId.Base}),JL=(L)=>new Z({...L,chainId:C.ChainId.Ethereum}),fL=(L)=>new Z({...L,chainId:C.ChainId.Gnosis}),KL=(L)=>new Z({...L,chainId:C.ChainId.Optimism}),QL=(L)=>new Z({...L,chainId:C.ChainId.Polygon}),WL=(L)=>new Z({...L,chainId:C.ChainId.BinanceSmartChain}),YL=(L)=>new Z({...L,chainId:C.ChainId.Monad}),DL=(L)=>new Z({...L,chainId:C.ChainId.XLayer});async function HL(L){let y=(await import("@ledgerhq/hw-app-near")).default,{Chain:i,NetworkDerivationPath:m,USwapError:_}=await import("@tcswap/helpers"),w=await F(),l=new y(w),t=(L||m[i.Near]).join("'/").concat("'"),{address:O,publicKey:R}=await l.getAddress(t);return{getAddress(){return Promise.resolve(O)},async getPublicKey(){let{PublicKey:N}=await import("@near-js/crypto");return N.fromString(`ed25519:${R}`)},signDelegateAction(N){return Promise.reject(new _("wallet_ledger_method_not_supported",{method:"signDelegateAction",wallet:"Ledger"}))},signNep413Message(N,M,$,A,D){return Promise.reject(new _("wallet_ledger_method_not_supported",{method:"signNep413Message",wallet:"Ledger"}))},async signTransaction(N){let{Signature:M,SignedTransaction:$}=await import("@near-js/transactions");try{let A=await l.signTransaction(N.encode(),t);if(!A)throw Error("Signature undefined");let D=new M({data:A,keyType:0}),d=new $({signature:D,transaction:N});return[A,d]}catch(A){throw new _("wallet_ledger_signing_error",{error:A})}}}}var PL=require("@scure/base"),v=require("@tcswap/helpers");var oL=require("@scure/base"),K=require("@tcswap/helpers"),mL=(L)=>{if(L.length<64)throw new K.USwapError("wallet_ledger_invalid_signature",{reason:"Too short"});if(L[0]!==48)throw new K.USwapError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected first byte 0x30"});if(L[1]+2!==L.length)throw new K.USwapError("wallet_ledger_invalid_signature",{reason:"signature length does not match TLV"});if(L[2]!==2)throw new K.USwapError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02"});let y=L[3],i=L.slice(4,y+4);if(i.length===33&&i[0]===0)i=i.slice(1,33);else if(i.length===33)throw new K.USwapError("wallet_ledger_invalid_signature",{reason:"r too long"});while(i.length<32)i.unshift(0);if(L[y+4]!==2)throw new K.USwapError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02 for s"});let m=L[y+5];if(4+y+2+m!==L.length)throw new K.USwapError("wallet_ledger_invalid_signature",{reason:"TLV byte lengths do not match message length"});let _=L.slice(y+6,L.length);if(_.length===33&&_[0]===0)_=_.slice(1,33);else if(_.length===33)throw new K.USwapError("wallet_ledger_invalid_signature",{reason:"s too long"});while(_.length<32)_.unshift(0);if(i.length!==32||_.length!==32)throw new K.USwapError("wallet_ledger_invalid_signature",{reason:"must be 32 bytes each"});return oL.base64.encode(Buffer.concat([i,_]))};class TL extends V{pubKey=null;derivationPath;constructor(L=v.NetworkDerivationPath.THOR){super();this.chain="thor",this.derivationPath=L}get pubkey(){return this.pubKey}connect=async()=>{await this.checkOrCreateTransportAndLedger();let{compressed_pk:L,bech32_address:y}=await this.getAddressAndPubKey();return this.pubKey=PL.base64.encode(L),y};getAddressAndPubKey=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.ledgerApp.getAddressAndPubKey(this.derivationPath,this.chain);return this.validateResponse(L.return_code,L.error_message),L};showAddressAndPubKey=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.ledgerApp.showAddressAndPubKey(this.derivationPath,this.chain);return this.validateResponse(L.return_code,L.error_message),L};signTransaction=async(L,y="0")=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:i,error_message:m,signature:_}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new v.USwapError("wallet_ledger_pubkey_not_found");return this.validateResponse(i,m),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:y,signature:mL(_)}]};sign=async(L)=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:y,error_message:i,signature:m}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new v.USwapError("wallet_ledger_pubkey_not_found");return this.validateResponse(y,i),mL(m)}}var Q=require("@tcswap/helpers");class zL{derivationPath;ledgerApp=null;ledgerTimeout=50000;constructor(L){this.derivationPath=typeof L==="string"?L:Q.derivationPathToString(L||Q.NetworkDerivationPath.TRON)}checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await F(),y=(await import("@ledgerhq/hw-app-trx")).default;this.ledgerApp=new y(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new Q.USwapError("wallet_ledger_failed_to_get_address");return L.address};getAddressAndPubKey=async()=>{await this.createTransportAndLedger();let L=await this.ledgerApp?.getAddress(this.derivationPath);if(!L)throw new Q.USwapError("wallet_ledger_failed_to_get_address");return{address:L.address,publicKey:L.publicKey}};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signTransaction=async(L)=>{if(await this.createTransportAndLedger(),!this.ledgerApp)throw new Q.USwapError("wallet_ledger_transport_error");let y=JSON.stringify(L);try{let i=await this.ledgerApp.signTransaction(this.derivationPath,y,[]);if(!i)throw new Q.USwapError("wallet_ledger_signing_error");return{...L,signature:[i]}}catch(i){throw new Q.USwapError("wallet_ledger_signing_error",{error:i})}}}var qL=(L)=>new zL(L);var q=require("@tcswap/helpers");var gy=["bitcoin-cash","dash","dogecoin","zcash"],Oy=({psbt:L,inputUtxos:y,btcApp:i,derivationPath:m,chain:_},w)=>{let l=y.map((N)=>{return[i.splitTransaction(N.txHex||"",!gy.includes(_),_==="zcash"),N.index,void 0,void 0]}),t=L.data.globalMap.unsignedTx.toBuffer().toString("hex"),O=i.splitTransaction(t,!0),R=i.serializeTransactionOutputs(O).toString("hex"),g={additionals:["bech32"],associatedKeysets:l.map(()=>m),inputs:l,outputScriptHex:R,segwit:!0,useTrustedInputForSegwit:!0};return i.createPaymentTransaction({...g,...w})},U=({chain:L,additionalSignParams:y})=>{let i,m=null;async function _(l=!0){if(l&&!i)new q.USwapError("wallet_ledger_connection_error",{message:`Ledger connection failed:
2
- ${JSON.stringify({btcApp:i,checkBtcApp:l})}`});m||=await F()}async function w(){m=await F(),i=new(await import("@ledgerhq/hw-app-btc")).default({currency:L,transport:m})}return(l)=>{let t=typeof l==="string"?l:q.derivationPathToString(l),O=q.getWalletFormatFor(t);return{connect:async()=>{await _(!1),i=new(await import("@ledgerhq/hw-app-btc")).default({currency:L,transport:m})},getAddress:async()=>{let{toCashAddress:R}=await import("@tcswap/toolboxes/utxo");await _(!1);let{bitcoinAddress:g}=await i.getWalletPublicKey(t,{format:O});if(!g)throw new q.USwapError("wallet_ledger_get_address_error",{message:`Cannot get ${L} address from ledger derivation path: ${t}`});return L==="bitcoin-cash"&&O==="legacy"?R(g).replace(/(bchtest:|bitcoincash:)/,""):g},getExtendedPublicKey:async(R="84'/0'/0'",g=76067358)=>{return await _(!1),i.getWalletXpub({path:R,xpubVersion:g})},signTransaction:async(R,g)=>{return await w(),Oy({btcApp:i,chain:L,derivationPath:t,inputUtxos:g,psbt:R},y)}}}},SL=U({chain:"bitcoin"}),cL=U({chain:"litecoin"}),nL=U({additionalSignParams:{additionals:["abc"],segwit:!1,sigHashType:65},chain:"bitcoin-cash"}),UL=U({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dogecoin"}),kL=U({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dash"}),dL=U({additionalSignParams:{additionals:["zcash","sapling"],expiryHeight:(()=>{let L=Buffer.allocUnsafe(4);return L.writeUInt32LE(0),L})(),lockTime:0,segwit:!1,useTrustedInputForSegwit:!1},chain:"zcash"});var EL=X(require("@ledgerhq/hw-app-xrp")),k=require("@tcswap/helpers"),wL=require("ripple-binary-codec");var Ry=2147483648;function Gy(L){let y={};for(let i in L)if(L[i]!==null&&L[i]!==void 0)y[i]=L[i];return y}function Xy(L){return new EL.default(L)}var bL=async(L)=>{let y=k.derivationPathToString(L||k.NetworkDerivationPath[k.Chain.Ripple]),i=await F(),m=Xy(i),{address:_,publicKey:w}=await m.getAddress(y);async function l(t){let{hashes:O}=await import("@tcswap/toolboxes/ripple"),g={...Gy(t),Flags:t.Flags||Ry,SigningPubKey:w.toUpperCase()},N=wL.encode(g),M=await m.signTransaction(y,N),$=wL.encode({...g,TxnSignature:M});return{hash:O.hashSignedTx($),tx_blob:$}}return{getAddress:()=>_,signTransaction:l}};var Y=async({chain:L,derivationPath:y})=>{let{match:i}=await import("ts-pattern");return i(L).returnType().with(G.Chain.THORChain,()=>Promise.resolve(new TL(y))).with(G.Chain.Cosmos,()=>Promise.resolve(new _L(y))).with(G.Chain.Bitcoin,()=>Promise.resolve(SL(y))).with(G.Chain.BitcoinCash,()=>Promise.resolve(nL(y))).with(G.Chain.Dash,()=>Promise.resolve(kL(y))).with(G.Chain.Dogecoin,()=>Promise.resolve(UL(y))).with(G.Chain.Litecoin,()=>Promise.resolve(cL(y))).with(G.Chain.Zcash,()=>Promise.resolve(dL(y))).with(G.Chain.Ripple,()=>Promise.resolve(bL(y))).with(G.Chain.Tron,()=>Promise.resolve(qL(y))).with(G.Chain.Near,()=>{return Promise.resolve(HL(y))}).with(G.Chain.Arbitrum,G.Chain.Aurora,G.Chain.Avalanche,G.Chain.BinanceSmartChain,G.Chain.Ethereum,G.Chain.Gnosis,G.Chain.Monad,G.Chain.Optimism,G.Chain.Polygon,G.Chain.Base,G.Chain.XLayer,async()=>{let{getProvider:m}=await import("@tcswap/toolboxes/evm"),_={derivationPath:y,provider:await m(L)};return i(L).with(G.Chain.BinanceSmartChain,()=>WL(_)).with(G.Chain.Avalanche,()=>AL(_)).with(G.Chain.Arbitrum,()=>jL(_)).with(G.Chain.Optimism,()=>KL(_)).with(G.Chain.Polygon,()=>QL(_)).with(G.Chain.Base,()=>$L(_)).with(G.Chain.Aurora,()=>ZL(_)).with(G.Chain.Gnosis,()=>fL(_)).with(G.Chain.Monad,()=>YL(_)).with(G.Chain.XLayer,()=>DL(_)).otherwise(()=>JL(_))}).otherwise(()=>{throw new G.USwapError("wallet_chain_not_supported",{chain:L,wallet:G.WalletOption.LEDGER})})};var VL=x.createWallet({connect:({addChain:L,supportedChains:y,walletType:i})=>async function(_,w){let[l]=T.filterSupportedChains({chains:_,supportedChains:y,walletType:i});if(!l)return!1;let t=await jy({chain:l,derivationPath:w});return L({...t,chain:l,walletType:T.WalletOption.LEDGER}),!0},name:"connectLedger",supportedChains:[T.Chain.Arbitrum,T.Chain.Aurora,T.Chain.Avalanche,T.Chain.Base,T.Chain.BinanceSmartChain,T.Chain.Bitcoin,T.Chain.BitcoinCash,T.Chain.Cosmos,T.Chain.Dash,T.Chain.Dogecoin,T.Chain.Ethereum,T.Chain.Gnosis,T.Chain.Litecoin,T.Chain.Monad,T.Chain.Near,T.Chain.Optimism,T.Chain.Polygon,T.Chain.Ripple,T.Chain.THORChain,T.Chain.XLayer,T.Chain.Tron,T.Chain.Zcash],walletType:T.WalletOption.LEDGER}),Cy=x.getWalletSupportedChains(VL);function My(L,y="t"){if(!L?.includes("=:"))return L;let i=L.includes(`:${y}:`)?L.split(`:${y}:`)[0]:L;return i?.substring(0,i.lastIndexOf(":"))}function h(L){if(Array.isArray(L))return L.forEach((m,_)=>{L[_]=h(m)}),L;if(typeof L!=="object")return L;let y={},i=Object.keys(L).sort();for(let m of i)y[m]=h(L[m]);return y}function Fy(L){return JSON.stringify(h(L))}async function jy({chain:L,derivationPath:y}){switch(L){case T.Chain.BitcoinCash:case T.Chain.Bitcoin:case T.Chain.Dash:case T.Chain.Dogecoin:case T.Chain.Litecoin:case T.Chain.Zcash:{let{getUtxoToolbox:i}=await import("@tcswap/toolboxes/utxo"),m=await i(L),_=await Y({chain:L,derivationPath:y}),w=await o({chain:L,ledgerClient:_});return{...m,address:w,transfer:async(t)=>{let O=t.feeRate||(await m.getFeeRates())[T.FeeOption.Average],R=[T.Chain.Bitcoin].includes(L)?t.memo:My(t.memo),{psbt:g,inputs:N}=await m.createTransaction({...t,feeRate:O,fetchTxHex:!0,memo:R,sender:w}),M=await _.signTransaction(g,N);return await m.broadcastTx(M)}}}case T.Chain.Ethereum:case T.Chain.Avalanche:case T.Chain.Arbitrum:case T.Chain.Optimism:case T.Chain.Polygon:case T.Chain.BinanceSmartChain:case T.Chain.Base:case T.Chain.Aurora:case T.Chain.Gnosis:case T.Chain.Monad:case T.Chain.XLayer:{let{getEvmToolbox:i}=await import("@tcswap/toolboxes/evm"),m=await Y({chain:L,derivationPath:y}),_=await o({chain:L,ledgerClient:m});return{...await i(L,{signer:m}),address:_}}case T.Chain.Cosmos:{let{createSigningStargateClient:i,getMsgSendDenom:m,getCosmosToolbox:_}=await import("@tcswap/toolboxes/cosmos"),w=await _(T.Chain.Cosmos),l=await Y({chain:L,derivationPath:y}),t=await o({chain:L,ledgerClient:l});return{...w,address:t,transfer:async({assetValue:R,recipient:g,memo:N})=>{if(!R)throw new T.USwapError("wallet_ledger_invalid_asset");let M={amount:[{amount:R.getBaseValue("string"),denom:m(`u${R.symbol}`).toLowerCase()}],fromAddress:t,toAddress:g},$=await T.getRPCUrl(L),A=await i($,l,"0.007uatom"),{transactionHash:D}=await A.signAndBroadcast(t,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:M}],2,N);return D}}}case T.Chain.THORChain:{let{SignMode:i}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:m}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),_=await import("@cosmjs/proto-signing"),w=_.encodePubkey??_.default?.encodePubkey,l=_.makeAuthInfoBytes??_.default?.makeAuthInfoBytes,{createStargateClient:t,buildEncodedTxBody:O,getCosmosToolbox:R,buildAminoMsg:g,getDefaultChainFee:N,fromBase64:M,parseAminoMessageForDirectSigning:$}=await import("@tcswap/toolboxes/cosmos"),A=await R(L),D=await Y({chain:L,derivationPath:y}),d=await o({chain:L,ledgerClient:D}),u=N(L),{pubkey:tL,signTransaction:vL,sign:IL}=D,lL=async({memo:H="",assetValue:gL,...hL})=>{let OL=await A.getAccount(d);if(!OL)throw new T.USwapError("wallet_ledger_invalid_account");if(!gL)throw new T.USwapError("wallet_ledger_invalid_asset");if(!tL)throw new T.USwapError("wallet_ledger_pubkey_not_found");let{accountNumber:xL,sequence:uL}=OL,p=(uL||0).toString(),RL=h([g({assetValue:gL,memo:H,sender:d,...hL})]),pL=Fy({account_number:xL?.toString(),chain_id:T.THORConfig.chainId,fee:u,memo:H,msgs:RL,sequence:p}),a=await vL(pL,p);if(!a)throw new T.USwapError("wallet_ledger_signing_error");let aL=w({type:"tendermint/PubKeySecp256k1",value:tL}),eL=RL.map($),rL=await O({chain:L,memo:H,msgs:eL}),sL=l([{pubkey:aL,sequence:Number(p)}],u.amount,Number.parseInt(u.gas,10),void 0,void 0,i.SIGN_MODE_LEGACY_AMINO_JSON),Ly=a?.[0]?.signature?M(a[0].signature):Uint8Array.from([]),yy=m.fromPartial({authInfoBytes:sL,bodyBytes:rL,signatures:[Ly]}),iy=m.encode(yy).finish(),_y=await T.getRPCUrl(T.Chain.THORChain),my=await t(_y),{transactionHash:Ty}=await my.broadcastTx(iy);return Ty};return{...A,address:d,deposit:(H)=>lL(H),signMessage:IL,transfer:(H)=>lL(H)}}case T.Chain.Near:{let{getNearToolbox:i}=await import("@tcswap/toolboxes/near"),m=await Y({chain:L,derivationPath:y}),_=await m.getAddress();return{...await i({signer:m}),address:_}}case T.Chain.Ripple:{let{getRippleToolbox:i}=await import("@tcswap/toolboxes/ripple"),m=await Y({chain:L,derivationPath:y}),_=m.getAddress();return{...await i({signer:m}),address:_}}case T.Chain.Tron:{let{createTronToolbox:i}=await import("@tcswap/toolboxes/tron"),m=await Y({chain:L,derivationPath:y}),_=await o({chain:L,ledgerClient:m});return{...await i({signer:m}),address:_}}default:throw new T.USwapError("wallet_ledger_chain_not_supported",{chain:L})}}
1
+ var Zy={};Ny(Zy,{ledgerWallet:()=>bL,LEDGER_SUPPORTED_CHAINS:()=>Cy});module.exports=By(Zy);var T=require("@tcswap/helpers"),h=require("@tcswap/wallet-core");var X=require("@tcswap/helpers"),H=async({chain:L,ledgerClient:y})=>{if(!y)return"";switch(L){case X.Chain.Cosmos:case X.Chain.THORChain:return y.connect();case X.Chain.Ethereum:case X.Chain.BinanceSmartChain:case X.Chain.Avalanche:case X.Chain.Polygon:case X.Chain.Arbitrum:case X.Chain.Optimism:case X.Chain.Base:case X.Chain.Aurora:case X.Chain.Gnosis:case X.Chain.XLayer:return y.getAddress();case X.Chain.Bitcoin:case X.Chain.BitcoinCash:case X.Chain.Dash:case X.Chain.Dogecoin:case X.Chain.Litecoin:case X.Chain.Zcash:{let i=y;await i.connect();let m=await i.getAddress();return L===X.Chain.BitcoinCash?m.replace("bitcoincash:",""):m}case X.Chain.Near:return await y.getAddress();case X.Chain.Ripple:return y.getAddress();case X.Chain.Tron:return y.getAddress();default:throw new X.USwapError("wallet_chain_not_supported",{chain:L,wallet:X.WalletOption.LEDGER})}};var G=require("@tcswap/helpers");var P=require("@tcswap/helpers");var J=require("@tcswap/helpers");var LL=require("@tcswap/helpers");var q=85,a=250;var o={GET_ADDR_SECP256K1:4,GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2},v={ADD:1,INIT:0,LAST:2},e={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},S={JSON:0},Q={NoError:36864},RL={1:"U2F: Unknown",2:"U2F: Bad request",3:"U2F: Configuration unsupported",4:"U2F: Device Ineligible",5:"U2F: Timeout",14:"Timeout",25600:"Execution Error",26368:"Wrong Length",26626:"Error deriving keys",27010:"Empty Buffer",27011:"Output buffer too small",27012:"Data is invalid",27013:"Conditions not satisfied",27014:"Transaction rejected",27264:"Bad key handle",27392:"Invalid P1/P2",27904:"Instruction not supported",28160:"App does not seem to be open",28416:"Unknown error",28417:"Sign/verify error",36864:"No errors",36865:"Device is busy"};function $(L){if(L in RL)return RL[L];return`Unknown Status Code: ${L}`}function Ty(L){return typeof L==="object"&&L!==null&&!Array.isArray(L)&&!(L instanceof Date)}function F(L){if(L){if(Ty(L)){if(Object.hasOwn(L,"statusCode"))return{error_message:$(L.statusCode),return_code:L.statusCode};if(Object.hasOwn(L,"return_code")&&Object.hasOwn(L,"error_message"))return L}return{error_message:L.toString(),return_code:65535}}return{error_message:L.toString(),return_code:65535}}function r(L){return L.send(85,o.GET_VERSION,0,0).then((y)=>{let i=y.slice(-2),m=i[0]*256+i[1],_=0;if(y.length>=9)_=(y[5]<<24)+(y[6]<<16)+(y[7]<<8)+(y[8]<<0);return{device_locked:y[4]===1,error_message:$(m),major:y[1],minor:y[2],patch:y[3],return_code:m,target_id:_.toString(16),test_mode:y[0]!==0}},F)}var d=require("@tcswap/helpers");function GL(L){if(L==null||L.length<3)throw new d.USwapError("wallet_ledger_invalid_params",{reason:"Path too short"});if(L.length>10)throw new d.USwapError("wallet_ledger_invalid_params",{reason:"Path too long"});let y=Buffer.alloc(1+4*L.length);y.writeUInt8(L.length,0);for(let i=0;i<L.length;i+=1){let m=L[i]||0;if(i<3)m|=2147483648;y.writeInt32LE(m,1+i*4)}return y}function s(L,y,i,m,_=S.JSON){return L.transport.send(q,o.SIGN_SECP256K1,y,_,m,[Q.NoError,27012,27264]).then((w)=>{let l=w.slice(-2),t=l[0]*256+l[1],O=$(t);if(t===27264||t===27012)O=`${O} : ${w.slice(0,w.length-2).toString("ascii")}`;let R=null;if(w.length>2)R=w.slice(0,w.length-2);return{error_message:O,return_code:t,signature:R}},F)}function wy(L){if(L.length!==65)throw new d.USwapError("wallet_ledger_invalid_params",{reason:"decompressed public key length should be 65 bytes"});let y=L.slice(33,65),i=Buffer.from([2+(y[y.length-1]&1)]);return Buffer.concat([i,L.slice(1,33)])}function XL(L,y){return L.transport.send(q,o.INS_PUBLIC_KEY_SECP256K1,0,0,y,[Q.NoError]).then((i)=>{let m=i.slice(-2),_=m[0]*256+m[1],w=Buffer.from(i.slice(0,65));return{compressed_pk:wy(w),error_message:$(_),pk:w,return_code:_}},F)}function BL(L){if(!L||L.length!==5)throw new d.USwapError("wallet_ledger_invalid_params",{reason:"Path must be exactly 5 elements"});let y=Buffer.alloc(20);return y.writeUInt32LE(2147483648+L[0],0),y.writeUInt32LE(2147483648+L[1],4),y.writeUInt32LE(2147483648+L[2],8),y.writeUInt32LE(L[3],12),y.writeUInt32LE(L[4],16),y}function NL(L,y,i,m,_=S.JSON){let w=v.ADD;if(y===1)w=v.INIT;if(y===i)w=v.LAST;return s(L,w,0,m,_)}function CL(L,y){return L.transport.send(q,o.GET_ADDR_SECP256K1,0,0,y,[Q.NoError]).then((i)=>{let m=i.slice(-2),_=m[0]*256+m[1];return{compressed_pk:Buffer.from(i.slice(0,33)),error_message:$(_),pk:"OBSOLETE PROPERTY",return_code:_}},F)}class E{transport;versionResponse;constructor(L){if(!L)throw new LL.USwapError("wallet_ledger_transport_not_defined");this.transport=L}static serializeHRP(L){if(L==null||L.length<3||L.length>83)throw new LL.USwapError("wallet_ledger_invalid_params",{reason:"Invalid HRP"});let y=Buffer.alloc(1+L.length);return y.writeUInt8(L.length,0),y.write(L,1),y}async serializePath(L){if(this.versionResponse=await r(this.transport),this.versionResponse.return_code!==Q.NoError)throw this.versionResponse;switch(this.versionResponse.major){case 1:return GL(L);case 2:return BL(L);default:return Buffer.alloc(0)}}async signGetChunks(L,y){let i=await this.serializePath(L),m=[];m.push(i);for(let _=0;_<y.length;_+=a){let w=_+a;if(_>y.length)w=y.length;m.push(y.slice(_,w))}return m}async getVersion(){try{return this.versionResponse=await r(this.transport),this.versionResponse}catch(L){return F(L)}}appInfo(){return this.transport.send(176,1,0,0).then((L)=>{let y=L.slice(-2),i=y[0]*256+y[1],m="",_="",w=0,l=0;if(L[0]!==1)return{error_message:"response format ID not recognized",return_code:36865};let t=L[1];m=L.slice(2,2+t).toString("ascii");let O=2+t,R=L[O];O+=1,_=L.slice(O,O+R).toString("ascii"),O+=R;let g=L[O];return O+=1,w=g,l=L[O],{appName:m,appVersion:_,error_message:$(i),flag_onboarded:(l&4)!==0,flag_pin_validated:(l&128)!==0,flag_recovery:(l&1)!==0,flag_signed_mcu_code:(l&2)!==0,flagLen:w,flagsValue:l,return_code:i}},F)}deviceInfo(){return this.transport.send(224,1,0,0,Buffer.from([]),[Q.NoError,28160]).then((L)=>{let y=L.slice(-2),i=y[0]*256+y[1];if(i===28160)return{error_message:"This command is only available in the Dashboard",return_code:i};let m=L.slice(0,4).toString("hex"),_=4,w=L[_];_+=1;let l=L.slice(_,_+w).toString();_+=w;let t=L[_];_+=1;let O=L.slice(_,_+t).toString("hex");_+=t;let R=L[_];_+=1;let g=L.slice(_,_+R);if(g[R-1]===0)g=L.slice(_,_+R-1);let B=g.toString();return{error_message:$(i),flag:O,mcuVersion:B,return_code:i,seVersion:l,targetId:m}},F)}async publicKey(L){try{let y=await this.serializePath(L);switch(this.versionResponse.major){case 1:return XL(this,y);case 2:{let i=Buffer.concat([E.serializeHRP("thor"),y]);return CL(this,i)}default:return{error_message:"App Version is not supported",return_code:25600}}}catch(y){return F(y)}}getAddressAndPubKey(L,y,i=!1){return this.serializePath(L).then((m)=>{let _=Buffer.concat([E.serializeHRP(y),m]);return this.transport.send(q,o.GET_ADDR_SECP256K1,i?e.SHOW_ADDRESS_IN_DEVICE:e.ONLY_RETRIEVE,0,_,[Q.NoError]).then((w)=>{let l=w.slice(-2),t=l[0]*256+l[1],O=Buffer.from(w.slice(0,33));return{bech32_address:Buffer.from(w.slice(33,-2)).toString(),compressed_pk:O,error_message:$(t),return_code:t}},F)}).catch((m)=>F(m))}showAddressAndPubKey(L,y){return this.getAddressAndPubKey(L,y,!0)}signSendChunk(L,y,i,m=S.JSON){switch(this.versionResponse.major){case 1:return s(this,L,y,i,m);case 2:return NL(this,L,y,i,m);default:return{error_message:"App Version is not supported",return_code:25600}}}async sign(L,y,i=S.JSON){let m=Buffer.from(y),_=[],w;try{_=await this.signGetChunks(L,m),w=await this.signSendChunk(1,_.length,_[0],i)}catch(t){F(t)}let l={error_message:w.error_message,return_code:w.return_code,signature:null};for(let t=1;t<_.length;t+=1)if(l=await this.signSendChunk(1+t,_.length,_[t],i),l.return_code!==Q.NoError)break;return{error_message:l.error_message,return_code:l.return_code,signature:l.signature}}}var c=require("@tcswap/helpers"),yL=()=>navigator?.usb,ty=async()=>{let L=yL();if(typeof L?.getDevices!=="function")return{};let{ledgerUSBVendorId:y}=await import("@ledgerhq/devices"),m=(await L?.getDevices()).filter((_)=>_.vendorId===y);if(m.length>0)return m[0];return L?.requestDevice({filters:[{vendorId:y}]})},M=async()=>{let L=await ty();if(!L)throw new c.USwapError("wallet_ledger_device_not_found");if(L.opened||await L.open(),L.configuration===null)await L.selectConfiguration(1);try{await L.reset()}catch{}let y=L.configuration??L.configurations?.[0],i=y?.interfaces.find(({alternates:g})=>g.some(({interfaceClass:B})=>B===255))||y?.interfaces.find(({alternates:g})=>g.some(({interfaceClass:B})=>B===3));if(!i)throw await L.close(),new c.USwapError("wallet_ledger_connection_error");let m=i.alternates?.find(({interfaceClass:g})=>g===3)?.interfaceClass,_=i.alternates?.find(({interfaceClass:g})=>g===255)?.interfaceClass;if(m&&!_){let g=(await import("@ledgerhq/hw-transport-webhid")).default;if(!await g.isSupported())throw await L.close(),new c.USwapError("wallet_ledger_webhid_not_supported");return await g.create()}try{await L.claimInterface(i.interfaceNumber)}catch(g){throw await L.close(),new c.USwapError("wallet_ledger_connection_claimed",g)}let w=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await w.isSupported())throw new c.USwapError("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:t}=await import("@ledgerhq/errors"),O=new w(L,i.interfaceNumber),R=(g)=>{if(L===g.device)yL()?.removeEventListener("disconnect",R),O._emitDisconnect(new t)};return yL()?.addEventListener("disconnect",R),O};class b{ledgerTimeout=50000;derivationPath=J.NetworkDerivationPath.GAIA;transport;ledgerApp;chain="thor";checkOrCreateTransportAndLedger=async(L=!1)=>{if(!L&&this.transport&&this.ledgerApp)return;try{switch(this.transport=L||!this.transport?await M():this.transport,this.chain){case"thor":{this.ledgerApp=L||!this.ledgerApp?new E(this.transport):this.ledgerApp;break}case"cosmos":{let y=(await import("@ledgerhq/hw-app-cosmos")).default;this.ledgerApp=L||!this.ledgerApp?new y(this.transport):this.ledgerApp}}return this.ledgerApp}catch(y){throw new J.USwapError("wallet_ledger_connection_error",y)}};validateResponse=(L,y)=>{switch(L){case J.LedgerErrorCode.NoError:return;case J.LedgerErrorCode.LockedDevice:throw new J.USwapError("wallet_ledger_device_locked",{message:`Ledger is locked: ${y}`});case J.LedgerErrorCode.TC_NotFound:throw new J.USwapError("wallet_ledger_device_not_found");default:break}}}class iL extends b{pubKey=null;derivationPath;constructor(L=P.NetworkDerivationPath.GAIA){super();this.chain="cosmos",this.derivationPath=P.derivationPathToString(L)}connect=async()=>{await this.checkOrCreateTransportAndLedger(!0);let{publicKey:L,address:y}=await this.getAddressAndPubKey();return this.pubKey=Buffer.from(L,"hex").toString("base64"),y};getAddressAndPubKey=async()=>{return await this.checkOrCreateTransportAndLedger(!0),await this.ledgerApp.getAddress(this.derivationPath,this.chain)};signTransaction=async(L,y="0")=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:i,error_message:m,signature:_}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new P.USwapError("wallet_ledger_pubkey_not_found");return this.validateResponse(i,m),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:y,signature:_}]};signAmino=async(L,y)=>{await this.checkOrCreateTransportAndLedger(!0);let i=await this.getAccounts();if(i.findIndex((C)=>C.address===L)===-1)throw new P.USwapError("wallet_ledger_address_not_found",{address:L});let _=await import("@cosmjs/amino"),w=_.encodeSecp256k1Signature??_.default?.encodeSecp256k1Signature,l=_.serializeSignDoc??_.default?.serializeSignDoc,t=await import("@cosmjs/crypto"),O=t.Secp256k1Signature??t.default?.Secp256k1Signature,R=l(y),g=await this.ledgerApp.sign(this.derivationPath,R);this.validateResponse(g.return_code,g.error_message);let B=O.fromDer(g.signature).toFixedLength();return{signature:w(i[0].pubkey,B),signed:y}};getAccounts=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.getAddressAndPubKey();return[{address:L.address,algo:"secp256k1",pubkey:Buffer.from(L.publicKey,"hex")}]}}var N=require("@tcswap/helpers"),ML=require("ethers");class j extends ML.AbstractSigner{chainId=N.ChainId.Ethereum;derivationPath="";ledgerApp=null;ledgerTimeout=50000;constructor({provider:L,derivationPath:y=N.NetworkDerivationPath.OP,chainId:i=N.ChainId.Optimism}){super(L);this.chainId=i||N.ChainId.Ethereum,this.derivationPath=typeof y==="string"?y:N.derivationPathToString(y),Object.defineProperty(this,"provider",{enumerable:!0,value:L||null,writable:!1})}connect=(L)=>new j({chainId:this.chainId,derivationPath:this.derivationPath,provider:L});checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await M(),y=(await import("@ledgerhq/hw-app-eth")).default;this.ledgerApp=new y(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new N.USwapError("wallet_ledger_failed_to_get_address");return L.address};getAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath)};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signMessage=async(L)=>{let{Signature:y}=await import("ethers");await this.createTransportAndLedger();let i=await this.ledgerApp?.signPersonalMessage(this.derivationPath,L);if(!i)throw new N.USwapError("wallet_ledger_signing_error");return i.r=`0x${i.r}`,i.s=`0x${i.s}`,y.from(i).serialized};sendTransaction=async(L)=>{if(!this.provider)throw new N.USwapError("wallet_ledger_no_provider");let y=await this.signTransaction(L);return await this.provider.broadcastTransaction(y)};signTypedData(){throw new N.USwapError("wallet_ledger_method_not_supported",{method:"signTypedData"})}signTransaction=async(L)=>{let{Transaction:y}=await import("ethers");await this.createTransportAndLedger();let i=await this.provider?.getTransactionCount(L.from||await this.getAddress()),m={chainId:L.chainId||this.chainId,data:L.data,gasLimit:L.gasLimit,...L.gasPrice&&{gasPrice:L.gasPrice},...!L.gasPrice&&L.maxFeePerGas&&{maxFeePerGas:L.maxFeePerGas,maxPriorityFeePerGas:L.maxPriorityFeePerGas},nonce:L.nonce!==void 0?Number((L.nonce||i||0).toString()):i,to:L.to?.toString(),type:L.type&&!Number.isNaN(L.type)?L.type:L.maxFeePerGas?2:0,value:L.value},_=y.from(m).unsignedSerialized.slice(2),{ledgerService:w}=await import("@ledgerhq/hw-app-eth"),l=await w.resolveTransaction(_,{},{erc20:!0,externalPlugins:!0}),t=await this.ledgerApp?.signTransaction(this.derivationPath,_,l);if(!t)throw new N.USwapError("wallet_ledger_signing_error");let{r:O,s:R,v:g}=t;return y.from({...m,signature:{r:`0x${O}`,s:`0x${R}`,v:Number(BigInt(g))}}).serialized}}var FL=(L)=>new j({...L,chainId:N.ChainId.Arbitrum}),jL=(L)=>new j({...L,chainId:N.ChainId.Aurora}),ZL=(L)=>new j({...L,chainId:N.ChainId.Avalanche}),AL=(L)=>new j({...L,chainId:N.ChainId.Base}),$L=(L)=>new j({...L,chainId:N.ChainId.Ethereum}),JL=(L)=>new j({...L,chainId:N.ChainId.Gnosis}),fL=(L)=>new j({...L,chainId:N.ChainId.Optimism}),KL=(L)=>new j({...L,chainId:N.ChainId.Polygon}),QL=(L)=>new j({...L,chainId:N.ChainId.BinanceSmartChain}),WL=(L)=>new j({...L,chainId:N.ChainId.Monad}),YL=(L)=>new j({...L,chainId:N.ChainId.XLayer});async function DL(L){let y=(await import("@ledgerhq/hw-app-near")).default,{Chain:i,NetworkDerivationPath:m,USwapError:_}=await import("@tcswap/helpers"),w=await M(),l=new y(w),t=(L||m[i.Near]).join("'/").concat("'"),{address:O,publicKey:R}=await l.getAddress(t);return{getAddress(){return Promise.resolve(O)},async getPublicKey(){let{PublicKey:B}=await import("@near-js/crypto");return B.fromString(`ed25519:${R}`)},signDelegateAction(B){return Promise.reject(new _("wallet_ledger_method_not_supported",{method:"signDelegateAction",wallet:"Ledger"}))},signNep413Message(B,C,A,Z,Y){return Promise.reject(new _("wallet_ledger_method_not_supported",{method:"signNep413Message",wallet:"Ledger"}))},async signTransaction(B){let{Signature:C,SignedTransaction:A}=await import("@near-js/transactions");try{let Z=await l.signTransaction(B.encode(),t);if(!Z)throw Error("Signature undefined");let Y=new C({data:Z,keyType:0}),k=new A({signature:Y,transaction:B});return[Z,k]}catch(Z){throw new _("wallet_ledger_signing_error",{error:Z})}}}}var oL=require("@scure/base"),V=require("@tcswap/helpers");var HL=require("@scure/base"),f=require("@tcswap/helpers"),_L=(L)=>{if(L.length<64)throw new f.USwapError("wallet_ledger_invalid_signature",{reason:"Too short"});if(L[0]!==48)throw new f.USwapError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected first byte 0x30"});if(L[1]+2!==L.length)throw new f.USwapError("wallet_ledger_invalid_signature",{reason:"signature length does not match TLV"});if(L[2]!==2)throw new f.USwapError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02"});let y=L[3],i=L.slice(4,y+4);if(i.length===33&&i[0]===0)i=i.slice(1,33);else if(i.length===33)throw new f.USwapError("wallet_ledger_invalid_signature",{reason:"r too long"});while(i.length<32)i.unshift(0);if(L[y+4]!==2)throw new f.USwapError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02 for s"});let m=L[y+5];if(4+y+2+m!==L.length)throw new f.USwapError("wallet_ledger_invalid_signature",{reason:"TLV byte lengths do not match message length"});let _=L.slice(y+6,L.length);if(_.length===33&&_[0]===0)_=_.slice(1,33);else if(_.length===33)throw new f.USwapError("wallet_ledger_invalid_signature",{reason:"s too long"});while(_.length<32)_.unshift(0);if(i.length!==32||_.length!==32)throw new f.USwapError("wallet_ledger_invalid_signature",{reason:"must be 32 bytes each"});return HL.base64.encode(Buffer.concat([i,_]))};class mL extends b{pubKey=null;derivationPath;constructor(L=V.NetworkDerivationPath.THOR){super();this.chain="thor",this.derivationPath=L}get pubkey(){return this.pubKey}connect=async()=>{await this.checkOrCreateTransportAndLedger();let{compressed_pk:L,bech32_address:y}=await this.getAddressAndPubKey();return this.pubKey=oL.base64.encode(L),y};getAddressAndPubKey=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.ledgerApp.getAddressAndPubKey(this.derivationPath,this.chain);return this.validateResponse(L.return_code,L.error_message),L};showAddressAndPubKey=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.ledgerApp.showAddressAndPubKey(this.derivationPath,this.chain);return this.validateResponse(L.return_code,L.error_message),L};signTransaction=async(L,y="0")=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:i,error_message:m,signature:_}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new V.USwapError("wallet_ledger_pubkey_not_found");return this.validateResponse(i,m),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:y,signature:_L(_)}]};sign=async(L)=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:y,error_message:i,signature:m}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new V.USwapError("wallet_ledger_pubkey_not_found");return this.validateResponse(y,i),_L(m)}}var K=require("@tcswap/helpers");class PL{derivationPath;ledgerApp=null;ledgerTimeout=50000;constructor(L){this.derivationPath=typeof L==="string"?L:K.derivationPathToString(L||K.NetworkDerivationPath.TRON)}checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await M(),y=(await import("@ledgerhq/hw-app-trx")).default;this.ledgerApp=new y(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new K.USwapError("wallet_ledger_failed_to_get_address");return L.address};getAddressAndPubKey=async()=>{await this.createTransportAndLedger();let L=await this.ledgerApp?.getAddress(this.derivationPath);if(!L)throw new K.USwapError("wallet_ledger_failed_to_get_address");return{address:L.address,publicKey:L.publicKey}};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signTransaction=async(L)=>{if(await this.createTransportAndLedger(),!this.ledgerApp)throw new K.USwapError("wallet_ledger_transport_error");let y=JSON.stringify(L);try{let i=await this.ledgerApp.signTransaction(this.derivationPath,y,[]);if(!i)throw new K.USwapError("wallet_ledger_signing_error");return{...L,signature:[i]}}catch(i){throw new K.USwapError("wallet_ledger_signing_error",{error:i})}}}var zL=(L)=>new PL(L);var z=require("@tcswap/helpers");var ly=["bitcoin-cash","dash","dogecoin","zcash"],gy=({psbt:L,inputUtxos:y,btcApp:i,derivationPath:m,chain:_},w)=>{let l=y.map((B)=>{return[i.splitTransaction(B.txHex||"",!ly.includes(_),_==="zcash"),B.index,void 0,void 0]}),t=L.data.globalMap.unsignedTx.toBuffer().toString("hex"),O=i.splitTransaction(t,!0),R=i.serializeTransactionOutputs(O).toString("hex"),g={additionals:["bech32"],associatedKeysets:l.map(()=>m),inputs:l,outputScriptHex:R,segwit:!0,useTrustedInputForSegwit:!0};return i.createPaymentTransaction({...g,...w})},n=({chain:L,additionalSignParams:y})=>{let i,m=null;async function _(l=!0){if(l&&!i)new z.USwapError("wallet_ledger_connection_error",{message:`Ledger connection failed:
2
+ ${JSON.stringify({btcApp:i,checkBtcApp:l})}`});m||=await M()}async function w(){m=await M(),i=new(await import("@ledgerhq/hw-app-btc")).default({currency:L,transport:m})}return(l)=>{let t=typeof l==="string"?l:z.derivationPathToString(l),O=z.getWalletFormatFor(t);return{connect:async()=>{await _(!1),i=new(await import("@ledgerhq/hw-app-btc")).default({currency:L,transport:m})},getAddress:async()=>{let{toCashAddress:R}=await import("@tcswap/toolboxes/utxo");await _(!1);let{bitcoinAddress:g}=await i.getWalletPublicKey(t,{format:O});if(!g)throw new z.USwapError("wallet_ledger_get_address_error",{message:`Cannot get ${L} address from ledger derivation path: ${t}`});return L==="bitcoin-cash"&&O==="legacy"?R(g).replace(/(bchtest:|bitcoincash:)/,""):g},getExtendedPublicKey:async(R="84'/0'/0'",g=76067358)=>{return await _(!1),i.getWalletXpub({path:R,xpubVersion:g})},signTransaction:async(R,g)=>{return await w(),gy({btcApp:i,chain:L,derivationPath:t,inputUtxos:g,psbt:R},y)}}}},qL=n({chain:"bitcoin"}),SL=n({chain:"litecoin"}),cL=n({additionalSignParams:{additionals:["abc"],segwit:!1,sigHashType:65},chain:"bitcoin-cash"}),nL=n({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dogecoin"}),UL=n({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dash"}),kL=n({additionalSignParams:{additionals:["zcash","sapling"],expiryHeight:(()=>{let L=Buffer.allocUnsafe(4);return L.writeUInt32LE(0),L})(),lockTime:0,segwit:!1,useTrustedInputForSegwit:!1},chain:"zcash"});var dL=Oy(require("@ledgerhq/hw-app-xrp")),U=require("@tcswap/helpers"),TL=require("ripple-binary-codec");var Ry=2147483648;function Gy(L){let y={};for(let i in L)if(L[i]!==null&&L[i]!==void 0)y[i]=L[i];return y}function Xy(L){return new dL.default(L)}var EL=async(L)=>{let y=U.derivationPathToString(L||U.NetworkDerivationPath[U.Chain.Ripple]),i=await M(),m=Xy(i),{address:_,publicKey:w}=await m.getAddress(y);async function l(t){let{hashes:O}=await import("@tcswap/toolboxes/ripple"),g={...Gy(t),Flags:t.Flags||Ry,SigningPubKey:w.toUpperCase()},B=TL.encode(g),C=await m.signTransaction(y,B),A=TL.encode({...g,TxnSignature:C});return{hash:O.hashSignedTx(A),tx_blob:A}}return{getAddress:()=>_,signTransaction:l}};var W=async({chain:L,derivationPath:y})=>{let{match:i}=await import("ts-pattern");return i(L).returnType().with(G.Chain.THORChain,()=>Promise.resolve(new mL(y))).with(G.Chain.Cosmos,()=>Promise.resolve(new iL(y))).with(G.Chain.Bitcoin,()=>Promise.resolve(qL(y))).with(G.Chain.BitcoinCash,()=>Promise.resolve(cL(y))).with(G.Chain.Dash,()=>Promise.resolve(UL(y))).with(G.Chain.Dogecoin,()=>Promise.resolve(nL(y))).with(G.Chain.Litecoin,()=>Promise.resolve(SL(y))).with(G.Chain.Zcash,()=>Promise.resolve(kL(y))).with(G.Chain.Ripple,()=>Promise.resolve(EL(y))).with(G.Chain.Tron,()=>Promise.resolve(zL(y))).with(G.Chain.Near,()=>{return Promise.resolve(DL(y))}).with(G.Chain.Arbitrum,G.Chain.Aurora,G.Chain.Avalanche,G.Chain.BinanceSmartChain,G.Chain.Ethereum,G.Chain.Gnosis,G.Chain.Monad,G.Chain.Optimism,G.Chain.Polygon,G.Chain.Base,G.Chain.XLayer,async()=>{let{getProvider:m}=await import("@tcswap/toolboxes/evm"),_={derivationPath:y,provider:await m(L)};return i(L).with(G.Chain.BinanceSmartChain,()=>QL(_)).with(G.Chain.Avalanche,()=>ZL(_)).with(G.Chain.Arbitrum,()=>FL(_)).with(G.Chain.Optimism,()=>fL(_)).with(G.Chain.Polygon,()=>KL(_)).with(G.Chain.Base,()=>AL(_)).with(G.Chain.Aurora,()=>jL(_)).with(G.Chain.Gnosis,()=>JL(_)).with(G.Chain.Monad,()=>WL(_)).with(G.Chain.XLayer,()=>YL(_)).otherwise(()=>$L(_))}).otherwise(()=>{throw new G.USwapError("wallet_chain_not_supported",{chain:L,wallet:G.WalletOption.LEDGER})})};var bL=h.createWallet({connect:({addChain:L,supportedChains:y,walletType:i})=>async function(_,w){let[l]=T.filterSupportedChains({chains:_,supportedChains:y,walletType:i});if(!l)return!1;let t=await jy({chain:l,derivationPath:w});return L({...t,chain:l,walletType:T.WalletOption.LEDGER}),!0},name:"connectLedger",supportedChains:[T.Chain.Arbitrum,T.Chain.Aurora,T.Chain.Avalanche,T.Chain.Base,T.Chain.BinanceSmartChain,T.Chain.Bitcoin,T.Chain.BitcoinCash,T.Chain.Cosmos,T.Chain.Dash,T.Chain.Dogecoin,T.Chain.Ethereum,T.Chain.Gnosis,T.Chain.Litecoin,T.Chain.Monad,T.Chain.Near,T.Chain.Optimism,T.Chain.Polygon,T.Chain.Ripple,T.Chain.THORChain,T.Chain.XLayer,T.Chain.Tron,T.Chain.Zcash],walletType:T.WalletOption.LEDGER}),Cy=h.getWalletSupportedChains(bL);function My(L,y="t"){if(!L?.includes("=:"))return L;let i=L.includes(`:${y}:`)?L.split(`:${y}:`)[0]:L;return i?.substring(0,i.lastIndexOf(":"))}function I(L){if(Array.isArray(L))return L.forEach((m,_)=>{L[_]=I(m)}),L;if(typeof L!=="object")return L;let y={},i=Object.keys(L).sort();for(let m of i)y[m]=I(L[m]);return y}function Fy(L){return JSON.stringify(I(L))}async function jy({chain:L,derivationPath:y}){switch(L){case T.Chain.BitcoinCash:case T.Chain.Bitcoin:case T.Chain.Dash:case T.Chain.Dogecoin:case T.Chain.Litecoin:case T.Chain.Zcash:{let{getUtxoToolbox:i}=await import("@tcswap/toolboxes/utxo"),m=await i(L),_=await W({chain:L,derivationPath:y}),w=await H({chain:L,ledgerClient:_});return{...m,address:w,transfer:async(t)=>{let O=t.feeRate||(await m.getFeeRates())[T.FeeOption.Average],R=[T.Chain.Bitcoin].includes(L)?t.memo:My(t.memo),{psbt:g,inputs:B}=await m.createTransaction({...t,feeRate:O,fetchTxHex:!0,memo:R,sender:w}),C=await _.signTransaction(g,B);return await m.broadcastTx(C)}}}case T.Chain.Ethereum:case T.Chain.Avalanche:case T.Chain.Arbitrum:case T.Chain.Optimism:case T.Chain.Polygon:case T.Chain.BinanceSmartChain:case T.Chain.Base:case T.Chain.Aurora:case T.Chain.Gnosis:case T.Chain.Monad:case T.Chain.XLayer:{let{getEvmToolbox:i}=await import("@tcswap/toolboxes/evm"),m=await W({chain:L,derivationPath:y}),_=await H({chain:L,ledgerClient:m});return{...await i(L,{signer:m}),address:_}}case T.Chain.Cosmos:{let{createSigningStargateClient:i,getMsgSendDenom:m,getCosmosToolbox:_}=await import("@tcswap/toolboxes/cosmos"),w=await _(T.Chain.Cosmos),l=await W({chain:L,derivationPath:y}),t=await H({chain:L,ledgerClient:l});return{...w,address:t,transfer:async({assetValue:R,recipient:g,memo:B})=>{if(!R)throw new T.USwapError("wallet_ledger_invalid_asset");let C={amount:[{amount:R.getBaseValue("string"),denom:m(`u${R.symbol}`).toLowerCase()}],fromAddress:t,toAddress:g},A=await T.getRPCUrl(L),Z=await i(A,l,"0.007uatom"),{transactionHash:Y}=await Z.signAndBroadcast(t,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:C}],2,B);return Y}}}case T.Chain.THORChain:{let{SignMode:i}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:m}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),_=await import("@cosmjs/proto-signing"),w=_.encodePubkey??_.default?.encodePubkey,l=_.makeAuthInfoBytes??_.default?.makeAuthInfoBytes,{createStargateClient:t,buildEncodedTxBody:O,getCosmosToolbox:R,buildAminoMsg:g,getDefaultChainFee:B,fromBase64:C,parseAminoMessageForDirectSigning:A}=await import("@tcswap/toolboxes/cosmos"),Z=await R(L),Y=await W({chain:L,derivationPath:y}),k=await H({chain:L,ledgerClient:Y}),x=B(L),{pubkey:wL,signTransaction:VL,sign:vL}=Y,tL=async({memo:D="",assetValue:lL,...IL})=>{let gL=await Z.getAccount(k);if(!gL)throw new T.USwapError("wallet_ledger_invalid_account");if(!lL)throw new T.USwapError("wallet_ledger_invalid_asset");if(!wL)throw new T.USwapError("wallet_ledger_pubkey_not_found");let{accountNumber:hL,sequence:xL}=gL,u=(xL||0).toString(),OL=I([g({assetValue:lL,memo:D,sender:k,...IL})]),uL=Fy({account_number:hL?.toString(),chain_id:T.THORConfig.chainId,fee:x,memo:D,msgs:OL,sequence:u}),p=await VL(uL,u);if(!p)throw new T.USwapError("wallet_ledger_signing_error");let pL=w({type:"tendermint/PubKeySecp256k1",value:wL}),aL=OL.map(A),eL=await O({chain:L,memo:D,msgs:aL}),rL=l([{pubkey:pL,sequence:Number(u)}],x.amount,Number.parseInt(x.gas,10),void 0,void 0,i.SIGN_MODE_LEGACY_AMINO_JSON),sL=p?.[0]?.signature?C(p[0].signature):Uint8Array.from([]),Ly=m.fromPartial({authInfoBytes:rL,bodyBytes:eL,signatures:[sL]}),yy=m.encode(Ly).finish(),iy=await T.getRPCUrl(T.Chain.THORChain),_y=await t(iy),{transactionHash:my}=await _y.broadcastTx(yy);return my};return{...Z,address:k,deposit:(D)=>tL(D),signMessage:vL,transfer:(D)=>tL(D)}}case T.Chain.Near:{let{getNearToolbox:i}=await import("@tcswap/toolboxes/near"),m=await W({chain:L,derivationPath:y}),_=await m.getAddress();return{...await i({signer:m}),address:_}}case T.Chain.Ripple:{let{getRippleToolbox:i}=await import("@tcswap/toolboxes/ripple"),m=await W({chain:L,derivationPath:y}),_=m.getAddress();return{...await i({signer:m}),address:_}}case T.Chain.Tron:{let{createTronToolbox:i}=await import("@tcswap/toolboxes/tron"),m=await W({chain:L,derivationPath:y}),_=await H({chain:L,ledgerClient:m});return{...await i({signer:m}),address:_}}default:throw new T.USwapError("wallet_ledger_chain_not_supported",{chain:L})}}
3
3
 
4
- //# debugId=F86B094CA6D6190064756E2164756E21
4
+ //# debugId=CDE070A6BEE5FCD464756E2164756E21
5
5
  //# sourceMappingURL=index.cjs.map