@swapkit/wallet-hardware 4.1.35 → 4.1.37

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.
@@ -1,4 +1,4 @@
1
- var e={};s(e,{keepkeyWallet:()=>d,KEEPKEY_SUPPORTED_CHAINS:()=>t});module.exports=r(e);var h=require("@keepkey/keepkey-sdk"),z=require("@swapkit/helpers"),u=require("@swapkit/wallet-core");var E=require("@swapkit/helpers");async function g({sdk:J,derivationPath:Q}){let{DEFAULT_COSMOS_FEE_MAINNET:X,getCosmosToolbox:H,getFeeRateFromSwapKit:Y,createStargateClient:q}=await import("@swapkit/toolboxes/cosmos"),U=Q?E.derivationPathToString(Q):`${E.DerivationPath.GAIA}/0`,{address:$}=await J.address.cosmosGetAddress({address_n:y(U)}),j=await H(E.Chain.Cosmos);if(X.amount[0])X.amount[0].amount=String(await Y(E.GAIAConfig.chainId,500));return{...j,address:$,transfer:async({assetValue:_,recipient:Z,memo:W})=>{let O=_.getBaseValue("string"),B=await j.getAccount($),L=await J.cosmos.cosmosSignAmino({signDoc:{account_number:B?.accountNumber.toString()??"",chain_id:E.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:$}),N=atob(L.serialized),I=new Uint8Array(N.length).map((w,A)=>N.charCodeAt(A)),G=await E.getRPCUrl(E.Chain.Cosmos);return(await(await q(G)).broadcastTx(I)).transactionHash}}}var M=require("@swapkit/helpers"),l=require("ethers");class v 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.SwapKitError("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:U,gasPrice:$})=>{if(!J)throw new M.SwapKitError("wallet_keepkey_invalid_params",{reason:"Missing to address"});if(!X)throw new M.SwapKitError("wallet_keepkey_invalid_params",{reason:"Missing gasLimit"});if(!Y)throw new M.SwapKitError("wallet_keepkey_invalid_params",{reason:"Missing data"});let j=!!((q||U)&&!$);if(j&&!q)throw new M.SwapKitError("wallet_keepkey_invalid_params",{reason:"Missing maxFeePerGas"});if(j&&!U)throw new M.SwapKitError("wallet_keepkey_invalid_params",{reason:"Missing maxPriorityFeePerGas"});if(!(j||$))throw new M.SwapKitError("wallet_keepkey_invalid_params",{reason:"Missing gasPrice"});let{toHexString:R}=await import("@swapkit/toolboxes/evm"),_=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(_),to:J.toString(),value:R(BigInt(Q||0)),...j&&{maxFeePerGas:R(BigInt(q?.toString()||"0")),maxPriorityFeePerGas:R(BigInt(U?.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.SwapKitError("wallet_keepkey_no_provider");let Q=await this.signTransaction(J);return await this.provider.broadcastTransaction(Q)};connect=(J)=>new v({chain:this.chain,derivationPath:this.derivationPath,provider:J,sdk:this.sdk})}var V=require("@swapkit/helpers");async function m({sdk:J,derivationPath:Q}){let{createStargateClient:X,getCosmosToolbox:H}=await import("@swapkit/toolboxes/cosmos"),Y=await H(V.Chain.Maya),q=Q?V.derivationPathToString(Q):`${V.DerivationPath.MAYA}/0`,{address:U}=await J.address.mayachainGetAddress({address_n:y(q)}),$=async({assetValue:_,recipient:Z,sender:W,memo:O})=>{let B=await import("@cosmjs/amino"),L=B.makeSignDoc??B.default?.makeSignDoc,{getDenomWithChain:N}=await import("@swapkit/toolboxes/cosmos"),I=await Y.getAccount(W);if(!I)throw new V.SwapKitError("wallet_keepkey_account_not_found");let{accountNumber:G,sequence:F=0}=I,K=_.getBaseValue("string"),w=Z&&Z!=="",A=w?{type:"mayachain/MsgSend",value:{amount:[{amount:K,denom:_.symbol.toLowerCase()}],from_address:W,to_address:Z}}:{type:"mayachain/MsgDeposit",value:{coins:[{amount:K,asset: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}),k=atob(x.serialized);return new Uint8Array(k.length).map((C,n)=>k.charCodeAt(n))};return{...Y,address:U,deposit:async({assetValue:_,memo:Z})=>{let W=await V.getRPCUrl(V.Chain.Maya),O=await X(W),B=await $({assetValue:_,memo:Z,sender:U}),{transactionHash:L}=await O.broadcastTx(B);return L},transfer:async({assetValue:_,recipient:Z,memo:W})=>{let O=await V.getRPCUrl(V.Chain.Maya),B=await X(O),L=await $({assetValue:_,memo:W,recipient:Z,sender:U}),{transactionHash:N}=await B.broadcastTx(L);return N}}}var D=require("@swapkit/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:U,getCosmosToolbox:$}=await import("@swapkit/toolboxes/cosmos"),j=await $(D.Chain.THORChain),R=Q?D.derivationPathToString(Q):`${D.DerivationPath.THOR}/0`,{address:_}=await J.address.thorchainGetAddress({address_n:y(R)}),Z=async({assetValue:B,recipient:L,sender:N,memo:I})=>{let G=await j.getAccount(N);if(!G)throw new D.SwapKitError("wallet_keepkey_account_not_found");let{accountNumber:F,sequence:K=0}=G,w=L&&L!=="",A=Y({assetValue:B,memo:I,recipient:L,sender:N}),T=H([A],q(D.Chain.THORChain),D.THORConfig.chainId,I,F?.toString(),K),S=w?await J.thorchain.thorchainSignAminoTransfer({signDoc:T,signerAddress:N}):await J.thorchain.thorchainSignAminoDeposit({signDoc:T,signerAddress:N}),x=atob(S.serialized);return new Uint8Array(x.length).map((k,C)=>x.charCodeAt(C))};return{...j,address:_,deposit:async({assetValue:B,memo:L})=>{let N=await D.getRPCUrl(D.Chain.THORChain),I=await U(N),G=await Z({assetValue:B,memo:L,sender:_}),{transactionHash:F}=await I.broadcastTx(G);return F},transfer:async({assetValue:B,recipient:L,memo:N})=>{let I=await D.getRPCUrl(D.Chain.THORChain),G=await U(I),F=await Z({assetValue:B,memo:N,recipient:L,sender:_}),{transactionHash:K}=await G.broadcastTx(F);return K}}}var b=require("@swapkit/helpers");async function c({sdk:J,chain:Q,derivationPath:X}){let{getUtxoToolbox:H}=await import("@swapkit/toolboxes/utxo"),Y=await H(Q),q=[b.Chain.Bitcoin,b.Chain.Litecoin].includes(Q)?"p2wpkh":"p2pkh",U=X?b.derivationPathToString(X):`${b.DerivationPath[Q]}/0`,$={address_n:y(U),coin:P[Q],script_type:q},j=(await J.address.utxoGetAddress($)).address,R=async(Z,W,O="")=>{let B=Z.txOutputs.map((I)=>{let{value:G,address:F,change:K}=I,w=Q===b.Chain.BitcoinCash?Y.stripToCashAddress(F):F;if(K||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=(I)=>{return I.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 b.SwapKitError("wallet_keepkey_invalid_params",{reason:"From address must be provided"});if(!Z)throw new b.SwapKitError("wallet_keepkey_invalid_params",{reason:"Recipient address must be provided"});let N=Q===b.Chain.BitcoinCash?Y.buildTx:Y.createTransaction,{psbt:I,inputs:G}=await N({...L,feeRate:O||(await Y.getFeeRates())[W||b.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})),K=await R(I,F,B);return Y.broadcastTx(K)}}}var d=u.createWallet({connect:({addChain:J,supportedChains:Q,walletType:X})=>async function(Y,q){let U=z.filterSupportedChains({chains:Y,supportedChains:Q,walletType:X}),$=z.SKConfig.get("integrations").keepKey;if(!$)throw Error("KeepKey config not found");let j=z.SKConfig.get("apiKeys").keepKey||"1234";await o();let R={apiKey:j,pairingInfo:$},_=await h.KeepKeySdk.create(R);if(R.apiKey&&R.apiKey!==j)z.SKConfig.setApiKey("keepKey",R.apiKey);return await Promise.all(U.map(async(Z)=>{let W=await a({chain:Z,derivationPath:q?.[Z]||z.NetworkDerivationPath[Z],sdk:_}),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.Ripple,z.Chain.Optimism,z.Chain.Polygon,z.Chain.THORChain,z.Chain.Maya],walletType:z.WalletOption.KEEPKEY}),t=u.getWalletSupportedChains(d);async function a({sdk:J,chain:Q,derivationPath:X}){let{getProvider:H,getEvmToolbox:Y}=await import("@swapkit/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:{let q=await H(Q),U=new v({chain:Q,derivationPath:X,provider:q,sdk:J});return await Y(Q,{provider:q,signer:U})}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 c({chain:Q,derivationPath:X,sdk:J});case z.Chain.Ripple:{let{rippleWalletMethods:q}=await import("../chunk-8sth2w05.js");return q({derivationPath:X,sdk:J})}default:throw new z.SwapKitError("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 i())window.location.assign("keepkey://launch"),await new Promise((X)=>setTimeout(X,30000)),await o(J+1)}async function i(J="http://localhost:1646/spec/swagger.json"){try{return(await fetch(J)).status===200}catch{return!1}}
1
+ var e={};s(e,{keepkeyWallet:()=>d,KEEPKEY_SUPPORTED_CHAINS:()=>t});module.exports=n(e);var h=require("@keepkey/keepkey-sdk"),z=require("@swapkit/helpers"),u=require("@swapkit/wallet-core");var E=require("@swapkit/helpers");async function g({sdk:J,derivationPath:Q}){let{DEFAULT_COSMOS_FEE_MAINNET:X,getCosmosToolbox:H,getFeeRateFromSwapKit:Y,createStargateClient:q}=await import("@swapkit/toolboxes/cosmos"),U=Q?E.derivationPathToString(Q):`${E.DerivationPath.GAIA}/0`,{address:$}=await J.address.cosmosGetAddress({address_n:y(U)}),j=await H(E.Chain.Cosmos);if(X.amount[0])X.amount[0].amount=String(await Y(E.GAIAConfig.chainId,500));return{...j,address:$,transfer:async({assetValue:_,recipient:Z,memo:W})=>{let O=_.getBaseValue("string"),B=await j.getAccount($),L=await J.cosmos.cosmosSignAmino({signDoc:{account_number:B?.accountNumber.toString()??"",chain_id:E.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:$}),N=atob(L.serialized),I=new Uint8Array(N.length).map((w,A)=>N.charCodeAt(A)),G=await E.getRPCUrl(E.Chain.Cosmos);return(await(await q(G)).broadcastTx(I)).transactionHash}}}var M=require("@swapkit/helpers"),l=require("ethers");class v 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.SwapKitError("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:U,gasPrice:$})=>{if(!J)throw new M.SwapKitError("wallet_keepkey_invalid_params",{reason:"Missing to address"});if(!X)throw new M.SwapKitError("wallet_keepkey_invalid_params",{reason:"Missing gasLimit"});if(!Y)throw new M.SwapKitError("wallet_keepkey_invalid_params",{reason:"Missing data"});let j=!!((q||U)&&!$);if(j&&!q)throw new M.SwapKitError("wallet_keepkey_invalid_params",{reason:"Missing maxFeePerGas"});if(j&&!U)throw new M.SwapKitError("wallet_keepkey_invalid_params",{reason:"Missing maxPriorityFeePerGas"});if(!(j||$))throw new M.SwapKitError("wallet_keepkey_invalid_params",{reason:"Missing gasPrice"});let{toHexString:R}=await import("@swapkit/toolboxes/evm"),_=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(_),to:J.toString(),value:R(BigInt(Q||0)),...j&&{maxFeePerGas:R(BigInt(q?.toString()||"0")),maxPriorityFeePerGas:R(BigInt(U?.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.SwapKitError("wallet_keepkey_no_provider");let Q=await this.signTransaction(J);return await this.provider.broadcastTransaction(Q)};connect=(J)=>new v({chain:this.chain,derivationPath:this.derivationPath,provider:J,sdk:this.sdk})}var V=require("@swapkit/helpers");async function m({sdk:J,derivationPath:Q}){let{createStargateClient:X,getCosmosToolbox:H}=await import("@swapkit/toolboxes/cosmos"),Y=await H(V.Chain.Maya),q=Q?V.derivationPathToString(Q):`${V.DerivationPath.MAYA}/0`,{address:U}=await J.address.mayachainGetAddress({address_n:y(q)}),$=async({assetValue:_,recipient:Z,sender:W,memo:O})=>{let B=await import("@cosmjs/amino"),L=B.makeSignDoc??B.default?.makeSignDoc,{getDenomWithChain:N}=await import("@swapkit/toolboxes/cosmos"),I=await Y.getAccount(W);if(!I)throw new V.SwapKitError("wallet_keepkey_account_not_found");let{accountNumber:G,sequence:F=0}=I,K=_.getBaseValue("string"),w=Z&&Z!=="",A=w?{type:"mayachain/MsgSend",value:{amount:[{amount:K,denom:_.symbol.toLowerCase()}],from_address:W,to_address:Z}}:{type:"mayachain/MsgDeposit",value:{coins:[{amount:K,asset: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}),k=atob(x.serialized);return new Uint8Array(k.length).map((C,r)=>k.charCodeAt(r))};return{...Y,address:U,deposit:async({assetValue:_,memo:Z})=>{let W=await V.getRPCUrl(V.Chain.Maya),O=await X(W),B=await $({assetValue:_,memo:Z,sender:U}),{transactionHash:L}=await O.broadcastTx(B);return L},transfer:async({assetValue:_,recipient:Z,memo:W})=>{let O=await V.getRPCUrl(V.Chain.Maya),B=await X(O),L=await $({assetValue:_,memo:W,recipient:Z,sender:U}),{transactionHash:N}=await B.broadcastTx(L);return N}}}var D=require("@swapkit/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:U,getCosmosToolbox:$}=await import("@swapkit/toolboxes/cosmos"),j=await $(D.Chain.THORChain),R=Q?D.derivationPathToString(Q):`${D.DerivationPath.THOR}/0`,{address:_}=await J.address.thorchainGetAddress({address_n:y(R)}),Z=async({assetValue:B,recipient:L,sender:N,memo:I})=>{let G=await j.getAccount(N);if(!G)throw new D.SwapKitError("wallet_keepkey_account_not_found");let{accountNumber:F,sequence:K=0}=G,w=L&&L!=="",A=Y({assetValue:B,memo:I,recipient:L,sender:N}),T=H([A],q(D.Chain.THORChain),D.THORConfig.chainId,I,F?.toString(),K),S=w?await J.thorchain.thorchainSignAminoTransfer({signDoc:T,signerAddress:N}):await J.thorchain.thorchainSignAminoDeposit({signDoc:T,signerAddress:N}),x=atob(S.serialized);return new Uint8Array(x.length).map((k,C)=>x.charCodeAt(C))};return{...j,address:_,deposit:async({assetValue:B,memo:L})=>{let N=await D.getRPCUrl(D.Chain.THORChain),I=await U(N),G=await Z({assetValue:B,memo:L,sender:_}),{transactionHash:F}=await I.broadcastTx(G);return F},transfer:async({assetValue:B,recipient:L,memo:N})=>{let I=await D.getRPCUrl(D.Chain.THORChain),G=await U(I),F=await Z({assetValue:B,memo:N,recipient:L,sender:_}),{transactionHash:K}=await G.broadcastTx(F);return K}}}var b=require("@swapkit/helpers");async function c({sdk:J,chain:Q,derivationPath:X}){let{getUtxoToolbox:H}=await import("@swapkit/toolboxes/utxo"),Y=await H(Q),q=[b.Chain.Bitcoin,b.Chain.Litecoin].includes(Q)?"p2wpkh":"p2pkh",U=X?b.derivationPathToString(X):`${b.DerivationPath[Q]}/0`,$={address_n:y(U),coin:P[Q],script_type:q},j=(await J.address.utxoGetAddress($)).address,R=async(Z,W,O="")=>{let B=Z.txOutputs.map((I)=>{let{value:G,address:F,change:K}=I,w=Q===b.Chain.BitcoinCash?Y.stripToCashAddress(F):F;if(K||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=(I)=>{return I.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 b.SwapKitError("wallet_keepkey_invalid_params",{reason:"From address must be provided"});if(!Z)throw new b.SwapKitError("wallet_keepkey_invalid_params",{reason:"Recipient address must be provided"});let N=Q===b.Chain.BitcoinCash?Y.buildTx:Y.createTransaction,{psbt:I,inputs:G}=await N({...L,feeRate:O||(await Y.getFeeRates())[W||b.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})),K=await R(I,F,B);return Y.broadcastTx(K)}}}var d=u.createWallet({connect:({addChain:J,supportedChains:Q,walletType:X})=>async function(Y,q){let U=z.filterSupportedChains({chains:Y,supportedChains:Q,walletType:X}),$=z.SKConfig.get("integrations").keepKey;if(!$)throw Error("KeepKey config not found");let j=z.SKConfig.get("apiKeys").keepKey||"1234";await o();let R={apiKey:j,pairingInfo:$},_=await h.KeepKeySdk.create(R);if(R.apiKey&&R.apiKey!==j)z.SKConfig.setApiKey("keepKey",R.apiKey);return await Promise.all(U.map(async(Z)=>{let W=await a({chain:Z,derivationPath:q?.[Z]||z.NetworkDerivationPath[Z],sdk:_}),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.Ripple,z.Chain.Optimism,z.Chain.Polygon,z.Chain.THORChain,z.Chain.Maya,z.Chain.XLayer],walletType:z.WalletOption.KEEPKEY}),t=u.getWalletSupportedChains(d);async function a({sdk:J,chain:Q,derivationPath:X}){let{getProvider:H,getEvmToolbox:Y}=await import("@swapkit/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.XLayer:{let q=await H(Q),U=new v({chain:Q,derivationPath:X,provider:q,sdk:J});return await Y(Q,{provider:q,signer:U})}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 c({chain:Q,derivationPath:X,sdk:J});case z.Chain.Ripple:{let{rippleWalletMethods:q}=await import("../chunk-8sth2w05.js");return q({derivationPath:X,sdk:J})}default:throw new z.SwapKitError("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 i())window.location.assign("keepkey://launch"),await new Promise((X)=>setTimeout(X,30000)),await o(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=0C9BF3226D0D237964756E2164756E21
3
+ //# debugId=2C6172A16189222B64756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -2,14 +2,14 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/keepkey/index.ts", "../src/keepkey/chains/cosmos.ts", "../src/keepkey/chains/evm.ts", "../src/keepkey/chains/mayachain.ts", "../src/keepkey/chains/thorchain.ts", "../src/keepkey/chains/utxo.ts"],
4
4
  "sourcesContent": [
5
- "import { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n Chain,\n type DerivationPathArray,\n filterSupportedChains,\n NetworkDerivationPath,\n SKConfig,\n SwapKitError,\n WalletOption,\n} from \"@swapkit/helpers\";\n\nexport type { PairingInfo } from \"@keepkey/keepkey-sdk\";\n\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { cosmosWalletMethods } from \"./chains/cosmos\";\nimport { KeepKeySigner } from \"./chains/evm\";\nimport { mayachainWalletMethods } from \"./chains/mayachain\";\nimport { thorchainWalletMethods } from \"./chains/thorchain\";\nimport { utxoWalletMethods } from \"./chains/utxo\";\n\nexport const keepkeyWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectKeepkey(chains: Chain[], derivationPathMap?: Record<Chain, DerivationPathArray>) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const pairingInfo = SKConfig.get(\"integrations\").keepKey;\n if (!pairingInfo) throw new Error(\"KeepKey config not found\");\n\n const initialApiKey = SKConfig.get(\"apiKeys\").keepKey || \"1234\";\n\n await checkAndLaunch();\n\n // Conform to the expected { apiKey, pairingInfo } structure\n const keepkeyConfig = { apiKey: initialApiKey, pairingInfo };\n const keepKeySdk = await KeepKeySdk.create(keepkeyConfig);\n\n // Persist the new API key via SKConfig after pairing\n if (keepkeyConfig.apiKey && keepkeyConfig.apiKey !== initialApiKey) {\n SKConfig.setApiKey(\"keepKey\", keepkeyConfig.apiKey);\n }\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods({\n chain,\n derivationPath: derivationPathMap?.[chain] || NetworkDerivationPath[chain],\n sdk: keepKeySdk,\n });\n const address = (await walletMethods.getAddress()) || \"\";\n\n addChain({ ...walletMethods, address, chain, walletType: WalletOption.KEEPKEY });\n }),\n );\n return true;\n },\n name: \"connectKeepkey\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Cosmos,\n Chain.Dogecoin,\n Chain.Dash,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Ripple,\n Chain.Optimism,\n Chain.Polygon,\n Chain.THORChain,\n Chain.Maya,\n ],\n walletType: WalletOption.KEEPKEY,\n});\n\nexport const KEEPKEY_SUPPORTED_CHAINS = getWalletSupportedChains(keepkeyWallet);\n\nasync function getWalletMethods({\n sdk,\n chain,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n chain: Chain;\n derivationPath?: DerivationPathArray;\n}) {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.Ethereum: {\n const provider = await getProvider(chain);\n const signer = new KeepKeySigner({ chain, derivationPath, provider, sdk });\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return toolbox;\n }\n case Chain.Cosmos: {\n return cosmosWalletMethods({ derivationPath, sdk });\n }\n case Chain.THORChain: {\n return thorchainWalletMethods({ derivationPath, sdk });\n }\n case Chain.Maya: {\n return mayachainWalletMethods({ derivationPath, sdk });\n }\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n return utxoWalletMethods({ chain, derivationPath, sdk });\n }\n case Chain.Ripple: {\n const { rippleWalletMethods } = await import(\"./chains/ripple\");\n return rippleWalletMethods({ derivationPath, sdk });\n }\n default:\n throw new SwapKitError(\"wallet_keepkey_chain_not_supported\", { chain });\n }\n}\n\n// kk-sdk docs: https://keepkey.com/blog/building_on_the_keepkey_sdk\n// test spec: if offline, launch keepkey-bridge\nasync function checkAndLaunch(attempts = 0) {\n if (attempts >= 3) {\n alert(\"KeepKey desktop is required for keepkey-sdk, please go to https://keepkey.com/get-started\");\n }\n const isAvailable = await checkKeepkeyAvailability();\n\n if (!isAvailable) {\n window.location.assign(\"keepkey://launch\");\n await new Promise((resolve) => setTimeout(resolve, 30000));\n await checkAndLaunch(attempts + 1);\n }\n}\n\nasync function checkKeepkeyAvailability(spec = \"http://localhost:1646/spec/swagger.json\") {\n try {\n const response = await fetch(spec);\n return response.status === 200;\n } catch {\n return false;\n }\n}\n",
5
+ "import { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n Chain,\n type DerivationPathArray,\n filterSupportedChains,\n NetworkDerivationPath,\n SKConfig,\n SwapKitError,\n WalletOption,\n} from \"@swapkit/helpers\";\n\nexport type { PairingInfo } from \"@keepkey/keepkey-sdk\";\n\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { cosmosWalletMethods } from \"./chains/cosmos\";\nimport { KeepKeySigner } from \"./chains/evm\";\nimport { mayachainWalletMethods } from \"./chains/mayachain\";\nimport { thorchainWalletMethods } from \"./chains/thorchain\";\nimport { utxoWalletMethods } from \"./chains/utxo\";\n\nexport const keepkeyWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectKeepkey(chains: Chain[], derivationPathMap?: Record<Chain, DerivationPathArray>) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const pairingInfo = SKConfig.get(\"integrations\").keepKey;\n if (!pairingInfo) throw new Error(\"KeepKey config not found\");\n\n const initialApiKey = SKConfig.get(\"apiKeys\").keepKey || \"1234\";\n\n await checkAndLaunch();\n\n // Conform to the expected { apiKey, pairingInfo } structure\n const keepkeyConfig = { apiKey: initialApiKey, pairingInfo };\n const keepKeySdk = await KeepKeySdk.create(keepkeyConfig);\n\n // Persist the new API key via SKConfig after pairing\n if (keepkeyConfig.apiKey && keepkeyConfig.apiKey !== initialApiKey) {\n SKConfig.setApiKey(\"keepKey\", keepkeyConfig.apiKey);\n }\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods({\n chain,\n derivationPath: derivationPathMap?.[chain] || NetworkDerivationPath[chain],\n sdk: keepKeySdk,\n });\n const address = (await walletMethods.getAddress()) || \"\";\n\n addChain({ ...walletMethods, address, chain, walletType: WalletOption.KEEPKEY });\n }),\n );\n return true;\n },\n name: \"connectKeepkey\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Cosmos,\n Chain.Dogecoin,\n Chain.Dash,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Ripple,\n Chain.Optimism,\n Chain.Polygon,\n Chain.THORChain,\n Chain.Maya,\n Chain.XLayer,\n ],\n walletType: WalletOption.KEEPKEY,\n});\n\nexport const KEEPKEY_SUPPORTED_CHAINS = getWalletSupportedChains(keepkeyWallet);\n\nasync function getWalletMethods({\n sdk,\n chain,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n chain: Chain;\n derivationPath?: DerivationPathArray;\n}) {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.Ethereum:\n case Chain.XLayer: {\n const provider = await getProvider(chain);\n const signer = new KeepKeySigner({ chain, derivationPath, provider, sdk });\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return toolbox;\n }\n case Chain.Cosmos: {\n return cosmosWalletMethods({ derivationPath, sdk });\n }\n case Chain.THORChain: {\n return thorchainWalletMethods({ derivationPath, sdk });\n }\n case Chain.Maya: {\n return mayachainWalletMethods({ derivationPath, sdk });\n }\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n return utxoWalletMethods({ chain, derivationPath, sdk });\n }\n case Chain.Ripple: {\n const { rippleWalletMethods } = await import(\"./chains/ripple\");\n return rippleWalletMethods({ derivationPath, sdk });\n }\n default:\n throw new SwapKitError(\"wallet_keepkey_chain_not_supported\", { chain });\n }\n}\n\n// kk-sdk docs: https://keepkey.com/blog/building_on_the_keepkey_sdk\n// test spec: if offline, launch keepkey-bridge\nasync function checkAndLaunch(attempts = 0) {\n if (attempts >= 3) {\n alert(\"KeepKey desktop is required for keepkey-sdk, please go to https://keepkey.com/get-started\");\n }\n const isAvailable = await checkKeepkeyAvailability();\n\n if (!isAvailable) {\n window.location.assign(\"keepkey://launch\");\n await new Promise((resolve) => setTimeout(resolve, 30000));\n await checkAndLaunch(attempts + 1);\n }\n}\n\nasync function checkKeepkeyAvailability(spec = \"http://localhost:1646/spec/swagger.json\") {\n try {\n const response = await fetch(spec);\n return response.status === 200;\n } catch {\n return false;\n }\n}\n",
6
6
  "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport type { GenericTransferParams } from \"@swapkit/helpers\";\nimport {\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n GAIAConfig,\n getRPCUrl,\n} from \"@swapkit/helpers\";\n\nimport { bip32ToAddressNList } from \"../coins\";\n\nexport async function cosmosWalletMethods({\n sdk,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n derivationPath?: DerivationPathArray;\n}): Promise<any> {\n const { DEFAULT_COSMOS_FEE_MAINNET, getCosmosToolbox, getFeeRateFromSwapKit, createStargateClient } = await import(\n \"@swapkit/toolboxes/cosmos\"\n );\n const derivationPathString = derivationPath ? derivationPathToString(derivationPath) : `${DerivationPath.GAIA}/0`;\n\n const { address: fromAddress } = (await sdk.address.cosmosGetAddress({\n address_n: bip32ToAddressNList(derivationPathString),\n })) as { address: string };\n\n const toolbox = await getCosmosToolbox(Chain.Cosmos);\n\n if (DEFAULT_COSMOS_FEE_MAINNET.amount[0]) {\n DEFAULT_COSMOS_FEE_MAINNET.amount[0].amount = String(await getFeeRateFromSwapKit(GAIAConfig.chainId, 500));\n }\n\n // TODO support other cosmos assets\n const transfer = async ({ assetValue, recipient, memo }: GenericTransferParams) => {\n const amount = assetValue.getBaseValue(\"string\");\n const accountInfo = await toolbox.getAccount(fromAddress);\n\n const keepKeySignedTx = await sdk.cosmos.cosmosSignAmino({\n signDoc: {\n account_number: accountInfo?.accountNumber.toString() ?? \"\",\n chain_id: GAIAConfig.chainId,\n fee: DEFAULT_COSMOS_FEE_MAINNET,\n memo: memo || \"\",\n msgs: [\n {\n type: \"cosmos-sdk/MsgSend\",\n value: { amount: [{ amount, denom: \"uatom\" }], from_address: fromAddress, to_address: recipient },\n },\n ],\n sequence: accountInfo?.sequence.toString() ?? \"\",\n },\n signerAddress: fromAddress,\n });\n\n const decodedBytes = atob(keepKeySignedTx.serialized);\n const uint8Array = new Uint8Array(decodedBytes.length).map((_, i) => decodedBytes.charCodeAt(i));\n\n const rpcUrl = await getRPCUrl(Chain.Cosmos);\n const client = await createStargateClient(rpcUrl);\n const response = await client.broadcastTx(uint8Array);\n\n return response.transactionHash;\n };\n\n return { ...toolbox, address: fromAddress, transfer };\n}\n",
7
7
  "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n type Chain,\n ChainToChainId,\n type DerivationPathArray,\n derivationPathToString,\n NetworkDerivationPath,\n SwapKitError,\n} from \"@swapkit/helpers\";\nimport type { JsonRpcProvider, Provider, TransactionRequest } from \"ethers\";\nimport { AbstractSigner } from \"ethers\";\n\nimport { bip32ToAddressNList } from \"../coins\";\n\ninterface KeepKeyEVMSignerParams {\n sdk: KeepKeySdk;\n chain: Chain;\n derivationPath?: DerivationPathArray;\n provider: Provider | JsonRpcProvider;\n}\n\nexport class KeepKeySigner extends AbstractSigner {\n private sdk: KeepKeySdk;\n private chain: Chain;\n private derivationPath: DerivationPathArray;\n private address: string;\n readonly provider: Provider | JsonRpcProvider;\n\n constructor({ sdk, chain, derivationPath, provider }: KeepKeyEVMSignerParams) {\n super();\n this.sdk = sdk;\n this.chain = chain;\n this.derivationPath = derivationPath || NetworkDerivationPath.ETH;\n this.address = \"\";\n this.provider = provider;\n }\n\n signTypedData(): Promise<string> {\n throw new SwapKitError(\"wallet_keepkey_method_not_supported\", { method: \"signTypedData\" });\n }\n\n getAddress = async () => {\n if (this.address) return this.address;\n const { address } = await this.sdk.address.ethereumGetAddress({\n address_n: bip32ToAddressNList(derivationPathToString(this.derivationPath)),\n });\n\n this.address = address;\n return address;\n };\n\n signMessage = (message: string) => this.sdk.eth.ethSign({ address: this.address, message }) as Promise<string>;\n\n signTransaction = async ({\n to,\n value,\n gasLimit,\n nonce,\n data,\n maxFeePerGas,\n maxPriorityFeePerGas,\n gasPrice,\n }: TransactionRequest) => {\n if (!to) throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing to address\" });\n if (!gasLimit) throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing gasLimit\" });\n if (!data) throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing data\" });\n\n const isEIP1559 = !!((maxFeePerGas || maxPriorityFeePerGas) && !gasPrice);\n if (isEIP1559 && !maxFeePerGas)\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing maxFeePerGas\" });\n if (isEIP1559 && !maxPriorityFeePerGas)\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing maxPriorityFeePerGas\" });\n if (!(isEIP1559 || gasPrice))\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing gasPrice\" });\n\n const { toHexString } = await import(\"@swapkit/toolboxes/evm\");\n\n const nonceValue = nonce\n ? BigInt(nonce)\n : BigInt(await this.provider.getTransactionCount(await this.getAddress(), \"pending\"));\n\n const input = {\n addressNList: [2147483692, 2147483708, 2147483648, 0, 0],\n chainId: toHexString(BigInt(ChainToChainId[this.chain])),\n data,\n from: this.address,\n gas: toHexString(BigInt(gasLimit)),\n nonce: toHexString(nonceValue),\n to: to.toString(),\n value: toHexString(BigInt(value || 0)),\n ...(isEIP1559 && {\n maxFeePerGas: toHexString(BigInt(maxFeePerGas?.toString() || \"0\")),\n maxPriorityFeePerGas: toHexString(BigInt(maxPriorityFeePerGas?.toString() || \"0\")),\n }),\n ...(!isEIP1559 && {\n // Fixed syntax error and structure here\n gasPrice: toHexString(BigInt(gasPrice?.toString() || \"0\")),\n }),\n };\n const responseSign = await this.sdk.eth.ethSignTransaction(input);\n return responseSign.serialized;\n };\n\n sendTransaction = async (tx: TransactionRequest): Promise<any> => {\n if (!this.provider) throw new SwapKitError(\"wallet_keepkey_no_provider\");\n\n const signedTxHex = await this.signTransaction(tx);\n\n return await this.provider.broadcastTransaction(signedTxHex);\n };\n\n connect = (provider: Provider) =>\n new KeepKeySigner({ chain: this.chain, derivationPath: this.derivationPath, provider, sdk: this.sdk });\n}\n",
8
8
  "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n type AssetValue,\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n type GenericTransferParams,\n getRPCUrl,\n MAYAConfig,\n SwapKitError,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams } from \"@swapkit/toolboxes/cosmos\";\n\nimport { bip32ToAddressNList } from \"../coins\";\n\ntype SignTransactionParams = { assetValue: AssetValue; recipient?: string; sender: string; memo: string | undefined };\n\nexport async function mayachainWalletMethods({\n sdk,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n derivationPath?: DerivationPathArray;\n}): Promise<any> {\n const { createStargateClient, getCosmosToolbox } = await import(\"@swapkit/toolboxes/cosmos\");\n\n const toolbox = await getCosmosToolbox(Chain.Maya);\n const derivationPathString = derivationPath ? derivationPathToString(derivationPath) : `${DerivationPath.MAYA}/0`;\n\n const { address: fromAddress } = (await sdk.address.mayachainGetAddress({\n address_n: bip32ToAddressNList(derivationPathString),\n })) as { address: string };\n\n const signTransaction = async ({ assetValue, recipient, sender, memo }: SignTransactionParams) => {\n const importedAmino = await import(\"@cosmjs/amino\");\n const makeSignDoc = importedAmino.makeSignDoc ?? importedAmino.default?.makeSignDoc;\n const { getDenomWithChain } = await import(\"@swapkit/toolboxes/cosmos\");\n\n const account = await toolbox.getAccount(sender);\n if (!account) throw new SwapKitError(\"wallet_keepkey_account_not_found\");\n const { accountNumber, sequence = 0 } = account;\n const amount = assetValue.getBaseValue(\"string\");\n\n const isTransfer = recipient && recipient !== \"\";\n\n // TODO check if we can move to toolbox created msg\n const msg = isTransfer\n ? {\n type: \"mayachain/MsgSend\",\n value: {\n amount: [{ amount, denom: assetValue.symbol.toLowerCase() }],\n from_address: sender,\n to_address: recipient,\n },\n }\n : {\n type: \"mayachain/MsgDeposit\",\n value: { coins: [{ amount, asset: getDenomWithChain(assetValue) }], memo, signer: sender },\n };\n\n const signDoc = makeSignDoc(\n [msg],\n { amount: [], gas: \"500000000\" },\n MAYAConfig.chainId,\n memo,\n accountNumber?.toString(),\n sequence,\n );\n\n const sdkMethod = isTransfer ? sdk.mayachain.mayachainSignAminoTransfer : sdk.mayachain.mayachainSignAminoDeposit;\n\n // @ts-expect-error TC\n const signedTx = await sdkMethod({ signDoc, signerAddress: sender });\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.Maya);\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.Maya);\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 return { ...toolbox, address: fromAddress, deposit, transfer };\n}\n",
9
9
  "import 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 SwapKitError,\n THORConfig,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams } from \"@swapkit/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 \"@swapkit/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 SwapKitError(\"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
  "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n FeeOption,\n type GenericTransferParams,\n SwapKitError,\n type UTXOChain,\n} from \"@swapkit/helpers\";\nimport type { UTXOToolboxes } from \"@swapkit/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(\"@swapkit/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 SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"From address must be provided\" });\n if (!recipient)\n throw new SwapKitError(\"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": "0C9BF3226D0D237964756E2164756E21",
12
+ "mappings": "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",
13
+ "debugId": "2C6172A16189222B64756E2164756E21",
14
14
  "names": []
15
15
  }
@@ -1,4 +1,4 @@
1
- import{a as k,b as E}from"../chunk-7fsaymh4.js";import{c as F,d as b}from"../chunk-zzfbcc7e.js";import{KeepKeySdk as _z}from"@keepkey/keepkey-sdk";import{Chain as Q,filterSupportedChains as Nz,NetworkDerivationPath as Iz,SKConfig as P,SwapKitError as Dz,WalletOption as r}from"@swapkit/helpers";import{createWallet as Hz,getWalletSupportedChains as Oz}from"@swapkit/wallet-core";import{Chain as g,DerivationPath as a,derivationPathToString as i,GAIAConfig as l,getRPCUrl as e}from"@swapkit/helpers";async function m({sdk:z,derivationPath:J}){let{DEFAULT_COSMOS_FEE_MAINNET:X,getCosmosToolbox:D,getFeeRateFromSwapKit:Y,createStargateClient:q}=await import("@swapkit/toolboxes/cosmos"),U=J?i(J):`${a.GAIA}/0`,{address:$}=await z.address.cosmosGetAddress({address_n:E(U)}),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:_,recipient:Z,memo:W})=>{let H=_.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:$}),N=atob(L.serialized),I=new Uint8Array(N.length).map((V,w)=>N.charCodeAt(w)),G=await e(g.Cosmos);return(await(await q(G)).broadcastTx(I)).transactionHash}}}import{ChainToChainId as zz,derivationPathToString as Jz,NetworkDerivationPath as Qz,SwapKitError as K}from"@swapkit/helpers";import{AbstractSigner as Xz}from"ethers";class T extends Xz{sdk;chain;derivationPath;address;provider;constructor({sdk:z,chain:J,derivationPath:X,provider:D}){super();this.sdk=z,this.chain=J,this.derivationPath=X||Qz.ETH,this.address="",this.provider=D}signTypedData(){throw new K("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:E(Jz(this.derivationPath))});return this.address=z,z};signMessage=(z)=>this.sdk.eth.ethSign({address:this.address,message:z});signTransaction=async({to:z,value:J,gasLimit:X,nonce:D,data:Y,maxFeePerGas:q,maxPriorityFeePerGas:U,gasPrice:$})=>{if(!z)throw new K("wallet_keepkey_invalid_params",{reason:"Missing to address"});if(!X)throw new K("wallet_keepkey_invalid_params",{reason:"Missing gasLimit"});if(!Y)throw new K("wallet_keepkey_invalid_params",{reason:"Missing data"});let j=!!((q||U)&&!$);if(j&&!q)throw new K("wallet_keepkey_invalid_params",{reason:"Missing maxFeePerGas"});if(j&&!U)throw new K("wallet_keepkey_invalid_params",{reason:"Missing maxPriorityFeePerGas"});if(!(j||$))throw new K("wallet_keepkey_invalid_params",{reason:"Missing gasPrice"});let{toHexString:R}=await import("@swapkit/toolboxes/evm"),_=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(_),to:z.toString(),value:R(BigInt(J||0)),...j&&{maxFeePerGas:R(BigInt(q?.toString()||"0")),maxPriorityFeePerGas:R(BigInt(U?.toString()||"0"))},...!j&&{gasPrice:R(BigInt($?.toString()||"0"))}};return(await this.sdk.eth.ethSignTransaction(Z)).serialized};sendTransaction=async(z)=>{if(!this.provider)throw new K("wallet_keepkey_no_provider");let J=await this.signTransaction(z);return await this.provider.broadcastTransaction(J)};connect=(z)=>new T({chain:this.chain,derivationPath:this.derivationPath,provider:z,sdk:this.sdk})}import{Chain as u,DerivationPath as Zz,derivationPathToString as $z,getRPCUrl as p,MAYAConfig as Yz,SwapKitError as qz}from"@swapkit/helpers";async function c({sdk:z,derivationPath:J}){let{createStargateClient:X,getCosmosToolbox:D}=await import("@swapkit/toolboxes/cosmos"),Y=await D(u.Maya),q=J?$z(J):`${Zz.MAYA}/0`,{address:U}=await z.address.mayachainGetAddress({address_n:E(q)}),$=async({assetValue:_,recipient:Z,sender:W,memo:H})=>{let B=await import("@cosmjs/amino"),L=B.makeSignDoc??B.default?.makeSignDoc,{getDenomWithChain:N}=await import("@swapkit/toolboxes/cosmos"),I=await Y.getAccount(W);if(!I)throw new qz("wallet_keepkey_account_not_found");let{accountNumber:G,sequence:O=0}=I,M=_.getBaseValue("string"),V=Z&&Z!=="",w=V?{type:"mayachain/MsgSend",value:{amount:[{amount:M,denom:_.symbol.toLowerCase()}],from_address:W,to_address:Z}}:{type:"mayachain/MsgDeposit",value:{coins:[{amount:M,asset: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}),v=atob(A.serialized);return new Uint8Array(v.length).map((C,t)=>v.charCodeAt(t))};return{...Y,address:U,deposit:async({assetValue:_,memo:Z})=>{let W=await p(u.Maya),H=await X(W),B=await $({assetValue:_,memo:Z,sender:U}),{transactionHash:L}=await H.broadcastTx(B);return L},transfer:async({assetValue:_,recipient:Z,memo:W})=>{let H=await p(u.Maya),B=await X(H),L=await $({assetValue:_,memo:W,recipient:Z,sender:U}),{transactionHash:N}=await B.broadcastTx(L);return N}}}import{Chain as S,DerivationPath as jz,derivationPathToString as Bz,getRPCUrl as h,SwapKitError as Rz,THORConfig as Wz}from"@swapkit/helpers";async function d({sdk:z,derivationPath:J}){let X=await import("@cosmjs/amino"),D=X.makeSignDoc??X.default?.makeSignDoc,{buildAminoMsg:Y,getDefaultChainFee:q,createStargateClient:U,getCosmosToolbox:$}=await import("@swapkit/toolboxes/cosmos"),j=await $(S.THORChain),R=J?Bz(J):`${jz.THOR}/0`,{address:_}=await z.address.thorchainGetAddress({address_n:E(R)}),Z=async({assetValue:B,recipient:L,sender:N,memo:I})=>{let G=await j.getAccount(N);if(!G)throw new Rz("wallet_keepkey_account_not_found");let{accountNumber:O,sequence:M=0}=G,V=L&&L!=="",w=Y({assetValue:B,memo:I,recipient:L,sender:N}),f=D([w],q(S.THORChain),Wz.chainId,I,O?.toString(),M),y=V?await z.thorchain.thorchainSignAminoTransfer({signDoc:f,signerAddress:N}):await z.thorchain.thorchainSignAminoDeposit({signDoc:f,signerAddress:N}),A=atob(y.serialized);return new Uint8Array(A.length).map((v,C)=>A.charCodeAt(C))};return{...j,address:_,deposit:async({assetValue:B,memo:L})=>{let N=await h(S.THORChain),I=await U(N),G=await Z({assetValue:B,memo:L,sender:_}),{transactionHash:O}=await I.broadcastTx(G);return O},transfer:async({assetValue:B,recipient:L,memo:N})=>{let I=await h(S.THORChain),G=await U(I),O=await Z({assetValue:B,memo:N,recipient:L,sender:_}),{transactionHash:M}=await G.broadcastTx(O);return M}}}import{Chain as x,DerivationPath as Lz,derivationPathToString as Gz,FeeOption as Uz,SwapKitError as o}from"@swapkit/helpers";async function n({sdk:z,chain:J,derivationPath:X}){let{getUtxoToolbox:D}=await import("@swapkit/toolboxes/utxo"),Y=await D(J),q=[x.Bitcoin,x.Litecoin].includes(J)?"p2wpkh":"p2pkh",U=X?Gz(X):`${Lz[J]}/0`,$={address_n:E(U),coin:k[J],script_type:q},j=(await z.address.utxoGetAddress($)).address,R=async(Z,W,H="")=>{let B=Z.txOutputs.map((I)=>{let{value:G,address:O,change:M}=I,V=J===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=(I)=>{return I.filter((G)=>G!==null&&typeof G==="object"&&Object.keys(G).length>0)};return(await z.utxo.utxoSignTransaction({coin:k[J],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 N=J===x.BitcoinCash?Y.buildTx:Y.createTransaction,{psbt:I,inputs:G}=await N({...L,feeRate:H||(await Y.getFeeRates())[W||Uz.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(I,O,B);return Y.broadcastTx(M)}}}var Mz=Hz({connect:({addChain:z,supportedChains:J,walletType:X})=>async function(Y,q){let U=Nz({chains:Y,supportedChains:J,walletType:X}),$=P.get("integrations").keepKey;if(!$)throw Error("KeepKey config not found");let j=P.get("apiKeys").keepKey||"1234";await s();let R={apiKey:j,pairingInfo:$},_=await _z.create(R);if(R.apiKey&&R.apiKey!==j)P.setApiKey("keepKey",R.apiKey);return await Promise.all(U.map(async(Z)=>{let W=await Vz({chain:Z,derivationPath:q?.[Z]||Iz[Z],sdk:_}),H=await W.getAddress()||"";z({...W,address:H,chain:Z,walletType:r.KEEPKEY})})),!0},name:"connectKeepkey",supportedChains:[Q.Arbitrum,Q.Avalanche,Q.Base,Q.BinanceSmartChain,Q.Bitcoin,Q.BitcoinCash,Q.Cosmos,Q.Dogecoin,Q.Dash,Q.Ethereum,Q.Litecoin,Q.Ripple,Q.Optimism,Q.Polygon,Q.THORChain,Q.Maya],walletType:r.KEEPKEY}),rz=Oz(Mz);async function Vz({sdk:z,chain:J,derivationPath:X}){let{getProvider:D,getEvmToolbox:Y}=await import("@swapkit/toolboxes/evm");switch(J){case Q.BinanceSmartChain:case Q.Arbitrum:case Q.Optimism:case Q.Polygon:case Q.Avalanche:case Q.Base:case Q.Ethereum:{let q=await D(J),U=new T({chain:J,derivationPath:X,provider:q,sdk:z});return await Y(J,{provider:q,signer:U})}case Q.Cosmos:return m({derivationPath:X,sdk:z});case Q.THORChain:return d({derivationPath:X,sdk:z});case Q.Maya:return c({derivationPath:X,sdk:z});case Q.Bitcoin:case Q.BitcoinCash:case Q.Dash:case Q.Dogecoin:case Q.Litecoin:return n({chain:J,derivationPath:X,sdk:z});case Q.Ripple:{let{rippleWalletMethods:q}=await import("../chunk-37bgpz1y.js");return q({derivationPath:X,sdk:z})}default:throw new Dz("wallet_keepkey_chain_not_supported",{chain:J})}}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 Fz())window.location.assign("keepkey://launch"),await new Promise((X)=>setTimeout(X,30000)),await s(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,rz as KEEPKEY_SUPPORTED_CHAINS};
1
+ import{a as k,b as E}from"../chunk-7fsaymh4.js";import{c as F,d as b}from"../chunk-zzfbcc7e.js";import{KeepKeySdk as _z}from"@keepkey/keepkey-sdk";import{Chain as J,filterSupportedChains as Nz,NetworkDerivationPath as Iz,SKConfig as P,SwapKitError as Dz,WalletOption as n}from"@swapkit/helpers";import{createWallet as Hz,getWalletSupportedChains as Oz}from"@swapkit/wallet-core";import{Chain as g,DerivationPath as a,derivationPathToString as i,GAIAConfig as l,getRPCUrl as e}from"@swapkit/helpers";async function m({sdk:z,derivationPath:Q}){let{DEFAULT_COSMOS_FEE_MAINNET:X,getCosmosToolbox:D,getFeeRateFromSwapKit:Y,createStargateClient:q}=await import("@swapkit/toolboxes/cosmos"),U=Q?i(Q):`${a.GAIA}/0`,{address:$}=await z.address.cosmosGetAddress({address_n:E(U)}),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:_,recipient:Z,memo:W})=>{let H=_.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:$}),N=atob(L.serialized),I=new Uint8Array(N.length).map((V,w)=>N.charCodeAt(w)),G=await e(g.Cosmos);return(await(await q(G)).broadcastTx(I)).transactionHash}}}import{ChainToChainId as zz,derivationPathToString as Jz,NetworkDerivationPath as Qz,SwapKitError as K}from"@swapkit/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 K("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:E(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:U,gasPrice:$})=>{if(!z)throw new K("wallet_keepkey_invalid_params",{reason:"Missing to address"});if(!X)throw new K("wallet_keepkey_invalid_params",{reason:"Missing gasLimit"});if(!Y)throw new K("wallet_keepkey_invalid_params",{reason:"Missing data"});let j=!!((q||U)&&!$);if(j&&!q)throw new K("wallet_keepkey_invalid_params",{reason:"Missing maxFeePerGas"});if(j&&!U)throw new K("wallet_keepkey_invalid_params",{reason:"Missing maxPriorityFeePerGas"});if(!(j||$))throw new K("wallet_keepkey_invalid_params",{reason:"Missing gasPrice"});let{toHexString:R}=await import("@swapkit/toolboxes/evm"),_=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(_),to:z.toString(),value:R(BigInt(Q||0)),...j&&{maxFeePerGas:R(BigInt(q?.toString()||"0")),maxPriorityFeePerGas:R(BigInt(U?.toString()||"0"))},...!j&&{gasPrice:R(BigInt($?.toString()||"0"))}};return(await this.sdk.eth.ethSignTransaction(Z)).serialized};sendTransaction=async(z)=>{if(!this.provider)throw new K("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 u,DerivationPath as Zz,derivationPathToString as $z,getRPCUrl as p,MAYAConfig as Yz,SwapKitError as qz}from"@swapkit/helpers";async function c({sdk:z,derivationPath:Q}){let{createStargateClient:X,getCosmosToolbox:D}=await import("@swapkit/toolboxes/cosmos"),Y=await D(u.Maya),q=Q?$z(Q):`${Zz.MAYA}/0`,{address:U}=await z.address.mayachainGetAddress({address_n:E(q)}),$=async({assetValue:_,recipient:Z,sender:W,memo:H})=>{let B=await import("@cosmjs/amino"),L=B.makeSignDoc??B.default?.makeSignDoc,{getDenomWithChain:N}=await import("@swapkit/toolboxes/cosmos"),I=await Y.getAccount(W);if(!I)throw new qz("wallet_keepkey_account_not_found");let{accountNumber:G,sequence:O=0}=I,M=_.getBaseValue("string"),V=Z&&Z!=="",w=V?{type:"mayachain/MsgSend",value:{amount:[{amount:M,denom:_.symbol.toLowerCase()}],from_address:W,to_address:Z}}:{type:"mayachain/MsgDeposit",value:{coins:[{amount:M,asset: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}),v=atob(A.serialized);return new Uint8Array(v.length).map((C,t)=>v.charCodeAt(t))};return{...Y,address:U,deposit:async({assetValue:_,memo:Z})=>{let W=await p(u.Maya),H=await X(W),B=await $({assetValue:_,memo:Z,sender:U}),{transactionHash:L}=await H.broadcastTx(B);return L},transfer:async({assetValue:_,recipient:Z,memo:W})=>{let H=await p(u.Maya),B=await X(H),L=await $({assetValue:_,memo:W,recipient:Z,sender:U}),{transactionHash:N}=await B.broadcastTx(L);return N}}}import{Chain as S,DerivationPath as jz,derivationPathToString as Bz,getRPCUrl as h,SwapKitError as Rz,THORConfig as Wz}from"@swapkit/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:U,getCosmosToolbox:$}=await import("@swapkit/toolboxes/cosmos"),j=await $(S.THORChain),R=Q?Bz(Q):`${jz.THOR}/0`,{address:_}=await z.address.thorchainGetAddress({address_n:E(R)}),Z=async({assetValue:B,recipient:L,sender:N,memo:I})=>{let G=await j.getAccount(N);if(!G)throw new Rz("wallet_keepkey_account_not_found");let{accountNumber:O,sequence:M=0}=G,V=L&&L!=="",w=Y({assetValue:B,memo:I,recipient:L,sender:N}),f=D([w],q(S.THORChain),Wz.chainId,I,O?.toString(),M),y=V?await z.thorchain.thorchainSignAminoTransfer({signDoc:f,signerAddress:N}):await z.thorchain.thorchainSignAminoDeposit({signDoc:f,signerAddress:N}),A=atob(y.serialized);return new Uint8Array(A.length).map((v,C)=>A.charCodeAt(C))};return{...j,address:_,deposit:async({assetValue:B,memo:L})=>{let N=await h(S.THORChain),I=await U(N),G=await Z({assetValue:B,memo:L,sender:_}),{transactionHash:O}=await I.broadcastTx(G);return O},transfer:async({assetValue:B,recipient:L,memo:N})=>{let I=await h(S.THORChain),G=await U(I),O=await Z({assetValue:B,memo:N,recipient:L,sender:_}),{transactionHash:M}=await G.broadcastTx(O);return M}}}import{Chain as x,DerivationPath as Lz,derivationPathToString as Gz,FeeOption as Uz,SwapKitError as o}from"@swapkit/helpers";async function r({sdk:z,chain:Q,derivationPath:X}){let{getUtxoToolbox:D}=await import("@swapkit/toolboxes/utxo"),Y=await D(Q),q=[x.Bitcoin,x.Litecoin].includes(Q)?"p2wpkh":"p2pkh",U=X?Gz(X):`${Lz[Q]}/0`,$={address_n:E(U),coin:k[Q],script_type:q},j=(await z.address.utxoGetAddress($)).address,R=async(Z,W,H="")=>{let B=Z.txOutputs.map((I)=>{let{value:G,address:O,change:M}=I,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=(I)=>{return I.filter((G)=>G!==null&&typeof G==="object"&&Object.keys(G).length>0)};return(await z.utxo.utxoSignTransaction({coin:k[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 N=Q===x.BitcoinCash?Y.buildTx:Y.createTransaction,{psbt:I,inputs:G}=await N({...L,feeRate:H||(await Y.getFeeRates())[W||Uz.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(I,O,B);return Y.broadcastTx(M)}}}var Mz=Hz({connect:({addChain:z,supportedChains:Q,walletType:X})=>async function(Y,q){let U=Nz({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 s();let R={apiKey:j,pairingInfo:$},_=await _z.create(R);if(R.apiKey&&R.apiKey!==j)P.setApiKey("keepKey",R.apiKey);return await Promise.all(U.map(async(Z)=>{let W=await Vz({chain:Z,derivationPath:q?.[Z]||Iz[Z],sdk:_}),H=await W.getAddress()||"";z({...W,address:H,chain:Z,walletType:n.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.Ripple,J.Optimism,J.Polygon,J.THORChain,J.Maya,J.XLayer],walletType:n.KEEPKEY}),nz=Oz(Mz);async function Vz({sdk:z,chain:Q,derivationPath:X}){let{getProvider:D,getEvmToolbox:Y}=await import("@swapkit/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.XLayer:{let q=await D(Q),U=new T({chain:Q,derivationPath:X,provider:q,sdk:z});return await Y(Q,{provider:q,signer:U})}case J.Cosmos:return m({derivationPath:X,sdk:z});case J.THORChain:return d({derivationPath:X,sdk:z});case J.Maya:return c({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-37bgpz1y.js");return q({derivationPath:X,sdk:z})}default:throw new Dz("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 Fz())window.location.assign("keepkey://launch"),await new Promise((X)=>setTimeout(X,30000)),await s(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,nz as KEEPKEY_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=EB1082FDCD11093A64756E2164756E21
3
+ //# debugId=17F309D90CB0767B64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -2,14 +2,14 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/keepkey/index.ts", "../src/keepkey/chains/cosmos.ts", "../src/keepkey/chains/evm.ts", "../src/keepkey/chains/mayachain.ts", "../src/keepkey/chains/thorchain.ts", "../src/keepkey/chains/utxo.ts"],
4
4
  "sourcesContent": [
5
- "import { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n Chain,\n type DerivationPathArray,\n filterSupportedChains,\n NetworkDerivationPath,\n SKConfig,\n SwapKitError,\n WalletOption,\n} from \"@swapkit/helpers\";\n\nexport type { PairingInfo } from \"@keepkey/keepkey-sdk\";\n\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { cosmosWalletMethods } from \"./chains/cosmos\";\nimport { KeepKeySigner } from \"./chains/evm\";\nimport { mayachainWalletMethods } from \"./chains/mayachain\";\nimport { thorchainWalletMethods } from \"./chains/thorchain\";\nimport { utxoWalletMethods } from \"./chains/utxo\";\n\nexport const keepkeyWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectKeepkey(chains: Chain[], derivationPathMap?: Record<Chain, DerivationPathArray>) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const pairingInfo = SKConfig.get(\"integrations\").keepKey;\n if (!pairingInfo) throw new Error(\"KeepKey config not found\");\n\n const initialApiKey = SKConfig.get(\"apiKeys\").keepKey || \"1234\";\n\n await checkAndLaunch();\n\n // Conform to the expected { apiKey, pairingInfo } structure\n const keepkeyConfig = { apiKey: initialApiKey, pairingInfo };\n const keepKeySdk = await KeepKeySdk.create(keepkeyConfig);\n\n // Persist the new API key via SKConfig after pairing\n if (keepkeyConfig.apiKey && keepkeyConfig.apiKey !== initialApiKey) {\n SKConfig.setApiKey(\"keepKey\", keepkeyConfig.apiKey);\n }\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods({\n chain,\n derivationPath: derivationPathMap?.[chain] || NetworkDerivationPath[chain],\n sdk: keepKeySdk,\n });\n const address = (await walletMethods.getAddress()) || \"\";\n\n addChain({ ...walletMethods, address, chain, walletType: WalletOption.KEEPKEY });\n }),\n );\n return true;\n },\n name: \"connectKeepkey\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Cosmos,\n Chain.Dogecoin,\n Chain.Dash,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Ripple,\n Chain.Optimism,\n Chain.Polygon,\n Chain.THORChain,\n Chain.Maya,\n ],\n walletType: WalletOption.KEEPKEY,\n});\n\nexport const KEEPKEY_SUPPORTED_CHAINS = getWalletSupportedChains(keepkeyWallet);\n\nasync function getWalletMethods({\n sdk,\n chain,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n chain: Chain;\n derivationPath?: DerivationPathArray;\n}) {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.Ethereum: {\n const provider = await getProvider(chain);\n const signer = new KeepKeySigner({ chain, derivationPath, provider, sdk });\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return toolbox;\n }\n case Chain.Cosmos: {\n return cosmosWalletMethods({ derivationPath, sdk });\n }\n case Chain.THORChain: {\n return thorchainWalletMethods({ derivationPath, sdk });\n }\n case Chain.Maya: {\n return mayachainWalletMethods({ derivationPath, sdk });\n }\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n return utxoWalletMethods({ chain, derivationPath, sdk });\n }\n case Chain.Ripple: {\n const { rippleWalletMethods } = await import(\"./chains/ripple\");\n return rippleWalletMethods({ derivationPath, sdk });\n }\n default:\n throw new SwapKitError(\"wallet_keepkey_chain_not_supported\", { chain });\n }\n}\n\n// kk-sdk docs: https://keepkey.com/blog/building_on_the_keepkey_sdk\n// test spec: if offline, launch keepkey-bridge\nasync function checkAndLaunch(attempts = 0) {\n if (attempts >= 3) {\n alert(\"KeepKey desktop is required for keepkey-sdk, please go to https://keepkey.com/get-started\");\n }\n const isAvailable = await checkKeepkeyAvailability();\n\n if (!isAvailable) {\n window.location.assign(\"keepkey://launch\");\n await new Promise((resolve) => setTimeout(resolve, 30000));\n await checkAndLaunch(attempts + 1);\n }\n}\n\nasync function checkKeepkeyAvailability(spec = \"http://localhost:1646/spec/swagger.json\") {\n try {\n const response = await fetch(spec);\n return response.status === 200;\n } catch {\n return false;\n }\n}\n",
5
+ "import { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n Chain,\n type DerivationPathArray,\n filterSupportedChains,\n NetworkDerivationPath,\n SKConfig,\n SwapKitError,\n WalletOption,\n} from \"@swapkit/helpers\";\n\nexport type { PairingInfo } from \"@keepkey/keepkey-sdk\";\n\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { cosmosWalletMethods } from \"./chains/cosmos\";\nimport { KeepKeySigner } from \"./chains/evm\";\nimport { mayachainWalletMethods } from \"./chains/mayachain\";\nimport { thorchainWalletMethods } from \"./chains/thorchain\";\nimport { utxoWalletMethods } from \"./chains/utxo\";\n\nexport const keepkeyWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectKeepkey(chains: Chain[], derivationPathMap?: Record<Chain, DerivationPathArray>) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const pairingInfo = SKConfig.get(\"integrations\").keepKey;\n if (!pairingInfo) throw new Error(\"KeepKey config not found\");\n\n const initialApiKey = SKConfig.get(\"apiKeys\").keepKey || \"1234\";\n\n await checkAndLaunch();\n\n // Conform to the expected { apiKey, pairingInfo } structure\n const keepkeyConfig = { apiKey: initialApiKey, pairingInfo };\n const keepKeySdk = await KeepKeySdk.create(keepkeyConfig);\n\n // Persist the new API key via SKConfig after pairing\n if (keepkeyConfig.apiKey && keepkeyConfig.apiKey !== initialApiKey) {\n SKConfig.setApiKey(\"keepKey\", keepkeyConfig.apiKey);\n }\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods({\n chain,\n derivationPath: derivationPathMap?.[chain] || NetworkDerivationPath[chain],\n sdk: keepKeySdk,\n });\n const address = (await walletMethods.getAddress()) || \"\";\n\n addChain({ ...walletMethods, address, chain, walletType: WalletOption.KEEPKEY });\n }),\n );\n return true;\n },\n name: \"connectKeepkey\",\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Cosmos,\n Chain.Dogecoin,\n Chain.Dash,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Ripple,\n Chain.Optimism,\n Chain.Polygon,\n Chain.THORChain,\n Chain.Maya,\n Chain.XLayer,\n ],\n walletType: WalletOption.KEEPKEY,\n});\n\nexport const KEEPKEY_SUPPORTED_CHAINS = getWalletSupportedChains(keepkeyWallet);\n\nasync function getWalletMethods({\n sdk,\n chain,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n chain: Chain;\n derivationPath?: DerivationPathArray;\n}) {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.Ethereum:\n case Chain.XLayer: {\n const provider = await getProvider(chain);\n const signer = new KeepKeySigner({ chain, derivationPath, provider, sdk });\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return toolbox;\n }\n case Chain.Cosmos: {\n return cosmosWalletMethods({ derivationPath, sdk });\n }\n case Chain.THORChain: {\n return thorchainWalletMethods({ derivationPath, sdk });\n }\n case Chain.Maya: {\n return mayachainWalletMethods({ derivationPath, sdk });\n }\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n return utxoWalletMethods({ chain, derivationPath, sdk });\n }\n case Chain.Ripple: {\n const { rippleWalletMethods } = await import(\"./chains/ripple\");\n return rippleWalletMethods({ derivationPath, sdk });\n }\n default:\n throw new SwapKitError(\"wallet_keepkey_chain_not_supported\", { chain });\n }\n}\n\n// kk-sdk docs: https://keepkey.com/blog/building_on_the_keepkey_sdk\n// test spec: if offline, launch keepkey-bridge\nasync function checkAndLaunch(attempts = 0) {\n if (attempts >= 3) {\n alert(\"KeepKey desktop is required for keepkey-sdk, please go to https://keepkey.com/get-started\");\n }\n const isAvailable = await checkKeepkeyAvailability();\n\n if (!isAvailable) {\n window.location.assign(\"keepkey://launch\");\n await new Promise((resolve) => setTimeout(resolve, 30000));\n await checkAndLaunch(attempts + 1);\n }\n}\n\nasync function checkKeepkeyAvailability(spec = \"http://localhost:1646/spec/swagger.json\") {\n try {\n const response = await fetch(spec);\n return response.status === 200;\n } catch {\n return false;\n }\n}\n",
6
6
  "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport type { GenericTransferParams } from \"@swapkit/helpers\";\nimport {\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n GAIAConfig,\n getRPCUrl,\n} from \"@swapkit/helpers\";\n\nimport { bip32ToAddressNList } from \"../coins\";\n\nexport async function cosmosWalletMethods({\n sdk,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n derivationPath?: DerivationPathArray;\n}): Promise<any> {\n const { DEFAULT_COSMOS_FEE_MAINNET, getCosmosToolbox, getFeeRateFromSwapKit, createStargateClient } = await import(\n \"@swapkit/toolboxes/cosmos\"\n );\n const derivationPathString = derivationPath ? derivationPathToString(derivationPath) : `${DerivationPath.GAIA}/0`;\n\n const { address: fromAddress } = (await sdk.address.cosmosGetAddress({\n address_n: bip32ToAddressNList(derivationPathString),\n })) as { address: string };\n\n const toolbox = await getCosmosToolbox(Chain.Cosmos);\n\n if (DEFAULT_COSMOS_FEE_MAINNET.amount[0]) {\n DEFAULT_COSMOS_FEE_MAINNET.amount[0].amount = String(await getFeeRateFromSwapKit(GAIAConfig.chainId, 500));\n }\n\n // TODO support other cosmos assets\n const transfer = async ({ assetValue, recipient, memo }: GenericTransferParams) => {\n const amount = assetValue.getBaseValue(\"string\");\n const accountInfo = await toolbox.getAccount(fromAddress);\n\n const keepKeySignedTx = await sdk.cosmos.cosmosSignAmino({\n signDoc: {\n account_number: accountInfo?.accountNumber.toString() ?? \"\",\n chain_id: GAIAConfig.chainId,\n fee: DEFAULT_COSMOS_FEE_MAINNET,\n memo: memo || \"\",\n msgs: [\n {\n type: \"cosmos-sdk/MsgSend\",\n value: { amount: [{ amount, denom: \"uatom\" }], from_address: fromAddress, to_address: recipient },\n },\n ],\n sequence: accountInfo?.sequence.toString() ?? \"\",\n },\n signerAddress: fromAddress,\n });\n\n const decodedBytes = atob(keepKeySignedTx.serialized);\n const uint8Array = new Uint8Array(decodedBytes.length).map((_, i) => decodedBytes.charCodeAt(i));\n\n const rpcUrl = await getRPCUrl(Chain.Cosmos);\n const client = await createStargateClient(rpcUrl);\n const response = await client.broadcastTx(uint8Array);\n\n return response.transactionHash;\n };\n\n return { ...toolbox, address: fromAddress, transfer };\n}\n",
7
7
  "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n type Chain,\n ChainToChainId,\n type DerivationPathArray,\n derivationPathToString,\n NetworkDerivationPath,\n SwapKitError,\n} from \"@swapkit/helpers\";\nimport type { JsonRpcProvider, Provider, TransactionRequest } from \"ethers\";\nimport { AbstractSigner } from \"ethers\";\n\nimport { bip32ToAddressNList } from \"../coins\";\n\ninterface KeepKeyEVMSignerParams {\n sdk: KeepKeySdk;\n chain: Chain;\n derivationPath?: DerivationPathArray;\n provider: Provider | JsonRpcProvider;\n}\n\nexport class KeepKeySigner extends AbstractSigner {\n private sdk: KeepKeySdk;\n private chain: Chain;\n private derivationPath: DerivationPathArray;\n private address: string;\n readonly provider: Provider | JsonRpcProvider;\n\n constructor({ sdk, chain, derivationPath, provider }: KeepKeyEVMSignerParams) {\n super();\n this.sdk = sdk;\n this.chain = chain;\n this.derivationPath = derivationPath || NetworkDerivationPath.ETH;\n this.address = \"\";\n this.provider = provider;\n }\n\n signTypedData(): Promise<string> {\n throw new SwapKitError(\"wallet_keepkey_method_not_supported\", { method: \"signTypedData\" });\n }\n\n getAddress = async () => {\n if (this.address) return this.address;\n const { address } = await this.sdk.address.ethereumGetAddress({\n address_n: bip32ToAddressNList(derivationPathToString(this.derivationPath)),\n });\n\n this.address = address;\n return address;\n };\n\n signMessage = (message: string) => this.sdk.eth.ethSign({ address: this.address, message }) as Promise<string>;\n\n signTransaction = async ({\n to,\n value,\n gasLimit,\n nonce,\n data,\n maxFeePerGas,\n maxPriorityFeePerGas,\n gasPrice,\n }: TransactionRequest) => {\n if (!to) throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing to address\" });\n if (!gasLimit) throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing gasLimit\" });\n if (!data) throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing data\" });\n\n const isEIP1559 = !!((maxFeePerGas || maxPriorityFeePerGas) && !gasPrice);\n if (isEIP1559 && !maxFeePerGas)\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing maxFeePerGas\" });\n if (isEIP1559 && !maxPriorityFeePerGas)\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing maxPriorityFeePerGas\" });\n if (!(isEIP1559 || gasPrice))\n throw new SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"Missing gasPrice\" });\n\n const { toHexString } = await import(\"@swapkit/toolboxes/evm\");\n\n const nonceValue = nonce\n ? BigInt(nonce)\n : BigInt(await this.provider.getTransactionCount(await this.getAddress(), \"pending\"));\n\n const input = {\n addressNList: [2147483692, 2147483708, 2147483648, 0, 0],\n chainId: toHexString(BigInt(ChainToChainId[this.chain])),\n data,\n from: this.address,\n gas: toHexString(BigInt(gasLimit)),\n nonce: toHexString(nonceValue),\n to: to.toString(),\n value: toHexString(BigInt(value || 0)),\n ...(isEIP1559 && {\n maxFeePerGas: toHexString(BigInt(maxFeePerGas?.toString() || \"0\")),\n maxPriorityFeePerGas: toHexString(BigInt(maxPriorityFeePerGas?.toString() || \"0\")),\n }),\n ...(!isEIP1559 && {\n // Fixed syntax error and structure here\n gasPrice: toHexString(BigInt(gasPrice?.toString() || \"0\")),\n }),\n };\n const responseSign = await this.sdk.eth.ethSignTransaction(input);\n return responseSign.serialized;\n };\n\n sendTransaction = async (tx: TransactionRequest): Promise<any> => {\n if (!this.provider) throw new SwapKitError(\"wallet_keepkey_no_provider\");\n\n const signedTxHex = await this.signTransaction(tx);\n\n return await this.provider.broadcastTransaction(signedTxHex);\n };\n\n connect = (provider: Provider) =>\n new KeepKeySigner({ chain: this.chain, derivationPath: this.derivationPath, provider, sdk: this.sdk });\n}\n",
8
8
  "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n type AssetValue,\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n type GenericTransferParams,\n getRPCUrl,\n MAYAConfig,\n SwapKitError,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams } from \"@swapkit/toolboxes/cosmos\";\n\nimport { bip32ToAddressNList } from \"../coins\";\n\ntype SignTransactionParams = { assetValue: AssetValue; recipient?: string; sender: string; memo: string | undefined };\n\nexport async function mayachainWalletMethods({\n sdk,\n derivationPath,\n}: {\n sdk: KeepKeySdk;\n derivationPath?: DerivationPathArray;\n}): Promise<any> {\n const { createStargateClient, getCosmosToolbox } = await import(\"@swapkit/toolboxes/cosmos\");\n\n const toolbox = await getCosmosToolbox(Chain.Maya);\n const derivationPathString = derivationPath ? derivationPathToString(derivationPath) : `${DerivationPath.MAYA}/0`;\n\n const { address: fromAddress } = (await sdk.address.mayachainGetAddress({\n address_n: bip32ToAddressNList(derivationPathString),\n })) as { address: string };\n\n const signTransaction = async ({ assetValue, recipient, sender, memo }: SignTransactionParams) => {\n const importedAmino = await import(\"@cosmjs/amino\");\n const makeSignDoc = importedAmino.makeSignDoc ?? importedAmino.default?.makeSignDoc;\n const { getDenomWithChain } = await import(\"@swapkit/toolboxes/cosmos\");\n\n const account = await toolbox.getAccount(sender);\n if (!account) throw new SwapKitError(\"wallet_keepkey_account_not_found\");\n const { accountNumber, sequence = 0 } = account;\n const amount = assetValue.getBaseValue(\"string\");\n\n const isTransfer = recipient && recipient !== \"\";\n\n // TODO check if we can move to toolbox created msg\n const msg = isTransfer\n ? {\n type: \"mayachain/MsgSend\",\n value: {\n amount: [{ amount, denom: assetValue.symbol.toLowerCase() }],\n from_address: sender,\n to_address: recipient,\n },\n }\n : {\n type: \"mayachain/MsgDeposit\",\n value: { coins: [{ amount, asset: getDenomWithChain(assetValue) }], memo, signer: sender },\n };\n\n const signDoc = makeSignDoc(\n [msg],\n { amount: [], gas: \"500000000\" },\n MAYAConfig.chainId,\n memo,\n accountNumber?.toString(),\n sequence,\n );\n\n const sdkMethod = isTransfer ? sdk.mayachain.mayachainSignAminoTransfer : sdk.mayachain.mayachainSignAminoDeposit;\n\n // @ts-expect-error TC\n const signedTx = await sdkMethod({ signDoc, signerAddress: sender });\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.Maya);\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.Maya);\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 return { ...toolbox, address: fromAddress, deposit, transfer };\n}\n",
9
9
  "import 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 SwapKitError,\n THORConfig,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams } from \"@swapkit/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 \"@swapkit/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 SwapKitError(\"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
  "import type { KeepKeySdk } from \"@keepkey/keepkey-sdk\";\nimport {\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n FeeOption,\n type GenericTransferParams,\n SwapKitError,\n type UTXOChain,\n} from \"@swapkit/helpers\";\nimport type { UTXOToolboxes } from \"@swapkit/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(\"@swapkit/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 SwapKitError(\"wallet_keepkey_invalid_params\", { reason: \"From address must be provided\" });\n if (!recipient)\n throw new SwapKitError(\"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": "EB1082FDCD11093A64756E2164756E21",
12
+ "mappings": "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",
13
+ "debugId": "17F309D90CB0767B64756E2164756E21",
14
14
  "names": []
15
15
  }
@@ -1,5 +1,5 @@
1
- var f0={};C0(f0,{ledgerWallet:()=>VL,LEDGER_SUPPORTED_CHAINS:()=>X0});module.exports=N0(f0);var w=require("@swapkit/helpers"),x=require("@swapkit/wallet-core");var X=require("@swapkit/helpers"),P=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: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 _=y;await _.connect();let T=await _.getAddress();return L===X.Chain.BitcoinCash?T.replace("bitcoincash:",""):T}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.SwapKitError("wallet_chain_not_supported",{chain:L,wallet:X.WalletOption.LEDGER})}};var C=require("@swapkit/helpers");var c=require("@swapkit/helpers");var M=require("@swapkit/helpers");var yL=require("@swapkit/helpers");var S=85,e=250;var z={GET_ADDR_SECP256K1:4,GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2},d={ADD:1,INIT:0,LAST:2},r={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},o={JSON:0},Y={NoError:36864},NL={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 t(L){if(L in NL)return NL[L];return`Unknown Status Code: ${L}`}function T0(L){return typeof L==="object"&&L!==null&&!Array.isArray(L)&&!(L instanceof Date)}function Z(L){if(L){if(T0(L)){if(Object.hasOwn(L,"statusCode"))return{error_message:t(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,z.GET_VERSION,0,0).then((y)=>{let _=y.slice(-2),T=_[0]*256+_[1],m=0;if(y.length>=9)m=(y[5]<<24)+(y[6]<<16)+(y[7]<<8)+(y[8]<<0);return{device_locked:y[4]===1,error_message:t(T),major:y[1],minor:y[2],patch:y[3],return_code:T,target_id:m.toString(16),test_mode:y[0]!==0}},Z)}var V=require("@swapkit/helpers");function CL(L){if(L==null||L.length<3)throw new V.SwapKitError("wallet_ledger_invalid_params",{reason:"Path too short"});if(L.length>10)throw new V.SwapKitError("wallet_ledger_invalid_params",{reason:"Path too long"});let y=Buffer.alloc(1+4*L.length);y.writeUInt8(L.length,0);for(let _=0;_<L.length;_+=1){let T=L[_]||0;if(_<3)T|=2147483648;y.writeInt32LE(T,1+_*4)}return y}function LL(L,y,_,T,m=o.JSON){return L.transport.send(S,z.SIGN_SECP256K1,y,m,T,[Y.NoError,27012,27264]).then((l)=>{let O=l.slice(-2),g=O[0]*256+O[1],R=t(g);if(g===27264||g===27012)R=`${R} : ${l.slice(0,l.length-2).toString("ascii")}`;let G=null;if(l.length>2)G=l.slice(0,l.length-2);return{error_message:R,return_code:g,signature:G}},Z)}function w0(L){if(L.length!==65)throw new V.SwapKitError("wallet_ledger_invalid_params",{reason:"decompressed public key length should be 65 bytes"});let y=L.slice(33,65),_=Buffer.from([2+(y[y.length-1]&1)]);return Buffer.concat([_,L.slice(1,33)])}function XL(L,y){return L.transport.send(S,z.INS_PUBLIC_KEY_SECP256K1,0,0,y,[Y.NoError]).then((_)=>{let T=_.slice(-2),m=T[0]*256+T[1],l=Buffer.from(_.slice(0,65));return{compressed_pk:w0(l),error_message:t(m),pk:l,return_code:m}},Z)}function FL(L){if(!L||L.length!==5)throw new V.SwapKitError("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 jL(L,y,_,T,m=o.JSON){let l=d.ADD;if(y===1)l=d.INIT;if(y===_)l=d.LAST;return LL(L,l,0,T,m)}function iL(L,y){return L.transport.send(S,z.GET_ADDR_SECP256K1,0,0,y,[Y.NoError]).then((_)=>{let T=_.slice(-2),m=T[0]*256+T[1];return{compressed_pk:Buffer.from(_.slice(0,33)),error_message:t(m),pk:"OBSOLETE PROPERTY",return_code:m}},Z)}class I{transport;versionResponse;constructor(L){if(!L)throw new yL.SwapKitError("wallet_ledger_transport_not_defined");this.transport=L}static serializeHRP(L){if(L==null||L.length<3||L.length>83)throw new yL.SwapKitError("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!==Y.NoError)throw this.versionResponse;switch(this.versionResponse.major){case 1:return CL(L);case 2:return FL(L);default:return Buffer.alloc(0)}}async signGetChunks(L,y){let _=await this.serializePath(L),T=[];T.push(_);for(let m=0;m<y.length;m+=e){let l=m+e;if(m>y.length)l=y.length;T.push(y.slice(m,l))}return T}async getVersion(){try{return this.versionResponse=await s(this.transport),this.versionResponse}catch(L){return Z(L)}}appInfo(){return this.transport.send(176,1,0,0).then((L)=>{let y=L.slice(-2),_=y[0]*256+y[1],T="",m="",l=0,O=0;if(L[0]!==1)return{error_message:"response format ID not recognized",return_code:36865};let g=L[1];T=L.slice(2,2+g).toString("ascii");let R=2+g,G=L[R];R+=1,m=L.slice(R,R+G).toString("ascii"),R+=G;let B=L[R];return R+=1,l=B,O=L[R],{appName:T,appVersion:m,error_message:t(_),flag_onboarded:(O&4)!==0,flag_pin_validated:(O&128)!==0,flag_recovery:(O&1)!==0,flag_signed_mcu_code:(O&2)!==0,flagLen:l,flagsValue:O,return_code:_}},Z)}deviceInfo(){return this.transport.send(224,1,0,0,Buffer.from([]),[Y.NoError,28160]).then((L)=>{let y=L.slice(-2),_=y[0]*256+y[1];if(_===28160)return{error_message:"This command is only available in the Dashboard",return_code:_};let T=L.slice(0,4).toString("hex"),m=4,l=L[m];m+=1;let O=L.slice(m,m+l).toString();m+=l;let g=L[m];m+=1;let R=L.slice(m,m+g).toString("hex");m+=g;let G=L[m];m+=1;let B=L.slice(m,m+G);if(B[G-1]===0)B=L.slice(m,m+G-1);let j=B.toString();return{error_message:t(_),flag:R,mcuVersion:j,return_code:_,seVersion:O,targetId:T}},Z)}async publicKey(L){try{let y=await this.serializePath(L);switch(this.versionResponse.major){case 1:return XL(this,y);case 2:{let _=Buffer.concat([I.serializeHRP("thor"),y]);return iL(this,_)}default:return{error_message:"App Version is not supported",return_code:25600}}}catch(y){return Z(y)}}getAddressAndPubKey(L,y,_=!1){return this.serializePath(L).then((T)=>{let m=Buffer.concat([I.serializeHRP(y),T]);return this.transport.send(S,z.GET_ADDR_SECP256K1,_?r.SHOW_ADDRESS_IN_DEVICE:r.ONLY_RETRIEVE,0,m,[Y.NoError]).then((l)=>{let O=l.slice(-2),g=O[0]*256+O[1],R=Buffer.from(l.slice(0,33));return{bech32_address:Buffer.from(l.slice(33,-2)).toString(),compressed_pk:R,error_message:t(g),return_code:g}},Z)}).catch((T)=>Z(T))}showAddressAndPubKey(L,y){return this.getAddressAndPubKey(L,y,!0)}signSendChunk(L,y,_,T=o.JSON){switch(this.versionResponse.major){case 1:return LL(this,L,y,_,T);case 2:return jL(this,L,y,_,T);default:return{error_message:"App Version is not supported",return_code:25600}}}async sign(L,y,_=o.JSON){let T=Buffer.from(y),m=[],l;try{m=await this.signGetChunks(L,T),l=await this.signSendChunk(1,m.length,m[0],_)}catch(g){Z(g)}let O={error_message:l.error_message,return_code:l.return_code,signature:null};for(let g=1;g<m.length;g+=1)if(O=await this.signSendChunk(1+g,m.length,m[g],_),O.return_code!==Y.NoError)break;return{error_message:O.error_message,return_code:O.return_code,signature:O.signature}}}var K=require("@swapkit/helpers"),_L=()=>navigator?.usb,l0=async()=>{let L=_L();if(typeof L?.getDevices!=="function")return[];let{ledgerUSBVendorId:y}=await import("@ledgerhq/devices"),T=(await L?.getDevices()).filter((m)=>m.vendorId===y);if(T.length>0)return T[0];return L?.requestDevice({filters:[{vendorId:y}]})},i=async()=>{let L=await l0();if(!L)throw new K.SwapKitError("wallet_ledger_device_not_found");if(L.opened||await L.open(),L.configuration===null)await L.selectConfiguration(1);try{await L.reset()}catch{}let _=(L.configuration??L.configurations?.[0]).interfaces.find(({alternates:G})=>G.some(({interfaceClass:B})=>B===3||B===255));if(!_)throw await L.close(),new K.SwapKitError("wallet_ledger_connection_error");if(_.alternates?.find(({interfaceClass:G})=>G===3||G===255)?.interfaceClass===3){let G=(await import("@ledgerhq/hw-transport-webhid")).default;if(!await G.isSupported())throw await L.close(),new K.SwapKitError("wallet_ledger_webhid_not_supported");return await G.create()}try{await L.claimInterface(_.interfaceNumber)}catch(G){throw await L.close(),new K.SwapKitError("wallet_ledger_connection_claimed",G)}let m=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await m.isSupported())throw new K.SwapKitError("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:O}=await import("@ledgerhq/errors"),g=new m(L,_.interfaceNumber),R=(G)=>{if(L===G.device)_L()?.removeEventListener("disconnect",R),g._emitDisconnect(new O)};return _L()?.addEventListener("disconnect",R),g};class b{ledgerTimeout=50000;derivationPath=M.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 i():this.transport,this.chain){case"thor":{this.ledgerApp=L||!this.ledgerApp?new I(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 M.SwapKitError("wallet_ledger_connection_error",y)}};validateResponse=(L,y)=>{switch(L){case M.LedgerErrorCode.NoError:return;case M.LedgerErrorCode.LockedDevice:throw new M.SwapKitError("wallet_ledger_device_locked",{message:`Ledger is locked: ${y}`});case M.LedgerErrorCode.TC_NotFound:throw new M.SwapKitError("wallet_ledger_device_not_found");default:break}}}class mL extends b{pubKey=null;derivationPath;constructor(L=c.NetworkDerivationPath.GAIA){super();this.chain="cosmos",this.derivationPath=c.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:_,error_message:T,signature:m}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new c.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(_,T),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:y,signature:m}]};signAmino=async(L,y)=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.getAccounts();if(_.findIndex((f)=>f.address===L)===-1)throw new c.SwapKitError("wallet_ledger_address_not_found",{address:L});let m=await import("@cosmjs/amino"),l=m.encodeSecp256k1Signature??m.default?.encodeSecp256k1Signature,O=m.serializeSignDoc??m.default?.serializeSignDoc,g=await import("@cosmjs/crypto"),R=g.Secp256k1Signature??g.default?.Secp256k1Signature,G=O(y),B=await this.ledgerApp.sign(this.derivationPath,G);this.validateResponse(B.return_code,B.error_message);let j=R.fromDer(B.signature).toFixedLength();return{signature:l(_[0].pubkey,j),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 F=require("@swapkit/helpers"),fL=require("ethers");class $ extends fL.AbstractSigner{chainId=F.ChainId.Ethereum;derivationPath="";ledgerApp=null;ledgerTimeout=50000;constructor({provider:L,derivationPath:y=F.NetworkDerivationPath.OP,chainId:_=F.ChainId.Optimism}){super(L);this.chainId=_||F.ChainId.Ethereum,this.derivationPath=typeof y==="string"?y:F.derivationPathToString(y),Object.defineProperty(this,"provider",{enumerable:!0,value:L||null,writable:!1})}connect=(L)=>new $({chainId:this.chainId,derivationPath:this.derivationPath,provider:L});checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await i(),y=(await import("@ledgerhq/hw-app-eth")).default;this.ledgerApp=new y(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new F.SwapKitError("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 _=await this.ledgerApp?.signPersonalMessage(this.derivationPath,L);if(!_)throw new F.SwapKitError("wallet_ledger_signing_error");return _.r=`0x${_.r}`,_.s=`0x${_.s}`,y.from(_).serialized};sendTransaction=async(L)=>{if(!this.provider)throw new F.SwapKitError("wallet_ledger_no_provider");let y=await this.signTransaction(L);return await this.provider.broadcastTransaction(y)};signTypedData(){throw new F.SwapKitError("wallet_ledger_method_not_supported",{method:"signTypedData"})}signTransaction=async(L)=>{let{Transaction:y}=await import("ethers");await this.createTransportAndLedger();let _=await this.provider?.getTransactionCount(L.from||await this.getAddress()),T={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||_||0).toString()):_,to:L.to?.toString(),type:L.type&&!Number.isNaN(L.type)?L.type:L.maxFeePerGas?2:0,value:L.value},m=y.from(T).unsignedSerialized.slice(2),{ledgerService:l}=await import("@ledgerhq/hw-app-eth"),O=await l.resolveTransaction(m,{},{erc20:!0,externalPlugins:!0}),g=await this.ledgerApp?.signTransaction(this.derivationPath,m,O);if(!g)throw new F.SwapKitError("wallet_ledger_signing_error");let{r:R,s:G,v:B}=g;return y.from({...T,signature:{r:`0x${R}`,s:`0x${G}`,v:Number(BigInt(B))}}).serialized}}var ZL=(L)=>new $({...L,chainId:F.ChainId.Arbitrum}),AL=(L)=>new $({...L,chainId:F.ChainId.Aurora}),$L=(L)=>new $({...L,chainId:F.ChainId.Avalanche}),JL=(L)=>new $({...L,chainId:F.ChainId.Base}),tL=(L)=>new $({...L,chainId:F.ChainId.Ethereum}),ML=(L)=>new $({...L,chainId:F.ChainId.Gnosis}),QL=(L)=>new $({...L,chainId:F.ChainId.Optimism}),WL=(L)=>new $({...L,chainId:F.ChainId.Polygon}),YL=(L)=>new $({...L,chainId:F.ChainId.BinanceSmartChain});async function DL(L){let y=(await import("@ledgerhq/hw-app-near")).default,{Chain:_,NetworkDerivationPath:T,SwapKitError:m}=await import("@swapkit/helpers"),l=await i(),O=new y(l),g=(L||T[_.Near]).join("'/").concat("'"),{address:R,publicKey:G}=await O.getAddress(g);return{getAddress(){return Promise.resolve(R)},async getPublicKey(){let{PublicKey:j}=await import("@near-js/crypto");return j.fromString(`ed25519:${G}`)},signDelegateAction(j){return Promise.reject(new m("wallet_ledger_method_not_supported",{method:"signDelegateAction",wallet:"Ledger"}))},signNep413Message(j,f,J,A,U){return Promise.reject(new m("wallet_ledger_method_not_supported",{method:"signNep413Message",wallet:"Ledger"}))},async signTransaction(j){let{Signature:f,SignedTransaction:J}=await import("@near-js/transactions");try{let A=await O.signTransaction(j.encode(),g);if(!A)throw Error("Signature undefined");let U=new f({data:A,keyType:0}),E=new J({signature:U,transaction:j});return[A,E]}catch(A){throw new m("wallet_ledger_signing_error",{error:A})}}}}var HL=require("@scure/base"),v=require("@swapkit/helpers");var UL=require("@scure/base"),Q=require("@swapkit/helpers"),TL=(L)=>{if(L.length<64)throw new Q.SwapKitError("wallet_ledger_invalid_signature",{reason:"Too short"});if(L[0]!==48)throw new Q.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected first byte 0x30"});if(L[1]+2!==L.length)throw new Q.SwapKitError("wallet_ledger_invalid_signature",{reason:"signature length does not match TLV"});if(L[2]!==2)throw new Q.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02"});let y=L[3],_=L.slice(4,y+4);if(_.length===33&&_[0]===0)_=_.slice(1,33);else if(_.length===33)throw new Q.SwapKitError("wallet_ledger_invalid_signature",{reason:"r too long"});while(_.length<32)_.unshift(0);if(L[y+4]!==2)throw new Q.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02 for s"});let T=L[y+5];if(4+y+2+T!==L.length)throw new Q.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV byte lengths do not match message length"});let m=L.slice(y+6,L.length);if(m.length===33&&m[0]===0)m=m.slice(1,33);else if(m.length===33)throw new Q.SwapKitError("wallet_ledger_invalid_signature",{reason:"s too long"});while(m.length<32)m.unshift(0);if(_.length!==32||m.length!==32)throw new Q.SwapKitError("wallet_ledger_invalid_signature",{reason:"must be 32 bytes each"});return UL.base64.encode(Buffer.concat([_,m]))};class wL 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=HL.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:_,error_message:T,signature:m}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new v.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(_,T),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:y,signature:TL(m)}]};sign=async(L)=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:y,error_message:_,signature:T}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new v.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(y,_),TL(T)}}var W=require("@swapkit/helpers");class PL{derivationPath;ledgerApp=null;ledgerTimeout=50000;constructor(L){this.derivationPath=typeof L==="string"?L:W.derivationPathToString(L||W.NetworkDerivationPath.TRON)}checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await i(),y=(await import("@ledgerhq/hw-app-trx")).default;this.ledgerApp=new y(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new W.SwapKitError("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 W.SwapKitError("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 W.SwapKitError("wallet_ledger_transport_error");let y=JSON.stringify(L);try{let _=await this.ledgerApp.signTransaction(this.derivationPath,y,[]);if(!_)throw new W.SwapKitError("wallet_ledger_signing_error");return{...L,signature:[_]}}catch(_){throw new W.SwapKitError("wallet_ledger_signing_error",{error:_})}}}var zL=(L)=>new PL(L);var q=require("@swapkit/helpers");var g0=["bitcoin-cash","dash","dogecoin","zcash"],O0=({psbt:L,inputUtxos:y,btcApp:_,derivationPath:T,chain:m},l)=>{let O=y.map((j)=>{return[_.splitTransaction(j.txHex||"",!g0.includes(m),m==="zcash"),j.index,void 0,void 0]}),g=L.data.globalMap.unsignedTx.toBuffer().toString("hex"),R=_.splitTransaction(g,!0),G=_.serializeTransactionOutputs(R).toString("hex"),B={additionals:["bech32"],associatedKeysets:O.map(()=>T),inputs:O,outputScriptHex:G,segwit:!0,useTrustedInputForSegwit:!0};return _.createPaymentTransaction({...B,...l})},n=({chain:L,additionalSignParams:y})=>{let _,T=null;async function m(O=!0){if(O&&!_)new q.SwapKitError("wallet_ledger_connection_error",{message:`Ledger connection failed:
2
- ${JSON.stringify({btcApp:_,checkBtcApp:O})}`});T||=await i()}async function l(){T=await i(),_=new(await import("@ledgerhq/hw-app-btc")).default({currency:L,transport:T})}return(O)=>{let g=typeof O==="string"?O:q.derivationPathToString(O),R=q.getWalletFormatFor(g);return{connect:async()=>{await m(!1),_=new(await import("@ledgerhq/hw-app-btc")).default({currency:L,transport:T})},getAddress:async()=>{let{toCashAddress:G}=await import("@swapkit/toolboxes/utxo");await m(!1);let{bitcoinAddress:B}=await _.getWalletPublicKey(g,{format:R});if(!B)throw new q.SwapKitError("wallet_ledger_get_address_error",{message:`Cannot get ${L} address from ledger derivation path: ${g}`});return L==="bitcoin-cash"&&R==="legacy"?G(B).replace(/(bchtest:|bitcoincash:)/,""):B},getExtendedPublicKey:async(G="84'/0'/0'",B=76067358)=>{return await m(!1),_.getWalletXpub({path:G,xpubVersion:B})},signTransaction:async(G,B)=>{return await l(),O0({btcApp:_,chain:L,derivationPath:g,inputUtxos:B,psbt:G},y)}}}},cL=n({chain:"bitcoin"}),qL=n({chain:"litecoin"}),SL=n({additionalSignParams:{additionals:["abc"],segwit:!1,sigHashType:65},chain:"bitcoin-cash"}),oL=n({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dogecoin"}),KL=n({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dash"}),nL=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 kL=N(require("@ledgerhq/hw-app-xrp")),k=require("@swapkit/helpers"),lL=require("ripple-binary-codec");var G0=2147483648;function R0(L){let y={};for(let _ in L)if(L[_]!==null&&L[_]!==void 0)y[_]=L[_];return y}function B0(L){return new kL.default(L)}var EL=async(L)=>{let y=k.derivationPathToString(L||k.NetworkDerivationPath[k.Chain.Ripple]),_=await i(),T=B0(_),{address:m,publicKey:l}=await T.getAddress(y);async function O(g){let{hashes:R}=await import("@swapkit/toolboxes/ripple"),B={...R0(g),Flags:g.Flags||G0,SigningPubKey:l.toUpperCase()},j=lL.encode(B),f=await T.signTransaction(y,j),J=lL.encode({...B,TxnSignature:f});return{hash:R.hashSignedTx(J),tx_blob:J}}return{getAddress:()=>m,signTransaction:O}};var D=async({chain:L,derivationPath:y})=>{let{match:_}=await import("ts-pattern");return _(L).returnType().with(C.Chain.THORChain,()=>Promise.resolve(new wL(y))).with(C.Chain.Cosmos,()=>Promise.resolve(new mL(y))).with(C.Chain.Bitcoin,()=>Promise.resolve(cL(y))).with(C.Chain.BitcoinCash,()=>Promise.resolve(SL(y))).with(C.Chain.Dash,()=>Promise.resolve(KL(y))).with(C.Chain.Dogecoin,()=>Promise.resolve(oL(y))).with(C.Chain.Litecoin,()=>Promise.resolve(qL(y))).with(C.Chain.Zcash,()=>Promise.resolve(nL(y))).with(C.Chain.Ripple,()=>Promise.resolve(EL(y))).with(C.Chain.Tron,()=>Promise.resolve(zL(y))).with(C.Chain.Near,()=>{return Promise.resolve(DL(y))}).with(C.Chain.Arbitrum,C.Chain.Aurora,C.Chain.Avalanche,C.Chain.BinanceSmartChain,C.Chain.Ethereum,C.Chain.Gnosis,C.Chain.Optimism,C.Chain.Polygon,C.Chain.Base,async()=>{let{getProvider:T}=await import("@swapkit/toolboxes/evm"),m={derivationPath:y,provider:await T(L)};return _(L).with(C.Chain.BinanceSmartChain,()=>YL(m)).with(C.Chain.Avalanche,()=>$L(m)).with(C.Chain.Arbitrum,()=>ZL(m)).with(C.Chain.Optimism,()=>QL(m)).with(C.Chain.Polygon,()=>WL(m)).with(C.Chain.Base,()=>JL(m)).with(C.Chain.Aurora,()=>AL(m)).with(C.Chain.Gnosis,()=>ML(m)).otherwise(()=>tL(m))}).otherwise(()=>{throw new C.SwapKitError("wallet_chain_not_supported",{chain:L,wallet:C.WalletOption.LEDGER})})};var VL=x.createWallet({connect:({addChain:L,supportedChains:y,walletType:_})=>async function(m,l){let[O]=w.filterSupportedChains({chains:m,supportedChains:y,walletType:_});if(!O)return!1;let g=await i0({chain:O,derivationPath:l});return L({...g,chain:O,walletType:w.WalletOption.LEDGER}),!0},name:"connectLedger",supportedChains:[w.Chain.Arbitrum,w.Chain.Aurora,w.Chain.Avalanche,w.Chain.Base,w.Chain.BinanceSmartChain,w.Chain.Bitcoin,w.Chain.BitcoinCash,w.Chain.Cosmos,w.Chain.Dash,w.Chain.Dogecoin,w.Chain.Ethereum,w.Chain.Gnosis,w.Chain.Litecoin,w.Chain.Near,w.Chain.Optimism,w.Chain.Polygon,w.Chain.Ripple,w.Chain.THORChain,w.Chain.Tron,w.Chain.Zcash],walletType:w.WalletOption.LEDGER}),X0=x.getWalletSupportedChains(VL);function F0(L,y="t"){if(!L?.includes("=:"))return L;let _=L.includes(`:${y}:`)?L.split(`:${y}:`)[0]:L;return _?.substring(0,_.lastIndexOf(":"))}function h(L){if(Array.isArray(L))return L.forEach((T,m)=>{L[m]=h(T)}),L;if(typeof L!=="object")return L;let y={},_=Object.keys(L).sort();for(let T of _)y[T]=h(L[T]);return y}function j0(L){return JSON.stringify(h(L))}async function i0({chain:L,derivationPath:y}){switch(L){case w.Chain.BitcoinCash:case w.Chain.Bitcoin:case w.Chain.Dash:case w.Chain.Dogecoin:case w.Chain.Litecoin:case w.Chain.Zcash:{let{getUtxoToolbox:_}=await import("@swapkit/toolboxes/utxo"),T=await _(L),m=await D({chain:L,derivationPath:y}),l=await P({chain:L,ledgerClient:m});return{...T,address:l,transfer:async(g)=>{let R=g.feeRate||(await T.getFeeRates())[w.FeeOption.Average],G=[w.Chain.Bitcoin].includes(L)?g.memo:F0(g.memo),{psbt:B,inputs:j}=await T.createTransaction({...g,feeRate:R,fetchTxHex:!0,memo:G,sender:l}),f=await m.signTransaction(B,j);return await T.broadcastTx(f)}}}case w.Chain.Ethereum:case w.Chain.Avalanche:case w.Chain.Arbitrum:case w.Chain.Optimism:case w.Chain.Polygon:case w.Chain.BinanceSmartChain:case w.Chain.Base:case w.Chain.Aurora:case w.Chain.Gnosis:{let{getEvmToolbox:_}=await import("@swapkit/toolboxes/evm"),T=await D({chain:L,derivationPath:y}),m=await P({chain:L,ledgerClient:T});return{...await _(L,{signer:T}),address:m}}case w.Chain.Cosmos:{let{createSigningStargateClient:_,getMsgSendDenom:T,getCosmosToolbox:m}=await import("@swapkit/toolboxes/cosmos"),l=await m(w.Chain.Cosmos),O=await D({chain:L,derivationPath:y}),g=await P({chain:L,ledgerClient:O});return{...l,address:g,transfer:async({assetValue:G,recipient:B,memo:j})=>{if(!G)throw new w.SwapKitError("wallet_ledger_invalid_asset");let f={amount:[{amount:G.getBaseValue("string"),denom:T(`u${G.symbol}`).toLowerCase()}],fromAddress:g,toAddress:B},J=await w.getRPCUrl(L),A=await _(J,O,"0.007uatom"),{transactionHash:U}=await A.signAndBroadcast(g,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:f}],2,j);return U}}}case w.Chain.THORChain:{let{SignMode:_}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:T}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),m=await import("@cosmjs/proto-signing"),l=m.encodePubkey??m.default?.encodePubkey,O=m.makeAuthInfoBytes??m.default?.makeAuthInfoBytes,{createStargateClient:g,buildEncodedTxBody:R,getCosmosToolbox:G,buildAminoMsg:B,getDefaultChainFee:j,fromBase64:f,parseAminoMessageForDirectSigning:J}=await import("@swapkit/toolboxes/cosmos"),A=await G(L),U=await D({chain:L,derivationPath:y}),E=await P({chain:L,ledgerClient:U}),u=j(L),{pubkey:gL,signTransaction:IL,sign:bL}=U,OL=async({memo:H="",assetValue:GL,...vL})=>{let RL=await A.getAccount(E);if(!RL)throw new w.SwapKitError("wallet_ledger_invalid_account");if(!GL)throw new w.SwapKitError("wallet_ledger_invalid_asset");if(!gL)throw new w.SwapKitError("wallet_ledger_pubkey_not_found");let{accountNumber:dL,sequence:hL}=RL,p=(hL||0).toString(),BL=h([B({assetValue:GL,memo:H,sender:E,...vL})]),xL=j0({account_number:dL?.toString(),chain_id:w.THORConfig.chainId,fee:u,memo:H,msgs:BL,sequence:p}),a=await IL(xL,p);if(!a)throw new w.SwapKitError("wallet_ledger_signing_error");let uL=l({type:"tendermint/PubKeySecp256k1",value:gL}),pL=BL.map(J),aL=await R({chain:L,memo:H,msgs:pL}),eL=O([{pubkey:uL,sequence:Number(p)}],u.amount,Number.parseInt(u.gas,10),void 0,void 0,_.SIGN_MODE_LEGACY_AMINO_JSON),rL=a?.[0]?.signature?f(a[0].signature):Uint8Array.from([]),sL=T.fromPartial({authInfoBytes:eL,bodyBytes:aL,signatures:[rL]}),L0=T.encode(sL).finish(),y0=await w.getRPCUrl(w.Chain.THORChain),_0=await g(y0),{transactionHash:m0}=await _0.broadcastTx(L0);return m0};return{...A,address:E,deposit:(H)=>OL(H),signMessage:bL,transfer:(H)=>OL(H)}}case w.Chain.Near:{let{getNearToolbox:_}=await import("@swapkit/toolboxes/near"),T=await D({chain:L,derivationPath:y}),m=await T.getAddress();return{...await _({signer:T}),address:m}}case w.Chain.Ripple:{let{getRippleToolbox:_}=await import("@swapkit/toolboxes/ripple"),T=await D({chain:L,derivationPath:y}),m=T.getAddress();return{...await _({signer:T}),address:m}}case w.Chain.Tron:{let{createTronToolbox:_}=await import("@swapkit/toolboxes/tron"),T=await D({chain:L,derivationPath:y}),m=await P({chain:L,ledgerClient:T});return{...await _({signer:T}),address:m}}default:throw new w.SwapKitError("wallet_ledger_chain_not_supported",{chain:L})}}
1
+ var $y={};Cy($y,{ledgerWallet:()=>bL,LEDGER_SUPPORTED_CHAINS:()=>Fy});module.exports=Ny($y);var w=require("@swapkit/helpers"),x=require("@swapkit/wallet-core");var C=require("@swapkit/helpers"),P=async({chain:L,ledgerClient:y})=>{if(!y)return"";switch(L){case C.Chain.Cosmos:case C.Chain.THORChain:return y.connect();case C.Chain.Ethereum:case C.Chain.BinanceSmartChain:case C.Chain.Avalanche:case C.Chain.Polygon:case C.Chain.Arbitrum:case C.Chain.Optimism:case C.Chain.Base:case C.Chain.Aurora:case C.Chain.Gnosis:case C.Chain.XLayer:return y.getAddress();case C.Chain.Bitcoin:case C.Chain.BitcoinCash:case C.Chain.Dash:case C.Chain.Dogecoin:case C.Chain.Litecoin:case C.Chain.Zcash:{let _=y;await _.connect();let T=await _.getAddress();return L===C.Chain.BitcoinCash?T.replace("bitcoincash:",""):T}case C.Chain.Near:return await y.getAddress();case C.Chain.Ripple:return y.getAddress();case C.Chain.Tron:return y.getAddress();default:throw new C.SwapKitError("wallet_chain_not_supported",{chain:L,wallet:C.WalletOption.LEDGER})}};var N=require("@swapkit/helpers");var q=require("@swapkit/helpers");var W=require("@swapkit/helpers");var yL=require("@swapkit/helpers");var S=85,e=250;var z={GET_ADDR_SECP256K1:4,GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2},d={ADD:1,INIT:0,LAST:2},r={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},o={JSON:0},U={NoError:36864},BL={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 Q(L){if(L in BL)return BL[L];return`Unknown Status Code: ${L}`}function wy(L){return typeof L==="object"&&L!==null&&!Array.isArray(L)&&!(L instanceof Date)}function $(L){if(L){if(wy(L)){if(Object.hasOwn(L,"statusCode"))return{error_message:Q(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,z.GET_VERSION,0,0).then((y)=>{let _=y.slice(-2),T=_[0]*256+_[1],m=0;if(y.length>=9)m=(y[5]<<24)+(y[6]<<16)+(y[7]<<8)+(y[8]<<0);return{device_locked:y[4]===1,error_message:Q(T),major:y[1],minor:y[2],patch:y[3],return_code:T,target_id:m.toString(16),test_mode:y[0]!==0}},$)}var V=require("@swapkit/helpers");function NL(L){if(L==null||L.length<3)throw new V.SwapKitError("wallet_ledger_invalid_params",{reason:"Path too short"});if(L.length>10)throw new V.SwapKitError("wallet_ledger_invalid_params",{reason:"Path too long"});let y=Buffer.alloc(1+4*L.length);y.writeUInt8(L.length,0);for(let _=0;_<L.length;_+=1){let T=L[_]||0;if(_<3)T|=2147483648;y.writeInt32LE(T,1+_*4)}return y}function LL(L,y,_,T,m=o.JSON){return L.transport.send(S,z.SIGN_SECP256K1,y,m,T,[U.NoError,27012,27264]).then((l)=>{let O=l.slice(-2),g=O[0]*256+O[1],G=Q(g);if(g===27264||g===27012)G=`${G} : ${l.slice(0,l.length-2).toString("ascii")}`;let X=null;if(l.length>2)X=l.slice(0,l.length-2);return{error_message:G,return_code:g,signature:X}},$)}function ly(L){if(L.length!==65)throw new V.SwapKitError("wallet_ledger_invalid_params",{reason:"decompressed public key length should be 65 bytes"});let y=L.slice(33,65),_=Buffer.from([2+(y[y.length-1]&1)]);return Buffer.concat([_,L.slice(1,33)])}function CL(L,y){return L.transport.send(S,z.INS_PUBLIC_KEY_SECP256K1,0,0,y,[U.NoError]).then((_)=>{let T=_.slice(-2),m=T[0]*256+T[1],l=Buffer.from(_.slice(0,65));return{compressed_pk:ly(l),error_message:Q(m),pk:l,return_code:m}},$)}function FL(L){if(!L||L.length!==5)throw new V.SwapKitError("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 jL(L,y,_,T,m=o.JSON){let l=d.ADD;if(y===1)l=d.INIT;if(y===_)l=d.LAST;return LL(L,l,0,T,m)}function ZL(L,y){return L.transport.send(S,z.GET_ADDR_SECP256K1,0,0,y,[U.NoError]).then((_)=>{let T=_.slice(-2),m=T[0]*256+T[1];return{compressed_pk:Buffer.from(_.slice(0,33)),error_message:Q(m),pk:"OBSOLETE PROPERTY",return_code:m}},$)}class b{transport;versionResponse;constructor(L){if(!L)throw new yL.SwapKitError("wallet_ledger_transport_not_defined");this.transport=L}static serializeHRP(L){if(L==null||L.length<3||L.length>83)throw new yL.SwapKitError("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!==U.NoError)throw this.versionResponse;switch(this.versionResponse.major){case 1:return NL(L);case 2:return FL(L);default:return Buffer.alloc(0)}}async signGetChunks(L,y){let _=await this.serializePath(L),T=[];T.push(_);for(let m=0;m<y.length;m+=e){let l=m+e;if(m>y.length)l=y.length;T.push(y.slice(m,l))}return T}async getVersion(){try{return this.versionResponse=await s(this.transport),this.versionResponse}catch(L){return $(L)}}appInfo(){return this.transport.send(176,1,0,0).then((L)=>{let y=L.slice(-2),_=y[0]*256+y[1],T="",m="",l=0,O=0;if(L[0]!==1)return{error_message:"response format ID not recognized",return_code:36865};let g=L[1];T=L.slice(2,2+g).toString("ascii");let G=2+g,X=L[G];G+=1,m=L.slice(G,G+X).toString("ascii"),G+=X;let R=L[G];return G+=1,l=R,O=L[G],{appName:T,appVersion:m,error_message:Q(_),flag_onboarded:(O&4)!==0,flag_pin_validated:(O&128)!==0,flag_recovery:(O&1)!==0,flag_signed_mcu_code:(O&2)!==0,flagLen:l,flagsValue:O,return_code:_}},$)}deviceInfo(){return this.transport.send(224,1,0,0,Buffer.from([]),[U.NoError,28160]).then((L)=>{let y=L.slice(-2),_=y[0]*256+y[1];if(_===28160)return{error_message:"This command is only available in the Dashboard",return_code:_};let T=L.slice(0,4).toString("hex"),m=4,l=L[m];m+=1;let O=L.slice(m,m+l).toString();m+=l;let g=L[m];m+=1;let G=L.slice(m,m+g).toString("hex");m+=g;let X=L[m];m+=1;let R=L.slice(m,m+X);if(R[X-1]===0)R=L.slice(m,m+X-1);let F=R.toString();return{error_message:Q(_),flag:G,mcuVersion:F,return_code:_,seVersion:O,targetId:T}},$)}async publicKey(L){try{let y=await this.serializePath(L);switch(this.versionResponse.major){case 1:return CL(this,y);case 2:{let _=Buffer.concat([b.serializeHRP("thor"),y]);return ZL(this,_)}default:return{error_message:"App Version is not supported",return_code:25600}}}catch(y){return $(y)}}getAddressAndPubKey(L,y,_=!1){return this.serializePath(L).then((T)=>{let m=Buffer.concat([b.serializeHRP(y),T]);return this.transport.send(S,z.GET_ADDR_SECP256K1,_?r.SHOW_ADDRESS_IN_DEVICE:r.ONLY_RETRIEVE,0,m,[U.NoError]).then((l)=>{let O=l.slice(-2),g=O[0]*256+O[1],G=Buffer.from(l.slice(0,33));return{bech32_address:Buffer.from(l.slice(33,-2)).toString(),compressed_pk:G,error_message:Q(g),return_code:g}},$)}).catch((T)=>$(T))}showAddressAndPubKey(L,y){return this.getAddressAndPubKey(L,y,!0)}signSendChunk(L,y,_,T=o.JSON){switch(this.versionResponse.major){case 1:return LL(this,L,y,_,T);case 2:return jL(this,L,y,_,T);default:return{error_message:"App Version is not supported",return_code:25600}}}async sign(L,y,_=o.JSON){let T=Buffer.from(y),m=[],l;try{m=await this.signGetChunks(L,T),l=await this.signSendChunk(1,m.length,m[0],_)}catch(g){$(g)}let O={error_message:l.error_message,return_code:l.return_code,signature:null};for(let g=1;g<m.length;g+=1)if(O=await this.signSendChunk(1+g,m.length,m[g],_),O.return_code!==U.NoError)break;return{error_message:O.error_message,return_code:O.return_code,signature:O.signature}}}var K=require("@swapkit/helpers"),_L=()=>navigator?.usb,gy=async()=>{let L=_L();if(typeof L?.getDevices!=="function")return[];let{ledgerUSBVendorId:y}=await import("@ledgerhq/devices"),T=(await L?.getDevices()).filter((m)=>m.vendorId===y);if(T.length>0)return T[0];return L?.requestDevice({filters:[{vendorId:y}]})},A=async()=>{let L=await gy();if(!L)throw new K.SwapKitError("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],_=y.interfaces.find(({alternates:R})=>R.some(({interfaceClass:F})=>F===255))||y.interfaces.find(({alternates:R})=>R.some(({interfaceClass:F})=>F===3));if(!_)throw await L.close(),new K.SwapKitError("wallet_ledger_connection_error");let T=_.alternates?.find(({interfaceClass:R})=>R===3)?.interfaceClass,m=_.alternates?.find(({interfaceClass:R})=>R===255)?.interfaceClass;if(T&&!m){let R=(await import("@ledgerhq/hw-transport-webhid")).default;if(!await R.isSupported())throw await L.close(),new K.SwapKitError("wallet_ledger_webhid_not_supported");return await R.create()}try{await L.claimInterface(_.interfaceNumber)}catch(R){throw await L.close(),new K.SwapKitError("wallet_ledger_connection_claimed",R)}let l=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await l.isSupported())throw new K.SwapKitError("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:g}=await import("@ledgerhq/errors"),G=new l(L,_.interfaceNumber),X=(R)=>{if(L===R.device)_L()?.removeEventListener("disconnect",X),G._emitDisconnect(new g)};return _L()?.addEventListener("disconnect",X),G};class I{ledgerTimeout=50000;derivationPath=W.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 A():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 W.SwapKitError("wallet_ledger_connection_error",y)}};validateResponse=(L,y)=>{switch(L){case W.LedgerErrorCode.NoError:return;case W.LedgerErrorCode.LockedDevice:throw new W.SwapKitError("wallet_ledger_device_locked",{message:`Ledger is locked: ${y}`});case W.LedgerErrorCode.TC_NotFound:throw new W.SwapKitError("wallet_ledger_device_not_found");default:break}}}class mL extends I{pubKey=null;derivationPath;constructor(L=q.NetworkDerivationPath.GAIA){super();this.chain="cosmos",this.derivationPath=q.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:_,error_message:T,signature:m}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new q.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(_,T),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:y,signature:m}]};signAmino=async(L,y)=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.getAccounts();if(_.findIndex((Z)=>Z.address===L)===-1)throw new q.SwapKitError("wallet_ledger_address_not_found",{address:L});let m=await import("@cosmjs/amino"),l=m.encodeSecp256k1Signature??m.default?.encodeSecp256k1Signature,O=m.serializeSignDoc??m.default?.serializeSignDoc,g=await import("@cosmjs/crypto"),G=g.Secp256k1Signature??g.default?.Secp256k1Signature,X=O(y),R=await this.ledgerApp.sign(this.derivationPath,X);this.validateResponse(R.return_code,R.error_message);let F=G.fromDer(R.signature).toFixedLength();return{signature:l(_[0].pubkey,F),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 j=require("@swapkit/helpers"),AL=require("ethers");class J extends AL.AbstractSigner{chainId=j.ChainId.Ethereum;derivationPath="";ledgerApp=null;ledgerTimeout=50000;constructor({provider:L,derivationPath:y=j.NetworkDerivationPath.OP,chainId:_=j.ChainId.Optimism}){super(L);this.chainId=_||j.ChainId.Ethereum,this.derivationPath=typeof y==="string"?y:j.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 A(),y=(await import("@ledgerhq/hw-app-eth")).default;this.ledgerApp=new y(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new j.SwapKitError("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 _=await this.ledgerApp?.signPersonalMessage(this.derivationPath,L);if(!_)throw new j.SwapKitError("wallet_ledger_signing_error");return _.r=`0x${_.r}`,_.s=`0x${_.s}`,y.from(_).serialized};sendTransaction=async(L)=>{if(!this.provider)throw new j.SwapKitError("wallet_ledger_no_provider");let y=await this.signTransaction(L);return await this.provider.broadcastTransaction(y)};signTypedData(){throw new j.SwapKitError("wallet_ledger_method_not_supported",{method:"signTypedData"})}signTransaction=async(L)=>{let{Transaction:y}=await import("ethers");await this.createTransportAndLedger();let _=await this.provider?.getTransactionCount(L.from||await this.getAddress()),T={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||_||0).toString()):_,to:L.to?.toString(),type:L.type&&!Number.isNaN(L.type)?L.type:L.maxFeePerGas?2:0,value:L.value},m=y.from(T).unsignedSerialized.slice(2),{ledgerService:l}=await import("@ledgerhq/hw-app-eth"),O=await l.resolveTransaction(m,{},{erc20:!0,externalPlugins:!0}),g=await this.ledgerApp?.signTransaction(this.derivationPath,m,O);if(!g)throw new j.SwapKitError("wallet_ledger_signing_error");let{r:G,s:X,v:R}=g;return y.from({...T,signature:{r:`0x${G}`,s:`0x${X}`,v:Number(BigInt(R))}}).serialized}}var $L=(L)=>new J({...L,chainId:j.ChainId.Arbitrum}),iL=(L)=>new J({...L,chainId:j.ChainId.Aurora}),JL=(L)=>new J({...L,chainId:j.ChainId.Avalanche}),ML=(L)=>new J({...L,chainId:j.ChainId.Base}),QL=(L)=>new J({...L,chainId:j.ChainId.Ethereum}),WL=(L)=>new J({...L,chainId:j.ChainId.Gnosis}),YL=(L)=>new J({...L,chainId:j.ChainId.Optimism}),DL=(L)=>new J({...L,chainId:j.ChainId.Polygon}),UL=(L)=>new J({...L,chainId:j.ChainId.BinanceSmartChain}),fL=(L)=>new J({...L,chainId:j.ChainId.XLayer});async function tL(L){let y=(await import("@ledgerhq/hw-app-near")).default,{Chain:_,NetworkDerivationPath:T,SwapKitError:m}=await import("@swapkit/helpers"),l=await A(),O=new y(l),g=(L||T[_.Near]).join("'/").concat("'"),{address:G,publicKey:X}=await O.getAddress(g);return{getAddress(){return Promise.resolve(G)},async getPublicKey(){let{PublicKey:F}=await import("@near-js/crypto");return F.fromString(`ed25519:${X}`)},signDelegateAction(F){return Promise.reject(new m("wallet_ledger_method_not_supported",{method:"signDelegateAction",wallet:"Ledger"}))},signNep413Message(F,Z,M,i,t){return Promise.reject(new m("wallet_ledger_method_not_supported",{method:"signNep413Message",wallet:"Ledger"}))},async signTransaction(F){let{Signature:Z,SignedTransaction:M}=await import("@near-js/transactions");try{let i=await O.signTransaction(F.encode(),g);if(!i)throw Error("Signature undefined");let t=new Z({data:i,keyType:0}),E=new M({signature:t,transaction:F});return[i,E]}catch(i){throw new m("wallet_ledger_signing_error",{error:i})}}}}var PL=require("@scure/base"),v=require("@swapkit/helpers");var HL=require("@scure/base"),Y=require("@swapkit/helpers"),TL=(L)=>{if(L.length<64)throw new Y.SwapKitError("wallet_ledger_invalid_signature",{reason:"Too short"});if(L[0]!==48)throw new Y.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected first byte 0x30"});if(L[1]+2!==L.length)throw new Y.SwapKitError("wallet_ledger_invalid_signature",{reason:"signature length does not match TLV"});if(L[2]!==2)throw new Y.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02"});let y=L[3],_=L.slice(4,y+4);if(_.length===33&&_[0]===0)_=_.slice(1,33);else if(_.length===33)throw new Y.SwapKitError("wallet_ledger_invalid_signature",{reason:"r too long"});while(_.length<32)_.unshift(0);if(L[y+4]!==2)throw new Y.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02 for s"});let T=L[y+5];if(4+y+2+T!==L.length)throw new Y.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV byte lengths do not match message length"});let m=L.slice(y+6,L.length);if(m.length===33&&m[0]===0)m=m.slice(1,33);else if(m.length===33)throw new Y.SwapKitError("wallet_ledger_invalid_signature",{reason:"s too long"});while(m.length<32)m.unshift(0);if(_.length!==32||m.length!==32)throw new Y.SwapKitError("wallet_ledger_invalid_signature",{reason:"must be 32 bytes each"});return HL.base64.encode(Buffer.concat([_,m]))};class wL extends I{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:_,error_message:T,signature:m}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new v.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(_,T),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:y,signature:TL(m)}]};sign=async(L)=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:y,error_message:_,signature:T}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new v.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(y,_),TL(T)}}var D=require("@swapkit/helpers");class zL{derivationPath;ledgerApp=null;ledgerTimeout=50000;constructor(L){this.derivationPath=typeof L==="string"?L:D.derivationPathToString(L||D.NetworkDerivationPath.TRON)}checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await A(),y=(await import("@ledgerhq/hw-app-trx")).default;this.ledgerApp=new y(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new D.SwapKitError("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 D.SwapKitError("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 D.SwapKitError("wallet_ledger_transport_error");let y=JSON.stringify(L);try{let _=await this.ledgerApp.signTransaction(this.derivationPath,y,[]);if(!_)throw new D.SwapKitError("wallet_ledger_signing_error");return{...L,signature:[_]}}catch(_){throw new D.SwapKitError("wallet_ledger_signing_error",{error:_})}}}var qL=(L)=>new zL(L);var c=require("@swapkit/helpers");var Oy=["bitcoin-cash","dash","dogecoin","zcash"],Ry=({psbt:L,inputUtxos:y,btcApp:_,derivationPath:T,chain:m},l)=>{let O=y.map((F)=>{return[_.splitTransaction(F.txHex||"",!Oy.includes(m),m==="zcash"),F.index,void 0,void 0]}),g=L.data.globalMap.unsignedTx.toBuffer().toString("hex"),G=_.splitTransaction(g,!0),X=_.serializeTransactionOutputs(G).toString("hex"),R={additionals:["bech32"],associatedKeysets:O.map(()=>T),inputs:O,outputScriptHex:X,segwit:!0,useTrustedInputForSegwit:!0};return _.createPaymentTransaction({...R,...l})},n=({chain:L,additionalSignParams:y})=>{let _,T=null;async function m(O=!0){if(O&&!_)new c.SwapKitError("wallet_ledger_connection_error",{message:`Ledger connection failed:
2
+ ${JSON.stringify({btcApp:_,checkBtcApp:O})}`});T||=await A()}async function l(){T=await A(),_=new(await import("@ledgerhq/hw-app-btc")).default({currency:L,transport:T})}return(O)=>{let g=typeof O==="string"?O:c.derivationPathToString(O),G=c.getWalletFormatFor(g);return{connect:async()=>{await m(!1),_=new(await import("@ledgerhq/hw-app-btc")).default({currency:L,transport:T})},getAddress:async()=>{let{toCashAddress:X}=await import("@swapkit/toolboxes/utxo");await m(!1);let{bitcoinAddress:R}=await _.getWalletPublicKey(g,{format:G});if(!R)throw new c.SwapKitError("wallet_ledger_get_address_error",{message:`Cannot get ${L} address from ledger derivation path: ${g}`});return L==="bitcoin-cash"&&G==="legacy"?X(R).replace(/(bchtest:|bitcoincash:)/,""):R},getExtendedPublicKey:async(X="84'/0'/0'",R=76067358)=>{return await m(!1),_.getWalletXpub({path:X,xpubVersion:R})},signTransaction:async(X,R)=>{return await l(),Ry({btcApp:_,chain:L,derivationPath:g,inputUtxos:R,psbt:X},y)}}}},cL=n({chain:"bitcoin"}),SL=n({chain:"litecoin"}),oL=n({additionalSignParams:{additionals:["abc"],segwit:!1,sigHashType:65},chain:"bitcoin-cash"}),KL=n({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dogecoin"}),nL=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 EL=B(require("@ledgerhq/hw-app-xrp")),k=require("@swapkit/helpers"),lL=require("ripple-binary-codec");var Gy=2147483648;function Xy(L){let y={};for(let _ in L)if(L[_]!==null&&L[_]!==void 0)y[_]=L[_];return y}function By(L){return new EL.default(L)}var VL=async(L)=>{let y=k.derivationPathToString(L||k.NetworkDerivationPath[k.Chain.Ripple]),_=await A(),T=By(_),{address:m,publicKey:l}=await T.getAddress(y);async function O(g){let{hashes:G}=await import("@swapkit/toolboxes/ripple"),R={...Xy(g),Flags:g.Flags||Gy,SigningPubKey:l.toUpperCase()},F=lL.encode(R),Z=await T.signTransaction(y,F),M=lL.encode({...R,TxnSignature:Z});return{hash:G.hashSignedTx(M),tx_blob:M}}return{getAddress:()=>m,signTransaction:O}};var f=async({chain:L,derivationPath:y})=>{let{match:_}=await import("ts-pattern");return _(L).returnType().with(N.Chain.THORChain,()=>Promise.resolve(new wL(y))).with(N.Chain.Cosmos,()=>Promise.resolve(new mL(y))).with(N.Chain.Bitcoin,()=>Promise.resolve(cL(y))).with(N.Chain.BitcoinCash,()=>Promise.resolve(oL(y))).with(N.Chain.Dash,()=>Promise.resolve(nL(y))).with(N.Chain.Dogecoin,()=>Promise.resolve(KL(y))).with(N.Chain.Litecoin,()=>Promise.resolve(SL(y))).with(N.Chain.Zcash,()=>Promise.resolve(kL(y))).with(N.Chain.Ripple,()=>Promise.resolve(VL(y))).with(N.Chain.Tron,()=>Promise.resolve(qL(y))).with(N.Chain.Near,()=>{return Promise.resolve(tL(y))}).with(N.Chain.Arbitrum,N.Chain.Aurora,N.Chain.Avalanche,N.Chain.BinanceSmartChain,N.Chain.Ethereum,N.Chain.Gnosis,N.Chain.Optimism,N.Chain.Polygon,N.Chain.Base,N.Chain.XLayer,async()=>{let{getProvider:T}=await import("@swapkit/toolboxes/evm"),m={derivationPath:y,provider:await T(L)};return _(L).with(N.Chain.BinanceSmartChain,()=>UL(m)).with(N.Chain.Avalanche,()=>JL(m)).with(N.Chain.Arbitrum,()=>$L(m)).with(N.Chain.Optimism,()=>YL(m)).with(N.Chain.Polygon,()=>DL(m)).with(N.Chain.Base,()=>ML(m)).with(N.Chain.Aurora,()=>iL(m)).with(N.Chain.Gnosis,()=>WL(m)).with(N.Chain.XLayer,()=>fL(m)).otherwise(()=>QL(m))}).otherwise(()=>{throw new N.SwapKitError("wallet_chain_not_supported",{chain:L,wallet:N.WalletOption.LEDGER})})};var bL=x.createWallet({connect:({addChain:L,supportedChains:y,walletType:_})=>async function(m,l){let[O]=w.filterSupportedChains({chains:m,supportedChains:y,walletType:_});if(!O)return!1;let g=await Ay({chain:O,derivationPath:l});return L({...g,chain:O,walletType:w.WalletOption.LEDGER}),!0},name:"connectLedger",supportedChains:[w.Chain.Arbitrum,w.Chain.Aurora,w.Chain.Avalanche,w.Chain.Base,w.Chain.BinanceSmartChain,w.Chain.Bitcoin,w.Chain.BitcoinCash,w.Chain.Cosmos,w.Chain.Dash,w.Chain.Dogecoin,w.Chain.Ethereum,w.Chain.Gnosis,w.Chain.Litecoin,w.Chain.Near,w.Chain.Optimism,w.Chain.Polygon,w.Chain.Ripple,w.Chain.THORChain,w.Chain.XLayer,w.Chain.Tron,w.Chain.Zcash],walletType:w.WalletOption.LEDGER}),Fy=x.getWalletSupportedChains(bL);function jy(L,y="t"){if(!L?.includes("=:"))return L;let _=L.includes(`:${y}:`)?L.split(`:${y}:`)[0]:L;return _?.substring(0,_.lastIndexOf(":"))}function h(L){if(Array.isArray(L))return L.forEach((T,m)=>{L[m]=h(T)}),L;if(typeof L!=="object")return L;let y={},_=Object.keys(L).sort();for(let T of _)y[T]=h(L[T]);return y}function Zy(L){return JSON.stringify(h(L))}async function Ay({chain:L,derivationPath:y}){switch(L){case w.Chain.BitcoinCash:case w.Chain.Bitcoin:case w.Chain.Dash:case w.Chain.Dogecoin:case w.Chain.Litecoin:case w.Chain.Zcash:{let{getUtxoToolbox:_}=await import("@swapkit/toolboxes/utxo"),T=await _(L),m=await f({chain:L,derivationPath:y}),l=await P({chain:L,ledgerClient:m});return{...T,address:l,transfer:async(g)=>{let G=g.feeRate||(await T.getFeeRates())[w.FeeOption.Average],X=[w.Chain.Bitcoin].includes(L)?g.memo:jy(g.memo),{psbt:R,inputs:F}=await T.createTransaction({...g,feeRate:G,fetchTxHex:!0,memo:X,sender:l}),Z=await m.signTransaction(R,F);return await T.broadcastTx(Z)}}}case w.Chain.Ethereum:case w.Chain.Avalanche:case w.Chain.Arbitrum:case w.Chain.Optimism:case w.Chain.Polygon:case w.Chain.BinanceSmartChain:case w.Chain.Base:case w.Chain.Aurora:case w.Chain.Gnosis:case w.Chain.XLayer:{let{getEvmToolbox:_}=await import("@swapkit/toolboxes/evm"),T=await f({chain:L,derivationPath:y}),m=await P({chain:L,ledgerClient:T});return{...await _(L,{signer:T}),address:m}}case w.Chain.Cosmos:{let{createSigningStargateClient:_,getMsgSendDenom:T,getCosmosToolbox:m}=await import("@swapkit/toolboxes/cosmos"),l=await m(w.Chain.Cosmos),O=await f({chain:L,derivationPath:y}),g=await P({chain:L,ledgerClient:O});return{...l,address:g,transfer:async({assetValue:X,recipient:R,memo:F})=>{if(!X)throw new w.SwapKitError("wallet_ledger_invalid_asset");let Z={amount:[{amount:X.getBaseValue("string"),denom:T(`u${X.symbol}`).toLowerCase()}],fromAddress:g,toAddress:R},M=await w.getRPCUrl(L),i=await _(M,O,"0.007uatom"),{transactionHash:t}=await i.signAndBroadcast(g,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:Z}],2,F);return t}}}case w.Chain.THORChain:{let{SignMode:_}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:T}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),m=await import("@cosmjs/proto-signing"),l=m.encodePubkey??m.default?.encodePubkey,O=m.makeAuthInfoBytes??m.default?.makeAuthInfoBytes,{createStargateClient:g,buildEncodedTxBody:G,getCosmosToolbox:X,buildAminoMsg:R,getDefaultChainFee:F,fromBase64:Z,parseAminoMessageForDirectSigning:M}=await import("@swapkit/toolboxes/cosmos"),i=await X(L),t=await f({chain:L,derivationPath:y}),E=await P({chain:L,ledgerClient:t}),u=F(L),{pubkey:gL,signTransaction:IL,sign:vL}=t,OL=async({memo:H="",assetValue:RL,...dL})=>{let GL=await i.getAccount(E);if(!GL)throw new w.SwapKitError("wallet_ledger_invalid_account");if(!RL)throw new w.SwapKitError("wallet_ledger_invalid_asset");if(!gL)throw new w.SwapKitError("wallet_ledger_pubkey_not_found");let{accountNumber:hL,sequence:xL}=GL,p=(xL||0).toString(),XL=h([R({assetValue:RL,memo:H,sender:E,...dL})]),uL=Zy({account_number:hL?.toString(),chain_id:w.THORConfig.chainId,fee:u,memo:H,msgs:XL,sequence:p}),a=await IL(uL,p);if(!a)throw new w.SwapKitError("wallet_ledger_signing_error");let pL=l({type:"tendermint/PubKeySecp256k1",value:gL}),aL=XL.map(M),eL=await G({chain:L,memo:H,msgs:aL}),rL=O([{pubkey:pL,sequence:Number(p)}],u.amount,Number.parseInt(u.gas,10),void 0,void 0,_.SIGN_MODE_LEGACY_AMINO_JSON),sL=a?.[0]?.signature?Z(a[0].signature):Uint8Array.from([]),Ly=T.fromPartial({authInfoBytes:rL,bodyBytes:eL,signatures:[sL]}),yy=T.encode(Ly).finish(),_y=await w.getRPCUrl(w.Chain.THORChain),my=await g(_y),{transactionHash:Ty}=await my.broadcastTx(yy);return Ty};return{...i,address:E,deposit:(H)=>OL(H),signMessage:vL,transfer:(H)=>OL(H)}}case w.Chain.Near:{let{getNearToolbox:_}=await import("@swapkit/toolboxes/near"),T=await f({chain:L,derivationPath:y}),m=await T.getAddress();return{...await _({signer:T}),address:m}}case w.Chain.Ripple:{let{getRippleToolbox:_}=await import("@swapkit/toolboxes/ripple"),T=await f({chain:L,derivationPath:y}),m=T.getAddress();return{...await _({signer:T}),address:m}}case w.Chain.Tron:{let{createTronToolbox:_}=await import("@swapkit/toolboxes/tron"),T=await f({chain:L,derivationPath:y}),m=await P({chain:L,ledgerClient:T});return{...await _({signer:T}),address:m}}default:throw new w.SwapKitError("wallet_ledger_chain_not_supported",{chain:L})}}
3
3
 
4
- //# debugId=8E2C81C36A2ACE6C64756E2164756E21
4
+ //# debugId=2BA7E40EF3E7B8A664756E2164756E21
5
5
  //# sourceMappingURL=index.cjs.map