@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,179 +0,0 @@
1
- import type { Wallet } from "@passkeys/core";
2
- import {
3
- Chain,
4
- EVMChains,
5
- SwapKitError,
6
- WalletOption,
7
- createWallet,
8
- filterSupportedChains,
9
- prepareNetworkSwitch,
10
- switchEVMWalletNetwork,
11
- } from "@swapkit/helpers";
12
- import { Psbt } from "bitcoinjs-lib";
13
- import type { BrowserProvider, Eip1193Provider } from "ethers";
14
- import {
15
- AddressPurpose,
16
- BitcoinNetworkType,
17
- type BitcoinProvider,
18
- type GetAddressOptions,
19
- type GetAddressResponse,
20
- type SignTransactionOptions,
21
- getAddress,
22
- signTransaction as satsSignTransaction,
23
- } from "sats-connect";
24
- import { getWalletSupportedChains } from "../utils";
25
-
26
- async function getWalletMethods({
27
- walletProvider,
28
- provider,
29
- chain,
30
- }: {
31
- walletProvider?: Eip1193Provider;
32
- provider: BrowserProvider | BitcoinProvider;
33
- chain: Chain;
34
- }) {
35
- switch (chain) {
36
- case Chain.Bitcoin: {
37
- const { getUtxoToolbox } = await import("@swapkit/toolboxes/utxo");
38
-
39
- let address = "";
40
-
41
- const getProvider: () => Promise<BitcoinProvider | undefined> = () =>
42
- new Promise((res) => res(provider as BitcoinProvider));
43
-
44
- const getAddressOptions: GetAddressOptions = {
45
- getProvider,
46
- payload: {
47
- purposes: [AddressPurpose.Payment],
48
- message: "Address for receiving and sending payments",
49
- network: { type: BitcoinNetworkType.Mainnet },
50
- },
51
- onFinish: (response: GetAddressResponse) => {
52
- if (!response.addresses[0]) throw new SwapKitError("wallet_exodus_no_address");
53
- address = response.addresses[0].address;
54
- },
55
- onCancel: () => {
56
- throw new SwapKitError("wallet_exodus_request_canceled");
57
- },
58
- };
59
-
60
- // TODO: Towan - probably not needed ?
61
- await getAddress(getAddressOptions);
62
-
63
- async function signTransaction(psbt: Psbt) {
64
- let signedPsbt: Psbt | undefined;
65
- const signPsbtOptions: SignTransactionOptions = {
66
- getProvider,
67
- payload: {
68
- message: "Sign transaction",
69
- network: {
70
- type: BitcoinNetworkType.Mainnet,
71
- },
72
- psbtBase64: psbt.toBase64(),
73
- broadcast: false,
74
- inputsToSign: [
75
- { address: address, signingIndexes: psbt.txInputs.map((_, index) => index) },
76
- ],
77
- },
78
- onFinish: (response) => {
79
- signedPsbt = Psbt.fromBase64(response.psbtBase64);
80
- },
81
- onCancel: () => {
82
- throw new SwapKitError("wallet_exodus_signature_canceled");
83
- },
84
- };
85
-
86
- await satsSignTransaction(signPsbtOptions);
87
- if (!signedPsbt) throw new SwapKitError("wallet_exodus_sign_transaction_error");
88
- return signedPsbt;
89
- }
90
-
91
- const signer = {
92
- signTransaction,
93
- getAddress: () => Promise.resolve(address),
94
- };
95
- const toolbox = await getUtxoToolbox(chain, { signer });
96
-
97
- return { ...toolbox, address };
98
- }
99
- case Chain.Arbitrum:
100
- case Chain.Aurora:
101
- case Chain.Avalanche:
102
- case Chain.Base:
103
- case Chain.BinanceSmartChain:
104
- case Chain.Ethereum:
105
- case Chain.Optimism:
106
- case Chain.Polygon: {
107
- if (!walletProvider) throw new SwapKitError("wallet_exodus_not_found");
108
- const { getProvider, getEvmToolbox } = await import("@swapkit/toolboxes/evm");
109
-
110
- const jsonRpcProvider = await getProvider(chain);
111
- const browserProvider = provider as BrowserProvider;
112
-
113
- await browserProvider.send("eth_requestAccounts", []);
114
-
115
- const signer = await browserProvider.getSigner();
116
- const address = await signer.getAddress();
117
- const toolbox = await getEvmToolbox(chain, { provider: jsonRpcProvider, signer });
118
-
119
- try {
120
- if (chain !== Chain.Ethereum) {
121
- const networkParams = toolbox.getNetworkParams();
122
- await switchEVMWalletNetwork(browserProvider, chain, networkParams);
123
- }
124
- } catch (_error) {
125
- throw new SwapKitError("wallet_exodus_failed_to_switch_network", { chain });
126
- }
127
-
128
- return { ...prepareNetworkSwitch({ toolbox, chain, provider: browserProvider }), address };
129
- }
130
- default:
131
- throw new SwapKitError("wallet_exodus_chain_not_supported", { chain });
132
- }
133
- }
134
-
135
- export const exodusWallet = createWallet({
136
- name: "connectExodusWallet",
137
- walletType: WalletOption.EXODUS,
138
- supportedChains: [...EVMChains, Chain.Bitcoin],
139
- connect: ({ addChain, walletType, supportedChains }) =>
140
- async function connectExodusWallet(chains: Chain[], wallet: Wallet) {
141
- if (!wallet) throw new SwapKitError("wallet_exodus_instance_missing");
142
- const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });
143
- const { BrowserProvider } = await import("ethers");
144
-
145
- const { providers } = wallet;
146
-
147
- await Promise.all(
148
- filteredChains.map(async (chain) => {
149
- const provider =
150
- chain === Chain.Bitcoin
151
- ? providers.bitcoin
152
- : new BrowserProvider(providers.ethereum, "any");
153
-
154
- const { address, ...walletMethods } = await getWalletMethods({
155
- chain,
156
- provider,
157
- walletProvider: providers.ethereum,
158
- });
159
-
160
- const disconnect = () =>
161
- provider.send("wallet_revokePermissions", [{ eth_accounts: {} }]);
162
-
163
- addChain({
164
- ...walletMethods,
165
- disconnect,
166
- chain,
167
- address,
168
- walletType: WalletOption.EXODUS,
169
- });
170
- }),
171
- );
172
-
173
- return true;
174
- },
175
- });
176
-
177
- export const EXODUS_SUPPORTED_CHAINS = getWalletSupportedChains(exodusWallet);
178
- export * from "@passkeys/react";
179
- export * from "@passkeys/core";
@@ -1,286 +0,0 @@
1
- /**
2
- * NEAR Browser Wallet Provider Interface Definitions
3
- *
4
- * This file contains the standard TypeScript interface definitions for NEAR browser wallet providers
5
- * that inject themselves into the window object (e.g., OKX, XDEFI/CTRL, etc.)
6
- *
7
- * Based on:
8
- * - NEAR Protocol wallet-selector library
9
- * - Common patterns from OKX, XDEFI/CTRL, and other NEAR wallet implementations
10
- * - NEAR API JS types
11
- */
12
-
13
- import type { PublicKey } from "near-api-js/lib/utils";
14
-
15
- /**
16
- * Transaction action types supported by NEAR
17
- */
18
- export interface NearAction {
19
- type: "FunctionCall" | "Transfer" | "Stake" | "AddKey" | "DeleteKey" | "DeleteAccount";
20
- params?: {
21
- methodName?: string;
22
- args?: object;
23
- gas?: string;
24
- deposit?: string;
25
- publicKey?: string;
26
- beneficiaryId?: string;
27
- };
28
- }
29
-
30
- /**
31
- * Transaction structure for NEAR
32
- */
33
- export interface NearTransaction {
34
- receiverId: string;
35
- actions: NearAction[];
36
- // Optional fields
37
- signerId?: string;
38
- publicKey?: string;
39
- nonce?: number;
40
- recentBlockHash?: string;
41
- }
42
-
43
- /**
44
- * Message signing parameters
45
- */
46
- export interface NearSignMessageParams {
47
- message: string;
48
- recipient: string;
49
- nonce: Buffer | Uint8Array;
50
- callbackUrl?: string;
51
- state?: string;
52
- }
53
-
54
- /**
55
- * Signed message response
56
- */
57
- export interface NearSignedMessage {
58
- accountId: string;
59
- publicKey: string;
60
- signature: string;
61
- // Optional callback data
62
- callbackUrl?: string;
63
- state?: string;
64
- }
65
-
66
- /**
67
- * Sign-in request parameters
68
- */
69
- export interface NearSignInParams {
70
- contractId?: string;
71
- methodNames?: string[];
72
- // Success and failure URLs for browser wallets
73
- successUrl?: string;
74
- failureUrl?: string;
75
- }
76
-
77
- /**
78
- * Account information
79
- */
80
- export interface NearAccount {
81
- accountId: string;
82
- publicKey?: string;
83
- }
84
-
85
- /**
86
- * Access key information
87
- */
88
- export interface NearAccessKey {
89
- publicKey: PublicKey;
90
- accessKey: {
91
- nonce: number;
92
- permission:
93
- | "FullAccess"
94
- | {
95
- FunctionCall: {
96
- allowance?: string;
97
- receiverId: string;
98
- methodNames: string[];
99
- };
100
- };
101
- };
102
- }
103
-
104
- /**
105
- * Transaction execution result
106
- */
107
- export interface NearFinalExecutionOutcome {
108
- status: object;
109
- transaction: object;
110
- transaction_outcome: object;
111
- receipts_outcome: object[];
112
- }
113
-
114
- /**
115
- * Standard NEAR browser wallet provider interface
116
- *
117
- * This interface represents the common API surface that NEAR browser wallets
118
- * expose when they inject themselves into the window object.
119
- */
120
- export interface NearBrowserWalletProvider {
121
- // Connection Management
122
- /**
123
- * Request connection to the wallet
124
- * Returns array of account IDs that were connected
125
- */
126
- connect(): Promise<string[]>;
127
-
128
- /**
129
- * Alternative connection method used by some wallets
130
- */
131
- request?(params: { method: "connect"; params?: any }): Promise<string[]>;
132
-
133
- /**
134
- * Disconnect from the wallet
135
- */
136
- disconnect(): Promise<void>;
137
-
138
- /**
139
- * Sign out from the wallet (some wallets use this instead of disconnect)
140
- */
141
- signOut?(): void;
142
-
143
- // Account Management
144
- /**
145
- * Check if user is signed in
146
- */
147
- isSignedIn?(): boolean;
148
-
149
- /**
150
- * Get the current account ID
151
- */
152
- getAccountId(): string | Promise<string>;
153
-
154
- /**
155
- * Get list of accounts (some wallets support multiple accounts)
156
- */
157
- getAccounts?(): Promise<NearAccount[]>;
158
-
159
- /**
160
- * Get the public key for the current account
161
- */
162
- getPublicKey?(): Promise<string>;
163
-
164
- // Legacy sign-in methods (used by some wallets)
165
- /**
166
- * Request sign in (legacy method)
167
- */
168
- requestSignIn?(params: NearSignInParams): Promise<NearAccount>;
169
-
170
- // Signing Operations
171
- /**
172
- * Sign a message
173
- */
174
- signMessage(params: NearSignMessageParams): Promise<NearSignedMessage>;
175
-
176
- /**
177
- * Sign and send a single transaction
178
- */
179
- signAndSendTransaction(params: {
180
- receiverId: string;
181
- actions: NearAction[];
182
- // Optional parameters
183
- signerId?: string;
184
- publicKey?: string;
185
- nonce?: number;
186
- recentBlockHash?: string;
187
- }): Promise<NearFinalExecutionOutcome>;
188
-
189
- /**
190
- * Sign and send multiple transactions
191
- */
192
- signAndSendTransactions(params: {
193
- transactions: NearTransaction[];
194
- }): Promise<NearFinalExecutionOutcome[]>;
195
-
196
- /**
197
- * Request signing of transactions (alternative method used by some wallets)
198
- */
199
- requestSignTransactions?(params: {
200
- transactions: NearTransaction[];
201
- }): Promise<any>;
202
-
203
- // Verification
204
- /**
205
- * Verify ownership of an account
206
- */
207
- verifyOwner?(params: {
208
- message: string;
209
- // Additional parameters may vary by wallet
210
- }): Promise<{
211
- accountId: string;
212
- publicKey: string;
213
- signature: string;
214
- // Additional fields may be returned
215
- }>;
216
-
217
- // Network Information
218
- /**
219
- * Get the current network (mainnet, testnet, etc.)
220
- */
221
- getNetwork?(): string | Promise<string>;
222
-
223
- /**
224
- * Check if wallet is connected to mainnet
225
- */
226
- isMainnet?(): boolean;
227
-
228
- // Wallet Metadata
229
- /**
230
- * Wallet name or identifier
231
- */
232
- name?: string;
233
-
234
- /**
235
- * Wallet version
236
- */
237
- version?: string;
238
-
239
- /**
240
- * Check if this is a specific wallet (used for wallet detection)
241
- */
242
- isOKX?: boolean;
243
- isXDEFI?: boolean;
244
- isCTRL?: boolean;
245
-
246
- // Event Handling (not all wallets support events)
247
- on?(event: "accountsChanged" | "networkChanged" | "disconnect", handler: Function): void;
248
- off?(event: string, handler: Function): void;
249
- removeListener?(event: string, handler: Function): void;
250
- }
251
-
252
- /**
253
- * Extended window interface for NEAR wallets
254
- */
255
- declare global {
256
- interface Window {
257
- // Generic NEAR provider (if wallet uses this pattern)
258
- near?: NearBrowserWalletProvider;
259
-
260
- // Specific wallet providers
261
- okxwallet?: {
262
- near: NearBrowserWalletProvider;
263
- };
264
-
265
- xfi?: {
266
- near: NearBrowserWalletProvider;
267
- };
268
-
269
- // Add other wallet-specific providers as needed
270
- }
271
- }
272
-
273
- /**
274
- * Helper type for wallet detection
275
- */
276
- export type NearWalletType = "okx" | "xdefi" | "ctrl" | "generic";
277
-
278
- /**
279
- * Configuration for NEAR network
280
- */
281
- export interface NearNetworkConfig {
282
- networkId: "mainnet" | "testnet" | "betanet";
283
- nodeUrl: string;
284
- walletUrl?: string;
285
- helperUrl?: string;
286
- }
@@ -1,206 +0,0 @@
1
- //TBD @towan to be moved somewhere else
2
- import { SwapKitError } from "@swapkit/helpers";
3
- import type { NearSigner } from "@swapkit/toolboxes/near";
4
- import type { Account } from "near-api-js";
5
- import {
6
- type Action,
7
- type Signature,
8
- SignedTransaction,
9
- type Transaction,
10
- } from "near-api-js/lib/transaction";
11
-
12
- /**
13
- * NEAR Browser Wallet Provider Interface
14
- * Common interface implemented by browser extension wallets
15
- */
16
- export interface NearBrowserWalletProvider {
17
- // Connection methods
18
- connect(params?: { contractId?: string; methodNames?: string[] }): Promise<
19
- Account[] | { accountId: string }
20
- >;
21
- disconnect?(): Promise<void>;
22
- signOut?(): Promise<void>; // Alternative to disconnect
23
-
24
- // Account methods
25
- getAccountId(): string | Promise<string>;
26
- getAccounts?(): Promise<Account[]>;
27
- isSignedIn(): boolean;
28
- getPublicKey?(): Promise<string>;
29
-
30
- // Signing methods
31
- signMessage?(params: any): Promise<any>;
32
- signAndSendTransaction(params: {
33
- receiverId: string;
34
- actions: Action[];
35
- signerId?: string;
36
- }): Promise<any>;
37
- signAndSendTransactions?(params: {
38
- transactions: Transaction[];
39
- }): Promise<any[]>;
40
-
41
- // Optional utility methods
42
- request<T>(params: { method: string; params?: any }): Promise<T>;
43
- verifyOwner?(params: {
44
- message: string;
45
- callbackUrl?: string;
46
- }): Promise<any>;
47
- getNetwork?(): Promise<{ networkId: string; nodeUrl: string }>;
48
-
49
- // Event handlers (optional)
50
- on?(event: string, handler: Function): void;
51
- off?(event: string, handler: Function): void;
52
- }
53
-
54
- /**
55
- * Helper to create a NEAR signer from browser extension providers
56
- */
57
- export async function createNearSignerFromProvider(
58
- provider: NearBrowserWalletProvider,
59
- walletName: string,
60
- ) {
61
- const isConnected = provider.isSignedIn ? provider.isSignedIn() : false;
62
- if (!isConnected) {
63
- await provider.connect({ contractId: "", methodNames: [] });
64
- }
65
-
66
- const signer = {
67
- ...provider,
68
- async getPublicKey() {
69
- // Most browser wallets expose public key through message signing
70
- const { utils } = await import("near-api-js");
71
-
72
- if (provider.getPublicKey) {
73
- const pubKey = await provider.getPublicKey();
74
- return utils.PublicKey.from(pubKey);
75
- }
76
-
77
- if (!provider.signMessage) {
78
- throw new SwapKitError("wallet_ledger_method_not_supported", {
79
- wallet: walletName,
80
- method: "getPublicKey",
81
- });
82
- }
83
-
84
- // Most browser wallets don't expose public key directly
85
- // Return a dummy public key
86
- const { PublicKey } = await import("near-api-js/lib/utils");
87
- // Create a dummy ed25519 public key
88
- const dummyKeyData = Buffer.alloc(32);
89
- const dummyKey = `ed25519:${Buffer.from(dummyKeyData).toString("base64")}`;
90
- return PublicKey.from(dummyKey);
91
- },
92
-
93
- async signNep413Message(
94
- message: string,
95
- _accountId: string,
96
- recipient: string,
97
- nonce: Uint8Array,
98
- callbackUrl?: string,
99
- ) {
100
- if (!provider.signMessage) {
101
- throw new SwapKitError("wallet_ledger_method_not_supported", {
102
- wallet: walletName,
103
- method: "signNep413Message",
104
- });
105
- }
106
-
107
- // We know signMessage exists because we checked above
108
- const result = await (
109
- provider as Required<Pick<NearBrowserWalletProvider, "signMessage">>
110
- ).signMessage({
111
- message,
112
- recipient,
113
- nonce: Buffer.from(nonce),
114
- callbackUrl,
115
- });
116
-
117
- return result;
118
- },
119
-
120
- async signTransaction(transaction: Transaction) {
121
- if (!provider.request) {
122
- throw new SwapKitError("wallet_near_method_not_supported", {
123
- wallet: walletName,
124
- method: "request",
125
- });
126
- }
127
-
128
- // Browser wallets typically sign and send in one operation
129
- // This is a limitation of browser wallet APIs
130
- const result = await provider.request<{ signatures: Signature }>({
131
- method: "near_signTransactions",
132
- params: {
133
- transactions: [transaction], // must be Array type
134
- },
135
- });
136
-
137
- const signedTransaction = new SignedTransaction({
138
- transaction,
139
- signature: result.signatures,
140
- });
141
-
142
- return [result.signatures.data, signedTransaction] as [
143
- Uint8Array<ArrayBufferLike>,
144
- SignedTransaction,
145
- ];
146
- },
147
-
148
- signDelegateAction(_delegateAction: any) {
149
- // Most browser wallets don't support delegate actions yet
150
- return Promise.reject(
151
- new SwapKitError("wallet_ledger_method_not_supported", {
152
- wallet: walletName,
153
- method: "signDelegateAction",
154
- }),
155
- );
156
- },
157
-
158
- async getAddress() {
159
- if (provider.getAccountId) {
160
- return provider.getAccountId();
161
- }
162
-
163
- if (provider.isSignedIn && !provider.isSignedIn()) {
164
- // Try connect method for wallets that don't have requestSignIn
165
- const result = await provider.connect();
166
- if (Array.isArray(result) && result.length > 0 && result[0]) {
167
- return typeof result[0] === "string" ? result[0] : result[0].accountId;
168
- }
169
- throw new SwapKitError("wallet_connection_rejected_by_user", {
170
- wallet: walletName,
171
- });
172
- }
173
-
174
- throw new SwapKitError("wallet_connection_rejected_by_user", {
175
- wallet: walletName,
176
- });
177
- },
178
- };
179
-
180
- return signer as NearSigner;
181
- }
182
-
183
- /**
184
- * Detect if a wallet provider supports NEAR
185
- */
186
- export function detectNearProvider(
187
- window: any,
188
- providerPath: string,
189
- ): NearBrowserWalletProvider | null {
190
- const parts = providerPath.split(".");
191
- let provider = window;
192
-
193
- for (const part of parts) {
194
- provider = provider?.[part];
195
- if (!provider) return null;
196
- }
197
-
198
- return provider;
199
- }
200
-
201
- /**
202
- * Get NEAR chain ID for WalletConnect
203
- */
204
- export function getNearChainId(isTestnet: boolean): string {
205
- return isTestnet ? "near:testnet" : "near:mainnet";
206
- }
package/src/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "./utils";
2
- export * from "./types";