@kheopskit/core 4.0.0 → 5.0.1
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/dist/{chunk-SIUWQBT4.js → chunk-4ENHC7G4.js} +11 -2
- package/dist/chunk-4ENHC7G4.js.map +1 -0
- package/dist/{chunk-KWFQDD7E.mjs → chunk-6XAZANB5.mjs} +58 -186
- package/dist/chunk-6XAZANB5.mjs.map +1 -0
- package/dist/{chunk-PNPPI5CH.mjs → chunk-7QSGAJ4A.mjs} +11 -2
- package/dist/chunk-7QSGAJ4A.mjs.map +1 -0
- package/dist/{chunk-TMAPQWW2.js → chunk-B4L6GAYD.js} +24 -9
- package/dist/chunk-B4L6GAYD.js.map +1 -0
- package/dist/chunk-XQWJM3KC.js +450 -0
- package/dist/chunk-XQWJM3KC.js.map +1 -0
- package/dist/{chunk-4RBYRNY3.mjs → chunk-YDLCHYHH.mjs} +22 -7
- package/dist/chunk-YDLCHYHH.mjs.map +1 -0
- package/dist/ethereum.d.mts +4 -3
- package/dist/ethereum.d.ts +4 -3
- package/dist/ethereum.js +61 -42
- package/dist/ethereum.js.map +1 -1
- package/dist/ethereum.mjs +53 -34
- package/dist/ethereum.mjs.map +1 -1
- package/dist/index.d.mts +20 -6
- package/dist/index.d.ts +20 -6
- package/dist/index.js +253 -47
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +271 -65
- package/dist/index.mjs.map +1 -1
- package/dist/internal.d.mts +4 -4
- package/dist/internal.d.ts +4 -4
- package/dist/internal.js +3 -3
- package/dist/internal.mjs +2 -2
- package/dist/polkadot.d.mts +4 -3
- package/dist/polkadot.d.ts +4 -3
- package/dist/polkadot.js +26 -37
- package/dist/polkadot.js.map +1 -1
- package/dist/polkadot.mjs +13 -24
- package/dist/polkadot.mjs.map +1 -1
- package/dist/solana.d.mts +5 -4
- package/dist/solana.d.ts +5 -4
- package/dist/solana.js +37 -42
- package/dist/solana.js.map +1 -1
- package/dist/solana.mjs +26 -31
- package/dist/solana.mjs.map +1 -1
- package/dist/{types-BNzRUNw-.d.mts → types-C7V7DGlg.d.mts} +47 -17
- package/dist/{types-BNzRUNw-.d.ts → types-C7V7DGlg.d.ts} +47 -17
- package/package.json +42 -16
- package/dist/chunk-4RBYRNY3.mjs.map +0 -1
- package/dist/chunk-FIAL4HTE.js +0 -1
- package/dist/chunk-FIAL4HTE.js.map +0 -1
- package/dist/chunk-KWFQDD7E.mjs.map +0 -1
- package/dist/chunk-NU46D4MZ.js +0 -578
- package/dist/chunk-NU46D4MZ.js.map +0 -1
- package/dist/chunk-PNPPI5CH.mjs.map +0 -1
- package/dist/chunk-SIUWQBT4.js.map +0 -1
- package/dist/chunk-TMAPQWW2.js.map +0 -1
- package/dist/chunk-YFD3IKK5.mjs +0 -1
- package/dist/chunk-YFD3IKK5.mjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkB4L6GAYDjs = require('./chunk-B4L6GAYD.js');
|
|
12
12
|
require('./chunk-D3EQMFZ2.js');
|
|
13
13
|
|
|
14
14
|
|
|
@@ -20,14 +20,20 @@ require('./chunk-D3EQMFZ2.js');
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
var
|
|
23
|
+
var _chunkXQWJM3KCjs = require('./chunk-XQWJM3KC.js');
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
var _chunkSIUWQBT4js = require('./chunk-SIUWQBT4.js');
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
var _chunk4ENHC7G4js = require('./chunk-4ENHC7G4.js');
|
|
34
|
+
|
|
35
|
+
// src/api/appKit.ts
|
|
36
|
+
|
|
31
37
|
|
|
32
38
|
|
|
33
39
|
|
|
@@ -38,6 +44,177 @@ var _chunkSIUWQBT4js = require('./chunk-SIUWQBT4.js');
|
|
|
38
44
|
|
|
39
45
|
|
|
40
46
|
var _rxjs = require('rxjs');
|
|
47
|
+
var loadAppKit = async () => {
|
|
48
|
+
try {
|
|
49
|
+
const { createAppKit } = await Promise.resolve().then(() => _interopRequireWildcard(require("@reown/appkit/core")));
|
|
50
|
+
return createAppKit;
|
|
51
|
+
} catch (cause) {
|
|
52
|
+
console.error(
|
|
53
|
+
"[kheopskit] WalletConnect is configured but @reown/appkit could not be loaded. Install it with `pnpm add @reown/appkit` (or remove config.walletConnect). WalletConnect wallets are disabled; injected wallets still work.",
|
|
54
|
+
cause
|
|
55
|
+
);
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
var WALLET_CONNECT_ICON = "data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjQwMCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHdpZHRoPSI0MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZD0ibTAgMGg0MDB2NDAwaC00MDB6Ii8+PC9jbGlwUGF0aD48ZyBjbGlwLXBhdGg9InVybCgjYSkiPjxjaXJjbGUgY3g9IjIwMCIgY3k9IjIwMCIgZmlsbD0iIzMzOTZmZiIgcj0iMTk5LjUiIHN0cm9rZT0iIzY2YjFmZiIvPjxwYXRoIGQ9Im0xMjIuNTE5IDE0OC45NjVjNDIuNzkxLTQxLjcyOSAxMTIuMTcxLTQxLjcyOSAxNTQuOTYyIDBsNS4xNSA1LjAyMmMyLjE0IDIuMDg2IDIuMTQgNS40NjkgMCA3LjU1NWwtMTcuNjE3IDE3LjE4Yy0xLjA3IDEuMDQzLTIuODA0IDEuMDQzLTMuODc0IDBsLTcuMDg3LTYuOTExYy0yOS44NTMtMjkuMTExLTc4LjI1My0yOS4xMTEtMTA4LjEwNiAwbC03LjU5IDcuNDAxYy0xLjA3IDEuMDQzLTIuODA0IDEuMDQzLTMuODc0IDBsLTE3LjYxNy0xNy4xOGMtMi4xNC0yLjA4Ni0yLjE0LTUuNDY5IDAtNy41NTV6bTE5MS4zOTcgMzUuNTI5IDE1LjY3OSAxNS4yOWMyLjE0IDIuMDg2IDIuMTQgNS40NjkgMCA3LjU1NWwtNzAuNyA2OC45NDRjLTIuMTM5IDIuMDg3LTUuNjA4IDIuMDg3LTcuNzQ4IDBsLTUwLjE3OC00OC45MzFjLS41MzUtLjUyMi0xLjQwMi0uNTIyLTEuOTM3IDBsLTUwLjE3OCA0OC45MzFjLTIuMTM5IDIuMDg3LTUuNjA4IDIuMDg3LTcuNzQ4IDBsLTcwLjcwMTUtNjguOTQ1Yy0yLjEzOTYtMi4wODYtMi4xMzk2LTUuNDY5IDAtNy41NTVsMTUuNjc5NS0xNS4yOWMyLjEzOTYtMi4wODYgNS42MDg1LTIuMDg2IDcuNzQ4MSAwbDUwLjE3ODkgNDguOTMyYy41MzUuNTIyIDEuNDAyLjUyMiAxLjkzNyAwbDUwLjE3Ny00OC45MzJjMi4xMzktMi4wODcgNS42MDgtMi4wODcgNy43NDggMGw1MC4xNzkgNDguOTMyYy41MzUuNTIyIDEuNDAyLjUyMiAxLjkzNyAwbDUwLjE3OS00OC45MzFjMi4xMzktMi4wODcgNS42MDgtMi4wODcgNy43NDggMHoiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+";
|
|
60
|
+
var APPKIT_SYMBOL = /* @__PURE__ */ Symbol.for("kheopskit.cachedAppKit");
|
|
61
|
+
var APPKIT_PROJECT_ID_SYMBOL = /* @__PURE__ */ Symbol.for("kheopskit.cachedAppKitProjectId");
|
|
62
|
+
var getCachedAppKit = () => globalThis[APPKIT_SYMBOL];
|
|
63
|
+
var getCachedAppKitProjectId = () => globalThis[APPKIT_PROJECT_ID_SYMBOL];
|
|
64
|
+
var setCachedAppKit = (value, projectId) => {
|
|
65
|
+
globalThis[APPKIT_SYMBOL] = value;
|
|
66
|
+
globalThis[APPKIT_PROJECT_ID_SYMBOL] = projectId;
|
|
67
|
+
};
|
|
68
|
+
var resetAppKitCache = () => {
|
|
69
|
+
setCachedAppKit(void 0);
|
|
70
|
+
};
|
|
71
|
+
var dropAccountsCache = (platform) => {
|
|
72
|
+
_chunk4ENHC7G4js.clearCachedObservablesByPrefix.call(void 0,
|
|
73
|
+
`accounts:${_chunk4ENHC7G4js.WALLET_CONNECT_WALLET_ID}:${platform}:`
|
|
74
|
+
);
|
|
75
|
+
};
|
|
76
|
+
var getWalletConnectWallet$ = (config) => {
|
|
77
|
+
if (!config.walletConnect) return _rxjs.of.call(void 0, null);
|
|
78
|
+
if (typeof window === "undefined") return _rxjs.of.call(void 0, null);
|
|
79
|
+
const walletConnect = config.walletConnect;
|
|
80
|
+
const cachedProjectId = getCachedAppKitProjectId();
|
|
81
|
+
if (cachedProjectId !== void 0 && cachedProjectId !== walletConnect.projectId) {
|
|
82
|
+
console.warn(
|
|
83
|
+
"[kheopskit] WalletConnect is already initialised with projectId %s; AppKit is a process-wide singleton, so the first configuration wins and projectId %s is ignored. Call resetAppKitCache() before re-initialising if the WalletConnect config must change.",
|
|
84
|
+
cachedProjectId,
|
|
85
|
+
walletConnect.projectId
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
let cachedAppKit = getCachedAppKit();
|
|
89
|
+
if (!cachedAppKit) {
|
|
90
|
+
cachedAppKit = _rxjs.from.call(void 0, loadAppKit()).pipe(
|
|
91
|
+
_rxjs.switchMap.call(void 0, (createAppKit) => {
|
|
92
|
+
if (!createAppKit) return _rxjs.of.call(void 0, null);
|
|
93
|
+
return new (0, _rxjs.Observable)((subscriber) => {
|
|
94
|
+
const appKit = createAppKit({
|
|
95
|
+
projectId: walletConnect.projectId,
|
|
96
|
+
metadata: walletConnect.metadata,
|
|
97
|
+
// Loosely typed in WalletConnectConfig to keep @reown/appkit's
|
|
98
|
+
// types out of core; forwarded to AppKit verbatim.
|
|
99
|
+
networks: walletConnect.networks,
|
|
100
|
+
themeMode: walletConnect.themeMode,
|
|
101
|
+
themeVariables: walletConnect.themeVariables,
|
|
102
|
+
universalProviderConfigOverride: {
|
|
103
|
+
methods: {
|
|
104
|
+
polkadot: ["polkadot_signTransaction", "polkadot_signMessage"],
|
|
105
|
+
solana: [
|
|
106
|
+
"solana_signTransaction",
|
|
107
|
+
"solana_signMessage",
|
|
108
|
+
"solana_signAndSendTransaction"
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
allWallets: "HIDE",
|
|
113
|
+
debug: config.debug,
|
|
114
|
+
allowUnsupportedChain: true
|
|
115
|
+
});
|
|
116
|
+
const appKitInstance = appKit;
|
|
117
|
+
const status$ = new (0, _rxjs.BehaviorSubject)({
|
|
118
|
+
isPolkadotConnected: false,
|
|
119
|
+
isEthereumConnected: false,
|
|
120
|
+
isSolanaConnected: false
|
|
121
|
+
});
|
|
122
|
+
const unsubProviders = appKit.subscribeProviders((providers) => {
|
|
123
|
+
status$.next({
|
|
124
|
+
isPolkadotConnected: !!providers.polkadot,
|
|
125
|
+
isEthereumConnected: !!providers.eip155,
|
|
126
|
+
isSolanaConnected: !!providers.solana
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
const namespaceOf = {
|
|
130
|
+
polkadot: "polkadot",
|
|
131
|
+
ethereum: "eip155",
|
|
132
|
+
solana: "solana"
|
|
133
|
+
};
|
|
134
|
+
const allPlatforms = [
|
|
135
|
+
"polkadot",
|
|
136
|
+
"ethereum",
|
|
137
|
+
"solana"
|
|
138
|
+
];
|
|
139
|
+
const enabledPlatforms = allPlatforms.filter(
|
|
140
|
+
(p) => appKit.chainNamespaces.includes(namespaceOf[p])
|
|
141
|
+
);
|
|
142
|
+
let prevConnected = {
|
|
143
|
+
polkadot: false,
|
|
144
|
+
ethereum: false,
|
|
145
|
+
solana: false
|
|
146
|
+
};
|
|
147
|
+
const sub = status$.pipe(
|
|
148
|
+
_rxjs.map.call(void 0, (s) => ({
|
|
149
|
+
polkadot: s.isPolkadotConnected,
|
|
150
|
+
ethereum: s.isEthereumConnected,
|
|
151
|
+
solana: s.isSolanaConnected
|
|
152
|
+
})),
|
|
153
|
+
_rxjs.distinctUntilChanged.call(void 0,
|
|
154
|
+
(a, b) => a.polkadot === b.polkadot && a.ethereum === b.ethereum && a.solana === b.solana
|
|
155
|
+
),
|
|
156
|
+
_rxjs.tap.call(void 0, (connected) => {
|
|
157
|
+
for (const platform of allPlatforms)
|
|
158
|
+
if (prevConnected[platform] && !connected[platform])
|
|
159
|
+
dropAccountsCache(platform);
|
|
160
|
+
prevConnected = connected;
|
|
161
|
+
}),
|
|
162
|
+
_rxjs.map.call(void 0, (connected) => {
|
|
163
|
+
const platforms = enabledPlatforms.filter((p) => connected[p]);
|
|
164
|
+
const isConnected = platforms.length > 0;
|
|
165
|
+
const walletInfo = appKit.getWalletInfo();
|
|
166
|
+
return {
|
|
167
|
+
id: _chunk4ENHC7G4js.WALLET_CONNECT_WALLET_ID,
|
|
168
|
+
type: "walletconnect",
|
|
169
|
+
platforms,
|
|
170
|
+
appKit: appKitInstance,
|
|
171
|
+
name: _nullishCoalesce(_optionalChain([walletInfo, 'optionalAccess', _ => _.name]), () => ( "WalletConnect")),
|
|
172
|
+
icon: _nullishCoalesce(_optionalChain([walletInfo, 'optionalAccess', _2 => _2.icon]), () => ( WALLET_CONNECT_ICON)),
|
|
173
|
+
// One shared session: connecting opens the modal; the wallet
|
|
174
|
+
// approves namespaces in that single pairing. Disconnect is
|
|
175
|
+
// session-wide; re-pair to change the approved set.
|
|
176
|
+
connect: async () => {
|
|
177
|
+
if (!isConnected) await appKit.open();
|
|
178
|
+
},
|
|
179
|
+
disconnect: async () => {
|
|
180
|
+
if (isConnected) await appKit.disconnect();
|
|
181
|
+
},
|
|
182
|
+
isConnected
|
|
183
|
+
};
|
|
184
|
+
})
|
|
185
|
+
).subscribe(subscriber);
|
|
186
|
+
return () => {
|
|
187
|
+
sub.unsubscribe();
|
|
188
|
+
unsubProviders();
|
|
189
|
+
};
|
|
190
|
+
});
|
|
191
|
+
}),
|
|
192
|
+
// refCount:false keeps the AppKit instance alive for the process lifetime
|
|
193
|
+
// once created: createAppKit runs at most once (Reown AppKit cannot be
|
|
194
|
+
// instantiated twice). With refCount:true the producer would re-run
|
|
195
|
+
// createAppKit whenever every subscriber drained and a new one
|
|
196
|
+
// re-subscribed — e.g. a React unmount/remount or StrictMode's
|
|
197
|
+
// mount→unmount→remount — throwing on the duplicate Lit web components and
|
|
198
|
+
// WalletConnect modal singleton. The replayed connector value also keeps
|
|
199
|
+
// the wallet list stable across such teardown/rebuild cycles.
|
|
200
|
+
_rxjs.shareReplay.call(void 0, { refCount: false, bufferSize: 1 })
|
|
201
|
+
);
|
|
202
|
+
setCachedAppKit(cachedAppKit, walletConnect.projectId);
|
|
203
|
+
}
|
|
204
|
+
return cachedAppKit;
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
// src/api/kheopskit.ts
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
41
218
|
|
|
42
219
|
// src/utils/createHydrationBuffer.ts
|
|
43
220
|
|
|
@@ -169,12 +346,16 @@ var getAccounts$ = (config, wallets) => {
|
|
|
169
346
|
const sources = config.platforms.map(
|
|
170
347
|
(plugin) => plugin.getAccounts$(
|
|
171
348
|
wallets.pipe(
|
|
172
|
-
_rxjs.map.call(void 0,
|
|
349
|
+
_rxjs.map.call(void 0,
|
|
350
|
+
(ws) => ws.filter(
|
|
351
|
+
(w) => _chunk4ENHC7G4js.isWalletConnectWallet.call(void 0, w) || w.platform === plugin.platform
|
|
352
|
+
)
|
|
353
|
+
)
|
|
173
354
|
)
|
|
174
355
|
)
|
|
175
356
|
);
|
|
176
357
|
const accounts$ = sources.length ? _rxjs.combineLatest.call(void 0, sources).pipe(
|
|
177
|
-
_rxjs.map.call(void 0, (accounts) => accounts.flat().sort(
|
|
358
|
+
_rxjs.map.call(void 0, (accounts) => accounts.flat().sort(_chunkB4L6GAYDjs.sortAccounts))
|
|
178
359
|
) : _rxjs.of.call(void 0, []);
|
|
179
360
|
const sub = accounts$.subscribe(subscriber);
|
|
180
361
|
return () => {
|
|
@@ -194,7 +375,7 @@ var getAccounts$ = (config, wallets) => {
|
|
|
194
375
|
|
|
195
376
|
|
|
196
377
|
|
|
197
|
-
var getWallets$ = (config, store2 =
|
|
378
|
+
var getWallets$ = (config, store2 = _chunkXQWJM3KCjs.store) => {
|
|
198
379
|
const autoReconnectWalletIds$ = store2.observable.pipe(
|
|
199
380
|
_rxjs.map.call(void 0, (s) => _nullishCoalesce(s.autoReconnect, () => ( []))),
|
|
200
381
|
_rxjs.take.call(void 0, 1),
|
|
@@ -205,26 +386,40 @@ var getWallets$ = (config, store2 = _chunkNU46D4MZjs.store) => {
|
|
|
205
386
|
const observables = config.platforms.map(
|
|
206
387
|
(plugin) => plugin.getWallets$(ctx)
|
|
207
388
|
);
|
|
208
|
-
const
|
|
209
|
-
|
|
389
|
+
const platformWallets$ = observables.length ? _rxjs.combineLatest.call(void 0, observables).pipe(_rxjs.map.call(void 0, (wallets) => wallets.flat())) : _rxjs.of.call(void 0, []);
|
|
390
|
+
const wallets$ = _rxjs.combineLatest.call(void 0, [
|
|
391
|
+
platformWallets$,
|
|
392
|
+
getWalletConnectWallet$(config)
|
|
393
|
+
]).pipe(
|
|
394
|
+
_rxjs.map.call(void 0, ([platformWallets, walletConnect]) => {
|
|
395
|
+
const all = walletConnect ? [...platformWallets, walletConnect] : platformWallets;
|
|
396
|
+
return all.sort(_chunkB4L6GAYDjs.sortWallets);
|
|
397
|
+
})
|
|
210
398
|
// Note: No startWith([]) here - the hydration buffer handles initial state
|
|
211
|
-
)
|
|
399
|
+
);
|
|
212
400
|
const reconnectingWallets = /* @__PURE__ */ new Set();
|
|
213
401
|
const reconnectedWallets = /* @__PURE__ */ new Set();
|
|
402
|
+
const MAX_RECONNECT_ATTEMPTS = 3;
|
|
403
|
+
const failedAttempts = /* @__PURE__ */ new Map();
|
|
214
404
|
const subAutoReconnect = _rxjs.combineLatest.call(void 0, [wallets$, autoReconnectWalletIds$]).pipe(
|
|
215
|
-
_rxjs.filter.call(void 0, ([, walletIds]) => config.autoReconnect && !!_optionalChain([walletIds, 'optionalAccess',
|
|
405
|
+
_rxjs.filter.call(void 0, ([, walletIds]) => config.autoReconnect && !!_optionalChain([walletIds, 'optionalAccess', _3 => _3.length])),
|
|
216
406
|
_rxjs.mergeMap.call(void 0,
|
|
217
|
-
([wallets, walletIds]) => wallets.filter((wallet) => _optionalChain([walletIds, 'optionalAccess',
|
|
407
|
+
([wallets, walletIds]) => wallets.filter((wallet) => _optionalChain([walletIds, 'optionalAccess', _4 => _4.includes, 'call', _5 => _5(wallet.id)]))
|
|
218
408
|
)
|
|
219
409
|
).subscribe(async (wallet) => {
|
|
220
|
-
if (wallet.isConnected || reconnectingWallets.has(wallet.id) || reconnectedWallets.has(wallet.id)) {
|
|
410
|
+
if (wallet.isConnected || reconnectingWallets.has(wallet.id) || reconnectedWallets.has(wallet.id) || (_nullishCoalesce(failedAttempts.get(wallet.id), () => ( 0))) >= MAX_RECONNECT_ATTEMPTS) {
|
|
221
411
|
return;
|
|
222
412
|
}
|
|
223
413
|
reconnectingWallets.add(wallet.id);
|
|
224
414
|
try {
|
|
225
415
|
await wallet.connect();
|
|
226
416
|
reconnectedWallets.add(wallet.id);
|
|
417
|
+
failedAttempts.delete(wallet.id);
|
|
227
418
|
} catch (err) {
|
|
419
|
+
failedAttempts.set(
|
|
420
|
+
wallet.id,
|
|
421
|
+
(_nullishCoalesce(failedAttempts.get(wallet.id), () => ( 0))) + 1
|
|
422
|
+
);
|
|
228
423
|
console.error("Failed to reconnect wallet %s", wallet.id, { err });
|
|
229
424
|
} finally {
|
|
230
425
|
reconnectingWallets.delete(wallet.id);
|
|
@@ -239,9 +434,10 @@ var getWallets$ = (config, store2 = _chunkNU46D4MZjs.store) => {
|
|
|
239
434
|
};
|
|
240
435
|
|
|
241
436
|
// src/api/kheopskit.ts
|
|
242
|
-
var getKheopskit$ = (config,
|
|
243
|
-
const
|
|
244
|
-
const
|
|
437
|
+
var getKheopskit$ = (config, options = {}) => {
|
|
438
|
+
const { ssrCookies, store: existingStore } = options;
|
|
439
|
+
const kc = _chunkXQWJM3KCjs.resolveConfig.call(void 0, config);
|
|
440
|
+
const store2 = _nullishCoalesce(existingStore, () => ( _chunkXQWJM3KCjs.createKheopskitStore.call(void 0, { ssrCookies, storageKey: kc.storageKey })));
|
|
245
441
|
if (kc.debug) console.debug("[kheopskit] config", kc);
|
|
246
442
|
if (kc.debug && typeof window === "undefined" && ssrCookies === void 0) {
|
|
247
443
|
console.warn(
|
|
@@ -250,16 +446,16 @@ var getKheopskit$ = (config, ssrCookies, existingStore) => {
|
|
|
250
446
|
}
|
|
251
447
|
const cachedState = store2.getCachedState();
|
|
252
448
|
const cachedWallets = cachedState.wallets.map((w) => {
|
|
253
|
-
const wallet =
|
|
449
|
+
const wallet = _chunkB4L6GAYDjs.hydrateWallet.call(void 0, w);
|
|
254
450
|
if (!wallet.icon) {
|
|
255
|
-
const cachedIcon =
|
|
451
|
+
const cachedIcon = _chunkB4L6GAYDjs.getCachedIcon.call(void 0, wallet.id);
|
|
256
452
|
if (cachedIcon) {
|
|
257
453
|
return { ...wallet, icon: cachedIcon };
|
|
258
454
|
}
|
|
259
455
|
}
|
|
260
456
|
return wallet;
|
|
261
457
|
});
|
|
262
|
-
const cachedAccounts = cachedState.accounts.filter((cached) =>
|
|
458
|
+
const cachedAccounts = cachedState.accounts.filter((cached) => _chunkB4L6GAYDjs.acceptsCachedAccount.call(void 0, cached, kc.platforms)).map(_chunkB4L6GAYDjs.hydrateAccount);
|
|
263
459
|
if (kc.debug && cachedWallets.length > 0) {
|
|
264
460
|
console.debug("[kheopskit] hydrating from cache:", {
|
|
265
461
|
wallets: cachedWallets.length,
|
|
@@ -288,7 +484,7 @@ var getKheopskit$ = (config, ssrCookies, existingStore) => {
|
|
|
288
484
|
(live, cached) => ({
|
|
289
485
|
...cached,
|
|
290
486
|
// Priority: cached icon > localStorage cache > live icon
|
|
291
|
-
icon: cached.icon ||
|
|
487
|
+
icon: cached.icon || _chunkB4L6GAYDjs.getCachedIcon.call(void 0, cached.id) || live.icon,
|
|
292
488
|
// Use live wallet's connect/disconnect functions
|
|
293
489
|
connect: live.connect,
|
|
294
490
|
disconnect: live.disconnect
|
|
@@ -296,7 +492,7 @@ var getKheopskit$ = (config, ssrCookies, existingStore) => {
|
|
|
296
492
|
// Transform cached-only items: add icon from localStorage cache
|
|
297
493
|
(cached) => ({
|
|
298
494
|
...cached,
|
|
299
|
-
icon: cached.icon ||
|
|
495
|
+
icon: cached.icon || _chunkB4L6GAYDjs.getCachedIcon.call(void 0, cached.id) || ""
|
|
300
496
|
})
|
|
301
497
|
);
|
|
302
498
|
const bufferedAccounts$ = createAccountHydrationBuffer(
|
|
@@ -333,8 +529,8 @@ var getKheopskit$ = (config, ssrCookies, existingStore) => {
|
|
|
333
529
|
}
|
|
334
530
|
return {
|
|
335
531
|
config: kc,
|
|
336
|
-
wallets: [...wallets.items].sort(
|
|
337
|
-
accounts: [...accounts.items].sort(
|
|
532
|
+
wallets: [...wallets.items].sort(_chunkB4L6GAYDjs.sortWallets),
|
|
533
|
+
accounts: [...accounts.items].sort(_chunkB4L6GAYDjs.sortAccounts),
|
|
338
534
|
isHydrating: wallets.isHydrating || accounts.isHydrating
|
|
339
535
|
};
|
|
340
536
|
})
|
|
@@ -349,13 +545,16 @@ var getKheopskit$ = (config, ssrCookies, existingStore) => {
|
|
|
349
545
|
),
|
|
350
546
|
// Debounce to avoid excessive writes
|
|
351
547
|
_rxjs.debounceTime.call(void 0, 1e3),
|
|
352
|
-
// Only persist if
|
|
548
|
+
// Only persist if the serialized snapshot would actually change.
|
|
549
|
+
// Compare the persisted fields (not just ids): an Ethereum chain switch
|
|
550
|
+
// keeps the same account id but changes the cached chainId, so an
|
|
551
|
+
// id-only comparator would skip persisting it.
|
|
353
552
|
_rxjs.distinctUntilChanged.call(void 0, (prev, curr) => {
|
|
354
|
-
const
|
|
355
|
-
const
|
|
356
|
-
const
|
|
357
|
-
const
|
|
358
|
-
return arraysEqual(
|
|
553
|
+
const prevWalletKeys = prev.wallets.items.map(walletPersistKey);
|
|
554
|
+
const currWalletKeys = curr.wallets.items.map(walletPersistKey);
|
|
555
|
+
const prevAccountKeys = prev.accounts.items.map(accountChangeKey);
|
|
556
|
+
const currAccountKeys = curr.accounts.items.map(accountChangeKey);
|
|
557
|
+
return arraysEqual(prevWalletKeys, currWalletKeys) && arraysEqual(prevAccountKeys, currAccountKeys);
|
|
359
558
|
})
|
|
360
559
|
).subscribe(({ wallets, accounts }) => {
|
|
361
560
|
const connectedWalletIds = new Set(
|
|
@@ -371,8 +570,8 @@ var getKheopskit$ = (config, ssrCookies, existingStore) => {
|
|
|
371
570
|
});
|
|
372
571
|
}
|
|
373
572
|
store2.setCachedState(
|
|
374
|
-
wallets.items.map(
|
|
375
|
-
relevantAccounts.map(
|
|
573
|
+
wallets.items.map(_chunkB4L6GAYDjs.serializeWallet),
|
|
574
|
+
relevantAccounts.map(_chunkB4L6GAYDjs.serializeAccount)
|
|
376
575
|
);
|
|
377
576
|
const icons = {};
|
|
378
577
|
for (const wallet of wallets.items) {
|
|
@@ -380,7 +579,7 @@ var getKheopskit$ = (config, ssrCookies, existingStore) => {
|
|
|
380
579
|
icons[wallet.id] = wallet.icon;
|
|
381
580
|
}
|
|
382
581
|
}
|
|
383
|
-
|
|
582
|
+
_chunkB4L6GAYDjs.setCachedIcons.call(void 0, icons);
|
|
384
583
|
});
|
|
385
584
|
return () => {
|
|
386
585
|
subscription.unsubscribe();
|
|
@@ -397,24 +596,27 @@ var getKheopskit$ = (config, ssrCookies, existingStore) => {
|
|
|
397
596
|
);
|
|
398
597
|
};
|
|
399
598
|
var arraysEqual = (a, b) => a.length === b.length && a.every((v, i) => v === b[i]);
|
|
400
|
-
var
|
|
401
|
-
|
|
402
|
-
) && a.accounts.every((acc, i) => {
|
|
403
|
-
const other = b.accounts[i];
|
|
404
|
-
if (acc.id !== _optionalChain([other, 'optionalAccess', _10 => _10.id])) return false;
|
|
405
|
-
switch (acc.platform) {
|
|
599
|
+
var accountChangeKey = (account) => {
|
|
600
|
+
switch (account.platform) {
|
|
406
601
|
case "ethereum":
|
|
407
|
-
return
|
|
602
|
+
return `${account.id}|${_nullishCoalesce(account.chainId, () => ( ""))}`;
|
|
408
603
|
case "polkadot":
|
|
409
|
-
return
|
|
604
|
+
return `${account.id}|${_nullishCoalesce(account.type, () => ( ""))}`;
|
|
410
605
|
case "solana":
|
|
411
|
-
return
|
|
412
|
-
_nullishCoalesce(acc.chains, () => ( [])),
|
|
413
|
-
_nullishCoalesce(other.chains, () => ( []))
|
|
414
|
-
);
|
|
606
|
+
return `${account.id}|${(_nullishCoalesce(account.chains, () => ( []))).join(",")}`;
|
|
415
607
|
default:
|
|
416
|
-
return
|
|
608
|
+
return account.id;
|
|
417
609
|
}
|
|
610
|
+
};
|
|
611
|
+
var walletPlatforms = (wallet) => _chunk4ENHC7G4js.isWalletConnectWallet.call(void 0, wallet) ? wallet.platforms.join(",") : "";
|
|
612
|
+
var walletPersistKey = (wallet) => `${wallet.id}|${wallet.isConnected ? 1 : 0}|${wallet.name}`;
|
|
613
|
+
var walletUiKey = (wallet) => `${walletPersistKey(wallet)}|${wallet.icon}|${walletPlatforms(wallet)}`;
|
|
614
|
+
var statesEqual = (a, b) => a.isHydrating === b.isHydrating && a.wallets.length === b.wallets.length && a.accounts.length === b.accounts.length && a.wallets.every((w, i) => {
|
|
615
|
+
const other = b.wallets[i];
|
|
616
|
+
return !!other && walletUiKey(w) === walletUiKey(other);
|
|
617
|
+
}) && a.accounts.every((acc, i) => {
|
|
618
|
+
const other = b.accounts[i];
|
|
619
|
+
return !!other && accountChangeKey(acc) === accountChangeKey(other);
|
|
418
620
|
});
|
|
419
621
|
|
|
420
622
|
|
|
@@ -429,5 +631,9 @@ var statesEqual = (a, b) => a.isHydrating === b.isHydrating && a.wallets.length
|
|
|
429
631
|
|
|
430
632
|
|
|
431
633
|
|
|
432
|
-
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
|
|
637
|
+
|
|
638
|
+
exports.DEFAULT_STORAGE_KEY = _chunkXQWJM3KCjs.DEFAULT_STORAGE_KEY; exports.KheopskitError = _chunkXQWJM3KCjs.KheopskitError; exports.clearAllCachedObservables = _chunk4ENHC7G4js.clearAllCachedObservables; exports.createKheopskitStore = _chunkXQWJM3KCjs.createKheopskitStore; exports.getDefaultStore = _chunkXQWJM3KCjs.getDefaultStore; exports.getKheopskit$ = getKheopskit$; exports.getWalletAccountId = _chunkXQWJM3KCjs.getWalletAccountId; exports.getWalletId = _chunk4ENHC7G4js.getWalletId; exports.isInjectedWallet = _chunk4ENHC7G4js.isInjectedWallet; exports.isValidAddress = _chunkXQWJM3KCjs.isValidAddress; exports.isValidWalletId = _chunk4ENHC7G4js.isValidWalletId; exports.isWalletConnectWallet = _chunk4ENHC7G4js.isWalletConnectWallet; exports.parseWalletAccountId = _chunkXQWJM3KCjs.parseWalletAccountId; exports.parseWalletId = _chunk4ENHC7G4js.parseWalletId; exports.resetAppKitCache = resetAppKitCache; exports.resolveConfig = _chunkXQWJM3KCjs.resolveConfig;
|
|
433
639
|
//# sourceMappingURL=index.js.map
|