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

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 (284) 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/vultisig/index.cjs +2 -2
  83. package/dist/src/vultisig/index.cjs.map +3 -3
  84. package/dist/src/vultisig/index.js +2 -2
  85. package/dist/src/vultisig/index.js.map +3 -3
  86. package/dist/src/walletconnect/index.cjs +2 -2
  87. package/dist/src/walletconnect/index.cjs.map +3 -3
  88. package/dist/src/walletconnect/index.js +2 -2
  89. package/dist/src/walletconnect/index.js.map +3 -3
  90. package/dist/src/xaman/index.cjs +2 -2
  91. package/dist/src/xaman/index.cjs.map +5 -5
  92. package/dist/src/xaman/index.js +2 -2
  93. package/dist/src/xaman/index.js.map +5 -5
  94. package/dist/types/bitget/helpers.d.ts +330 -0
  95. package/dist/types/bitget/helpers.d.ts.map +1 -0
  96. package/dist/types/bitget/index.d.ts +11 -0
  97. package/dist/types/bitget/index.d.ts.map +1 -0
  98. package/dist/types/coinbase/index.d.ts +11 -0
  99. package/dist/types/coinbase/index.d.ts.map +1 -0
  100. package/dist/types/coinbase/signer.d.ts +91 -0
  101. package/dist/types/coinbase/signer.d.ts.map +1 -0
  102. package/dist/types/cosmostation/index.d.ts +21 -0
  103. package/dist/types/cosmostation/index.d.ts.map +1 -0
  104. package/dist/types/ctrl/index.d.ts +11 -0
  105. package/dist/types/ctrl/index.d.ts.map +1 -0
  106. package/dist/types/ctrl/walletHelpers.d.ts +24 -0
  107. package/dist/types/ctrl/walletHelpers.d.ts.map +1 -0
  108. package/dist/types/evm-extensions/index.d.ts +101 -0
  109. package/dist/types/evm-extensions/index.d.ts.map +1 -0
  110. package/{src/evm-extensions/types.ts → dist/types/evm-extensions/types.d.ts} +11 -13
  111. package/dist/types/evm-extensions/types.d.ts.map +1 -0
  112. package/dist/types/exodus/index.d.ts +14 -0
  113. package/dist/types/exodus/index.d.ts.map +1 -0
  114. package/dist/types/helpers/near.d.ts +57 -0
  115. package/dist/types/helpers/near.d.ts.map +1 -0
  116. package/dist/types/index.d.ts +4 -0
  117. package/dist/types/index.d.ts.map +1 -0
  118. package/dist/types/keepkey-bex/index.d.ts +11 -0
  119. package/dist/types/keepkey-bex/index.d.ts.map +1 -0
  120. package/dist/types/keepkey-bex/walletHelpers.d.ts +45 -0
  121. package/dist/types/keepkey-bex/walletHelpers.d.ts.map +1 -0
  122. package/dist/types/keepkey.d.ts +2 -0
  123. package/dist/types/keepkey.d.ts.map +1 -0
  124. package/dist/types/keplr/chainRegistry.d.ts +4 -0
  125. package/dist/types/keplr/chainRegistry.d.ts.map +1 -0
  126. package/dist/types/keplr/index.d.ts +11 -0
  127. package/dist/types/keplr/index.d.ts.map +1 -0
  128. package/dist/types/keystore.d.ts +2 -0
  129. package/dist/types/keystore.d.ts.map +1 -0
  130. package/dist/types/ledger.d.ts +2 -0
  131. package/dist/types/ledger.d.ts.map +1 -0
  132. package/dist/types/okx/helpers.d.ts +227 -0
  133. package/dist/types/okx/helpers.d.ts.map +1 -0
  134. package/dist/types/okx/index.d.ts +11 -0
  135. package/dist/types/okx/index.d.ts.map +1 -0
  136. package/dist/types/okx/types.d.ts +104 -0
  137. package/dist/types/okx/types.d.ts.map +1 -0
  138. package/dist/types/onekey/evmSigner.d.ts +29 -0
  139. package/dist/types/onekey/evmSigner.d.ts.map +1 -0
  140. package/dist/types/onekey/index.d.ts +11 -0
  141. package/dist/types/onekey/index.d.ts.map +1 -0
  142. package/dist/types/phantom/index.d.ts +12 -0
  143. package/dist/types/phantom/index.d.ts.map +1 -0
  144. package/dist/types/polkadotjs/index.d.ts +11 -0
  145. package/dist/types/polkadotjs/index.d.ts.map +1 -0
  146. package/dist/types/radix/index.d.ts +11 -0
  147. package/dist/types/radix/index.d.ts.map +1 -0
  148. package/dist/types/talisman/index.d.ts +11 -0
  149. package/dist/types/talisman/index.d.ts.map +1 -0
  150. package/dist/types/trezor.d.ts +2 -0
  151. package/dist/types/trezor.d.ts.map +1 -0
  152. package/dist/types/types.d.ts +246 -0
  153. package/dist/types/types.d.ts.map +1 -0
  154. package/dist/types/utils.d.ts +4 -0
  155. package/dist/types/utils.d.ts.map +1 -0
  156. package/dist/types/vultisig/index.d.ts +11 -0
  157. package/dist/types/vultisig/index.d.ts.map +1 -0
  158. package/dist/types/vultisig/walletHelpers.d.ts +34 -0
  159. package/dist/types/vultisig/walletHelpers.d.ts.map +1 -0
  160. package/dist/types/walletconnect/constants.d.ts +85 -0
  161. package/dist/types/walletconnect/constants.d.ts.map +1 -0
  162. package/dist/types/walletconnect/evmSigner.d.ts +25 -0
  163. package/dist/types/walletconnect/evmSigner.d.ts.map +1 -0
  164. package/dist/types/walletconnect/helpers.d.ts +4 -0
  165. package/dist/types/walletconnect/helpers.d.ts.map +1 -0
  166. package/dist/types/walletconnect/index.d.ts +22 -0
  167. package/dist/types/walletconnect/index.d.ts.map +1 -0
  168. package/dist/types/walletconnect/namespaces.d.ts +7 -0
  169. package/dist/types/walletconnect/namespaces.d.ts.map +1 -0
  170. package/dist/types/walletconnect/types.d.ts +7 -0
  171. package/dist/types/walletconnect/types.d.ts.map +1 -0
  172. package/dist/types/xaman/helpers.d.ts +54 -0
  173. package/dist/types/xaman/helpers.d.ts.map +1 -0
  174. package/dist/types/xaman/index.d.ts +14 -0
  175. package/dist/types/xaman/index.d.ts.map +1 -0
  176. package/dist/types/xaman/types.d.ts +24 -0
  177. package/dist/types/xaman/types.d.ts.map +1 -0
  178. package/dist/types/xaman/walletMethods.d.ts +16 -0
  179. package/dist/types/xaman/walletMethods.d.ts.map +1 -0
  180. package/package.json +44 -68
  181. package/dist/chunk-2aa1w78q.js +0 -4
  182. package/dist/chunk-2aa1w78q.js.map +0 -10
  183. package/dist/chunk-31bmhjxx.js +0 -4
  184. package/dist/chunk-31bmhjxx.js.map +0 -10
  185. package/dist/chunk-3etn0w20.js +0 -4
  186. package/dist/chunk-3etn0w20.js.map +0 -10
  187. package/dist/chunk-bk58smyr.js +0 -4
  188. package/dist/chunk-bk58smyr.js.map +0 -10
  189. package/dist/chunk-etm8zfkk.js +0 -4
  190. package/dist/chunk-etm8zfkk.js.map +0 -10
  191. package/dist/chunk-h7myvxxm.js +0 -5
  192. package/dist/chunk-h7myvxxm.js.map +0 -10
  193. package/dist/chunk-htvthkj1.js +0 -5
  194. package/dist/chunk-htvthkj1.js.map +0 -10
  195. package/dist/chunk-nfas79hz.js +0 -4
  196. package/dist/chunk-nfas79hz.js.map +0 -10
  197. package/dist/src/keepkey/index.cjs +0 -4
  198. package/dist/src/keepkey/index.cjs.map +0 -15
  199. package/dist/src/keepkey/index.js +0 -4
  200. package/dist/src/keepkey/index.js.map +0 -15
  201. package/dist/src/keystore/index.cjs +0 -4
  202. package/dist/src/keystore/index.cjs.map +0 -11
  203. package/dist/src/keystore/index.js +0 -4
  204. package/dist/src/keystore/index.js.map +0 -11
  205. package/dist/src/ledger/index.cjs +0 -5
  206. package/dist/src/ledger/index.cjs.map +0 -25
  207. package/dist/src/ledger/index.js +0 -5
  208. package/dist/src/ledger/index.js.map +0 -25
  209. package/dist/src/trezor/index.cjs +0 -4
  210. package/dist/src/trezor/index.cjs.map +0 -10
  211. package/dist/src/trezor/index.js +0 -4
  212. package/dist/src/trezor/index.js.map +0 -10
  213. package/src/bitget/helpers.ts +0 -167
  214. package/src/bitget/index.ts +0 -34
  215. package/src/coinbase/index.ts +0 -52
  216. package/src/coinbase/signer.ts +0 -83
  217. package/src/cosmostation/index.ts +0 -142
  218. package/src/ctrl/index.ts +0 -248
  219. package/src/ctrl/walletHelpers.ts +0 -297
  220. package/src/evm-extensions/index.ts +0 -134
  221. package/src/exodus/index.ts +0 -179
  222. package/src/helpers/near-browser-provider.d.ts +0 -286
  223. package/src/helpers/near.ts +0 -206
  224. package/src/index.ts +0 -2
  225. package/src/keepkey/chains/cosmos.ts +0 -78
  226. package/src/keepkey/chains/evm.ts +0 -125
  227. package/src/keepkey/chains/mayachain.ts +0 -123
  228. package/src/keepkey/chains/ripple.ts +0 -118
  229. package/src/keepkey/chains/thorchain.ts +0 -118
  230. package/src/keepkey/chains/utxo.ts +0 -147
  231. package/src/keepkey/coins.ts +0 -71
  232. package/src/keepkey/index.ts +0 -153
  233. package/src/keepkey-bex/index.ts +0 -162
  234. package/src/keepkey-bex/walletHelpers.ts +0 -255
  235. package/src/keplr/chainRegistry.ts +0 -211
  236. package/src/keplr/index.ts +0 -55
  237. package/src/keystore/helpers.ts +0 -102
  238. package/src/keystore/index.ts +0 -73
  239. package/src/ledger/clients/cosmos.ts +0 -102
  240. package/src/ledger/clients/evm.ts +0 -183
  241. package/src/ledger/clients/near.ts +0 -86
  242. package/src/ledger/clients/thorchain/common.ts +0 -117
  243. package/src/ledger/clients/thorchain/helpers.ts +0 -149
  244. package/src/ledger/clients/thorchain/index.ts +0 -94
  245. package/src/ledger/clients/thorchain/lib.ts +0 -300
  246. package/src/ledger/clients/thorchain/utils.ts +0 -76
  247. package/src/ledger/clients/tron.ts +0 -92
  248. package/src/ledger/clients/utxo.ts +0 -148
  249. package/src/ledger/clients/xrp.ts +0 -66
  250. package/src/ledger/cosmosTypes.ts +0 -101
  251. package/src/ledger/helpers/getLedgerAddress.ts +0 -67
  252. package/src/ledger/helpers/getLedgerClient.ts +0 -124
  253. package/src/ledger/helpers/getLedgerTransport.ts +0 -80
  254. package/src/ledger/helpers/index.ts +0 -3
  255. package/src/ledger/index.ts +0 -311
  256. package/src/ledger/interfaces/CosmosLedgerInterface.ts +0 -65
  257. package/src/ledger/types.ts +0 -45
  258. package/src/okx/helpers.ts +0 -181
  259. package/src/okx/index.ts +0 -43
  260. package/src/okx/types.ts +0 -117
  261. package/src/onekey/evmSigner.ts +0 -133
  262. package/src/onekey/index.ts +0 -213
  263. package/src/phantom/index.ts +0 -126
  264. package/src/polkadotjs/index.ts +0 -67
  265. package/src/radix/index.ts +0 -202
  266. package/src/talisman/index.ts +0 -130
  267. package/src/trezor/evmSigner.ts +0 -197
  268. package/src/trezor/index.ts +0 -260
  269. package/src/types.ts +0 -280
  270. package/src/utils.ts +0 -60
  271. package/src/vultisig/index.ts +0 -199
  272. package/src/vultisig/walletHelpers.ts +0 -359
  273. package/src/walletconnect/constants.ts +0 -104
  274. package/src/walletconnect/evmSigner.ts +0 -147
  275. package/src/walletconnect/helpers.ts +0 -77
  276. package/src/walletconnect/index.ts +0 -460
  277. package/src/walletconnect/namespaces.ts +0 -87
  278. package/src/walletconnect/types.ts +0 -6
  279. package/src/xaman/README.md +0 -66
  280. package/src/xaman/helpers.ts +0 -59
  281. package/src/xaman/index.ts +0 -79
  282. package/src/xaman/types.ts +0 -26
  283. package/src/xaman/walletMethods.ts +0 -126
  284. /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
- });