@xyo-network/react-chain-provider 1.23.0 → 2.0.0
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/browser/index.mjs +226 -250
- package/dist/browser/index.mjs.map +7 -1
- package/package.json +91 -91
package/dist/browser/index.mjs
CHANGED
|
@@ -1,44 +1,55 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/components/connected/account/Connected.tsx
|
|
5
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
Stack,
|
|
4
|
+
Tooltip,
|
|
5
|
+
Typography
|
|
6
|
+
} from "@mui/material";
|
|
6
7
|
import { EthAddressWrapper } from "@xylabs/sdk-js";
|
|
7
8
|
import { BlockiesAvatarAddress } from "@xyo-network/xl1-blockies";
|
|
8
|
-
import
|
|
9
|
-
var ConnectedAccount =
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
var ConnectedAccount = ({ address }) => {
|
|
10
11
|
const shortenedAddress = `${EthAddressWrapper.fromString(address)?.toShortString(4)}`;
|
|
11
|
-
return /* @__PURE__ */
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
12
|
+
return /* @__PURE__ */ jsxs(
|
|
13
|
+
Stack,
|
|
14
|
+
{
|
|
15
|
+
direction: "row",
|
|
16
|
+
spacing: 1,
|
|
17
|
+
sx: { alignItems: "center" },
|
|
18
|
+
children: [
|
|
19
|
+
/* @__PURE__ */ jsx(BlockiesAvatarAddress, { address, size: 21 }),
|
|
20
|
+
/* @__PURE__ */ jsx(Tooltip, { title: address, children: /* @__PURE__ */ jsx(
|
|
21
|
+
Typography,
|
|
22
|
+
{
|
|
23
|
+
variant: "caption",
|
|
24
|
+
sx: {
|
|
25
|
+
color: "text.secondary",
|
|
26
|
+
fontFamily: "monospace"
|
|
27
|
+
},
|
|
28
|
+
children: shortenedAddress
|
|
29
|
+
}
|
|
30
|
+
) })
|
|
31
|
+
]
|
|
27
32
|
}
|
|
28
|
-
|
|
29
|
-
}
|
|
33
|
+
);
|
|
34
|
+
};
|
|
30
35
|
|
|
31
36
|
// src/components/connected/ConnectAccountsStack.tsx
|
|
32
|
-
import {
|
|
37
|
+
import {
|
|
38
|
+
Alert,
|
|
39
|
+
AlertTitle,
|
|
40
|
+
Button,
|
|
41
|
+
Stack as Stack2,
|
|
42
|
+
Typography as Typography2
|
|
43
|
+
} from "@mui/material";
|
|
33
44
|
import { ButtonEx } from "@xylabs/react-button";
|
|
34
45
|
import { isDefined as isDefined5, isUndefined as isUndefined5 } from "@xylabs/sdk-js";
|
|
35
46
|
import { ErrorRender } from "@xyo-network/react-error";
|
|
36
|
-
import
|
|
47
|
+
import { useEffect as useEffect3 } from "react";
|
|
37
48
|
|
|
38
49
|
// src/hooks/account/helpers/formatAccountBalanceHistory.ts
|
|
39
50
|
import { hexToBigInt } from "@xylabs/sdk-js";
|
|
40
51
|
import { PayloadBuilder } from "@xyo-network/sdk-js";
|
|
41
|
-
var formatAccountBalanceHistory =
|
|
52
|
+
var formatAccountBalanceHistory = async (address, history) => {
|
|
42
53
|
const results = [];
|
|
43
54
|
for (const item of history) {
|
|
44
55
|
const [blockBw, txBw, transfer] = item;
|
|
@@ -77,31 +88,40 @@ var formatAccountBalanceHistory = /* @__PURE__ */ __name(async (address, history
|
|
|
77
88
|
}
|
|
78
89
|
}
|
|
79
90
|
return results;
|
|
80
|
-
}
|
|
91
|
+
};
|
|
81
92
|
|
|
82
93
|
// src/hooks/account/useAccountBalanceHistory.ts
|
|
83
94
|
import { usePromise } from "@xylabs/react-promise";
|
|
84
|
-
import {
|
|
95
|
+
import {
|
|
96
|
+
isUndefined
|
|
97
|
+
} from "@xylabs/sdk-js";
|
|
85
98
|
|
|
86
99
|
// src/lib/balanceForRange.ts
|
|
87
|
-
import {
|
|
88
|
-
|
|
100
|
+
import {
|
|
101
|
+
hexToBigInt as hexToBigInt2,
|
|
102
|
+
isHex,
|
|
103
|
+
toHex
|
|
104
|
+
} from "@xylabs/sdk-js";
|
|
105
|
+
var balanceForRange = (address, results) => {
|
|
89
106
|
const totalReceivedBalance = results?.reduce((a, [_block, _tx, transfer]) => {
|
|
90
107
|
return a + hexToBigInt2(transfer.transfers[address] ?? toHex(0));
|
|
91
108
|
}, 0n);
|
|
92
109
|
const totalSentBalance = results?.reduce((a, [_block, _tx, transfer]) => {
|
|
93
110
|
return transfer.from === address ? a + Object.values(transfer.transfers).reduce((a2, v) => a2 + (isHex(v) ? hexToBigInt2(v) : 0n), 0n) : a;
|
|
94
111
|
}, 0n);
|
|
95
|
-
return [
|
|
96
|
-
|
|
97
|
-
totalSentBalance
|
|
98
|
-
];
|
|
99
|
-
}, "balanceForRange");
|
|
112
|
+
return [totalReceivedBalance, totalSentBalance];
|
|
113
|
+
};
|
|
100
114
|
|
|
101
115
|
// src/lib/buildGateway.ts
|
|
102
116
|
import { assertEx, isDefined } from "@xylabs/sdk-js";
|
|
103
|
-
import {
|
|
104
|
-
|
|
117
|
+
import {
|
|
118
|
+
basicRemoteRunnerLocator,
|
|
119
|
+
basicRemoteViewerLocator,
|
|
120
|
+
DefaultNetworks,
|
|
121
|
+
NetworkDataLakeUrls,
|
|
122
|
+
XyoGatewayMoniker
|
|
123
|
+
} from "@xyo-network/xl1-sdk";
|
|
124
|
+
var buildGateway = async (gatewayName, signerTransport) => {
|
|
105
125
|
const network = DefaultNetworks.find((network2) => network2.id === gatewayName);
|
|
106
126
|
const resolvedNetwork = assertEx(network, () => `No network found for id ${gatewayName}`);
|
|
107
127
|
const remoteConfig = {
|
|
@@ -113,37 +133,30 @@ var buildGateway = /* @__PURE__ */ __name(async (gatewayName, signerTransport) =
|
|
|
113
133
|
const dataLakeEndpoint = NetworkDataLakeUrls[gatewayName];
|
|
114
134
|
const locator = isDefined(signerTransport) ? await basicRemoteRunnerLocator(gatewayName, remoteConfig, signerTransport, dataLakeEndpoint) : await basicRemoteViewerLocator(gatewayName, remoteConfig, dataLakeEndpoint);
|
|
115
135
|
return await locator.getInstance(XyoGatewayMoniker);
|
|
116
|
-
}
|
|
136
|
+
};
|
|
117
137
|
|
|
118
138
|
// src/lib/findMinimumBlock.ts
|
|
119
|
-
var findMinimumBlock =
|
|
139
|
+
var findMinimumBlock = (history) => {
|
|
120
140
|
if (history.length === 0) return 0;
|
|
121
141
|
const blockNumbers = history.map(([blockBw]) => blockBw.block);
|
|
122
142
|
const min = Math.min(...blockNumbers);
|
|
123
143
|
return Math.max(min - 1, 0);
|
|
124
|
-
}
|
|
144
|
+
};
|
|
125
145
|
|
|
126
146
|
// src/hooks/account/useAccountBalanceHistory.ts
|
|
127
|
-
var useAccountBalanceHistory =
|
|
147
|
+
var useAccountBalanceHistory = (address, viewer, maxPage = 10, blockRange, refresh) => {
|
|
128
148
|
return usePromise(async () => {
|
|
129
149
|
if (isUndefined(viewer) || isUndefined(address)) return;
|
|
130
150
|
let page = 1;
|
|
131
151
|
let lastBlock;
|
|
132
152
|
const pagedHistory = [];
|
|
133
153
|
const resolvedStartBlock = blockRange ? blockRange[0] : 0;
|
|
134
|
-
const history = await viewer.account.balance.accountBalanceHistory(address, blockRange ? {
|
|
135
|
-
range: blockRange
|
|
136
|
-
} : {});
|
|
154
|
+
const history = await viewer.account.balance.accountBalanceHistory(address, blockRange ? { range: blockRange } : {});
|
|
137
155
|
if (history.length > 0) {
|
|
138
156
|
pagedHistory.push(...history);
|
|
139
157
|
lastBlock = findMinimumBlock(history);
|
|
140
158
|
while (page < maxPage) {
|
|
141
|
-
const nextHistory = await viewer.account.balance.accountBalanceHistory(address, {
|
|
142
|
-
range: [
|
|
143
|
-
resolvedStartBlock,
|
|
144
|
-
lastBlock
|
|
145
|
-
]
|
|
146
|
-
});
|
|
159
|
+
const nextHistory = await viewer.account.balance.accountBalanceHistory(address, { range: [resolvedStartBlock, lastBlock] });
|
|
147
160
|
if (nextHistory.length === 0) break;
|
|
148
161
|
lastBlock = findMinimumBlock(nextHistory);
|
|
149
162
|
pagedHistory.push(...nextHistory);
|
|
@@ -156,45 +169,42 @@ var useAccountBalanceHistory = /* @__PURE__ */ __name((address, viewer, maxPage
|
|
|
156
169
|
balance: balanceForRange(address, pagedHistory),
|
|
157
170
|
truncated: page >= maxPage
|
|
158
171
|
};
|
|
159
|
-
}, [
|
|
160
|
-
|
|
161
|
-
viewer,
|
|
162
|
-
refresh,
|
|
163
|
-
blockRange,
|
|
164
|
-
maxPage
|
|
165
|
-
]);
|
|
166
|
-
}, "useAccountBalanceHistory");
|
|
172
|
+
}, [address, viewer, refresh, blockRange, maxPage]);
|
|
173
|
+
};
|
|
167
174
|
|
|
168
175
|
// src/hooks/gateway/useNetwork.ts
|
|
169
176
|
import { useProvidedGateway } from "@xyo-network/xl1-react-client-sdk";
|
|
170
|
-
var useNetworkFromGateway =
|
|
177
|
+
var useNetworkFromGateway = () => {
|
|
171
178
|
const { defaultGateway } = useProvidedGateway();
|
|
172
179
|
return defaultGateway?.connection?.network;
|
|
173
|
-
}
|
|
180
|
+
};
|
|
174
181
|
|
|
175
182
|
// src/hooks/gateway/useRunner.ts
|
|
176
183
|
import { useProvidedGateway as useProvidedGateway2 } from "@xyo-network/xl1-react-client-sdk";
|
|
177
|
-
var useRunnerFromGateway =
|
|
184
|
+
var useRunnerFromGateway = () => {
|
|
178
185
|
const { defaultGateway } = useProvidedGateway2();
|
|
179
186
|
return defaultGateway?.connection?.runner;
|
|
180
|
-
}
|
|
187
|
+
};
|
|
181
188
|
|
|
182
189
|
// src/hooks/gateway/useViewer.ts
|
|
183
190
|
import { useProvidedGateway as useProvidedGateway3 } from "@xyo-network/xl1-react-client-sdk";
|
|
184
|
-
var useViewerFromGateway =
|
|
191
|
+
var useViewerFromGateway = () => {
|
|
185
192
|
const { defaultGateway } = useProvidedGateway3();
|
|
186
193
|
return defaultGateway?.connection?.viewer;
|
|
187
|
-
}
|
|
194
|
+
};
|
|
188
195
|
|
|
189
196
|
// src/hooks/helpers/getXyoClient.ts
|
|
190
197
|
import { getXyoClient, listenForClientInjection } from "@xyo-network/xl1-react-client-sdk";
|
|
191
198
|
|
|
192
199
|
// src/hooks/helpers/transaction/Confirmation.ts
|
|
193
|
-
import {
|
|
200
|
+
import {
|
|
201
|
+
assertEx as assertEx2,
|
|
202
|
+
delay,
|
|
203
|
+
forget,
|
|
204
|
+
isDefined as isDefined2,
|
|
205
|
+
isNull
|
|
206
|
+
} from "@xylabs/sdk-js";
|
|
194
207
|
var TransactionConfirmationStatus = class _TransactionConfirmationStatus {
|
|
195
|
-
static {
|
|
196
|
-
__name(this, "TransactionConfirmationStatus");
|
|
197
|
-
}
|
|
198
208
|
_params;
|
|
199
209
|
active = false;
|
|
200
210
|
constructor(params) {
|
|
@@ -297,8 +307,12 @@ var TransactionConfirmationStatus = class _TransactionConfirmationStatus {
|
|
|
297
307
|
import { usePromise as usePromise2 } from "@xylabs/react-promise";
|
|
298
308
|
import { isUndefined as isUndefined2, isUndefinedOrNull } from "@xylabs/sdk-js";
|
|
299
309
|
import { ShiftedBigInt } from "@xyo-network/xl1-sdk";
|
|
300
|
-
import {
|
|
301
|
-
|
|
310
|
+
import {
|
|
311
|
+
useMemo,
|
|
312
|
+
useRef,
|
|
313
|
+
useState
|
|
314
|
+
} from "react";
|
|
315
|
+
var useAddressBalance = (address, viewer, refresh, reset) => {
|
|
302
316
|
const [balancesResult, setBalancesResult] = useState();
|
|
303
317
|
const [loading, setLoading] = useState(false);
|
|
304
318
|
const [balancesError, setBalancesError] = useState();
|
|
@@ -330,11 +344,7 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh, reset)
|
|
|
330
344
|
setLoading(false);
|
|
331
345
|
}
|
|
332
346
|
}
|
|
333
|
-
}, [
|
|
334
|
-
address,
|
|
335
|
-
viewer,
|
|
336
|
-
refresh
|
|
337
|
-
]);
|
|
347
|
+
}, [address, viewer, refresh]);
|
|
338
348
|
const shiftedBigInt = useMemo(() => {
|
|
339
349
|
if (typeof balancesResult !== "bigint") return;
|
|
340
350
|
return new ShiftedBigInt(balancesResult, {
|
|
@@ -344,20 +354,13 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh, reset)
|
|
|
344
354
|
minDecimals: 1,
|
|
345
355
|
locale: navigator.language
|
|
346
356
|
});
|
|
347
|
-
}, [
|
|
348
|
-
balancesResult
|
|
349
|
-
]);
|
|
357
|
+
}, [balancesResult]);
|
|
350
358
|
const balanceIntlFriendly = useMemo(() => {
|
|
351
359
|
return shiftedBigInt?.toFullString();
|
|
352
|
-
}, [
|
|
353
|
-
shiftedBigInt
|
|
354
|
-
]);
|
|
360
|
+
}, [shiftedBigInt]);
|
|
355
361
|
const shortBalanceIntlFriendly = useMemo(() => {
|
|
356
362
|
return isUndefinedOrNull(balancesResult) ? void 0 : balancesResult < 1000000000000n && balancesResult > 0n ? "<0.00001" : shiftedBigInt?.toShortString();
|
|
357
|
-
}, [
|
|
358
|
-
balancesResult,
|
|
359
|
-
shiftedBigInt
|
|
360
|
-
]);
|
|
363
|
+
}, [balancesResult, shiftedBigInt]);
|
|
361
364
|
return {
|
|
362
365
|
address,
|
|
363
366
|
balanceForAddress: balancesResult,
|
|
@@ -366,19 +369,23 @@ var useAddressBalance = /* @__PURE__ */ __name((address, viewer, refresh, reset)
|
|
|
366
369
|
error: balancesError,
|
|
367
370
|
loading
|
|
368
371
|
};
|
|
369
|
-
}
|
|
372
|
+
};
|
|
370
373
|
|
|
371
374
|
// src/hooks/useConfirmTransactionBase.ts
|
|
372
375
|
import { usePromise as usePromise3 } from "@xylabs/react-promise";
|
|
373
|
-
import {
|
|
376
|
+
import {
|
|
377
|
+
forget as forget2,
|
|
378
|
+
isDefined as isDefined3,
|
|
379
|
+
isHash
|
|
380
|
+
} from "@xylabs/sdk-js";
|
|
374
381
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/sdk-js";
|
|
375
382
|
import { useEffect, useState as useState2 } from "react";
|
|
376
|
-
var useConfirmTransactionBase =
|
|
383
|
+
var useConfirmTransactionBase = (transaction, onBroadcast, onStatusUpdate, runner, viewer) => {
|
|
377
384
|
const [status, setStatus] = useState2();
|
|
378
|
-
const onStatusUpdateLocal =
|
|
385
|
+
const onStatusUpdateLocal = (newStatus) => {
|
|
379
386
|
setStatus(newStatus);
|
|
380
387
|
onStatusUpdate?.(newStatus);
|
|
381
|
-
}
|
|
388
|
+
};
|
|
382
389
|
const [transactionConfirmationStatus, transactionConfirmationError] = usePromise3(async () => {
|
|
383
390
|
const hasRunner = isDefined3(runner);
|
|
384
391
|
if (transaction && viewer) {
|
|
@@ -398,25 +405,16 @@ var useConfirmTransactionBase = /* @__PURE__ */ __name((transaction, onBroadcast
|
|
|
398
405
|
throw new Error("unexpected return type from broadcast transaction");
|
|
399
406
|
}
|
|
400
407
|
}
|
|
401
|
-
}, [
|
|
402
|
-
transaction,
|
|
403
|
-
runner,
|
|
404
|
-
viewer
|
|
405
|
-
]);
|
|
408
|
+
}, [transaction, runner, viewer]);
|
|
406
409
|
useEffect(() => {
|
|
407
410
|
return () => {
|
|
408
411
|
if (transactionConfirmationStatus) {
|
|
409
412
|
forget2(transactionConfirmationStatus.stop());
|
|
410
413
|
}
|
|
411
414
|
};
|
|
412
|
-
}, [
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
return {
|
|
416
|
-
status,
|
|
417
|
-
transactionConfirmationError
|
|
418
|
-
};
|
|
419
|
-
}, "useConfirmTransactionBase");
|
|
415
|
+
}, [transactionConfirmationStatus]);
|
|
416
|
+
return { status, transactionConfirmationError };
|
|
417
|
+
};
|
|
420
418
|
|
|
421
419
|
// src/hooks/useConnectAccount.ts
|
|
422
420
|
import { asAddress } from "@xylabs/sdk-js";
|
|
@@ -424,9 +422,13 @@ import { assertEx as assertEx3 } from "@xylabs/sdk-js";
|
|
|
424
422
|
import { useAccountPermissions, useGatewayFromWallet } from "@xyo-network/xl1-react-client-sdk";
|
|
425
423
|
import { MainNetwork } from "@xyo-network/xl1-sdk";
|
|
426
424
|
import { useCallback, useState as useState3 } from "react";
|
|
427
|
-
var useConnectAccount =
|
|
425
|
+
var useConnectAccount = (gatewayName = MainNetwork.id, timeout) => {
|
|
428
426
|
const [connectError, setConnectError] = useState3();
|
|
429
|
-
const {
|
|
427
|
+
const {
|
|
428
|
+
gateway,
|
|
429
|
+
error,
|
|
430
|
+
timedout
|
|
431
|
+
} = useGatewayFromWallet(gatewayName, timeout);
|
|
430
432
|
const [accountPermissions, accountPermissionsError] = useAccountPermissions();
|
|
431
433
|
const [address, setAddress] = useState3();
|
|
432
434
|
const connectSigner = useCallback(async () => {
|
|
@@ -440,10 +442,7 @@ var useConnectAccount = /* @__PURE__ */ __name((gatewayName = MainNetwork.id, ti
|
|
|
440
442
|
} catch (e) {
|
|
441
443
|
setConnectError(e);
|
|
442
444
|
}
|
|
443
|
-
}, [
|
|
444
|
-
gateway,
|
|
445
|
-
gatewayName
|
|
446
|
-
]);
|
|
445
|
+
}, [gateway, gatewayName]);
|
|
447
446
|
return {
|
|
448
447
|
address: asAddress(accountPermissions?.[0] ?? address),
|
|
449
448
|
connectSigner,
|
|
@@ -451,92 +450,84 @@ var useConnectAccount = /* @__PURE__ */ __name((gatewayName = MainNetwork.id, ti
|
|
|
451
450
|
gateway,
|
|
452
451
|
timedout
|
|
453
452
|
};
|
|
454
|
-
}
|
|
453
|
+
};
|
|
455
454
|
|
|
456
455
|
// src/hooks/useCurrentBlock.ts
|
|
457
456
|
import { usePromise as usePromise4 } from "@xylabs/react-promise";
|
|
458
457
|
import { isDefinedNotNull } from "@xylabs/sdk-js";
|
|
459
|
-
var useCurrentBlock =
|
|
458
|
+
var useCurrentBlock = (refresh = 1, viewer) => {
|
|
460
459
|
return usePromise4(async () => {
|
|
461
460
|
if (isDefinedNotNull(viewer) && refresh > 0) {
|
|
462
461
|
const block = await viewer.currentBlock();
|
|
463
462
|
return block;
|
|
464
463
|
}
|
|
465
|
-
}, [
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
]);
|
|
469
|
-
}, "useCurrentBlock");
|
|
470
|
-
var useCurrentBlockFromGateway = /* @__PURE__ */ __name((refresh = 1) => {
|
|
464
|
+
}, [viewer, refresh]);
|
|
465
|
+
};
|
|
466
|
+
var useCurrentBlockFromGateway = (refresh = 1) => {
|
|
471
467
|
const viewer = useViewerFromGateway();
|
|
472
468
|
return usePromise4(async () => {
|
|
473
469
|
if (isDefinedNotNull(viewer) && refresh > 0) {
|
|
474
470
|
const block = await viewer.currentBlock();
|
|
475
471
|
return block;
|
|
476
472
|
}
|
|
477
|
-
}, [
|
|
478
|
-
|
|
479
|
-
refresh
|
|
480
|
-
]);
|
|
481
|
-
}, "useCurrentBlockFromGateway");
|
|
473
|
+
}, [viewer, refresh]);
|
|
474
|
+
};
|
|
482
475
|
|
|
483
476
|
// src/hooks/useNetwork.ts
|
|
484
477
|
import { isUndefined as isUndefined3 } from "@xylabs/sdk-js";
|
|
485
478
|
import { SimpleXyoNetwork } from "@xyo-network/xl1-sdk";
|
|
486
479
|
import { useMemo as useMemo2 } from "react";
|
|
487
|
-
var useNetwork =
|
|
480
|
+
var useNetwork = (id) => {
|
|
488
481
|
const network = useMemo2(() => {
|
|
489
482
|
if (isUndefined3(id)) return;
|
|
490
483
|
return new SimpleXyoNetwork(id);
|
|
491
|
-
}, [
|
|
492
|
-
id
|
|
493
|
-
]);
|
|
484
|
+
}, [id]);
|
|
494
485
|
return network;
|
|
495
|
-
}
|
|
486
|
+
};
|
|
496
487
|
|
|
497
488
|
// src/hooks/useSigner.ts
|
|
498
489
|
import { usePromise as usePromise5 } from "@xylabs/react-promise";
|
|
499
|
-
import {
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
}) : void 0, [
|
|
504
|
-
|
|
505
|
-
]);
|
|
506
|
-
}, "useSigner");
|
|
490
|
+
import {
|
|
491
|
+
SimpleXyoSigner
|
|
492
|
+
} from "@xyo-network/xl1-sdk";
|
|
493
|
+
var useSigner = (_provider, account) => {
|
|
494
|
+
return usePromise5(async () => account ? await SimpleXyoSigner.create({ account }) : void 0, [account]);
|
|
495
|
+
};
|
|
507
496
|
|
|
508
497
|
// src/hooks/viewer/useCheckRpc.ts
|
|
509
498
|
import { usePromise as usePromise6 } from "@xylabs/react-promise";
|
|
510
|
-
import {
|
|
511
|
-
|
|
499
|
+
import {
|
|
500
|
+
delay as delay2,
|
|
501
|
+
isDefined as isDefined4,
|
|
502
|
+
isUndefined as isUndefined4
|
|
503
|
+
} from "@xylabs/sdk-js";
|
|
504
|
+
import {
|
|
505
|
+
basicRemoteViewerLocator as basicRemoteViewerLocator2,
|
|
506
|
+
LocalNetwork,
|
|
507
|
+
SequenceNetwork,
|
|
508
|
+
XyoViewerMoniker
|
|
509
|
+
} from "@xyo-network/xl1-sdk";
|
|
512
510
|
import { useEffect as useEffect2, useState as useState4 } from "react";
|
|
513
511
|
var INTERVAL = 5e3;
|
|
514
512
|
var localRpcEndpoint = `${LocalNetwork.url}/rpc`;
|
|
515
513
|
var sequenceRpcEndpoint = `${SequenceNetwork.url}/rpc`;
|
|
516
|
-
var useCheckLocalRpc =
|
|
514
|
+
var useCheckLocalRpc = () => {
|
|
517
515
|
const isLocalProducer = useCheckRpc(localRpcEndpoint);
|
|
518
516
|
return isLocalProducer;
|
|
519
|
-
}
|
|
520
|
-
var useCheckSequenceRpc =
|
|
517
|
+
};
|
|
518
|
+
var useCheckSequenceRpc = () => {
|
|
521
519
|
const isSequenceRpc = useCheckRpc(sequenceRpcEndpoint);
|
|
522
520
|
return isSequenceRpc;
|
|
523
|
-
}
|
|
524
|
-
var useCheckRpc =
|
|
521
|
+
};
|
|
522
|
+
var useCheckRpc = (endpoint) => {
|
|
525
523
|
const [isLocalProducer, setIsLocalProducer] = useState4(false);
|
|
526
524
|
const [error, setError] = useState4();
|
|
527
525
|
const [viewer] = usePromise6(async () => {
|
|
528
526
|
if (isUndefined4(endpoint)) return;
|
|
529
|
-
const locator = await basicRemoteViewerLocator2(endpoint, {
|
|
530
|
-
rpc: {
|
|
531
|
-
protocol: "http",
|
|
532
|
-
url: endpoint
|
|
533
|
-
}
|
|
534
|
-
});
|
|
527
|
+
const locator = await basicRemoteViewerLocator2(endpoint, { rpc: { protocol: "http", url: endpoint } });
|
|
535
528
|
const viewer2 = await locator.getInstance(XyoViewerMoniker);
|
|
536
529
|
return viewer2;
|
|
537
|
-
}, [
|
|
538
|
-
endpoint
|
|
539
|
-
]);
|
|
530
|
+
}, [endpoint]);
|
|
540
531
|
useEffect2(() => {
|
|
541
532
|
if (isUndefined4(viewer)) return;
|
|
542
533
|
void (async () => {
|
|
@@ -552,24 +543,20 @@ var useCheckRpc = /* @__PURE__ */ __name((endpoint) => {
|
|
|
552
543
|
await delay2(INTERVAL);
|
|
553
544
|
}
|
|
554
545
|
})();
|
|
555
|
-
}, [
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
]);
|
|
559
|
-
return {
|
|
560
|
-
isLocalProducer,
|
|
561
|
-
error
|
|
562
|
-
};
|
|
563
|
-
}, "useCheckRpc");
|
|
546
|
+
}, [isLocalProducer, viewer]);
|
|
547
|
+
return { isLocalProducer, error };
|
|
548
|
+
};
|
|
564
549
|
|
|
565
550
|
// src/hooks/viewer/ViewerWithDataLake.ts
|
|
566
551
|
import { isNull as isNull2 } from "@xylabs/sdk-js";
|
|
567
552
|
import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/sdk-js";
|
|
568
|
-
import {
|
|
553
|
+
import {
|
|
554
|
+
addDataLakePayloads,
|
|
555
|
+
addDataLakePayloadsToPayloads,
|
|
556
|
+
DataLakeViewerMoniker,
|
|
557
|
+
JsonRpcXyoViewer
|
|
558
|
+
} from "@xyo-network/xl1-sdk";
|
|
569
559
|
var ViewerWithDataLake = class extends JsonRpcXyoViewer {
|
|
570
|
-
static {
|
|
571
|
-
__name(this, "ViewerWithDataLake");
|
|
572
|
-
}
|
|
573
560
|
dataLakeViewer;
|
|
574
561
|
async blocksByHash(hash, limit) {
|
|
575
562
|
const blocks = await super.blocksByHash(hash, limit);
|
|
@@ -589,10 +576,7 @@ var ViewerWithDataLake = class extends JsonRpcXyoViewer {
|
|
|
589
576
|
}
|
|
590
577
|
async transactionByHash(hash) {
|
|
591
578
|
const transaction = await super.transaction.byHash(hash);
|
|
592
|
-
if (!this.dataLakeViewer) return transaction ? [
|
|
593
|
-
await PayloadBuilder3.addHashMeta(transaction[0]),
|
|
594
|
-
await PayloadBuilder3.addHashMeta(transaction[1])
|
|
595
|
-
] : null;
|
|
579
|
+
if (!this.dataLakeViewer) return transaction ? [await PayloadBuilder3.addHashMeta(transaction[0]), await PayloadBuilder3.addHashMeta(transaction[1])] : null;
|
|
596
580
|
return isNull2(transaction) ? transaction : (await addDataLakePayloads([
|
|
597
581
|
await PayloadBuilder3.addHashMeta(transaction[0]),
|
|
598
582
|
await PayloadBuilder3.addHashMeta(transaction[1])
|
|
@@ -601,83 +585,87 @@ var ViewerWithDataLake = class extends JsonRpcXyoViewer {
|
|
|
601
585
|
};
|
|
602
586
|
|
|
603
587
|
// src/components/connected/ConnectAccountsStack.tsx
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
588
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
589
|
+
var DefaultConnectComponent = (props) => /* @__PURE__ */ jsx2(ButtonEx, { variant: "contained", size: "small", ...props });
|
|
590
|
+
var DefaultNoWalletInstalledComponent = () => /* @__PURE__ */ jsxs2(Alert, { severity: "warning", children: [
|
|
591
|
+
/* @__PURE__ */ jsx2(AlertTitle, { children: "XL1 Wallet Not Found" }),
|
|
592
|
+
/* @__PURE__ */ jsx2(Typography2, { gutterBottom: true, children: "Please ensure that your XL1 Wallet is installed to connect your account." }),
|
|
593
|
+
/* @__PURE__ */ jsx2(
|
|
594
|
+
Button,
|
|
595
|
+
{
|
|
596
|
+
sx: { display: "flex", justifySelf: "end" },
|
|
597
|
+
size: "small",
|
|
598
|
+
variant: "outlined",
|
|
599
|
+
href: "https://chromewebstore.google.com/detail/xl1-wallet/fblbagcjeigmhakkfgjpdlcapcgmcfbm",
|
|
600
|
+
target: "_blank",
|
|
601
|
+
rel: "noopener",
|
|
602
|
+
children: "Get XL1 Wallet"
|
|
603
|
+
}
|
|
604
|
+
)
|
|
605
|
+
] });
|
|
606
|
+
var ConnectAccountsStack = ({
|
|
607
|
+
AccountComponent = ConnectedAccount,
|
|
608
|
+
ConnectComponent = DefaultConnectComponent,
|
|
609
|
+
NoWalletInstalledComponent = DefaultNoWalletInstalledComponent,
|
|
610
|
+
onAccountConnected,
|
|
611
|
+
onCancel,
|
|
612
|
+
timeout,
|
|
607
613
|
...props
|
|
608
|
-
})
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
display: "flex",
|
|
616
|
-
justifySelf: "end"
|
|
617
|
-
},
|
|
618
|
-
size: "small",
|
|
619
|
-
variant: "outlined",
|
|
620
|
-
href: "https://chromewebstore.google.com/detail/xl1-wallet/fblbagcjeigmhakkfgjpdlcapcgmcfbm",
|
|
621
|
-
target: "_blank",
|
|
622
|
-
rel: "noopener"
|
|
623
|
-
}, "Get XL1 Wallet")), "DefaultNoWalletInstalledComponent");
|
|
624
|
-
var ConnectAccountsStack = /* @__PURE__ */ __name(({ AccountComponent = ConnectedAccount, ConnectComponent = DefaultConnectComponent, NoWalletInstalledComponent = DefaultNoWalletInstalledComponent, onAccountConnected, onCancel, timeout, ...props }) => {
|
|
625
|
-
const { address, connectSigner, error, timedout } = useConnectAccount(void 0, timeout);
|
|
614
|
+
}) => {
|
|
615
|
+
const {
|
|
616
|
+
address,
|
|
617
|
+
connectSigner,
|
|
618
|
+
error,
|
|
619
|
+
timedout
|
|
620
|
+
} = useConnectAccount(void 0, timeout);
|
|
626
621
|
useEffect3(() => {
|
|
627
622
|
if (isDefined5(error) && isDefined5(onCancel)) {
|
|
628
623
|
onCancel();
|
|
629
624
|
}
|
|
630
|
-
}, [
|
|
631
|
-
error,
|
|
632
|
-
onCancel
|
|
633
|
-
]);
|
|
625
|
+
}, [error, onCancel]);
|
|
634
626
|
useEffect3(() => {
|
|
635
627
|
if (isDefined5(address) && isDefined5(onAccountConnected)) {
|
|
636
628
|
onAccountConnected(address);
|
|
637
629
|
}
|
|
638
|
-
}, [
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
props.sx
|
|
630
|
+
}, [address, onAccountConnected]);
|
|
631
|
+
return /* @__PURE__ */ jsxs2(
|
|
632
|
+
Stack2,
|
|
633
|
+
{
|
|
634
|
+
direction: "row",
|
|
635
|
+
spacing: 2,
|
|
636
|
+
...props,
|
|
637
|
+
sx: [{ alignItems: "start" }, ...Array.isArray(props.sx) ? props.sx : [props.sx]],
|
|
638
|
+
children: [
|
|
639
|
+
isDefined5(address) ? /* @__PURE__ */ jsx2(AccountComponent, { address }) : null,
|
|
640
|
+
isUndefined5(address) && !timedout ? /* @__PURE__ */ jsx2(ConnectComponent, { onClick: () => void connectSigner(), children: "Connect" }) : null,
|
|
641
|
+
isUndefined5(address) && timedout ? /* @__PURE__ */ jsx2(NoWalletInstalledComponent, {}) : null,
|
|
642
|
+
/* @__PURE__ */ jsx2(ErrorRender, { error, scope: "ConnectSigner:error" })
|
|
652
643
|
]
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
}) : null, isUndefined5(address) && !timedout ? /* @__PURE__ */ React2.createElement(ConnectComponent, {
|
|
657
|
-
onClick: /* @__PURE__ */ __name(() => void connectSigner(), "onClick")
|
|
658
|
-
}, "Connect") : null, isUndefined5(address) && timedout ? /* @__PURE__ */ React2.createElement(NoWalletInstalledComponent, null) : null, /* @__PURE__ */ React2.createElement(ErrorRender, {
|
|
659
|
-
error,
|
|
660
|
-
scope: "ConnectSigner:error"
|
|
661
|
-
}));
|
|
662
|
-
}, "ConnectAccountsStack");
|
|
644
|
+
}
|
|
645
|
+
);
|
|
646
|
+
};
|
|
663
647
|
|
|
664
648
|
// src/contexts/current-block/context.ts
|
|
665
649
|
import { createContextEx } from "@xylabs/react-shared";
|
|
666
650
|
var XL1CurrentBlockContext = createContextEx();
|
|
667
651
|
|
|
668
652
|
// src/contexts/current-block/Provider.tsx
|
|
669
|
-
import
|
|
653
|
+
import { useMemo as useMemo3 } from "react";
|
|
670
654
|
|
|
671
655
|
// src/contexts/current-block/usePollCurrentBlock.ts
|
|
672
656
|
import { isDefinedNotNull as isDefinedNotNull2, isUndefinedOrNull as isUndefinedOrNull2 } from "@xylabs/sdk-js";
|
|
673
|
-
import {
|
|
657
|
+
import {
|
|
658
|
+
startTransition,
|
|
659
|
+
useEffect as useEffect4,
|
|
660
|
+
useState as useState5
|
|
661
|
+
} from "react";
|
|
674
662
|
var DEFAULT_POLL_INTERVAL = 1e4;
|
|
675
|
-
var usePollCurrentBlock =
|
|
663
|
+
var usePollCurrentBlock = (viewer, interval = DEFAULT_POLL_INTERVAL, pause = false) => {
|
|
676
664
|
const [currentBlock, setCurrentBlock] = useState5(null);
|
|
677
665
|
const [error, setError] = useState5();
|
|
678
666
|
useEffect4(() => {
|
|
679
667
|
let isMounted = true;
|
|
680
|
-
const fetchBlock =
|
|
668
|
+
const fetchBlock = async () => {
|
|
681
669
|
if (isDefinedNotNull2(viewer)) {
|
|
682
670
|
try {
|
|
683
671
|
const block = await viewer.currentBlock();
|
|
@@ -700,7 +688,7 @@ var usePollCurrentBlock = /* @__PURE__ */ __name((viewer, interval = DEFAULT_POL
|
|
|
700
688
|
});
|
|
701
689
|
}
|
|
702
690
|
}
|
|
703
|
-
}
|
|
691
|
+
};
|
|
704
692
|
void fetchBlock();
|
|
705
693
|
const id = setInterval(() => {
|
|
706
694
|
if (!pause) {
|
|
@@ -711,25 +699,19 @@ var usePollCurrentBlock = /* @__PURE__ */ __name((viewer, interval = DEFAULT_POL
|
|
|
711
699
|
isMounted = false;
|
|
712
700
|
clearInterval(id);
|
|
713
701
|
};
|
|
714
|
-
}, [
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
pause
|
|
718
|
-
]);
|
|
719
|
-
return [
|
|
720
|
-
currentBlock,
|
|
721
|
-
error
|
|
722
|
-
];
|
|
723
|
-
}, "usePollCurrentBlock");
|
|
702
|
+
}, [viewer, interval, pause]);
|
|
703
|
+
return [currentBlock, error];
|
|
704
|
+
};
|
|
724
705
|
|
|
725
706
|
// src/contexts/current-block/Provider.tsx
|
|
707
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
726
708
|
var DEFAULT_POLLING_INTERVAL = 1e4;
|
|
727
|
-
var XL1CurrentBlockProvider =
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
]);
|
|
709
|
+
var XL1CurrentBlockProvider = ({
|
|
710
|
+
pollingConfig,
|
|
711
|
+
viewer,
|
|
712
|
+
children
|
|
713
|
+
}) => {
|
|
714
|
+
const { interval } = useMemo3(() => pollingConfig || { interval: DEFAULT_POLLING_INTERVAL }, [pollingConfig]);
|
|
733
715
|
const [currentBlock, currentBlockError] = usePollCurrentBlock(viewer, interval);
|
|
734
716
|
const value = useMemo3(() => ({
|
|
735
717
|
block: currentBlock,
|
|
@@ -738,19 +720,13 @@ var XL1CurrentBlockProvider = /* @__PURE__ */ __name(({ pollingConfig, viewer, c
|
|
|
738
720
|
error: currentBlockError,
|
|
739
721
|
pollingConfig,
|
|
740
722
|
provided: true
|
|
741
|
-
}), [
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
pollingConfig
|
|
745
|
-
]);
|
|
746
|
-
return /* @__PURE__ */ React3.createElement(XL1CurrentBlockContext, {
|
|
747
|
-
value
|
|
748
|
-
}, children);
|
|
749
|
-
}, "XL1CurrentBlockProvider");
|
|
723
|
+
}), [currentBlock, currentBlockError, pollingConfig]);
|
|
724
|
+
return /* @__PURE__ */ jsx3(XL1CurrentBlockContext, { value, children });
|
|
725
|
+
};
|
|
750
726
|
|
|
751
727
|
// src/contexts/current-block/use.ts
|
|
752
728
|
import { useContextEx } from "@xylabs/react-shared";
|
|
753
|
-
var useXl1CurrentBlockContext =
|
|
729
|
+
var useXl1CurrentBlockContext = (required = true) => useContextEx(XL1CurrentBlockContext, "XL1CurrentBlock", required);
|
|
754
730
|
|
|
755
731
|
// src/contexts/gateway/Provider.tsx
|
|
756
732
|
import { GatewayProvider } from "@xyo-network/xl1-react-client-sdk";
|
|
@@ -798,4 +774,4 @@ export {
|
|
|
798
774
|
useViewerFromGateway,
|
|
799
775
|
useXl1CurrentBlockContext
|
|
800
776
|
};
|
|
801
|
-
//# sourceMappingURL=index.mjs.map
|
|
777
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/connected/account/Connected.tsx","../../src/components/connected/ConnectAccountsStack.tsx","../../src/hooks/account/helpers/formatAccountBalanceHistory.ts","../../src/hooks/account/useAccountBalanceHistory.ts","../../src/lib/balanceForRange.ts","../../src/lib/buildGateway.ts","../../src/lib/findMinimumBlock.ts","../../src/hooks/gateway/useNetwork.ts","../../src/hooks/gateway/useRunner.ts","../../src/hooks/gateway/useViewer.ts","../../src/hooks/helpers/getXyoClient.ts","../../src/hooks/helpers/transaction/Confirmation.ts","../../src/hooks/useAddressBalance.ts","../../src/hooks/useConfirmTransactionBase.ts","../../src/hooks/useConnectAccount.ts","../../src/hooks/useCurrentBlock.ts","../../src/hooks/useNetwork.ts","../../src/hooks/useSigner.ts","../../src/hooks/viewer/useCheckRpc.ts","../../src/hooks/viewer/ViewerWithDataLake.ts","../../src/contexts/current-block/context.ts","../../src/contexts/current-block/Provider.tsx","../../src/contexts/current-block/usePollCurrentBlock.ts","../../src/contexts/current-block/use.ts","../../src/contexts/gateway/Provider.tsx","../../src/contexts/in-page-gateways/context.ts","../../src/contexts/in-page-gateways/Provider.tsx","../../src/contexts/in-page-gateways/use.ts"],"sourcesContent":["import {\n Stack, Tooltip, Typography,\n} from '@mui/material'\nimport { EthAddressWrapper } from '@xylabs/sdk-js'\nimport { BlockiesAvatarAddress } from '@xyo-network/xl1-blockies'\nimport React from 'react'\n\nexport const ConnectedAccount: React.FC<{ address: string }> = ({ address }) => {\n const shortenedAddress = `${EthAddressWrapper.fromString(address)?.toShortString(4)}`\n\n return (\n <Stack\n direction=\"row\"\n spacing={1}\n sx={{ alignItems: 'center' }}\n >\n <BlockiesAvatarAddress address={address} size={21} />\n <Tooltip title={address}>\n <Typography\n variant=\"caption\"\n sx={{\n color: 'text.secondary',\n fontFamily: 'monospace',\n }}\n >\n {shortenedAddress}\n </Typography>\n </Tooltip>\n </Stack>\n )\n}\n","import type { StackProps } from '@mui/material'\nimport {\n Alert, AlertTitle, Button, Stack,\n Typography,\n} from '@mui/material'\nimport type { ButtonExProps } from '@xylabs/react-button'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { Address } from '@xylabs/sdk-js'\nimport { isDefined, isUndefined } from '@xylabs/sdk-js'\nimport { ErrorRender } from '@xyo-network/react-error'\nimport type { ComponentType, MouseEventHandler } from 'react'\nimport React, { useEffect } from 'react'\n\nimport { useConnectAccount } from '../../hooks/index.ts'\nimport { ConnectedAccount } from './account/index.ts'\n\nconst DefaultConnectComponent: React.FC<ButtonExProps> = props => (\n <ButtonEx variant=\"contained\" size=\"small\" {...props} />\n)\n\nconst DefaultNoWalletInstalledComponent: React.FC = () => (\n <Alert severity=\"warning\">\n <AlertTitle>XL1 Wallet Not Found</AlertTitle>\n <Typography gutterBottom>\n Please ensure that your XL1 Wallet is installed to connect your account.\n </Typography>\n <Button\n sx={{ display: 'flex', justifySelf: 'end' }}\n size=\"small\"\n variant=\"outlined\"\n href=\"https://chromewebstore.google.com/detail/xl1-wallet/fblbagcjeigmhakkfgjpdlcapcgmcfbm\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n Get XL1 Wallet\n </Button>\n </Alert>\n)\n\nexport interface ConnectClientAccountsStackProps extends StackProps {\n AccountComponent?: ComponentType<{ account?: string }>\n ConnectComponent?: ComponentType<{ onClick?: MouseEventHandler<HTMLElement> }>\n NoWalletInstalledComponent?: ComponentType\n onAccountConnected?: (account: Address) => void\n onCancel?: () => void\n timeout?: number\n}\n\n/** @deprecated - use version in @xyo-network/xl1-react-client-sdk instead */\nexport const ConnectAccountsStack: React.FC<ConnectClientAccountsStackProps> = ({\n AccountComponent = ConnectedAccount,\n ConnectComponent = DefaultConnectComponent,\n NoWalletInstalledComponent = DefaultNoWalletInstalledComponent,\n onAccountConnected,\n onCancel,\n timeout,\n ...props\n}) => {\n const {\n address, connectSigner, error, timedout,\n } = useConnectAccount(undefined, timeout)\n\n useEffect(() => {\n if (isDefined(error) && isDefined(onCancel)) {\n onCancel()\n }\n }, [error, onCancel])\n\n useEffect(() => {\n if (isDefined(address) && isDefined(onAccountConnected)) {\n onAccountConnected(address)\n }\n }, [address, onAccountConnected])\n\n return (\n <Stack\n direction=\"row\"\n spacing={2}\n {...props}\n sx={[{ alignItems: 'start' }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n >\n {isDefined(address)\n ? <AccountComponent address={address} />\n : null}\n {isUndefined(address) && !timedout\n ? (\n <ConnectComponent onClick={() => void connectSigner()}>Connect</ConnectComponent>\n )\n : null}\n {isUndefined(address) && timedout\n ? (\n <NoWalletInstalledComponent />\n )\n : null}\n <ErrorRender error={error} scope=\"ConnectSigner:error\" />\n </Stack>\n )\n}\n","import type { Address, Hex } from '@xylabs/sdk-js'\nimport { hexToBigInt } from '@xylabs/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type { AccountBalanceHistoryItem } from '@xyo-network/xl1-sdk'\n\nimport type { AccountBalanceHistoryItemFormatted } from '../BalanceHistoryItemFormatted.ts'\n\nexport const formatAccountBalanceHistory = async (address: Address, history: AccountBalanceHistoryItem[]): Promise<AccountBalanceHistoryItemFormatted[]> => {\n const results: AccountBalanceHistoryItemFormatted[] = []\n for (const item of history) {\n const [blockBw, txBw, transfer] = item\n const transferHash = await PayloadBuilder.hash(transfer)\n const blockHash = await PayloadBuilder.hash(blockBw)\n if (address === transfer.from) {\n for (const [to, amount] of Object.entries(transfer.transfers)) {\n results.push({\n amount: hexToBigInt(amount as Hex),\n blockHash,\n blockNumber: blockBw.block,\n from: transfer.from,\n timestamp: blockBw.$epoch,\n key: globalThis.crypto.randomUUID(),\n to: to as Address,\n transferHash,\n txHash: txBw?._hash,\n debug: item,\n type: 'send',\n })\n }\n } else {\n results.push({\n amount: hexToBigInt(transfer.transfers[address] as Hex),\n blockHash,\n blockNumber: blockBw.block,\n from: transfer.from,\n key: globalThis.crypto.randomUUID(),\n timestamp: blockBw.$epoch,\n to: address,\n transferHash,\n txHash: txBw?._hash,\n debug: item,\n type: 'receive',\n })\n }\n }\n return results\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport {\n type Address,\n isUndefined,\n} from '@xylabs/sdk-js'\nimport type {\n AccountBalanceHistoryItem, XL1BlockRange, XyoViewer,\n} from '@xyo-network/xl1-sdk'\n\nimport { balanceForRange, findMinimumBlock } from '../../lib/index.ts'\nimport { formatAccountBalanceHistory } from './helpers/index.ts'\n\nexport const useAccountBalanceHistory = (address?: Address, viewer?: XyoViewer, maxPage = 10, blockRange?: XL1BlockRange, refresh?: number) => {\n return usePromise(async () => {\n if (isUndefined(viewer) || isUndefined(address)) return\n\n // Pagination Values\n let page = 1\n let lastBlock: number\n const pagedHistory: AccountBalanceHistoryItem[] = []\n const resolvedStartBlock = blockRange ? blockRange[0] : 0\n\n // Fetch first page to get starting lastBlock\n // If blockRange is provided, use that for the first fetch, otherwise the api will use [0, currentBlock]\n const history = await viewer.account.balance.accountBalanceHistory(address, blockRange ? { range: blockRange } : {})\n if (history.length > 0) {\n pagedHistory.push(...history)\n // Set lastBlock to one less than the lowest block in the first page\n lastBlock = findMinimumBlock(history)\n while (page < maxPage) {\n // Fetch next page\n const nextHistory = await viewer.account.balance.accountBalanceHistory(address, { range: [resolvedStartBlock, lastBlock] as XL1BlockRange })\n // Break if no more history\n if (nextHistory.length === 0) break\n // Update lastBlock and append to pagedHistory\n lastBlock = findMinimumBlock(nextHistory)\n pagedHistory.push(...nextHistory)\n // Increment page\n // Even if we are going to go over and break the loop, we still want to increment to show the answer was truncated\n page++\n }\n }\n const formattedHistory = await formatAccountBalanceHistory(address, pagedHistory)\n\n return {\n history: formattedHistory,\n balance: balanceForRange(address, pagedHistory),\n truncated: page >= maxPage,\n }\n }, [address, viewer, refresh, blockRange, maxPage])\n}\n","import type { Address } from '@xylabs/sdk-js'\nimport {\n hexToBigInt, isHex, toHex,\n} from '@xylabs/sdk-js'\nimport type { AccountBalanceHistoryItem, AttoXL1 } from '@xyo-network/xl1-sdk'\n\nexport const balanceForRange = (address: Address, results: AccountBalanceHistoryItem[]): [AttoXL1, AttoXL1] => {\n const totalReceivedBalance = results?.reduce((a, [_block, _tx, transfer]) => {\n return a + hexToBigInt(transfer.transfers[address] ?? toHex(0))\n }, 0n)\n // eslint-disable-next-line unicorn/no-array-reduce\n const totalSentBalance = results?.reduce((a, [_block, _tx, transfer]) => {\n return (transfer.from === address) ? a + Object.values(transfer.transfers).reduce((a, v) => a + (isHex(v) ? hexToBigInt(v) : 0n), 0n) : a\n }, 0n)\n return [totalReceivedBalance, totalSentBalance] as [AttoXL1, AttoXL1]\n}\n","import { assertEx, isDefined } from '@xylabs/sdk-js'\nimport type {\n GatewayName,\n RemoteConfig, RpcTransport, SimpleXyoGateway,\n XyoSignerRpcSchemas,\n} from '@xyo-network/xl1-sdk'\nimport {\n basicRemoteRunnerLocator,\n basicRemoteViewerLocator,\n DefaultNetworks, NetworkDataLakeUrls, XyoGatewayMoniker,\n} from '@xyo-network/xl1-sdk'\n\nexport const buildGateway = async (gatewayName: GatewayName, signerTransport?: RpcTransport<XyoSignerRpcSchemas>) => {\n const network = DefaultNetworks.find(network => network.id === gatewayName)\n const resolvedNetwork = assertEx(network, () => `No network found for id ${gatewayName}`)\n\n const remoteConfig: RemoteConfig = {\n rpc: {\n protocol: 'http',\n url: `${resolvedNetwork.url}/rpc`,\n },\n }\n\n const dataLakeEndpoint = NetworkDataLakeUrls[gatewayName]\n\n const locator = isDefined(signerTransport)\n ? await basicRemoteRunnerLocator(gatewayName, remoteConfig, signerTransport, dataLakeEndpoint)\n : await basicRemoteViewerLocator(gatewayName, remoteConfig, dataLakeEndpoint)\n\n return await locator.getInstance<SimpleXyoGateway>(XyoGatewayMoniker)\n}\n","import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-sdk'\n\nexport const findMinimumBlock = (history: AccountBalanceHistoryItem[]): number => {\n // since taking Math.min of an empty array returns Infinity\n if (history.length === 0) return 0\n const blockNumbers = history.map(([blockBw]) => blockBw.block)\n const min = Math.min(...blockNumbers)\n return Math.max(min - 1, 0)\n}\n","import { useProvidedGateway } from '@xyo-network/xl1-react-client-sdk'\nimport type { XyoNetwork } from '@xyo-network/xl1-sdk'\n\nexport const useNetworkFromGateway = (): XyoNetwork | undefined => {\n const { defaultGateway } = useProvidedGateway()\n return defaultGateway?.connection?.network\n}\n","import { useProvidedGateway } from '@xyo-network/xl1-react-client-sdk'\nimport type { XyoRunner } from '@xyo-network/xl1-sdk'\n\nexport const useRunnerFromGateway = (): XyoRunner | undefined => {\n const { defaultGateway } = useProvidedGateway()\n return defaultGateway?.connection?.runner\n}\n","import { useProvidedGateway } from '@xyo-network/xl1-react-client-sdk'\nimport type { XyoViewer } from '@xyo-network/xl1-sdk'\n\nexport const useViewerFromGateway = (): XyoViewer | undefined => {\n const { defaultGateway } = useProvidedGateway()\n return defaultGateway?.connection?.viewer\n}\n","/** @deprecated Import from `@xyo-network/xl1-react-client-sdk` instead */\nexport { getXyoClient, listenForClientInjection } from '@xyo-network/xl1-react-client-sdk'\n","import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport {\n assertEx, delay, forget, isDefined, isNull,\n} from '@xylabs/sdk-js'\nimport type { SignedHydratedTransaction, XyoViewer } from '@xyo-network/xl1-sdk'\n\nexport interface ConfirmationStatusUpdate {\n blockNumber: number\n confirmed: boolean\n error?: Error\n progress?: number\n remainingBlocks?: number\n}\n\nexport interface TransactionConfirmationParams {\n onStatusUpdate?: (status: ConfirmationStatusUpdate) => void\n transaction: SignedHydratedTransaction\n txHash: Hash\n viewer: XyoViewer\n}\n\nexport class TransactionConfirmationStatus {\n private readonly _params: TransactionConfirmationParams\n private active = false\n\n constructor(params: TransactionConfirmationParams) {\n this._params = params\n }\n\n get exp(): number {\n return assertEx(this.transaction[0].exp, () => 'exp is not found, transaction is not set')\n }\n\n get nbf(): number {\n return assertEx(this.transaction[0].nbf, () => 'nbf is not found, transaction is not set')\n }\n\n get onStatusUpdate(): TransactionConfirmationParams['onStatusUpdate'] {\n return this._params.onStatusUpdate\n }\n\n get params(): TransactionConfirmationParams {\n return this._params\n }\n\n get transaction(): SignedHydratedTransaction {\n return this.params.transaction\n }\n\n get txHash(): Hash {\n return this.params.txHash\n }\n\n get viewer(): XyoViewer {\n return this.params.viewer\n }\n\n static create(params: TransactionConfirmationParams): Promisable<TransactionConfirmationStatus> {\n return new TransactionConfirmationStatus(params)\n }\n\n async start(): Promise<void> {\n this.active = true\n try {\n const currentBlockNumber = await this.viewer.currentBlockNumber()\n while (isDefined(currentBlockNumber) && this.active) {\n await this.checkBlock(currentBlockNumber)\n // check block every second to see if the transaction is confirmed\n await delay(1000)\n }\n } catch (error) {\n await this.stop()\n forget(this.onStatusUpdate?.({\n error: error instanceof Error ? error : new Error('Unknown error occurred'),\n confirmed: false,\n blockNumber: 0,\n progress: 0,\n remainingBlocks: 0,\n }))\n }\n }\n\n stop(): Promisable<void> {\n this.active = false\n }\n\n private async checkBlock(blockNumber: number): Promise<void> {\n if (blockNumber < this.nbf) {\n await this.stop()\n forget(this.onStatusUpdate?.({\n error: new Error(`Block number: ${blockNumber} is before ${this.nbf}`),\n confirmed: false,\n blockNumber,\n progress: 0,\n remainingBlocks: this.exp - blockNumber,\n }))\n }\n if (blockNumber > this.exp) {\n forget(this.onStatusUpdate?.({\n confirmed: false, blockNumber, progress: 100, remainingBlocks: 0,\n }))\n return\n }\n if (blockNumber < this.exp) {\n await this.checkConfirmation(blockNumber)\n }\n }\n\n private async checkConfirmation(blockNumber: number): Promise<void> {\n const remainingBlocks = this.exp - blockNumber\n const progress = Math.round(((blockNumber - this.nbf) / (this.exp - this.nbf)) * 100)\n\n const tx = await this.viewer.transaction.byHash?.(this.txHash)\n if (isNull(tx)) {\n this.onStatusUpdate?.({\n confirmed: false, blockNumber, progress, remainingBlocks,\n })\n } else {\n this.onStatusUpdate?.({\n confirmed: true, blockNumber, progress, remainingBlocks,\n })\n await this.stop()\n }\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { Address } from '@xylabs/sdk-js'\nimport { isUndefined, isUndefinedOrNull } from '@xylabs/sdk-js'\nimport type { AttoXL1, XyoViewer } from '@xyo-network/xl1-sdk'\nimport { ShiftedBigInt } from '@xyo-network/xl1-sdk'\nimport {\n useMemo, useRef, useState,\n} from 'react'\n\nexport const useAddressBalance = (\n // address to get balance for\n address?: Address,\n // viewer to use for fetching balance\n viewer?: XyoViewer,\n // refresh balance trigger\n refresh?: number,\n // reset balance trigger - clears state immediately\n reset?: number,\n) => {\n const [balancesResult, setBalancesResult] = useState<AttoXL1 | null>()\n const [loading, setLoading] = useState(false)\n const [balancesError, setBalancesError] = useState<Error>()\n\n const [previousReset, setPreviousReset] = useState<number | undefined>(reset)\n if (reset !== previousReset) {\n setPreviousReset(reset)\n setBalancesResult(undefined)\n setBalancesError(undefined)\n setLoading(false)\n }\n\n const balancePromiseRef = useRef<Promise<AttoXL1> | null>(null)\n usePromise(async () => {\n if (isUndefined(viewer) || isUndefined(address)) return\n\n setLoading(true)\n setBalancesError(undefined)\n\n // Create and store the current promise\n const currentPromise = viewer.account.balance.accountBalance(address) as Promise<AttoXL1>\n balancePromiseRef.current = currentPromise\n\n try {\n const result = await currentPromise\n // Only update state if this is still the latest promise\n if (balancePromiseRef.current === currentPromise) {\n setBalancesResult(result as AttoXL1)\n setLoading(false)\n }\n } catch (err) {\n // Only update state if this is still the latest promise\n if (balancePromiseRef.current === currentPromise) {\n console.error('Error in queued call:', err)\n setBalancesResult(undefined)\n setBalancesError(err as Error)\n setLoading(false)\n }\n }\n }, [address, viewer, refresh])\n\n const shiftedBigInt = useMemo(() => {\n if (typeof balancesResult !== 'bigint') return\n return new ShiftedBigInt(balancesResult, {\n places: 18, maxDecimal: 18, maxCharacters: 9, minDecimals: 1, locale: navigator.language,\n })\n }, [balancesResult])\n\n const balanceIntlFriendly = useMemo(() => {\n return shiftedBigInt?.toFullString()\n }, [shiftedBigInt])\n\n const shortBalanceIntlFriendly = useMemo(() => {\n return isUndefinedOrNull(balancesResult)\n ? undefined\n : (balancesResult < 1_000_000_000_000n && balancesResult > 0n) ? '<0.00001' : shiftedBigInt?.toShortString()\n }, [balancesResult, shiftedBigInt])\n\n return {\n address,\n balanceForAddress: balancesResult,\n balanceIntlFriendly,\n shortBalanceIntlFriendly,\n error: balancesError,\n loading,\n }\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { Hash } from '@xylabs/sdk-js'\nimport {\n forget, isDefined, isHash,\n} from '@xylabs/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type {\n SignedHydratedTransaction, XyoRunner, XyoViewer,\n} from '@xyo-network/xl1-sdk'\nimport { useEffect, useState } from 'react'\n\nimport type { ConfirmationStatusUpdate, TransactionConfirmationParams } from './helpers/index.ts'\nimport { TransactionConfirmationStatus } from './helpers/index.ts'\n\nexport const useConfirmTransactionBase = (\n // The transaction to confirm\n transaction?: SignedHydratedTransaction,\n // Callback for when the transaction is broadcast to the network\n onBroadcast?: (hash: Hash) => void,\n // Optional callback for status updates during confirmation\n onStatusUpdate?: TransactionConfirmationParams['onStatusUpdate'],\n // Runner to use for broadcasting transactions\n runner?: XyoRunner,\n // Viewer to use for checking transaction status\n viewer?: XyoViewer,\n) => {\n const [status, setStatus] = useState<ConfirmationStatusUpdate>()\n const onStatusUpdateLocal = (newStatus: ConfirmationStatusUpdate) => {\n setStatus(newStatus)\n onStatusUpdate?.(newStatus)\n }\n\n const [transactionConfirmationStatus, transactionConfirmationError] = usePromise(async () => {\n const hasRunner = isDefined(runner)\n if (transaction && viewer) {\n const hash = hasRunner ? (await runner.broadcastTransaction(transaction)) : await PayloadBuilder.hash(transaction[0])\n if (isHash(hash)) {\n if (hasRunner && isDefined(onBroadcast)) onBroadcast(hash)\n const params: TransactionConfirmationParams = {\n onStatusUpdate: onStatusUpdateLocal,\n transaction,\n txHash: hash,\n viewer,\n }\n const instance = await TransactionConfirmationStatus.create(params)\n await instance.start()\n return instance\n } else {\n throw new Error('unexpected return type from broadcast transaction')\n }\n }\n }, [transaction, runner, viewer])\n\n useEffect(() => {\n return () => {\n if (transactionConfirmationStatus) {\n // Stop the transaction confirmation status instance when the component unmounts\n forget(transactionConfirmationStatus.stop())\n }\n }\n }, [transactionConfirmationStatus])\n\n return { status, transactionConfirmationError }\n}\n","import { type Address, asAddress } from '@xylabs/sdk-js'\nimport { assertEx } from '@xylabs/sdk-js'\nimport type { GatewayFromWallet } from '@xyo-network/xl1-react-client-sdk'\nimport { useAccountPermissions, useGatewayFromWallet } from '@xyo-network/xl1-react-client-sdk'\nimport type { GatewayName } from '@xyo-network/xl1-sdk'\nimport { MainNetwork } from '@xyo-network/xl1-sdk'\nimport { useCallback, useState } from 'react'\n\ninterface UseConnectAccountResult {\n address: Address | undefined\n connectSigner: () => Promise<Address | undefined>\n error: Error | null | undefined\n gateway: GatewayFromWallet['gateway']\n timedout: boolean | undefined\n}\n\n/** @deprecated - use version in @xyo-network/xl1-react-client-sdk instead */\nexport const useConnectAccount = (gatewayName: GatewayName = MainNetwork.id, timeout?: number): UseConnectAccountResult => {\n const [connectError, setConnectError] = useState<Error>()\n\n const {\n gateway, error, timedout,\n } = useGatewayFromWallet(gatewayName, timeout)\n\n const [accountPermissions, accountPermissionsError] = useAccountPermissions()\n\n const [address, setAddress] = useState<Address>()\n\n const connectSigner = useCallback(async () => {\n try {\n setConnectError(undefined)\n const assertedGateway = assertEx(gateway, () => `Gateway ${gatewayName} is not available`)\n const signer = assertedGateway.signer\n const address = await signer.address()\n setAddress(address)\n return address\n } catch (e) {\n setConnectError(e as Error)\n }\n }, [gateway, gatewayName])\n\n return {\n address: asAddress(accountPermissions?.[0] ?? address), connectSigner, error: error ?? accountPermissionsError ?? connectError, gateway, timedout,\n }\n}\n","import type { UsePromiseState } from '@xylabs/react-promise'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isDefinedNotNull } from '@xylabs/sdk-js'\nimport type { HydratedBlockWithHashMeta, XyoViewer } from '@xyo-network/xl1-sdk'\n\nimport { useViewerFromGateway } from './gateway/index.ts'\n\n/* @deprecated - use useCurrentBlockFromGateway instead */\nexport const useCurrentBlock = (refresh = 1, viewer?: XyoViewer | null): [HydratedBlockWithHashMeta | undefined,\n Error | undefined, UsePromiseState | undefined] => {\n return usePromise(async () => {\n if (isDefinedNotNull(viewer) && refresh > 0) {\n const block = await viewer.currentBlock()\n return block\n }\n }, [viewer, refresh])\n}\n\nexport const useCurrentBlockFromGateway = (refresh = 1): [HydratedBlockWithHashMeta | undefined,\n Error | undefined, UsePromiseState | undefined] => {\n const viewer = useViewerFromGateway()\n return usePromise(async () => {\n if (isDefinedNotNull(viewer) && refresh > 0) {\n const block = await viewer.currentBlock()\n return block\n }\n }, [viewer, refresh])\n}\n","import { isUndefined } from '@xylabs/sdk-js'\nimport type { DefaultNetworkIds } from '@xyo-network/xl1-sdk'\nimport { SimpleXyoNetwork } from '@xyo-network/xl1-sdk'\nimport { useMemo } from 'react'\n\nexport const useNetwork = (id?: DefaultNetworkIds) => {\n const network = useMemo(() => {\n if (isUndefined(id)) return\n return new SimpleXyoNetwork(id)\n }, [id])\n\n return network\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { AccountInstance } from '@xyo-network/sdk-js'\nimport {\n SimpleXyoSigner, type XyoConnection, type XyoSigner,\n} from '@xyo-network/xl1-sdk'\n\nexport const useSigner = (_provider?: XyoConnection, account?: AccountInstance) => {\n return usePromise<XyoSigner | undefined>(async () => account ? await SimpleXyoSigner.create({ account }) : undefined, [account])\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport {\n delay, isDefined, isUndefined,\n} from '@xylabs/sdk-js'\nimport type { JsonRpcXyoViewer } from '@xyo-network/xl1-sdk'\nimport {\n basicRemoteViewerLocator,\n LocalNetwork,\n SequenceNetwork,\n XyoViewerMoniker,\n} from '@xyo-network/xl1-sdk'\nimport { useEffect, useState } from 'react'\n\nconst INTERVAL = 5000 // 5 seconds\n\nconst localRpcEndpoint = `${LocalNetwork.url}/rpc`\nconst sequenceRpcEndpoint = `${SequenceNetwork.url}/rpc`\n\nexport const useCheckLocalRpc = () => {\n const isLocalProducer = useCheckRpc(localRpcEndpoint)\n return isLocalProducer\n}\n\nexport const useCheckSequenceRpc = () => {\n const isSequenceRpc = useCheckRpc(sequenceRpcEndpoint)\n return isSequenceRpc\n}\n\nexport const useCheckRpc = (endpoint?: string) => {\n const [isLocalProducer, setIsLocalProducer] = useState(false)\n const [error, setError] = useState<Error>()\n\n const [viewer] = usePromise(async () => {\n if (isUndefined(endpoint)) return\n\n const locator = await basicRemoteViewerLocator(endpoint, { rpc: { protocol: 'http', url: endpoint } })\n\n const viewer = await locator.getInstance<JsonRpcXyoViewer>(XyoViewerMoniker)\n return viewer\n }, [endpoint])\n\n useEffect(() => {\n if (isUndefined(viewer)) return\n\n void (async () => {\n setError(undefined)\n while (!isLocalProducer) {\n try {\n const block = await viewer.currentBlock()\n setIsLocalProducer(isDefined(block))\n } catch (err) {\n setError(err as Error)\n setIsLocalProducer(false)\n }\n await delay(INTERVAL)\n }\n })()\n }, [isLocalProducer, viewer])\n\n return { isLocalProducer, error }\n}\n","import { type Hash, isNull } from '@xylabs/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type {\n DataLakeViewer, SignedHydratedBlockWithHashMeta, SignedHydratedTransactionWithHashMeta, XL1BlockNumber,\n} from '@xyo-network/xl1-sdk'\nimport {\n addDataLakePayloads,\n addDataLakePayloadsToPayloads, DataLakeViewerMoniker, JsonRpcXyoViewer,\n} from '@xyo-network/xl1-sdk'\n\n/**\n * A Viewer with data lake capabilities, it will attempt to fill in missing payloads from the\n * data lake viewer if available.\n *\n * THIS IS AN EXPERIMENTAL CLASS! Only intended to prove the data lake viewer functionality works.\n * In the future, it should be refactored to augment any viewer with data lake capabilities,\n * and not rely on inheritance from JsonRpcXyoViewer which has the 'creatable' pattern baked in.\n */\nexport class ViewerWithDataLake extends JsonRpcXyoViewer {\n protected dataLakeViewer: DataLakeViewer | undefined\n\n override async blocksByHash(hash: Hash, limit?: number): Promise<SignedHydratedBlockWithHashMeta[]> {\n const blocks = await super.blocksByHash(hash, limit)\n return await Promise.all(blocks.map(async block => (await addDataLakePayloads(block, this.dataLakeViewer))[0]))\n }\n\n override async blocksByNumber(blockNumber: XL1BlockNumber, limit?: number): Promise<SignedHydratedBlockWithHashMeta[]> {\n const blocks = await super.blocksByNumber(blockNumber, limit)\n return await Promise.all(blocks.map(async block => (await addDataLakePayloads(block, this.dataLakeViewer))[0]))\n }\n\n override async createHandler() {\n await super.createHandler()\n this.dataLakeViewer = await this.locator.tryGetInstance<DataLakeViewer>(DataLakeViewerMoniker)\n }\n\n override async payloadsByHash(hashes: Hash[]) {\n const payloads = await super.payloadsByHash(hashes)\n return (await addDataLakePayloadsToPayloads(hashes, payloads, this.dataLakeViewer))[0]\n }\n\n override async transactionByHash(hash: Hash): Promise<SignedHydratedTransactionWithHashMeta | null> {\n const transaction = await super.transaction.byHash(hash)\n if (!this.dataLakeViewer) return transaction ? [await PayloadBuilder.addHashMeta(transaction[0]), await PayloadBuilder.addHashMeta(transaction[1])] : null\n\n return isNull(transaction)\n ? transaction\n : (await addDataLakePayloads([await PayloadBuilder.addHashMeta(transaction[0]),\n await PayloadBuilder.addHashMeta(transaction[1])], this.dataLakeViewer))[0]\n }\n}\n","import { createContextEx } from '@xylabs/react-shared'\n\nimport type { XL1CurrentBlockState } from './state.ts'\n\nexport const XL1CurrentBlockContext = createContextEx<XL1CurrentBlockState>()\n","import type { XyoViewer } from '@xyo-network/xl1-sdk'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\nimport { XL1CurrentBlockContext } from './context.ts'\nimport type { XL1CurrentBlockPollingConfig, XL1CurrentBlockState } from './state.ts'\nimport { usePollCurrentBlock } from './usePollCurrentBlock.ts'\n\nexport const DEFAULT_POLLING_INTERVAL = 10_000\n\nexport interface XL1CurrentBlockProviderProps extends PropsWithChildren {\n pollingConfig?: XL1CurrentBlockPollingConfig\n viewer?: XyoViewer | null\n}\n\nexport const XL1CurrentBlockProvider: React.FC<XL1CurrentBlockProviderProps> = ({\n pollingConfig, viewer, children,\n}) => {\n const { interval } = useMemo(() => pollingConfig || { interval: DEFAULT_POLLING_INTERVAL }, [pollingConfig])\n const [currentBlock, currentBlockError] = usePollCurrentBlock(viewer, interval)\n\n const value: XL1CurrentBlockState = useMemo(() => ({\n block: currentBlock,\n blockNumber: currentBlock?.[0].block,\n chain: currentBlock?.[0].chain,\n error: currentBlockError,\n pollingConfig,\n provided: true,\n }), [currentBlock, currentBlockError, pollingConfig])\n\n return (\n <XL1CurrentBlockContext value={value}>\n {children}\n </XL1CurrentBlockContext>\n )\n}\n","import { isDefinedNotNull, isUndefinedOrNull } from '@xylabs/sdk-js'\nimport type { SignedHydratedBlock, XyoViewer } from '@xyo-network/xl1-sdk'\nimport {\n startTransition, useEffect, useState,\n} from 'react'\n\nconst DEFAULT_POLL_INTERVAL = 10_000\n\nexport const usePollCurrentBlock = (viewer?: XyoViewer | null, interval = DEFAULT_POLL_INTERVAL, pause = false) => {\n const [currentBlock, setCurrentBlock] = useState<SignedHydratedBlock | null>(null)\n const [error, setError] = useState<Error>()\n\n useEffect(() => {\n let isMounted = true\n // Function to fetch the current block\n const fetchBlock = async () => {\n if (isDefinedNotNull(viewer)) {\n try {\n const block = await viewer.currentBlock()\n // Safety check to ensure component is still mounted before updating state\n if (isMounted) {\n startTransition(() => {\n setCurrentBlock((existingBlock) => {\n if (isUndefinedOrNull(existingBlock)) {\n return block\n }\n if (\n isDefinedNotNull(block) && existingBlock?.[0].block !== block[0].block\n ) {\n return block\n }\n return existingBlock\n })\n })\n }\n } catch (err) {\n startTransition(() => {\n setError(err as Error)\n })\n }\n }\n }\n\n // Initial fetch\n void fetchBlock()\n\n // Polling mechanism\n const id = setInterval(() => {\n if (!pause) {\n void fetchBlock()\n }\n }, interval)\n\n return () => {\n isMounted = false\n clearInterval(id)\n }\n }, [viewer, interval, pause])\n\n return [currentBlock, error] as const\n}\n","import { useContextEx } from '@xylabs/react-shared'\n\nimport { XL1CurrentBlockContext } from './context.ts'\nimport type { XL1CurrentBlockState } from './state.ts'\n\nexport const useXl1CurrentBlockContext = (required = true) => useContextEx<XL1CurrentBlockState>(XL1CurrentBlockContext, 'XL1CurrentBlock', required)\n","/**\n * @deprecated Moved to `@xyo-network/xl1-react-client-sdk`. Import\n * `GatewayProvider` from there instead. This re-export exists only for\n * backward compatibility and will be removed in a future release.\n */\n\nexport { GatewayProvider } from '@xyo-network/xl1-react-client-sdk'\n","/**\n * @deprecated Moved to `@xyo-network/xl1-react-client-sdk`. Import\n * `InPageGatewaysContext` from there instead. This re-export exists only\n * for backward compatibility and will be removed in a future release.\n */\n\nexport { InPageGatewaysContext } from '@xyo-network/xl1-react-client-sdk'\n","/**\n * @deprecated Moved to `@xyo-network/xl1-react-client-sdk`. Import\n * `InPageGatewaysProvider` and `InPageGatewaysProviderProps` from there\n * instead. This re-export exists only for backward compatibility and\n * will be removed in a future release.\n */\n\nexport type { InPageGatewaysProviderProps } from '@xyo-network/xl1-react-client-sdk'\nexport { InPageGatewaysProvider } from '@xyo-network/xl1-react-client-sdk'\n","/**\n * @deprecated Moved to `@xyo-network/xl1-react-client-sdk`. Import\n * `useProvidedInPageGateways` from there instead. This re-export exists\n * only for backward compatibility and will be removed in a future\n * release.\n */\n\nexport { useProvidedInPageGateways } from '@xyo-network/xl1-react-client-sdk'\n"],"mappings":"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","names":["Stack","Tooltip","Typography","EthAddressWrapper","BlockiesAvatarAddress","React","ConnectedAccount","address","shortenedAddress","EthAddressWrapper","fromString","toShortString","Stack","direction","spacing","sx","alignItems","BlockiesAvatarAddress","size","Tooltip","title","Typography","variant","color","fontFamily","Alert","AlertTitle","Button","Stack","Typography","ButtonEx","isDefined","isUndefined","ErrorRender","React","useEffect","hexToBigInt","PayloadBuilder","formatAccountBalanceHistory","address","history","results","item","blockBw","txBw","transfer","transferHash","PayloadBuilder","hash","blockHash","from","to","amount","Object","entries","transfers","push","hexToBigInt","blockNumber","block","timestamp","$epoch","key","globalThis","crypto","randomUUID","txHash","_hash","debug","type","usePromise","isUndefined","hexToBigInt","isHex","toHex","balanceForRange","address","results","totalReceivedBalance","reduce","a","_block","_tx","transfer","hexToBigInt","transfers","toHex","totalSentBalance","from","Object","values","v","isHex","assertEx","isDefined","basicRemoteRunnerLocator","basicRemoteViewerLocator","DefaultNetworks","NetworkDataLakeUrls","XyoGatewayMoniker","buildGateway","gatewayName","signerTransport","network","DefaultNetworks","find","id","resolvedNetwork","assertEx","remoteConfig","rpc","protocol","url","dataLakeEndpoint","NetworkDataLakeUrls","locator","isDefined","basicRemoteRunnerLocator","basicRemoteViewerLocator","getInstance","XyoGatewayMoniker","findMinimumBlock","history","length","blockNumbers","map","blockBw","block","min","Math","max","useAccountBalanceHistory","address","viewer","maxPage","blockRange","refresh","usePromise","isUndefined","page","lastBlock","pagedHistory","resolvedStartBlock","history","account","balance","accountBalanceHistory","range","length","push","findMinimumBlock","nextHistory","formattedHistory","formatAccountBalanceHistory","balanceForRange","truncated","useProvidedGateway","useNetworkFromGateway","defaultGateway","useProvidedGateway","connection","network","useProvidedGateway","useRunnerFromGateway","defaultGateway","useProvidedGateway","connection","runner","useProvidedGateway","useViewerFromGateway","defaultGateway","useProvidedGateway","connection","viewer","getXyoClient","listenForClientInjection","assertEx","delay","forget","isDefined","isNull","TransactionConfirmationStatus","_params","active","params","exp","assertEx","transaction","nbf","onStatusUpdate","txHash","viewer","create","start","currentBlockNumber","isDefined","checkBlock","delay","error","stop","forget","Error","confirmed","blockNumber","progress","remainingBlocks","checkConfirmation","Math","round","tx","byHash","isNull","usePromise","isUndefined","isUndefinedOrNull","ShiftedBigInt","useMemo","useRef","useState","useAddressBalance","address","viewer","refresh","reset","balancesResult","setBalancesResult","useState","loading","setLoading","balancesError","setBalancesError","previousReset","setPreviousReset","undefined","balancePromiseRef","useRef","usePromise","isUndefined","currentPromise","account","balance","accountBalance","current","result","err","console","error","shiftedBigInt","useMemo","ShiftedBigInt","places","maxDecimal","maxCharacters","minDecimals","locale","navigator","language","balanceIntlFriendly","toFullString","shortBalanceIntlFriendly","isUndefinedOrNull","toShortString","balanceForAddress","usePromise","forget","isDefined","isHash","PayloadBuilder","useEffect","useState","useConfirmTransactionBase","transaction","onBroadcast","onStatusUpdate","runner","viewer","status","setStatus","useState","onStatusUpdateLocal","newStatus","transactionConfirmationStatus","transactionConfirmationError","usePromise","hasRunner","isDefined","hash","broadcastTransaction","PayloadBuilder","isHash","params","txHash","instance","TransactionConfirmationStatus","create","start","Error","useEffect","forget","stop","asAddress","assertEx","useAccountPermissions","useGatewayFromWallet","MainNetwork","useCallback","useState","useConnectAccount","gatewayName","MainNetwork","id","timeout","connectError","setConnectError","useState","gateway","error","timedout","useGatewayFromWallet","accountPermissions","accountPermissionsError","useAccountPermissions","address","setAddress","connectSigner","useCallback","undefined","assertedGateway","assertEx","signer","e","asAddress","usePromise","isDefinedNotNull","useCurrentBlock","refresh","viewer","usePromise","isDefinedNotNull","block","currentBlock","useCurrentBlockFromGateway","useViewerFromGateway","isUndefined","SimpleXyoNetwork","useMemo","useNetwork","id","network","useMemo","isUndefined","SimpleXyoNetwork","usePromise","SimpleXyoSigner","useSigner","_provider","account","usePromise","SimpleXyoSigner","create","undefined","usePromise","delay","isDefined","isUndefined","basicRemoteViewerLocator","LocalNetwork","SequenceNetwork","XyoViewerMoniker","useEffect","useState","INTERVAL","localRpcEndpoint","LocalNetwork","url","sequenceRpcEndpoint","SequenceNetwork","useCheckLocalRpc","isLocalProducer","useCheckRpc","useCheckSequenceRpc","isSequenceRpc","endpoint","setIsLocalProducer","useState","error","setError","viewer","usePromise","isUndefined","locator","basicRemoteViewerLocator","rpc","protocol","getInstance","XyoViewerMoniker","useEffect","undefined","block","currentBlock","isDefined","err","delay","isNull","PayloadBuilder","addDataLakePayloads","addDataLakePayloadsToPayloads","DataLakeViewerMoniker","JsonRpcXyoViewer","ViewerWithDataLake","JsonRpcXyoViewer","dataLakeViewer","blocksByHash","hash","limit","blocks","Promise","all","map","block","addDataLakePayloads","blocksByNumber","blockNumber","createHandler","locator","tryGetInstance","DataLakeViewerMoniker","payloadsByHash","hashes","payloads","addDataLakePayloadsToPayloads","transactionByHash","transaction","byHash","PayloadBuilder","addHashMeta","isNull","DefaultConnectComponent","props","React","ButtonEx","variant","size","DefaultNoWalletInstalledComponent","Alert","severity","AlertTitle","Typography","gutterBottom","Button","sx","display","justifySelf","href","target","rel","ConnectAccountsStack","AccountComponent","ConnectedAccount","ConnectComponent","NoWalletInstalledComponent","onAccountConnected","onCancel","timeout","address","connectSigner","error","timedout","useConnectAccount","undefined","useEffect","isDefined","Stack","direction","spacing","alignItems","Array","isArray","isUndefined","onClick","ErrorRender","scope","createContextEx","XL1CurrentBlockContext","React","useMemo","isDefinedNotNull","isUndefinedOrNull","startTransition","useEffect","useState","DEFAULT_POLL_INTERVAL","usePollCurrentBlock","viewer","interval","pause","currentBlock","setCurrentBlock","useState","error","setError","useEffect","isMounted","fetchBlock","isDefinedNotNull","block","startTransition","existingBlock","isUndefinedOrNull","err","id","setInterval","clearInterval","DEFAULT_POLLING_INTERVAL","XL1CurrentBlockProvider","pollingConfig","viewer","children","interval","useMemo","currentBlock","currentBlockError","usePollCurrentBlock","value","block","blockNumber","chain","error","provided","React","XL1CurrentBlockContext","useContextEx","useXl1CurrentBlockContext","required","useContextEx","XL1CurrentBlockContext","GatewayProvider","InPageGatewaysContext","InPageGatewaysProvider","useProvidedInPageGateways"]}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/connected/account/Connected.tsx", "../../src/components/connected/ConnectAccountsStack.tsx", "../../src/hooks/account/helpers/formatAccountBalanceHistory.ts", "../../src/hooks/account/useAccountBalanceHistory.ts", "../../src/lib/balanceForRange.ts", "../../src/lib/buildGateway.ts", "../../src/lib/findMinimumBlock.ts", "../../src/hooks/gateway/useNetwork.ts", "../../src/hooks/gateway/useRunner.ts", "../../src/hooks/gateway/useViewer.ts", "../../src/hooks/helpers/getXyoClient.ts", "../../src/hooks/helpers/transaction/Confirmation.ts", "../../src/hooks/useAddressBalance.ts", "../../src/hooks/useConfirmTransactionBase.ts", "../../src/hooks/useConnectAccount.ts", "../../src/hooks/useCurrentBlock.ts", "../../src/hooks/useNetwork.ts", "../../src/hooks/useSigner.ts", "../../src/hooks/viewer/useCheckRpc.ts", "../../src/hooks/viewer/ViewerWithDataLake.ts", "../../src/contexts/current-block/context.ts", "../../src/contexts/current-block/Provider.tsx", "../../src/contexts/current-block/usePollCurrentBlock.ts", "../../src/contexts/current-block/use.ts", "../../src/contexts/gateway/Provider.tsx", "../../src/contexts/in-page-gateways/context.ts", "../../src/contexts/in-page-gateways/Provider.tsx", "../../src/contexts/in-page-gateways/use.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n Stack, Tooltip, Typography,\n} from '@mui/material'\nimport { EthAddressWrapper } from '@xylabs/sdk-js'\nimport { BlockiesAvatarAddress } from '@xyo-network/xl1-blockies'\nimport React from 'react'\n\nexport const ConnectedAccount: React.FC<{ address: string }> = ({ address }) => {\n const shortenedAddress = `${EthAddressWrapper.fromString(address)?.toShortString(4)}`\n\n return (\n <Stack\n direction=\"row\"\n spacing={1}\n sx={{ alignItems: 'center' }}\n >\n <BlockiesAvatarAddress address={address} size={21} />\n <Tooltip title={address}>\n <Typography\n variant=\"caption\"\n sx={{\n color: 'text.secondary',\n fontFamily: 'monospace',\n }}\n >\n {shortenedAddress}\n </Typography>\n </Tooltip>\n </Stack>\n )\n}\n", "import type { StackProps } from '@mui/material'\nimport {\n Alert, AlertTitle, Button, Stack,\n Typography,\n} from '@mui/material'\nimport type { ButtonExProps } from '@xylabs/react-button'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { Address } from '@xylabs/sdk-js'\nimport { isDefined, isUndefined } from '@xylabs/sdk-js'\nimport { ErrorRender } from '@xyo-network/react-error'\nimport type { ComponentType, MouseEventHandler } from 'react'\nimport React, { useEffect } from 'react'\n\nimport { useConnectAccount } from '../../hooks/index.ts'\nimport { ConnectedAccount } from './account/index.ts'\n\nconst DefaultConnectComponent: React.FC<ButtonExProps> = props => (\n <ButtonEx variant=\"contained\" size=\"small\" {...props} />\n)\n\nconst DefaultNoWalletInstalledComponent: React.FC = () => (\n <Alert severity=\"warning\">\n <AlertTitle>XL1 Wallet Not Found</AlertTitle>\n <Typography gutterBottom>\n Please ensure that your XL1 Wallet is installed to connect your account.\n </Typography>\n <Button\n sx={{ display: 'flex', justifySelf: 'end' }}\n size=\"small\"\n variant=\"outlined\"\n href=\"https://chromewebstore.google.com/detail/xl1-wallet/fblbagcjeigmhakkfgjpdlcapcgmcfbm\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n Get XL1 Wallet\n </Button>\n </Alert>\n)\n\nexport interface ConnectClientAccountsStackProps extends StackProps {\n AccountComponent?: ComponentType<{ account?: string }>\n ConnectComponent?: ComponentType<{ onClick?: MouseEventHandler<HTMLElement> }>\n NoWalletInstalledComponent?: ComponentType\n onAccountConnected?: (account: Address) => void\n onCancel?: () => void\n timeout?: number\n}\n\n/** @deprecated - use version in @xyo-network/xl1-react-client-sdk instead */\nexport const ConnectAccountsStack: React.FC<ConnectClientAccountsStackProps> = ({\n AccountComponent = ConnectedAccount,\n ConnectComponent = DefaultConnectComponent,\n NoWalletInstalledComponent = DefaultNoWalletInstalledComponent,\n onAccountConnected,\n onCancel,\n timeout,\n ...props\n}) => {\n const {\n address, connectSigner, error, timedout,\n } = useConnectAccount(undefined, timeout)\n\n useEffect(() => {\n if (isDefined(error) && isDefined(onCancel)) {\n onCancel()\n }\n }, [error, onCancel])\n\n useEffect(() => {\n if (isDefined(address) && isDefined(onAccountConnected)) {\n onAccountConnected(address)\n }\n }, [address, onAccountConnected])\n\n return (\n <Stack\n direction=\"row\"\n spacing={2}\n {...props}\n sx={[{ alignItems: 'start' }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n >\n {isDefined(address)\n ? <AccountComponent address={address} />\n : null}\n {isUndefined(address) && !timedout\n ? (\n <ConnectComponent onClick={() => void connectSigner()}>Connect</ConnectComponent>\n )\n : null}\n {isUndefined(address) && timedout\n ? (\n <NoWalletInstalledComponent />\n )\n : null}\n <ErrorRender error={error} scope=\"ConnectSigner:error\" />\n </Stack>\n )\n}\n", "import type { Address, Hex } from '@xylabs/sdk-js'\nimport { hexToBigInt } from '@xylabs/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type { AccountBalanceHistoryItem } from '@xyo-network/xl1-sdk'\n\nimport type { AccountBalanceHistoryItemFormatted } from '../BalanceHistoryItemFormatted.ts'\n\nexport const formatAccountBalanceHistory = async (address: Address, history: AccountBalanceHistoryItem[]): Promise<AccountBalanceHistoryItemFormatted[]> => {\n const results: AccountBalanceHistoryItemFormatted[] = []\n for (const item of history) {\n const [blockBw, txBw, transfer] = item\n const transferHash = await PayloadBuilder.hash(transfer)\n const blockHash = await PayloadBuilder.hash(blockBw)\n if (address === transfer.from) {\n for (const [to, amount] of Object.entries(transfer.transfers)) {\n results.push({\n amount: hexToBigInt(amount as Hex),\n blockHash,\n blockNumber: blockBw.block,\n from: transfer.from,\n timestamp: blockBw.$epoch,\n key: globalThis.crypto.randomUUID(),\n to: to as Address,\n transferHash,\n txHash: txBw?._hash,\n debug: item,\n type: 'send',\n })\n }\n } else {\n results.push({\n amount: hexToBigInt(transfer.transfers[address] as Hex),\n blockHash,\n blockNumber: blockBw.block,\n from: transfer.from,\n key: globalThis.crypto.randomUUID(),\n timestamp: blockBw.$epoch,\n to: address,\n transferHash,\n txHash: txBw?._hash,\n debug: item,\n type: 'receive',\n })\n }\n }\n return results\n}\n", "import { usePromise } from '@xylabs/react-promise'\nimport {\n type Address,\n isUndefined,\n} from '@xylabs/sdk-js'\nimport type {\n AccountBalanceHistoryItem, XL1BlockRange, XyoViewer,\n} from '@xyo-network/xl1-sdk'\n\nimport { balanceForRange, findMinimumBlock } from '../../lib/index.ts'\nimport { formatAccountBalanceHistory } from './helpers/index.ts'\n\nexport const useAccountBalanceHistory = (address?: Address, viewer?: XyoViewer, maxPage = 10, blockRange?: XL1BlockRange, refresh?: number) => {\n return usePromise(async () => {\n if (isUndefined(viewer) || isUndefined(address)) return\n\n // Pagination Values\n let page = 1\n let lastBlock: number\n const pagedHistory: AccountBalanceHistoryItem[] = []\n const resolvedStartBlock = blockRange ? blockRange[0] : 0\n\n // Fetch first page to get starting lastBlock\n // If blockRange is provided, use that for the first fetch, otherwise the api will use [0, currentBlock]\n const history = await viewer.account.balance.accountBalanceHistory(address, blockRange ? { range: blockRange } : {})\n if (history.length > 0) {\n pagedHistory.push(...history)\n // Set lastBlock to one less than the lowest block in the first page\n lastBlock = findMinimumBlock(history)\n while (page < maxPage) {\n // Fetch next page\n const nextHistory = await viewer.account.balance.accountBalanceHistory(address, { range: [resolvedStartBlock, lastBlock] as XL1BlockRange })\n // Break if no more history\n if (nextHistory.length === 0) break\n // Update lastBlock and append to pagedHistory\n lastBlock = findMinimumBlock(nextHistory)\n pagedHistory.push(...nextHistory)\n // Increment page\n // Even if we are going to go over and break the loop, we still want to increment to show the answer was truncated\n page++\n }\n }\n const formattedHistory = await formatAccountBalanceHistory(address, pagedHistory)\n\n return {\n history: formattedHistory,\n balance: balanceForRange(address, pagedHistory),\n truncated: page >= maxPage,\n }\n }, [address, viewer, refresh, blockRange, maxPage])\n}\n", "import type { Address } from '@xylabs/sdk-js'\nimport {\n hexToBigInt, isHex, toHex,\n} from '@xylabs/sdk-js'\nimport type { AccountBalanceHistoryItem, AttoXL1 } from '@xyo-network/xl1-sdk'\n\nexport const balanceForRange = (address: Address, results: AccountBalanceHistoryItem[]): [AttoXL1, AttoXL1] => {\n const totalReceivedBalance = results?.reduce((a, [_block, _tx, transfer]) => {\n return a + hexToBigInt(transfer.transfers[address] ?? toHex(0))\n }, 0n)\n // eslint-disable-next-line unicorn/no-array-reduce\n const totalSentBalance = results?.reduce((a, [_block, _tx, transfer]) => {\n return (transfer.from === address) ? a + Object.values(transfer.transfers).reduce((a, v) => a + (isHex(v) ? hexToBigInt(v) : 0n), 0n) : a\n }, 0n)\n return [totalReceivedBalance, totalSentBalance] as [AttoXL1, AttoXL1]\n}\n", "import { assertEx, isDefined } from '@xylabs/sdk-js'\nimport type {\n GatewayName,\n RemoteConfig, RpcTransport, SimpleXyoGateway,\n XyoSignerRpcSchemas,\n} from '@xyo-network/xl1-sdk'\nimport {\n basicRemoteRunnerLocator,\n basicRemoteViewerLocator,\n DefaultNetworks, NetworkDataLakeUrls, XyoGatewayMoniker,\n} from '@xyo-network/xl1-sdk'\n\nexport const buildGateway = async (gatewayName: GatewayName, signerTransport?: RpcTransport<XyoSignerRpcSchemas>) => {\n const network = DefaultNetworks.find(network => network.id === gatewayName)\n const resolvedNetwork = assertEx(network, () => `No network found for id ${gatewayName}`)\n\n const remoteConfig: RemoteConfig = {\n rpc: {\n protocol: 'http',\n url: `${resolvedNetwork.url}/rpc`,\n },\n }\n\n const dataLakeEndpoint = NetworkDataLakeUrls[gatewayName]\n\n const locator = isDefined(signerTransport)\n ? await basicRemoteRunnerLocator(gatewayName, remoteConfig, signerTransport, dataLakeEndpoint)\n : await basicRemoteViewerLocator(gatewayName, remoteConfig, dataLakeEndpoint)\n\n return await locator.getInstance<SimpleXyoGateway>(XyoGatewayMoniker)\n}\n", "import type { AccountBalanceHistoryItem } from '@xyo-network/xl1-sdk'\n\nexport const findMinimumBlock = (history: AccountBalanceHistoryItem[]): number => {\n // since taking Math.min of an empty array returns Infinity\n if (history.length === 0) return 0\n const blockNumbers = history.map(([blockBw]) => blockBw.block)\n const min = Math.min(...blockNumbers)\n return Math.max(min - 1, 0)\n}\n", "import { useProvidedGateway } from '@xyo-network/xl1-react-client-sdk'\nimport type { XyoNetwork } from '@xyo-network/xl1-sdk'\n\nexport const useNetworkFromGateway = (): XyoNetwork | undefined => {\n const { defaultGateway } = useProvidedGateway()\n return defaultGateway?.connection?.network\n}\n", "import { useProvidedGateway } from '@xyo-network/xl1-react-client-sdk'\nimport type { XyoRunner } from '@xyo-network/xl1-sdk'\n\nexport const useRunnerFromGateway = (): XyoRunner | undefined => {\n const { defaultGateway } = useProvidedGateway()\n return defaultGateway?.connection?.runner\n}\n", "import { useProvidedGateway } from '@xyo-network/xl1-react-client-sdk'\nimport type { XyoViewer } from '@xyo-network/xl1-sdk'\n\nexport const useViewerFromGateway = (): XyoViewer | undefined => {\n const { defaultGateway } = useProvidedGateway()\n return defaultGateway?.connection?.viewer\n}\n", "/** @deprecated Import from `@xyo-network/xl1-react-client-sdk` instead */\nexport { getXyoClient, listenForClientInjection } from '@xyo-network/xl1-react-client-sdk'\n", "import type { Hash, Promisable } from '@xylabs/sdk-js'\nimport {\n assertEx, delay, forget, isDefined, isNull,\n} from '@xylabs/sdk-js'\nimport type { SignedHydratedTransaction, XyoViewer } from '@xyo-network/xl1-sdk'\n\nexport interface ConfirmationStatusUpdate {\n blockNumber: number\n confirmed: boolean\n error?: Error\n progress?: number\n remainingBlocks?: number\n}\n\nexport interface TransactionConfirmationParams {\n onStatusUpdate?: (status: ConfirmationStatusUpdate) => void\n transaction: SignedHydratedTransaction\n txHash: Hash\n viewer: XyoViewer\n}\n\nexport class TransactionConfirmationStatus {\n private readonly _params: TransactionConfirmationParams\n private active = false\n\n constructor(params: TransactionConfirmationParams) {\n this._params = params\n }\n\n get exp(): number {\n return assertEx(this.transaction[0].exp, () => 'exp is not found, transaction is not set')\n }\n\n get nbf(): number {\n return assertEx(this.transaction[0].nbf, () => 'nbf is not found, transaction is not set')\n }\n\n get onStatusUpdate(): TransactionConfirmationParams['onStatusUpdate'] {\n return this._params.onStatusUpdate\n }\n\n get params(): TransactionConfirmationParams {\n return this._params\n }\n\n get transaction(): SignedHydratedTransaction {\n return this.params.transaction\n }\n\n get txHash(): Hash {\n return this.params.txHash\n }\n\n get viewer(): XyoViewer {\n return this.params.viewer\n }\n\n static create(params: TransactionConfirmationParams): Promisable<TransactionConfirmationStatus> {\n return new TransactionConfirmationStatus(params)\n }\n\n async start(): Promise<void> {\n this.active = true\n try {\n const currentBlockNumber = await this.viewer.currentBlockNumber()\n while (isDefined(currentBlockNumber) && this.active) {\n await this.checkBlock(currentBlockNumber)\n // check block every second to see if the transaction is confirmed\n await delay(1000)\n }\n } catch (error) {\n await this.stop()\n forget(this.onStatusUpdate?.({\n error: error instanceof Error ? error : new Error('Unknown error occurred'),\n confirmed: false,\n blockNumber: 0,\n progress: 0,\n remainingBlocks: 0,\n }))\n }\n }\n\n stop(): Promisable<void> {\n this.active = false\n }\n\n private async checkBlock(blockNumber: number): Promise<void> {\n if (blockNumber < this.nbf) {\n await this.stop()\n forget(this.onStatusUpdate?.({\n error: new Error(`Block number: ${blockNumber} is before ${this.nbf}`),\n confirmed: false,\n blockNumber,\n progress: 0,\n remainingBlocks: this.exp - blockNumber,\n }))\n }\n if (blockNumber > this.exp) {\n forget(this.onStatusUpdate?.({\n confirmed: false, blockNumber, progress: 100, remainingBlocks: 0,\n }))\n return\n }\n if (blockNumber < this.exp) {\n await this.checkConfirmation(blockNumber)\n }\n }\n\n private async checkConfirmation(blockNumber: number): Promise<void> {\n const remainingBlocks = this.exp - blockNumber\n const progress = Math.round(((blockNumber - this.nbf) / (this.exp - this.nbf)) * 100)\n\n const tx = await this.viewer.transaction.byHash?.(this.txHash)\n if (isNull(tx)) {\n this.onStatusUpdate?.({\n confirmed: false, blockNumber, progress, remainingBlocks,\n })\n } else {\n this.onStatusUpdate?.({\n confirmed: true, blockNumber, progress, remainingBlocks,\n })\n await this.stop()\n }\n }\n}\n", "import { usePromise } from '@xylabs/react-promise'\nimport type { Address } from '@xylabs/sdk-js'\nimport { isUndefined, isUndefinedOrNull } from '@xylabs/sdk-js'\nimport type { AttoXL1, XyoViewer } from '@xyo-network/xl1-sdk'\nimport { ShiftedBigInt } from '@xyo-network/xl1-sdk'\nimport {\n useMemo, useRef, useState,\n} from 'react'\n\nexport const useAddressBalance = (\n // address to get balance for\n address?: Address,\n // viewer to use for fetching balance\n viewer?: XyoViewer,\n // refresh balance trigger\n refresh?: number,\n // reset balance trigger - clears state immediately\n reset?: number,\n) => {\n const [balancesResult, setBalancesResult] = useState<AttoXL1 | null>()\n const [loading, setLoading] = useState(false)\n const [balancesError, setBalancesError] = useState<Error>()\n\n const [previousReset, setPreviousReset] = useState<number | undefined>(reset)\n if (reset !== previousReset) {\n setPreviousReset(reset)\n setBalancesResult(undefined)\n setBalancesError(undefined)\n setLoading(false)\n }\n\n const balancePromiseRef = useRef<Promise<AttoXL1> | null>(null)\n usePromise(async () => {\n if (isUndefined(viewer) || isUndefined(address)) return\n\n setLoading(true)\n setBalancesError(undefined)\n\n // Create and store the current promise\n const currentPromise = viewer.account.balance.accountBalance(address) as Promise<AttoXL1>\n balancePromiseRef.current = currentPromise\n\n try {\n const result = await currentPromise\n // Only update state if this is still the latest promise\n if (balancePromiseRef.current === currentPromise) {\n setBalancesResult(result as AttoXL1)\n setLoading(false)\n }\n } catch (err) {\n // Only update state if this is still the latest promise\n if (balancePromiseRef.current === currentPromise) {\n console.error('Error in queued call:', err)\n setBalancesResult(undefined)\n setBalancesError(err as Error)\n setLoading(false)\n }\n }\n }, [address, viewer, refresh])\n\n const shiftedBigInt = useMemo(() => {\n if (typeof balancesResult !== 'bigint') return\n return new ShiftedBigInt(balancesResult, {\n places: 18, maxDecimal: 18, maxCharacters: 9, minDecimals: 1, locale: navigator.language,\n })\n }, [balancesResult])\n\n const balanceIntlFriendly = useMemo(() => {\n return shiftedBigInt?.toFullString()\n }, [shiftedBigInt])\n\n const shortBalanceIntlFriendly = useMemo(() => {\n return isUndefinedOrNull(balancesResult)\n ? undefined\n : (balancesResult < 1_000_000_000_000n && balancesResult > 0n) ? '<0.00001' : shiftedBigInt?.toShortString()\n }, [balancesResult, shiftedBigInt])\n\n return {\n address,\n balanceForAddress: balancesResult,\n balanceIntlFriendly,\n shortBalanceIntlFriendly,\n error: balancesError,\n loading,\n }\n}\n", "import { usePromise } from '@xylabs/react-promise'\nimport type { Hash } from '@xylabs/sdk-js'\nimport {\n forget, isDefined, isHash,\n} from '@xylabs/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type {\n SignedHydratedTransaction, XyoRunner, XyoViewer,\n} from '@xyo-network/xl1-sdk'\nimport { useEffect, useState } from 'react'\n\nimport type { ConfirmationStatusUpdate, TransactionConfirmationParams } from './helpers/index.ts'\nimport { TransactionConfirmationStatus } from './helpers/index.ts'\n\nexport const useConfirmTransactionBase = (\n // The transaction to confirm\n transaction?: SignedHydratedTransaction,\n // Callback for when the transaction is broadcast to the network\n onBroadcast?: (hash: Hash) => void,\n // Optional callback for status updates during confirmation\n onStatusUpdate?: TransactionConfirmationParams['onStatusUpdate'],\n // Runner to use for broadcasting transactions\n runner?: XyoRunner,\n // Viewer to use for checking transaction status\n viewer?: XyoViewer,\n) => {\n const [status, setStatus] = useState<ConfirmationStatusUpdate>()\n const onStatusUpdateLocal = (newStatus: ConfirmationStatusUpdate) => {\n setStatus(newStatus)\n onStatusUpdate?.(newStatus)\n }\n\n const [transactionConfirmationStatus, transactionConfirmationError] = usePromise(async () => {\n const hasRunner = isDefined(runner)\n if (transaction && viewer) {\n const hash = hasRunner ? (await runner.broadcastTransaction(transaction)) : await PayloadBuilder.hash(transaction[0])\n if (isHash(hash)) {\n if (hasRunner && isDefined(onBroadcast)) onBroadcast(hash)\n const params: TransactionConfirmationParams = {\n onStatusUpdate: onStatusUpdateLocal,\n transaction,\n txHash: hash,\n viewer,\n }\n const instance = await TransactionConfirmationStatus.create(params)\n await instance.start()\n return instance\n } else {\n throw new Error('unexpected return type from broadcast transaction')\n }\n }\n }, [transaction, runner, viewer])\n\n useEffect(() => {\n return () => {\n if (transactionConfirmationStatus) {\n // Stop the transaction confirmation status instance when the component unmounts\n forget(transactionConfirmationStatus.stop())\n }\n }\n }, [transactionConfirmationStatus])\n\n return { status, transactionConfirmationError }\n}\n", "import { type Address, asAddress } from '@xylabs/sdk-js'\nimport { assertEx } from '@xylabs/sdk-js'\nimport type { GatewayFromWallet } from '@xyo-network/xl1-react-client-sdk'\nimport { useAccountPermissions, useGatewayFromWallet } from '@xyo-network/xl1-react-client-sdk'\nimport type { GatewayName } from '@xyo-network/xl1-sdk'\nimport { MainNetwork } from '@xyo-network/xl1-sdk'\nimport { useCallback, useState } from 'react'\n\ninterface UseConnectAccountResult {\n address: Address | undefined\n connectSigner: () => Promise<Address | undefined>\n error: Error | null | undefined\n gateway: GatewayFromWallet['gateway']\n timedout: boolean | undefined\n}\n\n/** @deprecated - use version in @xyo-network/xl1-react-client-sdk instead */\nexport const useConnectAccount = (gatewayName: GatewayName = MainNetwork.id, timeout?: number): UseConnectAccountResult => {\n const [connectError, setConnectError] = useState<Error>()\n\n const {\n gateway, error, timedout,\n } = useGatewayFromWallet(gatewayName, timeout)\n\n const [accountPermissions, accountPermissionsError] = useAccountPermissions()\n\n const [address, setAddress] = useState<Address>()\n\n const connectSigner = useCallback(async () => {\n try {\n setConnectError(undefined)\n const assertedGateway = assertEx(gateway, () => `Gateway ${gatewayName} is not available`)\n const signer = assertedGateway.signer\n const address = await signer.address()\n setAddress(address)\n return address\n } catch (e) {\n setConnectError(e as Error)\n }\n }, [gateway, gatewayName])\n\n return {\n address: asAddress(accountPermissions?.[0] ?? address), connectSigner, error: error ?? accountPermissionsError ?? connectError, gateway, timedout,\n }\n}\n", "import type { UsePromiseState } from '@xylabs/react-promise'\nimport { usePromise } from '@xylabs/react-promise'\nimport { isDefinedNotNull } from '@xylabs/sdk-js'\nimport type { HydratedBlockWithHashMeta, XyoViewer } from '@xyo-network/xl1-sdk'\n\nimport { useViewerFromGateway } from './gateway/index.ts'\n\n/* @deprecated - use useCurrentBlockFromGateway instead */\nexport const useCurrentBlock = (refresh = 1, viewer?: XyoViewer | null): [HydratedBlockWithHashMeta | undefined,\n Error | undefined, UsePromiseState | undefined] => {\n return usePromise(async () => {\n if (isDefinedNotNull(viewer) && refresh > 0) {\n const block = await viewer.currentBlock()\n return block\n }\n }, [viewer, refresh])\n}\n\nexport const useCurrentBlockFromGateway = (refresh = 1): [HydratedBlockWithHashMeta | undefined,\n Error | undefined, UsePromiseState | undefined] => {\n const viewer = useViewerFromGateway()\n return usePromise(async () => {\n if (isDefinedNotNull(viewer) && refresh > 0) {\n const block = await viewer.currentBlock()\n return block\n }\n }, [viewer, refresh])\n}\n", "import { isUndefined } from '@xylabs/sdk-js'\nimport type { DefaultNetworkIds } from '@xyo-network/xl1-sdk'\nimport { SimpleXyoNetwork } from '@xyo-network/xl1-sdk'\nimport { useMemo } from 'react'\n\nexport const useNetwork = (id?: DefaultNetworkIds) => {\n const network = useMemo(() => {\n if (isUndefined(id)) return\n return new SimpleXyoNetwork(id)\n }, [id])\n\n return network\n}\n", "import { usePromise } from '@xylabs/react-promise'\nimport type { AccountInstance } from '@xyo-network/sdk-js'\nimport {\n SimpleXyoSigner, type XyoConnection, type XyoSigner,\n} from '@xyo-network/xl1-sdk'\n\nexport const useSigner = (_provider?: XyoConnection, account?: AccountInstance) => {\n return usePromise<XyoSigner | undefined>(async () => account ? await SimpleXyoSigner.create({ account }) : undefined, [account])\n}\n", "import { usePromise } from '@xylabs/react-promise'\nimport {\n delay, isDefined, isUndefined,\n} from '@xylabs/sdk-js'\nimport type { JsonRpcXyoViewer } from '@xyo-network/xl1-sdk'\nimport {\n basicRemoteViewerLocator,\n LocalNetwork,\n SequenceNetwork,\n XyoViewerMoniker,\n} from '@xyo-network/xl1-sdk'\nimport { useEffect, useState } from 'react'\n\nconst INTERVAL = 5000 // 5 seconds\n\nconst localRpcEndpoint = `${LocalNetwork.url}/rpc`\nconst sequenceRpcEndpoint = `${SequenceNetwork.url}/rpc`\n\nexport const useCheckLocalRpc = () => {\n const isLocalProducer = useCheckRpc(localRpcEndpoint)\n return isLocalProducer\n}\n\nexport const useCheckSequenceRpc = () => {\n const isSequenceRpc = useCheckRpc(sequenceRpcEndpoint)\n return isSequenceRpc\n}\n\nexport const useCheckRpc = (endpoint?: string) => {\n const [isLocalProducer, setIsLocalProducer] = useState(false)\n const [error, setError] = useState<Error>()\n\n const [viewer] = usePromise(async () => {\n if (isUndefined(endpoint)) return\n\n const locator = await basicRemoteViewerLocator(endpoint, { rpc: { protocol: 'http', url: endpoint } })\n\n const viewer = await locator.getInstance<JsonRpcXyoViewer>(XyoViewerMoniker)\n return viewer\n }, [endpoint])\n\n useEffect(() => {\n if (isUndefined(viewer)) return\n\n void (async () => {\n setError(undefined)\n while (!isLocalProducer) {\n try {\n const block = await viewer.currentBlock()\n setIsLocalProducer(isDefined(block))\n } catch (err) {\n setError(err as Error)\n setIsLocalProducer(false)\n }\n await delay(INTERVAL)\n }\n })()\n }, [isLocalProducer, viewer])\n\n return { isLocalProducer, error }\n}\n", "import { type Hash, isNull } from '@xylabs/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type {\n DataLakeViewer, SignedHydratedBlockWithHashMeta, SignedHydratedTransactionWithHashMeta, XL1BlockNumber,\n} from '@xyo-network/xl1-sdk'\nimport {\n addDataLakePayloads,\n addDataLakePayloadsToPayloads, DataLakeViewerMoniker, JsonRpcXyoViewer,\n} from '@xyo-network/xl1-sdk'\n\n/**\n * A Viewer with data lake capabilities, it will attempt to fill in missing payloads from the\n * data lake viewer if available.\n *\n * THIS IS AN EXPERIMENTAL CLASS! Only intended to prove the data lake viewer functionality works.\n * In the future, it should be refactored to augment any viewer with data lake capabilities,\n * and not rely on inheritance from JsonRpcXyoViewer which has the 'creatable' pattern baked in.\n */\nexport class ViewerWithDataLake extends JsonRpcXyoViewer {\n protected dataLakeViewer: DataLakeViewer | undefined\n\n override async blocksByHash(hash: Hash, limit?: number): Promise<SignedHydratedBlockWithHashMeta[]> {\n const blocks = await super.blocksByHash(hash, limit)\n return await Promise.all(blocks.map(async block => (await addDataLakePayloads(block, this.dataLakeViewer))[0]))\n }\n\n override async blocksByNumber(blockNumber: XL1BlockNumber, limit?: number): Promise<SignedHydratedBlockWithHashMeta[]> {\n const blocks = await super.blocksByNumber(blockNumber, limit)\n return await Promise.all(blocks.map(async block => (await addDataLakePayloads(block, this.dataLakeViewer))[0]))\n }\n\n override async createHandler() {\n await super.createHandler()\n this.dataLakeViewer = await this.locator.tryGetInstance<DataLakeViewer>(DataLakeViewerMoniker)\n }\n\n override async payloadsByHash(hashes: Hash[]) {\n const payloads = await super.payloadsByHash(hashes)\n return (await addDataLakePayloadsToPayloads(hashes, payloads, this.dataLakeViewer))[0]\n }\n\n override async transactionByHash(hash: Hash): Promise<SignedHydratedTransactionWithHashMeta | null> {\n const transaction = await super.transaction.byHash(hash)\n if (!this.dataLakeViewer) return transaction ? [await PayloadBuilder.addHashMeta(transaction[0]), await PayloadBuilder.addHashMeta(transaction[1])] : null\n\n return isNull(transaction)\n ? transaction\n : (await addDataLakePayloads([await PayloadBuilder.addHashMeta(transaction[0]),\n await PayloadBuilder.addHashMeta(transaction[1])], this.dataLakeViewer))[0]\n }\n}\n", "import { createContextEx } from '@xylabs/react-shared'\n\nimport type { XL1CurrentBlockState } from './state.ts'\n\nexport const XL1CurrentBlockContext = createContextEx<XL1CurrentBlockState>()\n", "import type { XyoViewer } from '@xyo-network/xl1-sdk'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\nimport { XL1CurrentBlockContext } from './context.ts'\nimport type { XL1CurrentBlockPollingConfig, XL1CurrentBlockState } from './state.ts'\nimport { usePollCurrentBlock } from './usePollCurrentBlock.ts'\n\nexport const DEFAULT_POLLING_INTERVAL = 10_000\n\nexport interface XL1CurrentBlockProviderProps extends PropsWithChildren {\n pollingConfig?: XL1CurrentBlockPollingConfig\n viewer?: XyoViewer | null\n}\n\nexport const XL1CurrentBlockProvider: React.FC<XL1CurrentBlockProviderProps> = ({\n pollingConfig, viewer, children,\n}) => {\n const { interval } = useMemo(() => pollingConfig || { interval: DEFAULT_POLLING_INTERVAL }, [pollingConfig])\n const [currentBlock, currentBlockError] = usePollCurrentBlock(viewer, interval)\n\n const value: XL1CurrentBlockState = useMemo(() => ({\n block: currentBlock,\n blockNumber: currentBlock?.[0].block,\n chain: currentBlock?.[0].chain,\n error: currentBlockError,\n pollingConfig,\n provided: true,\n }), [currentBlock, currentBlockError, pollingConfig])\n\n return (\n <XL1CurrentBlockContext value={value}>\n {children}\n </XL1CurrentBlockContext>\n )\n}\n", "import { isDefinedNotNull, isUndefinedOrNull } from '@xylabs/sdk-js'\nimport type { SignedHydratedBlock, XyoViewer } from '@xyo-network/xl1-sdk'\nimport {\n startTransition, useEffect, useState,\n} from 'react'\n\nconst DEFAULT_POLL_INTERVAL = 10_000\n\nexport const usePollCurrentBlock = (viewer?: XyoViewer | null, interval = DEFAULT_POLL_INTERVAL, pause = false) => {\n const [currentBlock, setCurrentBlock] = useState<SignedHydratedBlock | null>(null)\n const [error, setError] = useState<Error>()\n\n useEffect(() => {\n let isMounted = true\n // Function to fetch the current block\n const fetchBlock = async () => {\n if (isDefinedNotNull(viewer)) {\n try {\n const block = await viewer.currentBlock()\n // Safety check to ensure component is still mounted before updating state\n if (isMounted) {\n startTransition(() => {\n setCurrentBlock((existingBlock) => {\n if (isUndefinedOrNull(existingBlock)) {\n return block\n }\n if (\n isDefinedNotNull(block) && existingBlock?.[0].block !== block[0].block\n ) {\n return block\n }\n return existingBlock\n })\n })\n }\n } catch (err) {\n startTransition(() => {\n setError(err as Error)\n })\n }\n }\n }\n\n // Initial fetch\n void fetchBlock()\n\n // Polling mechanism\n const id = setInterval(() => {\n if (!pause) {\n void fetchBlock()\n }\n }, interval)\n\n return () => {\n isMounted = false\n clearInterval(id)\n }\n }, [viewer, interval, pause])\n\n return [currentBlock, error] as const\n}\n", "import { useContextEx } from '@xylabs/react-shared'\n\nimport { XL1CurrentBlockContext } from './context.ts'\nimport type { XL1CurrentBlockState } from './state.ts'\n\nexport const useXl1CurrentBlockContext = (required = true) => useContextEx<XL1CurrentBlockState>(XL1CurrentBlockContext, 'XL1CurrentBlock', required)\n", "/**\n * @deprecated Moved to `@xyo-network/xl1-react-client-sdk`. Import\n * `GatewayProvider` from there instead. This re-export exists only for\n * backward compatibility and will be removed in a future release.\n */\n\nexport { GatewayProvider } from '@xyo-network/xl1-react-client-sdk'\n", "/**\n * @deprecated Moved to `@xyo-network/xl1-react-client-sdk`. Import\n * `InPageGatewaysContext` from there instead. This re-export exists only\n * for backward compatibility and will be removed in a future release.\n */\n\nexport { InPageGatewaysContext } from '@xyo-network/xl1-react-client-sdk'\n", "/**\n * @deprecated Moved to `@xyo-network/xl1-react-client-sdk`. Import\n * `InPageGatewaysProvider` and `InPageGatewaysProviderProps` from there\n * instead. This re-export exists only for backward compatibility and\n * will be removed in a future release.\n */\n\nexport type { InPageGatewaysProviderProps } from '@xyo-network/xl1-react-client-sdk'\nexport { InPageGatewaysProvider } from '@xyo-network/xl1-react-client-sdk'\n", "/**\n * @deprecated Moved to `@xyo-network/xl1-react-client-sdk`. Import\n * `useProvidedInPageGateways` from there instead. This re-export exists\n * only for backward compatibility and will be removed in a future\n * release.\n */\n\nexport { useProvidedInPageGateways } from '@xyo-network/xl1-react-client-sdk'\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Stack", "Typography", "isDefined", "isUndefined", "useEffect", "hexToBigInt", "a", "network", "useProvidedGateway", "useProvidedGateway", "assertEx", "isDefined", "usePromise", "isUndefined", "usePromise", "forget", "isDefined", "PayloadBuilder", "useState", "useState", "usePromise", "isDefined", "PayloadBuilder", "forget", "assertEx", "useState", "address", "usePromise", "usePromise", "isUndefined", "useMemo", "usePromise", "usePromise", "delay", "isDefined", "isUndefined", "basicRemoteViewerLocator", "useEffect", "useState", "viewer", "isNull", "PayloadBuilder", "jsx", "jsxs", "Typography", "useEffect", "isDefined", "Stack", "isUndefined", "useMemo", "isDefinedNotNull", "isUndefinedOrNull", "useEffect", "useState", "jsx", "useMemo"]
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/react-chain-provider",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "XYO Layer One API",
|
|
5
5
|
"homepage": "https://xylabs.com",
|
|
6
6
|
"bugs": {
|
|
@@ -41,55 +41,55 @@
|
|
|
41
41
|
"@bitauth/libauth": "~3.0.0",
|
|
42
42
|
"@metamask/json-rpc-engine": "^10.5.0",
|
|
43
43
|
"@metamask/providers": "^22.1.1",
|
|
44
|
-
"@metamask/utils": "
|
|
45
|
-
"@mui/icons-material": "~9.0",
|
|
46
|
-
"@mui/material": "~9.0",
|
|
44
|
+
"@metamask/utils": "^11.11.0",
|
|
45
|
+
"@mui/icons-material": "~9.0.1",
|
|
46
|
+
"@mui/material": "~9.0.1",
|
|
47
47
|
"@opentelemetry/api": "^1.9.1",
|
|
48
48
|
"@opentelemetry/sdk-trace-base": "^2.7.1",
|
|
49
49
|
"@react-spring/web": "~10.0.3",
|
|
50
50
|
"@rollbar/react": "~1.0.0",
|
|
51
51
|
"@scure/base": "~2.2.0",
|
|
52
52
|
"@scure/bip39": "~2.2.0",
|
|
53
|
-
"@storybook/react-vite": "^10.
|
|
54
|
-
"@types/react": "^19.2.
|
|
55
|
-
"@xylabs/fetch": "~
|
|
56
|
-
"@xylabs/geo": "
|
|
57
|
-
"@xylabs/pixel": "~
|
|
58
|
-
"@xylabs/react-button": "~
|
|
59
|
-
"@xylabs/react-error": "~
|
|
60
|
-
"@xylabs/react-flexbox": "~
|
|
61
|
-
"@xylabs/react-promise": "~
|
|
62
|
-
"@xylabs/react-shared": "~
|
|
63
|
-
"@xylabs/react-theme": "~
|
|
64
|
-
"@xylabs/sdk-js": "^
|
|
65
|
-
"@xylabs/threads": "~
|
|
66
|
-
"@xylabs/toolchain": "~
|
|
67
|
-
"@xylabs/tsconfig": "~
|
|
68
|
-
"@xylabs/tsconfig-dom": "~
|
|
69
|
-
"@xylabs/tsconfig-react": "~
|
|
70
|
-
"@xyo-network/account": "~
|
|
71
|
-
"@xyo-network/account-model": "~
|
|
72
|
-
"@xyo-network/api": "~
|
|
73
|
-
"@xyo-network/api-models": "~
|
|
74
|
-
"@xyo-network/boundwitness-builder": "~
|
|
75
|
-
"@xyo-network/boundwitness-model": "~
|
|
76
|
-
"@xyo-network/boundwitness-wrapper": "~
|
|
77
|
-
"@xyo-network/config-payload-plugin": "~
|
|
78
|
-
"@xyo-network/huri": "~
|
|
79
|
-
"@xyo-network/manifest-model": "~
|
|
80
|
-
"@xyo-network/payload-builder": "~
|
|
81
|
-
"@xyo-network/payload-model": "~
|
|
82
|
-
"@xyo-network/payload-plugin": "~
|
|
83
|
-
"@xyo-network/payload-wrapper": "~
|
|
84
|
-
"@xyo-network/query-payload-plugin": "~
|
|
85
|
-
"@xyo-network/react-error": "~
|
|
86
|
-
"@xyo-network/sdk-js": "
|
|
87
|
-
"@xyo-network/sdk-protocol-js": "~
|
|
88
|
-
"@xyo-network/wallet": "~
|
|
89
|
-
"@xyo-network/wallet-model": "^
|
|
90
|
-
"@xyo-network/xl1-blockies": "
|
|
91
|
-
"@xyo-network/xl1-react-client-sdk": "^
|
|
92
|
-
"@xyo-network/xl1-sdk": "
|
|
53
|
+
"@storybook/react-vite": "^10.4.0",
|
|
54
|
+
"@types/react": "^19.2.15",
|
|
55
|
+
"@xylabs/fetch": "~6.0.2",
|
|
56
|
+
"@xylabs/geo": "~6.0.2",
|
|
57
|
+
"@xylabs/pixel": "~6.0.2",
|
|
58
|
+
"@xylabs/react-button": "~9.0",
|
|
59
|
+
"@xylabs/react-error": "~9.0",
|
|
60
|
+
"@xylabs/react-flexbox": "~9.0",
|
|
61
|
+
"@xylabs/react-promise": "~9.0",
|
|
62
|
+
"@xylabs/react-shared": "~9.0",
|
|
63
|
+
"@xylabs/react-theme": "~9.0.0",
|
|
64
|
+
"@xylabs/sdk-js": "^6.0.2",
|
|
65
|
+
"@xylabs/threads": "~6.0.2",
|
|
66
|
+
"@xylabs/toolchain": "~8.1.1",
|
|
67
|
+
"@xylabs/tsconfig": "~8.1.1",
|
|
68
|
+
"@xylabs/tsconfig-dom": "~8.1.1",
|
|
69
|
+
"@xylabs/tsconfig-react": "~8.1.1",
|
|
70
|
+
"@xyo-network/account": "~6.0.0",
|
|
71
|
+
"@xyo-network/account-model": "~6.0.0",
|
|
72
|
+
"@xyo-network/api": "~6.0",
|
|
73
|
+
"@xyo-network/api-models": "~6.0",
|
|
74
|
+
"@xyo-network/boundwitness-builder": "~6.0.0",
|
|
75
|
+
"@xyo-network/boundwitness-model": "~6.0.0",
|
|
76
|
+
"@xyo-network/boundwitness-wrapper": "~6.0.0",
|
|
77
|
+
"@xyo-network/config-payload-plugin": "~6.0.0",
|
|
78
|
+
"@xyo-network/huri": "~6.0",
|
|
79
|
+
"@xyo-network/manifest-model": "~6.0.0",
|
|
80
|
+
"@xyo-network/payload-builder": "~6.0.0",
|
|
81
|
+
"@xyo-network/payload-model": "~6.0.0",
|
|
82
|
+
"@xyo-network/payload-plugin": "~6.0",
|
|
83
|
+
"@xyo-network/payload-wrapper": "~6.0.0",
|
|
84
|
+
"@xyo-network/query-payload-plugin": "~6.0.0",
|
|
85
|
+
"@xyo-network/react-error": "~9.0",
|
|
86
|
+
"@xyo-network/sdk-js": "~6.0",
|
|
87
|
+
"@xyo-network/sdk-protocol-js": "~6.0",
|
|
88
|
+
"@xyo-network/wallet": "~6.0",
|
|
89
|
+
"@xyo-network/wallet-model": "^6.0.0",
|
|
90
|
+
"@xyo-network/xl1-blockies": "~2.0",
|
|
91
|
+
"@xyo-network/xl1-react-client-sdk": "^2.0.0",
|
|
92
|
+
"@xyo-network/xl1-sdk": "~2.0",
|
|
93
93
|
"ajv": "^8.20.0",
|
|
94
94
|
"async-mutex": "^0.5.0",
|
|
95
95
|
"bn.js": "^5.2.3",
|
|
@@ -99,15 +99,15 @@
|
|
|
99
99
|
"cosmiconfig": "^9.0.1",
|
|
100
100
|
"debug": "~4.4.3",
|
|
101
101
|
"dotenv": "~17.4.2",
|
|
102
|
-
"eslint": "^10.
|
|
102
|
+
"eslint": "^10.4.0",
|
|
103
103
|
"ethers": "^6.16.0",
|
|
104
104
|
"fast-deep-equal": "~3.1.3",
|
|
105
105
|
"hash-wasm": "~4.12.0",
|
|
106
106
|
"idb": "^8.0.3",
|
|
107
|
-
"js-cookie": "~3.0.
|
|
108
|
-
"lru-cache": "^11.
|
|
109
|
-
"mapbox-gl": "^3.
|
|
110
|
-
"mixpanel-browser": "~2.
|
|
107
|
+
"js-cookie": "~3.0.7",
|
|
108
|
+
"lru-cache": "^11.5.0",
|
|
109
|
+
"mapbox-gl": "^3.24.0",
|
|
110
|
+
"mixpanel-browser": "~2.79",
|
|
111
111
|
"observable-fns": "~0.6.1",
|
|
112
112
|
"pako": "^2.1.0",
|
|
113
113
|
"prop-types": "^15.8.1",
|
|
@@ -115,26 +115,26 @@
|
|
|
115
115
|
"react": "^19.2.6",
|
|
116
116
|
"react-dom": "^19.2.6",
|
|
117
117
|
"react-is": "^19.2.6",
|
|
118
|
-
"react-router-dom": "^7.15.
|
|
118
|
+
"react-router-dom": "^7.15.1",
|
|
119
119
|
"recharts": "~3.8.1",
|
|
120
120
|
"rollbar": "^3.1.0",
|
|
121
121
|
"spark-md5": "~3.0.2",
|
|
122
122
|
"store2": "~2.14.4",
|
|
123
|
-
"storybook": "^10.
|
|
124
|
-
"typescript": "~
|
|
123
|
+
"storybook": "^10.4.0",
|
|
124
|
+
"typescript": "~6.0.3",
|
|
125
125
|
"uuid": "~14.0.0",
|
|
126
|
-
"vite": "^8.0.
|
|
127
|
-
"vitest": "^4.1.
|
|
126
|
+
"vite": "^8.0.13",
|
|
127
|
+
"vitest": "^4.1.7",
|
|
128
128
|
"wasm-feature-detect": "~1.8.0",
|
|
129
129
|
"webextension-polyfill": "^0.12.0",
|
|
130
130
|
"zod": "~4.4.3",
|
|
131
|
-
"@xyo-network/react-chain-model": "~
|
|
131
|
+
"@xyo-network/react-chain-model": "~2.0.0"
|
|
132
132
|
},
|
|
133
133
|
"peerDependencies": {
|
|
134
134
|
"@bitauth/libauth": "~3.0",
|
|
135
135
|
"@metamask/json-rpc-engine": "^10.3",
|
|
136
136
|
"@metamask/providers": "^22.1",
|
|
137
|
-
"@metamask/utils": "
|
|
137
|
+
"@metamask/utils": "^11.11",
|
|
138
138
|
"@mui/icons-material": "~9.0",
|
|
139
139
|
"@mui/material": "~9.0",
|
|
140
140
|
"@opentelemetry/api": "^1.9",
|
|
@@ -143,40 +143,40 @@
|
|
|
143
143
|
"@rollbar/react": "~1.0",
|
|
144
144
|
"@scure/base": "~2.2",
|
|
145
145
|
"@scure/bip39": "~2.2",
|
|
146
|
-
"@xylabs/fetch": "
|
|
147
|
-
"@xylabs/geo": "^
|
|
148
|
-
"@xylabs/pixel": "~
|
|
149
|
-
"@xylabs/react-button": "~
|
|
150
|
-
"@xylabs/react-error": "~
|
|
151
|
-
"@xylabs/react-flexbox": "~
|
|
152
|
-
"@xylabs/react-promise": "~
|
|
153
|
-
"@xylabs/react-shared": "~
|
|
154
|
-
"@xylabs/react-theme": "~
|
|
155
|
-
"@xylabs/sdk-js": "^
|
|
156
|
-
"@xylabs/threads": "~
|
|
157
|
-
"@xyo-network/account": "~
|
|
158
|
-
"@xyo-network/account-model": "~
|
|
159
|
-
"@xyo-network/api": "~
|
|
160
|
-
"@xyo-network/api-models": "~
|
|
161
|
-
"@xyo-network/boundwitness-builder": "~
|
|
162
|
-
"@xyo-network/boundwitness-model": "~
|
|
163
|
-
"@xyo-network/boundwitness-wrapper": "~
|
|
164
|
-
"@xyo-network/config-payload-plugin": "~
|
|
165
|
-
"@xyo-network/huri": "~
|
|
166
|
-
"@xyo-network/manifest-model": "~
|
|
167
|
-
"@xyo-network/payload-builder": "~
|
|
168
|
-
"@xyo-network/payload-model": "~
|
|
169
|
-
"@xyo-network/payload-plugin": "~
|
|
170
|
-
"@xyo-network/payload-wrapper": "~
|
|
171
|
-
"@xyo-network/query-payload-plugin": "~
|
|
172
|
-
"@xyo-network/react-error": "~
|
|
173
|
-
"@xyo-network/sdk-js": "^
|
|
174
|
-
"@xyo-network/sdk-protocol-js": "~
|
|
175
|
-
"@xyo-network/wallet": "~
|
|
176
|
-
"@xyo-network/wallet-model": "^
|
|
177
|
-
"@xyo-network/xl1-blockies": "^
|
|
178
|
-
"@xyo-network/xl1-react-client-sdk": "^
|
|
179
|
-
"@xyo-network/xl1-sdk": "^
|
|
146
|
+
"@xylabs/fetch": "^6.0",
|
|
147
|
+
"@xylabs/geo": "^6.0",
|
|
148
|
+
"@xylabs/pixel": "~6.0",
|
|
149
|
+
"@xylabs/react-button": "~9.0",
|
|
150
|
+
"@xylabs/react-error": "~9.0",
|
|
151
|
+
"@xylabs/react-flexbox": "~9.0",
|
|
152
|
+
"@xylabs/react-promise": "~9.0",
|
|
153
|
+
"@xylabs/react-shared": "~9.0",
|
|
154
|
+
"@xylabs/react-theme": "~9.0",
|
|
155
|
+
"@xylabs/sdk-js": "^6.0",
|
|
156
|
+
"@xylabs/threads": "~6.0",
|
|
157
|
+
"@xyo-network/account": "~6.0",
|
|
158
|
+
"@xyo-network/account-model": "~6.0",
|
|
159
|
+
"@xyo-network/api": "~6.0",
|
|
160
|
+
"@xyo-network/api-models": "~6.0",
|
|
161
|
+
"@xyo-network/boundwitness-builder": "~6.0",
|
|
162
|
+
"@xyo-network/boundwitness-model": "~6.0",
|
|
163
|
+
"@xyo-network/boundwitness-wrapper": "~6.0",
|
|
164
|
+
"@xyo-network/config-payload-plugin": "~6.0",
|
|
165
|
+
"@xyo-network/huri": "~6.0",
|
|
166
|
+
"@xyo-network/manifest-model": "~6.0",
|
|
167
|
+
"@xyo-network/payload-builder": "~6.0",
|
|
168
|
+
"@xyo-network/payload-model": "~6.0",
|
|
169
|
+
"@xyo-network/payload-plugin": "~6.0",
|
|
170
|
+
"@xyo-network/payload-wrapper": "~6.0",
|
|
171
|
+
"@xyo-network/query-payload-plugin": "~6.0",
|
|
172
|
+
"@xyo-network/react-error": "~9.0",
|
|
173
|
+
"@xyo-network/sdk-js": "^6.0",
|
|
174
|
+
"@xyo-network/sdk-protocol-js": "~6.0",
|
|
175
|
+
"@xyo-network/wallet": "~6.0",
|
|
176
|
+
"@xyo-network/wallet-model": "^6.0",
|
|
177
|
+
"@xyo-network/xl1-blockies": "^2.0",
|
|
178
|
+
"@xyo-network/xl1-react-client-sdk": "^2.0",
|
|
179
|
+
"@xyo-network/xl1-sdk": "^2.0",
|
|
180
180
|
"ajv": "^8.20",
|
|
181
181
|
"async-mutex": "^0.5",
|
|
182
182
|
"bn.js": "^5.2",
|
|
@@ -192,7 +192,7 @@
|
|
|
192
192
|
"js-cookie": "~3.0",
|
|
193
193
|
"lru-cache": "^11.3",
|
|
194
194
|
"mapbox-gl": "^3.23",
|
|
195
|
-
"mixpanel-browser": "~2.
|
|
195
|
+
"mixpanel-browser": "~2.79",
|
|
196
196
|
"observable-fns": "~0.6",
|
|
197
197
|
"pako": "^2.1",
|
|
198
198
|
"prop-types": "^15.8",
|