@reown/appkit-react-native 0.0.0-feat-multichain-20250918161243 → 0.0.0-feat-siwx-20250919185555
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/lib/commonjs/AppKit.js +25 -77
- package/lib/commonjs/AppKit.js.map +1 -1
- package/lib/commonjs/connectors/WalletConnectConnector.js +24 -57
- package/lib/commonjs/connectors/WalletConnectConnector.js.map +1 -1
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/modal/w3m-router/index.js +3 -3
- package/lib/commonjs/modal/w3m-router/index.js.map +1 -1
- package/lib/commonjs/partials/w3m-header/index.js +3 -3
- package/lib/commonjs/partials/w3m-header/index.js.map +1 -1
- package/lib/commonjs/utils/SIWXUtil.js +269 -0
- package/lib/commonjs/utils/SIWXUtil.js.map +1 -0
- package/lib/commonjs/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/index.js +6 -43
- package/lib/commonjs/views/w3m-siwx-sign-view/index.js.map +1 -0
- package/lib/commonjs/views/w3m-siwx-sign-view/styles.js.map +1 -0
- package/lib/module/AppKit.js +25 -77
- package/lib/module/AppKit.js.map +1 -1
- package/lib/module/connectors/WalletConnectConnector.js +22 -56
- package/lib/module/connectors/WalletConnectConnector.js.map +1 -1
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/modal/w3m-router/index.js +3 -3
- package/lib/module/modal/w3m-router/index.js.map +1 -1
- package/lib/module/partials/w3m-header/index.js +3 -3
- package/lib/module/partials/w3m-header/index.js.map +1 -1
- package/lib/module/utils/SIWXUtil.js +266 -0
- package/lib/module/utils/SIWXUtil.js.map +1 -0
- package/lib/module/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/index.js +6 -43
- package/lib/module/views/w3m-siwx-sign-view/index.js.map +1 -0
- package/lib/module/views/w3m-siwx-sign-view/styles.js.map +1 -0
- package/lib/typescript/AppKit.d.ts +0 -2
- package/lib/typescript/AppKit.d.ts.map +1 -1
- package/lib/typescript/connectors/WalletConnectConnector.d.ts.map +1 -1
- package/lib/typescript/hooks/useAppKitEvents.d.ts +6 -4
- package/lib/typescript/hooks/useAppKitEvents.d.ts.map +1 -1
- package/lib/typescript/hooks/useWalletInfo.d.ts +1 -0
- package/lib/typescript/hooks/useWalletInfo.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +2 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +5 -7
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/utils/SIWXUtil.d.ts +30 -0
- package/lib/typescript/utils/SIWXUtil.d.ts.map +1 -0
- package/lib/typescript/views/w3m-siwx-sign-view/index.d.ts +2 -0
- package/lib/typescript/views/w3m-siwx-sign-view/index.d.ts.map +1 -0
- package/lib/typescript/views/w3m-siwx-sign-view/styles.d.ts.map +1 -0
- package/package.json +4 -5
- package/src/AppKit.ts +27 -86
- package/src/connectors/WalletConnectConnector.ts +33 -69
- package/src/index.ts +3 -0
- package/src/modal/w3m-router/index.tsx +3 -3
- package/src/partials/w3m-header/index.tsx +3 -3
- package/src/types.ts +6 -8
- package/src/utils/SIWXUtil.ts +349 -0
- package/src/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/index.tsx +5 -37
- package/lib/commonjs/views/w3m-connecting-siwe-view/index.js.map +0 -1
- package/lib/commonjs/views/w3m-connecting-siwe-view/styles.js.map +0 -1
- package/lib/module/views/w3m-connecting-siwe-view/index.js.map +0 -1
- package/lib/module/views/w3m-connecting-siwe-view/styles.js.map +0 -1
- package/lib/typescript/views/w3m-connecting-siwe-view/index.d.ts +0 -2
- package/lib/typescript/views/w3m-connecting-siwe-view/index.d.ts.map +0 -1
- package/lib/typescript/views/w3m-connecting-siwe-view/styles.d.ts.map +0 -1
- /package/lib/commonjs/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.js +0 -0
- /package/lib/module/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.js +0 -0
- /package/lib/typescript/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.d.ts +0 -0
- /package/src/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_valtio","require","_appkitCoreReactNative","_appkitUiReactNative","_appkitCommonReactNative","_styles","_interopRequireDefault","_AppKitContext","_jsxRuntime","e","__esModule","default","Header","close","back","useInternalAppKit","data","view","useSnapshot","RouterController","state","onHelpPress","push","undefined","EventsController","sendEvent","type","event","headings","_data","_view","walletName","wallet","name","networkName","network","socialName","socialProvider","StringUtil","capitalize","Account","AccountDefault","AllWallets","Connect","ConnectSocials","ConnectingExternal","
|
|
1
|
+
{"version":3,"names":["_valtio","require","_appkitCoreReactNative","_appkitUiReactNative","_appkitCommonReactNative","_styles","_interopRequireDefault","_AppKitContext","_jsxRuntime","e","__esModule","default","Header","close","back","useInternalAppKit","data","view","useSnapshot","RouterController","state","onHelpPress","push","undefined","EventsController","sendEvent","type","event","headings","_data","_view","walletName","wallet","name","networkName","network","socialName","socialProvider","StringUtil","capitalize","Account","AccountDefault","AllWallets","Connect","ConnectSocials","ConnectingExternal","SIWXSignMessage","ConnectingSocial","WalletConnect","GetWallet","Networks","OnRamp","OnRampCheckout","OnRampSettings","OnRampLoading","OnRampTransaction","SwitchNetwork","Swap","SwapPreview","Transactions","UnsupportedChain","UpgradeEmailWallet","WalletCompatibleNetworks","WalletReceive","WalletSend","WalletSendPreview","WalletSendSelectToken","WhatIsANetwork","WhatIsAWallet","noCloseViews","noBackViews","showClose","includes","header","handleGoBack","handleClose","dynamicButtonTemplate","showBack","history","length","showHelp","jsx","IconLink","icon","size","onPress","testID","FlexView","style","styles","iconPlaceholder","bottomPadding","jsxs","justifyContent","flexDirection","alignItems","padding","children","Text","variant","numberOfLines"],"sourceRoot":"../../../../src","sources":["partials/w3m-header/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SIWXUtil = void 0;
|
|
7
|
+
var _appkitCoreReactNative = require("@reown/appkit-core-react-native");
|
|
8
|
+
/**
|
|
9
|
+
* SIWXUtil holds the methods to interact with the SIWX plugin and must be called internally on AppKit.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const SIWXUtil = exports.SIWXUtil = {
|
|
13
|
+
getSIWX() {
|
|
14
|
+
return _appkitCoreReactNative.OptionsController.state.siwx;
|
|
15
|
+
},
|
|
16
|
+
async initializeIfEnabled(onDisconnect, caipAddress = _appkitCoreReactNative.ConnectionsController.state.activeAddress) {
|
|
17
|
+
const siwx = _appkitCoreReactNative.OptionsController.state.siwx;
|
|
18
|
+
if (!siwx || !caipAddress) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const [namespace, chainId, address] = caipAddress.split(':');
|
|
22
|
+
const isSupportedNetwork = _appkitCoreReactNative.ConnectionsController.getAvailableNetworks().find(network => network.caipNetworkId === `${namespace}:${chainId}`);
|
|
23
|
+
if (!isSupportedNetwork) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const sessions = await siwx.getSessions(`${namespace}:${chainId}`, address);
|
|
28
|
+
if (sessions.length) {
|
|
29
|
+
_appkitCoreReactNative.ModalController.close();
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (_appkitCoreReactNative.ModalController.state.open) {
|
|
33
|
+
_appkitCoreReactNative.RouterController.push('SIWXSignMessage');
|
|
34
|
+
} else {
|
|
35
|
+
_appkitCoreReactNative.ModalController.open({
|
|
36
|
+
view: 'SIWXSignMessage'
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
} catch (error) {
|
|
40
|
+
// eslint-disable-next-line no-console
|
|
41
|
+
console.error('SIWXUtil:initializeIfEnabled error', error);
|
|
42
|
+
_appkitCoreReactNative.EventsController.sendEvent({
|
|
43
|
+
type: 'track',
|
|
44
|
+
event: 'SIWX_AUTH_ERROR',
|
|
45
|
+
properties: this.getSIWXEventProperties(error)
|
|
46
|
+
});
|
|
47
|
+
await onDisconnect();
|
|
48
|
+
_appkitCoreReactNative.SnackController.showError('A problem occurred while trying initialize authentication');
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
async requestSignMessage() {
|
|
52
|
+
_appkitCoreReactNative.EventsController.sendEvent({
|
|
53
|
+
type: 'track',
|
|
54
|
+
event: 'CLICK_SIGN_SIWX_MESSAGE',
|
|
55
|
+
properties: this.getSIWXEventProperties()
|
|
56
|
+
});
|
|
57
|
+
const siwx = _appkitCoreReactNative.OptionsController.state.siwx;
|
|
58
|
+
const address = _appkitCoreReactNative.ConnectionsController.state.activeAddress;
|
|
59
|
+
const plainAddress = _appkitCoreReactNative.CoreHelperUtil.getPlainAddress(address);
|
|
60
|
+
const network = _appkitCoreReactNative.ConnectionsController.state.activeNetwork;
|
|
61
|
+
if (!siwx) {
|
|
62
|
+
throw new Error('SIWX is not enabled');
|
|
63
|
+
}
|
|
64
|
+
if (!address || !plainAddress) {
|
|
65
|
+
throw new Error('No ActiveCaipAddress found');
|
|
66
|
+
}
|
|
67
|
+
if (!network) {
|
|
68
|
+
throw new Error('No ActiveCaipNetwork or client found');
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
const siwxMessage = await siwx.createMessage({
|
|
72
|
+
chainId: network.caipNetworkId,
|
|
73
|
+
accountAddress: plainAddress
|
|
74
|
+
});
|
|
75
|
+
const message = siwxMessage.toString();
|
|
76
|
+
const signature = await _appkitCoreReactNative.ConnectionsController.signMessage(address, message);
|
|
77
|
+
if (!signature) {
|
|
78
|
+
throw new Error('Error signing message');
|
|
79
|
+
}
|
|
80
|
+
await siwx.addSession({
|
|
81
|
+
data: siwxMessage,
|
|
82
|
+
message,
|
|
83
|
+
signature
|
|
84
|
+
});
|
|
85
|
+
_appkitCoreReactNative.ModalController.close();
|
|
86
|
+
_appkitCoreReactNative.EventsController.sendEvent({
|
|
87
|
+
type: 'track',
|
|
88
|
+
event: 'SIWX_AUTH_SUCCESS',
|
|
89
|
+
properties: this.getSIWXEventProperties()
|
|
90
|
+
});
|
|
91
|
+
} catch (error) {
|
|
92
|
+
if (!_appkitCoreReactNative.ModalController.state.open) {
|
|
93
|
+
await _appkitCoreReactNative.ModalController.open({
|
|
94
|
+
view: 'SIWXSignMessage'
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
_appkitCoreReactNative.SnackController.showError('Error signing message');
|
|
98
|
+
_appkitCoreReactNative.EventsController.sendEvent({
|
|
99
|
+
type: 'track',
|
|
100
|
+
event: 'SIWX_AUTH_ERROR',
|
|
101
|
+
properties: this.getSIWXEventProperties(error)
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
// eslint-disable-next-line no-console
|
|
105
|
+
console.error('SWIXUtil:requestSignMessage', error);
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
async cancelSignMessage(onDisconnect) {
|
|
109
|
+
try {
|
|
110
|
+
const siwx = this.getSIWX();
|
|
111
|
+
const isRequired = siwx?.getRequired?.();
|
|
112
|
+
if (isRequired) {
|
|
113
|
+
await onDisconnect();
|
|
114
|
+
} else {
|
|
115
|
+
_appkitCoreReactNative.ModalController.close();
|
|
116
|
+
}
|
|
117
|
+
_appkitCoreReactNative.EventsController.sendEvent({
|
|
118
|
+
event: 'CLICK_CANCEL_SIWX',
|
|
119
|
+
type: 'track',
|
|
120
|
+
properties: this.getSIWXEventProperties()
|
|
121
|
+
});
|
|
122
|
+
} catch (error) {
|
|
123
|
+
// eslint-disable-next-line no-console
|
|
124
|
+
console.error('SIWXUtil:cancelSignMessage', error);
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
async getAllSessions() {
|
|
128
|
+
const siwx = this.getSIWX();
|
|
129
|
+
const allRequestedCaipNetworks = _appkitCoreReactNative.ConnectionsController.state.networks;
|
|
130
|
+
const sessions = [];
|
|
131
|
+
await Promise.all(allRequestedCaipNetworks.map(async caipNetwork => {
|
|
132
|
+
const session = await siwx?.getSessions(caipNetwork.caipNetworkId, _appkitCoreReactNative.CoreHelperUtil.getPlainAddress(_appkitCoreReactNative.ConnectionsController.state.activeAddress) || '');
|
|
133
|
+
if (session) {
|
|
134
|
+
sessions.push(...session);
|
|
135
|
+
}
|
|
136
|
+
}));
|
|
137
|
+
return sessions;
|
|
138
|
+
},
|
|
139
|
+
async getSessions(args) {
|
|
140
|
+
const siwx = _appkitCoreReactNative.OptionsController.state.siwx;
|
|
141
|
+
let address = args?.address;
|
|
142
|
+
if (!address) {
|
|
143
|
+
const activeCaipAddress = _appkitCoreReactNative.ConnectionsController.state.activeAddress;
|
|
144
|
+
address = _appkitCoreReactNative.CoreHelperUtil.getPlainAddress(activeCaipAddress);
|
|
145
|
+
}
|
|
146
|
+
let network = args?.caipNetworkId;
|
|
147
|
+
if (!network) {
|
|
148
|
+
const activeCaipNetwork = _appkitCoreReactNative.ConnectionsController.state.activeNetwork;
|
|
149
|
+
network = activeCaipNetwork?.caipNetworkId;
|
|
150
|
+
}
|
|
151
|
+
if (!siwx || !address || !network) {
|
|
152
|
+
return [];
|
|
153
|
+
}
|
|
154
|
+
return siwx.getSessions(network, address);
|
|
155
|
+
},
|
|
156
|
+
async isSIWXCloseDisabled() {
|
|
157
|
+
const siwx = this.getSIWX();
|
|
158
|
+
if (siwx) {
|
|
159
|
+
const isSiwxSignMessage = _appkitCoreReactNative.RouterController.state.view === 'SIWXSignMessage';
|
|
160
|
+
if (isSiwxSignMessage) {
|
|
161
|
+
return siwx.getRequired?.() && (await this.getSessions()).length === 0;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return false;
|
|
165
|
+
},
|
|
166
|
+
async universalProviderAuthenticate({
|
|
167
|
+
universalProvider,
|
|
168
|
+
chains,
|
|
169
|
+
methods,
|
|
170
|
+
universalLink
|
|
171
|
+
}) {
|
|
172
|
+
const siwx = SIWXUtil.getSIWX();
|
|
173
|
+
const namespaces = new Set(chains.map(chain => chain.split(':')[0]));
|
|
174
|
+
if (!siwx || namespaces.size !== 1 || !namespaces.has('eip155')) {
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Ignores chainId and account address to get other message data
|
|
179
|
+
const siwxMessage = await siwx.createMessage({
|
|
180
|
+
chainId: _appkitCoreReactNative.OptionsController.state.defaultNetwork?.caipNetworkId || '',
|
|
181
|
+
accountAddress: ''
|
|
182
|
+
});
|
|
183
|
+
let messageChains = chains;
|
|
184
|
+
if (_appkitCoreReactNative.OptionsController.state.defaultNetwork?.caipNetworkId) {
|
|
185
|
+
// The first chainId is what is used for universal provider to build the message
|
|
186
|
+
messageChains = [_appkitCoreReactNative.OptionsController.state.defaultNetwork?.caipNetworkId, ...chains.filter(chain => chain !== _appkitCoreReactNative.OptionsController.state.defaultNetwork?.caipNetworkId)];
|
|
187
|
+
}
|
|
188
|
+
const result = await universalProvider.authenticate({
|
|
189
|
+
nonce: siwxMessage.nonce,
|
|
190
|
+
domain: siwxMessage.domain,
|
|
191
|
+
uri: siwxMessage.uri,
|
|
192
|
+
exp: siwxMessage.expirationTime,
|
|
193
|
+
iat: siwxMessage.issuedAt,
|
|
194
|
+
nbf: siwxMessage.notBefore,
|
|
195
|
+
requestId: siwxMessage.requestId,
|
|
196
|
+
version: siwxMessage.version,
|
|
197
|
+
resources: siwxMessage.resources,
|
|
198
|
+
statement: siwxMessage.statement,
|
|
199
|
+
chainId: siwxMessage.chainId,
|
|
200
|
+
methods,
|
|
201
|
+
chains: messageChains
|
|
202
|
+
}, universalLink);
|
|
203
|
+
_appkitCoreReactNative.SnackController.showLoading('Authenticating...');
|
|
204
|
+
if (result?.auths?.length) {
|
|
205
|
+
const sessions = result.auths.map(cacao => {
|
|
206
|
+
const message = universalProvider.client.formatAuthMessage({
|
|
207
|
+
request: cacao.p,
|
|
208
|
+
iss: cacao.p.iss
|
|
209
|
+
});
|
|
210
|
+
return {
|
|
211
|
+
data: {
|
|
212
|
+
...cacao.p,
|
|
213
|
+
accountAddress: cacao.p.iss.split(':').slice(-1).join(''),
|
|
214
|
+
chainId: cacao.p.iss.split(':').slice(2, 4).join(':'),
|
|
215
|
+
uri: cacao.p.aud,
|
|
216
|
+
version: cacao.p.version || siwxMessage.version,
|
|
217
|
+
expirationTime: cacao.p.exp,
|
|
218
|
+
issuedAt: cacao.p.iat,
|
|
219
|
+
notBefore: cacao.p.nbf
|
|
220
|
+
},
|
|
221
|
+
message,
|
|
222
|
+
signature: cacao.s.s,
|
|
223
|
+
cacao
|
|
224
|
+
};
|
|
225
|
+
});
|
|
226
|
+
try {
|
|
227
|
+
await siwx.setSessions(sessions);
|
|
228
|
+
_appkitCoreReactNative.EventsController.sendEvent({
|
|
229
|
+
type: 'track',
|
|
230
|
+
event: 'SIWX_AUTH_SUCCESS',
|
|
231
|
+
properties: SIWXUtil.getSIWXEventProperties()
|
|
232
|
+
});
|
|
233
|
+
} catch (error) {
|
|
234
|
+
// eslint-disable-next-line no-console
|
|
235
|
+
console.error('SIWX:universalProviderAuth - failed to set sessions', error);
|
|
236
|
+
_appkitCoreReactNative.EventsController.sendEvent({
|
|
237
|
+
type: 'track',
|
|
238
|
+
event: 'SIWX_AUTH_ERROR',
|
|
239
|
+
properties: SIWXUtil.getSIWXEventProperties(error)
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
// eslint-disable-next-line no-console
|
|
243
|
+
await universalProvider.disconnect().catch(console.error);
|
|
244
|
+
throw error;
|
|
245
|
+
} finally {
|
|
246
|
+
_appkitCoreReactNative.SnackController.hide();
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return result?.session;
|
|
250
|
+
},
|
|
251
|
+
getSIWXEventProperties(error) {
|
|
252
|
+
const namespace = _appkitCoreReactNative.ConnectionsController.state.activeNamespace;
|
|
253
|
+
if (!namespace) {
|
|
254
|
+
throw new Error('SIWXUtil:getSIWXEventProperties - namespace is required');
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
network: _appkitCoreReactNative.ConnectionsController.state.activeNetwork?.caipNetworkId || '',
|
|
258
|
+
isSmartAccount: _appkitCoreReactNative.ConnectionsController.state.accountType === 'smartAccount',
|
|
259
|
+
message: error ? _appkitCoreReactNative.CoreHelperUtil.parseError(error) : undefined
|
|
260
|
+
};
|
|
261
|
+
},
|
|
262
|
+
async clearSessions() {
|
|
263
|
+
const siwx = this.getSIWX();
|
|
264
|
+
if (siwx) {
|
|
265
|
+
await siwx.setSessions([]);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
//# sourceMappingURL=SIWXUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_appkitCoreReactNative","require","SIWXUtil","exports","getSIWX","OptionsController","state","siwx","initializeIfEnabled","onDisconnect","caipAddress","ConnectionsController","activeAddress","namespace","chainId","address","split","isSupportedNetwork","getAvailableNetworks","find","network","caipNetworkId","sessions","getSessions","length","ModalController","close","open","RouterController","push","view","error","console","EventsController","sendEvent","type","event","properties","getSIWXEventProperties","SnackController","showError","requestSignMessage","plainAddress","CoreHelperUtil","getPlainAddress","activeNetwork","Error","siwxMessage","createMessage","accountAddress","message","toString","signature","signMessage","addSession","data","cancelSignMessage","isRequired","getRequired","getAllSessions","allRequestedCaipNetworks","networks","Promise","all","map","caipNetwork","session","args","activeCaipAddress","activeCaipNetwork","isSIWXCloseDisabled","isSiwxSignMessage","universalProviderAuthenticate","universalProvider","chains","methods","universalLink","namespaces","Set","chain","size","has","undefined","defaultNetwork","messageChains","filter","result","authenticate","nonce","domain","uri","exp","expirationTime","iat","issuedAt","nbf","notBefore","requestId","version","resources","statement","showLoading","auths","cacao","client","formatAuthMessage","request","p","iss","slice","join","aud","s","setSessions","disconnect","catch","hide","activeNamespace","isSmartAccount","accountType","parseError","clearSessions"],"sourceRoot":"../../../src","sources":["utils/SIWXUtil.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.SIWXSignMessageView = SIWXSignMessageView;
|
|
7
7
|
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
8
9
|
var _valtio = require("valtio");
|
|
9
10
|
var _appkitUiReactNative = require("@reown/appkit-ui-react-native");
|
|
10
11
|
var _appkitCoreReactNative = require("@reown/appkit-core-react-native");
|
|
11
|
-
var _appkitSiweReactNative = require("@reown/appkit-siwe-react-native");
|
|
12
12
|
var _AppKitContext = require("../../AppKitContext");
|
|
13
|
+
var _SIWXUtil = require("../../utils/SIWXUtil");
|
|
13
14
|
var _styles = _interopRequireDefault(require("./styles"));
|
|
14
|
-
var _reactNative = require("react-native");
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
-
function
|
|
17
|
+
function SIWXSignMessageView() {
|
|
18
18
|
const {
|
|
19
19
|
disconnect
|
|
20
20
|
} = (0, _AppKitContext.useInternalAppKit)();
|
|
@@ -34,41 +34,12 @@ function ConnectingSiweView() {
|
|
|
34
34
|
const dappName = metadata?.name || 'Dapp';
|
|
35
35
|
const dappIcon = metadata?.icons[0] || '';
|
|
36
36
|
const walletIcon = walletInfo?.icon;
|
|
37
|
-
const isSmartAccount = _appkitCoreReactNative.ConnectionsController.state.accountType === 'smartAccount';
|
|
38
|
-
const network = _appkitCoreReactNative.ConnectionsController.state.activeNetwork?.caipNetworkId || '';
|
|
39
37
|
const onSign = async () => {
|
|
40
38
|
setIsSigning(true);
|
|
41
|
-
_appkitCoreReactNative.EventsController.sendEvent({
|
|
42
|
-
event: 'CLICK_SIGN_SIWE_MESSAGE',
|
|
43
|
-
type: 'track',
|
|
44
|
-
properties: {
|
|
45
|
-
network,
|
|
46
|
-
isSmartAccount
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
39
|
try {
|
|
50
|
-
|
|
51
|
-
_appkitCoreReactNative.EventsController.sendEvent({
|
|
52
|
-
event: 'SIWE_AUTH_SUCCESS',
|
|
53
|
-
type: 'track',
|
|
54
|
-
properties: {
|
|
55
|
-
network,
|
|
56
|
-
isSmartAccount
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
_appkitCoreReactNative.ModalController.close();
|
|
60
|
-
return session;
|
|
40
|
+
await _SIWXUtil.SIWXUtil.requestSignMessage();
|
|
61
41
|
} catch (error) {
|
|
62
42
|
_appkitCoreReactNative.SnackController.showError('Signature declined');
|
|
63
|
-
_appkitSiweReactNative.SIWEController.setStatus('error');
|
|
64
|
-
return _appkitCoreReactNative.EventsController.sendEvent({
|
|
65
|
-
event: 'SIWE_AUTH_ERROR',
|
|
66
|
-
type: 'track',
|
|
67
|
-
properties: {
|
|
68
|
-
network,
|
|
69
|
-
isSmartAccount
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
43
|
} finally {
|
|
73
44
|
setIsSigning(false);
|
|
74
45
|
}
|
|
@@ -76,19 +47,11 @@ function ConnectingSiweView() {
|
|
|
76
47
|
const onCancel = async () => {
|
|
77
48
|
if (_appkitCoreReactNative.ConnectionsController.state.activeAddress) {
|
|
78
49
|
setIsDisconnecting(true);
|
|
79
|
-
await disconnect
|
|
50
|
+
await _SIWXUtil.SIWXUtil.cancelSignMessage(disconnect);
|
|
80
51
|
setIsDisconnecting(false);
|
|
81
52
|
} else {
|
|
82
53
|
_appkitCoreReactNative.RouterController.push('Connect');
|
|
83
54
|
}
|
|
84
|
-
_appkitCoreReactNative.EventsController.sendEvent({
|
|
85
|
-
event: 'CLICK_CANCEL_SIWE',
|
|
86
|
-
type: 'track',
|
|
87
|
-
properties: {
|
|
88
|
-
network,
|
|
89
|
-
isSmartAccount
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
55
|
};
|
|
93
56
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
|
|
94
57
|
bounces: false,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_valtio","_appkitUiReactNative","_appkitCoreReactNative","_AppKitContext","_SIWXUtil","_styles","_interopRequireDefault","_jsxRuntime","e","__esModule","default","SIWXSignMessageView","disconnect","useInternalAppKit","padding","useCustomDimensions","metadata","useSnapshot","OptionsController","state","activeAddress","identity","walletInfo","ConnectionsController","isSigning","setIsSigning","useState","isDisconnecting","setIsDisconnecting","dappName","name","dappIcon","icons","walletIcon","icon","onSign","SIWXUtil","requestSignMessage","error","SnackController","showError","onCancel","cancelSignMessage","RouterController","push","jsx","ScrollView","bounces","fadingEdgeLength","style","paddingHorizontal","children","jsxs","FlexView","DoubleImageLoader","styles","logoContainer","leftImage","rightImage","renderRightPlaceholder","Avatar","imageSrc","avatar","address","size","borderWidth","rightItemStyle","walletAvatar","Text","center","variant","color","title","subtitle","flexDirection","justifyContent","margin","Button","onPress","button","loading","disabled"],"sourceRoot":"../../../../src","sources":["views/w3m-siwx-sign-view/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_appkitUiReactNative","require","_reactNative","_default","exports","default","StyleSheet","create","logoContainer","marginTop","Spacing","xl","marginBottom","m","button","width","title","marginHorizontal","subtitle","marginVertical","l","walletAvatar","borderRadius","BorderRadius","full"],"sourceRoot":"../../../../src","sources":["views/w3m-siwx-sign-view/styles.ts"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAA0C,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE3BC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,aAAa,EAAE;IACbC,SAAS,EAAEC,4BAAO,CAACC,EAAE;IACrBC,YAAY,EAAEF,4BAAO,CAACG;EACxB,CAAC;EACDC,MAAM,EAAE;IACNC,KAAK,EAAE;EACT,CAAC;EACDC,KAAK,EAAE;IACLC,gBAAgB,EAAE;EACpB,CAAC;EACDC,QAAQ,EAAE;IACRD,gBAAgB,EAAE,KAAK;IACvBE,cAAc,EAAET,4BAAO,CAACU;EAC1B,CAAC;EACDC,YAAY,EAAE;IACZC,YAAY,EAAEC,iCAAY,CAACC;EAC7B;AACF,CAAC,CAAC","ignoreList":[]}
|
package/lib/module/AppKit.js
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
import { subscribeKey } from 'valtio/utils';
|
|
4
4
|
import { EventsController, ModalController, ConnectionsController, OptionsController, RouterController, TransactionsController, StorageUtil, ThemeController, WcController, SwapController, OnRampController, CoreHelperUtil, SendController, BlockchainApiController, WalletUtil } from '@reown/appkit-core-react-native';
|
|
5
5
|
import { ConstantsUtil } from '@reown/appkit-common-react-native';
|
|
6
|
-
import { SIWEController } from '@reown/appkit-siwe-react-native';
|
|
7
6
|
import { WalletConnectConnector } from './connectors/WalletConnectConnector';
|
|
8
7
|
import { WcHelpersUtil } from './utils/HelpersUtil';
|
|
9
8
|
import { NetworkUtil } from './utils/NetworkUtil';
|
|
10
9
|
import { RouterUtil } from './utils/RouterUtil';
|
|
10
|
+
import { SIWXUtil } from './utils/SIWXUtil';
|
|
11
11
|
export class AppKit {
|
|
12
12
|
constructor(config) {
|
|
13
13
|
this.projectId = config.projectId;
|
|
@@ -66,8 +66,7 @@ export class AppKit {
|
|
|
66
66
|
const approvedNamespaces = await connector.connect({
|
|
67
67
|
namespaces: this.namespaces,
|
|
68
68
|
defaultNetwork: chain,
|
|
69
|
-
universalLink: targetWallet?.link_mode ?? undefined
|
|
70
|
-
siweConfig: this.config?.siweConfig
|
|
69
|
+
universalLink: targetWallet?.link_mode ?? undefined
|
|
71
70
|
});
|
|
72
71
|
this.processConnection(connector, approvedNamespaces);
|
|
73
72
|
|
|
@@ -83,7 +82,7 @@ export class AppKit {
|
|
|
83
82
|
throw error;
|
|
84
83
|
}
|
|
85
84
|
}
|
|
86
|
-
async processConnection(connector, namespaces
|
|
85
|
+
async processConnection(connector, namespaces) {
|
|
87
86
|
if (!namespaces || Object.keys(namespaces).length === 0) {
|
|
88
87
|
throw new Error('No namespaces provided');
|
|
89
88
|
}
|
|
@@ -100,18 +99,7 @@ export class AppKit {
|
|
|
100
99
|
|
|
101
100
|
// Sync accounts
|
|
102
101
|
await this.syncAccounts(initializedAdapters);
|
|
103
|
-
|
|
104
|
-
// Handle SIWE if enabled
|
|
105
|
-
this.handleSiweConnectionIfEnabled(shouldCloseModal);
|
|
106
|
-
}
|
|
107
|
-
handleSiweConnectionIfEnabled(shouldCloseModal = true) {
|
|
108
|
-
if (OptionsController.state.isSiweEnabled && ConnectionsController.state.activeNamespace === 'eip155') {
|
|
109
|
-
this.handleSiweChange({
|
|
110
|
-
isConnection: true
|
|
111
|
-
});
|
|
112
|
-
} else if (shouldCloseModal) {
|
|
113
|
-
ModalController.close();
|
|
114
|
-
}
|
|
102
|
+
await SIWXUtil.initializeIfEnabled(this.disconnect);
|
|
115
103
|
}
|
|
116
104
|
|
|
117
105
|
/**
|
|
@@ -141,8 +129,8 @@ export class AppKit {
|
|
|
141
129
|
if (ConnectionsController.state.activeNamespace === undefined) {
|
|
142
130
|
ConnectionsController.setActiveNamespace(OptionsController.state.defaultNetwork?.chainNamespace);
|
|
143
131
|
}
|
|
144
|
-
if (
|
|
145
|
-
await
|
|
132
|
+
if (SIWXUtil.getSIWX()?.signOutOnDisconnect) {
|
|
133
|
+
await SIWXUtil.clearSessions();
|
|
146
134
|
}
|
|
147
135
|
EventsController.sendEvent({
|
|
148
136
|
type: 'track',
|
|
@@ -196,9 +184,10 @@ export class AppKit {
|
|
|
196
184
|
}
|
|
197
185
|
async close() {
|
|
198
186
|
ModalController.close();
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
187
|
+
const isSIWXRequired = SIWXUtil.getSIWX()?.getRequired?.();
|
|
188
|
+
if (isSIWXRequired && ConnectionsController.state.isConnected) {
|
|
189
|
+
const sessions = await SIWXUtil.getSessions();
|
|
190
|
+
if (!sessions.length) {
|
|
202
191
|
return await this.disconnect();
|
|
203
192
|
}
|
|
204
193
|
}
|
|
@@ -213,6 +202,11 @@ export class AppKit {
|
|
|
213
202
|
RouterUtil.checkBack();
|
|
214
203
|
return RouterController.goBack();
|
|
215
204
|
}
|
|
205
|
+
const isSIWXRequired = SIWXUtil.getSIWX()?.getRequired?.();
|
|
206
|
+
if (isSIWXRequired) {
|
|
207
|
+
// Don't close the modal if SIWX is required
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
216
210
|
return this.close();
|
|
217
211
|
}
|
|
218
212
|
async switchAccountType(namespace, type, network) {
|
|
@@ -272,22 +266,25 @@ export class AppKit {
|
|
|
272
266
|
* This attempts to restore previous sessions.
|
|
273
267
|
*/
|
|
274
268
|
async initConnectors() {
|
|
269
|
+
ModalController.setLoading(true);
|
|
275
270
|
const connectedConnectors = await StorageUtil.getConnectedConnectors();
|
|
276
271
|
if (connectedConnectors.length > 0) {
|
|
277
|
-
ModalController.setLoading(true);
|
|
278
272
|
for (const connected of connectedConnectors) {
|
|
279
273
|
try {
|
|
280
274
|
const connector = await this.createConnector(connected.type);
|
|
281
275
|
const namespaces = connector.getNamespaces();
|
|
282
|
-
await this.processConnection(connector, namespaces
|
|
276
|
+
await this.processConnection(connector, namespaces);
|
|
283
277
|
} catch (error) {
|
|
284
278
|
// Use console.warn for non-critical initialization failures
|
|
285
279
|
console.warn(`Failed to initialize connector type ${connected.type}:`, error);
|
|
286
280
|
await StorageUtil.removeConnectedConnectors(connected.type);
|
|
287
281
|
}
|
|
288
282
|
}
|
|
289
|
-
ModalController.setLoading(false);
|
|
290
283
|
}
|
|
284
|
+
|
|
285
|
+
//Always init the walletconnect connector
|
|
286
|
+
await this.createWalletConnectConnector();
|
|
287
|
+
ModalController.setLoading(false);
|
|
291
288
|
}
|
|
292
289
|
setupAdaptersAndSubscribe(connector, namespaces) {
|
|
293
290
|
const adapters = this.adapters.filter(adapter => namespaces.includes(adapter.getSupportedNamespace()));
|
|
@@ -439,12 +436,7 @@ export class AppKit {
|
|
|
439
436
|
accounts
|
|
440
437
|
}) => {
|
|
441
438
|
const namespace = adapter.getSupportedNamespace();
|
|
442
|
-
|
|
443
|
-
if (hasChanged && namespace === 'eip155') {
|
|
444
|
-
this.handleSiweChange({
|
|
445
|
-
isAccountChange: true
|
|
446
|
-
});
|
|
447
|
-
}
|
|
439
|
+
ConnectionsController.updateAccounts(namespace, accounts);
|
|
448
440
|
});
|
|
449
441
|
adapter.on('chainChanged', async ({
|
|
450
442
|
chainId
|
|
@@ -470,13 +462,7 @@ export class AppKit {
|
|
|
470
462
|
if (address) {
|
|
471
463
|
TransactionsController.fetchTransactions(address, true);
|
|
472
464
|
}
|
|
473
|
-
|
|
474
|
-
// Check if user needs to sign in again
|
|
475
|
-
if (namespace === 'eip155') {
|
|
476
|
-
this.handleSiweChange({
|
|
477
|
-
isNetworkChange: true
|
|
478
|
-
});
|
|
479
|
-
}
|
|
465
|
+
SIWXUtil.initializeIfEnabled(this.disconnect, address);
|
|
480
466
|
});
|
|
481
467
|
adapter.on('disconnect', () => {
|
|
482
468
|
const namespace = adapter.getSupportedNamespace();
|
|
@@ -513,9 +499,8 @@ export class AppKit {
|
|
|
513
499
|
OptionsController.setClipboardClient(options.clipboardClient);
|
|
514
500
|
}
|
|
515
501
|
ConnectionsController.setNetworks(this.networks);
|
|
516
|
-
if (options.
|
|
517
|
-
|
|
518
|
-
OptionsController.setIsSiweEnabled(options.siweConfig.options.enabled);
|
|
502
|
+
if (options.siwx) {
|
|
503
|
+
OptionsController.setSiwx(options.siwx);
|
|
519
504
|
}
|
|
520
505
|
if ((options.features?.onramp === true || options.features?.onramp === undefined) && (options.metadata?.redirect?.universal || options.metadata?.redirect?.native)) {
|
|
521
506
|
OptionsController.setIsOnRampEnabled(true);
|
|
@@ -594,43 +579,6 @@ export class AppKit {
|
|
|
594
579
|
});
|
|
595
580
|
}
|
|
596
581
|
};
|
|
597
|
-
async handleSiweChange(params) {
|
|
598
|
-
const {
|
|
599
|
-
isNetworkChange,
|
|
600
|
-
isAccountChange,
|
|
601
|
-
isConnection
|
|
602
|
-
} = params ?? {};
|
|
603
|
-
const {
|
|
604
|
-
enabled,
|
|
605
|
-
signOutOnAccountChange,
|
|
606
|
-
signOutOnNetworkChange
|
|
607
|
-
} = SIWEController.state._client?.options ?? {};
|
|
608
|
-
if (!enabled || RouterController.state.view === 'ConnectingSiwe') {
|
|
609
|
-
// Do nothing if view is connecting siwe or siwe is not enabled
|
|
610
|
-
return;
|
|
611
|
-
}
|
|
612
|
-
const session = await SIWEController.getSession();
|
|
613
|
-
if (session && isAccountChange) {
|
|
614
|
-
if (signOutOnAccountChange) {
|
|
615
|
-
// If the address has changed and signOnAccountChange is enabled, sign out
|
|
616
|
-
await SIWEController.signOut();
|
|
617
|
-
return this.navigate('ConnectingSiwe');
|
|
618
|
-
}
|
|
619
|
-
} else if (session && isNetworkChange) {
|
|
620
|
-
if (signOutOnNetworkChange) {
|
|
621
|
-
// If the network has changed and signOnNetworkChange is enabled, sign out
|
|
622
|
-
await SIWEController.signOut();
|
|
623
|
-
return this.navigate('ConnectingSiwe');
|
|
624
|
-
}
|
|
625
|
-
} else if (!session) {
|
|
626
|
-
// If it's connected but there's no session, show sign view
|
|
627
|
-
|
|
628
|
-
return this.navigate('ConnectingSiwe');
|
|
629
|
-
} else if (isConnection) {
|
|
630
|
-
// Already connected with 1CA
|
|
631
|
-
ModalController.close();
|
|
632
|
-
}
|
|
633
|
-
}
|
|
634
582
|
}
|
|
635
583
|
export function createAppKit(config) {
|
|
636
584
|
return new AppKit(config);
|