@reown/appkit-common-react-native 0.0.0-feat-onramp-20250718200617 → 0.0.0-feat-coinbase-20250722174423

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 (74) hide show
  1. package/lib/commonjs/adapters/BlockchainAdapter.js +81 -0
  2. package/lib/commonjs/adapters/BlockchainAdapter.js.map +1 -0
  3. package/lib/commonjs/adapters/EvmAdapter.js +208 -0
  4. package/lib/commonjs/adapters/EvmAdapter.js.map +1 -0
  5. package/lib/commonjs/adapters/SolanaBaseAdapter.js +10 -0
  6. package/lib/commonjs/adapters/SolanaBaseAdapter.js.map +1 -0
  7. package/lib/commonjs/index.js +62 -1
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/networks/bitcoin.js +40 -0
  10. package/lib/commonjs/networks/bitcoin.js.map +1 -0
  11. package/lib/commonjs/networks/solana.js +78 -0
  12. package/lib/commonjs/networks/solana.js.map +1 -0
  13. package/lib/commonjs/utils/ConstantsUtil.js +11 -2
  14. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  15. package/lib/commonjs/utils/NumberUtil.js +52 -11
  16. package/lib/commonjs/utils/NumberUtil.js.map +1 -1
  17. package/lib/commonjs/utils/PresetsUtil.js +34 -8
  18. package/lib/commonjs/utils/PresetsUtil.js.map +1 -1
  19. package/lib/commonjs/utils/TypeUtil.js +42 -0
  20. package/lib/commonjs/utils/TypeUtil.js.map +1 -1
  21. package/lib/module/adapters/BlockchainAdapter.js +74 -0
  22. package/lib/module/adapters/BlockchainAdapter.js.map +1 -0
  23. package/lib/module/adapters/EvmAdapter.js +202 -0
  24. package/lib/module/adapters/EvmAdapter.js.map +1 -0
  25. package/lib/module/adapters/SolanaBaseAdapter.js +3 -0
  26. package/lib/module/adapters/SolanaBaseAdapter.js.map +1 -0
  27. package/lib/module/index.js +5 -0
  28. package/lib/module/index.js.map +1 -1
  29. package/lib/module/networks/bitcoin.js +34 -0
  30. package/lib/module/networks/bitcoin.js.map +1 -0
  31. package/lib/module/networks/solana.js +72 -0
  32. package/lib/module/networks/solana.js.map +1 -0
  33. package/lib/module/utils/ConstantsUtil.js +11 -2
  34. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  35. package/lib/module/utils/NumberUtil.js +52 -11
  36. package/lib/module/utils/NumberUtil.js.map +1 -1
  37. package/lib/module/utils/PresetsUtil.js +34 -8
  38. package/lib/module/utils/PresetsUtil.js.map +1 -1
  39. package/lib/module/utils/TypeUtil.js +36 -0
  40. package/lib/module/utils/TypeUtil.js.map +1 -1
  41. package/lib/typescript/adapters/BlockchainAdapter.d.ts +25 -0
  42. package/lib/typescript/adapters/BlockchainAdapter.d.ts.map +1 -0
  43. package/lib/typescript/adapters/EvmAdapter.d.ts +27 -0
  44. package/lib/typescript/adapters/EvmAdapter.d.ts.map +1 -0
  45. package/lib/typescript/adapters/SolanaBaseAdapter.d.ts +6 -0
  46. package/lib/typescript/adapters/SolanaBaseAdapter.d.ts.map +1 -0
  47. package/lib/typescript/adapters/__tests__/EvmAdapter.test.d.ts +2 -0
  48. package/lib/typescript/adapters/__tests__/EvmAdapter.test.d.ts.map +1 -0
  49. package/lib/typescript/index.d.ts +5 -0
  50. package/lib/typescript/index.d.ts.map +1 -1
  51. package/lib/typescript/networks/bitcoin.d.ts +4 -0
  52. package/lib/typescript/networks/bitcoin.d.ts.map +1 -0
  53. package/lib/typescript/networks/solana.d.ts +5 -0
  54. package/lib/typescript/networks/solana.d.ts.map +1 -0
  55. package/lib/typescript/utils/ConstantsUtil.d.ts +9 -0
  56. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  57. package/lib/typescript/utils/NumberUtil.d.ts +39 -11
  58. package/lib/typescript/utils/NumberUtil.d.ts.map +1 -1
  59. package/lib/typescript/utils/PresetsUtil.d.ts +1 -3
  60. package/lib/typescript/utils/PresetsUtil.d.ts.map +1 -1
  61. package/lib/typescript/utils/TypeUtil.d.ts +296 -12
  62. package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
  63. package/package.json +2 -2
  64. package/src/adapters/BlockchainAdapter.ts +107 -0
  65. package/src/adapters/EvmAdapter.ts +260 -0
  66. package/src/adapters/SolanaBaseAdapter.ts +6 -0
  67. package/src/adapters/__tests__/EvmAdapter.test.ts +126 -0
  68. package/src/index.ts +5 -0
  69. package/src/networks/bitcoin.ts +32 -0
  70. package/src/networks/solana.ts +44 -0
  71. package/src/utils/ConstantsUtil.ts +12 -2
  72. package/src/utils/NumberUtil.ts +54 -11
  73. package/src/utils/PresetsUtil.ts +36 -10
  74. package/src/utils/TypeUtil.ts +379 -14
@@ -1,17 +1,67 @@
1
- export interface Balance {
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ export type CaipAddress = `${string}:${string}:${string}`;
4
+ export type CaipNetworkId = `${string}:${string}`;
5
+ export type ChainNamespace = 'eip155' | 'solana' | 'polkadot' | 'bip122';
6
+ export type AdapterType = 'solana' | 'wagmi' | 'ethers' | 'universal' | 'bip122';
7
+ export type Network = {
8
+ id: number | string;
2
9
  name: string;
10
+ nativeCurrency: {
11
+ name: string;
12
+ symbol: string;
13
+ decimals: number;
14
+ };
15
+ rpcUrls: {
16
+ default: {
17
+ http: readonly string[];
18
+ };
19
+ [key: string]: {
20
+ http: readonly string[];
21
+ } | undefined;
22
+ };
23
+ blockExplorers?: {
24
+ default: {
25
+ name: string;
26
+ url: string;
27
+ };
28
+ [key: string]: {
29
+ name: string;
30
+ url: string;
31
+ } | undefined;
32
+ };
33
+ chainNamespace?: ChainNamespace;
34
+ caipNetworkId?: CaipNetworkId;
35
+ testnet?: boolean;
36
+ deprecatedCaipNetworkId?: CaipNetworkId;
37
+ };
38
+ export type AppKitNetwork = Network & {
39
+ chainNamespace: ChainNamespace;
40
+ caipNetworkId: CaipNetworkId;
41
+ testnet?: boolean;
42
+ deprecatedCaipNetworkId?: CaipNetworkId;
43
+ };
44
+ export type AppKitConnectOptions = Pick<ConnectOptions, 'namespaces' | 'defaultChain' | 'universalLink'>;
45
+ export interface CaipNetwork {
46
+ id: CaipNetworkId;
47
+ name?: string;
48
+ imageId?: string;
49
+ imageUrl?: string;
50
+ }
51
+ export interface Balance {
52
+ name?: string;
53
+ amount: string;
3
54
  symbol: string;
4
- chainId: string;
5
- address?: string;
55
+ quantity?: {
56
+ decimals: string;
57
+ numeric: string;
58
+ };
59
+ chainId?: string;
60
+ address?: CaipAddress;
6
61
  value?: number;
7
- price: number;
8
- quantity: BalanceQuantity;
9
- iconUrl: string;
62
+ price?: number;
63
+ iconUrl?: string;
10
64
  }
11
- type BalanceQuantity = {
12
- decimals: string;
13
- numeric: string;
14
- };
15
65
  export type TransactionStatus = 'confirmed' | 'failed' | 'pending';
16
66
  export type TransactionDirection = 'in' | 'out' | 'self';
17
67
  export type TransactionImage = {
@@ -74,11 +124,245 @@ export interface TransactionDetail {
74
124
  export interface TransactionQuantity {
75
125
  numeric: string;
76
126
  }
77
- export type SocialProvider = 'apple' | 'x' | 'discord' | 'farcaster';
127
+ export type SocialProvider = 'google' | 'facebook' | 'github' | 'apple' | 'x' | 'discord' | 'email' | 'farcaster';
78
128
  export type ThemeMode = 'dark' | 'light';
79
129
  export interface ThemeVariables {
80
130
  accent?: string;
81
131
  }
82
- export type ConnectorType = 'WALLET_CONNECT' | 'COINBASE' | 'AUTH' | 'EXTERNAL';
132
+ export interface Token {
133
+ address: string;
134
+ image?: string;
135
+ }
136
+ export type Tokens = Record<CaipNetworkId, Token>;
137
+ export type Metadata = {
138
+ name: string;
139
+ description: string;
140
+ url: string;
141
+ icons: string[];
142
+ redirect?: {
143
+ native?: string;
144
+ universal?: string;
145
+ linkMode?: boolean;
146
+ };
147
+ };
148
+ export type BlockchainAdapterConfig = {
149
+ projectId: string;
150
+ supportedNamespace: ChainNamespace;
151
+ adapterType: AdapterType;
152
+ };
153
+ export type AccountsChangedEvent = {
154
+ accounts: string[];
155
+ };
156
+ export type ChainChangedEvent = {
157
+ chainId: string;
158
+ };
159
+ export type DisconnectEvent = {};
160
+ export type BalanceChangedEvent = {
161
+ address: CaipAddress;
162
+ balance: Balance;
163
+ };
164
+ export interface AdapterEvents {
165
+ accountsChanged: (event: AccountsChangedEvent) => void;
166
+ chainChanged: (event: ChainChangedEvent) => void;
167
+ disconnect: (event: DisconnectEvent) => void;
168
+ balanceChanged: (event: BalanceChangedEvent) => void;
169
+ }
170
+ export interface GetBalanceParams {
171
+ network: AppKitNetwork;
172
+ address?: CaipAddress;
173
+ tokens?: Tokens;
174
+ }
175
+ export type GetBalanceResponse = Balance;
176
+ interface BaseNamespace {
177
+ chains?: CaipNetworkId[];
178
+ accounts: CaipAddress[];
179
+ methods: string[];
180
+ events: string[];
181
+ }
182
+ type Namespace = BaseNamespace;
183
+ export type Namespaces = Record<string, Namespace>;
184
+ export type ProposalNamespaces = Record<string, Omit<Namespace, 'accounts'> & Required<Pick<Namespace, 'chains'>> & {
185
+ rpcMap: Record<string, string>;
186
+ }>;
187
+ export type ConnectOptions = {
188
+ namespaces?: ProposalNamespaces;
189
+ defaultChain?: CaipNetworkId;
190
+ universalLink?: string;
191
+ siweConfig?: AppKitSIWEClient;
192
+ };
193
+ export type ConnectorInitOptions = {
194
+ storage: Storage;
195
+ metadata: Metadata;
196
+ };
197
+ export declare abstract class WalletConnector extends EventEmitter {
198
+ type: ConnectorType;
199
+ protected provider?: Provider;
200
+ protected namespaces?: Namespaces;
201
+ protected wallet?: WalletInfo;
202
+ protected storage?: Storage;
203
+ protected metadata?: Metadata;
204
+ protected properties?: ConnectionProperties;
205
+ constructor({ type }: {
206
+ type: ConnectorType;
207
+ });
208
+ init(ops: ConnectorInitOptions): Promise<void>;
209
+ setProvider(provider: Provider): void;
210
+ disconnect(): Promise<void>;
211
+ abstract connect(opts: ConnectOptions): Promise<Namespaces | undefined>;
212
+ abstract getProvider(): Provider;
213
+ abstract getNamespaces(): Namespaces;
214
+ abstract getChainId(namespace: ChainNamespace): CaipNetworkId | undefined;
215
+ abstract getWalletInfo(): WalletInfo | undefined;
216
+ abstract getProperties(): ConnectionProperties | undefined;
217
+ abstract switchNetwork(network: AppKitNetwork): Promise<void>;
218
+ abstract restoreSession(): Promise<boolean>;
219
+ }
220
+ export interface Provider {
221
+ connect<T>(params?: any): Promise<T>;
222
+ disconnect(): Promise<void>;
223
+ request<T = unknown>(args: RequestArguments, chain?: string | undefined, expiry?: number | undefined): Promise<T>;
224
+ on(event: string, listener: (args?: any) => void): any;
225
+ off(event: string, listener: (args?: any) => void): any;
226
+ }
227
+ export interface RequestArguments {
228
+ method: string;
229
+ params?: unknown[] | Record<string, unknown> | object | undefined;
230
+ }
231
+ export type ConnectorType = 'walletconnect' | 'coinbase' | 'auth' | 'phantom';
232
+ export interface ConnectionResponse {
233
+ accounts: string[];
234
+ chainId: string;
235
+ [key: string]: any;
236
+ }
237
+ export interface WalletInfo {
238
+ name?: string;
239
+ icon?: string;
240
+ description?: string;
241
+ url?: string;
242
+ icons?: string[];
243
+ redirect?: {
244
+ native?: string;
245
+ universal?: string;
246
+ linkMode?: boolean;
247
+ };
248
+ [key: string]: unknown;
249
+ }
250
+ export interface ConnectionProperties {
251
+ email?: string;
252
+ username?: string;
253
+ smartAccounts?: CaipAddress[];
254
+ provider?: SocialProvider;
255
+ sessionTopic?: string;
256
+ }
257
+ export type AccountType = 'eoa' | 'smartAccount';
258
+ export interface Storage {
259
+ /**
260
+ * Returns all keys in storage.
261
+ */
262
+ getKeys(): Promise<string[]>;
263
+ /**
264
+ * Returns all key-value entries in storage.
265
+ */
266
+ getEntries<T = any>(): Promise<[string, T][]>;
267
+ /**
268
+ * Get an item from storage for a given key.
269
+ * @param key The key to retrieve.
270
+ */
271
+ getItem<T = any>(key: string): Promise<T | undefined>;
272
+ /**
273
+ * Set an item in storage for a given key.
274
+ * @param key The key to set.
275
+ * @param value The value to set.
276
+ */
277
+ setItem<T = any>(key: string, value: T): Promise<void>;
278
+ /**
279
+ * Remove an item from storage for a given key.
280
+ * @param key The key to remove.
281
+ */
282
+ removeItem(key: string): Promise<void>;
283
+ }
284
+ export interface SIWESession {
285
+ address: string;
286
+ chainId: number;
287
+ }
288
+ interface CacaoHeader {
289
+ t: 'caip122';
290
+ }
291
+ export interface SIWECreateMessageArgs {
292
+ domain: string;
293
+ nonce: string;
294
+ uri: string;
295
+ address: CaipAddress;
296
+ version: '1';
297
+ type?: CacaoHeader['t'];
298
+ nbf?: string;
299
+ exp?: string;
300
+ statement?: string;
301
+ requestId?: string;
302
+ resources?: string[];
303
+ expiry?: number;
304
+ iat?: string;
305
+ }
306
+ export type SIWEMessageArgs = {
307
+ chains: CaipNetworkId[];
308
+ methods?: string[];
309
+ } & Omit<SIWECreateMessageArgs, 'address' | 'nonce' | 'version'>;
310
+ interface CacaoPayload {
311
+ domain: string;
312
+ aud: string;
313
+ nonce: string;
314
+ iss: string;
315
+ version?: string;
316
+ iat?: string;
317
+ nbf?: string;
318
+ exp?: string;
319
+ statement?: string;
320
+ requestId?: string;
321
+ resources?: string[];
322
+ type?: string;
323
+ }
324
+ interface Cacao {
325
+ h: CacaoHeader;
326
+ p: CacaoPayload;
327
+ s: {
328
+ t: 'eip191' | 'eip1271';
329
+ s: string;
330
+ m?: string;
331
+ };
332
+ }
333
+ export interface SIWEVerifyMessageArgs {
334
+ message: string;
335
+ signature: string;
336
+ cacao?: Cacao;
337
+ }
338
+ export interface SIWEClientMethods {
339
+ getNonce: (address?: string) => Promise<string>;
340
+ createMessage: (args: SIWECreateMessageArgs) => string;
341
+ verifyMessage: (args: SIWEVerifyMessageArgs) => Promise<boolean>;
342
+ getSession: () => Promise<SIWESession | null>;
343
+ signOut: () => Promise<boolean>;
344
+ getMessageParams?: () => Promise<SIWEMessageArgs>;
345
+ onSignIn?: (session?: SIWESession) => void;
346
+ onSignOut?: () => void;
347
+ }
348
+ export interface SIWEConfig extends SIWEClientMethods {
349
+ enabled?: boolean;
350
+ nonceRefetchIntervalMs?: number;
351
+ sessionRefetchIntervalMs?: number;
352
+ signOutOnDisconnect?: boolean;
353
+ signOutOnAccountChange?: boolean;
354
+ signOutOnNetworkChange?: boolean;
355
+ }
356
+ export interface AppKitSIWEClient extends SIWEClientMethods {
357
+ signIn: () => Promise<SIWESession | undefined>;
358
+ options: {
359
+ enabled: boolean;
360
+ nonceRefetchIntervalMs: number;
361
+ sessionRefetchIntervalMs: number;
362
+ signOutOnDisconnect: boolean;
363
+ signOutOnAccountChange: boolean;
364
+ signOutOnNetworkChange: boolean;
365
+ };
366
+ }
83
367
  export {};
84
368
  //# sourceMappingURL=TypeUtil.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TypeUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/TypeUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TypeUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/TypeUtil.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,WAAW,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEzE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEjF,MAAM,MAAM,OAAO,GAAG;IAEpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE;QACP,OAAO,EAAE;YAAE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;SAAE,CAAC;QACrC,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;SAAE,GAAG,SAAS,CAAC;KACxD,CAAC;IACF,cAAc,CAAC,EAAE;QACf,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACvC,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAC;KAC1D,CAAC;IAGF,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uBAAuB,CAAC,EAAE,aAAa,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG;IACpC,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uBAAuB,CAAC,EAAE,aAAa,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,cAAc,EACd,YAAY,GAAG,cAAc,GAAG,eAAe,CAChD,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,aAAa,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;AACzD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;IACrC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE;YACL,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,OAAO,GACP,GAAG,GACH,SAAS,GACT,OAAO,GACP,WAAW,CAAC;AAEhB,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,cAAc,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAGF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,EAAE,CAAC;AAEjC,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAGF,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACvD,YAAY,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjD,UAAU,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC7C,cAAc,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAGzC,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,KAAK,SAAS,GAAG,aAAa,CAAC;AAE/B,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG,MAAM,CACrC,MAAM,EACN,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GACzB,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAC3E,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,8BAAsB,eAAgB,SAAQ,YAAY;IACjD,IAAI,EAAE,aAAa,CAAC;IAC3B,SAAS,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC9B,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IAClC,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC9B,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC9B,SAAS,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;gBAEhC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE;IAKhC,IAAI,CAAC,GAAG,EAAE,oBAAoB;IAKpC,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAIxB,UAAU;IAOvB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IACvE,QAAQ,CAAC,WAAW,IAAI,QAAQ;IAChC,QAAQ,CAAC,aAAa,IAAI,UAAU;IACpC,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,cAAc,GAAG,aAAa,GAAG,SAAS;IACzE,QAAQ,CAAC,aAAa,IAAI,UAAU,GAAG,SAAS;IAChD,QAAQ,CAAC,aAAa,IAAI,oBAAoB,GAAG,SAAS;IAC1D,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7D,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAC5C;AAID,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC,GAAG,OAAO,EACjB,IAAI,EAAE,gBAAgB,EACtB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,GAAG,CAAC;IACvD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,GAAG,CAAC;CACzD;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;CACnE;AAED,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAI9E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,cAAc,CAAC;AAEjD,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE7B;;OAEG;IACH,UAAU,CAAC,CAAC,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAE9C;;;OAGG;IACH,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEtD;;;;OAIG;IACH,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAGD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,CAAC,EAAE,SAAS,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AACD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,IAAI,CAAC,qBAAqB,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEjE,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,KAAK;IACb,CAAC,EAAE,WAAW,CAAC;IACf,CAAC,EAAE,YAAY,CAAC;IAChB,CAAC,EAAE;QACD,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;QACxB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,CAAC,EAAE,MAAM,CAAC;KACZ,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,aAAa,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,MAAM,CAAC;IACvD,aAAa,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,UAAU,EAAE,MAAM,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IAEnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,MAAM,EAAE,MAAM,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAC/C,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,wBAAwB,EAAE,MAAM,CAAC;QACjC,mBAAmB,EAAE,OAAO,CAAC;QAC7B,sBAAsB,EAAE,OAAO,CAAC;QAChC,sBAAsB,EAAE,OAAO,CAAC;KACjC,CAAC;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-common-react-native",
3
- "version": "0.0.0-feat-onramp-20250718200617",
3
+ "version": "0.0.0-feat-coinbase-20250722174423",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "types": "lib/typescript/index.d.ts",
6
6
  "module": "lib/module/index.js",
@@ -28,7 +28,7 @@
28
28
  "react-native"
29
29
  ],
30
30
  "repository": "https://github.com/reown-com/appkit-react-native",
31
- "author": "Reown (https://discord.gg/reown)",
31
+ "author": "Reown <support@reown.com> (https://reown.com)",
32
32
  "homepage": "https://reown.com/appkit",
33
33
  "license": "Apache-2.0",
34
34
  "bugs": {
@@ -0,0 +1,107 @@
1
+ import { EventEmitter } from 'events';
2
+ import type {
3
+ AdapterEvents,
4
+ AdapterType,
5
+ AppKitNetwork,
6
+ BlockchainAdapterConfig,
7
+ CaipAddress,
8
+ ChainNamespace,
9
+ GetBalanceParams,
10
+ GetBalanceResponse,
11
+ Provider,
12
+ WalletConnector
13
+ } from '../utils/TypeUtil';
14
+
15
+ export abstract class BlockchainAdapter extends EventEmitter {
16
+ public projectId: string;
17
+ public connector?: WalletConnector;
18
+ public supportedNamespace: ChainNamespace;
19
+ public adapterType: AdapterType;
20
+
21
+ // Typed emit method
22
+ override emit<K extends keyof AdapterEvents>(
23
+ event: K,
24
+ payload: Parameters<AdapterEvents[K]>[0]
25
+ ): boolean {
26
+ return super.emit(event, payload);
27
+ }
28
+
29
+ constructor({ projectId, supportedNamespace, adapterType }: BlockchainAdapterConfig) {
30
+ super();
31
+ this.projectId = projectId;
32
+ this.supportedNamespace = supportedNamespace;
33
+ this.adapterType = adapterType;
34
+ }
35
+
36
+ setConnector(connector: WalletConnector) {
37
+ this.connector = connector;
38
+ this.subscribeToEvents();
39
+ }
40
+
41
+ removeConnector() {
42
+ this.connector = undefined;
43
+ }
44
+
45
+ getProvider(): Provider {
46
+ if (!this.connector) throw new Error('No active connector');
47
+
48
+ return this.connector.getProvider();
49
+ }
50
+
51
+ subscribeToEvents(): void {
52
+ const provider = this.connector?.getProvider();
53
+ if (!provider) return;
54
+
55
+ provider.on('chainChanged', this.onChainChanged.bind(this));
56
+ provider.on('accountsChanged', this.onAccountsChanged.bind(this));
57
+ provider.on('disconnect', this.onDisconnect.bind(this));
58
+ }
59
+
60
+ onChainChanged(chainId: string): void {
61
+ const _chains = this.getAccounts()?.map(account => account.split(':')[1]);
62
+ const shouldEmit = _chains?.some(chain => chain === chainId);
63
+
64
+ if (shouldEmit) {
65
+ this.emit('chainChanged', { chainId });
66
+ }
67
+ }
68
+
69
+ onAccountsChanged(accounts: string[]): void {
70
+ const _accounts = this.getAccounts();
71
+ const shouldEmit = _accounts?.some(account => {
72
+ const accountAddress = account.split(':')[2];
73
+
74
+ return accountAddress !== undefined && accounts.includes(accountAddress);
75
+ });
76
+
77
+ if (shouldEmit) {
78
+ this.emit('accountsChanged', { accounts });
79
+ }
80
+ }
81
+
82
+ onDisconnect(): void {
83
+ this.emit('disconnect', { namespace: this.getSupportedNamespace() });
84
+
85
+ const provider = this.connector?.getProvider();
86
+ if (provider) {
87
+ provider.off('chainChanged', this.onChainChanged.bind(this));
88
+ provider.off('accountsChanged', this.onAccountsChanged.bind(this));
89
+ provider.off('disconnect', this.onDisconnect.bind(this));
90
+ }
91
+
92
+ this.connector = undefined;
93
+ }
94
+
95
+ parseUnits(value: string, decimals: number): bigint {
96
+ const [whole, fraction = ''] = value.split('.');
97
+ const paddedFraction = (fraction + '0'.repeat(decimals)).slice(0, decimals);
98
+
99
+ return BigInt(whole + paddedFraction);
100
+ }
101
+
102
+ abstract disconnect(): Promise<void>;
103
+ abstract getSupportedNamespace(): ChainNamespace;
104
+ abstract getBalance(params: GetBalanceParams): Promise<GetBalanceResponse>;
105
+ abstract getAccounts(): CaipAddress[] | undefined;
106
+ abstract switchNetwork(network: AppKitNetwork): Promise<void>;
107
+ }