@swapkit/wallets 4.0.0-beta.54 → 4.0.0-beta.56

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 (294) hide show
  1. package/dist/{chunk-e674mh4n.js → chunk-mcrgqfr9.js} +3 -3
  2. package/dist/{chunk-e674mh4n.js.map → chunk-mcrgqfr9.js.map} +1 -1
  3. package/dist/{chunk-mvbb9fwb.js → chunk-sbf0f2p4.js} +2 -2
  4. package/dist/{chunk-p2ca0j1v.js → chunk-yqaz2d25.js} +3 -3
  5. package/dist/{chunk-p2ca0j1v.js.map → chunk-yqaz2d25.js.map} +1 -1
  6. package/dist/src/bitget/index.cjs +2 -2
  7. package/dist/src/bitget/index.cjs.map +3 -3
  8. package/dist/src/bitget/index.js +2 -2
  9. package/dist/src/bitget/index.js.map +3 -3
  10. package/dist/src/coinbase/index.cjs +2 -2
  11. package/dist/src/coinbase/index.cjs.map +3 -3
  12. package/dist/src/coinbase/index.js +2 -2
  13. package/dist/src/coinbase/index.js.map +3 -3
  14. package/dist/src/cosmostation/index.cjs +2 -2
  15. package/dist/src/cosmostation/index.cjs.map +3 -3
  16. package/dist/src/cosmostation/index.js +2 -2
  17. package/dist/src/cosmostation/index.js.map +3 -3
  18. package/dist/src/ctrl/index.cjs +2 -2
  19. package/dist/src/ctrl/index.cjs.map +3 -3
  20. package/dist/src/ctrl/index.js +2 -2
  21. package/dist/src/ctrl/index.js.map +3 -3
  22. package/dist/src/evm-extensions/index.cjs +2 -2
  23. package/dist/src/evm-extensions/index.cjs.map +3 -3
  24. package/dist/src/evm-extensions/index.js +2 -2
  25. package/dist/src/evm-extensions/index.js.map +3 -3
  26. package/dist/src/exodus/index.cjs +2 -2
  27. package/dist/src/exodus/index.cjs.map +3 -3
  28. package/dist/src/exodus/index.js +2 -2
  29. package/dist/src/exodus/index.js.map +3 -3
  30. package/dist/src/index.cjs +2 -2
  31. package/dist/src/index.cjs.map +5 -3
  32. package/dist/src/index.js +2 -2
  33. package/dist/src/index.js.map +5 -3
  34. package/dist/src/keepkey-bex/index.cjs +2 -2
  35. package/dist/src/keepkey-bex/index.cjs.map +3 -3
  36. package/dist/src/keepkey-bex/index.js +2 -2
  37. package/dist/src/keepkey-bex/index.js.map +3 -3
  38. package/dist/src/keepkey.cjs +4 -0
  39. package/dist/src/keepkey.cjs.map +10 -0
  40. package/dist/src/keepkey.js +4 -0
  41. package/dist/src/keepkey.js.map +10 -0
  42. package/dist/src/keplr/index.cjs +2 -2
  43. package/dist/src/keplr/index.cjs.map +3 -3
  44. package/dist/src/keplr/index.js +2 -2
  45. package/dist/src/keplr/index.js.map +3 -3
  46. package/dist/src/keystore.cjs +4 -0
  47. package/dist/src/keystore.cjs.map +10 -0
  48. package/dist/src/keystore.js +4 -0
  49. package/dist/src/keystore.js.map +10 -0
  50. package/dist/src/ledger.cjs +4 -0
  51. package/dist/src/ledger.cjs.map +10 -0
  52. package/dist/src/ledger.js +4 -0
  53. package/dist/src/ledger.js.map +10 -0
  54. package/dist/src/okx/index.cjs +2 -2
  55. package/dist/src/okx/index.cjs.map +4 -4
  56. package/dist/src/okx/index.js +2 -2
  57. package/dist/src/okx/index.js.map +4 -4
  58. package/dist/src/onekey/index.cjs +2 -2
  59. package/dist/src/onekey/index.cjs.map +3 -3
  60. package/dist/src/onekey/index.js +2 -2
  61. package/dist/src/onekey/index.js.map +3 -3
  62. package/dist/src/phantom/index.cjs +2 -2
  63. package/dist/src/phantom/index.cjs.map +3 -3
  64. package/dist/src/phantom/index.js +2 -2
  65. package/dist/src/phantom/index.js.map +3 -3
  66. package/dist/src/polkadotjs/index.cjs +2 -2
  67. package/dist/src/polkadotjs/index.cjs.map +3 -3
  68. package/dist/src/polkadotjs/index.js +2 -2
  69. package/dist/src/polkadotjs/index.js.map +3 -3
  70. package/dist/src/radix/index.cjs +2 -2
  71. package/dist/src/radix/index.cjs.map +3 -3
  72. package/dist/src/radix/index.js +2 -2
  73. package/dist/src/radix/index.js.map +3 -3
  74. package/dist/src/talisman/index.cjs +2 -2
  75. package/dist/src/talisman/index.cjs.map +3 -3
  76. package/dist/src/talisman/index.js +2 -2
  77. package/dist/src/talisman/index.js.map +3 -3
  78. package/dist/src/trezor.cjs +4 -0
  79. package/dist/src/trezor.cjs.map +10 -0
  80. package/dist/src/trezor.js +4 -0
  81. package/dist/src/trezor.js.map +10 -0
  82. package/dist/src/tronlink/index.cjs +4 -0
  83. package/dist/src/tronlink/index.cjs.map +11 -0
  84. package/dist/src/tronlink/index.js +4 -0
  85. package/dist/src/tronlink/index.js.map +11 -0
  86. package/dist/src/vultisig/index.cjs +2 -2
  87. package/dist/src/vultisig/index.cjs.map +3 -3
  88. package/dist/src/vultisig/index.js +2 -2
  89. package/dist/src/vultisig/index.js.map +3 -3
  90. package/dist/src/walletconnect/index.cjs +2 -2
  91. package/dist/src/walletconnect/index.cjs.map +3 -3
  92. package/dist/src/walletconnect/index.js +2 -2
  93. package/dist/src/walletconnect/index.js.map +3 -3
  94. package/dist/src/xaman/index.cjs +2 -2
  95. package/dist/src/xaman/index.cjs.map +5 -5
  96. package/dist/src/xaman/index.js +2 -2
  97. package/dist/src/xaman/index.js.map +5 -5
  98. package/dist/types/bitget/helpers.d.ts +330 -0
  99. package/dist/types/bitget/helpers.d.ts.map +1 -0
  100. package/dist/types/bitget/index.d.ts +11 -0
  101. package/dist/types/bitget/index.d.ts.map +1 -0
  102. package/dist/types/coinbase/index.d.ts +11 -0
  103. package/dist/types/coinbase/index.d.ts.map +1 -0
  104. package/dist/types/coinbase/signer.d.ts +91 -0
  105. package/dist/types/coinbase/signer.d.ts.map +1 -0
  106. package/dist/types/cosmostation/index.d.ts +21 -0
  107. package/dist/types/cosmostation/index.d.ts.map +1 -0
  108. package/dist/types/ctrl/index.d.ts +11 -0
  109. package/dist/types/ctrl/index.d.ts.map +1 -0
  110. package/dist/types/ctrl/walletHelpers.d.ts +24 -0
  111. package/dist/types/ctrl/walletHelpers.d.ts.map +1 -0
  112. package/dist/types/evm-extensions/index.d.ts +101 -0
  113. package/dist/types/evm-extensions/index.d.ts.map +1 -0
  114. package/{src/evm-extensions/types.ts → dist/types/evm-extensions/types.d.ts} +11 -13
  115. package/dist/types/evm-extensions/types.d.ts.map +1 -0
  116. package/dist/types/exodus/index.d.ts +14 -0
  117. package/dist/types/exodus/index.d.ts.map +1 -0
  118. package/dist/types/helpers/near.d.ts +57 -0
  119. package/dist/types/helpers/near.d.ts.map +1 -0
  120. package/dist/types/index.d.ts +4 -0
  121. package/dist/types/index.d.ts.map +1 -0
  122. package/dist/types/keepkey-bex/index.d.ts +11 -0
  123. package/dist/types/keepkey-bex/index.d.ts.map +1 -0
  124. package/dist/types/keepkey-bex/walletHelpers.d.ts +45 -0
  125. package/dist/types/keepkey-bex/walletHelpers.d.ts.map +1 -0
  126. package/dist/types/keepkey.d.ts +2 -0
  127. package/dist/types/keepkey.d.ts.map +1 -0
  128. package/dist/types/keplr/chainRegistry.d.ts +4 -0
  129. package/dist/types/keplr/chainRegistry.d.ts.map +1 -0
  130. package/dist/types/keplr/index.d.ts +11 -0
  131. package/dist/types/keplr/index.d.ts.map +1 -0
  132. package/dist/types/keystore.d.ts +2 -0
  133. package/dist/types/keystore.d.ts.map +1 -0
  134. package/dist/types/ledger.d.ts +2 -0
  135. package/dist/types/ledger.d.ts.map +1 -0
  136. package/dist/types/okx/helpers.d.ts +227 -0
  137. package/dist/types/okx/helpers.d.ts.map +1 -0
  138. package/dist/types/okx/index.d.ts +11 -0
  139. package/dist/types/okx/index.d.ts.map +1 -0
  140. package/dist/types/okx/types.d.ts +104 -0
  141. package/dist/types/okx/types.d.ts.map +1 -0
  142. package/dist/types/onekey/evmSigner.d.ts +29 -0
  143. package/dist/types/onekey/evmSigner.d.ts.map +1 -0
  144. package/dist/types/onekey/index.d.ts +11 -0
  145. package/dist/types/onekey/index.d.ts.map +1 -0
  146. package/dist/types/phantom/index.d.ts +12 -0
  147. package/dist/types/phantom/index.d.ts.map +1 -0
  148. package/dist/types/polkadotjs/index.d.ts +11 -0
  149. package/dist/types/polkadotjs/index.d.ts.map +1 -0
  150. package/dist/types/radix/index.d.ts +11 -0
  151. package/dist/types/radix/index.d.ts.map +1 -0
  152. package/dist/types/talisman/index.d.ts +11 -0
  153. package/dist/types/talisman/index.d.ts.map +1 -0
  154. package/dist/types/trezor.d.ts +2 -0
  155. package/dist/types/trezor.d.ts.map +1 -0
  156. package/dist/types/tronlink/helpers.d.ts +24 -0
  157. package/dist/types/tronlink/helpers.d.ts.map +1 -0
  158. package/dist/types/tronlink/index.d.ts +11 -0
  159. package/dist/types/tronlink/index.d.ts.map +1 -0
  160. package/dist/types/tronlink/types.d.ts +59 -0
  161. package/dist/types/tronlink/types.d.ts.map +1 -0
  162. package/dist/types/types.d.ts +249 -0
  163. package/dist/types/types.d.ts.map +1 -0
  164. package/dist/types/utils.d.ts +4 -0
  165. package/dist/types/utils.d.ts.map +1 -0
  166. package/dist/types/vultisig/index.d.ts +11 -0
  167. package/dist/types/vultisig/index.d.ts.map +1 -0
  168. package/dist/types/vultisig/walletHelpers.d.ts +34 -0
  169. package/dist/types/vultisig/walletHelpers.d.ts.map +1 -0
  170. package/dist/types/walletconnect/constants.d.ts +85 -0
  171. package/dist/types/walletconnect/constants.d.ts.map +1 -0
  172. package/dist/types/walletconnect/evmSigner.d.ts +25 -0
  173. package/dist/types/walletconnect/evmSigner.d.ts.map +1 -0
  174. package/dist/types/walletconnect/helpers.d.ts +4 -0
  175. package/dist/types/walletconnect/helpers.d.ts.map +1 -0
  176. package/dist/types/walletconnect/index.d.ts +22 -0
  177. package/dist/types/walletconnect/index.d.ts.map +1 -0
  178. package/dist/types/walletconnect/namespaces.d.ts +7 -0
  179. package/dist/types/walletconnect/namespaces.d.ts.map +1 -0
  180. package/dist/types/walletconnect/types.d.ts +7 -0
  181. package/dist/types/walletconnect/types.d.ts.map +1 -0
  182. package/dist/types/xaman/helpers.d.ts +54 -0
  183. package/dist/types/xaman/helpers.d.ts.map +1 -0
  184. package/dist/types/xaman/index.d.ts +14 -0
  185. package/dist/types/xaman/index.d.ts.map +1 -0
  186. package/dist/types/xaman/types.d.ts +24 -0
  187. package/dist/types/xaman/types.d.ts.map +1 -0
  188. package/dist/types/xaman/walletMethods.d.ts +16 -0
  189. package/dist/types/xaman/walletMethods.d.ts.map +1 -0
  190. package/package.json +53 -74
  191. package/dist/chunk-2aa1w78q.js +0 -4
  192. package/dist/chunk-2aa1w78q.js.map +0 -10
  193. package/dist/chunk-31bmhjxx.js +0 -4
  194. package/dist/chunk-31bmhjxx.js.map +0 -10
  195. package/dist/chunk-3etn0w20.js +0 -4
  196. package/dist/chunk-3etn0w20.js.map +0 -10
  197. package/dist/chunk-bk58smyr.js +0 -4
  198. package/dist/chunk-bk58smyr.js.map +0 -10
  199. package/dist/chunk-etm8zfkk.js +0 -4
  200. package/dist/chunk-etm8zfkk.js.map +0 -10
  201. package/dist/chunk-h7myvxxm.js +0 -5
  202. package/dist/chunk-h7myvxxm.js.map +0 -10
  203. package/dist/chunk-htvthkj1.js +0 -5
  204. package/dist/chunk-htvthkj1.js.map +0 -10
  205. package/dist/chunk-nfas79hz.js +0 -4
  206. package/dist/chunk-nfas79hz.js.map +0 -10
  207. package/dist/src/keepkey/index.cjs +0 -4
  208. package/dist/src/keepkey/index.cjs.map +0 -15
  209. package/dist/src/keepkey/index.js +0 -4
  210. package/dist/src/keepkey/index.js.map +0 -15
  211. package/dist/src/keystore/index.cjs +0 -4
  212. package/dist/src/keystore/index.cjs.map +0 -11
  213. package/dist/src/keystore/index.js +0 -4
  214. package/dist/src/keystore/index.js.map +0 -11
  215. package/dist/src/ledger/index.cjs +0 -5
  216. package/dist/src/ledger/index.cjs.map +0 -25
  217. package/dist/src/ledger/index.js +0 -5
  218. package/dist/src/ledger/index.js.map +0 -25
  219. package/dist/src/trezor/index.cjs +0 -4
  220. package/dist/src/trezor/index.cjs.map +0 -10
  221. package/dist/src/trezor/index.js +0 -4
  222. package/dist/src/trezor/index.js.map +0 -10
  223. package/src/bitget/helpers.ts +0 -167
  224. package/src/bitget/index.ts +0 -34
  225. package/src/coinbase/index.ts +0 -52
  226. package/src/coinbase/signer.ts +0 -83
  227. package/src/cosmostation/index.ts +0 -142
  228. package/src/ctrl/index.ts +0 -248
  229. package/src/ctrl/walletHelpers.ts +0 -297
  230. package/src/evm-extensions/index.ts +0 -134
  231. package/src/exodus/index.ts +0 -179
  232. package/src/helpers/near-browser-provider.d.ts +0 -286
  233. package/src/helpers/near.ts +0 -206
  234. package/src/index.ts +0 -2
  235. package/src/keepkey/chains/cosmos.ts +0 -78
  236. package/src/keepkey/chains/evm.ts +0 -125
  237. package/src/keepkey/chains/mayachain.ts +0 -123
  238. package/src/keepkey/chains/ripple.ts +0 -118
  239. package/src/keepkey/chains/thorchain.ts +0 -118
  240. package/src/keepkey/chains/utxo.ts +0 -147
  241. package/src/keepkey/coins.ts +0 -71
  242. package/src/keepkey/index.ts +0 -153
  243. package/src/keepkey-bex/index.ts +0 -162
  244. package/src/keepkey-bex/walletHelpers.ts +0 -255
  245. package/src/keplr/chainRegistry.ts +0 -211
  246. package/src/keplr/index.ts +0 -55
  247. package/src/keystore/helpers.ts +0 -102
  248. package/src/keystore/index.ts +0 -73
  249. package/src/ledger/clients/cosmos.ts +0 -102
  250. package/src/ledger/clients/evm.ts +0 -183
  251. package/src/ledger/clients/near.ts +0 -86
  252. package/src/ledger/clients/thorchain/common.ts +0 -117
  253. package/src/ledger/clients/thorchain/helpers.ts +0 -149
  254. package/src/ledger/clients/thorchain/index.ts +0 -94
  255. package/src/ledger/clients/thorchain/lib.ts +0 -300
  256. package/src/ledger/clients/thorchain/utils.ts +0 -76
  257. package/src/ledger/clients/tron.ts +0 -92
  258. package/src/ledger/clients/utxo.ts +0 -148
  259. package/src/ledger/clients/xrp.ts +0 -66
  260. package/src/ledger/cosmosTypes.ts +0 -101
  261. package/src/ledger/helpers/getLedgerAddress.ts +0 -67
  262. package/src/ledger/helpers/getLedgerClient.ts +0 -124
  263. package/src/ledger/helpers/getLedgerTransport.ts +0 -80
  264. package/src/ledger/helpers/index.ts +0 -3
  265. package/src/ledger/index.ts +0 -311
  266. package/src/ledger/interfaces/CosmosLedgerInterface.ts +0 -65
  267. package/src/ledger/types.ts +0 -45
  268. package/src/okx/helpers.ts +0 -181
  269. package/src/okx/index.ts +0 -43
  270. package/src/okx/types.ts +0 -117
  271. package/src/onekey/evmSigner.ts +0 -133
  272. package/src/onekey/index.ts +0 -213
  273. package/src/phantom/index.ts +0 -126
  274. package/src/polkadotjs/index.ts +0 -67
  275. package/src/radix/index.ts +0 -202
  276. package/src/talisman/index.ts +0 -130
  277. package/src/trezor/evmSigner.ts +0 -197
  278. package/src/trezor/index.ts +0 -260
  279. package/src/types.ts +0 -280
  280. package/src/utils.ts +0 -60
  281. package/src/vultisig/index.ts +0 -199
  282. package/src/vultisig/walletHelpers.ts +0 -359
  283. package/src/walletconnect/constants.ts +0 -104
  284. package/src/walletconnect/evmSigner.ts +0 -147
  285. package/src/walletconnect/helpers.ts +0 -77
  286. package/src/walletconnect/index.ts +0 -460
  287. package/src/walletconnect/namespaces.ts +0 -87
  288. package/src/walletconnect/types.ts +0 -6
  289. package/src/xaman/README.md +0 -66
  290. package/src/xaman/helpers.ts +0 -59
  291. package/src/xaman/index.ts +0 -79
  292. package/src/xaman/types.ts +0 -26
  293. package/src/xaman/walletMethods.ts +0 -126
  294. /package/dist/{chunk-mvbb9fwb.js.map → chunk-sbf0f2p4.js.map} +0 -0
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/trezor/index.ts"],
4
- "sourcesContent": [
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.Arbitrum:\n case Chain.Aurora:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Gnosis:\n case Chain.Optimism:\n case Chain.Polygon: {\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 TrezorConnect = (await import(\"@trezor/connect-web\")).default;\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 TrezorConnect = (await import(\"@trezor/connect-web\")).default;\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 outputs: psbt.txOutputs.map((output) => {\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 const outputAddress =\n chain === Chain.BitcoinCash\n ? toolbox.stripPrefix(toCashAddress(output.address))\n : output.address;\n\n const isChangeAddress = outputAddress === address;\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.Aurora,\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.Gnosis,\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 TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const { success } = await TrezorConnect.getDeviceState();\n\n if (!success) {\n const trezorConfig = SKConfig.get(\"integrations\").trezor;\n const manifest = trezorConfig\n ? {\n ...trezorConfig,\n appName: (trezorConfig as any).appName || \"SwapKit\",\n }\n : {\n appUrl: \"\",\n email: \"\",\n appName: \"SwapKit\",\n };\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
- ],
7
- "mappings": "qFAWO,IAXP,8BAgBA,SAAS,CAAa,CAAC,EAAqC,CAC1D,OAAQ,EAAe,QAChB,IACH,MAAO,CAAE,MAAO,eAAgB,OAAQ,cAAe,MACpD,IACH,MAAO,CAAE,MAAO,mBAAoB,OAAQ,kBAAmB,MAC5D,IACH,MAAO,CAAE,MAAO,eAAgB,OAAQ,cAAe,UAEvD,OAAO,MAIb,eAAe,CAAgC,EAC7C,QACA,kBACoD,CACpD,OAAQ,QACD,QAAM,cACN,QAAM,YACN,QAAM,eACN,QAAM,UACN,QAAM,uBACN,QAAM,cACN,QAAM,YACN,QAAM,cACN,QAAM,QAAS,CAClB,IAAQ,cAAa,iBAAkB,KAAa,mCAC5C,gBAAiB,KAAa,mCAEhC,EAAW,MAAM,EAAY,CAAK,EAClC,EAAS,MAAM,EAAa,CAAE,QAAO,iBAAgB,UAAS,CAAC,EAC/D,EAAU,MAAM,EAAO,WAAW,EAGxC,MAAO,IAFS,MAAM,EAAc,EAAO,CAAE,WAAU,QAAO,CAAC,EAE1C,SAAQ,CAC/B,MAEK,QAAM,aACN,QAAM,iBACN,QAAM,UACN,QAAM,cACN,QAAM,SAAU,CACnB,IAAQ,gBAAe,kBAAmB,KAAa,mCACjD,EAAa,EAAc,CAAc,EAE/C,IAAK,EACH,MAAM,IAAI,eAAa,CACrB,SAAU,8CACV,KAAM,CAAE,gBAAe,CACzB,CAAC,EAGH,IAAM,EAAO,EAAM,YAAY,EA2BzB,EAAU,MAzBG,MAAO,EAA4B,IAAmB,CACvE,IAAM,GAAiB,KAAa,gCAAwB,SACpD,UAAS,WAAY,MAAM,EAAc,WAAW,CAC1D,KAAM,yBAAuB,CAAI,EACjC,MACF,CAAC,EAED,IAAK,EACH,MAAM,IAAI,eAAa,CACrB,SAAU,sCACV,KAAM,CACJ,QACA,MAAQ,EAA6C,OAAS,eAChE,CACF,CAAC,EAGH,GAAI,IAAU,QAAM,YAElB,OADgB,MAAM,EAAe,CAA0B,GAChD,YAAY,EAAQ,OAAO,EAG5C,OAAO,EAAQ,UAGgB,EAE3B,EAAkB,MAAO,EAAY,EAAoB,EAAO,KAAO,CAC3E,IAAM,GAAiB,KAAa,gCAAwB,QACtD,EAAY,EAAe,IAAI,CAAC,EAAa,IACjD,EAAQ,GAAM,EAAyB,cAAgB,EAAK,CAC9D,EACM,EAAU,MAAM,EAAe,CAA0B,EAEzD,EAAS,MAAM,EAAc,gBAAgB,CACjD,OACA,OAAQ,EAAO,IAAI,EAAG,OAAM,QAAO,YAAa,CAE9C,YACA,UAAW,EACX,WAAY,EAEZ,OAAQ,EACR,YAAa,EAAW,KAC1B,EAAE,EACF,QAAS,EAAK,UAAU,IAAI,CAAC,IAAW,CAEtC,IAAK,EAAO,QACV,MAAO,CACL,OAAQ,IACR,eAAgB,OAAO,KAAK,CAAI,EAAE,SAAS,KAAK,EAChD,YAAa,eACf,EAGF,IAAM,EACJ,IAAU,QAAM,YACZ,EAAQ,YAAY,EAAc,EAAO,OAAO,CAAC,EACjD,EAAO,QAIb,OAFwB,IAAkB,EAGtC,CAAE,OAAQ,EAAO,MAAO,YAAW,YAAa,EAAW,MAAO,EAClE,CAAE,OAAQ,EAAO,MAAO,QAAS,EAAe,YAAa,cAAe,EACjF,CACH,CAAC,EAED,GAAI,EAAO,QACT,OAAO,EAAO,QAAQ,aAGxB,MAAM,IAAI,eAAa,CACrB,SAAU,2CACV,KAAM,CACJ,QACA,MAAQ,EAAO,QAA6C,KAC9D,CACF,CAAC,GAGG,EAAW,OACf,YACA,eACA,QAAS,EACT,UACG,KACwB,CAC3B,KAAM,GAAW,GACf,MAAM,IAAI,eAAa,CACrB,SAAU,wBACV,KAAM,CAAE,OAAQ,eAAa,OAAQ,OAAM,UAAS,WAAU,CAChE,CAAC,EAGH,IAAM,EAAU,MAAM,EAAe,CAAK,EAEpC,EACJ,IAAiB,MAAM,EAAQ,YAAY,GAAG,GAAgB,YAAU,MAEpE,EACJ,IAAU,QAAM,YACX,EAAiC,QACjC,EAAiC,mBAEhC,OAAM,UAAW,MAAM,EAAe,IACzC,EACH,OACA,YACA,UACA,OAAQ,EACR,WAAY,EACd,CAAC,EAEK,EAAQ,MAAM,EAAgB,EAAM,EAAQ,CAAI,EAGtD,OAFW,MAAM,EAAQ,YAAY,CAAK,GAO5C,MAAO,IAFS,MAAM,EAAe,CAAK,EAErB,UAAS,WAAU,iBAAgB,CAC1D,SAGE,MAAM,IAAI,eAAa,CACrB,SAAU,6BACV,KAAM,CAAE,QAAO,OAAQ,eAAa,MAAO,CAC7C,CAAC,GAIA,IAAM,EAAe,eAAa,CACvC,KAAM,gBACN,WAAY,eAAa,OACzB,gBAAiB,CACf,QAAM,SACN,QAAM,OACN,QAAM,UACN,QAAM,KACN,QAAM,kBACN,QAAM,QACN,QAAM,YACN,QAAM,KACN,QAAM,SACN,QAAM,SACN,QAAM,OACN,QAAM,SACN,QAAM,SACN,QAAM,OACR,EACA,QAAS,EAAG,WAAU,kBAAiB,gBACrC,eAAe,CAAa,CAAC,EAAiB,EAAqC,CACjF,IAAO,GAAS,wBAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAC7E,IAAK,EACH,MAAM,IAAI,eAAa,CACrB,SAAU,6BACV,KAAM,CAAE,QAAO,OAAQ,eAAa,MAAO,CAC7C,CAAC,EAGH,IAAM,GAAiB,KAAa,gCAAwB,SACpD,WAAY,MAAM,EAAc,eAAe,EAEvD,IAAK,EAAS,CACZ,IAAM,EAAe,WAAS,IAAI,cAAc,EAAE,OAC5C,EAAW,EACb,IACK,EACH,QAAU,EAAqB,SAAW,SAC5C,EACA,CACE,OAAQ,GACR,MAAO,GACP,QAAS,SACX,EACJ,EAAc,KAAK,CAAE,SAAU,GAAM,UAAS,CAAC,EAGjD,IAAM,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EAI9D,OAFA,EAAS,IAAK,EAAQ,QAAO,YAAW,CAAC,EAElC,GAEb,CAAC,EAEY,EAA0B,EAAyB,CAAY",
8
- "debugId": "E78C1456FABC72D064756E2164756E21",
9
- "names": []
10
- }
@@ -1,4 +0,0 @@
1
- import{H as f}from"../../chunk-htvthkj1.js";import{J as N,K as V}from"../../chunk-p2ca0j1v.js";import{Chain as q,FeeOption as y,SKConfig as E,SwapKitError as M,WalletOption as W,createWallet as S,derivationPathToString as w,filterSupportedChains as P}from"@swapkit/helpers";function b(B){switch(B[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:B,derivationPath:X}){switch(B){case q.Arbitrum:case q.Aurora:case q.Avalanche:case q.Base:case q.BinanceSmartChain:case q.Ethereum:case q.Gnosis:case q.Optimism:case q.Polygon:{let{getProvider:j,getEvmToolbox:Y}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:Z}=await import("../../chunk-3etn0w20.js"),$=await j(B),L=await Z({chain:B,derivationPath:X,provider:$}),G=await L.getAddress();return{...await Y(B,{provider:$,signer:L}),address:G}}case q.Bitcoin:case q.BitcoinCash:case q.Dash:case q.Dogecoin:case q.Litecoin:{let{toCashAddress:j,getUtxoToolbox:Y}=await import("@swapkit/toolboxes/utxo"),Z=b(X);if(!Z)throw new M({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:X}});let $=B.toLowerCase(),G=await(async(I=X)=>{let A=(await import("@trezor/connect-web")).default,{success:F,payload:J}=await A.getAddress({path:w(I),coin:$});if(!F)throw new M({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:B,error:J.error||"Unknown error"}});if(B===q.BitcoinCash)return(await Y(B)).stripPrefix(J.address);return J.address})(),k=async(I,A,F="")=>{let J=(await import("@trezor/connect-web")).default,_=X.map((D,Q)=>Q<3?(D|2147483648)>>>0:D),H=await Y(B),R=await J.signTransaction({coin:$,inputs:A.map(({hash:D,index:Q,value:O})=>({address_n:_,prev_hash:D,prev_index:Q,amount:O,script_type:Z.input})),outputs:I.txOutputs.map((D)=>{if(!D.address)return{amount:"0",op_return_data:Buffer.from(F).toString("hex"),script_type:"PAYTOOPRETURN"};let Q=B===q.BitcoinCash?H.stripPrefix(j(D.address)):D.address;return Q===G?{amount:D.value,address_n:_,script_type:Z.output}:{amount:D.value,address:Q,script_type:"PAYTOADDRESS"}})});if(R.success)return R.payload.serializedTx;throw new M({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:B,error:R.payload.error}})},K=async({recipient:I,feeOptionKey:A,feeRate:F,memo:J,..._})=>{if(!(G&&I))throw new M({errorKey:"wallet_missing_params",info:{wallet:W.TREZOR,memo:J,address:G,recipient:I}});let H=await Y(B),R=F||(await H.getFeeRates())[A||y.Fast],D=B===q.BitcoinCash?H.buildTx:H.createTransaction,{psbt:Q,inputs:O}=await D({..._,memo:J,recipient:I,feeRate:R,sender:G,fetchTxHex:!0}),z=await k(Q,O,J);return await H.broadcastTx(z)};return{...await Y(B),address:G,transfer:K,signTransaction:k}}default:throw new M({errorKey:"wallet_chain_not_supported",info:{chain:B,wallet:W.TREZOR}})}}var v=S({name:"connectTrezor",walletType:W.TREZOR,supportedChains:[q.Arbitrum,q.Aurora,q.Avalanche,q.Base,q.BinanceSmartChain,q.Bitcoin,q.BitcoinCash,q.Dash,q.Dogecoin,q.Ethereum,q.Gnosis,q.Litecoin,q.Optimism,q.Polygon],connect:({addChain:B,supportedChains:X,walletType:j})=>async function Y(Z,$){let[L]=P({chains:Z,supportedChains:X,walletType:j});if(!L)throw new M({errorKey:"wallet_chain_not_supported",info:{chain:L,wallet:W.TREZOR}});let G=(await import("@trezor/connect-web")).default,{success:k}=await G.getDeviceState();if(!k){let U=E.get("integrations").trezor,I=U?{...U,appName:U.appName||"SwapKit"}:{appUrl:"",email:"",appName:"SwapKit"};G.init({lazyLoad:!0,manifest:I})}let K=await g({chain:L,derivationPath:$});return B({...K,chain:L,walletType:j}),!0}}),u=f(v);export{v as trezorWallet,u as TREZOR_SUPPORTED_CHAINS};
2
-
3
- //# debugId=2F2460477F124E7E64756E2164756E21
4
- //# sourceMappingURL=index.js.map
@@ -1,10 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/trezor/index.ts"],
4
- "sourcesContent": [
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.Arbitrum:\n case Chain.Aurora:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Gnosis:\n case Chain.Optimism:\n case Chain.Polygon: {\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 TrezorConnect = (await import(\"@trezor/connect-web\")).default;\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 TrezorConnect = (await import(\"@trezor/connect-web\")).default;\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 outputs: psbt.txOutputs.map((output) => {\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 const outputAddress =\n chain === Chain.BitcoinCash\n ? toolbox.stripPrefix(toCashAddress(output.address))\n : output.address;\n\n const isChangeAddress = outputAddress === address;\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.Aurora,\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.Gnosis,\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 TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const { success } = await TrezorConnect.getDeviceState();\n\n if (!success) {\n const trezorConfig = SKConfig.get(\"integrations\").trezor;\n const manifest = trezorConfig\n ? {\n ...trezorConfig,\n appName: (trezorConfig as any).appName || \"SwapKit\",\n }\n : {\n appUrl: \"\",\n email: \"\",\n appName: \"SwapKit\",\n };\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
- ],
7
- "mappings": "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",
8
- "debugId": "2F2460477F124E7E64756E2164756E21",
9
- "names": []
10
- }
@@ -1,167 +0,0 @@
1
- import {
2
- Chain,
3
- ChainId,
4
- type EVMChain,
5
- SwapKitError,
6
- prepareNetworkSwitch,
7
- switchEVMWalletNetwork,
8
- } from "@swapkit/helpers";
9
- import type { TronTransaction } from "@swapkit/toolboxes/tron";
10
- import { Psbt } from "bitcoinjs-lib";
11
- import type { Eip1193Provider } from "ethers";
12
-
13
- export async function getWalletMethods(chain: Chain) {
14
- const { match, P } = await import("ts-pattern");
15
- const bitget = window.bitkeep;
16
-
17
- return match(chain)
18
- .with(
19
- P.union(
20
- Chain.Arbitrum,
21
- Chain.Aurora,
22
- Chain.Avalanche,
23
- Chain.Base,
24
- Chain.Berachain,
25
- Chain.BinanceSmartChain,
26
- Chain.Ethereum,
27
- Chain.Gnosis,
28
- Chain.Optimism,
29
- Chain.Polygon,
30
- ),
31
- async () => {
32
- if (!(bitget && "ethereum" in bitget)) {
33
- throw new SwapKitError("wallet_bitkeep_not_found");
34
- }
35
-
36
- const wallet = bitget.ethereum;
37
-
38
- const [address]: [string] = await wallet.send("eth_requestAccounts", []);
39
- const evmWallet = await getWeb3WalletMethods({
40
- chain: chain as EVMChain,
41
- walletProvider: wallet,
42
- });
43
-
44
- return { ...evmWallet, address };
45
- },
46
- )
47
- .with(Chain.Bitcoin, async () => {
48
- if (!(bitget && "unisat" in bitget)) {
49
- throw new SwapKitError("wallet_bitkeep_not_found");
50
- }
51
- const { unisat: wallet } = bitget;
52
-
53
- const { getUtxoToolbox } = await import("@swapkit/toolboxes/utxo");
54
- const [address] = await wallet.requestAccounts();
55
-
56
- async function signTransaction(psbt: Psbt) {
57
- const signedPsbt = await wallet.signPsbt(psbt.toHex(), { autoFinalized: false });
58
-
59
- return Psbt.fromHex(signedPsbt);
60
- }
61
-
62
- const signer = {
63
- getAddress: () => Promise.resolve(address),
64
- signTransaction,
65
- };
66
-
67
- const toolbox = await getUtxoToolbox(Chain.Bitcoin, { signer });
68
-
69
- return { ...toolbox, address };
70
- })
71
- .with(Chain.Cosmos, async () => {
72
- if (!(bitget && "keplr" in bitget)) {
73
- throw new SwapKitError("wallet_bitkeep_not_found");
74
- }
75
- const { keplr: wallet } = bitget;
76
-
77
- await wallet.enable(ChainId.Cosmos);
78
- const offlineSigner = wallet.getOfflineSignerOnlyAmino(ChainId.Cosmos);
79
- const accounts = await offlineSigner.getAccounts();
80
- if (!accounts?.[0])
81
- throw new SwapKitError("wallet_bitkeep_no_accounts", { chain: Chain.Cosmos });
82
-
83
- const { getCosmosToolbox } = await import("@swapkit/toolboxes/cosmos");
84
- const [{ address }] = accounts;
85
-
86
- const signer = {
87
- ...offlineSigner,
88
- getAddress: () => Promise.resolve(address),
89
- signTransaction: async () => Promise.resolve({} as any),
90
- };
91
-
92
- const toolbox = getCosmosToolbox(Chain.Cosmos, {
93
- signer,
94
- });
95
-
96
- return { ...toolbox, address };
97
- })
98
- .with(Chain.Solana, async () => {
99
- if (!(bitget && "solana" in bitget)) {
100
- throw new SwapKitError("wallet_bitkeep_not_found");
101
- }
102
-
103
- const { getSolanaToolbox } = await import("@swapkit/toolboxes/solana");
104
- const provider = bitget?.solana;
105
-
106
- const toolbox = getSolanaToolbox({ signer: provider });
107
- const providerConnection = await provider.connect();
108
- const address: string = providerConnection.publicKey.toString();
109
-
110
- return { ...toolbox, address };
111
- })
112
- .with(Chain.Tron, async () => {
113
- if (!(bitget && "tronLink" in bitget && "tronWeb" in bitget)) {
114
- throw new SwapKitError("wallet_bitkeep_not_found");
115
- }
116
-
117
- const { createTronToolbox } = await import("@swapkit/toolboxes/tron");
118
- const { tronLink, tronWeb } = bitget;
119
-
120
- // Request account access
121
- const account = await tronLink.request({ method: "tron_requestAccounts" });
122
- if (!account?.base58) {
123
- throw new SwapKitError("wallet_bitkeep_no_accounts", { chain: Chain.Tron });
124
- }
125
-
126
- const address = account.base58;
127
-
128
- // Create signer compatible with TronSigner interface
129
- const signer = {
130
- getAddress: () => Promise.resolve(address),
131
- signTransaction: async (transaction: TronTransaction) => {
132
- const signedTx = await tronWeb.trx.sign(transaction);
133
- return signedTx;
134
- },
135
- };
136
-
137
- const toolbox = await createTronToolbox({ signer });
138
-
139
- return { ...toolbox, address };
140
- })
141
- .otherwise(() => {
142
- throw new SwapKitError("wallet_chain_not_supported");
143
- });
144
- }
145
-
146
- export const getWeb3WalletMethods = async ({
147
- chain,
148
- walletProvider,
149
- }: { walletProvider?: Eip1193Provider; chain: EVMChain }) => {
150
- const { getEvmToolbox } = await import("@swapkit/toolboxes/evm");
151
- const { BrowserProvider } = await import("ethers");
152
- if (!walletProvider) throw new SwapKitError("wallet_provider_not_found");
153
-
154
- const provider = new BrowserProvider(walletProvider, "any");
155
- const signer = await provider.getSigner();
156
- const toolbox = await getEvmToolbox(chain, { provider, signer });
157
-
158
- try {
159
- if (chain !== Chain.Ethereum && "getNetworkParams" in toolbox) {
160
- await switchEVMWalletNetwork(provider, chain, toolbox.getNetworkParams());
161
- }
162
- } catch (_error) {
163
- throw new SwapKitError("wallet_bitkeep_failed_to_switch_network", { chain });
164
- }
165
-
166
- return prepareNetworkSwitch({ chain, toolbox, provider });
167
- };
@@ -1,34 +0,0 @@
1
- import {
2
- Chain,
3
- EVMChains,
4
- WalletOption,
5
- createWallet,
6
- filterSupportedChains,
7
- } from "@swapkit/helpers";
8
-
9
- import { getWalletSupportedChains } from "../utils";
10
- import { getWalletMethods } from "./helpers";
11
-
12
- export const bitgetWallet = createWallet({
13
- name: "connectBitget",
14
- walletType: WalletOption.BITGET,
15
- supportedChains: [...EVMChains, Chain.Cosmos, Chain.Bitcoin, Chain.Solana, Chain.Tron],
16
- connect: ({ addChain, walletType, supportedChains }) =>
17
- async function connectBitget(chains: Chain[]) {
18
- const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });
19
-
20
- await Promise.all(
21
- filteredChains.map(async (chain) => {
22
- const walletMethods = await getWalletMethods(chain);
23
-
24
- const address = (await walletMethods.getAddress()) || "";
25
-
26
- addChain({ ...walletMethods, address, chain, walletType });
27
- }),
28
- );
29
-
30
- return true;
31
- },
32
- });
33
-
34
- export const BITGET_SUPPORTED_CHAINS = getWalletSupportedChains(bitgetWallet);
@@ -1,52 +0,0 @@
1
- import {
2
- Chain,
3
- ChainToChainId,
4
- SKConfig,
5
- WalletOption,
6
- createWallet,
7
- filterSupportedChains,
8
- } from "@swapkit/helpers";
9
-
10
- import { getWalletSupportedChains } from "../utils";
11
- import { getWalletMethods } from "./signer";
12
-
13
- export const coinbaseWallet = createWallet({
14
- name: "connectCoinbaseWallet",
15
- walletType: WalletOption.COINBASE_MOBILE,
16
- supportedChains: [
17
- Chain.Arbitrum,
18
- Chain.Avalanche,
19
- Chain.Base,
20
- Chain.BinanceSmartChain,
21
- Chain.Ethereum,
22
- Chain.Optimism,
23
- Chain.Polygon,
24
- ],
25
- connect: ({ addChain, walletType, supportedChains }) =>
26
- async function connectCoinbaseWallet(chains: Chain[]) {
27
- const { createCoinbaseWalletSDK } = await import("@coinbase/wallet-sdk");
28
-
29
- const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });
30
-
31
- const coinbaseConfig = SKConfig.get("integrations").coinbase || {
32
- appName: "Swapkit Playground",
33
- };
34
-
35
- const coinbaseSdk = createCoinbaseWalletSDK({
36
- ...coinbaseConfig,
37
- appChainIds: filteredChains.map((chain) => Number(ChainToChainId[chain])),
38
- });
39
-
40
- await Promise.all(
41
- filteredChains.map(async (chain) => {
42
- const walletMethods = await getWalletMethods({ chain, coinbaseSdk });
43
-
44
- addChain({ ...walletMethods, chain, walletType });
45
- }),
46
- );
47
-
48
- return true;
49
- },
50
- });
51
-
52
- export const COINBASE_SUPPORTED_CHAINS = getWalletSupportedChains(coinbaseWallet);
@@ -1,83 +0,0 @@
1
- import type { CoinbaseWalletProvider } from "@coinbase/wallet-sdk";
2
- import type { createCoinbaseWalletSDK } from "@coinbase/wallet-sdk/dist/createCoinbaseWalletSDK.js";
3
- import { Chain, SwapKitError } from "@swapkit/helpers";
4
- import type { Provider } from "ethers";
5
-
6
- async function getCoinbaseMobileSigner(
7
- walletProvider: CoinbaseWalletProvider,
8
- provider?: Provider,
9
- ) {
10
- const { AbstractSigner } = await import("ethers");
11
-
12
- class CoinbaseMobileSigner extends AbstractSigner {
13
- #coinbaseProvider: CoinbaseWalletProvider;
14
-
15
- constructor(coinbaseProvider: CoinbaseWalletProvider, provider?: Provider) {
16
- super(provider);
17
- this.#coinbaseProvider = coinbaseProvider;
18
- }
19
-
20
- async getAddress() {
21
- const accounts = await this.#coinbaseProvider.request<string[]>({
22
- method: "eth_requestAccounts",
23
- });
24
-
25
- if (!accounts[0]) throw new SwapKitError("wallet_coinbase_no_accounts");
26
-
27
- return accounts[0];
28
- }
29
-
30
- async signTransaction() {
31
- return await this.#coinbaseProvider.request<string>({
32
- method: "eth_signTransaction",
33
- });
34
- }
35
-
36
- async signMessage(message: string | Uint8Array) {
37
- return await this.#coinbaseProvider.request<string>({
38
- method: "personal_sign",
39
- params: [message, await this.getAddress()],
40
- });
41
- }
42
-
43
- signTypedData = () => {
44
- throw new SwapKitError("wallet_coinbase_method_not_supported", { method: "signTypedData" });
45
- };
46
-
47
- connect(provider: Provider) {
48
- return new CoinbaseMobileSigner(this.#coinbaseProvider, provider);
49
- }
50
- }
51
-
52
- return new CoinbaseMobileSigner(walletProvider, provider);
53
- }
54
-
55
- export const getWalletMethods = async ({
56
- chain,
57
- coinbaseSdk,
58
- }: {
59
- chain: Chain;
60
- coinbaseSdk: ReturnType<typeof createCoinbaseWalletSDK>;
61
- }) => {
62
- switch (chain) {
63
- case Chain.Ethereum:
64
- case Chain.Avalanche:
65
- case Chain.Arbitrum:
66
- case Chain.Optimism:
67
- case Chain.Polygon:
68
- case Chain.BinanceSmartChain: {
69
- const walletProvider = coinbaseSdk.getProvider() as CoinbaseWalletProvider;
70
- const { getEvmToolbox, getProvider } = await import("@swapkit/toolboxes/evm");
71
-
72
- const provider = await getProvider(chain);
73
- const signer = await getCoinbaseMobileSigner(walletProvider, provider);
74
- const toolbox = await getEvmToolbox(chain, { provider, signer });
75
- const address = await signer.getAddress();
76
-
77
- return { ...toolbox, address };
78
- }
79
-
80
- default:
81
- throw new SwapKitError("wallet_coinbase_chain_not_supported", { chain });
82
- }
83
- };
@@ -1,142 +0,0 @@
1
- import type { Keplr } from "@keplr-wallet/types";
2
- import {
3
- Chain,
4
- ChainId,
5
- ChainToChainId,
6
- SwapKitError,
7
- WalletOption,
8
- createWallet,
9
- filterSupportedChains,
10
- } from "@swapkit/helpers";
11
-
12
- const cosmostationSupportedChainIds = [ChainId.Cosmos, ChainId.Kujira, ChainId.THORChain] as const;
13
- const cosmostationSupportedEVMChains = [
14
- Chain.Ethereum,
15
- Chain.BinanceSmartChain,
16
- Chain.Avalanche,
17
- Chain.Polygon,
18
- Chain.Arbitrum,
19
- Chain.Optimism,
20
- Chain.Base,
21
- ] as const;
22
-
23
- declare global {
24
- interface Window {
25
- cosmostation?: {
26
- providers?: {
27
- keplr?: Keplr;
28
- };
29
- };
30
- }
31
- }
32
-
33
- async function connectCosmosChains(chains: Chain[], addChain: any, keplrProvider: Keplr) {
34
- await Promise.all(
35
- chains.map(async (chain) => {
36
- const chainId = ChainToChainId[chain] as (typeof cosmostationSupportedChainIds)[number];
37
-
38
- await keplrProvider.enable(chainId);
39
- const signer = keplrProvider.getOfflineSignerOnlyAmino(chainId);
40
- if (!signer) throw new SwapKitError("wallet_cosmostation_signer_not_found");
41
-
42
- const { getCosmosToolbox } = await import("@swapkit/toolboxes/cosmos");
43
-
44
- const accounts = await signer.getAccounts();
45
- if (!accounts?.[0]?.address) throw new SwapKitError("wallet_cosmostation_no_accounts");
46
-
47
- const [{ address }] = accounts;
48
- const toolbox = getCosmosToolbox(chain as any, { signer });
49
-
50
- addChain({
51
- ...toolbox,
52
- chain,
53
- address,
54
- walletType: WalletOption.COSMOSTATION,
55
- });
56
- }),
57
- );
58
- }
59
-
60
- async function connectEvmChains(chains: Chain[], addChain: any) {
61
- const provider = window.ethereum;
62
-
63
- if (!provider) {
64
- throw new SwapKitError("wallet_cosmostation_evm_provider_not_found");
65
- }
66
-
67
- const accounts = (await provider.request({
68
- method: "eth_requestAccounts",
69
- })) as string[];
70
-
71
- if (!accounts || accounts.length === 0) {
72
- throw new SwapKitError("wallet_cosmostation_no_evm_accounts");
73
- }
74
-
75
- const { getEvmToolbox } = await import("@swapkit/toolboxes/evm");
76
-
77
- for (const chain of chains) {
78
- const toolbox = getEvmToolbox(chain as any, { provider });
79
- const [address] = accounts;
80
-
81
- if (!address) {
82
- throw new SwapKitError("wallet_cosmostation_no_evm_address");
83
- }
84
-
85
- addChain({
86
- ...toolbox,
87
- chain,
88
- address,
89
- walletType: WalletOption.COSMOSTATION,
90
- });
91
- }
92
- }
93
-
94
- export const cosmostationWallet = createWallet({
95
- name: "connectCosmostation",
96
- supportedChains: [
97
- Chain.Cosmos,
98
- Chain.Kujira,
99
- Chain.THORChain,
100
- Chain.Ethereum,
101
- Chain.BinanceSmartChain,
102
- Chain.Avalanche,
103
- Chain.Polygon,
104
- Chain.Arbitrum,
105
- Chain.Optimism,
106
- Chain.Base,
107
- ],
108
- connect: ({ addChain, supportedChains }) =>
109
- async function connectCosmostation(chains: Chain[]) {
110
- const filteredChains = filterSupportedChains({
111
- chains,
112
- supportedChains,
113
- walletType: WalletOption.COSMOSTATION,
114
- });
115
-
116
- if (!window.cosmostation) {
117
- throw new SwapKitError("wallet_cosmostation_not_found");
118
- }
119
-
120
- const cosmosChains = filteredChains.filter((chain) =>
121
- cosmostationSupportedChainIds.includes(ChainToChainId[chain] as any),
122
- );
123
- const evmChains = filteredChains.filter((chain) =>
124
- cosmostationSupportedEVMChains.includes(chain as any),
125
- );
126
-
127
- if (cosmosChains.length > 0) {
128
- const keplrProvider = window.cosmostation.providers?.keplr;
129
- if (!keplrProvider) {
130
- throw new SwapKitError("wallet_cosmostation_keplr_provider_not_found");
131
- }
132
-
133
- await connectCosmosChains(cosmosChains, addChain, keplrProvider);
134
- }
135
-
136
- if (evmChains.length > 0) {
137
- await connectEvmChains(evmChains, addChain);
138
- }
139
-
140
- return true;
141
- },
142
- });