@rango-dev/provider-metamask 0.0.0-experimental-936229e8-20251208

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 (42) hide show
  1. package/CHANGELOG.md +239 -0
  2. package/dist/actions/solana.d.ts +11 -0
  3. package/dist/actions/solana.d.ts.map +1 -0
  4. package/dist/builders/solana.d.ts +8 -0
  5. package/dist/builders/solana.d.ts.map +1 -0
  6. package/dist/constants.d.ts +6 -0
  7. package/dist/constants.d.ts.map +1 -0
  8. package/dist/legacy/index.d.ts +20 -0
  9. package/dist/legacy/index.d.ts.map +1 -0
  10. package/dist/mod.d.ts +3 -0
  11. package/dist/mod.d.ts.map +1 -0
  12. package/dist/mod.js +2 -0
  13. package/dist/mod.js.map +7 -0
  14. package/dist/namespaces/evm.d.ts +4 -0
  15. package/dist/namespaces/evm.d.ts.map +1 -0
  16. package/dist/namespaces/solana.d.ts +4 -0
  17. package/dist/namespaces/solana.d.ts.map +1 -0
  18. package/dist/provider-metamask.build.json +1 -0
  19. package/dist/provider.d.ts +3 -0
  20. package/dist/provider.d.ts.map +1 -0
  21. package/dist/signer.d.ts +4 -0
  22. package/dist/signer.d.ts.map +1 -0
  23. package/dist/signers/solana.d.ts +12 -0
  24. package/dist/signers/solana.d.ts.map +1 -0
  25. package/dist/types.d.ts +39 -0
  26. package/dist/types.d.ts.map +1 -0
  27. package/dist/utils.d.ts +7 -0
  28. package/dist/utils.d.ts.map +1 -0
  29. package/package.json +40 -0
  30. package/readme.md +26 -0
  31. package/src/actions/solana.ts +42 -0
  32. package/src/builders/solana.ts +36 -0
  33. package/src/constants.ts +56 -0
  34. package/src/legacy/index.ts +91 -0
  35. package/src/mod.ts +12 -0
  36. package/src/namespaces/evm.ts +81 -0
  37. package/src/namespaces/solana.ts +45 -0
  38. package/src/provider.ts +23 -0
  39. package/src/signer.ts +29 -0
  40. package/src/signers/solana.ts +88 -0
  41. package/src/types.ts +54 -0
  42. package/src/utils.ts +144 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,239 @@
1
+ # [0.55.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.54.1...provider-metamask@0.55.0) (2025-12-02)
2
+
3
+
4
+
5
+ ## [0.54.1](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.54.0...provider-metamask@0.54.1) (2025-11-22)
6
+
7
+
8
+
9
+ # [0.52.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.51.0...provider-metamask@0.52.0) (2025-10-29)
10
+
11
+
12
+ ### Features
13
+
14
+ * add solana support to metamask ([7d7f521](https://github.com/rango-exchange/rango-client/commit/7d7f52172c4a4699ec1caa8896cedacab958bf34))
15
+
16
+
17
+
18
+ # [0.51.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.50.0...provider-metamask@0.51.0) (2025-09-29)
19
+
20
+
21
+ ### Features
22
+
23
+ * migrate metamask to hub ([9ef1b5a](https://github.com/rango-exchange/rango-client/commit/9ef1b5a600945c8467b500a686a96cf081f3fb6e))
24
+
25
+
26
+
27
+ # [0.50.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.49.0...provider-metamask@0.50.0) (2025-09-06)
28
+
29
+
30
+
31
+ # [0.49.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.48.0...provider-metamask@0.49.0) (2025-08-19)
32
+
33
+
34
+ ### Bug Fixes
35
+
36
+ * add rango-dev/wallets-core to dependencies of providers ([84b4b2b](https://github.com/rango-exchange/rango-client/commit/84b4b2b7c3a7f5631228fb6ebf04617c3c4428e9))
37
+ * remove retry dynamic import and throw refined error on dynamic import failure ([a2944ac](https://github.com/rango-exchange/rango-client/commit/a2944ac3c05a0e945f6e5621fa5693ab89625485))
38
+
39
+
40
+ ### Features
41
+
42
+ * implement retry mechanism for lazy imports ([9a8e191](https://github.com/rango-exchange/rango-client/commit/9a8e191711d2319990ca4d0613e8188a5f86842f))
43
+
44
+
45
+
46
+ # [0.48.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.47.0...provider-metamask@0.48.0) (2025-08-05)
47
+
48
+
49
+
50
+ # [0.47.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.46.0...provider-metamask@0.47.0) (2025-07-22)
51
+
52
+
53
+ ### Reverts
54
+
55
+ * Revert "chore(release): publish" ([064ce15](https://github.com/rango-exchange/rango-client/commit/064ce157a2f819856f647f83aeb1c0410542e8d7))
56
+
57
+
58
+
59
+ # [0.45.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.44.1...provider-metamask@0.45.0) (2025-06-09)
60
+
61
+
62
+
63
+ ## [0.44.1](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.44.0...provider-metamask@0.44.1) (2025-05-04)
64
+
65
+
66
+
67
+ # [0.44.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.43.0...provider-metamask@0.44.0) (2025-04-30)
68
+
69
+
70
+ ### Bug Fixes
71
+
72
+ * rename pbt to ptb for sui ([3d6d89f](https://github.com/rango-exchange/rango-client/commit/3d6d89f2265766607a15d61e0df92643fb33072b))
73
+
74
+
75
+ ### Features
76
+
77
+ * update sui to consider recent api changes ([d764b25](https://github.com/rango-exchange/rango-client/commit/d764b2501df9bb295f63cdbc0b05acd4a3abb4b9))
78
+
79
+
80
+
81
+ # [0.43.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.42.0...provider-metamask@0.43.0) (2025-03-11)
82
+
83
+
84
+
85
+ # [0.42.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.41.0...provider-metamask@0.42.0) (2025-02-23)
86
+
87
+
88
+
89
+ # [0.41.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.40.0...provider-metamask@0.41.0) (2024-12-30)
90
+
91
+
92
+
93
+ # [0.40.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.39.0...provider-metamask@0.40.0) (2024-11-27)
94
+
95
+
96
+
97
+ # [0.39.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.38.0...provider-metamask@0.39.0) (2024-11-12)
98
+
99
+
100
+
101
+ # [0.38.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.37.0...provider-metamask@0.38.0) (2024-10-12)
102
+
103
+
104
+ ### Bug Fixes
105
+
106
+ * bump sdk and fix type issues ([d442208](https://github.com/rango-exchange/rango-client/commit/d4422083bf5dd27d5f509ce1db7f9560d05428c8))
107
+
108
+
109
+ ### Performance Improvements
110
+
111
+ * lazy load signer packages ([7b88f18](https://github.com/rango-exchange/rango-client/commit/7b88f1834f7b29b4b81ab6c81a07bb88e8ccf55c))
112
+
113
+
114
+
115
+ # [0.37.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.36.0...provider-metamask@0.37.0) (2024-09-10)
116
+
117
+
118
+
119
+ # [0.36.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.35.1...provider-metamask@0.36.0) (2024-08-11)
120
+
121
+
122
+
123
+ ## [0.35.1](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.35.0...provider-metamask@0.35.1) (2024-07-14)
124
+
125
+
126
+
127
+ # [0.35.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.33.2...provider-metamask@0.35.0) (2024-07-09)
128
+
129
+
130
+
131
+ # [0.34.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.33.2...provider-metamask@0.34.0) (2024-06-01)
132
+
133
+
134
+
135
+ ## [0.33.2](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.33.1...provider-metamask@0.33.2) (2024-05-26)
136
+
137
+
138
+
139
+ ## [0.33.1](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.33.0...provider-metamask@0.33.1) (2024-05-25)
140
+
141
+
142
+
143
+ # [0.33.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.32.0...provider-metamask@0.33.0) (2024-05-14)
144
+
145
+
146
+
147
+ # [0.32.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.31.0...provider-metamask@0.32.0) (2024-04-24)
148
+
149
+
150
+
151
+ # [0.31.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.30.0...provider-metamask@0.31.0) (2024-04-23)
152
+
153
+
154
+ ### Bug Fixes
155
+
156
+ * resolve conflicts between evm providers ([9a6734c](https://github.com/rango-exchange/rango-client/commit/9a6734cf1537bf0504cf9058d4d775313a9e8e80))
157
+
158
+
159
+
160
+ # [0.30.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.29.0...provider-metamask@0.30.0) (2024-04-09)
161
+
162
+
163
+
164
+ # [0.29.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.28.0...provider-metamask@0.29.0) (2024-03-12)
165
+
166
+
167
+
168
+ # [0.28.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.27.0...provider-metamask@0.28.0) (2024-02-20)
169
+
170
+
171
+
172
+ # [0.27.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.26.0...provider-metamask@0.27.0) (2024-02-07)
173
+
174
+
175
+
176
+ # [0.26.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.25.0...provider-metamask@0.26.0) (2024-01-22)
177
+
178
+
179
+
180
+ # [0.25.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.23.0...provider-metamask@0.25.0) (2023-12-24)
181
+
182
+
183
+ ### Bug Fixes
184
+
185
+ * fix HMR for widget and playground ([8524820](https://github.com/rango-exchange/rango-client/commit/8524820f10cf0b8921f3db0c4f620ff98daa4103))
186
+
187
+
188
+
189
+ # [0.14.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.13.0...provider-metamask@0.14.0) (2023-08-03)
190
+
191
+
192
+
193
+ # [0.13.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.12.0...provider-metamask@0.13.0) (2023-08-01)
194
+
195
+
196
+
197
+ # [0.9.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.8.0...provider-metamask@0.9.0) (2023-07-31)
198
+
199
+
200
+
201
+ # [0.7.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.6.0...provider-metamask@0.7.0) (2023-07-11)
202
+
203
+
204
+
205
+ # [0.6.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.5.0...provider-metamask@0.6.0) (2023-07-11)
206
+
207
+
208
+ ### Reverts
209
+
210
+ * Revert "support for rango-types cjs format" ([ed4e050](https://github.com/rango-exchange/rango-client/commit/ed4e050bfc0dcde7aeffa6b0d73b02080a5721eb))
211
+ * Revert "support for rango-types cjs format" ([4f5f55f](https://github.com/rango-exchange/rango-client/commit/4f5f55f96e8daa329588b932b19c291c30f339c4))
212
+
213
+
214
+
215
+ # [0.5.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.4.0...provider-metamask@0.5.0) (2023-05-31)
216
+
217
+
218
+
219
+ # [0.4.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.3.0...provider-metamask@0.4.0) (2023-05-31)
220
+
221
+
222
+
223
+ # [0.3.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.2.0...provider-metamask@0.3.0) (2023-05-30)
224
+
225
+
226
+
227
+ # [0.2.0](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.1.15...provider-metamask@0.2.0) (2023-05-30)
228
+
229
+
230
+
231
+ ## [0.1.14](https://github.com/rango-exchange/rango-client/compare/provider-metamask@0.1.13...provider-metamask@0.1.14) (2023-05-15)
232
+
233
+
234
+ ### Bug Fixes
235
+
236
+ * update rango-types and fix notification bugs ([993f185](https://github.com/rango-exchange/rango-client/commit/993f185e0b8c5e5e15a2c65ba2d85d1f9c8daa90))
237
+
238
+
239
+
@@ -0,0 +1,11 @@
1
+ import type { WalletStandardSolanaInstance } from '../types.js';
2
+ import type { Context, FunctionWithContext } from '@rango-dev/wallets-core';
3
+ import { type SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';
4
+ declare function connect(getInstance: () => WalletStandardSolanaInstance): FunctionWithContext<SolanaActions['connect'], Context>;
5
+ declare function canEagerConnect(getInstance: () => WalletStandardSolanaInstance): () => Promise<boolean>;
6
+ export declare const solanaActions: {
7
+ connect: typeof connect;
8
+ canEagerConnect: typeof canEagerConnect;
9
+ };
10
+ export {};
11
+ //# sourceMappingURL=solana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/actions/solana.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,2CAA2C,CAAC;AAEnD,iBAAS,OAAO,CACd,WAAW,EAAE,MAAM,4BAA4B,GAC9C,mBAAmB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAUxD;AACD,iBAAS,eAAe,CAAC,WAAW,EAAE,MAAM,4BAA4B,0BAmBvE;AACD,eAAO,MAAM,aAAa;;;CAA+B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { WalletStandardSolanaInstance } from '../types.js';
2
+ import type { StandardEventsChangeProperties } from '@wallet-standard/features';
3
+ import { ChangeAccountSubscriberBuilder } from '@rango-dev/wallets-core/namespaces/common';
4
+ import { type SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';
5
+ export declare const solanaBuilders: {
6
+ changeAccountSubscriber: (getInstance: () => WalletStandardSolanaInstance) => ChangeAccountSubscriberBuilder<StandardEventsChangeProperties, WalletStandardSolanaInstance, SolanaActions>;
7
+ };
8
+ //# sourceMappingURL=solana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/builders/solana.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,2CAA2C,CAAC;AA4BnD,eAAO,MAAM,cAAc;2CAxBZ,MAAM,4BAA4B;CAwBQ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type ProviderMetadata } from '@rango-dev/wallets-core';
2
+ export declare const WALLET_ID = "metamask";
3
+ export declare const WALLET_STANDARD_NAME = "MetaMask";
4
+ export declare const SOLANA_WALLET_STANDARD_MAINNET = "solana:mainnet";
5
+ export declare const metadata: ProviderMetadata;
6
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAUhE,eAAO,MAAM,SAAS,aAAa,CAAC;AACpC,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,8BAA8B,mBAAmB,CAAC;AAC/D,eAAO,MAAM,QAAQ,EAAE,gBA0CtB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';
2
+ import type { CanEagerConnect, CanSwitchNetwork, Connect, Subscribe, SwitchNetwork, WalletInfo } from '@rango-dev/wallets-shared';
3
+ import type { BlockchainMeta, SignerFactory } from 'rango-types';
4
+ import { WalletTypes } from '@rango-dev/wallets-shared';
5
+ import { metamask as metamask_instance } from '../utils.js';
6
+ export declare const config: {
7
+ type: WalletTypes;
8
+ };
9
+ export declare const getInstance: typeof metamask_instance;
10
+ export declare const connect: Connect;
11
+ export declare const subscribe: Subscribe;
12
+ export declare const switchNetwork: SwitchNetwork;
13
+ export declare const canSwitchNetworkTo: CanSwitchNetwork;
14
+ type Provider = any;
15
+ export declare const getSigners: (provider: Provider) => Promise<SignerFactory>;
16
+ export declare const canEagerConnect: CanEagerConnect;
17
+ export declare const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo;
18
+ declare const buildLegacyProvider: () => LegacyProviderInterface;
19
+ export { buildLegacyProvider };
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/legacy/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,aAAa,EACb,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAML,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAI5D,eAAO,MAAM,MAAM;;CAElB,CAAC;AAEF,eAAO,MAAM,WAAW,0BAAoB,CAAC;AAC7C,eAAO,MAAM,OAAO,EAAE,OAarB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SAA0B,CAAC;AAEnD,eAAO,MAAM,aAAa,EAAE,aAAmC,CAAC;AAEhE,eAAO,MAAM,kBAAkB,EAAE,gBAAwC,CAAC;AAE1E,KAAK,QAAQ,GAAG,GAAG,CAAC;AACpB,eAAO,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,aAAa,CAC9D,CAAC;AAET,eAAO,MAAM,eAAe,EAAE,eAAwC,CAAC;AAEvE,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UAoBjE,CAAC;AACF,QAAA,MAAM,mBAAmB,EAAE,MAAM,uBAS/B,CAAC;AAEH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
package/dist/mod.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ declare const versions: () => import("@rango-dev/wallets-core/utils").VersionedProviders;
2
+ export { versions };
3
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,QAAQ,kEAIF,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/mod.js ADDED
@@ -0,0 +1,2 @@
1
+ var N=Object.defineProperty;var n=(e,t)=>N(e,"name",{value:t,configurable:!0});import{defineVersions as Oe}from"@rango-dev/wallets-core/utils";import{canEagerlyConnectToEvm as X,canSwitchNetworkToEvm as z,getEvmAccounts as H,subscribeToEvm as K,switchNetworkForEvm as st,WalletTypes as q}from"@rango-dev/wallets-shared";import{evmBlockchains as J}from"rango-types";import{LegacyNetworks as E}from"@rango-dev/wallets-core/legacy";import{dynamicImportWithRefinedError as B,getNetworkInstance as v}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as D,TransactionType as A}from"rango-types";import{generalSolanaTransactionExecutor as L}from"@rango-dev/signer-solana";import O from"bs58";import{SignerError as l,SignerErrorCode as d}from"rango-types";async function R(e,t){return await L(e,n(async o=>{let[r]=t.accounts;if(!r.publicKey)throw new l(d.SIGN_TX_ERROR,"Please make sure the required account is connected properly.");if(e.from!==r.address)throw new l(d.SIGN_TX_ERROR,"Your connected account doesn't match with the required account. Please ensure that you are connected with the correct account and try again.");try{let[s]=await t.features["solana:signTransaction"].signTransaction({account:r,transaction:o.serialize()});return s.signedTransaction}catch(s){throw s&&Object.hasOwn(s,"code")&&s.code===4001?new l(d.REJECTED_BY_USER,void 0,s):new l(d.SIGN_TX_ERROR,void 0,s)}},"DefaultSolanaSigner"))}n(R,"executeSolanaTransaction");var p=class{static{n(this,"MetamaskSolanaSigner")}_provider;constructor(t){this._provider=t}get provider(){return this._provider}async signMessage(t){try{let a=new TextEncoder().encode(t),[o]=this.provider.accounts,[r]=await this._provider.features["solana:signMessage"].signMessage({message:a,account:o});return O.encode(r.signature)}catch(a){throw new l(d.SIGN_TX_ERROR,void 0,a)}}async signAndSendTx(t){return{hash:await R(t,this._provider)}}};async function m(e){let t=v(e,E.ETHEREUM),a=v(e,E.SOLANA),o=new D,{DefaultEvmSigner:r}=await B(async()=>await import("@rango-dev/signer-evm"));return o.registerSigner(A.EVM,new r(t)),o.registerSigner(A.SOLANA,new p(a)),o}n(m,"getSigners");import{LegacyNetworks as u}from"@rango-dev/wallets-core/legacy";import{getWallets as U}from"@wallet-standard/app";import"@rango-dev/wallets-core";import{evmBlockchains as F,solanaBlockchain as j}from"rango-types";var c="metamask",b="MetaMask",k="solana:mainnet",y={name:"MetaMask",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/metamask/icon.svg",extensions:{chrome:"https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en",brave:"https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en",firefox:"https://addons.mozilla.org/en-US/firefox/addon/ether-metamask",edge:"https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm?hl=en-US",homepage:"https://metamask.io/download/"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",getSupportedChains:e=>F(e)},{label:"Solana",value:"Solana",id:"SOLANA",getSupportedChains:e=>j(e)}]}},{name:"signers",value:{getSigners:async()=>m(I())}}]};function i(){let{ethereum:e}=window,t=V();if(!e||!G(e))return null;let a=new Map;return e&&a.set(u.ETHEREUM,e),t&&a.set(u.SOLANA,t),a}n(i,"metamask");function G(e){return!(!e?.isMetaMask||e.isBraveWallet&&!e._events&&!e._state||e.isApexWallet||e.isAvalanche||e.isBitKeep||e.isBlockWallet||e.isCoin98||e.isFordefi||e.__XDEFI||e.isMathWallet||e.isOkxWallet||e.isOKExWallet||e.isOneInchIOSWallet||e.isOneInchAndroidWallet||e.isOpera||e.isPortal||e.isRabby||e.isDefiant||e.isTokenPocket||e.isTokenary||e.isZeal||e.isZerion||e.isSafePal)}n(G,"isEthereumMetamaskProvider");function f(){let t=i()?.get(u.ETHEREUM);if(!t)throw new Error("Metamask not injected or EVM not enabled. Please check your wallet.");return t}n(f,"evmMetamask");function g(){let t=i()?.get(u.SOLANA);if(!t)throw new Error("Metamask Solana instance is not available. Ensure that Solana support is enabled in your wallet.");return t}n(g,"solanaMetamask");function I(){let e=i();if(!e)throw new Error("MetaMask is not injected. Please check your wallet.");return e}n(I,"getInstanceOrThrow");function V(){return U().get().find(e=>e.name===b&&e.chains.includes(k))}n(V,"getSolanaWalletInstance");var Y=q.META_MASK,Z={type:Y},Q=i,$=n(async({instance:e})=>{let{accounts:t,chainId:a}=await H(e);return{accounts:t,chainId:a}},"connect"),ee=K;var te=z,ne=m,ae=X,oe=n(e=>{let t=J(e);return{name:"MetaMask",img:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/metamask/icon.svg",installLink:{CHROME:"https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en",BRAVE:"https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en",FIREFOX:"https://addons.mozilla.org/en-US/firefox/addon/ether-metamask",EDGE:"https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm?hl=en-US",DEFAULT:"https://metamask.io/download/"},color:"#dac7ae",supportedChains:t}},"getWalletInfo"),T=n(()=>({config:Z,getInstance:Q,connect:$,subscribe:ee,getSigners:ne,getWalletInfo:oe,canSwitchNetworkTo:te,canEagerConnect:ae}),"buildLegacyProvider");import{ProviderBuilder as Le}from"@rango-dev/wallets-core";import{ActionBuilder as re,NamespaceBuilder as se}from"@rango-dev/wallets-core";import{builders as ie,connectAndUpdateStateForMultiNetworks as ce,intoConnecting as le,intoConnectionFinished as de,standardizeAndThrowError as me}from"@rango-dev/wallets-core/namespaces/common";import{actions as S,builders as h,utils as fe}from"@rango-dev/wallets-core/namespaces/evm";var[pe,M]=h.changeAccountSubscriber(f).format(async(e,t)=>{let a=await e.request({method:"eth_chainId"});return fe.formatAccountsToCAIP([t[0]],a)}).build(),ue=new re("connect").action(S.connect(f)).and((e,t)=>({...t,accounts:[t.accounts[0]]})).and(ce).before(le).before(pe).or(M).or(me).after(de).build(),ge=h.canEagerConnect().action(S.canEagerConnect(f)).build(),Se=ie.disconnect().after(M).build(),he=h.canSwitchNetwork().action(S.canSwitchNetwork()).build(),we=h.getChainId().action(S.getChainId(f)).build(),C=new se("EVM",c).action(ue).action(Se).action(he).action(ge).action(we).build();import{ActionBuilder as Ie,NamespaceBuilder as Te}from"@rango-dev/wallets-core";import{builders as Me,standardizeAndThrowError as Ce}from"@rango-dev/wallets-core/namespaces/common";import{builders as Pe}from"@rango-dev/wallets-core/namespaces/solana";import{utils as Ee}from"@rango-dev/wallets-core/namespaces/solana";function ve(e){return async()=>{let a=await e().features["standard:connect"].connect();return Ee.formatAccountsToCAIP(a.accounts.map(o=>o.address))}}n(ve,"connect");function Ae(e){return async()=>{let t=e();if(!t)throw new Error("Trying to eagerly connect to your Solana wallet, but it seems that its instance is not available.");try{return!!(await t.features["standard:connect"].connect({silent:!0})).accounts.length}catch{return!1}}}n(Ae,"canEagerConnect");var w={connect:ve,canEagerConnect:Ae};import{ChangeAccountSubscriberBuilder as be}from"@rango-dev/wallets-core/namespaces/common";import{utils as ke}from"@rango-dev/wallets-core/namespaces/solana";var ye=n(e=>new be().getInstance(e).onSwitchAccount((t,a)=>{t.payload.accounts?.length||(a.action("disconnect"),t.preventDefault())}).format(async(t,a)=>ke.formatAccountsToCAIP(a.accounts.map(o=>o.address))).addEventListener((t,a)=>{t.features["standard:events"].on("change",a)}).removeEventListener((t,a)=>{}),"changeAccountSubscriber"),P={changeAccountSubscriber:ye};var[We,W]=P.changeAccountSubscriber(g).build(),_e=Pe.connect().action(w.connect(g)).before(We).or(W).or(Ce).build(),xe=new Ie("canEagerConnect").action(w.canEagerConnect(g)).build(),Ne=Me.disconnect().after(W).build(),_=new Te("Solana",c).action(_e).action(Ne).action(xe).build();var x=n(()=>new Le(c).init(function(e){let[,t]=e.state();i()&&(t("installed",!0),console.debug("[metamask] instance detected.",e))}).config("metadata",y).add("evm",C).add("solana",_).build(),"buildProvider");var Vt=n(()=>Oe().version("0.0.0",T()).version("1.0.0",x()).build(),"versions");export{Vt as versions};
2
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/mod.ts", "../src/legacy/index.ts", "../src/signer.ts", "../src/signers/solana.ts", "../src/utils.ts", "../src/constants.ts", "../src/provider.ts", "../src/namespaces/evm.ts", "../src/namespaces/solana.ts", "../src/actions/solana.ts", "../src/builders/solana.ts"],
4
+ "sourcesContent": ["import { defineVersions } from '@rango-dev/wallets-core/utils';\n\nimport { buildLegacyProvider } from './legacy/index.js';\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions()\n .version('0.0.0', buildLegacyProvider())\n .version('1.0.0', buildProvider())\n .build();\n\nexport { versions };\n", "import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';\nimport type {\n CanEagerConnect,\n CanSwitchNetwork,\n Connect,\n Subscribe,\n SwitchNetwork,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nimport {\n canEagerlyConnectToEvm,\n canSwitchNetworkToEvm,\n getEvmAccounts,\n subscribeToEvm,\n switchNetworkForEvm,\n WalletTypes,\n} from '@rango-dev/wallets-shared';\nimport { evmBlockchains } from 'rango-types';\n\nimport signer from '../signer.js';\nimport { metamask as metamask_instance } from '../utils.js';\n\nconst WALLET = WalletTypes.META_MASK;\n\nexport const config = {\n type: WALLET,\n};\n\nexport const getInstance = metamask_instance;\nexport const connect: Connect = async ({ instance }) => {\n /*\n * Note: We need to get `chainId` here, because for the first time\n * after opening the browser, wallet is locked, and don't give us accounts and chainId\n * on `check` phase, so `network` will be null. For this case we need to get chainId\n * whenever we are requesting accounts.\n */\n const { accounts, chainId } = await getEvmAccounts(instance);\n\n return {\n accounts,\n chainId,\n };\n};\n\nexport const subscribe: Subscribe = subscribeToEvm;\n\nexport const switchNetwork: SwitchNetwork = switchNetworkForEvm;\n\nexport const canSwitchNetworkTo: CanSwitchNetwork = canSwitchNetworkToEvm;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Provider = any;\nexport const getSigners: (provider: Provider) => Promise<SignerFactory> =\n signer;\n\nexport const canEagerConnect: CanEagerConnect = canEagerlyConnectToEvm;\n\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n const evms = evmBlockchains(allBlockChains);\n return {\n name: 'MetaMask',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/metamask/icon.svg',\n installLink: {\n CHROME:\n 'https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en',\n BRAVE:\n 'https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en',\n\n FIREFOX: 'https://addons.mozilla.org/en-US/firefox/addon/ether-metamask',\n EDGE: 'https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm?hl=en-US',\n DEFAULT: 'https://metamask.io/download/',\n },\n color: '#dac7ae',\n supportedChains: evms,\n };\n};\nconst buildLegacyProvider: () => LegacyProviderInterface = () => ({\n config,\n getInstance,\n connect,\n subscribe,\n getSigners,\n getWalletInfo,\n canSwitchNetworkTo,\n canEagerConnect,\n});\n\nexport { buildLegacyProvider };\n", "import type { Provider } from './types.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { MetamaskSolanaSigner } from './signers/solana.js';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const solanaProvider = getNetworkInstance(provider, Networks.SOLANA);\n\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-evm')\n );\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n signers.registerSigner(\n TxType.SOLANA,\n new MetamaskSolanaSigner(solanaProvider)\n );\n return signers;\n}\n", "import type { WalletStandardSolanaInstance } from '../types.js';\n\nimport {\n generalSolanaTransactionExecutor,\n type SolanaWeb3Signer,\n} from '@rango-dev/signer-solana';\nimport base58 from 'bs58';\nimport {\n type GenericSigner,\n SignerError,\n SignerErrorCode,\n type SolanaTransaction,\n} from 'rango-types';\n\nasync function executeSolanaTransaction(\n tx: SolanaTransaction,\n solanaProvider: WalletStandardSolanaInstance\n): Promise<string> {\n const DefaultSolanaSigner: SolanaWeb3Signer = async (\n solanaWeb3Transaction\n ) => {\n const [currentAccount] = solanaProvider.accounts;\n if (!currentAccount.publicKey) {\n throw new SignerError(\n SignerErrorCode.SIGN_TX_ERROR,\n 'Please make sure the required account is connected properly.'\n );\n }\n\n if (tx.from !== currentAccount.address) {\n throw new SignerError(\n SignerErrorCode.SIGN_TX_ERROR,\n `Your connected account doesn't match with the required account. Please ensure that you are connected with the correct account and try again.`\n );\n }\n\n try {\n const [signOutput] = await solanaProvider.features[\n 'solana:signTransaction'\n ].signTransaction({\n account: currentAccount,\n transaction: solanaWeb3Transaction.serialize(),\n });\n return signOutput.signedTransaction;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n const REJECTION_CODE = 4001;\n if (e && Object.hasOwn(e, 'code') && e.code === REJECTION_CODE) {\n throw new SignerError(SignerErrorCode.REJECTED_BY_USER, undefined, e);\n }\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, e);\n }\n };\n return await generalSolanaTransactionExecutor(tx, DefaultSolanaSigner);\n}\n\nexport class MetamaskSolanaSigner implements GenericSigner<SolanaTransaction> {\n private _provider: WalletStandardSolanaInstance;\n\n constructor(provider: WalletStandardSolanaInstance) {\n this._provider = provider;\n }\n\n get provider(): WalletStandardSolanaInstance {\n return this._provider;\n }\n\n async signMessage(msg: string): Promise<string> {\n try {\n const encodedMessage = new TextEncoder().encode(msg);\n const [account] = this.provider.accounts;\n const [signOutput] = await this._provider.features[\n 'solana:signMessage'\n ].signMessage({\n message: encodedMessage,\n account,\n });\n return base58.encode(signOutput.signature);\n } catch (error) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, error);\n }\n }\n\n async signAndSendTx(tx: SolanaTransaction): Promise<{ hash: string }> {\n const hash = await executeSolanaTransaction(tx, this._provider);\n return { hash };\n }\n}\n", "import type {\n MetamaskEvmProviderApi,\n Provider,\n WalletStandardSolanaInstance,\n} from './types.js';\nimport type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\nimport { getWallets } from '@wallet-standard/app';\n\nimport {\n SOLANA_WALLET_STANDARD_MAINNET,\n WALLET_STANDARD_NAME,\n} from './constants.js';\n\nexport function metamask(): Provider | null {\n const { ethereum } = window;\n const solana = getSolanaWalletInstance();\n if (!ethereum || !isEthereumMetamaskProvider(ethereum)) {\n return null;\n }\n\n const instances: Provider = new Map();\n\n if (ethereum) {\n instances.set(LegacyNetworks.ETHEREUM, ethereum);\n }\n if (solana) {\n instances.set(LegacyNetworks.SOLANA, solana);\n }\n\n return instances;\n}\nfunction isEthereumMetamaskProvider(ethereum: MetamaskEvmProviderApi): boolean {\n if (!ethereum?.isMetaMask) {\n return false;\n }\n /*\n * Brave tries to make itself look like MetaMask\n * Could also try RPC `web3_clientVersion` if following is unreliable\n */\n if (ethereum.isBraveWallet && !ethereum._events && !ethereum._state) {\n return false;\n }\n if (ethereum.isApexWallet) {\n return false;\n }\n if (ethereum.isAvalanche) {\n return false;\n }\n if (ethereum.isBitKeep) {\n return false;\n }\n if (ethereum.isBlockWallet) {\n return false;\n }\n if (ethereum.isCoin98) {\n return false;\n }\n if (ethereum.isFordefi) {\n return false;\n }\n if (ethereum.__XDEFI) {\n return false;\n }\n if (ethereum.isMathWallet) {\n return false;\n }\n if (ethereum.isOkxWallet || ethereum.isOKExWallet) {\n return false;\n }\n if (ethereum.isOneInchIOSWallet || ethereum.isOneInchAndroidWallet) {\n return false;\n }\n if (ethereum.isOpera) {\n return false;\n }\n if (ethereum.isPortal) {\n return false;\n }\n if (ethereum.isRabby) {\n return false;\n }\n if (ethereum.isDefiant) {\n return false;\n }\n if (ethereum.isTokenPocket) {\n return false;\n }\n if (ethereum.isTokenary) {\n return false;\n }\n if (ethereum.isZeal) {\n return false;\n }\n if (ethereum.isZerion) {\n return false;\n }\n if (ethereum.isSafePal) {\n return false;\n }\n return true;\n}\nexport function evmMetamask(): EvmProviderApi {\n const instances = metamask();\n\n const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);\n\n if (!evmInstance) {\n throw new Error(\n 'Metamask not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\nexport function solanaMetamask(): WalletStandardSolanaInstance {\n const instances = metamask();\n const solanaInstance = instances?.get(LegacyNetworks.SOLANA);\n if (!solanaInstance) {\n throw new Error(\n 'Metamask Solana instance is not available. Ensure that Solana support is enabled in your wallet.'\n );\n }\n return solanaInstance as WalletStandardSolanaInstance;\n}\nexport function getInstanceOrThrow(): Provider {\n const instances = metamask();\n\n if (!instances) {\n throw new Error('MetaMask is not injected. Please check your wallet.');\n }\n\n return instances;\n}\nfunction getSolanaWalletInstance() {\n return getWallets()\n .get()\n .find(\n (wallet) =>\n wallet.name === WALLET_STANDARD_NAME &&\n wallet.chains.includes(SOLANA_WALLET_STANDARD_MAINNET)\n ) as WalletStandardSolanaInstance;\n}\n", "import { type ProviderMetadata } from '@rango-dev/wallets-core';\nimport {\n type BlockchainMeta,\n evmBlockchains,\n solanaBlockchain,\n} from 'rango-types';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = 'metamask';\nexport const WALLET_STANDARD_NAME = 'MetaMask';\nexport const SOLANA_WALLET_STANDARD_MAINNET = 'solana:mainnet';\nexport const metadata: ProviderMetadata = {\n name: 'MetaMask',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/metamask/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en',\n brave:\n 'https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en',\n firefox: 'https://addons.mozilla.org/en-US/firefox/addon/ether-metamask',\n edge: 'https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm?hl=en-US',\n homepage: 'https://metamask.io/download/',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n evmBlockchains(allBlockchains),\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n solanaBlockchain(allBlockchains),\n },\n ],\n },\n },\n {\n name: 'signers',\n value: {\n getSigners: async () => getSigners(getInstanceOrThrow()),\n },\n },\n ],\n};\n", "import { ProviderBuilder } from '@rango-dev/wallets-core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { solana } from './namespaces/solana.js';\nimport { metamask as metamask } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n if (metamask()) {\n setState('installed', true);\n console.debug('[metamask] instance detected.', context);\n }\n })\n .config('metadata', metadata)\n .add('evm', evm)\n .add('solana', solana)\n .build();\n\nexport { buildProvider };\n", "import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { ActionBuilder, NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n connectAndUpdateStateForMultiNetworks,\n intoConnecting,\n intoConnectionFinished,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport {\n actions,\n builders,\n utils,\n} from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { WALLET_ID } from '../constants.js';\nimport { evmMetamask } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = builders\n .changeAccountSubscriber(evmMetamask)\n /*\n * Metamask returns an array of connected accounts with the active one first.\n * Since we only need the active account, we take the first element as a workaround.\n */\n .format(async (instance, accounts) => {\n const chainId = await instance.request({ method: 'eth_chainId' });\n return utils.formatAccountsToCAIP([accounts[0]], chainId);\n })\n .build();\n\nconst connect = new ActionBuilder<EvmActions, 'connect'>('connect')\n .action(actions.connect(evmMetamask))\n /*\n * Metamask Wallet's `connect` returns a list where the currently selected account\n * is always the first item. We're directly taking this first item as the active account.\n *\n * ***NOTE***: Please keep it synced with `wallets/core/src/namespaces/solana/builders.ts`.\n *\n */\n .and((_, connectResult) => ({\n ...connectResult,\n accounts: [connectResult.accounts[0]],\n }))\n .and(connectAndUpdateStateForMultiNetworks)\n .before(intoConnecting)\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .after(intoConnectionFinished)\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(evmMetamask))\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<EvmActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canSwitchNetwork = builders\n .canSwitchNetwork()\n .action(actions.canSwitchNetwork())\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmMetamask))\n .build();\n\nconst evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canSwitchNetwork)\n .action(canEagerConnect)\n .action(getChainId)\n .build();\n\nexport { evm };\n", "import { ActionBuilder, NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport {\n builders,\n type SolanaActions,\n} from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { solanaActions } from '../actions/solana.js';\nimport { solanaBuilders } from '../builders/solana.js';\nimport { WALLET_ID } from '../constants.js';\nimport { solanaMetamask } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = solanaBuilders\n .changeAccountSubscriber(solanaMetamask)\n .build();\n\nconst connect = builders\n .connect()\n .action(solanaActions.connect(solanaMetamask))\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(solanaActions.canEagerConnect(solanaMetamask))\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SolanaActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst solana = new NamespaceBuilder<SolanaActions>('Solana', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { solana };\n", "import type { WalletStandardSolanaInstance } from '../types.js';\nimport type { Context, FunctionWithContext } from '@rango-dev/wallets-core';\n\nimport {\n type SolanaActions,\n utils,\n} from '@rango-dev/wallets-core/namespaces/solana';\n\nfunction connect(\n getInstance: () => WalletStandardSolanaInstance\n): FunctionWithContext<SolanaActions['connect'], Context> {\n return async () => {\n const solanaInstance = getInstance();\n const connectResult = await solanaInstance.features[\n 'standard:connect'\n ].connect();\n return utils.formatAccountsToCAIP(\n connectResult.accounts.map((account) => account.address)\n );\n };\n}\nfunction canEagerConnect(getInstance: () => WalletStandardSolanaInstance) {\n return async () => {\n const solanaInstance = getInstance();\n\n if (!solanaInstance) {\n throw new Error(\n 'Trying to eagerly connect to your Solana wallet, but it seems that its instance is not available.'\n );\n }\n\n try {\n const result = await solanaInstance.features['standard:connect'].connect({\n silent: true,\n });\n return !!result.accounts.length;\n } catch {\n return false;\n }\n };\n}\nexport const solanaActions = { connect, canEagerConnect };\n", "import type { WalletStandardSolanaInstance } from '../types.js';\nimport type { StandardEventsChangeProperties } from '@wallet-standard/features';\n\nimport { ChangeAccountSubscriberBuilder } from '@rango-dev/wallets-core/namespaces/common';\nimport {\n type SolanaActions,\n utils,\n} from '@rango-dev/wallets-core/namespaces/solana';\n\n// Hooks\nconst changeAccountSubscriber = (\n getInstance: () => WalletStandardSolanaInstance\n) =>\n new ChangeAccountSubscriberBuilder<\n StandardEventsChangeProperties,\n WalletStandardSolanaInstance,\n SolanaActions\n >()\n .getInstance(getInstance)\n .onSwitchAccount((event, context) => {\n if (!event.payload.accounts?.length) {\n context.action('disconnect');\n event.preventDefault();\n }\n })\n .format(async (_, event) =>\n utils.formatAccountsToCAIP(\n event.accounts!.map((account) => account.address)\n )\n )\n .addEventListener((instance, callback) => {\n instance.features['standard:events'].on('change', callback);\n })\n .removeEventListener((_, __) => {});\n\nexport const solanaBuilders = { changeAccountSubscriber };\n"],
5
+ "mappings": "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",
6
+ "names": ["defineVersions", "canEagerlyConnectToEvm", "canSwitchNetworkToEvm", "getEvmAccounts", "subscribeToEvm", "switchNetworkForEvm", "WalletTypes", "evmBlockchains", "Networks", "dynamicImportWithRefinedError", "getNetworkInstance", "DefaultSignerFactory", "TxType", "generalSolanaTransactionExecutor", "base58", "SignerError", "SignerErrorCode", "executeSolanaTransaction", "tx", "solanaProvider", "generalSolanaTransactionExecutor", "__name", "solanaWeb3Transaction", "currentAccount", "SignerError", "SignerErrorCode", "signOutput", "e", "MetamaskSolanaSigner", "provider", "msg", "encodedMessage", "account", "base58", "error", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solanaProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "TxType", "MetamaskSolanaSigner", "__name", "LegacyNetworks", "getWallets", "evmBlockchains", "solanaBlockchain", "WALLET_ID", "WALLET_STANDARD_NAME", "SOLANA_WALLET_STANDARD_MAINNET", "metadata", "allBlockchains", "evmBlockchains", "solanaBlockchain", "getSigners", "getInstanceOrThrow", "metamask", "ethereum", "solana", "getSolanaWalletInstance", "isEthereumMetamaskProvider", "instances", "LegacyNetworks", "__name", "evmMetamask", "evmInstance", "solanaMetamask", "solanaInstance", "getInstanceOrThrow", "getWallets", "wallet", "WALLET_STANDARD_NAME", "SOLANA_WALLET_STANDARD_MAINNET", "WALLET", "WalletTypes", "config", "getInstance", "metamask", "connect", "__name", "instance", "accounts", "chainId", "getEvmAccounts", "subscribe", "subscribeToEvm", "canSwitchNetworkTo", "canSwitchNetworkToEvm", "getSigners", "canEagerConnect", "canEagerlyConnectToEvm", "getWalletInfo", "__name", "allBlockChains", "evms", "evmBlockchains", "buildLegacyProvider", "config", "getInstance", "connect", "subscribe", "ProviderBuilder", "ActionBuilder", "NamespaceBuilder", "commonBuilders", "connectAndUpdateStateForMultiNetworks", "intoConnecting", "intoConnectionFinished", "standardizeAndThrowError", "actions", "builders", "utils", "changeAccountSubscriber", "changeAccountCleanup", "builders", "evmMetamask", "instance", "accounts", "chainId", "utils", "connect", "ActionBuilder", "actions", "_", "connectResult", "connectAndUpdateStateForMultiNetworks", "intoConnecting", "standardizeAndThrowError", "intoConnectionFinished", "canEagerConnect", "disconnect", "commonBuilders", "canSwitchNetwork", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "builders", "utils", "connect", "getInstance", "connectResult", "utils", "account", "__name", "canEagerConnect", "solanaInstance", "solanaActions", "ChangeAccountSubscriberBuilder", "utils", "changeAccountSubscriber", "__name", "getInstance", "ChangeAccountSubscriberBuilder", "event", "context", "_", "utils", "account", "instance", "callback", "__", "solanaBuilders", "changeAccountSubscriber", "changeAccountCleanup", "solanaBuilders", "solanaMetamask", "connect", "builders", "solanaActions", "standardizeAndThrowError", "canEagerConnect", "ActionBuilder", "disconnect", "commonBuilders", "solana", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "metamask", "metadata", "evm", "solana", "versions", "__name", "defineVersions", "buildLegacyProvider", "buildProvider"]
7
+ }
@@ -0,0 +1,4 @@
1
+ import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';
2
+ declare const evm: import("@rango-dev/wallets-core").ProxiedNamespace<EvmActions>;
3
+ export { evm };
4
+ //# sourceMappingURL=evm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/namespaces/evm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAwEzE,QAAA,MAAM,GAAG,gEAMC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';
2
+ declare const solana: import("@rango-dev/wallets-core").ProxiedNamespace<SolanaActions>;
3
+ export { solana };
4
+ //# sourceMappingURL=solana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/namespaces/solana.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,2CAA2C,CAAC;AA8BnD,QAAA,MAAM,MAAM,mEAIF,CAAC;AAEX,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"inputs":{"src/signers/solana.ts":{"bytes":2756,"imports":[{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"bs58","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/signer.ts":{"bytes":1009,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/signers/solana.ts","kind":"import-statement","original":"./signers/solana.js"},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/constants.ts":{"bytes":1752,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"}],"format":"esm"},"src/utils.ts":{"bytes":3385,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@wallet-standard/app","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/legacy/index.ts":{"bytes":2704,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/signer.ts","kind":"import-statement","original":"../signer.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/evm.ts":{"bytes":2365,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/evm","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/actions/solana.ts":{"bytes":1228,"imports":[{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/builders/solana.ts":{"bytes":1126,"imports":[{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/solana.ts":{"bytes":1264,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true},{"path":"src/actions/solana.ts","kind":"import-statement","original":"../actions/solana.js"},{"path":"src/builders/solana.ts","kind":"import-statement","original":"../builders/solana.js"},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/provider.ts":{"bytes":659,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"src/namespaces/evm.ts","kind":"import-statement","original":"./namespaces/evm.js"},{"path":"src/namespaces/solana.ts","kind":"import-statement","original":"./namespaces/solana.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":332,"imports":[{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"src/legacy/index.ts","kind":"import-statement","original":"./legacy/index.js"},{"path":"src/provider.ts","kind":"import-statement","original":"./provider.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/mod.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":29902},"dist/mod.js":{"imports":[{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"bs58","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@wallet-standard/app","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/evm","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/mod.ts":{"bytesInOutput":144},"src/legacy/index.ts":{"bytesInOutput":1156},"src/signer.ts":{"bytesInOutput":473},"src/signers/solana.ts":{"bytesInOutput":1295},"src/utils.ts":{"bytesInOutput":1271},"src/constants.ts":{"bytesInOutput":947},"src/provider.ts":{"bytesInOutput":267},"src/namespaces/evm.ts":{"bytesInOutput":959},"src/namespaces/solana.ts":{"bytesInOutput":531},"src/actions/solana.ts":{"bytesInOutput":564},"src/builders/solana.ts":{"bytesInOutput":528}},"bytes":8270}}}
@@ -0,0 +1,3 @@
1
+ declare const buildProvider: () => import("@rango-dev/wallets-core").Provider;
2
+ export { buildProvider };
3
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,aAAa,kDAaP,CAAC;AAEb,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Provider } from './types.js';
2
+ import type { SignerFactory } from 'rango-types';
3
+ export default function getSigners(provider: Provider): Promise<SignerFactory>;
4
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAcxB"}
@@ -0,0 +1,12 @@
1
+ import type { WalletStandardSolanaInstance } from '../types.js';
2
+ import { type GenericSigner, type SolanaTransaction } from 'rango-types';
3
+ export declare class MetamaskSolanaSigner implements GenericSigner<SolanaTransaction> {
4
+ private _provider;
5
+ constructor(provider: WalletStandardSolanaInstance);
6
+ get provider(): WalletStandardSolanaInstance;
7
+ signMessage(msg: string): Promise<string>;
8
+ signAndSendTx(tx: SolanaTransaction): Promise<{
9
+ hash: string;
10
+ }>;
11
+ }
12
+ //# sourceMappingURL=solana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/signers/solana.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAOhE,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AA4CrB,qBAAa,oBAAqB,YAAW,aAAa,CAAC,iBAAiB,CAAC;IAC3E,OAAO,CAAC,SAAS,CAA+B;gBAEpC,QAAQ,EAAE,4BAA4B;IAIlD,IAAI,QAAQ,IAAI,4BAA4B,CAE3C;IAEK,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBzC,aAAa,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAItE"}
@@ -0,0 +1,39 @@
1
+ import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
2
+ import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
3
+ import type { WalletWithFeatures as StandardWalletWithFeatures } from '@wallet-standard/base';
4
+ import { type SolanaSignMessageFeature, type SolanaSignTransactionFeature } from '@solana/wallet-standard-features';
5
+ import { type StandardConnectFeature, type StandardEventsFeature } from '@wallet-standard/features';
6
+ export type WalletStandardSolanaInstance = StandardWalletWithFeatures<StandardConnectFeature & StandardEventsFeature & SolanaSignTransactionFeature & SolanaSignMessageFeature>;
7
+ export type MetamaskEvmProviderApi = EvmProviderApi & {
8
+ isMetaMask?: boolean;
9
+ isBraveWallet?: boolean;
10
+ _events?: boolean;
11
+ _state?: boolean;
12
+ isApexWallet?: boolean;
13
+ isAvalanche?: boolean;
14
+ isBitKeep?: boolean;
15
+ isBlockWallet?: boolean;
16
+ isCoin98?: boolean;
17
+ isFordefi?: boolean;
18
+ __XDEFI?: boolean;
19
+ isMathWallet?: boolean;
20
+ isOkxWallet?: boolean;
21
+ isOKExWallet?: boolean;
22
+ isOneInchIOSWallet?: boolean;
23
+ isOneInchAndroidWallet?: boolean;
24
+ isOpera?: boolean;
25
+ isPortal?: boolean;
26
+ isRabby?: boolean;
27
+ isDefiant?: boolean;
28
+ isTokenPocket?: boolean;
29
+ isTokenary?: boolean;
30
+ isZeal?: boolean;
31
+ isZerion?: boolean;
32
+ isSafePal?: boolean;
33
+ };
34
+ export type ProviderObject = {
35
+ [LegacyNetworks.ETHEREUM]: MetamaskEvmProviderApi;
36
+ [LegacyNetworks.SOLANA]: WalletStandardSolanaInstance;
37
+ };
38
+ export type Provider = Map<keyof ProviderObject, ProviderObject[keyof ProviderObject]>;
39
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EAClC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,4BAA4B,GAAG,0BAA0B,CACnE,sBAAsB,GACpB,qBAAqB,GACrB,4BAA4B,GAC5B,wBAAwB,CAC3B,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClD,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,4BAA4B,CAAC;CACvD,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,GAAG,CACxB,MAAM,cAAc,EACpB,cAAc,CAAC,MAAM,cAAc,CAAC,CACrC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Provider, WalletStandardSolanaInstance } from './types.js';
2
+ import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
3
+ export declare function metamask(): Provider | null;
4
+ export declare function evmMetamask(): EvmProviderApi;
5
+ export declare function solanaMetamask(): WalletStandardSolanaInstance;
6
+ export declare function getInstanceOrThrow(): Provider;
7
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EACR,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAU5F,wBAAgB,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAiB1C;AAuED,wBAAgB,WAAW,IAAI,cAAc,CAY5C;AACD,wBAAgB,cAAc,IAAI,4BAA4B,CAS7D;AACD,wBAAgB,kBAAkB,IAAI,QAAQ,CAQ7C"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@rango-dev/provider-metamask",
3
+ "version": "0.0.0-experimental-936229e8-20251208",
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "source": "./src/mod.ts",
7
+ "main": "./dist/mod.js",
8
+ "exports": {
9
+ ".": "./dist/mod.js"
10
+ },
11
+ "typings": "dist/mod.d.ts",
12
+ "files": [
13
+ "dist",
14
+ "src"
15
+ ],
16
+ "scripts": {
17
+ "build": "node ../../scripts/build/command.mjs --path wallets/provider-metamask --inputs src/mod.ts",
18
+ "ts-check": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json",
19
+ "clean": "rimraf dist",
20
+ "format": "prettier --write '{.,src}/**/*.{ts,tsx}'",
21
+ "lint": "eslint \"**/*.{ts,tsx}\""
22
+ },
23
+ "dependencies": {
24
+ "@rango-dev/signer-evm": "^0.40.0",
25
+ "@rango-dev/signer-solana": "^0.46.1",
26
+ "@rango-dev/wallets-core": "^0.0.0-experimental-936229e8-20251208",
27
+ "@rango-dev/wallets-shared": "^0.0.0-experimental-936229e8-20251208",
28
+ "@wallet-standard/app": "^1.1.0",
29
+ "bs58": "^5.0.0",
30
+ "rango-types": "^0.1.89"
31
+ },
32
+ "devDependencies": {
33
+ "@solana/wallet-standard-features": "^1.3.0",
34
+ "@wallet-standard/base": "^1.1.0",
35
+ "@wallet-standard/features": "^1.1.0"
36
+ },
37
+ "publishConfig": {
38
+ "access": "public"
39
+ }
40
+ }