@swapkit/wallets 3.0.0-beta.0 → 3.0.0-beta.2

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 (132) hide show
  1. package/dist/chunk-czhtd6cy.js +4 -0
  2. package/dist/chunk-czhtd6cy.js.map +10 -0
  3. package/dist/{chunk-5m175wfy.js → chunk-p1kdg37m.js} +2 -2
  4. package/dist/{chunk-5m175wfy.js.map → chunk-p1kdg37m.js.map} +1 -1
  5. package/dist/{chunk-f76hj57k.js → chunk-q81hzyra.js} +2 -2
  6. package/dist/{chunk-f76hj57k.js.map → chunk-q81hzyra.js.map} +1 -1
  7. package/dist/chunk-qadd75nn.js +3 -0
  8. package/dist/chunk-qadd75nn.js.map +10 -0
  9. package/dist/src/bitget/index.cjs +2 -2
  10. package/dist/src/bitget/index.cjs.map +5 -5
  11. package/dist/src/bitget/index.js +2 -2
  12. package/dist/src/bitget/index.js.map +5 -5
  13. package/dist/src/coinbase/index.cjs +2 -2
  14. package/dist/src/coinbase/index.cjs.map +4 -4
  15. package/dist/src/coinbase/index.js +2 -3
  16. package/dist/src/coinbase/index.js.map +4 -4
  17. package/dist/src/ctrl/index.cjs +2 -2
  18. package/dist/src/ctrl/index.cjs.map +5 -5
  19. package/dist/src/ctrl/index.js +2 -2
  20. package/dist/src/ctrl/index.js.map +5 -5
  21. package/dist/src/evm-extensions/index.cjs +2 -2
  22. package/dist/src/evm-extensions/index.cjs.map +3 -3
  23. package/dist/src/evm-extensions/index.js +2 -3
  24. package/dist/src/evm-extensions/index.js.map +3 -3
  25. package/dist/src/exodus/index.cjs +2 -2
  26. package/dist/src/exodus/index.cjs.map +3 -3
  27. package/dist/src/exodus/index.js +2 -3
  28. package/dist/src/exodus/index.js.map +3 -3
  29. package/dist/src/index.cjs +2 -2
  30. package/dist/src/index.cjs.map +3 -4
  31. package/dist/src/index.js +2 -2
  32. package/dist/src/index.js.map +3 -4
  33. package/dist/src/keepkey/index.cjs +2 -2
  34. package/dist/src/keepkey/index.cjs.map +7 -7
  35. package/dist/src/keepkey/index.js +2 -3
  36. package/dist/src/keepkey/index.js.map +7 -7
  37. package/dist/src/keepkey-bex/index.cjs +2 -2
  38. package/dist/src/keepkey-bex/index.cjs.map +4 -4
  39. package/dist/src/keepkey-bex/index.js +2 -3
  40. package/dist/src/keepkey-bex/index.js.map +4 -4
  41. package/dist/src/keplr/index.cjs +2 -2
  42. package/dist/src/keplr/index.cjs.map +3 -3
  43. package/dist/src/keplr/index.js +2 -3
  44. package/dist/src/keplr/index.js.map +3 -3
  45. package/dist/src/keystore/index.cjs +2 -2
  46. package/dist/src/keystore/index.cjs.map +4 -4
  47. package/dist/src/keystore/index.js +2 -3
  48. package/dist/src/keystore/index.js.map +4 -4
  49. package/dist/src/ledger/index.cjs +3 -3
  50. package/dist/src/ledger/index.cjs.map +8 -8
  51. package/dist/src/ledger/index.js +3 -4
  52. package/dist/src/ledger/index.js.map +8 -8
  53. package/dist/src/okx/index.cjs +2 -2
  54. package/dist/src/okx/index.cjs.map +4 -4
  55. package/dist/src/okx/index.js +2 -3
  56. package/dist/src/okx/index.js.map +4 -4
  57. package/dist/src/onekey/index.cjs +3 -0
  58. package/dist/src/onekey/index.cjs.map +10 -0
  59. package/dist/src/onekey/index.js +3 -0
  60. package/dist/src/onekey/index.js.map +10 -0
  61. package/dist/src/phantom/index.cjs +2 -2
  62. package/dist/src/phantom/index.cjs.map +3 -3
  63. package/dist/src/phantom/index.js +2 -3
  64. package/dist/src/phantom/index.js.map +3 -3
  65. package/dist/src/polkadotjs/index.cjs +2 -2
  66. package/dist/src/polkadotjs/index.cjs.map +3 -3
  67. package/dist/src/polkadotjs/index.js +2 -3
  68. package/dist/src/polkadotjs/index.js.map +3 -3
  69. package/dist/src/radix/index.cjs +2 -2
  70. package/dist/src/radix/index.cjs.map +3 -3
  71. package/dist/src/radix/index.js +2 -3
  72. package/dist/src/radix/index.js.map +3 -3
  73. package/dist/src/talisman/index.cjs +2 -2
  74. package/dist/src/talisman/index.cjs.map +3 -3
  75. package/dist/src/talisman/index.js +2 -3
  76. package/dist/src/talisman/index.js.map +3 -3
  77. package/dist/src/trezor/index.cjs +2 -2
  78. package/dist/src/trezor/index.cjs.map +3 -3
  79. package/dist/src/trezor/index.js +2 -3
  80. package/dist/src/trezor/index.js.map +3 -3
  81. package/dist/src/walletconnect/index.cjs +2 -2
  82. package/dist/src/walletconnect/index.cjs.map +5 -5
  83. package/dist/src/walletconnect/index.js +2 -3
  84. package/dist/src/walletconnect/index.js.map +5 -5
  85. package/package.json +31 -26
  86. package/src/bitget/helpers.ts +33 -93
  87. package/src/bitget/index.ts +32 -54
  88. package/src/coinbase/index.ts +2 -2
  89. package/src/coinbase/signer.ts +46 -42
  90. package/src/ctrl/index.ts +157 -22
  91. package/src/ctrl/walletHelpers.ts +45 -94
  92. package/src/evm-extensions/index.ts +21 -40
  93. package/src/exodus/index.ts +18 -28
  94. package/src/index.ts +2 -37
  95. package/src/keepkey/chains/cosmos.ts +10 -7
  96. package/src/keepkey/chains/mayachain.ts +24 -24
  97. package/src/keepkey/chains/thorchain.ts +19 -13
  98. package/src/keepkey/chains/utxo.ts +36 -48
  99. package/src/keepkey/index.ts +9 -23
  100. package/src/keepkey-bex/index.ts +25 -23
  101. package/src/keepkey-bex/walletHelpers.ts +8 -36
  102. package/src/keplr/index.ts +6 -53
  103. package/src/keystore/helpers.ts +34 -55
  104. package/src/keystore/index.ts +15 -183
  105. package/src/ledger/clients/evm.ts +3 -7
  106. package/src/ledger/clients/thorchain/lib.ts +0 -19
  107. package/src/ledger/clients/utxo.ts +3 -2
  108. package/src/ledger/helpers/getLedgerClient.ts +2 -2
  109. package/src/ledger/index.ts +20 -21
  110. package/src/ledger/types.ts +1 -1
  111. package/src/okx/helpers.ts +23 -33
  112. package/src/okx/index.ts +4 -47
  113. package/src/onekey/evmSigner.ts +133 -0
  114. package/src/onekey/index.ts +213 -0
  115. package/src/phantom/index.ts +18 -42
  116. package/src/polkadotjs/index.ts +5 -7
  117. package/src/radix/index.ts +31 -47
  118. package/src/talisman/index.ts +15 -32
  119. package/src/trezor/index.ts +46 -45
  120. package/src/types.ts +199 -0
  121. package/src/utils.ts +54 -0
  122. package/src/walletconnect/constants.ts +1 -1
  123. package/src/walletconnect/helpers.ts +2 -2
  124. package/src/walletconnect/index.ts +36 -37
  125. package/dist/chunk-ha78se5g.js +0 -4
  126. package/dist/chunk-ha78se5g.js.map +0 -10
  127. package/dist/chunk-yvbvzc0q.js +0 -3
  128. package/dist/chunk-yvbvzc0q.js.map +0 -10
  129. package/src/bitget/bitgetWallet.ts +0 -32
  130. package/src/ctrl/ctrlWallet.ts +0 -175
  131. package/src/helpers.ts +0 -8
  132. package/src/ledger/ledgerLive.ts +0 -429
@@ -1,3 +1,3 @@
1
- var P={};E(P,{trezorWallet:()=>z,TREZOR_SUPPORTED_CHAINS:()=>y});module.exports=O(P);var j=require("@swapkit/helpers");function S(q){switch(q[0]){case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS"};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS"};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS"};default:return null}}async function f({chain:q,derivationPath:Q}){switch(q){case j.Chain.BinanceSmartChain:case j.Chain.Avalanche:case j.Chain.Arbitrum:case j.Chain.Optimism:case j.Chain.Polygon:case j.Chain.Base:case j.Chain.Ethereum:{let{getProvider:N,getToolboxByChain:k}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:B}=await import("../../chunk-bhfpfqc3.js"),J=N(q),I=await B({chain:q,derivationPath:Q,provider:J}),G=await I.getAddress(),F=k(q)({provider:J,signer:I});return{address:G,walletMethods:F}}case j.Chain.Bitcoin:case j.Chain.BitcoinCash:case j.Chain.Dash:case j.Chain.Dogecoin:case j.Chain.Litecoin:{let{toCashAddress:N,getToolboxByChain:k,BCHToolbox:B}=await import("@swapkit/toolboxes/utxo"),J=S(Q);if(!J)throw new j.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:Q}});let I=q.toLowerCase(),G=k(q)(),M=await(async(Y=Q)=>{let{default:Z}=await import("@trezor/connect-web"),{success:U,payload:$}=await Z.getAddress({path:j.derivationPathToString(Y),coin:I});if(!U)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:q,error:$.error||"Unknown error"}});return q===j.Chain.BitcoinCash?G.stripPrefix($.address):$.address})(),_=async(Y,Z,U="")=>{let{default:$}=await import("@trezor/connect-web"),V=Q.map((D,L)=>L<3?(D|2147483648)>>>0:D),X=await $.signTransaction({coin:I,inputs:Z.map((D)=>({address_n:V,prev_hash:D.hash,prev_index:D.index,amount:D.value,script_type:J.input})),outputs:Y.txOutputs.map((D)=>{let L=q===j.Chain.BitcoinCash&&D.address?N(D.address):D.address,R=q===j.Chain.BitcoinCash&&L?G.stripPrefix(L)===M:L===M;if(!D.address)return{amount:"0",op_return_data:Buffer.from(U).toString("hex"),script_type:"PAYTOOPRETURN"};if(R)return{address_n:V,amount:D.value,script_type:J.output};return{address:L,amount:D.value,script_type:"PAYTOADDRESS"}})});if(X.success&&X.payload?.serializedTx)return X.payload.serializedTx;throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:q,error:X.payload.error}})};return{address:M,walletMethods:{...G,transfer:async({from:Y,recipient:Z,feeOptionKey:U,feeRate:$,memo:V,...X})=>{if(!(Y&&Z))throw new j.SwapKitError({errorKey:"wallet_missing_params",info:{wallet:j.WalletOption.TREZOR,memo:V,from:Y,recipient:Z}});let D=$||(await G.getFeeRates())[U||j.FeeOption.Fast],{psbt:L,inputs:R}=await G.buildTx({...X,memo:V,recipient:Z,feeRate:D,sender:Y,fetchTxHex:q===j.Chain.Dogecoin}),K=await _(L,R,V);return await G.broadcastTx(K)},signTransaction:_}}}default:throw new j.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:q,wallet:j.WalletOption.TREZOR}})}}var z=j.createWallet({name:"connectTrezor",walletType:j.WalletOption.TREZOR,supportedChains:[j.Chain.Arbitrum,j.Chain.Avalanche,j.Chain.Base,j.Chain.BinanceSmartChain,j.Chain.Bitcoin,j.Chain.BitcoinCash,j.Chain.Dash,j.Chain.Dogecoin,j.Chain.Ethereum,j.Chain.Litecoin,j.Chain.Optimism,j.Chain.Polygon],connect:({addChain:q,supportedChains:Q,walletType:N})=>async function k(B,J){let[I]=j.filterSupportedChains({chains:B,supportedChains:Q,walletType:N});if(!I)throw new j.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:I,wallet:j.WalletOption.TREZOR}});let{default:G}=await import("@trezor/connect-web"),{success:F}=await G.getDeviceState();if(!F){let A=j.SKConfig.get("integrations").trezor||{appUrl:"",email:""};G.init({lazyLoad:!0,manifest:A})}let{address:M,walletMethods:_}=await f({chain:I,derivationPath:J});return q({..._,address:M,balance:[],chain:I,walletType:N}),!0}}),y=W(z);
1
+ var P={};O(P,{trezorWallet:()=>f,TREZOR_SUPPORTED_CHAINS:()=>y});module.exports=K(P);var j=require("@swapkit/helpers");function E(q){switch(q[0]){case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS"};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS"};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS"};default:return null}}async function S({chain:q,derivationPath:Q}){switch(q){case j.Chain.BinanceSmartChain:case j.Chain.Avalanche:case j.Chain.Arbitrum:case j.Chain.Optimism:case j.Chain.Polygon:case j.Chain.Base:case j.Chain.Ethereum:{let{getProvider:H,getEvmToolbox:X}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:Y}=await import("../../chunk-bhfpfqc3.js"),Z=await H(q),I=await Y({chain:q,derivationPath:Q,provider:Z}),D=await I.getAddress();return{...await X(q,{provider:Z,signer:I}),address:D}}case j.Chain.Bitcoin:case j.Chain.BitcoinCash:case j.Chain.Dash:case j.Chain.Dogecoin:case j.Chain.Litecoin:{let{toCashAddress:H,getUtxoToolbox:X}=await import("@swapkit/toolboxes/utxo"),Y=E(Q);if(!Y)throw new j.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:Q}});let Z=q.toLowerCase(),D=await(async($=Q)=>{let{default:M}=await import("@trezor/connect-web"),{success:k,payload:G}=await M.getAddress({path:j.derivationPathToString($),coin:Z});if(!k)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:q,error:G.error||"Unknown error"}});if(q===j.Chain.BitcoinCash)return(await X(q)).stripPrefix(G.address);return G.address})(),V=async($,M,k="")=>{let{default:G}=await import("@trezor/connect-web"),F=Q.map((B,J)=>J<3?(B|2147483648)>>>0:B),L=await X(q),_=await G.signTransaction({coin:Z,inputs:M.map(({hash:B,index:J,value:A})=>({address_n:F,prev_hash:B,prev_index:J,amount:A,script_type:Y.input})),outputs:$.txOutputs.map((B)=>{let J=q===j.Chain.BitcoinCash&&B.address?L.stripPrefix(H(B.address)):B.address,A=J===D;if(!B.address)return{amount:"0",op_return_data:Buffer.from(k).toString("hex"),script_type:"PAYTOOPRETURN"};return A?{amount:B.value,address_n:F,script_type:Y.output}:{amount:B.value,address:J,script_type:"PAYTOADDRESS"}})});if(_.success)return _.payload.serializedTx;throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:q,error:_.payload.error}})},R=async({recipient:$,feeOptionKey:M,feeRate:k,memo:G,...F})=>{if(!(D&&$))throw new j.SwapKitError({errorKey:"wallet_missing_params",info:{wallet:j.WalletOption.TREZOR,memo:G,address:D,recipient:$}});let L=await X(q),_=k||(await L.getFeeRates())[M||j.FeeOption.Fast],B=q===j.Chain.BitcoinCash?L.buildTx:L.createTransaction,{psbt:J,inputs:A}=await B({...F,memo:G,recipient:$,feeRate:_,sender:D,fetchTxHex:!0}),z=await V(J,A,G);return await L.broadcastTx(z)};return{...await X(q),address:D,transfer:R,signTransaction:V}}default:throw new j.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:q,wallet:j.WalletOption.TREZOR}})}}var f=j.createWallet({name:"connectTrezor",walletType:j.WalletOption.TREZOR,supportedChains:[j.Chain.Arbitrum,j.Chain.Avalanche,j.Chain.Base,j.Chain.BinanceSmartChain,j.Chain.Bitcoin,j.Chain.BitcoinCash,j.Chain.Dash,j.Chain.Dogecoin,j.Chain.Ethereum,j.Chain.Litecoin,j.Chain.Optimism,j.Chain.Polygon],connect:({addChain:q,supportedChains:Q,walletType:H})=>async function X(Y,Z){let[I]=j.filterSupportedChains({chains:Y,supportedChains:Q,walletType:H});if(!I)throw new j.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:I,wallet:j.WalletOption.TREZOR}});let{default:D}=await import("@trezor/connect-web"),{success:V}=await D.getDeviceState();if(!V){let U=j.SKConfig.get("integrations").trezor||{appUrl:"",email:""};D.init({lazyLoad:!0,manifest:U})}let R=await S({chain:I,derivationPath:Z});return q({...R,chain:I,walletType:H}),!0}}),y=W(f);
2
2
 
3
- //# debugId=BE46245E96FED1F464756E2164756E21
3
+ //# debugId=2C0BC8538E4C2EDA64756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/trezor/index.ts"],
4
4
  "sourcesContent": [
5
- "import {\n Chain,\n type DerivationPathArray,\n FeeOption,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n derivationPathToString,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { Psbt, UTXOTransferParams, UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport { getWalletSupportedChains } from \"../helpers\";\n\nfunction getScriptType(derivationPath: DerivationPathArray) {\n switch (derivationPath[0]) {\n case 84:\n return { input: \"SPENDWITNESS\", output: \"PAYTOWITNESS\" } as const;\n case 49:\n return { input: \"SPENDP2SHWITNESS\", output: \"PAYTOP2SHWITNESS\" } as const;\n case 44:\n return { input: \"SPENDADDRESS\", output: \"PAYTOADDRESS\" } as const;\n default:\n return null;\n }\n}\n\nasync function getToolbox({\n chain,\n derivationPath,\n}: { chain: Chain; derivationPath: DerivationPathArray }) {\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Base:\n case Chain.Ethereum: {\n const { getProvider, getToolboxByChain } = await import(\"@swapkit/toolboxes/evm\");\n const { getEVMSigner } = await import(\"./evmSigner\");\n\n const provider = getProvider(chain);\n const signer = await getEVMSigner({ chain, derivationPath, provider });\n const address = await signer.getAddress();\n const toolbox = getToolboxByChain(chain)({ provider, signer });\n\n return { address, walletMethods: toolbox };\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { toCashAddress, getToolboxByChain, BCHToolbox } = await import(\n \"@swapkit/toolboxes/utxo\"\n );\n\n const scriptType = getScriptType(derivationPath);\n\n if (!scriptType) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_derivation_path_not_supported\",\n info: { derivationPath },\n });\n }\n\n const coin = chain.toLowerCase();\n const toolbox = getToolboxByChain(chain)();\n\n const getAddress = async (path: DerivationPathArray = derivationPath) => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { success, payload } = await TrezorConnect.getAddress({\n path: derivationPathToString(path),\n coin,\n });\n\n if (!success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: {\n chain,\n error: (payload as { error: string; code?: string }).error || \"Unknown error\",\n },\n });\n }\n\n return chain === Chain.BitcoinCash\n ? (toolbox as ReturnType<typeof BCHToolbox>).stripPrefix(payload.address)\n : payload.address;\n };\n\n const address = await getAddress();\n\n const signTransaction = async (psbt: Psbt, inputs: UTXOType[], memo = \"\") => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const address_n = derivationPath.map((pathElement, index) =>\n index < 3 ? ((pathElement as number) | 0x80000000) >>> 0 : (pathElement as number),\n );\n\n const result = await TrezorConnect.signTransaction({\n coin,\n inputs: inputs.map((input) => ({\n // Hardens the first 3 elements of the derivation path - required by trezor\n address_n,\n prev_hash: input.hash,\n prev_index: input.index,\n // object needs amount but does not use it for signing\n amount: input.value,\n script_type: scriptType.input,\n })),\n\n // Lint is not happy with the type of txOutputs\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: TODO: refactor\n outputs: psbt.txOutputs.map((output: any) => {\n const outputAddress =\n chain === Chain.BitcoinCash && output.address\n ? toCashAddress(output.address)\n : output.address;\n\n // Strip prefix from BCH address to compare with stripped address from Trezor\n const isChangeAddress =\n chain === Chain.BitcoinCash && outputAddress\n ? (toolbox as ReturnType<typeof BCHToolbox>).stripPrefix(outputAddress) === address\n : outputAddress === address;\n\n // OP_RETURN\n if (!output.address) {\n return {\n amount: \"0\",\n op_return_data: Buffer.from(memo).toString(\"hex\"),\n script_type: \"PAYTOOPRETURN\",\n };\n }\n\n // Change Address\n if (isChangeAddress) {\n return { address_n, amount: output.value, script_type: scriptType.output };\n }\n\n // Outgoing UTXO\n return { address: outputAddress, amount: output.value, script_type: \"PAYTOADDRESS\" };\n }),\n });\n\n if (result.success && result.payload?.serializedTx) {\n return result.payload.serializedTx;\n }\n\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: {\n chain,\n error: (result.payload as { error: string; code?: string }).error,\n },\n });\n };\n\n const transfer = async ({\n from,\n recipient,\n feeOptionKey,\n feeRate: paramFeeRate,\n memo,\n ...rest\n }: UTXOTransferParams) => {\n if (!(from && recipient)) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { wallet: WalletOption.TREZOR, memo, from, recipient },\n });\n }\n\n const feeRate =\n paramFeeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast];\n\n const { psbt, inputs } = await toolbox.buildTx({\n ...rest,\n memo,\n recipient,\n feeRate,\n sender: from,\n fetchTxHex: chain === Chain.Dogecoin,\n });\n\n const txHex = await signTransaction(psbt, inputs, memo);\n const tx = await toolbox.broadcastTx(txHex);\n\n return tx;\n };\n\n return { address, walletMethods: { ...toolbox, transfer, signTransaction } };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n}\n\nexport const trezorWallet = createWallet({\n name: \"connectTrezor\",\n walletType: WalletOption.TREZOR,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Optimism,\n Chain.Polygon,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectTrezor(chains: Chain[], derivationPath: DerivationPathArray) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n if (!chain) {\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { success } = await TrezorConnect.getDeviceState();\n\n if (!success) {\n const manifest = SKConfig.get(\"integrations\").trezor || { appUrl: \"\", email: \"\" };\n TrezorConnect.init({ lazyLoad: true, manifest });\n }\n\n const { address, walletMethods } = await getToolbox({ chain, derivationPath });\n\n addChain({ ...walletMethods, address, balance: [], chain, walletType });\n\n return true;\n },\n});\n\nexport const TREZOR_SUPPORTED_CHAINS = getWalletSupportedChains(trezorWallet);\n"
5
+ "import {\n Chain,\n type DerivationPathArray,\n FeeOption,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n derivationPathToString,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { UTXOToolboxes, UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport type { Psbt } from \"bitcoinjs-lib\";\nimport { getWalletSupportedChains } from \"../utils\";\n\nfunction getScriptType(derivationPath: DerivationPathArray) {\n switch (derivationPath[0]) {\n case 84:\n return { input: \"SPENDWITNESS\", output: \"PAYTOWITNESS\" } as const;\n case 49:\n return { input: \"SPENDP2SHWITNESS\", output: \"PAYTOP2SHWITNESS\" } as const;\n case 44:\n return { input: \"SPENDADDRESS\", output: \"PAYTOADDRESS\" } as const;\n default:\n return null;\n }\n}\n\nasync function getTrezorWallet<T extends Chain>({\n chain,\n derivationPath,\n}: { chain: T; derivationPath: DerivationPathArray }) {\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Base:\n case Chain.Ethereum: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const { getEVMSigner } = await import(\"./evmSigner\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ chain, derivationPath, provider });\n const address = await signer.getAddress();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { toCashAddress, getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const scriptType = getScriptType(derivationPath);\n\n if (!scriptType) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_derivation_path_not_supported\",\n info: { derivationPath },\n });\n }\n\n const coin = chain.toLowerCase();\n\n const getAddress = async (path: DerivationPathArray = derivationPath) => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { success, payload } = await TrezorConnect.getAddress({\n path: derivationPathToString(path),\n coin,\n });\n\n if (!success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: {\n chain,\n error: (payload as { error: string; code?: string }).error || \"Unknown error\",\n },\n });\n }\n\n if (chain === Chain.BitcoinCash) {\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n return toolbox.stripPrefix(payload.address);\n }\n\n return payload.address;\n };\n\n const address = await getAddress();\n\n const signTransaction = async (psbt: Psbt, inputs: UTXOType[], memo = \"\") => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const address_n = derivationPath.map((pathElement, index) =>\n index < 3 ? ((pathElement as number) | 0x80000000) >>> 0 : (pathElement as number),\n );\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n\n const result = await TrezorConnect.signTransaction({\n coin,\n inputs: inputs.map(({ hash, index, value }) => ({\n // Hardens the first 3 elements of the derivation path - required by trezor\n address_n,\n prev_hash: hash,\n prev_index: index,\n // object needs amount but does not use it for signing\n amount: value,\n script_type: scriptType.input,\n })),\n\n // Lint is not happy with the type of txOutputs\n outputs: psbt.txOutputs.map((output: any) => {\n const outputAddress =\n chain === Chain.BitcoinCash && output.address\n ? toolbox.stripPrefix(toCashAddress(output.address))\n : output.address;\n\n const isChangeAddress = outputAddress === address;\n\n // OP_RETURN\n if (!output.address) {\n return {\n amount: \"0\",\n op_return_data: Buffer.from(memo).toString(\"hex\"),\n script_type: \"PAYTOOPRETURN\",\n };\n }\n\n return isChangeAddress\n ? { amount: output.value, address_n, script_type: scriptType.output }\n : { amount: output.value, address: outputAddress, script_type: \"PAYTOADDRESS\" };\n }),\n });\n\n if (result.success) {\n return result.payload.serializedTx;\n }\n\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: {\n chain,\n error: (result.payload as { error: string; code?: string }).error,\n },\n });\n };\n\n const transfer = async ({\n recipient,\n feeOptionKey,\n feeRate: paramFeeRate,\n memo,\n ...rest\n }: GenericTransferParams) => {\n if (!(address && recipient)) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { wallet: WalletOption.TREZOR, memo, address, recipient },\n });\n }\n\n const toolbox = await getUtxoToolbox(chain);\n\n const feeRate =\n paramFeeRate || (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 { psbt, inputs } = await createTxMethod({\n ...rest,\n memo,\n recipient,\n feeRate,\n sender: address,\n fetchTxHex: true,\n });\n\n const txHex = await signTransaction(psbt, inputs, memo);\n const tx = await toolbox.broadcastTx(txHex);\n\n return tx;\n };\n\n const toolbox = await getUtxoToolbox(chain);\n\n return { ...toolbox, address, transfer, signTransaction };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n}\n\nexport const trezorWallet = createWallet({\n name: \"connectTrezor\",\n walletType: WalletOption.TREZOR,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Optimism,\n Chain.Polygon,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectTrezor(chains: Chain[], derivationPath: DerivationPathArray) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n if (!chain) {\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { success } = await TrezorConnect.getDeviceState();\n\n if (!success) {\n const manifest = SKConfig.get(\"integrations\").trezor || { appUrl: \"\", email: \"\" };\n TrezorConnect.init({ lazyLoad: true, manifest });\n }\n\n const wallet = await getTrezorWallet({ chain, derivationPath });\n\n addChain({ ...wallet, chain, walletType });\n\n return true;\n },\n});\n\nexport const TREZOR_SUPPORTED_CHAINS = getWalletSupportedChains(trezorWallet);\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "BE46245E96FED1F464756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "2C0BC8538E4C2EDA64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,3 @@
1
- import{r as O}from"../../chunk-ha78se5g.js";import{s as H,t as M}from"../../chunk-5m175wfy.js";import{Chain as j,FeeOption as S,SKConfig as f,SwapKitError as U,WalletOption as W,createWallet as y,derivationPathToString as P,filterSupportedChains as b}from"@swapkit/helpers";function w(q){switch(q[0]){case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS"};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS"};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS"};default:return null}}async function x({chain:q,derivationPath:Q}){switch(q){case j.BinanceSmartChain:case j.Avalanche:case j.Arbitrum:case j.Optimism:case j.Polygon:case j.Base:case j.Ethereum:{let{getProvider:N,getToolboxByChain:F}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:_}=await import("../../chunk-f76hj57k.js"),J=N(q),I=await _({chain:q,derivationPath:Q,provider:J}),G=await I.getAddress(),R=F(q)({provider:J,signer:I});return{address:G,walletMethods:R}}case j.Bitcoin:case j.BitcoinCash:case j.Dash:case j.Dogecoin:case j.Litecoin:{let{toCashAddress:N,getToolboxByChain:F,BCHToolbox:_}=await import("@swapkit/toolboxes/utxo"),J=w(Q);if(!J)throw new U({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:Q}});let I=q.toLowerCase(),G=F(q)(),k=await(async(Y=Q)=>{let{default:Z}=await import("@trezor/connect-web"),{success:B,payload:$}=await Z.getAddress({path:P(Y),coin:I});if(!B)throw new U({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:q,error:$.error||"Unknown error"}});return q===j.BitcoinCash?G.stripPrefix($.address):$.address})(),A=async(Y,Z,B="")=>{let{default:$}=await import("@trezor/connect-web"),V=Q.map((D,L)=>L<3?(D|2147483648)>>>0:D),X=await $.signTransaction({coin:I,inputs:Z.map((D)=>({address_n:V,prev_hash:D.hash,prev_index:D.index,amount:D.value,script_type:J.input})),outputs:Y.txOutputs.map((D)=>{let L=q===j.BitcoinCash&&D.address?N(D.address):D.address,z=q===j.BitcoinCash&&L?G.stripPrefix(L)===k:L===k;if(!D.address)return{amount:"0",op_return_data:Buffer.from(B).toString("hex"),script_type:"PAYTOOPRETURN"};if(z)return{address_n:V,amount:D.value,script_type:J.output};return{address:L,amount:D.value,script_type:"PAYTOADDRESS"}})});if(X.success&&X.payload?.serializedTx)return X.payload.serializedTx;throw new U({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:q,error:X.payload.error}})};return{address:k,walletMethods:{...G,transfer:async({from:Y,recipient:Z,feeOptionKey:B,feeRate:$,memo:V,...X})=>{if(!(Y&&Z))throw new U({errorKey:"wallet_missing_params",info:{wallet:W.TREZOR,memo:V,from:Y,recipient:Z}});let D=$||(await G.getFeeRates())[B||S.Fast],{psbt:L,inputs:z}=await G.buildTx({...X,memo:V,recipient:Z,feeRate:D,sender:Y,fetchTxHex:q===j.Dogecoin}),E=await A(L,z,V);return await G.broadcastTx(E)},signTransaction:A}}}default:throw new U({errorKey:"wallet_chain_not_supported",info:{chain:q,wallet:W.TREZOR}})}}var g=y({name:"connectTrezor",walletType:W.TREZOR,supportedChains:[j.Arbitrum,j.Avalanche,j.Base,j.BinanceSmartChain,j.Bitcoin,j.BitcoinCash,j.Dash,j.Dogecoin,j.Ethereum,j.Litecoin,j.Optimism,j.Polygon],connect:({addChain:q,supportedChains:Q,walletType:N})=>async function F(_,J){let[I]=b({chains:_,supportedChains:Q,walletType:N});if(!I)throw new U({errorKey:"wallet_chain_not_supported",info:{chain:I,wallet:W.TREZOR}});let{default:G}=await import("@trezor/connect-web"),{success:R}=await G.getDeviceState();if(!R){let K=f.get("integrations").trezor||{appUrl:"",email:""};G.init({lazyLoad:!0,manifest:K})}let{address:k,walletMethods:A}=await x({chain:I,derivationPath:J});return q({...A,address:k,balance:[],chain:I,walletType:N}),!0}}),C=O(g);export{g as trezorWallet,C as TREZOR_SUPPORTED_CHAINS};
2
- export{g as a};
1
+ import{a as K}from"../../chunk-czhtd6cy.js";import{c as N,d as V}from"../../chunk-p1kdg37m.js";import{Chain as j,FeeOption as E,SKConfig as S,SwapKitError as M,WalletOption as f,createWallet as y,derivationPathToString as P,filterSupportedChains as b}from"@swapkit/helpers";function w(q){switch(q[0]){case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS"};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS"};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS"};default:return null}}async function g({chain:q,derivationPath:Q}){switch(q){case j.BinanceSmartChain:case j.Avalanche:case j.Arbitrum:case j.Optimism:case j.Polygon:case j.Base:case j.Ethereum:{let{getProvider:H,getEvmToolbox:X}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:Y}=await import("../../chunk-q81hzyra.js"),Z=await H(q),I=await Y({chain:q,derivationPath:Q,provider:Z}),D=await I.getAddress();return{...await X(q,{provider:Z,signer:I}),address:D}}case j.Bitcoin:case j.BitcoinCash:case j.Dash:case j.Dogecoin:case j.Litecoin:{let{toCashAddress:H,getUtxoToolbox:X}=await import("@swapkit/toolboxes/utxo"),Y=w(Q);if(!Y)throw new M({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:Q}});let Z=q.toLowerCase(),D=await(async($=Q)=>{let{default:F}=await import("@trezor/connect-web"),{success:_,payload:G}=await F.getAddress({path:P($),coin:Z});if(!_)throw new M({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:q,error:G.error||"Unknown error"}});if(q===j.BitcoinCash)return(await X(q)).stripPrefix(G.address);return G.address})(),k=async($,F,_="")=>{let{default:G}=await import("@trezor/connect-web"),A=Q.map((B,J)=>J<3?(B|2147483648)>>>0:B),L=await X(q),R=await G.signTransaction({coin:Z,inputs:F.map(({hash:B,index:J,value:U})=>({address_n:A,prev_hash:B,prev_index:J,amount:U,script_type:Y.input})),outputs:$.txOutputs.map((B)=>{let J=q===j.BitcoinCash&&B.address?L.stripPrefix(H(B.address)):B.address,U=J===D;if(!B.address)return{amount:"0",op_return_data:Buffer.from(_).toString("hex"),script_type:"PAYTOOPRETURN"};return U?{amount:B.value,address_n:A,script_type:Y.output}:{amount:B.value,address:J,script_type:"PAYTOADDRESS"}})});if(R.success)return R.payload.serializedTx;throw new M({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:q,error:R.payload.error}})},W=async({recipient:$,feeOptionKey:F,feeRate:_,memo:G,...A})=>{if(!(D&&$))throw new M({errorKey:"wallet_missing_params",info:{wallet:f.TREZOR,memo:G,address:D,recipient:$}});let L=await X(q),R=_||(await L.getFeeRates())[F||E.Fast],B=q===j.BitcoinCash?L.buildTx:L.createTransaction,{psbt:J,inputs:U}=await B({...A,memo:G,recipient:$,feeRate:R,sender:D,fetchTxHex:!0}),O=await k(J,U,G);return await L.broadcastTx(O)};return{...await X(q),address:D,transfer:W,signTransaction:k}}default:throw new M({errorKey:"wallet_chain_not_supported",info:{chain:q,wallet:f.TREZOR}})}}var v=y({name:"connectTrezor",walletType:f.TREZOR,supportedChains:[j.Arbitrum,j.Avalanche,j.Base,j.BinanceSmartChain,j.Bitcoin,j.BitcoinCash,j.Dash,j.Dogecoin,j.Ethereum,j.Litecoin,j.Optimism,j.Polygon],connect:({addChain:q,supportedChains:Q,walletType:H})=>async function X(Y,Z){let[I]=b({chains:Y,supportedChains:Q,walletType:H});if(!I)throw new M({errorKey:"wallet_chain_not_supported",info:{chain:I,wallet:f.TREZOR}});let{default:D}=await import("@trezor/connect-web"),{success:k}=await D.getDeviceState();if(!k){let z=S.get("integrations").trezor||{appUrl:"",email:""};D.init({lazyLoad:!0,manifest:z})}let W=await g({chain:I,derivationPath:Z});return q({...W,chain:I,walletType:H}),!0}}),C=K(v);export{v as trezorWallet,C as TREZOR_SUPPORTED_CHAINS};
3
2
 
4
- //# debugId=0702D07AD3E640D564756E2164756E21
3
+ //# debugId=A43C365DB73A7F2B64756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/trezor/index.ts"],
4
4
  "sourcesContent": [
5
- "import {\n Chain,\n type DerivationPathArray,\n FeeOption,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n derivationPathToString,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { Psbt, UTXOTransferParams, UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport { getWalletSupportedChains } from \"../helpers\";\n\nfunction getScriptType(derivationPath: DerivationPathArray) {\n switch (derivationPath[0]) {\n case 84:\n return { input: \"SPENDWITNESS\", output: \"PAYTOWITNESS\" } as const;\n case 49:\n return { input: \"SPENDP2SHWITNESS\", output: \"PAYTOP2SHWITNESS\" } as const;\n case 44:\n return { input: \"SPENDADDRESS\", output: \"PAYTOADDRESS\" } as const;\n default:\n return null;\n }\n}\n\nasync function getToolbox({\n chain,\n derivationPath,\n}: { chain: Chain; derivationPath: DerivationPathArray }) {\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Base:\n case Chain.Ethereum: {\n const { getProvider, getToolboxByChain } = await import(\"@swapkit/toolboxes/evm\");\n const { getEVMSigner } = await import(\"./evmSigner\");\n\n const provider = getProvider(chain);\n const signer = await getEVMSigner({ chain, derivationPath, provider });\n const address = await signer.getAddress();\n const toolbox = getToolboxByChain(chain)({ provider, signer });\n\n return { address, walletMethods: toolbox };\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { toCashAddress, getToolboxByChain, BCHToolbox } = await import(\n \"@swapkit/toolboxes/utxo\"\n );\n\n const scriptType = getScriptType(derivationPath);\n\n if (!scriptType) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_derivation_path_not_supported\",\n info: { derivationPath },\n });\n }\n\n const coin = chain.toLowerCase();\n const toolbox = getToolboxByChain(chain)();\n\n const getAddress = async (path: DerivationPathArray = derivationPath) => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { success, payload } = await TrezorConnect.getAddress({\n path: derivationPathToString(path),\n coin,\n });\n\n if (!success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: {\n chain,\n error: (payload as { error: string; code?: string }).error || \"Unknown error\",\n },\n });\n }\n\n return chain === Chain.BitcoinCash\n ? (toolbox as ReturnType<typeof BCHToolbox>).stripPrefix(payload.address)\n : payload.address;\n };\n\n const address = await getAddress();\n\n const signTransaction = async (psbt: Psbt, inputs: UTXOType[], memo = \"\") => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const address_n = derivationPath.map((pathElement, index) =>\n index < 3 ? ((pathElement as number) | 0x80000000) >>> 0 : (pathElement as number),\n );\n\n const result = await TrezorConnect.signTransaction({\n coin,\n inputs: inputs.map((input) => ({\n // Hardens the first 3 elements of the derivation path - required by trezor\n address_n,\n prev_hash: input.hash,\n prev_index: input.index,\n // object needs amount but does not use it for signing\n amount: input.value,\n script_type: scriptType.input,\n })),\n\n // Lint is not happy with the type of txOutputs\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: TODO: refactor\n outputs: psbt.txOutputs.map((output: any) => {\n const outputAddress =\n chain === Chain.BitcoinCash && output.address\n ? toCashAddress(output.address)\n : output.address;\n\n // Strip prefix from BCH address to compare with stripped address from Trezor\n const isChangeAddress =\n chain === Chain.BitcoinCash && outputAddress\n ? (toolbox as ReturnType<typeof BCHToolbox>).stripPrefix(outputAddress) === address\n : outputAddress === address;\n\n // OP_RETURN\n if (!output.address) {\n return {\n amount: \"0\",\n op_return_data: Buffer.from(memo).toString(\"hex\"),\n script_type: \"PAYTOOPRETURN\",\n };\n }\n\n // Change Address\n if (isChangeAddress) {\n return { address_n, amount: output.value, script_type: scriptType.output };\n }\n\n // Outgoing UTXO\n return { address: outputAddress, amount: output.value, script_type: \"PAYTOADDRESS\" };\n }),\n });\n\n if (result.success && result.payload?.serializedTx) {\n return result.payload.serializedTx;\n }\n\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: {\n chain,\n error: (result.payload as { error: string; code?: string }).error,\n },\n });\n };\n\n const transfer = async ({\n from,\n recipient,\n feeOptionKey,\n feeRate: paramFeeRate,\n memo,\n ...rest\n }: UTXOTransferParams) => {\n if (!(from && recipient)) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { wallet: WalletOption.TREZOR, memo, from, recipient },\n });\n }\n\n const feeRate =\n paramFeeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast];\n\n const { psbt, inputs } = await toolbox.buildTx({\n ...rest,\n memo,\n recipient,\n feeRate,\n sender: from,\n fetchTxHex: chain === Chain.Dogecoin,\n });\n\n const txHex = await signTransaction(psbt, inputs, memo);\n const tx = await toolbox.broadcastTx(txHex);\n\n return tx;\n };\n\n return { address, walletMethods: { ...toolbox, transfer, signTransaction } };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n}\n\nexport const trezorWallet = createWallet({\n name: \"connectTrezor\",\n walletType: WalletOption.TREZOR,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Optimism,\n Chain.Polygon,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectTrezor(chains: Chain[], derivationPath: DerivationPathArray) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n if (!chain) {\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { success } = await TrezorConnect.getDeviceState();\n\n if (!success) {\n const manifest = SKConfig.get(\"integrations\").trezor || { appUrl: \"\", email: \"\" };\n TrezorConnect.init({ lazyLoad: true, manifest });\n }\n\n const { address, walletMethods } = await getToolbox({ chain, derivationPath });\n\n addChain({ ...walletMethods, address, balance: [], chain, walletType });\n\n return true;\n },\n});\n\nexport const TREZOR_SUPPORTED_CHAINS = getWalletSupportedChains(trezorWallet);\n"
5
+ "import {\n Chain,\n type DerivationPathArray,\n FeeOption,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n derivationPathToString,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { UTXOToolboxes, UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport type { Psbt } from \"bitcoinjs-lib\";\nimport { getWalletSupportedChains } from \"../utils\";\n\nfunction getScriptType(derivationPath: DerivationPathArray) {\n switch (derivationPath[0]) {\n case 84:\n return { input: \"SPENDWITNESS\", output: \"PAYTOWITNESS\" } as const;\n case 49:\n return { input: \"SPENDP2SHWITNESS\", output: \"PAYTOP2SHWITNESS\" } as const;\n case 44:\n return { input: \"SPENDADDRESS\", output: \"PAYTOADDRESS\" } as const;\n default:\n return null;\n }\n}\n\nasync function getTrezorWallet<T extends Chain>({\n chain,\n derivationPath,\n}: { chain: T; derivationPath: DerivationPathArray }) {\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Base:\n case Chain.Ethereum: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const { getEVMSigner } = await import(\"./evmSigner\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ chain, derivationPath, provider });\n const address = await signer.getAddress();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { toCashAddress, getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const scriptType = getScriptType(derivationPath);\n\n if (!scriptType) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_derivation_path_not_supported\",\n info: { derivationPath },\n });\n }\n\n const coin = chain.toLowerCase();\n\n const getAddress = async (path: DerivationPathArray = derivationPath) => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { success, payload } = await TrezorConnect.getAddress({\n path: derivationPathToString(path),\n coin,\n });\n\n if (!success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: {\n chain,\n error: (payload as { error: string; code?: string }).error || \"Unknown error\",\n },\n });\n }\n\n if (chain === Chain.BitcoinCash) {\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n return toolbox.stripPrefix(payload.address);\n }\n\n return payload.address;\n };\n\n const address = await getAddress();\n\n const signTransaction = async (psbt: Psbt, inputs: UTXOType[], memo = \"\") => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const address_n = derivationPath.map((pathElement, index) =>\n index < 3 ? ((pathElement as number) | 0x80000000) >>> 0 : (pathElement as number),\n );\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n\n const result = await TrezorConnect.signTransaction({\n coin,\n inputs: inputs.map(({ hash, index, value }) => ({\n // Hardens the first 3 elements of the derivation path - required by trezor\n address_n,\n prev_hash: hash,\n prev_index: index,\n // object needs amount but does not use it for signing\n amount: value,\n script_type: scriptType.input,\n })),\n\n // Lint is not happy with the type of txOutputs\n outputs: psbt.txOutputs.map((output: any) => {\n const outputAddress =\n chain === Chain.BitcoinCash && output.address\n ? toolbox.stripPrefix(toCashAddress(output.address))\n : output.address;\n\n const isChangeAddress = outputAddress === address;\n\n // OP_RETURN\n if (!output.address) {\n return {\n amount: \"0\",\n op_return_data: Buffer.from(memo).toString(\"hex\"),\n script_type: \"PAYTOOPRETURN\",\n };\n }\n\n return isChangeAddress\n ? { amount: output.value, address_n, script_type: scriptType.output }\n : { amount: output.value, address: outputAddress, script_type: \"PAYTOADDRESS\" };\n }),\n });\n\n if (result.success) {\n return result.payload.serializedTx;\n }\n\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: {\n chain,\n error: (result.payload as { error: string; code?: string }).error,\n },\n });\n };\n\n const transfer = async ({\n recipient,\n feeOptionKey,\n feeRate: paramFeeRate,\n memo,\n ...rest\n }: GenericTransferParams) => {\n if (!(address && recipient)) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { wallet: WalletOption.TREZOR, memo, address, recipient },\n });\n }\n\n const toolbox = await getUtxoToolbox(chain);\n\n const feeRate =\n paramFeeRate || (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 { psbt, inputs } = await createTxMethod({\n ...rest,\n memo,\n recipient,\n feeRate,\n sender: address,\n fetchTxHex: true,\n });\n\n const txHex = await signTransaction(psbt, inputs, memo);\n const tx = await toolbox.broadcastTx(txHex);\n\n return tx;\n };\n\n const toolbox = await getUtxoToolbox(chain);\n\n return { ...toolbox, address, transfer, signTransaction };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n}\n\nexport const trezorWallet = createWallet({\n name: \"connectTrezor\",\n walletType: WalletOption.TREZOR,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Optimism,\n Chain.Polygon,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectTrezor(chains: Chain[], derivationPath: DerivationPathArray) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n if (!chain) {\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { success } = await TrezorConnect.getDeviceState();\n\n if (!success) {\n const manifest = SKConfig.get(\"integrations\").trezor || { appUrl: \"\", email: \"\" };\n TrezorConnect.init({ lazyLoad: true, manifest });\n }\n\n const wallet = await getTrezorWallet({ chain, derivationPath });\n\n addChain({ ...wallet, chain, walletType });\n\n return true;\n },\n});\n\nexport const TREZOR_SUPPORTED_CHAINS = getWalletSupportedChains(trezorWallet);\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "0702D07AD3E640D564756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "A43C365DB73A7F2B64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,3 @@
1
- var qr={};ar(qr,{walletconnectWallet:()=>jr,WC_SUPPORTED_CHAINS:()=>br,THORCHAIN_MAINNET_ID:()=>h,POLYGON_MAINNET_ID:()=>L,OPTIMISM_MAINNET_ID:()=>O,MAYACHAIN_MAINNET_ID:()=>F,KUJIRA_MAINNET_ID:()=>o,ETHEREUM_MAINNET_ID:()=>_,DEFAULT_SOLANA_METHODS:()=>V,DEFAULT_SOLANA_EVENTS:()=>k,DEFAULT_RELAY_URL:()=>x,DEFAULT_POLKADOT_METHODS:()=>m,DEFAULT_POLKADOT_EVENTS:()=>M,DEFAULT_NEAR_METHODS:()=>W,DEFAULT_NEAR_EVENTS:()=>w,DEFAULT_LOGGER:()=>T,DEFAULT_EIP_155_EVENTS:()=>R,DEFAULT_EIP155_METHODS:()=>X,DEFAULT_COSMOS_METHODS:()=>Z,DEFAULT_COSMOS_EVENTS:()=>tr,DEFAULT_APP_METADATA:()=>E,COSMOS_HUB_MAINNET_ID:()=>A,BSC_MAINNET_ID:()=>U,BASE_MAINNET_ID:()=>D,AVALACHE_MAINNET_ID:()=>H,ARBITRUM_ONE_MAINNET_ID:()=>l});module.exports=Zr(qr);var r=require("@swapkit/helpers");var x="wss://relay.walletconnect.com",_="eip155:1",U="eip155:56",H="eip155:43114",h="cosmos:thorchain",A="cosmos:cosmoshub-4",o="cosmos:kaiyo-1",F="cosmos:mayachain-mainnet-v1",l="eip155:42161",O="eip155:10",L="eip155:137",D="eip155:8453",T="debug",E={name:"THORSwap",description:"THORSwap multi-chain dex aggregator powered by THORChain",url:"https://app.thorswap.finance/",icons:["https://static.thorswap.net/logo.png"]},X;((p)=>{p.ETH_SEND_TRANSACTION="eth_sendTransaction";p.ETH_SIGN="eth_sign";p.PERSONAL_SIGN="personal_sign";p.ETH_SIGN_TYPED_DATA="eth_signTypedData"})(X||={});var R;((u)=>{u.ETH_CHAIN_CHANGED="chainChanged";u.ETH_ACCOUNTS_CHANGED="accountsChanged"})(R||={});var Z;((N)=>{N.COSMOS_SIGN_DIRECT="cosmos_signDirect";N.COSMOS_SIGN_AMINO="cosmos_signAmino";N.COSMOS_GET_ACCOUNTS="cosmos_getAccounts"})(Z||={});var tr;((s)=>{})(tr||={});var V;((u)=>{u.SOL_SIGN_TRANSACTION="solana_signTransaction";u.SOL_SIGN_MESSAGE="solana_signMessage"})(V||={});var k;((s)=>{})(k||={});var m;((u)=>{u.POLKADOT_SIGN_TRANSACTION="polkadot_signTransaction";u.POLKADOT_SIGN_MESSAGE="polkadot_signMessage"})(m||={});var M;((s)=>{})(M||={});var W;((I)=>{I.NEAR_SIGN_IN="near_signIn";I.NEAR_SIGN_OUT="near_signOut";I.NEAR_GET_ACCOUNTS="near_getAccounts";I.NEAR_SIGN_AND_SEND_TRANSACTION="near_signAndSendTransaction";I.NEAR_SIGN_AND_SEND_TRANSACTIONS="near_signAndSendTransactions"})(W||={});var w;((s)=>{})(w||={});var a=require("@swapkit/helpers"),Nr=require("ethers");var C=require("@swapkit/helpers");var d=(s,t)=>{return(t.find((p)=>p.startsWith(z(s)))||"")?.split(":")?.[2]||""},z=(s)=>{switch(s){case C.Chain.Avalanche:return H;case C.Chain.Base:return D;case C.Chain.BinanceSmartChain:return U;case C.Chain.Ethereum:return _;case C.Chain.THORChain:return h;case C.Chain.Arbitrum:return l;case C.Chain.Optimism:return O;case C.Chain.Polygon:return L;case C.Chain.Maya:return F;case C.Chain.Cosmos:return A;case C.Chain.Kujira:return o;default:return""}};class S extends Nr.AbstractSigner{address;chain;walletconnect;provider;constructor({chain:s,provider:t,walletconnect:u}){super(t);this.chain=s,this.walletconnect=u,this.provider=t,this.address=""}getAddress=async()=>{if(!this.walletconnect)throw new a.SwapKitError("wallet_walletconnect_connection_not_established");if(!this.address)this.address=d(this.chain,this.walletconnect.accounts);return this.address};signMessage=async(s)=>{let t=await this.walletconnect?.client.request({chainId:z(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sign",params:[s]}});return t.startsWith("0x")?t:`0x${t}`};signTransaction=()=>{throw new Error("Not implemented: signTransaction")};signTypedData=()=>{throw new Error("Not implemented: signTypedData")};sendTransaction=async({from:s,to:t,value:u,data:N})=>{let{toHexString:p}=await import("@swapkit/toolboxes/evm"),I={from:s,to:t,value:p(BigInt(u||0)),data:N};return await this.walletconnect?.client.request({chainId:z(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sendTransaction",params:[I]}})};connect=(s)=>{if(!s)throw new a.SwapKitError({errorKey:"wallet_provider_not_found",info:{wallet:a.WalletOption.WALLETCONNECT,chain:this.chain}});return new S({chain:this.chain,walletconnect:this.walletconnect,provider:s})}}var pr=async({chain:s,walletconnect:t,provider:u})=>new S({chain:s,walletconnect:t,provider:u});var rr=require("@swapkit/helpers");var Gr=(s)=>{let t=[];for(let u of s){let[N]=u.split(":");if(N&&!t.includes(N))t.push(N)}return t},Qr=(s)=>{switch(s){case"eip155":return Object.values(X);case"cosmos":return Object.values(Z);case"solana":return Object.values(V);case"polkadot":return Object.values(m);case"near":return Object.values(W);default:throw new rr.SwapKitError({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:s}})}},Xr=(s)=>{switch(s){case"eip155":return Object.values(R);case"cosmos":return[];case"solana":return Object.values(k);case"polkadot":return Object.values(M);case"near":return Object.values(w);default:throw new rr.SwapKitError({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:s}})}},Ir=(s)=>{let t=Gr(s);return Object.fromEntries(t.map((u)=>[u,{methods:Qr(u),chains:s.filter((N)=>N.startsWith(u)),events:Xr(u)}]))};var jr=r.createWallet({name:"connectWalletconnect",walletType:r.WalletOption.WALLETCONNECT,supportedChains:[r.Chain.Arbitrum,r.Chain.Avalanche,r.Chain.Base,r.Chain.BinanceSmartChain,r.Chain.Cosmos,r.Chain.Ethereum,r.Chain.Kujira,r.Chain.Maya,r.Chain.Optimism,r.Chain.Polygon,r.Chain.THORChain],connect:({addChain:s,supportedChains:t,walletType:u})=>async function N(p,I){let f=r.filterSupportedChains({chains:p,supportedChains:t,walletType:u}),{walletConnectProjectId:y}=r.SKConfig.get("apiKeys");if(!y)throw new r.SwapKitError("wallet_walletconnect_project_id_not_specified");let j=await $r(f,y,I);if(!j)throw new r.SwapKitError("wallet_walletconnect_connection_not_established");let{session:e,accounts:b}=j;return await Promise.all(f.map(async(B)=>{let v=d(B,b),G=await vr({session:e,address:v,chain:B,walletconnect:j});async function c(i){let $=await G.getAccount(i),[{address:Q,algo:g,pubkey:q}]=await j?.client.request({chainId:h,topic:e.topic,request:{method:"cosmos_getAccounts",params:{}}});return{...$,address:Q,pubkey:{type:g,value:q}}}s({...G,address:v,balance:[],chain:B,disconnect:j.disconnect,walletType:r.WalletOption.WALLETCONNECT,getAccount:B===r.Chain.THORChain?c:G.getAccount})})),!0}}),br=fr(jr);async function vr({chain:s,walletconnect:t,address:u,session:N}){switch(s){case r.Chain.Arbitrum:case r.Chain.Avalanche:case r.Chain.Base:case r.Chain.BinanceSmartChain:case r.Chain.Ethereum:case r.Chain.Optimism:case r.Chain.Polygon:{let{getProvider:p,getToolboxByChain:I}=await import("@swapkit/toolboxes/evm"),f=p(s),y=await pr({walletconnect:t,chain:s,provider:f});return I(s)({provider:f,signer:y})}case r.Chain.THORChain:{let{SignMode:p}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:I}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),{encodePubkey:f,makeAuthInfoBytes:y}=await import("@cosmjs/proto-signing"),{makeSignDoc:j}=await import("@cosmjs/amino"),{ThorchainToolbox:e,buildAminoMsg:b,buildEncodedTxBody:B,createStargateClient:v,fromBase64:G,getDefaultChainFee:c,parseAminoMessageForDirectSigning:i}=await import("@swapkit/toolboxes/cosmos"),$=e(),Q=c(s),g=(J)=>t?.client.request({chainId:h,topic:N.topic,request:{method:"cosmos_signAmino",params:{signerAddress:u,signDoc:J}}});async function q({assetValue:J,memo:P,...Cr}){let K=await $.getAccount(u);if(!K)throw new r.SwapKitError({errorKey:"wallet_missing_params",info:{account:K}});if(!K.pubkey)throw new r.SwapKitError({errorKey:"wallet_missing_params",info:{account:K,pubkey:K?.pubkey}});let{accountNumber:yr,sequence:sr=0}=K,ur=[b({chain:r.Chain.THORChain,assetValue:J,memo:P,from:u,...Cr})],Br=r.ChainId.THORChain,Yr=j(ur,Q,Br,P,yr?.toString(),sr?.toString()||"0"),n=await g(Yr),Jr=await B({chain:r.Chain.THORChain,msgs:ur.map(i),memo:P||""}),Kr=f(K.pubkey),er=y([{pubkey:Kr,sequence:sr}],Q.amount,Number.parseInt(Q.gas),void 0,void 0,p.SIGN_MODE_LEGACY_AMINO_JSON),hr=I.fromPartial({bodyBytes:Jr,authInfoBytes:er,signatures:[G(typeof n.signature==="string"?n.signature:n.signature.signature)]}),zr=I.encode(hr).finish();return(await(await v(r.SKConfig.get("rpcUrls")[r.Chain.THORChain])).broadcastTx(zr)).transactionHash}return{...$,transfer:(J)=>q(J),deposit:(J)=>q(J)}}default:throw new r.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:s,wallet:r.WalletOption.WALLETCONNECT}})}}async function $r(s,t,u){let N;try{if(!t)throw new r.SwapKitError("wallet_walletconnect_project_id_not_specified");let p=Ir(s.map(z)),{WalletConnectModalSign:I}=await import("@walletconnect/modal-sign-html"),f=new I({logger:T,relayUrl:x,projectId:t,metadata:u?.metadata||E,...u?.core}),y=await f.getSession();if(y)await f.disconnect({topic:y.topic,reason:{code:0,message:"Resetting session"}});let j=await f.connect({requiredNamespaces:p}),e=Object.values(j.namespaces).flatMap((B)=>B.accounts);return{session:j,accounts:e,client:f,disconnect:async()=>{await f.disconnect({topic:j.topic,reason:{code:0,message:"User disconnected"}})}}}catch(p){console.error(p)}finally{if(N)N.closeModal()}return}
1
+ var er={};br(er,{walletconnectWallet:()=>Ir,WC_SUPPORTED_CHAINS:()=>qr,THORCHAIN_MAINNET_ID:()=>K,POLYGON_MAINNET_ID:()=>L,OPTIMISM_MAINNET_ID:()=>l,MAYACHAIN_MAINNET_ID:()=>F,KUJIRA_MAINNET_ID:()=>A,ETHEREUM_MAINNET_ID:()=>_,DEFAULT_SOLANA_METHODS:()=>e,DEFAULT_SOLANA_EVENTS:()=>k,DEFAULT_RELAY_URL:()=>n,DEFAULT_POLKADOT_METHODS:()=>m,DEFAULT_POLKADOT_EVENTS:()=>M,DEFAULT_NEAR_METHODS:()=>W,DEFAULT_NEAR_EVENTS:()=>a,DEFAULT_LOGGER:()=>T,DEFAULT_EIP_155_EVENTS:()=>V,DEFAULT_EIP155_METHODS:()=>Q,DEFAULT_COSMOS_METHODS:()=>X,DEFAULT_COSMOS_EVENTS:()=>ur,DEFAULT_APP_METADATA:()=>D,COSMOS_HUB_MAINNET_ID:()=>H,BSC_MAINNET_ID:()=>c,BASE_MAINNET_ID:()=>o,AVALANCHE_MAINNET_ID:()=>U,ARBITRUM_ONE_MAINNET_ID:()=>O});module.exports=$r(er);var r=require("@swapkit/helpers");var n="wss://relay.walletconnect.com",_="eip155:1",c="eip155:56",U="eip155:43114",K="cosmos:thorchain",H="cosmos:cosmoshub-4",A="cosmos:kaiyo-1",F="cosmos:mayachain-mainnet-v1",O="eip155:42161",l="eip155:10",L="eip155:137",o="eip155:8453",T="debug",D={name:"THORSwap",description:"THORSwap multi-chain dex aggregator powered by THORChain",url:"https://app.thorswap.finance/",icons:["https://static.thorswap.net/logo.png"]},Q;((t)=>{t.ETH_SEND_TRANSACTION="eth_sendTransaction";t.ETH_SIGN="eth_sign";t.PERSONAL_SIGN="personal_sign";t.ETH_SIGN_TYPED_DATA="eth_signTypedData"})(Q||={});var V;((u)=>{u.ETH_CHAIN_CHANGED="chainChanged";u.ETH_ACCOUNTS_CHANGED="accountsChanged"})(V||={});var X;((p)=>{p.COSMOS_SIGN_DIRECT="cosmos_signDirect";p.COSMOS_SIGN_AMINO="cosmos_signAmino";p.COSMOS_GET_ACCOUNTS="cosmos_getAccounts"})(X||={});var ur;((s)=>{})(ur||={});var e;((u)=>{u.SOL_SIGN_TRANSACTION="solana_signTransaction";u.SOL_SIGN_MESSAGE="solana_signMessage"})(e||={});var k;((s)=>{})(k||={});var m;((u)=>{u.POLKADOT_SIGN_TRANSACTION="polkadot_signTransaction";u.POLKADOT_SIGN_MESSAGE="polkadot_signMessage"})(m||={});var M;((s)=>{})(M||={});var W;((I)=>{I.NEAR_SIGN_IN="near_signIn";I.NEAR_SIGN_OUT="near_signOut";I.NEAR_GET_ACCOUNTS="near_getAccounts";I.NEAR_SIGN_AND_SEND_TRANSACTION="near_signAndSendTransaction";I.NEAR_SIGN_AND_SEND_TRANSACTIONS="near_signAndSendTransactions"})(W||={});var a;((s)=>{})(a||={});var Z=require("@swapkit/helpers"),Nr=require("ethers");var j=require("@swapkit/helpers");var w=(s,N)=>{return(N.find((t)=>t.startsWith(z(s)))||"")?.split(":")?.[2]||""},z=(s)=>{switch(s){case j.Chain.Avalanche:return U;case j.Chain.Base:return o;case j.Chain.BinanceSmartChain:return c;case j.Chain.Ethereum:return _;case j.Chain.THORChain:return K;case j.Chain.Arbitrum:return O;case j.Chain.Optimism:return l;case j.Chain.Polygon:return L;case j.Chain.Maya:return F;case j.Chain.Cosmos:return H;case j.Chain.Kujira:return A;default:return""}};class E extends Nr.AbstractSigner{address;chain;walletconnect;provider;constructor({chain:s,provider:N,walletconnect:u}){super(N);this.chain=s,this.walletconnect=u,this.provider=N,this.address=""}getAddress=async()=>{if(!this.walletconnect)throw new Z.SwapKitError("wallet_walletconnect_connection_not_established");if(!this.address)this.address=w(this.chain,this.walletconnect.accounts);return this.address};signMessage=async(s)=>{let N=await this.walletconnect?.client.request({chainId:z(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sign",params:[s]}});return N.startsWith("0x")?N:`0x${N}`};signTransaction=()=>{throw new Error("Not implemented: signTransaction")};signTypedData=()=>{throw new Error("Not implemented: signTypedData")};sendTransaction=async({from:s,to:N,value:u,data:p})=>{let{toHexString:t}=await import("@swapkit/toolboxes/evm"),I={from:s,to:N,value:t(BigInt(u||0)),data:p};return await this.walletconnect?.client.request({chainId:z(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sendTransaction",params:[I]}})};connect=(s)=>{if(!s)throw new Z.SwapKitError({errorKey:"wallet_provider_not_found",info:{wallet:Z.WalletOption.WALLETCONNECT,chain:this.chain}});return new E({chain:this.chain,walletconnect:this.walletconnect,provider:s})}}var pr=async({chain:s,walletconnect:N,provider:u})=>new E({chain:s,walletconnect:N,provider:u});var S=require("@swapkit/helpers");var Xr=(s)=>{let N=[];for(let u of s){let[p]=u.split(":");if(p&&!N.includes(p))N.push(p)}return N},Zr=(s)=>{switch(s){case"eip155":return Object.values(Q);case"cosmos":return Object.values(X);case"solana":return Object.values(e);case"polkadot":return Object.values(m);case"near":return Object.values(W);default:throw new S.SwapKitError({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:s}})}},vr=(s)=>{switch(s){case"eip155":return Object.values(V);case"cosmos":return[];case"solana":return Object.values(k);case"polkadot":return Object.values(M);case"near":return Object.values(a);default:throw new S.SwapKitError({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:s}})}},tr=(s)=>{let N=Xr(s);return Object.fromEntries(N.map((u)=>[u,{methods:Zr(u),chains:s.filter((p)=>p.startsWith(u)),events:vr(u)}]))};var Ir=r.createWallet({name:"connectWalletconnect",walletType:r.WalletOption.WALLETCONNECT,supportedChains:[r.Chain.Arbitrum,r.Chain.Avalanche,r.Chain.Base,r.Chain.BinanceSmartChain,r.Chain.Cosmos,r.Chain.Ethereum,r.Chain.Kujira,r.Chain.Maya,r.Chain.Optimism,r.Chain.Polygon,r.Chain.THORChain],connect:({addChain:s,supportedChains:N,walletType:u})=>async function p(t,I){let f=r.filterSupportedChains({chains:t,supportedChains:N,walletType:u}),{walletConnectProjectId:y}=r.SKConfig.get("apiKeys");if(!y)throw new r.SwapKitError("wallet_walletconnect_project_id_not_specified");let C=await Vr(f,y,I);if(!C)throw new r.SwapKitError("wallet_walletconnect_connection_not_established");let{session:G,accounts:v}=C;return await Promise.all(f.map(async(J)=>{let $=w(J,v),i=await Rr({session:G,address:$,chain:J,walletconnect:C});s({...i,address:$,chain:J,disconnect:C.disconnect,walletType:r.WalletOption.WALLETCONNECT})})),!0}}),qr=fr(Ir);async function Rr({chain:s,walletconnect:N,address:u,session:p}){switch(s){case r.Chain.Arbitrum:case r.Chain.Avalanche:case r.Chain.Base:case r.Chain.BinanceSmartChain:case r.Chain.Ethereum:case r.Chain.Optimism:case r.Chain.Polygon:{let{getProvider:t,getEvmToolbox:I}=await import("@swapkit/toolboxes/evm"),f=await t(s),y=await pr({walletconnect:N,chain:s,provider:f});return await I(s,{provider:f,signer:y})}case r.Chain.THORChain:{let{SignMode:t}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:I}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),{encodePubkey:f,makeAuthInfoBytes:y}=await import("@cosmjs/proto-signing"),{makeSignDoc:C}=await import("@cosmjs/amino"),{getCosmosToolbox:G,buildAminoMsg:v,buildEncodedTxBody:J,createStargateClient:$,fromBase64:i,getDefaultChainFee:jr,parseAminoMessageForDirectSigning:Cr}=await import("@swapkit/toolboxes/cosmos"),P=await G(r.Chain.THORChain);async function yr(h){let q=await P.getAccount(h);if(s!==r.Chain.THORChain)return q;let[{address:B,algo:x,pubkey:R}]=await N?.client.request({chainId:K,topic:p.topic,request:{method:"cosmos_getAccounts",params:{}}});return{...q,address:B,pubkey:{type:x,value:R}}}let g=jr(s),hr=(h)=>N?.client.request({chainId:K,topic:p.topic,request:{method:"cosmos_signAmino",params:{signerAddress:u,signDoc:h}}});async function rr({assetValue:h,memo:b,...q}){let B=await P.getAccount(u);if(!B)throw new r.SwapKitError({errorKey:"wallet_missing_params",info:{account:B}});if(!B.pubkey)throw new r.SwapKitError({errorKey:"wallet_missing_params",info:{account:B,pubkey:B?.pubkey}});let{accountNumber:x,sequence:R=0}=B,sr=[v({assetValue:h,memo:b,sender:u,...q})],Br=r.ChainId.THORChain,Yr=C(sr,g,Br,b,x?.toString(),R?.toString()||"0"),d=await hr(Yr),Jr=await J({chain:r.Chain.THORChain,msgs:sr.map(Cr),memo:b||""}),Kr=f(B.pubkey),zr=y([{pubkey:Kr,sequence:R}],g.amount,Number.parseInt(g.gas),void 0,void 0,t.SIGN_MODE_LEGACY_AMINO_JSON),Gr=I.fromPartial({bodyBytes:Jr,authInfoBytes:zr,signatures:[i(typeof d.signature==="string"?d.signature:d.signature.signature)]}),Qr=I.encode(Gr).finish();return(await(await $(r.SKConfig.get("rpcUrls")[r.Chain.THORChain])).broadcastTx(Qr)).transactionHash}return{...P,transfer:(h)=>rr(h),deposit:(h)=>rr(h),getAccount:yr}}default:throw new r.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:s,wallet:r.WalletOption.WALLETCONNECT}})}}async function Vr(s,N,u){let p;try{if(!N)throw new r.SwapKitError("wallet_walletconnect_project_id_not_specified");let t=tr(s.map(z)),{WalletConnectModalSign:I}=await import("@walletconnect/modal-sign-html"),f=new I({logger:T,relayUrl:n,projectId:N,metadata:u?.metadata||D,...u?.core}),y=await f.getSession();if(y)await f.disconnect({topic:y.topic,reason:{code:0,message:"Resetting session"}});let C=await f.connect({requiredNamespaces:t}),G=Object.values(C.namespaces).flatMap((J)=>J.accounts);return{session:C,accounts:G,client:f,disconnect:async()=>{await f.disconnect({topic:C.topic,reason:{code:0,message:"User disconnected"}})}}}catch(t){console.error(t)}finally{if(p)p.closeModal()}return}
2
2
 
3
- //# debugId=1B3303A084F418B164756E2164756E21
3
+ //# debugId=A2308A088BB2A60564756E2164756E21
@@ -2,13 +2,13 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/walletconnect/index.ts", "../src/walletconnect/constants.ts", "../src/walletconnect/evmSigner.ts", "../src/walletconnect/helpers.ts", "../src/walletconnect/namespaces.ts"],
4
4
  "sourcesContent": [
5
- "import type { StdSignDoc } from \"@cosmjs/amino\";\nimport {\n Chain,\n ChainId,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type {\n BaseCosmosToolboxType,\n DepositParam,\n TransferParams,\n} from \"@swapkit/toolboxes/cosmos\";\nimport type { WalletConnectModalSign } from \"@walletconnect/modal-sign-html\";\nimport type { SessionTypes, SignClientTypes } from \"@walletconnect/types\";\n\nimport { getWalletSupportedChains } from \"../helpers\";\nimport {\n DEFAULT_APP_METADATA,\n DEFAULT_COSMOS_METHODS,\n DEFAULT_LOGGER,\n DEFAULT_RELAY_URL,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\nimport { getEVMSigner } from \"./evmSigner\";\nimport { chainToChainId, getAddressByChain } from \"./helpers\";\nimport { getRequiredNamespaces } from \"./namespaces\";\n\nexport * from \"./constants\";\nexport * from \"./types\";\n\nexport const walletconnectWallet = createWallet({\n name: \"connectWalletconnect\",\n walletType: WalletOption.WALLETCONNECT,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Cosmos,\n Chain.Ethereum,\n Chain.Kujira,\n Chain.Maya,\n Chain.Optimism,\n Chain.Polygon,\n Chain.THORChain,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectWalletconnect(\n chains: Chain[],\n walletconnectOptions?: SignClientTypes.Options,\n ) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const { walletConnectProjectId } = SKConfig.get(\"apiKeys\");\n\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n\n const walletconnect = await getWalletconnect(\n filteredChains,\n walletConnectProjectId,\n walletconnectOptions,\n );\n\n if (!walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n\n const { session, accounts } = walletconnect;\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const address = getAddressByChain(chain, accounts);\n const toolbox = await getToolbox({ session, address, chain, walletconnect });\n\n async function getAccount(accountAddress: string) {\n const account = await (toolbox as BaseCosmosToolboxType).getAccount(accountAddress);\n const [{ address, algo, pubkey }] = (await walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_GET_ACCOUNTS,\n params: {},\n },\n })) as [{ address: string; algo: string; pubkey: string }];\n\n return { ...account, address, pubkey: { type: algo, value: pubkey } };\n }\n\n addChain({\n ...toolbox,\n address,\n balance: [],\n chain,\n disconnect: walletconnect.disconnect,\n walletType: WalletOption.WALLETCONNECT,\n getAccount:\n chain === Chain.THORChain\n ? getAccount\n : (toolbox as BaseCosmosToolboxType).getAccount,\n });\n }),\n );\n\n return true;\n },\n});\n\nexport const WC_SUPPORTED_CHAINS = getWalletSupportedChains(walletconnectWallet);\nexport type Walletconnect = Awaited<ReturnType<typeof getWalletconnect>>;\n\nasync function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({\n chain,\n walletconnect,\n address,\n session,\n}: {\n walletconnect: Walletconnect;\n session: SessionTypes.Struct;\n chain: T;\n address: string;\n}) {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { getProvider, getToolboxByChain } = await import(\"@swapkit/toolboxes/evm\");\n\n const provider = getProvider(chain);\n const signer = await getEVMSigner({ walletconnect, chain, provider });\n const toolbox = getToolboxByChain(chain);\n\n return toolbox({ provider, signer });\n }\n\n case Chain.THORChain: {\n const { SignMode } = await import(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing.js\");\n const { TxRaw } = await import(\"cosmjs-types/cosmos/tx/v1beta1/tx.js\");\n const { encodePubkey, makeAuthInfoBytes } = await import(\"@cosmjs/proto-signing\");\n const { makeSignDoc } = await import(\"@cosmjs/amino\");\n const {\n ThorchainToolbox,\n buildAminoMsg,\n buildEncodedTxBody,\n createStargateClient,\n fromBase64,\n getDefaultChainFee,\n parseAminoMessageForDirectSigning,\n } = await import(\"@swapkit/toolboxes/cosmos\");\n const toolbox = ThorchainToolbox();\n\n const fee = getDefaultChainFee(chain);\n\n const signRequest = (signDoc: StdSignDoc) =>\n walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_SIGN_AMINO,\n params: { signerAddress: address, signDoc },\n },\n });\n\n async function thorchainTransfer({\n assetValue,\n memo,\n ...rest\n }: TransferParams | DepositParam) {\n const account = await toolbox.getAccount(address);\n if (!account) {\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { account } });\n }\n\n if (!account.pubkey) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { account, pubkey: account?.pubkey },\n });\n }\n\n const { accountNumber, sequence = 0 } = account;\n\n const msgs = [\n buildAminoMsg({ chain: Chain.THORChain, assetValue, memo, from: address, ...rest }),\n ];\n\n const chainId = ChainId.THORChain;\n\n const signDoc = makeSignDoc(\n msgs,\n fee,\n chainId,\n memo,\n accountNumber?.toString(),\n sequence?.toString() || \"0\",\n );\n\n const signature: any = await signRequest(signDoc);\n\n const bodyBytes = await buildEncodedTxBody({\n chain: Chain.THORChain,\n msgs: msgs.map(parseAminoMessageForDirectSigning),\n memo: memo || \"\",\n });\n const pubkey = encodePubkey(account.pubkey);\n const authInfoBytes = makeAuthInfoBytes(\n [{ pubkey, sequence }],\n fee.amount,\n Number.parseInt(fee.gas),\n undefined,\n undefined,\n SignMode.SIGN_MODE_LEGACY_AMINO_JSON,\n );\n\n const txRaw = TxRaw.fromPartial({\n bodyBytes,\n authInfoBytes,\n signatures: [\n fromBase64(\n typeof signature.signature === \"string\"\n ? signature.signature\n : signature.signature.signature,\n ),\n ],\n });\n const txBytes = TxRaw.encode(txRaw).finish();\n\n const broadcaster = await createStargateClient(SKConfig.get(\"rpcUrls\")[Chain.THORChain]);\n const result = await broadcaster.broadcastTx(txBytes);\n return result.transactionHash;\n }\n\n return {\n ...toolbox,\n transfer: (params: TransferParams) => thorchainTransfer(params),\n deposit: (params: DepositParam) => thorchainTransfer(params),\n };\n }\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.WALLETCONNECT },\n });\n }\n}\n\nasync function getWalletconnect(\n chains: Chain[],\n walletConnectProjectId?: string,\n walletconnectOptions?: SignClientTypes.Options,\n) {\n let modal: WalletConnectModalSign | undefined;\n try {\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n const requiredNamespaces = getRequiredNamespaces(chains.map(chainToChainId));\n\n const { WalletConnectModalSign } = await import(\"@walletconnect/modal-sign-html\");\n\n const client = new WalletConnectModalSign({\n logger: DEFAULT_LOGGER,\n relayUrl: DEFAULT_RELAY_URL,\n projectId: walletConnectProjectId,\n metadata: walletconnectOptions?.metadata || DEFAULT_APP_METADATA,\n ...walletconnectOptions?.core,\n });\n\n const oldSession = await client.getSession();\n\n // disconnect old Session cause we can't handle using it with current ui\n if (oldSession) {\n await client.disconnect({\n topic: oldSession.topic,\n reason: { code: 0, message: \"Resetting session\" },\n });\n }\n\n const session = await client.connect({ requiredNamespaces });\n\n const accounts = Object.values(session.namespaces).flatMap(\n (namespace: any) => namespace.accounts,\n );\n\n const disconnect = async () => {\n await client.disconnect({\n topic: session.topic,\n reason: { code: 0, message: \"User disconnected\" },\n });\n };\n\n return { session, accounts, client, disconnect };\n } catch (e) {\n console.error(e);\n } finally {\n if (modal) {\n // @ts-expect-error wrong typing\n modal.closeModal();\n }\n }\n return undefined;\n}\n",
6
- "import type { ClientMetadata } from \"./types\";\n\nexport const DEFAULT_RELAY_URL = \"wss://relay.walletconnect.com\";\n\nexport const ETHEREUM_MAINNET_ID = \"eip155:1\";\nexport const BSC_MAINNET_ID = \"eip155:56\";\nexport const AVALACHE_MAINNET_ID = \"eip155:43114\";\nexport const THORCHAIN_MAINNET_ID = \"cosmos:thorchain\";\nexport const COSMOS_HUB_MAINNET_ID = \"cosmos:cosmoshub-4\";\nexport const KUJIRA_MAINNET_ID = \"cosmos:kaiyo-1\";\nexport const MAYACHAIN_MAINNET_ID = \"cosmos:mayachain-mainnet-v1\";\nexport const ARBITRUM_ONE_MAINNET_ID = \"eip155:42161\";\nexport const OPTIMISM_MAINNET_ID = \"eip155:10\";\nexport const POLYGON_MAINNET_ID = \"eip155:137\";\nexport const BASE_MAINNET_ID = \"eip155:8453\";\n\nexport const DEFAULT_LOGGER = \"debug\";\n\nexport const DEFAULT_APP_METADATA: ClientMetadata = {\n name: \"THORSwap\",\n description: \"THORSwap multi-chain dex aggregator powered by THORChain\",\n url: \"https://app.thorswap.finance/\",\n icons: [\"https://static.thorswap.net/logo.png\"],\n};\n\n/**\n * EIP155\n */\nexport enum DEFAULT_EIP155_METHODS {\n ETH_SEND_TRANSACTION = \"eth_sendTransaction\",\n // not supported by most WC wallets\n // ETH_SIGN_TRANSACTION = 'eth_signTransaction',\n ETH_SIGN = \"eth_sign\",\n PERSONAL_SIGN = \"personal_sign\",\n ETH_SIGN_TYPED_DATA = \"eth_signTypedData\",\n}\n\nexport enum DEFAULT_EIP_155_EVENTS {\n ETH_CHAIN_CHANGED = \"chainChanged\",\n ETH_ACCOUNTS_CHANGED = \"accountsChanged\",\n}\n\n/**\n * COSMOS\n */\nexport enum DEFAULT_COSMOS_METHODS {\n COSMOS_SIGN_DIRECT = \"cosmos_signDirect\",\n COSMOS_SIGN_AMINO = \"cosmos_signAmino\",\n COSMOS_GET_ACCOUNTS = \"cosmos_getAccounts\",\n}\n\nexport enum DEFAULT_COSMOS_EVENTS {}\n\n/**\n * SOLANA\n */\nexport enum DEFAULT_SOLANA_METHODS {\n SOL_SIGN_TRANSACTION = \"solana_signTransaction\",\n SOL_SIGN_MESSAGE = \"solana_signMessage\",\n}\n\nexport enum DEFAULT_SOLANA_EVENTS {}\n\n/**\n * POLKADOT\n */\nexport enum DEFAULT_POLKADOT_METHODS {\n POLKADOT_SIGN_TRANSACTION = \"polkadot_signTransaction\",\n POLKADOT_SIGN_MESSAGE = \"polkadot_signMessage\",\n}\n\nexport enum DEFAULT_POLKADOT_EVENTS {}\n\n/**\n * NEAR\n */\nexport enum DEFAULT_NEAR_METHODS {\n NEAR_SIGN_IN = \"near_signIn\",\n NEAR_SIGN_OUT = \"near_signOut\",\n NEAR_GET_ACCOUNTS = \"near_getAccounts\",\n NEAR_SIGN_AND_SEND_TRANSACTION = \"near_signAndSendTransaction\",\n NEAR_SIGN_AND_SEND_TRANSACTIONS = \"near_signAndSendTransactions\",\n}\n\nexport enum DEFAULT_NEAR_EVENTS {}\n",
5
+ "import type { StdSignDoc } from \"@cosmjs/amino\";\nimport {\n Chain,\n ChainId,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams, createThorchainToolbox } from \"@swapkit/toolboxes/cosmos\";\nimport type { WalletConnectModalSign } from \"@walletconnect/modal-sign-html\";\nimport type { SessionTypes, SignClientTypes } from \"@walletconnect/types\";\n\nimport { getWalletSupportedChains } from \"../utils\";\nimport {\n DEFAULT_APP_METADATA,\n DEFAULT_COSMOS_METHODS,\n DEFAULT_LOGGER,\n DEFAULT_RELAY_URL,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\nimport { getEVMSigner } from \"./evmSigner\";\nimport { chainToChainId, getAddressByChain } from \"./helpers\";\nimport { getRequiredNamespaces } from \"./namespaces\";\n\nexport * from \"./constants\";\nexport * from \"./types\";\n\nexport const walletconnectWallet = createWallet({\n name: \"connectWalletconnect\",\n walletType: WalletOption.WALLETCONNECT,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Cosmos,\n Chain.Ethereum,\n Chain.Kujira,\n Chain.Maya,\n Chain.Optimism,\n Chain.Polygon,\n Chain.THORChain,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectWalletconnect(\n chains: Chain[],\n walletconnectOptions?: SignClientTypes.Options,\n ) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const { walletConnectProjectId } = SKConfig.get(\"apiKeys\");\n\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n\n const walletconnect = await getWalletconnect(\n filteredChains,\n walletConnectProjectId,\n walletconnectOptions,\n );\n\n if (!walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n\n const { session, accounts } = walletconnect;\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const address = getAddressByChain(chain, accounts);\n const toolbox = await getToolbox({ session, address, chain, walletconnect });\n\n addChain({\n ...toolbox,\n address,\n chain,\n disconnect: walletconnect.disconnect,\n walletType: WalletOption.WALLETCONNECT,\n });\n }),\n );\n\n return true;\n },\n});\n\nexport const WC_SUPPORTED_CHAINS = getWalletSupportedChains(walletconnectWallet);\nexport type Walletconnect = Awaited<ReturnType<typeof getWalletconnect>>;\n\nasync function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({\n chain,\n walletconnect,\n address,\n session,\n}: {\n walletconnect: Walletconnect;\n session: SessionTypes.Struct;\n chain: T;\n address: string;\n}) {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ walletconnect, chain, provider });\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return toolbox;\n }\n\n case Chain.THORChain: {\n const { SignMode } = await import(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing.js\");\n const { TxRaw } = await import(\"cosmjs-types/cosmos/tx/v1beta1/tx.js\");\n const { encodePubkey, makeAuthInfoBytes } = await import(\"@cosmjs/proto-signing\");\n const { makeSignDoc } = await import(\"@cosmjs/amino\");\n const {\n getCosmosToolbox,\n buildAminoMsg,\n buildEncodedTxBody,\n createStargateClient,\n fromBase64,\n getDefaultChainFee,\n parseAminoMessageForDirectSigning,\n } = await import(\"@swapkit/toolboxes/cosmos\");\n const toolbox = await getCosmosToolbox(Chain.THORChain);\n\n async function getAccount(accountAddress: string) {\n const cosmosToolbox = toolbox;\n const account = await (\n cosmosToolbox as Awaited<ReturnType<typeof createThorchainToolbox>>\n ).getAccount(accountAddress);\n\n if (chain !== Chain.THORChain) {\n return account;\n }\n\n const [{ address, algo, pubkey }] = (await walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_GET_ACCOUNTS,\n params: {},\n },\n })) as [{ address: string; algo: string; pubkey: string }];\n\n return { ...account, address, pubkey: { type: algo, value: pubkey } };\n }\n\n const fee = getDefaultChainFee(chain);\n\n const signRequest = (signDoc: StdSignDoc) =>\n walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_SIGN_AMINO,\n params: { signerAddress: address, signDoc },\n },\n });\n\n async function thorchainTransfer({\n assetValue,\n memo,\n ...rest\n }: GenericTransferParams | ThorchainDepositParams) {\n const account = await toolbox.getAccount(address);\n if (!account) {\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { account } });\n }\n\n if (!account.pubkey) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { account, pubkey: account?.pubkey },\n });\n }\n\n const { accountNumber, sequence = 0 } = account;\n\n const msgs = [buildAminoMsg({ assetValue, memo, sender: address, ...rest })];\n\n const chainId = ChainId.THORChain;\n\n const signDoc = makeSignDoc(\n msgs,\n fee,\n chainId,\n memo,\n accountNumber?.toString(),\n sequence?.toString() || \"0\",\n );\n\n const signature: any = await signRequest(signDoc);\n\n const bodyBytes = await buildEncodedTxBody({\n chain: Chain.THORChain,\n msgs: msgs.map(parseAminoMessageForDirectSigning),\n memo: memo || \"\",\n });\n const pubkey = encodePubkey(account.pubkey);\n const authInfoBytes = makeAuthInfoBytes(\n [{ pubkey, sequence }],\n fee.amount,\n Number.parseInt(fee.gas),\n undefined,\n undefined,\n SignMode.SIGN_MODE_LEGACY_AMINO_JSON,\n );\n\n const txRaw = TxRaw.fromPartial({\n bodyBytes,\n authInfoBytes,\n signatures: [\n fromBase64(\n typeof signature.signature === \"string\"\n ? signature.signature\n : signature.signature.signature,\n ),\n ],\n });\n const txBytes = TxRaw.encode(txRaw).finish();\n\n const broadcaster = await createStargateClient(SKConfig.get(\"rpcUrls\")[Chain.THORChain]);\n const result = await broadcaster.broadcastTx(txBytes);\n return result.transactionHash;\n }\n\n return {\n ...toolbox,\n transfer: (params: GenericTransferParams) => thorchainTransfer(params),\n deposit: (params: ThorchainDepositParams) => thorchainTransfer(params),\n getAccount,\n };\n }\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.WALLETCONNECT },\n });\n }\n}\n\nasync function getWalletconnect(\n chains: Chain[],\n walletConnectProjectId?: string,\n walletconnectOptions?: SignClientTypes.Options,\n) {\n let modal: WalletConnectModalSign | undefined;\n try {\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n const requiredNamespaces = getRequiredNamespaces(chains.map(chainToChainId));\n\n const { WalletConnectModalSign } = await import(\"@walletconnect/modal-sign-html\");\n\n const client = new WalletConnectModalSign({\n logger: DEFAULT_LOGGER,\n relayUrl: DEFAULT_RELAY_URL,\n projectId: walletConnectProjectId,\n metadata: walletconnectOptions?.metadata || DEFAULT_APP_METADATA,\n ...walletconnectOptions?.core,\n });\n\n const oldSession = await client.getSession();\n\n // disconnect old Session cause we can't handle using it with current ui\n if (oldSession) {\n await client.disconnect({\n topic: oldSession.topic,\n reason: { code: 0, message: \"Resetting session\" },\n });\n }\n\n const session = await client.connect({ requiredNamespaces });\n\n const accounts = Object.values(session.namespaces).flatMap(\n (namespace: any) => namespace.accounts,\n );\n\n const disconnect = async () => {\n await client.disconnect({\n topic: session.topic,\n reason: { code: 0, message: \"User disconnected\" },\n });\n };\n\n return { session, accounts, client, disconnect };\n } catch (e) {\n console.error(e);\n } finally {\n if (modal) {\n // @ts-expect-error wrong typing\n modal.closeModal();\n }\n }\n return undefined;\n}\n",
6
+ "import type { ClientMetadata } from \"./types\";\n\nexport const DEFAULT_RELAY_URL = \"wss://relay.walletconnect.com\";\n\nexport const ETHEREUM_MAINNET_ID = \"eip155:1\";\nexport const BSC_MAINNET_ID = \"eip155:56\";\nexport const AVALANCHE_MAINNET_ID = \"eip155:43114\";\nexport const THORCHAIN_MAINNET_ID = \"cosmos:thorchain\";\nexport const COSMOS_HUB_MAINNET_ID = \"cosmos:cosmoshub-4\";\nexport const KUJIRA_MAINNET_ID = \"cosmos:kaiyo-1\";\nexport const MAYACHAIN_MAINNET_ID = \"cosmos:mayachain-mainnet-v1\";\nexport const ARBITRUM_ONE_MAINNET_ID = \"eip155:42161\";\nexport const OPTIMISM_MAINNET_ID = \"eip155:10\";\nexport const POLYGON_MAINNET_ID = \"eip155:137\";\nexport const BASE_MAINNET_ID = \"eip155:8453\";\n\nexport const DEFAULT_LOGGER = \"debug\";\n\nexport const DEFAULT_APP_METADATA: ClientMetadata = {\n name: \"THORSwap\",\n description: \"THORSwap multi-chain dex aggregator powered by THORChain\",\n url: \"https://app.thorswap.finance/\",\n icons: [\"https://static.thorswap.net/logo.png\"],\n};\n\n/**\n * EIP155\n */\nexport enum DEFAULT_EIP155_METHODS {\n ETH_SEND_TRANSACTION = \"eth_sendTransaction\",\n // not supported by most WC wallets\n // ETH_SIGN_TRANSACTION = 'eth_signTransaction',\n ETH_SIGN = \"eth_sign\",\n PERSONAL_SIGN = \"personal_sign\",\n ETH_SIGN_TYPED_DATA = \"eth_signTypedData\",\n}\n\nexport enum DEFAULT_EIP_155_EVENTS {\n ETH_CHAIN_CHANGED = \"chainChanged\",\n ETH_ACCOUNTS_CHANGED = \"accountsChanged\",\n}\n\n/**\n * COSMOS\n */\nexport enum DEFAULT_COSMOS_METHODS {\n COSMOS_SIGN_DIRECT = \"cosmos_signDirect\",\n COSMOS_SIGN_AMINO = \"cosmos_signAmino\",\n COSMOS_GET_ACCOUNTS = \"cosmos_getAccounts\",\n}\n\nexport enum DEFAULT_COSMOS_EVENTS {}\n\n/**\n * SOLANA\n */\nexport enum DEFAULT_SOLANA_METHODS {\n SOL_SIGN_TRANSACTION = \"solana_signTransaction\",\n SOL_SIGN_MESSAGE = \"solana_signMessage\",\n}\n\nexport enum DEFAULT_SOLANA_EVENTS {}\n\n/**\n * POLKADOT\n */\nexport enum DEFAULT_POLKADOT_METHODS {\n POLKADOT_SIGN_TRANSACTION = \"polkadot_signTransaction\",\n POLKADOT_SIGN_MESSAGE = \"polkadot_signMessage\",\n}\n\nexport enum DEFAULT_POLKADOT_EVENTS {}\n\n/**\n * NEAR\n */\nexport enum DEFAULT_NEAR_METHODS {\n NEAR_SIGN_IN = \"near_signIn\",\n NEAR_SIGN_OUT = \"near_signOut\",\n NEAR_GET_ACCOUNTS = \"near_getAccounts\",\n NEAR_SIGN_AND_SEND_TRANSACTION = \"near_signAndSendTransaction\",\n NEAR_SIGN_AND_SEND_TRANSACTIONS = \"near_signAndSendTransactions\",\n}\n\nexport enum DEFAULT_NEAR_EVENTS {}\n",
7
7
  "import { type EVMChain, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport type { JsonRpcProvider, Provider, TransactionRequest, TransactionResponse } from \"ethers\";\nimport { AbstractSigner } from \"ethers\";\n\nimport { DEFAULT_EIP155_METHODS } from \"./constants\";\nimport { chainToChainId, getAddressByChain } from \"./helpers\";\nimport type { Walletconnect } from \"./index\";\n\ninterface WalletconnectEVMSignerParams {\n chain: EVMChain;\n walletconnect: Walletconnect;\n provider: Provider | JsonRpcProvider;\n}\n\nclass WalletconnectSigner extends AbstractSigner {\n address: string;\n\n private chain: EVMChain;\n private walletconnect: Walletconnect;\n readonly provider: Provider | JsonRpcProvider;\n\n constructor({ chain, provider, walletconnect }: WalletconnectEVMSignerParams) {\n super(provider);\n this.chain = chain;\n this.walletconnect = walletconnect;\n this.provider = provider;\n this.address = \"\";\n }\n\n // biome-ignore lint/suspicious/useAwait: fulfil implementation type\n getAddress = async () => {\n if (!this.walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n if (!this.address) {\n this.address = getAddressByChain(this.chain, this.walletconnect.accounts);\n }\n\n return this.address;\n };\n\n signMessage = async (message: string) => {\n // this is probably broken\n const txHash = (await this.walletconnect?.client.request({\n chainId: chainToChainId(this.chain),\n topic: this.walletconnect.session.topic,\n request: {\n method: DEFAULT_EIP155_METHODS.ETH_SIGN,\n params: [message],\n },\n })) as string;\n\n return txHash.startsWith(\"0x\") ? txHash : `0x${txHash}`;\n };\n\n signTransaction = () => {\n throw new Error(\"Not implemented: signTransaction\");\n\n // const baseTx = {\n // from,\n // to,\n // value: BigNumber.from(value || 0).toHexString(),\n // data,\n // };\n\n // const txHash = (await this.walletconnect?.client.request({\n // chainId: chainToChainId(this.chain),\n // topic: this.walletconnect.session.topic,\n // request: {\n // method: DEFAULT_EIP155_METHODS.ETH_SIGN_TRANSACTION,\n // params: [baseTx],\n // },\n // })) as string;\n\n // return txHash.startsWith('0x') ? txHash : `0x${txHash}`;\n };\n\n // ANCHOR (@Towan) - Implement in future\n signTypedData = () => {\n throw new Error(\"Not implemented: signTypedData\");\n\n // const { toHexString } = await import('@swapkit/toolboxes/evm');\n\n // const baseTx = {\n // from,\n // to,\n // value: toHexString(value || 0n),\n // data,\n // };\n\n // const txHash = (await this.walletconnect?.client.request({\n // chainId: chainToChainId(this.chain),\n // topic: this.walletconnect.session.topic,\n // request: {\n // method: DEFAULT_EIP155_METHODS.ETH_SIGN_TYPED_DATA,\n // params: [baseTx],\n // },\n // })) as string;\n\n // return txHash.startsWith('0x') ? txHash : `0x${txHash}`;\n };\n\n sendTransaction = async ({ from, to, value, data }: TransactionRequest) => {\n const { toHexString } = await import(\"@swapkit/toolboxes/evm\");\n\n const baseTx = {\n from,\n to,\n value: toHexString(BigInt(value || 0)),\n data,\n };\n const response = await this.walletconnect?.client.request({\n chainId: chainToChainId(this.chain),\n topic: this.walletconnect.session.topic,\n request: {\n method: DEFAULT_EIP155_METHODS.ETH_SEND_TRANSACTION,\n params: [baseTx],\n },\n });\n\n return response as TransactionResponse;\n };\n\n connect = (provider: Provider | null) => {\n if (!provider) {\n throw new SwapKitError({\n errorKey: \"wallet_provider_not_found\",\n info: { wallet: WalletOption.WALLETCONNECT, chain: this.chain },\n });\n }\n\n return new WalletconnectSigner({\n chain: this.chain,\n walletconnect: this.walletconnect,\n provider,\n });\n };\n}\nexport const getEVMSigner = async ({\n chain,\n walletconnect,\n provider,\n}: WalletconnectEVMSignerParams) => new WalletconnectSigner({ chain, walletconnect, provider });\n",
8
- "import { Chain, type EVMChain } from \"@swapkit/helpers\";\n\nimport {\n ARBITRUM_ONE_MAINNET_ID,\n AVALACHE_MAINNET_ID,\n BASE_MAINNET_ID,\n BSC_MAINNET_ID,\n COSMOS_HUB_MAINNET_ID,\n ETHEREUM_MAINNET_ID,\n KUJIRA_MAINNET_ID,\n MAYACHAIN_MAINNET_ID,\n OPTIMISM_MAINNET_ID,\n POLYGON_MAINNET_ID,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\n\nexport const getAddressByChain = (\n chain: EVMChain | Chain.THORChain | Chain.Maya | Chain.Kujira | Chain.Cosmos,\n accounts: string[],\n) => {\n const account = accounts.find((account) => account.startsWith(chainToChainId(chain))) || \"\";\n const address = account?.split(\":\")?.[2];\n\n return address || \"\";\n};\n\nexport const chainToChainId = (chain: Chain) => {\n switch (chain) {\n case Chain.Avalanche:\n return AVALACHE_MAINNET_ID;\n case Chain.Base:\n return BASE_MAINNET_ID;\n case Chain.BinanceSmartChain:\n return BSC_MAINNET_ID;\n case Chain.Ethereum:\n return ETHEREUM_MAINNET_ID;\n case Chain.THORChain:\n return THORCHAIN_MAINNET_ID;\n case Chain.Arbitrum:\n return ARBITRUM_ONE_MAINNET_ID;\n case Chain.Optimism:\n return OPTIMISM_MAINNET_ID;\n case Chain.Polygon:\n return POLYGON_MAINNET_ID;\n case Chain.Maya:\n return MAYACHAIN_MAINNET_ID;\n case Chain.Cosmos:\n return COSMOS_HUB_MAINNET_ID;\n case Chain.Kujira:\n return KUJIRA_MAINNET_ID;\n default:\n return \"\";\n }\n};\n",
8
+ "import { Chain, type EVMChain } from \"@swapkit/helpers\";\n\nimport {\n ARBITRUM_ONE_MAINNET_ID,\n AVALANCHE_MAINNET_ID,\n BASE_MAINNET_ID,\n BSC_MAINNET_ID,\n COSMOS_HUB_MAINNET_ID,\n ETHEREUM_MAINNET_ID,\n KUJIRA_MAINNET_ID,\n MAYACHAIN_MAINNET_ID,\n OPTIMISM_MAINNET_ID,\n POLYGON_MAINNET_ID,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\n\nexport const getAddressByChain = (\n chain: EVMChain | Chain.THORChain | Chain.Maya | Chain.Kujira | Chain.Cosmos,\n accounts: string[],\n) => {\n const account = accounts.find((account) => account.startsWith(chainToChainId(chain))) || \"\";\n const address = account?.split(\":\")?.[2];\n\n return address || \"\";\n};\n\nexport const chainToChainId = (chain: Chain) => {\n switch (chain) {\n case Chain.Avalanche:\n return AVALANCHE_MAINNET_ID;\n case Chain.Base:\n return BASE_MAINNET_ID;\n case Chain.BinanceSmartChain:\n return BSC_MAINNET_ID;\n case Chain.Ethereum:\n return ETHEREUM_MAINNET_ID;\n case Chain.THORChain:\n return THORCHAIN_MAINNET_ID;\n case Chain.Arbitrum:\n return ARBITRUM_ONE_MAINNET_ID;\n case Chain.Optimism:\n return OPTIMISM_MAINNET_ID;\n case Chain.Polygon:\n return POLYGON_MAINNET_ID;\n case Chain.Maya:\n return MAYACHAIN_MAINNET_ID;\n case Chain.Cosmos:\n return COSMOS_HUB_MAINNET_ID;\n case Chain.Kujira:\n return KUJIRA_MAINNET_ID;\n default:\n return \"\";\n }\n};\n",
9
9
  "import type { ProposalTypes } from \"@walletconnect/types\";\n\nimport { SwapKitError } from \"@swapkit/helpers\";\nimport {\n DEFAULT_COSMOS_METHODS,\n DEFAULT_EIP155_METHODS,\n DEFAULT_EIP_155_EVENTS,\n DEFAULT_NEAR_EVENTS,\n DEFAULT_NEAR_METHODS,\n DEFAULT_POLKADOT_EVENTS,\n DEFAULT_POLKADOT_METHODS,\n DEFAULT_SOLANA_EVENTS,\n DEFAULT_SOLANA_METHODS,\n} from \"./constants\";\n\nexport const getNamespacesFromChains = (chains: string[]) => {\n const supportedNamespaces: string[] = [];\n for (const chainId of chains) {\n const [namespace] = chainId.split(\":\");\n if (namespace && !supportedNamespaces.includes(namespace)) {\n supportedNamespaces.push(namespace);\n }\n }\n\n return supportedNamespaces;\n};\n\nexport const getSupportedMethodsByNamespace = (namespace: string) => {\n switch (namespace) {\n case \"eip155\":\n return Object.values(DEFAULT_EIP155_METHODS);\n case \"cosmos\":\n return Object.values(DEFAULT_COSMOS_METHODS);\n case \"solana\":\n return Object.values(DEFAULT_SOLANA_METHODS);\n case \"polkadot\":\n return Object.values(DEFAULT_POLKADOT_METHODS);\n case \"near\":\n return Object.values(DEFAULT_NEAR_METHODS);\n default:\n throw new SwapKitError({\n errorKey: \"wallet_walletconnect_namespace_not_supported\",\n info: { namespace },\n });\n }\n};\n\nexport const getSupportedEventsByNamespace = (namespace: string) => {\n switch (namespace) {\n case \"eip155\":\n return Object.values(DEFAULT_EIP_155_EVENTS);\n case \"cosmos\":\n return [];\n case \"solana\":\n return Object.values(DEFAULT_SOLANA_EVENTS);\n case \"polkadot\":\n return Object.values(DEFAULT_POLKADOT_EVENTS);\n case \"near\":\n return Object.values(DEFAULT_NEAR_EVENTS);\n default:\n throw new SwapKitError({\n errorKey: \"wallet_walletconnect_namespace_not_supported\",\n info: { namespace },\n });\n }\n};\n\nexport const getRequiredNamespaces = (chains: string[]): ProposalTypes.RequiredNamespaces => {\n const selectedNamespaces = getNamespacesFromChains(chains);\n\n return Object.fromEntries(\n selectedNamespaces.map((namespace) => [\n namespace,\n {\n methods: getSupportedMethodsByNamespace(namespace),\n chains: chains.filter((chain) => chain.startsWith(namespace)),\n events: getSupportedEventsByNamespace(namespace) as any[],\n },\n ]),\n );\n};\n"
10
10
  ],
11
- "mappings": "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",
12
- "debugId": "1B3303A084F418B164756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "A2308A088BB2A60564756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -1,4 +1,3 @@
1
- import{r as jr}from"../../chunk-ha78se5g.js";import{s as Y,t as J}from"../../chunk-5m175wfy.js";import{Chain as t,ChainId as $r,SKConfig as Cr,SwapKitError as G,WalletOption as U,createWallet as qr,filterSupportedChains as Rr}from"@swapkit/helpers";var o="wss://relay.walletconnect.com",F="eip155:1",l="eip155:56",O="eip155:43114",Z="cosmos:thorchain",L="cosmos:cosmoshub-4",D="cosmos:kaiyo-1",T="cosmos:mayachain-mainnet-v1",E="eip155:42161",S="eip155:10",rr="eip155:137",sr="eip155:8453",ur="debug",tr={name:"THORSwap",description:"THORSwap multi-chain dex aggregator powered by THORChain",url:"https://app.thorswap.finance/",icons:["https://static.thorswap.net/logo.png"]},q;((p)=>{p.ETH_SEND_TRANSACTION="eth_sendTransaction";p.ETH_SIGN="eth_sign";p.PERSONAL_SIGN="personal_sign";p.ETH_SIGN_TYPED_DATA="eth_signTypedData"})(q||={});var d;((s)=>{s.ETH_CHAIN_CHANGED="chainChanged";s.ETH_ACCOUNTS_CHANGED="accountsChanged"})(d||={});var R;((N)=>{N.COSMOS_SIGN_DIRECT="cosmos_signDirect";N.COSMOS_SIGN_AMINO="cosmos_signAmino";N.COSMOS_GET_ACCOUNTS="cosmos_getAccounts"})(R||={});var Qr;((r)=>{})(Qr||={});var c;((s)=>{s.SOL_SIGN_TRANSACTION="solana_signTransaction";s.SOL_SIGN_MESSAGE="solana_signMessage"})(c||={});var i;((r)=>{})(i||={});var g;((s)=>{s.POLKADOT_SIGN_TRANSACTION="polkadot_signTransaction";s.POLKADOT_SIGN_MESSAGE="polkadot_signMessage"})(g||={});var P;((r)=>{})(P||={});var n;((I)=>{I.NEAR_SIGN_IN="near_signIn";I.NEAR_SIGN_OUT="near_signOut";I.NEAR_GET_ACCOUNTS="near_getAccounts";I.NEAR_SIGN_AND_SEND_TRANSACTION="near_signAndSendTransaction";I.NEAR_SIGN_AND_SEND_TRANSACTIONS="near_signAndSendTransactions"})(n||={});var x;((r)=>{})(x||={});import{SwapKitError as Nr,WalletOption as Xr}from"@swapkit/helpers";import{AbstractSigner as Zr}from"ethers";import{Chain as C}from"@swapkit/helpers";var V=(r,u)=>{return(u.find((p)=>p.startsWith(z(r)))||"")?.split(":")?.[2]||""},z=(r)=>{switch(r){case C.Avalanche:return O;case C.Base:return sr;case C.BinanceSmartChain:return l;case C.Ethereum:return F;case C.THORChain:return Z;case C.Arbitrum:return E;case C.Optimism:return S;case C.Polygon:return rr;case C.Maya:return T;case C.Cosmos:return L;case C.Kujira:return D;default:return""}};class _ extends Zr{address;chain;walletconnect;provider;constructor({chain:r,provider:u,walletconnect:s}){super(u);this.chain=r,this.walletconnect=s,this.provider=u,this.address=""}getAddress=async()=>{if(!this.walletconnect)throw new Nr("wallet_walletconnect_connection_not_established");if(!this.address)this.address=V(this.chain,this.walletconnect.accounts);return this.address};signMessage=async(r)=>{let u=await this.walletconnect?.client.request({chainId:z(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sign",params:[r]}});return u.startsWith("0x")?u:`0x${u}`};signTransaction=()=>{throw new Error("Not implemented: signTransaction")};signTypedData=()=>{throw new Error("Not implemented: signTypedData")};sendTransaction=async({from:r,to:u,value:s,data:N})=>{let{toHexString:p}=await import("@swapkit/toolboxes/evm"),I={from:r,to:u,value:p(BigInt(s||0)),data:N};return await this.walletconnect?.client.request({chainId:z(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sendTransaction",params:[I]}})};connect=(r)=>{if(!r)throw new Nr({errorKey:"wallet_provider_not_found",info:{wallet:Xr.WALLETCONNECT,chain:this.chain}});return new _({chain:this.chain,walletconnect:this.walletconnect,provider:r})}}var pr=async({chain:r,walletconnect:u,provider:s})=>new _({chain:r,walletconnect:u,provider:s});import{SwapKitError as Ir}from"@swapkit/helpers";var ar=(r)=>{let u=[];for(let s of r){let[N]=s.split(":");if(N&&!u.includes(N))u.push(N)}return u},br=(r)=>{switch(r){case"eip155":return Object.values(q);case"cosmos":return Object.values(R);case"solana":return Object.values(c);case"polkadot":return Object.values(g);case"near":return Object.values(n);default:throw new Ir({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:r}})}},vr=(r)=>{switch(r){case"eip155":return Object.values(d);case"cosmos":return[];case"solana":return Object.values(i);case"polkadot":return Object.values(P);case"near":return Object.values(x);default:throw new Ir({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:r}})}},fr=(r)=>{let u=ar(r);return Object.fromEntries(u.map((s)=>[s,{methods:br(s),chains:r.filter((N)=>N.startsWith(s)),events:vr(s)}]))};var Vr=qr({name:"connectWalletconnect",walletType:U.WALLETCONNECT,supportedChains:[t.Arbitrum,t.Avalanche,t.Base,t.BinanceSmartChain,t.Cosmos,t.Ethereum,t.Kujira,t.Maya,t.Optimism,t.Polygon,t.THORChain],connect:({addChain:r,supportedChains:u,walletType:s})=>async function N(p,I){let f=Rr({chains:p,supportedChains:u,walletType:s}),{walletConnectProjectId:y}=Cr.get("apiKeys");if(!y)throw new G("wallet_walletconnect_project_id_not_specified");let j=await mr(f,y,I);if(!j)throw new G("wallet_walletconnect_connection_not_established");let{session:h,accounts:a}=j;return await Promise.all(f.map(async(B)=>{let b=V(B,a),Q=await kr({session:h,address:b,chain:B,walletconnect:j});async function k(m){let v=await Q.getAccount(m),[{address:X,algo:M,pubkey:$}]=await j?.client.request({chainId:Z,topic:h.topic,request:{method:"cosmos_getAccounts",params:{}}});return{...v,address:X,pubkey:{type:M,value:$}}}r({...Q,address:b,balance:[],chain:B,disconnect:j.disconnect,walletType:U.WALLETCONNECT,getAccount:B===t.THORChain?k:Q.getAccount})})),!0}}),Tr=jr(Vr);async function kr({chain:r,walletconnect:u,address:s,session:N}){switch(r){case t.Arbitrum:case t.Avalanche:case t.Base:case t.BinanceSmartChain:case t.Ethereum:case t.Optimism:case t.Polygon:{let{getProvider:p,getToolboxByChain:I}=await import("@swapkit/toolboxes/evm"),f=p(r),y=await pr({walletconnect:u,chain:r,provider:f});return I(r)({provider:f,signer:y})}case t.THORChain:{let{SignMode:p}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:I}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),{encodePubkey:f,makeAuthInfoBytes:y}=await import("@cosmjs/proto-signing"),{makeSignDoc:j}=await import("@cosmjs/amino"),{ThorchainToolbox:h,buildAminoMsg:a,buildEncodedTxBody:B,createStargateClient:b,fromBase64:Q,getDefaultChainFee:k,parseAminoMessageForDirectSigning:m}=await import("@swapkit/toolboxes/cosmos"),v=h(),X=k(r),M=(K)=>u?.client.request({chainId:Z,topic:N.topic,request:{method:"cosmos_signAmino",params:{signerAddress:s,signDoc:K}}});async function $({assetValue:K,memo:W,...yr}){let e=await v.getAccount(s);if(!e)throw new G({errorKey:"wallet_missing_params",info:{account:e}});if(!e.pubkey)throw new G({errorKey:"wallet_missing_params",info:{account:e,pubkey:e?.pubkey}});let{accountNumber:Br,sequence:H=0}=e,A=[a({chain:t.THORChain,assetValue:K,memo:W,from:s,...yr})],Yr=$r.THORChain,Jr=j(A,X,Yr,W,Br?.toString(),H?.toString()||"0"),w=await M(Jr),Kr=await B({chain:t.THORChain,msgs:A.map(m),memo:W||""}),er=f(e.pubkey),hr=y([{pubkey:er,sequence:H}],X.amount,Number.parseInt(X.gas),void 0,void 0,p.SIGN_MODE_LEGACY_AMINO_JSON),zr=I.fromPartial({bodyBytes:Kr,authInfoBytes:hr,signatures:[Q(typeof w.signature==="string"?w.signature:w.signature.signature)]}),Gr=I.encode(zr).finish();return(await(await b(Cr.get("rpcUrls")[t.THORChain])).broadcastTx(Gr)).transactionHash}return{...v,transfer:(K)=>$(K),deposit:(K)=>$(K)}}default:throw new G({errorKey:"wallet_chain_not_supported",info:{chain:r,wallet:U.WALLETCONNECT}})}}async function mr(r,u,s){let N;try{if(!u)throw new G("wallet_walletconnect_project_id_not_specified");let p=fr(r.map(z)),{WalletConnectModalSign:I}=await import("@walletconnect/modal-sign-html"),f=new I({logger:ur,relayUrl:o,projectId:u,metadata:s?.metadata||tr,...s?.core}),y=await f.getSession();if(y)await f.disconnect({topic:y.topic,reason:{code:0,message:"Resetting session"}});let j=await f.connect({requiredNamespaces:p}),h=Object.values(j.namespaces).flatMap((B)=>B.accounts);return{session:j,accounts:h,client:f,disconnect:async()=>{await f.disconnect({topic:j.topic,reason:{code:0,message:"User disconnected"}})}}}catch(p){console.error(p)}finally{if(N)N.closeModal()}return}export{Vr as walletconnectWallet,Tr as WC_SUPPORTED_CHAINS,Z as THORCHAIN_MAINNET_ID,rr as POLYGON_MAINNET_ID,S as OPTIMISM_MAINNET_ID,T as MAYACHAIN_MAINNET_ID,D as KUJIRA_MAINNET_ID,F as ETHEREUM_MAINNET_ID,c as DEFAULT_SOLANA_METHODS,i as DEFAULT_SOLANA_EVENTS,o as DEFAULT_RELAY_URL,g as DEFAULT_POLKADOT_METHODS,P as DEFAULT_POLKADOT_EVENTS,n as DEFAULT_NEAR_METHODS,x as DEFAULT_NEAR_EVENTS,ur as DEFAULT_LOGGER,d as DEFAULT_EIP_155_EVENTS,q as DEFAULT_EIP155_METHODS,R as DEFAULT_COSMOS_METHODS,Qr as DEFAULT_COSMOS_EVENTS,tr as DEFAULT_APP_METADATA,L as COSMOS_HUB_MAINNET_ID,l as BSC_MAINNET_ID,sr as BASE_MAINNET_ID,O as AVALACHE_MAINNET_ID,E as ARBITRUM_ONE_MAINNET_ID};
2
- export{Vr as b};
1
+ import{a as jr}from"../../chunk-czhtd6cy.js";import{c as Y,d as J}from"../../chunk-p1kdg37m.js";import{Chain as N,ChainId as Vr,SKConfig as fr,SwapKitError as G,WalletOption as c,createWallet as er,filterSupportedChains as kr}from"@swapkit/helpers";var A="wss://relay.walletconnect.com",F="eip155:1",O="eip155:56",l="eip155:43114",X="cosmos:thorchain",L="cosmos:cosmoshub-4",o="cosmos:kaiyo-1",T="cosmos:mayachain-mainnet-v1",D="eip155:42161",E="eip155:10",S="eip155:137",rr="eip155:8453",sr="debug",ur={name:"THORSwap",description:"THORSwap multi-chain dex aggregator powered by THORChain",url:"https://app.thorswap.finance/",icons:["https://static.thorswap.net/logo.png"]},R;((t)=>{t.ETH_SEND_TRANSACTION="eth_sendTransaction";t.ETH_SIGN="eth_sign";t.PERSONAL_SIGN="personal_sign";t.ETH_SIGN_TYPED_DATA="eth_signTypedData"})(R||={});var w;((s)=>{s.ETH_CHAIN_CHANGED="chainChanged";s.ETH_ACCOUNTS_CHANGED="accountsChanged"})(w||={});var V;((p)=>{p.COSMOS_SIGN_DIRECT="cosmos_signDirect";p.COSMOS_SIGN_AMINO="cosmos_signAmino";p.COSMOS_GET_ACCOUNTS="cosmos_getAccounts"})(V||={});var Zr;((r)=>{})(Zr||={});var i;((s)=>{s.SOL_SIGN_TRANSACTION="solana_signTransaction";s.SOL_SIGN_MESSAGE="solana_signMessage"})(i||={});var P;((r)=>{})(P||={});var g;((s)=>{s.POLKADOT_SIGN_TRANSACTION="polkadot_signTransaction";s.POLKADOT_SIGN_MESSAGE="polkadot_signMessage"})(g||={});var x;((r)=>{})(x||={});var d;((I)=>{I.NEAR_SIGN_IN="near_signIn";I.NEAR_SIGN_OUT="near_signOut";I.NEAR_GET_ACCOUNTS="near_getAccounts";I.NEAR_SIGN_AND_SEND_TRANSACTION="near_signAndSendTransaction";I.NEAR_SIGN_AND_SEND_TRANSACTIONS="near_signAndSendTransactions"})(d||={});var n;((r)=>{})(n||={});import{SwapKitError as Nr,WalletOption as vr}from"@swapkit/helpers";import{AbstractSigner as $r}from"ethers";import{Chain as C}from"@swapkit/helpers";var e=(r,u)=>{return(u.find((t)=>t.startsWith(z(r)))||"")?.split(":")?.[2]||""},z=(r)=>{switch(r){case C.Avalanche:return l;case C.Base:return rr;case C.BinanceSmartChain:return O;case C.Ethereum:return F;case C.THORChain:return X;case C.Arbitrum:return D;case C.Optimism:return E;case C.Polygon:return S;case C.Maya:return T;case C.Cosmos:return L;case C.Kujira:return o;default:return""}};class _ extends $r{address;chain;walletconnect;provider;constructor({chain:r,provider:u,walletconnect:s}){super(u);this.chain=r,this.walletconnect=s,this.provider=u,this.address=""}getAddress=async()=>{if(!this.walletconnect)throw new Nr("wallet_walletconnect_connection_not_established");if(!this.address)this.address=e(this.chain,this.walletconnect.accounts);return this.address};signMessage=async(r)=>{let u=await this.walletconnect?.client.request({chainId:z(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sign",params:[r]}});return u.startsWith("0x")?u:`0x${u}`};signTransaction=()=>{throw new Error("Not implemented: signTransaction")};signTypedData=()=>{throw new Error("Not implemented: signTypedData")};sendTransaction=async({from:r,to:u,value:s,data:p})=>{let{toHexString:t}=await import("@swapkit/toolboxes/evm"),I={from:r,to:u,value:t(BigInt(s||0)),data:p};return await this.walletconnect?.client.request({chainId:z(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sendTransaction",params:[I]}})};connect=(r)=>{if(!r)throw new Nr({errorKey:"wallet_provider_not_found",info:{wallet:vr.WALLETCONNECT,chain:this.chain}});return new _({chain:this.chain,walletconnect:this.walletconnect,provider:r})}}var pr=async({chain:r,walletconnect:u,provider:s})=>new _({chain:r,walletconnect:u,provider:s});import{SwapKitError as tr}from"@swapkit/helpers";var br=(r)=>{let u=[];for(let s of r){let[p]=s.split(":");if(p&&!u.includes(p))u.push(p)}return u},qr=(r)=>{switch(r){case"eip155":return Object.values(R);case"cosmos":return Object.values(V);case"solana":return Object.values(i);case"polkadot":return Object.values(g);case"near":return Object.values(d);default:throw new tr({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:r}})}},Rr=(r)=>{switch(r){case"eip155":return Object.values(w);case"cosmos":return[];case"solana":return Object.values(P);case"polkadot":return Object.values(x);case"near":return Object.values(n);default:throw new tr({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:r}})}},Ir=(r)=>{let u=br(r);return Object.fromEntries(u.map((s)=>[s,{methods:qr(s),chains:r.filter((p)=>p.startsWith(s)),events:Rr(s)}]))};var mr=er({name:"connectWalletconnect",walletType:c.WALLETCONNECT,supportedChains:[N.Arbitrum,N.Avalanche,N.Base,N.BinanceSmartChain,N.Cosmos,N.Ethereum,N.Kujira,N.Maya,N.Optimism,N.Polygon,N.THORChain],connect:({addChain:r,supportedChains:u,walletType:s})=>async function p(t,I){let f=kr({chains:t,supportedChains:u,walletType:s}),{walletConnectProjectId:y}=fr.get("apiKeys");if(!y)throw new G("wallet_walletconnect_project_id_not_specified");let j=await Wr(f,y,I);if(!j)throw new G("wallet_walletconnect_connection_not_established");let{session:Q,accounts:Z}=j;return await Promise.all(f.map(async(K)=>{let v=e(K,Z),k=await Mr({session:Q,address:v,chain:K,walletconnect:j});r({...k,address:v,chain:K,disconnect:j.disconnect,walletType:c.WALLETCONNECT})})),!0}}),Er=jr(mr);async function Mr({chain:r,walletconnect:u,address:s,session:p}){switch(r){case N.Arbitrum:case N.Avalanche:case N.Base:case N.BinanceSmartChain:case N.Ethereum:case N.Optimism:case N.Polygon:{let{getProvider:t,getEvmToolbox:I}=await import("@swapkit/toolboxes/evm"),f=await t(r),y=await pr({walletconnect:u,chain:r,provider:f});return await I(r,{provider:f,signer:y})}case N.THORChain:{let{SignMode:t}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:I}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),{encodePubkey:f,makeAuthInfoBytes:y}=await import("@cosmjs/proto-signing"),{makeSignDoc:j}=await import("@cosmjs/amino"),{getCosmosToolbox:Q,buildAminoMsg:Z,buildEncodedTxBody:K,createStargateClient:v,fromBase64:k,getDefaultChainFee:Cr,parseAminoMessageForDirectSigning:yr}=await import("@swapkit/toolboxes/cosmos"),m=await Q(N.THORChain);async function hr(h){let b=await m.getAccount(h);if(r!==N.THORChain)return b;let[{address:B,algo:W,pubkey:q}]=await u?.client.request({chainId:X,topic:p.topic,request:{method:"cosmos_getAccounts",params:{}}});return{...b,address:B,pubkey:{type:W,value:q}}}let M=Cr(r),Br=(h)=>u?.client.request({chainId:X,topic:p.topic,request:{method:"cosmos_signAmino",params:{signerAddress:s,signDoc:h}}});async function U({assetValue:h,memo:$,...b}){let B=await m.getAccount(s);if(!B)throw new G({errorKey:"wallet_missing_params",info:{account:B}});if(!B.pubkey)throw new G({errorKey:"wallet_missing_params",info:{account:B,pubkey:B?.pubkey}});let{accountNumber:W,sequence:q=0}=B,H=[Z({assetValue:h,memo:$,sender:s,...b})],Yr=Vr.THORChain,Jr=j(H,M,Yr,$,W?.toString(),q?.toString()||"0"),a=await Br(Jr),Kr=await K({chain:N.THORChain,msgs:H.map(yr),memo:$||""}),zr=f(B.pubkey),Gr=y([{pubkey:zr,sequence:q}],M.amount,Number.parseInt(M.gas),void 0,void 0,t.SIGN_MODE_LEGACY_AMINO_JSON),Qr=I.fromPartial({bodyBytes:Kr,authInfoBytes:Gr,signatures:[k(typeof a.signature==="string"?a.signature:a.signature.signature)]}),Xr=I.encode(Qr).finish();return(await(await v(fr.get("rpcUrls")[N.THORChain])).broadcastTx(Xr)).transactionHash}return{...m,transfer:(h)=>U(h),deposit:(h)=>U(h),getAccount:hr}}default:throw new G({errorKey:"wallet_chain_not_supported",info:{chain:r,wallet:c.WALLETCONNECT}})}}async function Wr(r,u,s){let p;try{if(!u)throw new G("wallet_walletconnect_project_id_not_specified");let t=Ir(r.map(z)),{WalletConnectModalSign:I}=await import("@walletconnect/modal-sign-html"),f=new I({logger:sr,relayUrl:A,projectId:u,metadata:s?.metadata||ur,...s?.core}),y=await f.getSession();if(y)await f.disconnect({topic:y.topic,reason:{code:0,message:"Resetting session"}});let j=await f.connect({requiredNamespaces:t}),Q=Object.values(j.namespaces).flatMap((K)=>K.accounts);return{session:j,accounts:Q,client:f,disconnect:async()=>{await f.disconnect({topic:j.topic,reason:{code:0,message:"User disconnected"}})}}}catch(t){console.error(t)}finally{if(p)p.closeModal()}return}export{mr as walletconnectWallet,Er as WC_SUPPORTED_CHAINS,X as THORCHAIN_MAINNET_ID,S as POLYGON_MAINNET_ID,E as OPTIMISM_MAINNET_ID,T as MAYACHAIN_MAINNET_ID,o as KUJIRA_MAINNET_ID,F as ETHEREUM_MAINNET_ID,i as DEFAULT_SOLANA_METHODS,P as DEFAULT_SOLANA_EVENTS,A as DEFAULT_RELAY_URL,g as DEFAULT_POLKADOT_METHODS,x as DEFAULT_POLKADOT_EVENTS,d as DEFAULT_NEAR_METHODS,n as DEFAULT_NEAR_EVENTS,sr as DEFAULT_LOGGER,w as DEFAULT_EIP_155_EVENTS,R as DEFAULT_EIP155_METHODS,V as DEFAULT_COSMOS_METHODS,Zr as DEFAULT_COSMOS_EVENTS,ur as DEFAULT_APP_METADATA,L as COSMOS_HUB_MAINNET_ID,O as BSC_MAINNET_ID,rr as BASE_MAINNET_ID,l as AVALANCHE_MAINNET_ID,D as ARBITRUM_ONE_MAINNET_ID};
3
2
 
4
- //# debugId=97FEA8EB9EABE5FD64756E2164756E21
3
+ //# debugId=CF101C8AB8BC593A64756E2164756E21