@swapkit/wallet-hardware 6.2.0 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/THIRD_PARTY_LICENSES.md +4 -4
  2. package/dist/{chunk-rydhx4se.js → chunk-0k1b2ddn.js} +3 -3
  3. package/dist/{chunk-rydhx4se.js.map → chunk-0k1b2ddn.js.map} +2 -2
  4. package/dist/{chunk-j3n6fbqh.js → chunk-2tzsz8f3.js} +4 -4
  5. package/dist/{chunk-j3n6fbqh.js.map → chunk-2tzsz8f3.js.map} +1 -1
  6. package/dist/{chunk-2jddegc1.js → chunk-410fpx61.js} +4 -4
  7. package/dist/{chunk-2jddegc1.js.map → chunk-410fpx61.js.map} +1 -1
  8. package/dist/chunk-8mkdjmw2.js +4 -0
  9. package/dist/chunk-8mkdjmw2.js.map +10 -0
  10. package/dist/{chunk-7kwtpk70.js → chunk-96p7njae.js} +3 -3
  11. package/dist/{chunk-7kwtpk70.js.map → chunk-96p7njae.js.map} +2 -2
  12. package/dist/{chunk-g6rrzxcx.js → chunk-97nsp4z6.js} +3 -3
  13. package/dist/{chunk-g6rrzxcx.js.map → chunk-97nsp4z6.js.map} +1 -1
  14. package/dist/{chunk-kaw35ae2.js → chunk-9a9gn4pb.js} +3 -3
  15. package/dist/{chunk-a47dwwv6.js.map → chunk-9a9gn4pb.js.map} +1 -1
  16. package/dist/chunk-a39rm9nv.js +4 -0
  17. package/dist/{chunk-42xrtarj.js.map → chunk-a39rm9nv.js.map} +5 -5
  18. package/dist/chunk-c8mwf9cn.js +4 -0
  19. package/dist/{chunk-kaw35ae2.js.map → chunk-c8mwf9cn.js.map} +1 -1
  20. package/dist/{chunk-b7htg03t.js → chunk-dhhmywmb.js} +4 -4
  21. package/dist/{chunk-b7htg03t.js.map → chunk-dhhmywmb.js.map} +1 -1
  22. package/dist/{chunk-x28a37pz.js → chunk-dsa641rq.js} +3 -3
  23. package/dist/{chunk-x28a37pz.js.map → chunk-dsa641rq.js.map} +2 -2
  24. package/dist/{chunk-7rbvcts9.js → chunk-grj9nvte.js} +3 -3
  25. package/dist/{chunk-7rbvcts9.js.map → chunk-grj9nvte.js.map} +1 -1
  26. package/dist/{chunk-tecse0bj.js → chunk-napm4102.js} +3 -3
  27. package/dist/{chunk-tecse0bj.js.map → chunk-napm4102.js.map} +1 -1
  28. package/dist/{chunk-a47dwwv6.js → chunk-nb08g045.js} +3 -3
  29. package/dist/{chunk-sp3dq5hr.js.map → chunk-nb08g045.js.map} +1 -1
  30. package/dist/chunk-npe2r2ge.js +4 -0
  31. package/dist/{chunk-tm5gk51g.js.map → chunk-npe2r2ge.js.map} +1 -1
  32. package/dist/chunk-p9mwkgye.js +4 -0
  33. package/dist/{chunk-s2akss77.js.map → chunk-p9mwkgye.js.map} +14 -12
  34. package/dist/{chunk-b093ajcq.js → chunk-qjp8j8e5.js} +3 -3
  35. package/dist/{chunk-b093ajcq.js.map → chunk-qjp8j8e5.js.map} +1 -1
  36. package/dist/{chunk-71kfnwdp.js → chunk-r1fk1sx9.js} +3 -3
  37. package/dist/{chunk-71kfnwdp.js.map → chunk-r1fk1sx9.js.map} +1 -1
  38. package/dist/{chunk-5xg0xc0g.js → chunk-ta7bqmy3.js} +3 -3
  39. package/dist/{chunk-5xg0xc0g.js.map → chunk-ta7bqmy3.js.map} +1 -1
  40. package/dist/{chunk-545s1tsc.js → chunk-tgvgr630.js} +3 -3
  41. package/dist/{chunk-545s1tsc.js.map → chunk-tgvgr630.js.map} +2 -2
  42. package/dist/{chunk-035dayv6.js → chunk-v8x9ptxs.js} +3 -3
  43. package/dist/{chunk-035dayv6.js.map → chunk-v8x9ptxs.js.map} +1 -1
  44. package/dist/{chunk-mzan0m09.js → chunk-wm89desc.js} +20 -20
  45. package/dist/{chunk-mzan0m09.js.map → chunk-wm89desc.js.map} +12 -10
  46. package/dist/{chunk-a6vcbcyd.js → chunk-wtyhjt5e.js} +3 -3
  47. package/dist/{chunk-a6vcbcyd.js.map → chunk-wtyhjt5e.js.map} +1 -1
  48. package/dist/{chunk-s5a5v0m1.js → chunk-xskdbz15.js} +3 -3
  49. package/dist/{chunk-s5a5v0m1.js.map → chunk-xskdbz15.js.map} +2 -2
  50. package/dist/{chunk-sbebfr50.js → chunk-ytjqb1sd.js} +3 -3
  51. package/dist/{chunk-sbebfr50.js.map → chunk-ytjqb1sd.js.map} +1 -1
  52. package/dist/{chunk-ys51wj1c.js → chunk-zbesf7sy.js} +3 -3
  53. package/dist/{chunk-ys51wj1c.js.map → chunk-zbesf7sy.js.map} +1 -1
  54. package/dist/keepkey/index.js +2 -2
  55. package/dist/keepkey/index.js.map +1 -1
  56. package/dist/ledger/index.cjs +28 -28
  57. package/dist/ledger/index.cjs.map +28 -24
  58. package/dist/ledger/index.js +2 -2
  59. package/dist/ledger/index.js.map +4 -4
  60. package/dist/trezor/index.cjs +2 -2
  61. package/dist/trezor/index.cjs.map +5 -4
  62. package/dist/trezor/index.js +2 -2
  63. package/dist/trezor/index.js.map +3 -3
  64. package/dist/types/ledger/clients/zcash.d.ts.map +1 -1
  65. package/dist/types/trezor/hypercoreSigner.d.ts +22 -0
  66. package/dist/types/trezor/hypercoreSigner.d.ts.map +1 -0
  67. package/dist/types/trezor/index.d.ts +2 -2
  68. package/dist/types/trezor/index.d.ts.map +1 -1
  69. package/package.json +12 -12
  70. package/src/ledger/clients/zcash.ts +16 -6
  71. package/src/ledger/index.ts +2 -2
  72. package/src/trezor/hypercoreSigner.ts +96 -0
  73. package/src/trezor/index.ts +72 -16
  74. package/dist/chunk-42xrtarj.js +0 -4
  75. package/dist/chunk-s2akss77.js +0 -4
  76. package/dist/chunk-sp3dq5hr.js +0 -4
  77. package/dist/chunk-tm5gk51g.js +0 -4
@@ -1,4 +1,4 @@
1
- import{Ka as C,La as f}from"../chunk-tecse0bj.js";import{ae as S}from"../chunk-kaw35ae2.js";import{KeepKeySdk as Tz}from"@keepkey/keepkey-sdk";import{Chain as z,filterSupportedChains as fz,NetworkDerivationPath as Az,SKConfig as r,SwapKitError as Sz,WalletOption as Yz}from"@swapkit/helpers";import{createWallet as yz,getWalletSupportedChains as kz}from"@swapkit/wallet-core";import{Chain as s,DerivationPath as jz,derivationPathToString as Bz,GAIAConfig as n,getRPCUrl as Lz}from"@swapkit/helpers";async function a({sdk:Q,derivationPath:J}){let{DEFAULT_COSMOS_FEE_MAINNET:X,getCosmosToolbox:F,getFeeRateFromSwapKit:B,createStargateClient:$}=await import("@swapkit/toolboxes/cosmos"),D=J?Bz(J):`${jz.GAIA}/0`,{address:j}=await Q.address.cosmosGetAddress({address_n:f(D)}),L=await F(s.Cosmos);if(X.amount[0])X.amount[0].amount=String(await B(n.chainId,500));return{...L,address:j,transfer:async({assetValue:R,recipient:q,memo:M})=>{let I=R.getBaseValue("string"),V=await L.getAccount(j),b=await Q.cosmos.cosmosSignAmino({signDoc:{account_number:V?.accountNumber.toString()??"",chain_id:n.chainId,fee:X,memo:M||"",msgs:[{type:"cosmos-sdk/MsgSend",value:{amount:[{amount:I,denom:"uatom"}],from_address:j,to_address:q}}],sequence:V?.sequence.toString()??""},signerAddress:j}),H=atob(b.serialized),T=new Uint8Array(H.length).map((U,W)=>H.charCodeAt(W)),A=await Lz(s.Cosmos);return(await(await $(A)).broadcastTx(T)).transactionHash}}}import{ChainToChainId as Wz,derivationPathToString as Gz,NetworkDerivationPath as Rz,SwapKitError as v}from"@swapkit/helpers";import{AbstractSigner as Uz}from"ethers";class u extends Uz{sdk;chain;derivationPath;address;provider;constructor({sdk:Q,chain:J,derivationPath:X,provider:F}){super();this.sdk=Q,this.chain=J,this.derivationPath=X||Rz.ETH,this.address="",this.provider=F}signTypedData=async(Q,J,X,F)=>{let{buildEIP712DomainType:B}=await import("@swapkit/toolboxes/evm"),{TypedDataEncoder:$}=await import("ethers"),{EIP712Domain:D,...j}=J,L=F??$.from(j).primaryType,_=B(Q),R=await this.getAddress(),q=await this.sdk.eth.ethSignTypedData({address:R,typedData:{domain:Q,message:X,primaryType:L,types:{EIP712Domain:_,...j}}});if(typeof q!=="string")throw new v("wallet_keepkey_method_not_supported",{method:"signTypedData"});return q.startsWith("0x")?q:`0x${q}`};getAddress=async()=>{if(this.address)return this.address;let{address:Q}=await this.sdk.address.ethereumGetAddress({address_n:f(Gz(this.derivationPath))});return this.address=Q,Q};signMessage=(Q)=>this.sdk.eth.ethSign({address:this.address,message:Q});signTransaction=async({to:Q,value:J,gasLimit:X,nonce:F,data:B,maxFeePerGas:$,maxPriorityFeePerGas:D,gasPrice:j})=>{if(!Q)throw new v("wallet_keepkey_invalid_params",{reason:"Missing to address"});if(!X)throw new v("wallet_keepkey_invalid_params",{reason:"Missing gasLimit"});if(!B)throw new v("wallet_keepkey_invalid_params",{reason:"Missing data"});let L=!!(($||D)&&!j);if(L&&!$)throw new v("wallet_keepkey_invalid_params",{reason:"Missing maxFeePerGas"});if(L&&!D)throw new v("wallet_keepkey_invalid_params",{reason:"Missing maxPriorityFeePerGas"});if(!(L||j))throw new v("wallet_keepkey_invalid_params",{reason:"Missing gasPrice"});let{toHexString:_}=await import("@swapkit/toolboxes/evm"),R=F?BigInt(F):BigInt(await this.provider.getTransactionCount(await this.getAddress(),"pending")),q={addressNList:[2147483692,2147483708,2147483648,0,0],chainId:_(BigInt(Wz[this.chain])),data:B,from:this.address,gas:_(BigInt(X)),nonce:_(R),to:Q.toString(),value:_(BigInt(J||0)),...L&&{maxFeePerGas:_(BigInt($?.toString()||"0")),maxPriorityFeePerGas:_(BigInt(D?.toString()||"0"))},...!L&&{gasPrice:_(BigInt(j?.toString()||"0"))}};return(await this.sdk.eth.ethSignTransaction(q)).serialized};sendTransaction=async(Q)=>{if(!this.provider)throw new v("wallet_keepkey_no_provider");let J=await this.signTransaction(Q);return await this.provider.broadcastTransaction(J)};connect=(Q)=>new u({chain:this.chain,derivationPath:this.derivationPath,provider:Q,sdk:this.sdk})}import{Chain as c,DerivationPath as _z,derivationPathToString as Nz,getRPCUrl as i,MAYAConfig as Oz,SwapKitError as Dz}from"@swapkit/helpers";async function t({sdk:Q,derivationPath:J}){let{createStargateClient:X,getCosmosToolbox:F}=await import("@swapkit/toolboxes/cosmos"),B=await F(c.Maya),$=J?Nz(J):`${_z.MAYA}/0`,{address:D}=await Q.address.mayachainGetAddress({address_n:f($)}),j=async({assetValue:R,recipient:q,sender:M,memo:I})=>{let V=await import("@cosmjs/amino"),b=V.makeSignDoc??V.default?.makeSignDoc,{getDenomWithChain:H}=await import("@swapkit/toolboxes/cosmos"),T=await B.getAccount(M);if(!T)throw new Dz("wallet_keepkey_account_not_found");let{accountNumber:A,sequence:Z=0}=T,Y=R.getBaseValue("string"),U=q&&q!=="",W=U?{type:"mayachain/MsgSend",value:{amount:[{amount:Y,denom:R.symbol.toLowerCase()}],from_address:M,to_address:q}}:{type:"mayachain/MsgDeposit",value:{coins:[{amount:Y,asset:H(R)}],memo:I,signer:M}},O=b([W],{amount:[],gas:"500000000"},Oz.chainId,I,A?.toString(),Z),N=await(U?Q.mayachain.mayachainSignAminoTransfer:Q.mayachain.mayachainSignAminoDeposit)({signDoc:O,signerAddress:M}),G=atob(N.serialized);return new Uint8Array(G.length).map((K,w)=>G.charCodeAt(w))};return{...B,address:D,deposit:async({assetValue:R,memo:q})=>{let M=await i(c.Maya),I=await X(M),V=await j({assetValue:R,memo:q,sender:D}),{transactionHash:b}=await I.broadcastTx(V);return b},transfer:async({assetValue:R,recipient:q,memo:M})=>{let I=await i(c.Maya),V=await X(I),b=await j({assetValue:R,memo:M,recipient:q,sender:D}),{transactionHash:H}=await V.broadcastTx(b);return H}}}import{Chain as l,DerivationPath as Hz,derivationPathToString as Mz,getRPCUrl as e,SwapKitError as Vz,THORConfig as Fz}from"@swapkit/helpers";async function zz({sdk:Q,derivationPath:J}){let X=await import("@cosmjs/amino"),F=X.makeSignDoc??X.default?.makeSignDoc,{buildAminoMsg:B,getDefaultChainFee:$,createStargateClient:D,getCosmosToolbox:j}=await import("@swapkit/toolboxes/cosmos"),L=await j(l.THORChain),_=J?Mz(J):`${Hz.THOR}/0`,{address:R}=await Q.address.thorchainGetAddress({address_n:f(_)}),q=async({assetValue:V,recipient:b,sender:H,memo:T})=>{let A=await L.getAccount(H);if(!A)throw new Vz("wallet_keepkey_account_not_found");let{accountNumber:Z,sequence:Y=0}=A,U=b&&b!=="",W=B({assetValue:V,memo:T,recipient:b,sender:H}),O=F([W],$(l.THORChain),Fz.chainId,T,Z?.toString(),Y),E=U?await Q.thorchain.thorchainSignAminoTransfer({signDoc:O,signerAddress:H}):await Q.thorchain.thorchainSignAminoDeposit({signDoc:O,signerAddress:H}),N=atob(E.serialized);return new Uint8Array(N.length).map((G,K)=>N.charCodeAt(K))};return{...L,address:R,deposit:async({assetValue:V,memo:b})=>{let H=await e(l.THORChain),T=await D(H),A=await q({assetValue:V,memo:b,sender:R}),{transactionHash:Z}=await T.broadcastTx(A);return Z},transfer:async({assetValue:V,recipient:b,memo:H})=>{let T=await e(l.THORChain),A=await D(T),Z=await q({assetValue:V,memo:H,recipient:b,sender:R}),{transactionHash:Y}=await A.broadcastTx(Z);return Y}}}import{Chain as x,DerivationPath as Jz,derivationPathToString as m,FeeOption as Qz,SwapKitError as h,UTXOScriptType as Xz}from"@swapkit/helpers";import{assertDerivationIndex as d,createHDWalletHelpers as bz,getNetworkForChain as Ez,getUTXOAccountIndexFromPath as Zz,getUTXOAccountPath as Kz,getUTXOAddressPath as wz,getUtxoApi as Iz,stripToCashAddress as o}from"@swapkit/toolboxes/utxo";async function $z({sdk:Q,chain:J,derivationPath:X}){let{getUtxoToolbox:F}=await import("@swapkit/toolboxes/utxo"),B=[x.Bitcoin,x.Litecoin].includes(J)?"p2wpkh":"p2pkh",$=await F(J,{scriptType:B==="p2wpkh"?Xz.P2WPKH:Xz.P2PKH}),D=X?m(X):`${Jz[J]}/0`,j={address_n:f(D),coin:C[J],script_type:B},L=(await Q.address.utxoGetAddress(j)).address,_=Ez(J),R=async(Z,Y,U="")=>{let W=[];for(let N=0;N<Z.outputsLength;N++){let G=Z.getOutput(N),K=Z.getOutputAddress(N,_),w=Number(G.amount);if(K===L)W.push({addressNList:j.address_n,addressType:"change",amount:w,isChange:!0,scriptType:B});else if(K){let y=J===x.BitcoinCash?o(K):K;if(y)W.push({address:y,addressType:"spend",amount:w})}}let O=(N)=>{return N.filter((G)=>G!==null&&typeof G==="object"&&Object.keys(G).length>0)};return(await Q.utxo.utxoSignTransaction({coin:C[J],inputs:Y,opReturnData:U,outputs:O(W)})).serializedTx?.toString()},q=async({recipient:Z,feeOptionKey:Y,feeRate:U,memo:W,...O})=>{if(!L)throw new h("wallet_keepkey_invalid_params",{reason:"From address must be provided"});if(!Z)throw new h("wallet_keepkey_invalid_params",{reason:"Recipient address must be provided"});let E=J===x.BitcoinCash?$.buildTx:$.createTransaction,{tx:N,inputs:G}=await E({...O,feeRate:U||(await $.getFeeRates())[Y||Qz.Fast],fetchTxHex:!0,memo:W,recipient:Z,sender:L}),K=G.map(({value:y,index:k,hash:P,txHex:g})=>({addressNList:j.address_n,amount:y.toString(),hex:g||"",scriptType:B,txid:P,vout:k})),w=await R(N,K,W);return $.broadcastTx(w)},M=async(Z,Y,U="")=>{let W=f(X?m(X.slice(0,3)):Jz[J]),O=[];for(let G=0;G<Z.outputsLength;G++){let K=Z.getOutput(G),w=Z.getOutputAddress(G,_),y=Number(K.amount);if(w===L)O.push({addressNList:j.address_n,addressType:"change",amount:y,isChange:!0,scriptType:B});else if(w){let k=J===x.BitcoinCash?o(w):w;if(k)O.push({address:k,addressType:"spend",amount:y})}}let E=Y.map(({hash:G,index:K,value:w,txHex:y,derivationIndex:k,isChange:P})=>{let g=P?1:0;return{addressNList:[...W,g,k],amount:w.toString(),hex:y||"",scriptType:B,txid:G,vout:K}});return(await Q.utxo.utxoSignTransaction({coin:C[J],inputs:E,opReturnData:U,outputs:O.filter((G)=>G!==null&&typeof G==="object"&&Object.keys(G).length>0)})).serializedTx?.toString()||""},I=async({utxos:Z,recipient:Y,assetValue:U,memo:W,feeRate:O,feeOptionKey:E})=>{let N=O||(await $.getFeeRates())[E||Qz.Fast],G=J===x.BitcoinCash?$.buildTx:$.createTransaction,{tx:K,inputs:w}=await G({assetValue:U,feeRate:N,fetchTxHex:!0,memo:W,recipient:Y,sender:L}),y=w.map((P)=>{let g=Z.find((p)=>p.hash===P.hash&&p.index===P.index);return{...P,derivationIndex:g?.derivationIndex??0,isChange:g?.isChange??!1}}),k=await M(K,y,W);return $.broadcastTx(k)};async function V({accountIndex:Z}={}){try{let Y=Kz({accountIndex:Z,chain:J,derivationPath:X}),U=m(Y),W={address_n:f(U),coin:C[J],script_type:B,showDisplay:!1,symbol:J.toUpperCase()},O=await Q.system.info.getPublicKey(W);return{accountIndex:Zz(Y),path:U,xpub:O.xpub}}catch(Y){throw new h("wallet_keepkey_failed_to_get_public_key",{chain:J,error:Y instanceof Error?Y.message:"Unknown error"})}}function b(Z={}){return V(Z)}async function H({accountIndex:Z,index:Y,change:U=!1}){try{d("index",Y);let W=wz({accountIndex:Z,chain:J,change:U,derivationPath:X,index:Y}),O=m(W),E=await Q.address.utxoGetAddress({address_n:f(O),coin:C[J],script_type:B}),N=E.address;if(J===x.BitcoinCash)N=o(E.address);return{accountIndex:Zz(W),address:N,change:U,index:Y,path:O,pubkey:""}}catch{return}}async function T({accountIndex:Z,count:Y,startIndex:U=0,change:W=!1}){return d("count",Y),d("startIndex",U),(await Promise.all(Array.from({length:Y},(E,N)=>H({accountIndex:Z,change:W,index:U+N})))).filter((E)=>!!E)}let A=bz({chain:J,deriveAddress:H,getBalance:$.getBalance,getUtxos:(Z)=>Iz(J).getUtxos({address:Z,fetchTxHex:!0})});return{...$,...A,address:L,deriveAddressAtIndex:H,deriveAddresses:T,getExtendedPublicKey:b,getExtendedPublicKeyInfo:V,signTransaction:R,signTransactionWithMultipleInputs:M,transfer:q,transferFromMultipleAddresses:I}}var vz=yz({connect:({addChain:Q,supportedChains:J,walletType:X})=>async function(B,$){let D=fz({chains:B,supportedChains:J,walletType:X}),j=r.get("integrations").keepKey;if(!j)throw Error("KeepKey config not found");let L=r.get("apiKeys").keepKey||"1234";await qz();let _={apiKey:L,pairingInfo:j},R=await Tz.create(_);if(_.apiKey&&_.apiKey!==L)r.setApiKey("keepKey",_.apiKey);return await Promise.all(D.map(async(q)=>{let M=await Pz({chain:q,derivationPath:$?.[q]||Az[q],sdk:R}),I=await M.getAddress()||"";Q({...M,address:I,chain:q,walletType:Yz.KEEPKEY})})),!0},name:"connectKeepkey",signingSupport:{[z.Arbitrum]:{direct:!0,typedData:!0},[z.Avalanche]:{direct:!0,typedData:!0},[z.Base]:{direct:!0,typedData:!0},[z.Berachain]:{direct:!0,typedData:!0},[z.BinanceSmartChain]:{direct:!0,typedData:!0},[z.Ethereum]:{direct:!0,typedData:!0},[z.Gnosis]:{direct:!0,typedData:!0},[z.Monad]:{direct:!0,typedData:!0},[z.Optimism]:{direct:!0,typedData:!0},[z.Polygon]:{direct:!0,typedData:!0},[z.Ripple]:{direct:!0},[z.XLayer]:{direct:!0,typedData:!0}},supportedChains:[z.Arbitrum,z.Avalanche,z.Base,z.Berachain,z.BinanceSmartChain,z.Bitcoin,z.BitcoinCash,z.Cosmos,z.Dogecoin,z.Dash,z.Ethereum,z.Gnosis,z.Litecoin,z.Monad,z.Ripple,z.Optimism,z.Polygon,z.THORChain,z.Maya,z.XLayer],walletType:Yz.KEEPKEY}),jJ=kz(vz);async function Pz({sdk:Q,chain:J,derivationPath:X}){let{getProvider:F,getEvmToolboxAsync:B}=await import("@swapkit/toolboxes/evm");switch(J){case z.BinanceSmartChain:case z.Arbitrum:case z.Berachain:case z.Optimism:case z.Polygon:case z.Avalanche:case z.Base:case z.Ethereum:case z.Gnosis:case z.Monad:case z.XLayer:{let $=await F(J),D=new u({chain:J,derivationPath:X,provider:$,sdk:Q});return await B(J,{provider:$,signer:D})}case z.Cosmos:return a({derivationPath:X,sdk:Q});case z.THORChain:return zz({derivationPath:X,sdk:Q});case z.Maya:return t({derivationPath:X,sdk:Q});case z.Bitcoin:case z.BitcoinCash:case z.Dash:case z.Dogecoin:case z.Litecoin:return $z({chain:J,derivationPath:X,sdk:Q});case z.Ripple:{let{rippleWalletMethods:$}=await import("../chunk-5xg0xc0g.js");return $({derivationPath:X,sdk:Q})}default:throw new Sz("wallet_keepkey_chain_not_supported",{chain:J})}}async function qz(Q=0){if(Q>=3)alert("KeepKey desktop is required for keepkey-sdk, please go to https://keepkey.com/get-started");if(!await xz())window.location.assign("keepkey://launch"),await new Promise((X)=>setTimeout(X,30000)),await qz(Q+1)}async function xz(Q="http://localhost:1646/spec/swagger.json"){try{return(await fetch(Q)).status===200}catch{return!1}}export{vz as keepkeyWallet,jJ as KEEPKEY_SUPPORTED_CHAINS};
1
+ import{Ma as C,Na as f}from"../chunk-napm4102.js";import{ce as S}from"../chunk-9a9gn4pb.js";import{KeepKeySdk as Tz}from"@keepkey/keepkey-sdk";import{Chain as z,filterSupportedChains as fz,NetworkDerivationPath as Az,SKConfig as r,SwapKitError as Sz,WalletOption as Yz}from"@swapkit/helpers";import{createWallet as yz,getWalletSupportedChains as kz}from"@swapkit/wallet-core";import{Chain as s,DerivationPath as jz,derivationPathToString as Bz,GAIAConfig as n,getRPCUrl as Lz}from"@swapkit/helpers";async function a({sdk:Q,derivationPath:J}){let{DEFAULT_COSMOS_FEE_MAINNET:X,getCosmosToolbox:F,getFeeRateFromSwapKit:B,createStargateClient:$}=await import("@swapkit/toolboxes/cosmos"),D=J?Bz(J):`${jz.GAIA}/0`,{address:j}=await Q.address.cosmosGetAddress({address_n:f(D)}),L=await F(s.Cosmos);if(X.amount[0])X.amount[0].amount=String(await B(n.chainId,500));return{...L,address:j,transfer:async({assetValue:R,recipient:q,memo:M})=>{let I=R.getBaseValue("string"),V=await L.getAccount(j),b=await Q.cosmos.cosmosSignAmino({signDoc:{account_number:V?.accountNumber.toString()??"",chain_id:n.chainId,fee:X,memo:M||"",msgs:[{type:"cosmos-sdk/MsgSend",value:{amount:[{amount:I,denom:"uatom"}],from_address:j,to_address:q}}],sequence:V?.sequence.toString()??""},signerAddress:j}),H=atob(b.serialized),T=new Uint8Array(H.length).map((U,W)=>H.charCodeAt(W)),A=await Lz(s.Cosmos);return(await(await $(A)).broadcastTx(T)).transactionHash}}}import{ChainToChainId as Wz,derivationPathToString as Gz,NetworkDerivationPath as Rz,SwapKitError as v}from"@swapkit/helpers";import{AbstractSigner as Uz}from"ethers";class u extends Uz{sdk;chain;derivationPath;address;provider;constructor({sdk:Q,chain:J,derivationPath:X,provider:F}){super();this.sdk=Q,this.chain=J,this.derivationPath=X||Rz.ETH,this.address="",this.provider=F}signTypedData=async(Q,J,X,F)=>{let{buildEIP712DomainType:B}=await import("@swapkit/toolboxes/evm"),{TypedDataEncoder:$}=await import("ethers"),{EIP712Domain:D,...j}=J,L=F??$.from(j).primaryType,_=B(Q),R=await this.getAddress(),q=await this.sdk.eth.ethSignTypedData({address:R,typedData:{domain:Q,message:X,primaryType:L,types:{EIP712Domain:_,...j}}});if(typeof q!=="string")throw new v("wallet_keepkey_method_not_supported",{method:"signTypedData"});return q.startsWith("0x")?q:`0x${q}`};getAddress=async()=>{if(this.address)return this.address;let{address:Q}=await this.sdk.address.ethereumGetAddress({address_n:f(Gz(this.derivationPath))});return this.address=Q,Q};signMessage=(Q)=>this.sdk.eth.ethSign({address:this.address,message:Q});signTransaction=async({to:Q,value:J,gasLimit:X,nonce:F,data:B,maxFeePerGas:$,maxPriorityFeePerGas:D,gasPrice:j})=>{if(!Q)throw new v("wallet_keepkey_invalid_params",{reason:"Missing to address"});if(!X)throw new v("wallet_keepkey_invalid_params",{reason:"Missing gasLimit"});if(!B)throw new v("wallet_keepkey_invalid_params",{reason:"Missing data"});let L=!!(($||D)&&!j);if(L&&!$)throw new v("wallet_keepkey_invalid_params",{reason:"Missing maxFeePerGas"});if(L&&!D)throw new v("wallet_keepkey_invalid_params",{reason:"Missing maxPriorityFeePerGas"});if(!(L||j))throw new v("wallet_keepkey_invalid_params",{reason:"Missing gasPrice"});let{toHexString:_}=await import("@swapkit/toolboxes/evm"),R=F?BigInt(F):BigInt(await this.provider.getTransactionCount(await this.getAddress(),"pending")),q={addressNList:[2147483692,2147483708,2147483648,0,0],chainId:_(BigInt(Wz[this.chain])),data:B,from:this.address,gas:_(BigInt(X)),nonce:_(R),to:Q.toString(),value:_(BigInt(J||0)),...L&&{maxFeePerGas:_(BigInt($?.toString()||"0")),maxPriorityFeePerGas:_(BigInt(D?.toString()||"0"))},...!L&&{gasPrice:_(BigInt(j?.toString()||"0"))}};return(await this.sdk.eth.ethSignTransaction(q)).serialized};sendTransaction=async(Q)=>{if(!this.provider)throw new v("wallet_keepkey_no_provider");let J=await this.signTransaction(Q);return await this.provider.broadcastTransaction(J)};connect=(Q)=>new u({chain:this.chain,derivationPath:this.derivationPath,provider:Q,sdk:this.sdk})}import{Chain as c,DerivationPath as _z,derivationPathToString as Nz,getRPCUrl as i,MAYAConfig as Oz,SwapKitError as Dz}from"@swapkit/helpers";async function t({sdk:Q,derivationPath:J}){let{createStargateClient:X,getCosmosToolbox:F}=await import("@swapkit/toolboxes/cosmos"),B=await F(c.Maya),$=J?Nz(J):`${_z.MAYA}/0`,{address:D}=await Q.address.mayachainGetAddress({address_n:f($)}),j=async({assetValue:R,recipient:q,sender:M,memo:I})=>{let V=await import("@cosmjs/amino"),b=V.makeSignDoc??V.default?.makeSignDoc,{getDenomWithChain:H}=await import("@swapkit/toolboxes/cosmos"),T=await B.getAccount(M);if(!T)throw new Dz("wallet_keepkey_account_not_found");let{accountNumber:A,sequence:Z=0}=T,Y=R.getBaseValue("string"),U=q&&q!=="",W=U?{type:"mayachain/MsgSend",value:{amount:[{amount:Y,denom:R.symbol.toLowerCase()}],from_address:M,to_address:q}}:{type:"mayachain/MsgDeposit",value:{coins:[{amount:Y,asset:H(R)}],memo:I,signer:M}},O=b([W],{amount:[],gas:"500000000"},Oz.chainId,I,A?.toString(),Z),N=await(U?Q.mayachain.mayachainSignAminoTransfer:Q.mayachain.mayachainSignAminoDeposit)({signDoc:O,signerAddress:M}),G=atob(N.serialized);return new Uint8Array(G.length).map((K,w)=>G.charCodeAt(w))};return{...B,address:D,deposit:async({assetValue:R,memo:q})=>{let M=await i(c.Maya),I=await X(M),V=await j({assetValue:R,memo:q,sender:D}),{transactionHash:b}=await I.broadcastTx(V);return b},transfer:async({assetValue:R,recipient:q,memo:M})=>{let I=await i(c.Maya),V=await X(I),b=await j({assetValue:R,memo:M,recipient:q,sender:D}),{transactionHash:H}=await V.broadcastTx(b);return H}}}import{Chain as l,DerivationPath as Hz,derivationPathToString as Mz,getRPCUrl as e,SwapKitError as Vz,THORConfig as Fz}from"@swapkit/helpers";async function zz({sdk:Q,derivationPath:J}){let X=await import("@cosmjs/amino"),F=X.makeSignDoc??X.default?.makeSignDoc,{buildAminoMsg:B,getDefaultChainFee:$,createStargateClient:D,getCosmosToolbox:j}=await import("@swapkit/toolboxes/cosmos"),L=await j(l.THORChain),_=J?Mz(J):`${Hz.THOR}/0`,{address:R}=await Q.address.thorchainGetAddress({address_n:f(_)}),q=async({assetValue:V,recipient:b,sender:H,memo:T})=>{let A=await L.getAccount(H);if(!A)throw new Vz("wallet_keepkey_account_not_found");let{accountNumber:Z,sequence:Y=0}=A,U=b&&b!=="",W=B({assetValue:V,memo:T,recipient:b,sender:H}),O=F([W],$(l.THORChain),Fz.chainId,T,Z?.toString(),Y),E=U?await Q.thorchain.thorchainSignAminoTransfer({signDoc:O,signerAddress:H}):await Q.thorchain.thorchainSignAminoDeposit({signDoc:O,signerAddress:H}),N=atob(E.serialized);return new Uint8Array(N.length).map((G,K)=>N.charCodeAt(K))};return{...L,address:R,deposit:async({assetValue:V,memo:b})=>{let H=await e(l.THORChain),T=await D(H),A=await q({assetValue:V,memo:b,sender:R}),{transactionHash:Z}=await T.broadcastTx(A);return Z},transfer:async({assetValue:V,recipient:b,memo:H})=>{let T=await e(l.THORChain),A=await D(T),Z=await q({assetValue:V,memo:H,recipient:b,sender:R}),{transactionHash:Y}=await A.broadcastTx(Z);return Y}}}import{Chain as x,DerivationPath as Jz,derivationPathToString as m,FeeOption as Qz,SwapKitError as h,UTXOScriptType as Xz}from"@swapkit/helpers";import{assertDerivationIndex as d,createHDWalletHelpers as bz,getNetworkForChain as Ez,getUTXOAccountIndexFromPath as Zz,getUTXOAccountPath as Kz,getUTXOAddressPath as wz,getUtxoApi as Iz,stripToCashAddress as o}from"@swapkit/toolboxes/utxo";async function $z({sdk:Q,chain:J,derivationPath:X}){let{getUtxoToolbox:F}=await import("@swapkit/toolboxes/utxo"),B=[x.Bitcoin,x.Litecoin].includes(J)?"p2wpkh":"p2pkh",$=await F(J,{scriptType:B==="p2wpkh"?Xz.P2WPKH:Xz.P2PKH}),D=X?m(X):`${Jz[J]}/0`,j={address_n:f(D),coin:C[J],script_type:B},L=(await Q.address.utxoGetAddress(j)).address,_=Ez(J),R=async(Z,Y,U="")=>{let W=[];for(let N=0;N<Z.outputsLength;N++){let G=Z.getOutput(N),K=Z.getOutputAddress(N,_),w=Number(G.amount);if(K===L)W.push({addressNList:j.address_n,addressType:"change",amount:w,isChange:!0,scriptType:B});else if(K){let y=J===x.BitcoinCash?o(K):K;if(y)W.push({address:y,addressType:"spend",amount:w})}}let O=(N)=>{return N.filter((G)=>G!==null&&typeof G==="object"&&Object.keys(G).length>0)};return(await Q.utxo.utxoSignTransaction({coin:C[J],inputs:Y,opReturnData:U,outputs:O(W)})).serializedTx?.toString()},q=async({recipient:Z,feeOptionKey:Y,feeRate:U,memo:W,...O})=>{if(!L)throw new h("wallet_keepkey_invalid_params",{reason:"From address must be provided"});if(!Z)throw new h("wallet_keepkey_invalid_params",{reason:"Recipient address must be provided"});let E=J===x.BitcoinCash?$.buildTx:$.createTransaction,{tx:N,inputs:G}=await E({...O,feeRate:U||(await $.getFeeRates())[Y||Qz.Fast],fetchTxHex:!0,memo:W,recipient:Z,sender:L}),K=G.map(({value:y,index:k,hash:P,txHex:g})=>({addressNList:j.address_n,amount:y.toString(),hex:g||"",scriptType:B,txid:P,vout:k})),w=await R(N,K,W);return $.broadcastTx(w)},M=async(Z,Y,U="")=>{let W=f(X?m(X.slice(0,3)):Jz[J]),O=[];for(let G=0;G<Z.outputsLength;G++){let K=Z.getOutput(G),w=Z.getOutputAddress(G,_),y=Number(K.amount);if(w===L)O.push({addressNList:j.address_n,addressType:"change",amount:y,isChange:!0,scriptType:B});else if(w){let k=J===x.BitcoinCash?o(w):w;if(k)O.push({address:k,addressType:"spend",amount:y})}}let E=Y.map(({hash:G,index:K,value:w,txHex:y,derivationIndex:k,isChange:P})=>{let g=P?1:0;return{addressNList:[...W,g,k],amount:w.toString(),hex:y||"",scriptType:B,txid:G,vout:K}});return(await Q.utxo.utxoSignTransaction({coin:C[J],inputs:E,opReturnData:U,outputs:O.filter((G)=>G!==null&&typeof G==="object"&&Object.keys(G).length>0)})).serializedTx?.toString()||""},I=async({utxos:Z,recipient:Y,assetValue:U,memo:W,feeRate:O,feeOptionKey:E})=>{let N=O||(await $.getFeeRates())[E||Qz.Fast],G=J===x.BitcoinCash?$.buildTx:$.createTransaction,{tx:K,inputs:w}=await G({assetValue:U,feeRate:N,fetchTxHex:!0,memo:W,recipient:Y,sender:L}),y=w.map((P)=>{let g=Z.find((p)=>p.hash===P.hash&&p.index===P.index);return{...P,derivationIndex:g?.derivationIndex??0,isChange:g?.isChange??!1}}),k=await M(K,y,W);return $.broadcastTx(k)};async function V({accountIndex:Z}={}){try{let Y=Kz({accountIndex:Z,chain:J,derivationPath:X}),U=m(Y),W={address_n:f(U),coin:C[J],script_type:B,showDisplay:!1,symbol:J.toUpperCase()},O=await Q.system.info.getPublicKey(W);return{accountIndex:Zz(Y),path:U,xpub:O.xpub}}catch(Y){throw new h("wallet_keepkey_failed_to_get_public_key",{chain:J,error:Y instanceof Error?Y.message:"Unknown error"})}}function b(Z={}){return V(Z)}async function H({accountIndex:Z,index:Y,change:U=!1}){try{d("index",Y);let W=wz({accountIndex:Z,chain:J,change:U,derivationPath:X,index:Y}),O=m(W),E=await Q.address.utxoGetAddress({address_n:f(O),coin:C[J],script_type:B}),N=E.address;if(J===x.BitcoinCash)N=o(E.address);return{accountIndex:Zz(W),address:N,change:U,index:Y,path:O,pubkey:""}}catch{return}}async function T({accountIndex:Z,count:Y,startIndex:U=0,change:W=!1}){return d("count",Y),d("startIndex",U),(await Promise.all(Array.from({length:Y},(E,N)=>H({accountIndex:Z,change:W,index:U+N})))).filter((E)=>!!E)}let A=bz({chain:J,deriveAddress:H,getBalance:$.getBalance,getUtxos:(Z)=>Iz(J).getUtxos({address:Z,fetchTxHex:!0})});return{...$,...A,address:L,deriveAddressAtIndex:H,deriveAddresses:T,getExtendedPublicKey:b,getExtendedPublicKeyInfo:V,signTransaction:R,signTransactionWithMultipleInputs:M,transfer:q,transferFromMultipleAddresses:I}}var vz=yz({connect:({addChain:Q,supportedChains:J,walletType:X})=>async function(B,$){let D=fz({chains:B,supportedChains:J,walletType:X}),j=r.get("integrations").keepKey;if(!j)throw Error("KeepKey config not found");let L=r.get("apiKeys").keepKey||"1234";await qz();let _={apiKey:L,pairingInfo:j},R=await Tz.create(_);if(_.apiKey&&_.apiKey!==L)r.setApiKey("keepKey",_.apiKey);return await Promise.all(D.map(async(q)=>{let M=await Pz({chain:q,derivationPath:$?.[q]||Az[q],sdk:R}),I=await M.getAddress()||"";Q({...M,address:I,chain:q,walletType:Yz.KEEPKEY})})),!0},name:"connectKeepkey",signingSupport:{[z.Arbitrum]:{direct:!0,typedData:!0},[z.Avalanche]:{direct:!0,typedData:!0},[z.Base]:{direct:!0,typedData:!0},[z.Berachain]:{direct:!0,typedData:!0},[z.BinanceSmartChain]:{direct:!0,typedData:!0},[z.Ethereum]:{direct:!0,typedData:!0},[z.Gnosis]:{direct:!0,typedData:!0},[z.Monad]:{direct:!0,typedData:!0},[z.Optimism]:{direct:!0,typedData:!0},[z.Polygon]:{direct:!0,typedData:!0},[z.Ripple]:{direct:!0},[z.XLayer]:{direct:!0,typedData:!0}},supportedChains:[z.Arbitrum,z.Avalanche,z.Base,z.Berachain,z.BinanceSmartChain,z.Bitcoin,z.BitcoinCash,z.Cosmos,z.Dogecoin,z.Dash,z.Ethereum,z.Gnosis,z.Litecoin,z.Monad,z.Ripple,z.Optimism,z.Polygon,z.THORChain,z.Maya,z.XLayer],walletType:Yz.KEEPKEY}),jJ=kz(vz);async function Pz({sdk:Q,chain:J,derivationPath:X}){let{getProvider:F,getEvmToolboxAsync:B}=await import("@swapkit/toolboxes/evm");switch(J){case z.BinanceSmartChain:case z.Arbitrum:case z.Berachain:case z.Optimism:case z.Polygon:case z.Avalanche:case z.Base:case z.Ethereum:case z.Gnosis:case z.Monad:case z.XLayer:{let $=await F(J),D=new u({chain:J,derivationPath:X,provider:$,sdk:Q});return await B(J,{provider:$,signer:D})}case z.Cosmos:return a({derivationPath:X,sdk:Q});case z.THORChain:return zz({derivationPath:X,sdk:Q});case z.Maya:return t({derivationPath:X,sdk:Q});case z.Bitcoin:case z.BitcoinCash:case z.Dash:case z.Dogecoin:case z.Litecoin:return $z({chain:J,derivationPath:X,sdk:Q});case z.Ripple:{let{rippleWalletMethods:$}=await import("../chunk-ta7bqmy3.js");return $({derivationPath:X,sdk:Q})}default:throw new Sz("wallet_keepkey_chain_not_supported",{chain:J})}}async function qz(Q=0){if(Q>=3)alert("KeepKey desktop is required for keepkey-sdk, please go to https://keepkey.com/get-started");if(!await xz())window.location.assign("keepkey://launch"),await new Promise((X)=>setTimeout(X,30000)),await qz(Q+1)}async function xz(Q="http://localhost:1646/spec/swagger.json"){try{return(await fetch(Q)).status===200}catch{return!1}}export{vz as keepkeyWallet,jJ as KEEPKEY_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=EB459CC8559B671564756E2164756E21
3
+ //# debugId=C6BFFC50E17FBACC64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -10,6 +10,6 @@
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 UTXOScriptType,\n} from \"@swapkit/helpers\";\nimport {\n assertDerivationIndex,\n createHDWalletHelpers,\n getNetworkForChain,\n getUTXOAccountIndexFromPath,\n getUTXOAccountPath,\n getUTXOAddressPath,\n getUtxoApi,\n stripToCashAddress,\n type UTXOToolboxes,\n} from \"@swapkit/toolboxes/utxo\";\nimport type { Transaction } from \"@swapkit/utxo-signer\";\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\ntype KeepKeyUTXOWalletMethods = Record<string, unknown> & { address: string };\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<KeepKeyUTXOWalletMethods> {\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const scriptType = [Chain.Bitcoin, Chain.Litecoin].includes(chain as typeof Chain.Bitcoin)\n ? (\"p2wpkh\" as const)\n : (\"p2pkh\" as const);\n // This might not work for BCH\n const toolbox = await getUtxoToolbox(chain, {\n scriptType: scriptType === \"p2wpkh\" ? UTXOScriptType.P2WPKH : UTXOScriptType.P2PKH,\n });\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 const network = getNetworkForChain(chain);\n\n const signTransaction = async (tx: Transaction, inputs: KeepKeyInputObject[], memo = \"\") => {\n const outputs: any[] = [];\n\n for (let i = 0; i < tx.outputsLength; i++) {\n const output = tx.getOutput(i);\n const address = tx.getOutputAddress(i, network);\n const value = Number(output.amount);\n\n if (address === walletAddress) {\n outputs.push({\n addressNList: addressInfo.address_n,\n addressType: \"change\",\n amount: value,\n isChange: true,\n scriptType,\n });\n } else if (address) {\n const outputAddress = chain === Chain.BitcoinCash ? stripToCashAddress(address) : address;\n\n if (outputAddress) {\n outputs.push({ address: outputAddress, addressType: \"spend\", amount: value });\n }\n }\n }\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 { tx, 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(tx, inputs, memo);\n return toolbox.broadcastTx(txHex);\n };\n\n const signTransactionWithMultipleInputs = async (\n tx: Transaction,\n inputs: Array<{\n hash: string;\n index: number;\n value: number;\n txHex?: string;\n derivationIndex: number;\n isChange: boolean;\n }>,\n memo = \"\",\n ) => {\n const accountAddressN = bip32ToAddressNList(\n derivationPath\n ? derivationPathToString(derivationPath.slice(0, 3) as unknown as DerivationPathArray)\n : DerivationPath[chain],\n );\n\n type KeepKeyOutput =\n | { addressNList: number[]; addressType: \"change\"; amount: number; isChange: true; scriptType: string }\n | { address: string; addressType: \"spend\"; amount: number };\n\n const outputs: KeepKeyOutput[] = [];\n for (let i = 0; i < tx.outputsLength; i++) {\n const output = tx.getOutput(i);\n const outputAddress = tx.getOutputAddress(i, network);\n const value = Number(output.amount);\n\n if (outputAddress === walletAddress) {\n outputs.push({\n addressNList: addressInfo.address_n,\n addressType: \"change\",\n amount: value,\n isChange: true,\n scriptType,\n });\n } else if (outputAddress) {\n const finalAddress = chain === Chain.BitcoinCash ? stripToCashAddress(outputAddress) : outputAddress;\n if (finalAddress) {\n outputs.push({ address: finalAddress, addressType: \"spend\", amount: value });\n }\n }\n }\n\n const keepKeyInputs = inputs.map(({ hash, index: inputIndex, value, txHex, derivationIndex, isChange }) => {\n const changePath = isChange ? 1 : 0;\n const inputAddressN = [...accountAddressN, changePath, derivationIndex];\n return {\n addressNList: inputAddressN,\n amount: value.toString(),\n hex: txHex || \"\",\n scriptType,\n txid: hash,\n vout: inputIndex,\n };\n });\n\n const responseSign = await sdk.utxo.utxoSignTransaction({\n coin: ChainToKeepKeyName[chain],\n inputs: keepKeyInputs,\n opReturnData: memo,\n outputs: outputs.filter((item) => item !== null && typeof item === \"object\" && Object.keys(item).length > 0),\n });\n\n return responseSign.serializedTx?.toString() || \"\";\n };\n\n const transferFromMultipleAddresses = async ({\n utxos,\n recipient,\n assetValue,\n memo,\n feeRate,\n feeOptionKey,\n }: {\n utxos: Array<{\n hash: string;\n index: number;\n value: number;\n txHex?: string;\n derivationIndex: number;\n isChange: boolean;\n address: string;\n }>;\n recipient: string;\n assetValue: { getBaseValue: (unit: string) => number; chain: string };\n memo?: string;\n feeRate?: number;\n feeOptionKey?: (typeof FeeOption)[keyof typeof FeeOption];\n }) => {\n const txFeeRate = feeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast];\n\n const createTxMethod =\n chain === Chain.BitcoinCash\n ? (toolbox as UTXOToolboxes[\"BCH\"]).buildTx\n : (toolbox as UTXOToolboxes[\"BTC\"]).createTransaction;\n\n const { tx, inputs: selectedInputs } = await createTxMethod({\n assetValue: assetValue as any,\n feeRate: txFeeRate,\n fetchTxHex: true,\n memo,\n recipient,\n sender: walletAddress,\n });\n\n const inputsWithDerivation = selectedInputs.map(\n (input: { hash: string; index: number; value: number; txHex?: string }) => {\n const utxoInfo = utxos.find((u) => u.hash === input.hash && u.index === input.index);\n return { ...input, derivationIndex: utxoInfo?.derivationIndex ?? 0, isChange: utxoInfo?.isChange ?? false };\n },\n );\n\n const signedTxHex = await signTransactionWithMultipleInputs(tx, inputsWithDerivation, memo);\n return toolbox.broadcastTx(signedTxHex);\n };\n\n async function getExtendedPublicKeyInfo({ accountIndex }: { accountIndex?: number } = {}) {\n try {\n const resolvedAccountPath = getUTXOAccountPath({ accountIndex, chain, derivationPath });\n const resolvedAccountPathString = derivationPathToString(resolvedAccountPath);\n const path = {\n address_n: bip32ToAddressNList(resolvedAccountPathString),\n coin: ChainToKeepKeyName[chain],\n script_type: scriptType,\n showDisplay: false,\n symbol: chain.toUpperCase(),\n };\n\n const responsePubkey = await sdk.system.info.getPublicKey(path);\n\n return {\n accountIndex: getUTXOAccountIndexFromPath(resolvedAccountPath),\n path: resolvedAccountPathString,\n xpub: responsePubkey.xpub,\n };\n } catch (error) {\n throw new SwapKitError(\"wallet_keepkey_failed_to_get_public_key\", {\n chain,\n error: error instanceof Error ? error.message : \"Unknown error\",\n });\n }\n }\n\n function getExtendedPublicKey(params: { accountIndex?: number } = {}) {\n return getExtendedPublicKeyInfo(params);\n }\n\n async function deriveAddressAtIndex({\n accountIndex,\n index,\n change = false,\n }: {\n accountIndex?: number;\n index: number;\n change?: boolean;\n }) {\n try {\n assertDerivationIndex(\"index\", index);\n const fullPath = getUTXOAddressPath({ accountIndex, chain, change, derivationPath, index });\n const fullPathString = derivationPathToString(fullPath);\n\n const result = await sdk.address.utxoGetAddress({\n address_n: bip32ToAddressNList(fullPathString),\n coin: ChainToKeepKeyName[chain],\n script_type: scriptType,\n });\n\n let finalAddress = result.address;\n if (chain === Chain.BitcoinCash) {\n finalAddress = stripToCashAddress(result.address);\n }\n\n return {\n accountIndex: getUTXOAccountIndexFromPath(fullPath),\n address: finalAddress,\n change,\n index,\n path: fullPathString,\n pubkey: \"\",\n };\n } catch {\n return undefined;\n }\n }\n\n async function deriveAddresses({\n accountIndex,\n count,\n startIndex = 0,\n change = false,\n }: {\n accountIndex?: number;\n count: number;\n startIndex?: number;\n change?: boolean;\n }) {\n assertDerivationIndex(\"count\", count);\n assertDerivationIndex(\"startIndex\", startIndex);\n\n const addresses = await Promise.all(\n Array.from({ length: count }, (_, i) => deriveAddressAtIndex({ accountIndex, change, index: startIndex + i })),\n );\n\n return addresses.filter((address) => !!address);\n }\n\n const hdHelpers = createHDWalletHelpers({\n chain,\n deriveAddress: deriveAddressAtIndex,\n getBalance: toolbox.getBalance,\n getUtxos: (address: string) => getUtxoApi(chain).getUtxos({ address, fetchTxHex: true }),\n });\n\n return {\n ...toolbox,\n ...hdHelpers,\n address: walletAddress,\n deriveAddressAtIndex,\n deriveAddresses,\n getExtendedPublicKey,\n getExtendedPublicKeyInfo,\n signTransaction,\n signTransactionWithMultipleInputs,\n transfer,\n transferFromMultipleAddresses,\n };\n}\n"
11
11
  ],
12
12
  "mappings": "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",
13
- "debugId": "EB459CC8559B671564756E2164756E21",
13
+ "debugId": "C6BFFC50E17FBACC64756E2164756E21",
14
14
  "names": []
15
15
  }