@reown/appkit-wagmi-react-native 0.0.0-fix-wallet-list-20250327180303 → 0.0.0-fix-cover-screen-20250328152136
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.
- package/package.json +5 -5
- package/lib/commonjs/client.js +0 -516
- package/lib/commonjs/client.js.map +0 -1
- package/lib/commonjs/connectors/WalletConnectConnector.js +0 -353
- package/lib/commonjs/connectors/WalletConnectConnector.js.map +0 -1
- package/lib/commonjs/index.js +0 -139
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/utils/defaultWagmiConfig.js +0 -46
- package/lib/commonjs/utils/defaultWagmiConfig.js.map +0 -1
- package/lib/commonjs/utils/helpers.js +0 -63
- package/lib/commonjs/utils/helpers.js.map +0 -1
- package/lib/module/client.js +0 -510
- package/lib/module/client.js.map +0 -1
- package/lib/module/connectors/WalletConnectConnector.js +0 -348
- package/lib/module/connectors/WalletConnectConnector.js.map +0 -1
- package/lib/module/index.js +0 -93
- package/lib/module/index.js.map +0 -1
- package/lib/module/utils/defaultWagmiConfig.js +0 -40
- package/lib/module/utils/defaultWagmiConfig.js.map +0 -1
- package/lib/module/utils/helpers.js +0 -53
- package/lib/module/utils/helpers.js.map +0 -1
- package/lib/typescript/client.d.ts +0 -40
- package/lib/typescript/client.d.ts.map +0 -1
- package/lib/typescript/connectors/WalletConnectConnector.d.ts +0 -74
- package/lib/typescript/connectors/WalletConnectConnector.d.ts.map +0 -1
- package/lib/typescript/index.d.ts +0 -26
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/utils/defaultWagmiConfig.d.ts +0 -11
- package/lib/typescript/utils/defaultWagmiConfig.d.ts.map +0 -1
- package/lib/typescript/utils/helpers.d.ts +0 -18
- package/lib/typescript/utils/helpers.d.ts.map +0 -1
|
@@ -1,353 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.walletConnect = walletConnect;
|
|
7
|
-
var _viem = require("viem");
|
|
8
|
-
var _core = require("@wagmi/core");
|
|
9
|
-
var _ethereumProvider = require("@walletconnect/ethereum-provider");
|
|
10
|
-
/**** Types ****/
|
|
11
|
-
|
|
12
|
-
walletConnect.type = 'walletConnect';
|
|
13
|
-
function walletConnect(parameters) {
|
|
14
|
-
const isNewChainsStale = parameters.isNewChainsStale ?? true;
|
|
15
|
-
let provider_;
|
|
16
|
-
let providerPromise;
|
|
17
|
-
const NAMESPACE = 'eip155';
|
|
18
|
-
let accountsChanged;
|
|
19
|
-
let chainChanged;
|
|
20
|
-
let connect;
|
|
21
|
-
let displayUri;
|
|
22
|
-
let sessionDelete;
|
|
23
|
-
let disconnect;
|
|
24
|
-
return (0, _core.createConnector)(config => ({
|
|
25
|
-
id: 'walletConnect',
|
|
26
|
-
name: 'WalletConnect',
|
|
27
|
-
type: walletConnect.type,
|
|
28
|
-
async setup() {
|
|
29
|
-
const provider = await this.getProvider().catch(() => null);
|
|
30
|
-
if (!provider) return;
|
|
31
|
-
if (!connect) {
|
|
32
|
-
connect = this.onConnect.bind(this);
|
|
33
|
-
provider.on('connect', connect);
|
|
34
|
-
}
|
|
35
|
-
if (!sessionDelete) {
|
|
36
|
-
sessionDelete = this.onSessionDelete.bind(this);
|
|
37
|
-
provider.on('session_delete', sessionDelete);
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
async connect({
|
|
41
|
-
chainId,
|
|
42
|
-
...rest
|
|
43
|
-
} = {}) {
|
|
44
|
-
try {
|
|
45
|
-
const provider = await this.getProvider();
|
|
46
|
-
if (!provider) throw new _core.ProviderNotFoundError();
|
|
47
|
-
if (!displayUri) {
|
|
48
|
-
displayUri = this.onDisplayUri;
|
|
49
|
-
provider.on('display_uri', displayUri);
|
|
50
|
-
}
|
|
51
|
-
let targetChainId = chainId;
|
|
52
|
-
if (!targetChainId) {
|
|
53
|
-
const state = (await config.storage?.getItem('state')) ?? {};
|
|
54
|
-
const isChainSupported = config.chains.some(x => x.id === state.chainId);
|
|
55
|
-
if (isChainSupported) targetChainId = state.chainId;else targetChainId = config.chains[0]?.id;
|
|
56
|
-
}
|
|
57
|
-
if (!targetChainId) throw new Error('No chains found on connector.');
|
|
58
|
-
const isChainsStale = await this.isChainsStale();
|
|
59
|
-
// If there is an active session with stale chains, disconnect current session.
|
|
60
|
-
if (provider.session && isChainsStale) await provider.disconnect();
|
|
61
|
-
|
|
62
|
-
// If there isn't an active session or chains are stale, connect.
|
|
63
|
-
if (!provider.session || isChainsStale) {
|
|
64
|
-
const optionalChains = config.chains.filter(chain => chain.id !== targetChainId).map(optionalChain => optionalChain.id);
|
|
65
|
-
await provider.connect({
|
|
66
|
-
optionalChains: [targetChainId, ...optionalChains],
|
|
67
|
-
...('pairingTopic' in rest ? {
|
|
68
|
-
pairingTopic: rest.pairingTopic
|
|
69
|
-
} : {})
|
|
70
|
-
});
|
|
71
|
-
this.setRequestedChainsIds(config.chains.map(x => x.id));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// If session exists and chains are authorized, enable provider for required chain
|
|
75
|
-
const accounts = (await provider.enable()).map(_viem.getAddress);
|
|
76
|
-
const currentChainId = await this.getChainId();
|
|
77
|
-
if (displayUri) {
|
|
78
|
-
provider.removeListener('display_uri', displayUri);
|
|
79
|
-
displayUri = undefined;
|
|
80
|
-
}
|
|
81
|
-
if (connect) {
|
|
82
|
-
provider.removeListener('connect', connect);
|
|
83
|
-
connect = undefined;
|
|
84
|
-
}
|
|
85
|
-
if (!accountsChanged) {
|
|
86
|
-
accountsChanged = this.onAccountsChanged.bind(this);
|
|
87
|
-
provider.on('accountsChanged', accountsChanged);
|
|
88
|
-
}
|
|
89
|
-
if (!chainChanged) {
|
|
90
|
-
chainChanged = this.onChainChanged.bind(this);
|
|
91
|
-
provider.on('chainChanged', chainChanged);
|
|
92
|
-
}
|
|
93
|
-
if (!disconnect) {
|
|
94
|
-
disconnect = this.onDisconnect.bind(this);
|
|
95
|
-
provider.on('disconnect', disconnect);
|
|
96
|
-
}
|
|
97
|
-
if (!sessionDelete) {
|
|
98
|
-
sessionDelete = this.onSessionDelete.bind(this);
|
|
99
|
-
provider.on('session_delete', sessionDelete);
|
|
100
|
-
}
|
|
101
|
-
return {
|
|
102
|
-
accounts,
|
|
103
|
-
chainId: currentChainId
|
|
104
|
-
};
|
|
105
|
-
} catch (error) {
|
|
106
|
-
if (/(user rejected|connection request reset)/i.test(error?.message)) {
|
|
107
|
-
throw new _viem.UserRejectedRequestError(error);
|
|
108
|
-
}
|
|
109
|
-
throw error;
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
async disconnect() {
|
|
113
|
-
const provider = await this.getProvider();
|
|
114
|
-
try {
|
|
115
|
-
await provider?.disconnect();
|
|
116
|
-
} catch (error) {
|
|
117
|
-
if (!/No matching key/i.test(error.message)) throw error;
|
|
118
|
-
} finally {
|
|
119
|
-
if (chainChanged) {
|
|
120
|
-
provider?.removeListener('chainChanged', chainChanged);
|
|
121
|
-
chainChanged = undefined;
|
|
122
|
-
}
|
|
123
|
-
if (disconnect) {
|
|
124
|
-
provider?.removeListener('disconnect', disconnect);
|
|
125
|
-
disconnect = undefined;
|
|
126
|
-
}
|
|
127
|
-
if (!connect) {
|
|
128
|
-
connect = this.onConnect.bind(this);
|
|
129
|
-
provider?.on('connect', connect);
|
|
130
|
-
}
|
|
131
|
-
if (accountsChanged) {
|
|
132
|
-
provider?.removeListener('accountsChanged', accountsChanged);
|
|
133
|
-
accountsChanged = undefined;
|
|
134
|
-
}
|
|
135
|
-
if (sessionDelete) {
|
|
136
|
-
provider?.removeListener('session_delete', sessionDelete);
|
|
137
|
-
sessionDelete = undefined;
|
|
138
|
-
}
|
|
139
|
-
this.setRequestedChainsIds([]);
|
|
140
|
-
}
|
|
141
|
-
},
|
|
142
|
-
async getAccounts() {
|
|
143
|
-
const provider = await this.getProvider();
|
|
144
|
-
return provider.accounts.map(_viem.getAddress);
|
|
145
|
-
},
|
|
146
|
-
async getProvider({
|
|
147
|
-
chainId
|
|
148
|
-
} = {}) {
|
|
149
|
-
async function initProvider() {
|
|
150
|
-
const optionalChains = config.chains.map(x => x.id);
|
|
151
|
-
if (!optionalChains.length) return Promise.resolve(undefined);
|
|
152
|
-
const {
|
|
153
|
-
projectId,
|
|
154
|
-
metadata,
|
|
155
|
-
...params
|
|
156
|
-
} = parameters;
|
|
157
|
-
return await _ethereumProvider.EthereumProvider.init({
|
|
158
|
-
optionalChains,
|
|
159
|
-
projectId,
|
|
160
|
-
rpcMap: Object.fromEntries(config.chains.map(chain => [chain.id, chain.rpcUrls.default.http[0]])),
|
|
161
|
-
showQrModal: false,
|
|
162
|
-
qrModalOptions: undefined,
|
|
163
|
-
disableProviderPing: true,
|
|
164
|
-
metadata,
|
|
165
|
-
...params
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
if (!provider_) {
|
|
169
|
-
if (!providerPromise) providerPromise = initProvider();
|
|
170
|
-
provider_ = await providerPromise;
|
|
171
|
-
provider_?.events.setMaxListeners(Number.POSITIVE_INFINITY);
|
|
172
|
-
}
|
|
173
|
-
if (chainId) await this.switchChain?.({
|
|
174
|
-
chainId
|
|
175
|
-
});
|
|
176
|
-
return provider_;
|
|
177
|
-
},
|
|
178
|
-
async getChainId() {
|
|
179
|
-
const provider = await this.getProvider();
|
|
180
|
-
return provider.chainId;
|
|
181
|
-
},
|
|
182
|
-
async isAuthorized() {
|
|
183
|
-
try {
|
|
184
|
-
const [accounts, provider] = await Promise.all([this.getAccounts(), this.getProvider()]);
|
|
185
|
-
|
|
186
|
-
// If an account does not exist on the session, then the connector is unauthorized.
|
|
187
|
-
if (!accounts.length) return false;
|
|
188
|
-
|
|
189
|
-
// If the chains are stale on the session, then the connector is unauthorized.
|
|
190
|
-
const isChainsStale = await this.isChainsStale();
|
|
191
|
-
if (isChainsStale && provider.session) {
|
|
192
|
-
await provider.disconnect().catch(() => {});
|
|
193
|
-
return false;
|
|
194
|
-
}
|
|
195
|
-
return true;
|
|
196
|
-
} catch {
|
|
197
|
-
return false;
|
|
198
|
-
}
|
|
199
|
-
},
|
|
200
|
-
async switchChain({
|
|
201
|
-
addEthereumChainParameter,
|
|
202
|
-
chainId
|
|
203
|
-
}) {
|
|
204
|
-
const provider = await this.getProvider();
|
|
205
|
-
if (!provider) throw new _core.ProviderNotFoundError();
|
|
206
|
-
const chain = config.chains.find(c => c.id === chainId);
|
|
207
|
-
if (!chain) throw new _viem.SwitchChainError(new _core.ChainNotConfiguredError());
|
|
208
|
-
try {
|
|
209
|
-
await Promise.all([new Promise(resolve => {
|
|
210
|
-
const listener = ({
|
|
211
|
-
chainId: currentChainId
|
|
212
|
-
}) => {
|
|
213
|
-
if (currentChainId === chainId) {
|
|
214
|
-
config.emitter.off('change', listener);
|
|
215
|
-
resolve();
|
|
216
|
-
}
|
|
217
|
-
};
|
|
218
|
-
config.emitter.on('change', listener);
|
|
219
|
-
}), provider.request({
|
|
220
|
-
method: 'wallet_switchEthereumChain',
|
|
221
|
-
params: [{
|
|
222
|
-
chainId: (0, _viem.numberToHex)(chainId)
|
|
223
|
-
}]
|
|
224
|
-
})]);
|
|
225
|
-
const requestedChains = await this.getRequestedChainsIds();
|
|
226
|
-
if (!requestedChains.includes(chainId)) {
|
|
227
|
-
this.setRequestedChainsIds([...requestedChains, chainId]);
|
|
228
|
-
}
|
|
229
|
-
return chain;
|
|
230
|
-
} catch (err) {
|
|
231
|
-
const error = err;
|
|
232
|
-
if (/(user rejected)/i.test(error.message)) throw new _viem.UserRejectedRequestError(error);
|
|
233
|
-
|
|
234
|
-
// Indicates chain is not added to provider
|
|
235
|
-
try {
|
|
236
|
-
let blockExplorerUrls;
|
|
237
|
-
if (addEthereumChainParameter?.blockExplorerUrls) blockExplorerUrls = addEthereumChainParameter.blockExplorerUrls;else blockExplorerUrls = chain.blockExplorers?.default.url ? [chain.blockExplorers?.default.url] : [];
|
|
238
|
-
let rpcUrls;
|
|
239
|
-
if (addEthereumChainParameter?.rpcUrls?.length) rpcUrls = addEthereumChainParameter.rpcUrls;else rpcUrls = [...chain.rpcUrls.default.http];
|
|
240
|
-
const addEthereumChain = {
|
|
241
|
-
blockExplorerUrls,
|
|
242
|
-
chainId: (0, _viem.numberToHex)(chainId),
|
|
243
|
-
chainName: addEthereumChainParameter?.chainName ?? chain.name,
|
|
244
|
-
iconUrls: addEthereumChainParameter?.iconUrls,
|
|
245
|
-
nativeCurrency: addEthereumChainParameter?.nativeCurrency ?? chain.nativeCurrency,
|
|
246
|
-
rpcUrls
|
|
247
|
-
};
|
|
248
|
-
await provider.request({
|
|
249
|
-
method: 'wallet_addEthereumChain',
|
|
250
|
-
params: [addEthereumChain]
|
|
251
|
-
});
|
|
252
|
-
const requestedChains = await this.getRequestedChainsIds();
|
|
253
|
-
this.setRequestedChainsIds([...requestedChains, chainId]);
|
|
254
|
-
return chain;
|
|
255
|
-
} catch (e) {
|
|
256
|
-
throw new _viem.UserRejectedRequestError(e);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
},
|
|
260
|
-
onAccountsChanged(accounts) {
|
|
261
|
-
if (accounts.length === 0) this.onDisconnect();else config.emitter.emit('change', {
|
|
262
|
-
accounts: accounts.map(x => (0, _viem.getAddress)(x))
|
|
263
|
-
});
|
|
264
|
-
},
|
|
265
|
-
onChainChanged(chain) {
|
|
266
|
-
const chainId = Number(chain);
|
|
267
|
-
config.emitter.emit('change', {
|
|
268
|
-
chainId
|
|
269
|
-
});
|
|
270
|
-
},
|
|
271
|
-
async onConnect(connectInfo) {
|
|
272
|
-
const chainId = Number(connectInfo.chainId);
|
|
273
|
-
const accounts = await this.getAccounts();
|
|
274
|
-
config.emitter.emit('connect', {
|
|
275
|
-
accounts,
|
|
276
|
-
chainId
|
|
277
|
-
});
|
|
278
|
-
},
|
|
279
|
-
async onDisconnect(_error) {
|
|
280
|
-
this.setRequestedChainsIds([]);
|
|
281
|
-
config.emitter.emit('disconnect');
|
|
282
|
-
const provider = await this.getProvider();
|
|
283
|
-
if (accountsChanged) {
|
|
284
|
-
provider.removeListener('accountsChanged', accountsChanged);
|
|
285
|
-
accountsChanged = undefined;
|
|
286
|
-
}
|
|
287
|
-
if (chainChanged) {
|
|
288
|
-
provider.removeListener('chainChanged', chainChanged);
|
|
289
|
-
chainChanged = undefined;
|
|
290
|
-
}
|
|
291
|
-
if (disconnect) {
|
|
292
|
-
provider.removeListener('disconnect', disconnect);
|
|
293
|
-
disconnect = undefined;
|
|
294
|
-
}
|
|
295
|
-
if (sessionDelete) {
|
|
296
|
-
provider.removeListener('session_delete', sessionDelete);
|
|
297
|
-
sessionDelete = undefined;
|
|
298
|
-
}
|
|
299
|
-
if (!connect) {
|
|
300
|
-
connect = this.onConnect.bind(this);
|
|
301
|
-
provider.on('connect', connect);
|
|
302
|
-
}
|
|
303
|
-
},
|
|
304
|
-
onDisplayUri(uri) {
|
|
305
|
-
config.emitter.emit('message', {
|
|
306
|
-
type: 'display_uri',
|
|
307
|
-
data: uri
|
|
308
|
-
});
|
|
309
|
-
},
|
|
310
|
-
onSessionDelete() {
|
|
311
|
-
this.onDisconnect();
|
|
312
|
-
},
|
|
313
|
-
getNamespaceChainsIds() {
|
|
314
|
-
if (!provider_) return [];
|
|
315
|
-
const chainIds = provider_.session?.namespaces[NAMESPACE]?.accounts?.map(account => parseInt(account.split(':')[1] || ''));
|
|
316
|
-
return chainIds ?? [];
|
|
317
|
-
},
|
|
318
|
-
getNamespaceMethods() {
|
|
319
|
-
if (!provider_) return [];
|
|
320
|
-
const methods = provider_.session?.namespaces[NAMESPACE]?.methods;
|
|
321
|
-
return methods ?? [];
|
|
322
|
-
},
|
|
323
|
-
async getRequestedChainsIds() {
|
|
324
|
-
return (await config.storage?.getItem(this.requestedChainsStorageKey)) ?? [];
|
|
325
|
-
},
|
|
326
|
-
/**
|
|
327
|
-
* Checks if the target chains match the chains that were
|
|
328
|
-
* initially requested by the connector for the WalletConnect session.
|
|
329
|
-
* If there is a mismatch, this means that the chains on the connector
|
|
330
|
-
* are considered stale, and need to be revalidated at a later point (via
|
|
331
|
-
* connection).
|
|
332
|
-
*
|
|
333
|
-
* There may be a scenario where a dapp adds a chain to the
|
|
334
|
-
* connector later on, however, this chain will not have been approved or rejected
|
|
335
|
-
* by the wallet. In this case, the chain is considered stale.
|
|
336
|
-
*/
|
|
337
|
-
async isChainsStale() {
|
|
338
|
-
if (!isNewChainsStale) return false;
|
|
339
|
-
const connectorChains = config.chains.map(x => x.id);
|
|
340
|
-
const namespaceChains = this.getNamespaceChainsIds();
|
|
341
|
-
if (namespaceChains.length && !namespaceChains.some(id => connectorChains.includes(id))) return false;
|
|
342
|
-
const requestedChains = await this.getRequestedChainsIds();
|
|
343
|
-
return !connectorChains.every(id => requestedChains.includes(id));
|
|
344
|
-
},
|
|
345
|
-
async setRequestedChainsIds(chains) {
|
|
346
|
-
await config.storage?.setItem(this.requestedChainsStorageKey, chains);
|
|
347
|
-
},
|
|
348
|
-
get requestedChainsStorageKey() {
|
|
349
|
-
return `${this.id}.requestedChains`;
|
|
350
|
-
}
|
|
351
|
-
}));
|
|
352
|
-
}
|
|
353
|
-
//# sourceMappingURL=WalletConnectConnector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_viem","require","_core","_ethereumProvider","walletConnect","type","parameters","isNewChainsStale","provider_","providerPromise","NAMESPACE","accountsChanged","chainChanged","connect","displayUri","sessionDelete","disconnect","createConnector","config","id","name","setup","provider","getProvider","catch","onConnect","bind","on","onSessionDelete","chainId","rest","ProviderNotFoundError","onDisplayUri","targetChainId","state","storage","getItem","isChainSupported","chains","some","x","Error","isChainsStale","session","optionalChains","filter","chain","map","optionalChain","pairingTopic","setRequestedChainsIds","accounts","enable","getAddress","currentChainId","getChainId","removeListener","undefined","onAccountsChanged","onChainChanged","onDisconnect","error","test","message","UserRejectedRequestError","getAccounts","initProvider","length","Promise","resolve","projectId","metadata","params","EthereumProvider","init","rpcMap","Object","fromEntries","rpcUrls","default","http","showQrModal","qrModalOptions","disableProviderPing","events","setMaxListeners","Number","POSITIVE_INFINITY","switchChain","isAuthorized","all","addEthereumChainParameter","find","c","SwitchChainError","ChainNotConfiguredError","listener","emitter","off","request","method","numberToHex","requestedChains","getRequestedChainsIds","includes","err","blockExplorerUrls","blockExplorers","url","addEthereumChain","chainName","iconUrls","nativeCurrency","e","emit","connectInfo","_error","uri","data","getNamespaceChainsIds","chainIds","namespaces","account","parseInt","split","getNamespaceMethods","methods","requestedChainsStorageKey","connectorChains","namespaceChains","every","setItem"],"sourceRoot":"../../../src","sources":["connectors/WalletConnectConnector.ts"],"mappings":"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"}
|
package/lib/commonjs/index.js
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "AccountButton", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _appkitScaffoldReactNative.AccountButton;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
Object.defineProperty(exports, "AppKit", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _appkitScaffoldReactNative.AppKit;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
Object.defineProperty(exports, "AppKitButton", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () {
|
|
21
|
-
return _appkitScaffoldReactNative.AppKitButton;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
Object.defineProperty(exports, "ConnectButton", {
|
|
25
|
-
enumerable: true,
|
|
26
|
-
get: function () {
|
|
27
|
-
return _appkitScaffoldReactNative.ConnectButton;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
Object.defineProperty(exports, "NetworkButton", {
|
|
31
|
-
enumerable: true,
|
|
32
|
-
get: function () {
|
|
33
|
-
return _appkitScaffoldReactNative.NetworkButton;
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
exports.createAppKit = createAppKit;
|
|
37
|
-
Object.defineProperty(exports, "defaultWagmiConfig", {
|
|
38
|
-
enumerable: true,
|
|
39
|
-
get: function () {
|
|
40
|
-
return _defaultWagmiConfig.defaultWagmiConfig;
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
exports.useAppKit = useAppKit;
|
|
44
|
-
exports.useAppKitEventSubscription = useAppKitEventSubscription;
|
|
45
|
-
exports.useAppKitEvents = useAppKitEvents;
|
|
46
|
-
exports.useAppKitState = useAppKitState;
|
|
47
|
-
exports.useWalletInfo = useWalletInfo;
|
|
48
|
-
require("@walletconnect/react-native-compat");
|
|
49
|
-
var _react = require("react");
|
|
50
|
-
var _appkitScaffoldReactNative = require("@reown/appkit-scaffold-react-native");
|
|
51
|
-
var _appkitCommonReactNative = require("@reown/appkit-common-react-native");
|
|
52
|
-
var _defaultWagmiConfig = require("./utils/defaultWagmiConfig");
|
|
53
|
-
var _client = require("./client");
|
|
54
|
-
// -- Types -------------------------------------------------------------------
|
|
55
|
-
|
|
56
|
-
// -- Setup -------------------------------------------------------------------
|
|
57
|
-
let modal;
|
|
58
|
-
function createAppKit(options) {
|
|
59
|
-
if (!modal) {
|
|
60
|
-
modal = new _client.AppKit({
|
|
61
|
-
...options,
|
|
62
|
-
_sdkVersion: `react-native-wagmi-${_appkitCommonReactNative.ConstantsUtil.VERSION}`
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
return modal;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// -- Hooks -------------------------------------------------------------------
|
|
69
|
-
function useAppKit() {
|
|
70
|
-
if (!modal) {
|
|
71
|
-
throw new Error('Please call "createAppKit" before using "useAppKit" hook');
|
|
72
|
-
}
|
|
73
|
-
async function open(options) {
|
|
74
|
-
await modal?.open(options);
|
|
75
|
-
}
|
|
76
|
-
async function close() {
|
|
77
|
-
await modal?.close();
|
|
78
|
-
}
|
|
79
|
-
return {
|
|
80
|
-
open,
|
|
81
|
-
close
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
function useAppKitState() {
|
|
85
|
-
if (!modal) {
|
|
86
|
-
throw new Error('Please call "createAppKit" before using "useAppKitState" hook');
|
|
87
|
-
}
|
|
88
|
-
const [state, setState] = (0, _react.useState)(modal.getState());
|
|
89
|
-
(0, _react.useEffect)(() => {
|
|
90
|
-
const unsubscribe = modal?.subscribeState(newState => {
|
|
91
|
-
if (newState) setState({
|
|
92
|
-
...newState
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
return () => {
|
|
96
|
-
unsubscribe?.();
|
|
97
|
-
};
|
|
98
|
-
}, []);
|
|
99
|
-
return state;
|
|
100
|
-
}
|
|
101
|
-
function useWalletInfo() {
|
|
102
|
-
if (!modal) {
|
|
103
|
-
throw new Error('Please call "createAppKit" before using "useWalletInfo" hook');
|
|
104
|
-
}
|
|
105
|
-
const walletInfo = (0, _react.useSyncExternalStore)(modal.subscribeWalletInfo, modal.getWalletInfo, modal.getWalletInfo);
|
|
106
|
-
return {
|
|
107
|
-
walletInfo
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
function useAppKitEvents(callback) {
|
|
111
|
-
if (!modal) {
|
|
112
|
-
throw new Error('Please call "createAppKit" before using "useAppKitEvents" hook');
|
|
113
|
-
}
|
|
114
|
-
const [event, setEvents] = (0, _react.useState)(modal.getEvent());
|
|
115
|
-
(0, _react.useEffect)(() => {
|
|
116
|
-
const unsubscribe = modal?.subscribeEvents(newEvent => {
|
|
117
|
-
setEvents({
|
|
118
|
-
...newEvent
|
|
119
|
-
});
|
|
120
|
-
callback?.(newEvent);
|
|
121
|
-
});
|
|
122
|
-
return () => {
|
|
123
|
-
unsubscribe?.();
|
|
124
|
-
};
|
|
125
|
-
}, [callback]);
|
|
126
|
-
return event;
|
|
127
|
-
}
|
|
128
|
-
function useAppKitEventSubscription(event, callback) {
|
|
129
|
-
if (!modal) {
|
|
130
|
-
throw new Error('Please call "createAppKit" before using "useAppKitEventSubscription" hook');
|
|
131
|
-
}
|
|
132
|
-
(0, _react.useEffect)(() => {
|
|
133
|
-
const unsubscribe = modal?.subscribeEvent(event, callback);
|
|
134
|
-
return () => {
|
|
135
|
-
unsubscribe?.();
|
|
136
|
-
};
|
|
137
|
-
}, [callback, event]);
|
|
138
|
-
}
|
|
139
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["require","_react","_appkitScaffoldReactNative","_appkitCommonReactNative","_defaultWagmiConfig","_client","modal","createAppKit","options","AppKit","_sdkVersion","ConstantsUtil","VERSION","useAppKit","Error","open","close","useAppKitState","state","setState","useState","getState","useEffect","unsubscribe","subscribeState","newState","useWalletInfo","walletInfo","useSyncExternalStore","subscribeWalletInfo","getWalletInfo","useAppKitEvents","callback","event","setEvents","getEvent","subscribeEvents","newEvent","useAppKitEventSubscription","subscribeEvent"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.defaultWagmiConfig = defaultWagmiConfig;
|
|
7
|
-
var _wagmi = require("wagmi");
|
|
8
|
-
var _appkitScaffoldUtilsReactNative = require("@reown/appkit-scaffold-utils-react-native");
|
|
9
|
-
var _WalletConnectConnector = require("../connectors/WalletConnectConnector");
|
|
10
|
-
var _helpers = require("./helpers");
|
|
11
|
-
function defaultWagmiConfig({
|
|
12
|
-
projectId,
|
|
13
|
-
chains,
|
|
14
|
-
metadata,
|
|
15
|
-
enableWalletConnect = true,
|
|
16
|
-
extraConnectors,
|
|
17
|
-
...wagmiConfig
|
|
18
|
-
}) {
|
|
19
|
-
const connectors = [];
|
|
20
|
-
const transportsArr = chains.map(chain => [chain.id, (0, _helpers.getTransport)({
|
|
21
|
-
chainId: chain.id,
|
|
22
|
-
projectId
|
|
23
|
-
})]);
|
|
24
|
-
const transports = Object.fromEntries(transportsArr);
|
|
25
|
-
const storage = (0, _wagmi.createStorage)({
|
|
26
|
-
storage: _appkitScaffoldUtilsReactNative.StorageUtil
|
|
27
|
-
});
|
|
28
|
-
if (enableWalletConnect) {
|
|
29
|
-
connectors.push((0, _WalletConnectConnector.walletConnect)({
|
|
30
|
-
projectId,
|
|
31
|
-
metadata
|
|
32
|
-
}));
|
|
33
|
-
}
|
|
34
|
-
if (extraConnectors) {
|
|
35
|
-
connectors.push(...extraConnectors);
|
|
36
|
-
}
|
|
37
|
-
return (0, _wagmi.createConfig)({
|
|
38
|
-
chains,
|
|
39
|
-
connectors,
|
|
40
|
-
transports,
|
|
41
|
-
storage,
|
|
42
|
-
multiInjectedProviderDiscovery: false,
|
|
43
|
-
...wagmiConfig
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=defaultWagmiConfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_wagmi","require","_appkitScaffoldUtilsReactNative","_WalletConnectConnector","_helpers","defaultWagmiConfig","projectId","chains","metadata","enableWalletConnect","extraConnectors","wagmiConfig","connectors","transportsArr","map","chain","id","getTransport","chainId","transports","Object","fromEntries","storage","createStorage","StorageUtil","push","walletConnect","createConfig","multiInjectedProviderDiscovery"],"sourceRoot":"../../../src","sources":["utils/defaultWagmiConfig.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOA,IAAAC,+BAAA,GAAAD,OAAA;AAEA,IAAAE,uBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAUO,SAASI,kBAAkBA,CAAC;EACjCC,SAAS;EACTC,MAAM;EACNC,QAAQ;EACRC,mBAAmB,GAAG,IAAI;EAC1BC,eAAe;EACf,GAAGC;AACU,CAAC,EAAE;EAChB,MAAMC,UAA+B,GAAG,EAAE;EAC1C,MAAMC,aAAa,GAAGN,MAAM,CAACO,GAAG,CAACC,KAAK,IAAI,CACxCA,KAAK,CAACC,EAAE,EACR,IAAAC,qBAAY,EAAC;IAAEC,OAAO,EAAEH,KAAK,CAACC,EAAE;IAAEV;EAAU,CAAC,CAAC,CAC/C,CAAC;EACF,MAAMa,UAAU,GAAGC,MAAM,CAACC,WAAW,CAACR,aAAa,CAAC;EACpD,MAAMS,OAAO,GAAG,IAAAC,oBAAa,EAAC;IAAED,OAAO,EAAEE;EAAY,CAAC,CAAC;EAEvD,IAAIf,mBAAmB,EAAE;IACvBG,UAAU,CAACa,IAAI,CAAC,IAAAC,qCAAa,EAAC;MAAEpB,SAAS;MAAEE;IAAS,CAAC,CAAC,CAAC;EACzD;EAEA,IAAIE,eAAe,EAAE;IACnBE,UAAU,CAACa,IAAI,CAAC,GAAGf,eAAe,CAAC;EACrC;EAEA,OAAO,IAAAiB,mBAAY,EAAC;IAClBpB,MAAM;IACNK,UAAU;IACVO,UAAU;IACVG,OAAO;IACPM,8BAA8B,EAAE,KAAK;IACrC,GAAGjB;EACL,CAAC,CAAC;AACJ"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getAuthCaipNetworks = getAuthCaipNetworks;
|
|
7
|
-
exports.getCaipDefaultChain = getCaipDefaultChain;
|
|
8
|
-
exports.getTransport = getTransport;
|
|
9
|
-
exports.getWalletConnectCaipNetworks = getWalletConnectCaipNetworks;
|
|
10
|
-
exports.requireCaipAddress = requireCaipAddress;
|
|
11
|
-
var _appkitScaffoldReactNative = require("@reown/appkit-scaffold-react-native");
|
|
12
|
-
var _appkitCommonReactNative = require("@reown/appkit-common-react-native");
|
|
13
|
-
var _viem = require("viem");
|
|
14
|
-
function getCaipDefaultChain(chain) {
|
|
15
|
-
if (!chain) {
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
|
-
return {
|
|
19
|
-
id: `${_appkitCommonReactNative.ConstantsUtil.EIP155}:${chain.id}`,
|
|
20
|
-
name: chain.name,
|
|
21
|
-
imageId: _appkitCommonReactNative.PresetsUtil.EIP155NetworkImageIds[chain.id]
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
async function getWalletConnectCaipNetworks(connector) {
|
|
25
|
-
if (!connector) {
|
|
26
|
-
throw new Error('networkControllerClient:getApprovedCaipNetworks - connector is undefined');
|
|
27
|
-
}
|
|
28
|
-
const provider = await connector?.getProvider();
|
|
29
|
-
const ns = provider?.signer?.session?.namespaces;
|
|
30
|
-
const nsMethods = ns?.[_appkitCommonReactNative.ConstantsUtil.EIP155]?.methods;
|
|
31
|
-
const nsChains = ns?.[_appkitCommonReactNative.ConstantsUtil.EIP155]?.chains;
|
|
32
|
-
return {
|
|
33
|
-
supportsAllNetworks: Boolean(nsMethods?.includes(_appkitCommonReactNative.ConstantsUtil.ADD_CHAIN_METHOD)),
|
|
34
|
-
approvedCaipNetworkIds: nsChains
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
function getAuthCaipNetworks() {
|
|
38
|
-
return {
|
|
39
|
-
supportsAllNetworks: false,
|
|
40
|
-
approvedCaipNetworkIds: _appkitCommonReactNative.PresetsUtil.RpcChainIds.map(id => `${_appkitCommonReactNative.ConstantsUtil.EIP155}:${id}`)
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
function getTransport({
|
|
44
|
-
chainId,
|
|
45
|
-
projectId
|
|
46
|
-
}) {
|
|
47
|
-
const RPC_URL = _appkitScaffoldReactNative.CoreHelperUtil.getBlockchainApiUrl();
|
|
48
|
-
if (!_appkitCommonReactNative.PresetsUtil.RpcChainIds.includes(chainId)) {
|
|
49
|
-
return (0, _viem.http)();
|
|
50
|
-
}
|
|
51
|
-
return (0, _viem.http)(`${RPC_URL}/v1/?chainId=${_appkitCommonReactNative.ConstantsUtil.EIP155}:${chainId}&projectId=${projectId}`);
|
|
52
|
-
}
|
|
53
|
-
function requireCaipAddress(caipAddress) {
|
|
54
|
-
if (!caipAddress) {
|
|
55
|
-
throw new Error('No CAIP address provided');
|
|
56
|
-
}
|
|
57
|
-
const account = caipAddress.split(':')[2];
|
|
58
|
-
if (!account) {
|
|
59
|
-
throw new Error('Invalid CAIP address');
|
|
60
|
-
}
|
|
61
|
-
return account;
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_appkitScaffoldReactNative","require","_appkitCommonReactNative","_viem","getCaipDefaultChain","chain","undefined","id","ConstantsUtil","EIP155","name","imageId","PresetsUtil","EIP155NetworkImageIds","getWalletConnectCaipNetworks","connector","Error","provider","getProvider","ns","signer","session","namespaces","nsMethods","methods","nsChains","chains","supportsAllNetworks","Boolean","includes","ADD_CHAIN_METHOD","approvedCaipNetworkIds","getAuthCaipNetworks","RpcChainIds","map","getTransport","chainId","projectId","RPC_URL","CoreHelperUtil","getBlockchainApiUrl","http","requireCaipAddress","caipAddress","account","split"],"sourceRoot":"../../../src","sources":["utils/helpers.ts"],"mappings":";;;;;;;;;;AAAA,IAAAA,0BAAA,GAAAC,OAAA;AAKA,IAAAC,wBAAA,GAAAD,OAAA;AAIA,IAAAE,KAAA,GAAAF,OAAA;AAEO,SAASG,mBAAmBA,CAACC,KAA2C,EAAE;EAC/E,IAAI,CAACA,KAAK,EAAE;IACV,OAAOC,SAAS;EAClB;EAEA,OAAO;IACLC,EAAE,EAAG,GAAEC,sCAAa,CAACC,MAAO,IAAGJ,KAAK,CAACE,EAAG,EAAC;IACzCG,IAAI,EAAEL,KAAK,CAACK,IAAI;IAChBC,OAAO,EAAEC,oCAAW,CAACC,qBAAqB,CAACR,KAAK,CAACE,EAAE;EACrD,CAAC;AACH;AAEO,eAAeO,4BAA4BA,CAACC,SAAqB,EAAE;EACxE,IAAI,CAACA,SAAS,EAAE;IACd,MAAM,IAAIC,KAAK,CAAC,0EAA0E,CAAC;EAC7F;EACA,MAAMC,QAAQ,GAAI,MAAMF,SAAS,EAAEG,WAAW,CAAC,CAE9C;EACD,MAAMC,EAAE,GAAGF,QAAQ,EAAEG,MAAM,EAAEC,OAAO,EAAEC,UAAU;EAChD,MAAMC,SAAS,GAAGJ,EAAE,GAAGX,sCAAa,CAACC,MAAM,CAAC,EAAEe,OAAO;EACrD,MAAMC,QAAQ,GAAGN,EAAE,GAAGX,sCAAa,CAACC,MAAM,CAAC,EAAEiB,MAAyB;EAEtE,OAAO;IACLC,mBAAmB,EAAEC,OAAO,CAACL,SAAS,EAAEM,QAAQ,CAACrB,sCAAa,CAACsB,gBAAgB,CAAC,CAAC;IACjFC,sBAAsB,EAAEN;EAC1B,CAAC;AACH;AAEO,SAASO,mBAAmBA,CAAA,EAAG;EACpC,OAAO;IACLL,mBAAmB,EAAE,KAAK;IAC1BI,sBAAsB,EAAEnB,oCAAW,CAACqB,WAAW,CAACC,GAAG,CACjD3B,EAAE,IAAK,GAAEC,sCAAa,CAACC,MAAO,IAAGF,EAAG,EACtC;EACF,CAAC;AACH;AAEO,SAAS4B,YAAYA,CAAC;EAAEC,OAAO;EAAEC;AAAkD,CAAC,EAAE;EAC3F,MAAMC,OAAO,GAAGC,yCAAc,CAACC,mBAAmB,CAAC,CAAC;EAEpD,IAAI,CAAC5B,oCAAW,CAACqB,WAAW,CAACJ,QAAQ,CAACO,OAAO,CAAC,EAAE;IAC9C,OAAO,IAAAK,UAAI,EAAC,CAAC;EACf;EAEA,OAAO,IAAAA,UAAI,EAAE,GAAEH,OAAQ,gBAAe9B,sCAAa,CAACC,MAAO,IAAG2B,OAAQ,cAAaC,SAAU,EAAC,CAAC;AACjG;AAEO,SAASK,kBAAkBA,CAACC,WAAmB,EAAE;EACtD,IAAI,CAACA,WAAW,EAAE;IAChB,MAAM,IAAI3B,KAAK,CAAC,0BAA0B,CAAC;EAC7C;EACA,MAAM4B,OAAO,GAAGD,WAAW,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAQ;EAChD,IAAI,CAACD,OAAO,EAAE;IACZ,MAAM,IAAI5B,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,OAAO4B,OAAO;AAChB"}
|