@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,359 +0,0 @@
1
- import {
2
- type AssetValue,
3
- Chain,
4
- ChainToChainId,
5
- type EVMChain,
6
- EVMChains,
7
- type FeeOption,
8
- type NetworkParams,
9
- SwapKitError,
10
- type UTXOChain,
11
- WalletOption,
12
- providerRequest,
13
- } from "@swapkit/helpers";
14
- import { erc20ABI } from "@swapkit/helpers/contracts";
15
- import type { getCosmosToolbox } from "@swapkit/toolboxes/cosmos";
16
- import type { ApproveParams, CallParams, EVMTxParams } from "@swapkit/toolboxes/evm";
17
- import type { SolanaProvider } from "@swapkit/toolboxes/solana";
18
- import type { BrowserProvider, Eip1193Provider } from "ethers";
19
- import type { VultisigCosmosProvider } from "../types";
20
-
21
- type TransactionMethod = "send_transaction" | "deposit_transaction";
22
-
23
- type TransactionParams = {
24
- asset: string | { chain: string; symbol: string; ticker: string };
25
- amount: number | string | { amount: number; decimals?: number };
26
- decimal?: number;
27
- to: string;
28
- data?: string;
29
- from?: string;
30
- };
31
-
32
- export type WalletTxParams = {
33
- feeOptionKey?: FeeOption;
34
- from?: string;
35
- memo?: string;
36
- recipient: string;
37
- assetValue: AssetValue;
38
- gasLimit?: string | bigint;
39
- };
40
-
41
- type VultisigProviderType<T> = T extends Chain.Solana
42
- ? SolanaProvider
43
- : T extends Chain.Cosmos | Chain.Kujira
44
- ? VultisigCosmosProvider
45
- : T extends EVMChain
46
- ? Eip1193Provider
47
- : T extends Chain.Maya | Chain.THORChain | Chain.Ripple | Chain.Polkadot | UTXOChain
48
- ? Eip1193Provider
49
- : undefined;
50
-
51
- export async function getVultisigProvider<T extends Chain>(
52
- chain: T,
53
- ): Promise<VultisigProviderType<T>> {
54
- if (!window.vultisig) throw new SwapKitError("wallet_vultisig_not_found");
55
- const { match } = await import("ts-pattern");
56
-
57
- return match(chain as Chain)
58
- .with(...EVMChains, () => window.vultisig?.ethereum as Eip1193Provider)
59
- .with(Chain.Cosmos, Chain.Kujira, () => window.vultisig?.cosmos as VultisigCosmosProvider)
60
- .with(Chain.Bitcoin, () => window.vultisig?.bitcoin as Eip1193Provider)
61
- .with(Chain.BitcoinCash, () => window.vultisig?.bitcoincash as Eip1193Provider)
62
- .with(Chain.Dash, () => window.vultisig?.dash as Eip1193Provider)
63
- .with(Chain.Dogecoin, () => window.vultisig?.dogecoin as Eip1193Provider)
64
- .with(Chain.Litecoin, () => window.vultisig?.litecoin as Eip1193Provider)
65
- .with(Chain.Solana, () => window.vultisig?.solana as SolanaProvider)
66
- .with(Chain.THORChain, () => window.vultisig?.thorchain as Eip1193Provider)
67
- .with(Chain.Maya, () => window.vultisig?.mayachain as Eip1193Provider)
68
- .with(Chain.Polkadot, () => window.vultisig?.polkadot as Eip1193Provider)
69
- .with(Chain.Ripple, () => window.vultisig?.ripple as Eip1193Provider)
70
- .with(Chain.Zcash, () => window.vultisig?.zcash as Eip1193Provider)
71
- .otherwise(() => undefined) as VultisigProviderType<T>;
72
- }
73
-
74
- async function transaction({
75
- method,
76
- params,
77
- chain,
78
- }: {
79
- method: TransactionMethod;
80
- params: TransactionParams[];
81
- chain: Chain;
82
- }): Promise<string> {
83
- const client = await getVultisigProvider(chain);
84
- let finalParams:
85
- | TransactionParams[]
86
- | {
87
- from: string;
88
- to?: string;
89
- value: string;
90
- data?: string;
91
- }[] = params;
92
-
93
- if (chain === Chain.Cosmos || chain === Chain.Kujira || chain === Chain.Ripple) {
94
- finalParams = params.map((p) => ({
95
- from: p.from as string,
96
- to: p.to as string,
97
- value: (p.amount as { amount: number; decimals?: number }).amount.toString(),
98
- data: p.data as string,
99
- }));
100
- }
101
-
102
- return new Promise<string>((resolve, reject) => {
103
- if (client && "request" in client) {
104
- // @ts-ignore
105
- client.request({ method, params: finalParams }, (err: string, tx: string) => {
106
- err ? reject(err) : resolve(tx);
107
- });
108
- }
109
- });
110
- }
111
-
112
- export async function getVultisigAddress(chain: Chain) {
113
- try {
114
- const eipProvider = (await getVultisigProvider(chain)) as Eip1193Provider;
115
- if (!eipProvider) {
116
- throw new SwapKitError({
117
- errorKey: "wallet_provider_not_found",
118
- info: { wallet: WalletOption.VULTISIG, chain },
119
- });
120
- }
121
-
122
- if ([Chain.Cosmos, Chain.Kujira].includes(chain)) {
123
- const provider = await getVultisigProvider(Chain.Cosmos);
124
- const chainId = ChainToChainId[chain];
125
-
126
- await provider.request({
127
- method: "wallet_switch_chain",
128
- params: [{ chainId }],
129
- });
130
-
131
- let account = await provider.request({
132
- method: "get_accounts",
133
- });
134
- if (!account) {
135
- const connectedAcount = await provider.request({
136
- method: "request_accounts",
137
- });
138
- account = connectedAcount[0].address;
139
- }
140
- return account;
141
- }
142
-
143
- if (EVMChains.includes(chain as EVMChain)) {
144
- if ("request" in eipProvider && typeof eipProvider.request === "function") {
145
- const accounts = await eipProvider.request({ method: "eth_requestAccounts" });
146
- return accounts[0];
147
- }
148
- const { BrowserProvider } = await import("ethers");
149
- const provider = new BrowserProvider(eipProvider, "any");
150
- const [response] = await providerRequest({
151
- provider,
152
- method: "eth_requestAccounts",
153
- params: [],
154
- });
155
- return response;
156
- }
157
-
158
- if (chain === Chain.Solana) {
159
- const provider = await getVultisigProvider(Chain.Solana);
160
-
161
- const accounts = await provider.connect();
162
- return accounts.publicKey.toString();
163
- }
164
-
165
- const accounts = await eipProvider.request({ method: "request_accounts", params: [] });
166
- return accounts[0];
167
- } catch (_error) {
168
- throw new SwapKitError({
169
- errorKey: "wallet_provider_not_found",
170
- info: { wallet: WalletOption.VULTISIG, chain },
171
- });
172
- }
173
- }
174
-
175
- export async function walletTransfer(
176
- { assetValue, recipient, memo, gasLimit }: WalletTxParams,
177
- method: TransactionMethod = "send_transaction",
178
- ) {
179
- if (!assetValue) {
180
- throw new SwapKitError("wallet_vultisig_asset_not_defined");
181
- }
182
-
183
- /**
184
- * EVM requires amount to be hex string
185
- * UTXO/Cosmos requires amount to be number
186
- */
187
-
188
- const from = await getVultisigAddress(assetValue.chain);
189
- const params = [
190
- {
191
- amount: {
192
- amount: assetValue.getBaseValue("number"),
193
- decimals: assetValue.decimal,
194
- },
195
- asset: {
196
- chain: assetValue.chain,
197
- symbol: assetValue.symbol.toUpperCase(),
198
- ticker: assetValue.symbol.toUpperCase(),
199
- },
200
- data: memo || "",
201
- from,
202
- to: recipient,
203
- gasLimit,
204
- },
205
- ];
206
-
207
- return transaction({ method, params, chain: assetValue.chain });
208
- }
209
-
210
- export function getVultisigMethods(provider: BrowserProvider, chain: EVMChain) {
211
- return {
212
- call: async <T>({
213
- contractAddress,
214
- abi,
215
- funcName,
216
- funcParams = [],
217
- txOverrides,
218
- }: CallParams): Promise<T> => {
219
- if (!contractAddress) {
220
- throw new SwapKitError("wallet_vultisig_contract_address_not_provided");
221
- }
222
- const { createContract, getCreateContractTxObject, isStateChangingCall } = await import(
223
- "@swapkit/toolboxes/evm"
224
- );
225
-
226
- const isStateChanging = isStateChangingCall({ abi, funcName });
227
-
228
- if (isStateChanging) {
229
- const createTx = getCreateContractTxObject({ provider, chain });
230
- const { value, from, to, data } = await createTx({
231
- contractAddress,
232
- abi,
233
- funcName,
234
- funcParams,
235
- txOverrides,
236
- });
237
-
238
- const signer = await provider.getSigner();
239
- const tx = await signer.sendTransaction({
240
- value: BigInt(value || 0),
241
- from,
242
- to,
243
- data: data || "0x",
244
- });
245
- return tx.hash as T;
246
- }
247
- const contract = createContract(contractAddress, abi, provider);
248
-
249
- const result = await contract[funcName]?.(...funcParams);
250
-
251
- return typeof result?.hash === "string" ? result?.hash : result;
252
- },
253
- approve: async ({ assetAddress, spenderAddress, amount, from }: ApproveParams) => {
254
- const { MAX_APPROVAL, getCreateContractTxObject } = await import("@swapkit/toolboxes/evm");
255
- const funcParams = [spenderAddress, BigInt(amount || MAX_APPROVAL)];
256
- const txOverrides = { from };
257
-
258
- const functionCallParams = {
259
- contractAddress: assetAddress,
260
- abi: erc20ABI,
261
- funcName: "approve",
262
- funcParams,
263
- txOverrides,
264
- };
265
-
266
- const createTx = getCreateContractTxObject({ provider, chain });
267
- const { value, to, data } = await createTx(functionCallParams);
268
-
269
- const signer = await provider.getSigner();
270
- const tx = await signer.sendTransaction({
271
- value: BigInt(value || 0),
272
- from,
273
- to,
274
- data: data || "0x",
275
- });
276
- return tx.hash;
277
- },
278
- sendTransaction: async (txParams: EVMTxParams) => {
279
- const { from, to, data, value } = txParams;
280
- if (!to) {
281
- throw new SwapKitError("wallet_vultisig_send_transaction_no_address");
282
- }
283
-
284
- const signer = await provider.getSigner();
285
- const tx = await signer.sendTransaction({
286
- value: BigInt(value || 0),
287
- from,
288
- to,
289
- data: data || "0x",
290
- });
291
- return tx.hash;
292
- },
293
- };
294
- }
295
-
296
- export async function switchCosmosWalletNetwork(
297
- provider: VultisigCosmosProvider,
298
- chain: Chain.Cosmos | Chain.Kujira,
299
- networkParams?: NetworkParams,
300
- ) {
301
- try {
302
- await provider.request({
303
- method: "wallet_switch_chain",
304
- params: [{ chainId: ChainToChainId[chain] }],
305
- });
306
- } catch (error) {
307
- if (!networkParams) {
308
- throw new SwapKitError("helpers_failed_to_switch_network", {
309
- error: error,
310
- reason: "networkParams not provided",
311
- });
312
- }
313
- }
314
- }
315
-
316
- export function wrapMethodWithNetworkSwitch<T extends (...args: any[]) => any>(
317
- func: T,
318
- provider: VultisigCosmosProvider,
319
- chain: Chain.Cosmos | Chain.Kujira,
320
- ) {
321
- return (async (...args: any[]) => {
322
- try {
323
- await switchCosmosWalletNetwork(provider, chain);
324
- } catch (error) {
325
- throw new SwapKitError({
326
- errorKey: "helpers_failed_to_switch_network",
327
- info: { error },
328
- });
329
- }
330
- return func(...args);
331
- }) as unknown as T;
332
- }
333
-
334
- export function prepareNetworkSwitchCosmos<
335
- T extends Awaited<ReturnType<typeof getCosmosToolbox>>,
336
- M extends keyof T,
337
- >({
338
- toolbox,
339
- chain,
340
- provider = window.ethereum,
341
- methodNames = [],
342
- }: { toolbox: T; chain: Chain; provider?: VultisigCosmosProvider; methodNames?: M[] }) {
343
- const methodsToWrap = [...methodNames, "transfer", "getAddress", "getBalance"] as M[];
344
- const wrappedMethods = methodsToWrap.reduce((object, methodName) => {
345
- if (!toolbox[methodName]) return object;
346
-
347
- const method = toolbox[methodName];
348
-
349
- if (typeof method !== "function") return object;
350
-
351
- // @ts-expect-error
352
- const wrappedMethod = wrapMethodWithNetworkSwitch(method, provider, chain);
353
-
354
- // biome-ignore lint/performance/noAccumulatingSpread: valid use case
355
- return { ...object, [methodName]: wrappedMethod };
356
- }, {});
357
-
358
- return { ...toolbox, ...wrappedMethods };
359
- }
@@ -1,104 +0,0 @@
1
- import type { ClientMetadata } from "./types";
2
-
3
- export const DEFAULT_RELAY_URL = "wss://relay.walletconnect.com";
4
-
5
- export const ETHEREUM_MAINNET_ID = "eip155:1";
6
- export const BSC_MAINNET_ID = "eip155:56";
7
- export const AVALANCHE_MAINNET_ID = "eip155:43114";
8
- export const THORCHAIN_MAINNET_ID = "cosmos:thorchain";
9
- export const COSMOS_HUB_MAINNET_ID = "cosmos:cosmoshub-4";
10
- export const KUJIRA_MAINNET_ID = "cosmos:kaiyo-1";
11
- export const MAYACHAIN_MAINNET_ID = "cosmos:mayachain-mainnet-v1";
12
- export const ARBITRUM_ONE_MAINNET_ID = "eip155:42161";
13
- export const OPTIMISM_MAINNET_ID = "eip155:10";
14
- export const POLYGON_MAINNET_ID = "eip155:137";
15
- export const BASE_MAINNET_ID = "eip155:8453";
16
- export const NEAR_MAINNET_ID = "near:mainnet";
17
- export const NEAR_TESTNET_ID = "near:testnet";
18
- export const TRON_MAINNET_ID = "tron:0x2b6653dc";
19
- export const AURORA_MAINNET_ID = "eip155:1313161554";
20
- export const BERACHAIN_MAINNET_ID = "eip155:80094";
21
-
22
- export const DEFAULT_LOGGER = "debug";
23
-
24
- export const DEFAULT_APP_METADATA: ClientMetadata = {
25
- name: "SwapKit",
26
- description: "SwapKit cross-chain SDK",
27
- url: "https://swapkit.dev/",
28
- icons: [
29
- "https://raw.githubusercontent.com/swapkit/SwapKit/refs/heads/develop/docs/src/assets/logo-black.png",
30
- ],
31
- };
32
-
33
- /**
34
- * EIP155
35
- */
36
- export enum DEFAULT_EIP155_METHODS {
37
- ETH_SEND_TRANSACTION = "eth_sendTransaction",
38
- // not supported by most WC wallets
39
- // ETH_SIGN_TRANSACTION = 'eth_signTransaction',
40
- ETH_SIGN = "eth_sign",
41
- PERSONAL_SIGN = "personal_sign",
42
- ETH_SIGN_TYPED_DATA = "eth_signTypedData",
43
- }
44
-
45
- export enum DEFAULT_EIP_155_EVENTS {
46
- ETH_CHAIN_CHANGED = "chainChanged",
47
- ETH_ACCOUNTS_CHANGED = "accountsChanged",
48
- }
49
-
50
- /**
51
- * COSMOS
52
- */
53
- export enum DEFAULT_COSMOS_METHODS {
54
- COSMOS_SIGN_DIRECT = "cosmos_signDirect",
55
- COSMOS_SIGN_AMINO = "cosmos_signAmino",
56
- COSMOS_GET_ACCOUNTS = "cosmos_getAccounts",
57
- }
58
-
59
- export enum DEFAULT_COSMOS_EVENTS {}
60
-
61
- /**
62
- * SOLANA
63
- */
64
- export enum DEFAULT_SOLANA_METHODS {
65
- SOL_SIGN_TRANSACTION = "solana_signTransaction",
66
- SOL_SIGN_MESSAGE = "solana_signMessage",
67
- }
68
-
69
- export enum DEFAULT_SOLANA_EVENTS {}
70
-
71
- /**
72
- * POLKADOT
73
- */
74
- export enum DEFAULT_POLKADOT_METHODS {
75
- POLKADOT_SIGN_TRANSACTION = "polkadot_signTransaction",
76
- POLKADOT_SIGN_MESSAGE = "polkadot_signMessage",
77
- }
78
-
79
- export enum DEFAULT_POLKADOT_EVENTS {}
80
-
81
- /**
82
- * NEAR
83
- */
84
- export enum DEFAULT_NEAR_METHODS {
85
- NEAR_SIGN_IN = "near_signIn",
86
- NEAR_SIGN_OUT = "near_signOut",
87
- NEAR_GET_ACCOUNTS = "near_getAccounts",
88
- NEAR_SIGN_AND_SEND_TRANSACTION = "near_signAndSendTransaction",
89
- NEAR_SIGN_AND_SEND_TRANSACTIONS = "near_signAndSendTransactions",
90
- }
91
-
92
- export enum DEFAULT_NEAR_EVENTS {}
93
-
94
- /**
95
- * TRON
96
- */
97
- export enum DEFAULT_TRON_METHODS {
98
- TRON_SIGN_MESSAGE = "tron_signMessage",
99
- TRON_SIGN_TRANSACTION = "tron_signTransaction",
100
- TRON_SEND_TRANSACTION = "tron_sendTransaction",
101
- TRON_GET_ACCOUNTS = "tron_getAccounts",
102
- }
103
-
104
- export enum DEFAULT_TRON_EVENTS {}
@@ -1,147 +0,0 @@
1
- import { type EVMChain, SwapKitError, WalletOption } from "@swapkit/helpers";
2
- import type { JsonRpcProvider, Provider, TransactionRequest, TransactionResponse } from "ethers";
3
- import { AbstractSigner } from "ethers";
4
-
5
- import { DEFAULT_EIP155_METHODS } from "./constants";
6
- import { chainToChainId, getAddressByChain } from "./helpers";
7
- import type { Walletconnect } from "./index";
8
-
9
- interface WalletconnectEVMSignerParams {
10
- chain: EVMChain;
11
- walletconnect: Walletconnect;
12
- provider: Provider | JsonRpcProvider;
13
- }
14
-
15
- class WalletconnectSigner extends AbstractSigner {
16
- address: string;
17
-
18
- private chain: EVMChain;
19
- private walletconnect: Walletconnect;
20
- readonly provider: Provider | JsonRpcProvider;
21
-
22
- constructor({ chain, provider, walletconnect }: WalletconnectEVMSignerParams) {
23
- super(provider);
24
- this.chain = chain;
25
- this.walletconnect = walletconnect;
26
- this.provider = provider;
27
- this.address = "";
28
- }
29
-
30
- // biome-ignore lint/suspicious/useAwait: fulfil implementation type
31
- getAddress = async () => {
32
- if (!this.walletconnect) {
33
- throw new SwapKitError("wallet_walletconnect_connection_not_established");
34
- }
35
- if (!this.address) {
36
- this.address = getAddressByChain(this.chain, this.walletconnect.accounts || []);
37
- }
38
-
39
- return this.address;
40
- };
41
-
42
- signMessage = async (message: string) => {
43
- // this is probably broken
44
- const txHash = (await this.walletconnect?.client.request({
45
- chainId: chainToChainId(this.chain),
46
- topic: this.walletconnect.session.topic || "",
47
- request: {
48
- method: DEFAULT_EIP155_METHODS.ETH_SIGN,
49
- params: [message],
50
- },
51
- })) as string;
52
-
53
- return txHash.startsWith("0x") ? txHash : `0x${txHash}`;
54
- };
55
-
56
- signTransaction = () => {
57
- throw new SwapKitError("wallet_walletconnect_method_not_supported", {
58
- method: "signTransaction",
59
- });
60
-
61
- // const baseTx = {
62
- // from,
63
- // to,
64
- // value: BigNumber.from(value || 0).toHexString(),
65
- // data,
66
- // };
67
-
68
- // const txHash = (await this.walletconnect?.client.request({
69
- // chainId: chainToChainId(this.chain),
70
- // topic: this.walletconnect.session.topic,
71
- // request: {
72
- // method: DEFAULT_EIP155_METHODS.ETH_SIGN_TRANSACTION,
73
- // params: [baseTx],
74
- // },
75
- // })) as string;
76
-
77
- // return txHash.startsWith('0x') ? txHash : `0x${txHash}`;
78
- };
79
-
80
- // ANCHOR (@Towan) - Implement in future
81
- signTypedData = () => {
82
- throw new SwapKitError("wallet_walletconnect_method_not_supported", {
83
- method: "signTypedData",
84
- });
85
-
86
- // const { toHexString } = await import('@swapkit/toolboxes/evm');
87
-
88
- // const baseTx = {
89
- // from,
90
- // to,
91
- // value: toHexString(value || 0n),
92
- // data,
93
- // };
94
-
95
- // const txHash = (await this.walletconnect?.client.request({
96
- // chainId: chainToChainId(this.chain),
97
- // topic: this.walletconnect.session.topic,
98
- // request: {
99
- // method: DEFAULT_EIP155_METHODS.ETH_SIGN_TYPED_DATA,
100
- // params: [baseTx],
101
- // },
102
- // })) as string;
103
-
104
- // return txHash.startsWith('0x') ? txHash : `0x${txHash}`;
105
- };
106
-
107
- sendTransaction = async ({ from, to, value, data }: TransactionRequest) => {
108
- const { toHexString } = await import("@swapkit/toolboxes/evm");
109
-
110
- const baseTx = {
111
- from,
112
- to,
113
- value: toHexString(BigInt(value || 0)),
114
- data,
115
- };
116
- const response = await this.walletconnect?.client.request({
117
- chainId: chainToChainId(this.chain),
118
- topic: this.walletconnect.session.topic,
119
- request: {
120
- method: DEFAULT_EIP155_METHODS.ETH_SEND_TRANSACTION,
121
- params: [baseTx],
122
- },
123
- });
124
-
125
- return response as TransactionResponse;
126
- };
127
-
128
- connect = (provider: Provider | null) => {
129
- if (!provider) {
130
- throw new SwapKitError({
131
- errorKey: "wallet_provider_not_found",
132
- info: { wallet: WalletOption.WALLETCONNECT, chain: this.chain },
133
- });
134
- }
135
-
136
- return new WalletconnectSigner({
137
- chain: this.chain,
138
- walletconnect: this.walletconnect,
139
- provider,
140
- });
141
- };
142
- }
143
- export const getEVMSigner = async ({
144
- chain,
145
- walletconnect,
146
- provider,
147
- }: WalletconnectEVMSignerParams) => new WalletconnectSigner({ chain, walletconnect, provider });
@@ -1,77 +0,0 @@
1
- import { Chain, type EVMChain, SKConfig } from "@swapkit/helpers";
2
-
3
- import {
4
- ARBITRUM_ONE_MAINNET_ID,
5
- AURORA_MAINNET_ID,
6
- AVALANCHE_MAINNET_ID,
7
- BASE_MAINNET_ID,
8
- BERACHAIN_MAINNET_ID,
9
- BSC_MAINNET_ID,
10
- COSMOS_HUB_MAINNET_ID,
11
- ETHEREUM_MAINNET_ID,
12
- KUJIRA_MAINNET_ID,
13
- MAYACHAIN_MAINNET_ID,
14
- NEAR_MAINNET_ID,
15
- NEAR_TESTNET_ID,
16
- OPTIMISM_MAINNET_ID,
17
- POLYGON_MAINNET_ID,
18
- THORCHAIN_MAINNET_ID,
19
- TRON_MAINNET_ID,
20
- } from "./constants";
21
-
22
- export const getAddressByChain = (
23
- chain:
24
- | EVMChain
25
- | Chain.THORChain
26
- | Chain.Maya
27
- | Chain.Kujira
28
- | Chain.Cosmos
29
- | Chain.Near
30
- | Chain.Tron,
31
- accounts: string[],
32
- ) => {
33
- const account = accounts.find((account) => account.startsWith(chainToChainId(chain))) || "";
34
- const address = account?.split(":")?.[2];
35
-
36
- return address || "";
37
- };
38
-
39
- export const chainToChainId = (chain: Chain) => {
40
- switch (chain) {
41
- case Chain.Avalanche:
42
- return AVALANCHE_MAINNET_ID;
43
- case Chain.Aurora:
44
- return AURORA_MAINNET_ID;
45
- case Chain.Base:
46
- return BASE_MAINNET_ID;
47
- case Chain.BinanceSmartChain:
48
- return BSC_MAINNET_ID;
49
- case Chain.Berachain:
50
- return BERACHAIN_MAINNET_ID;
51
- case Chain.Ethereum:
52
- return ETHEREUM_MAINNET_ID;
53
- case Chain.THORChain:
54
- return THORCHAIN_MAINNET_ID;
55
- case Chain.Arbitrum:
56
- return ARBITRUM_ONE_MAINNET_ID;
57
- case Chain.Optimism:
58
- return OPTIMISM_MAINNET_ID;
59
- case Chain.Polygon:
60
- return POLYGON_MAINNET_ID;
61
- case Chain.Maya:
62
- return MAYACHAIN_MAINNET_ID;
63
- case Chain.Cosmos:
64
- return COSMOS_HUB_MAINNET_ID;
65
- case Chain.Kujira:
66
- return KUJIRA_MAINNET_ID;
67
- case Chain.Near: {
68
- // Use testnet if stagenet is enabled
69
- const { isStagenet } = SKConfig.get("envs");
70
- return isStagenet ? NEAR_TESTNET_ID : NEAR_MAINNET_ID;
71
- }
72
- case Chain.Tron:
73
- return TRON_MAINNET_ID;
74
- default:
75
- return "";
76
- }
77
- };