@swapkit/wallets 4.0.0-beta.53 → 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,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";