@hyperlane-xyz/widgets 3.8.0-beta0 → 3.8.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/cjs/icons/ChainLogo.d.ts.map +1 -1
- package/dist/cjs/icons/ChainLogo.js +2 -10
- package/dist/cjs/icons/ChainLogo.js.map +1 -1
- package/dist/cjs/logos/black/Arbitrum.js +1 -1
- package/dist/cjs/logos/black/Arbitrum.js.map +1 -1
- package/dist/cjs/logos/black/Avalanche.js +1 -1
- package/dist/cjs/logos/black/Avalanche.js.map +1 -1
- package/dist/cjs/logos/black/Base.js +1 -1
- package/dist/cjs/logos/black/Base.js.map +1 -1
- package/dist/cjs/logos/black/Bsc.js +1 -1
- package/dist/cjs/logos/black/Bsc.js.map +1 -1
- package/dist/cjs/logos/black/Celo.js +1 -1
- package/dist/cjs/logos/black/Celo.js.map +1 -1
- package/dist/cjs/logos/black/Cosmos.js +1 -1
- package/dist/cjs/logos/black/Cosmos.js.map +1 -1
- package/dist/cjs/logos/black/Cosmwasm.js +1 -1
- package/dist/cjs/logos/black/Cosmwasm.js.map +1 -1
- package/dist/cjs/logos/black/Eclipse.js +1 -1
- package/dist/cjs/logos/black/Eclipse.js.map +1 -1
- package/dist/cjs/logos/black/Ethereum.js +1 -1
- package/dist/cjs/logos/black/Ethereum.js.map +1 -1
- package/dist/cjs/logos/black/Gnosis.js +1 -1
- package/dist/cjs/logos/black/Gnosis.js.map +1 -1
- package/dist/cjs/logos/black/Hyperlane.js +1 -1
- package/dist/cjs/logos/black/Hyperlane.js.map +1 -1
- package/dist/cjs/logos/black/Inevm.js +1 -1
- package/dist/cjs/logos/black/Inevm.js.map +1 -1
- package/dist/cjs/logos/black/Injective.js +1 -1
- package/dist/cjs/logos/black/Injective.js.map +1 -1
- package/dist/cjs/logos/black/Manta.js +1 -1
- package/dist/cjs/logos/black/Manta.js.map +1 -1
- package/dist/cjs/logos/black/Moonbeam.js +1 -1
- package/dist/cjs/logos/black/Moonbeam.js.map +1 -1
- package/dist/cjs/logos/black/Nautilus.js +1 -1
- package/dist/cjs/logos/black/Nautilus.js.map +1 -1
- package/dist/cjs/logos/black/Near.js +1 -1
- package/dist/cjs/logos/black/Near.js.map +1 -1
- package/dist/cjs/logos/black/Neutron.js +1 -1
- package/dist/cjs/logos/black/Neutron.js.map +1 -1
- package/dist/cjs/logos/black/Optimism.js +1 -1
- package/dist/cjs/logos/black/Optimism.js.map +1 -1
- package/dist/cjs/logos/black/Plume.js +1 -1
- package/dist/cjs/logos/black/Plume.js.map +1 -1
- package/dist/cjs/logos/black/Polygon.js +1 -1
- package/dist/cjs/logos/black/Polygon.js.map +1 -1
- package/dist/cjs/logos/black/Polygonzkevm.js +1 -1
- package/dist/cjs/logos/black/Polygonzkevm.js.map +1 -1
- package/dist/cjs/logos/black/Scroll.js +1 -1
- package/dist/cjs/logos/black/Scroll.js.map +1 -1
- package/dist/cjs/logos/black/Solana.js +1 -1
- package/dist/cjs/logos/black/Solana.js.map +1 -1
- package/dist/cjs/logos/black/Viction.js +1 -1
- package/dist/cjs/logos/black/Viction.js.map +1 -1
- package/dist/cjs/logos/color/Arbitrum.js +1 -1
- package/dist/cjs/logos/color/Arbitrum.js.map +1 -1
- package/dist/cjs/logos/color/Avalanche.js +1 -1
- package/dist/cjs/logos/color/Avalanche.js.map +1 -1
- package/dist/cjs/logos/color/Base.js +1 -1
- package/dist/cjs/logos/color/Base.js.map +1 -1
- package/dist/cjs/logos/color/Bsc.js +1 -1
- package/dist/cjs/logos/color/Bsc.js.map +1 -1
- package/dist/cjs/logos/color/Celo.js +1 -1
- package/dist/cjs/logos/color/Celo.js.map +1 -1
- package/dist/cjs/logos/color/Cosmos.js +1 -1
- package/dist/cjs/logos/color/Cosmos.js.map +1 -1
- package/dist/cjs/logos/color/Cosmwasm.js +1 -1
- package/dist/cjs/logos/color/Cosmwasm.js.map +1 -1
- package/dist/cjs/logos/color/Eclipse.js +1 -1
- package/dist/cjs/logos/color/Eclipse.js.map +1 -1
- package/dist/cjs/logos/color/Ethereum.js +1 -1
- package/dist/cjs/logos/color/Ethereum.js.map +1 -1
- package/dist/cjs/logos/color/Gnosis.js +1 -1
- package/dist/cjs/logos/color/Gnosis.js.map +1 -1
- package/dist/cjs/logos/color/Hyperlane.js +1 -1
- package/dist/cjs/logos/color/Hyperlane.js.map +1 -1
- package/dist/cjs/logos/color/Inevm.js +1 -1
- package/dist/cjs/logos/color/Inevm.js.map +1 -1
- package/dist/cjs/logos/color/Injective.js +1 -1
- package/dist/cjs/logos/color/Injective.js.map +1 -1
- package/dist/cjs/logos/color/Manta.js +1 -1
- package/dist/cjs/logos/color/Manta.js.map +1 -1
- package/dist/cjs/logos/color/Moonbeam.js +1 -1
- package/dist/cjs/logos/color/Moonbeam.js.map +1 -1
- package/dist/cjs/logos/color/Nautilus.js +1 -1
- package/dist/cjs/logos/color/Nautilus.js.map +1 -1
- package/dist/cjs/logos/color/Neutron.js +1 -1
- package/dist/cjs/logos/color/Neutron.js.map +1 -1
- package/dist/cjs/logos/color/Optimism.js +1 -1
- package/dist/cjs/logos/color/Optimism.js.map +1 -1
- package/dist/cjs/logos/color/Plume.js +1 -1
- package/dist/cjs/logos/color/Plume.js.map +1 -1
- package/dist/cjs/logos/color/Polygon.js +1 -1
- package/dist/cjs/logos/color/Polygon.js.map +1 -1
- package/dist/cjs/logos/color/Polygonzkevm.js +1 -1
- package/dist/cjs/logos/color/Polygonzkevm.js.map +1 -1
- package/dist/cjs/logos/color/Scroll.js +1 -1
- package/dist/cjs/logos/color/Scroll.js.map +1 -1
- package/dist/cjs/logos/color/Solana.js +1 -1
- package/dist/cjs/logos/color/Solana.js.map +1 -1
- package/dist/cjs/logos/color/Viction.js +1 -1
- package/dist/cjs/logos/color/Viction.js.map +1 -1
- package/dist/cjs/messages/MessageTimeline.js +1 -1
- package/dist/cjs/messages/MessageTimeline.js.map +1 -1
- package/dist/cjs/messages/useMessage.js +24 -35
- package/dist/cjs/messages/useMessage.js.map +1 -1
- package/dist/cjs/messages/useMessageStage.js +85 -102
- package/dist/cjs/messages/useMessageStage.js.map +1 -1
- package/dist/cjs/utils/explorers.js +33 -50
- package/dist/cjs/utils/explorers.js.map +1 -1
- package/dist/cjs/utils/timeout.js +8 -16
- package/dist/cjs/utils/timeout.js.map +1 -1
- package/dist/esm/icons/ChainLogo.d.ts.map +1 -1
- package/dist/esm/icons/ChainLogo.js +2 -10
- package/dist/esm/icons/ChainLogo.js.map +1 -1
- package/dist/esm/logos/black/Arbitrum.js +1 -1
- package/dist/esm/logos/black/Arbitrum.js.map +1 -1
- package/dist/esm/logos/black/Avalanche.js +1 -1
- package/dist/esm/logos/black/Avalanche.js.map +1 -1
- package/dist/esm/logos/black/Base.js +1 -1
- package/dist/esm/logos/black/Base.js.map +1 -1
- package/dist/esm/logos/black/Bsc.js +1 -1
- package/dist/esm/logos/black/Bsc.js.map +1 -1
- package/dist/esm/logos/black/Celo.js +1 -1
- package/dist/esm/logos/black/Celo.js.map +1 -1
- package/dist/esm/logos/black/Cosmos.js +1 -1
- package/dist/esm/logos/black/Cosmos.js.map +1 -1
- package/dist/esm/logos/black/Cosmwasm.js +1 -1
- package/dist/esm/logos/black/Cosmwasm.js.map +1 -1
- package/dist/esm/logos/black/Eclipse.js +1 -1
- package/dist/esm/logos/black/Eclipse.js.map +1 -1
- package/dist/esm/logos/black/Ethereum.js +1 -1
- package/dist/esm/logos/black/Ethereum.js.map +1 -1
- package/dist/esm/logos/black/Gnosis.js +1 -1
- package/dist/esm/logos/black/Gnosis.js.map +1 -1
- package/dist/esm/logos/black/Hyperlane.js +1 -1
- package/dist/esm/logos/black/Hyperlane.js.map +1 -1
- package/dist/esm/logos/black/Inevm.js +1 -1
- package/dist/esm/logos/black/Inevm.js.map +1 -1
- package/dist/esm/logos/black/Injective.js +1 -1
- package/dist/esm/logos/black/Injective.js.map +1 -1
- package/dist/esm/logos/black/Manta.js +1 -1
- package/dist/esm/logos/black/Manta.js.map +1 -1
- package/dist/esm/logos/black/Moonbeam.js +1 -1
- package/dist/esm/logos/black/Moonbeam.js.map +1 -1
- package/dist/esm/logos/black/Nautilus.js +1 -1
- package/dist/esm/logos/black/Nautilus.js.map +1 -1
- package/dist/esm/logos/black/Near.js +1 -1
- package/dist/esm/logos/black/Near.js.map +1 -1
- package/dist/esm/logos/black/Neutron.js +1 -1
- package/dist/esm/logos/black/Neutron.js.map +1 -1
- package/dist/esm/logos/black/Optimism.js +1 -1
- package/dist/esm/logos/black/Optimism.js.map +1 -1
- package/dist/esm/logos/black/Plume.js +1 -1
- package/dist/esm/logos/black/Plume.js.map +1 -1
- package/dist/esm/logos/black/Polygon.js +1 -1
- package/dist/esm/logos/black/Polygon.js.map +1 -1
- package/dist/esm/logos/black/Polygonzkevm.js +1 -1
- package/dist/esm/logos/black/Polygonzkevm.js.map +1 -1
- package/dist/esm/logos/black/Scroll.js +1 -1
- package/dist/esm/logos/black/Scroll.js.map +1 -1
- package/dist/esm/logos/black/Solana.js +1 -1
- package/dist/esm/logos/black/Solana.js.map +1 -1
- package/dist/esm/logos/black/Viction.js +1 -1
- package/dist/esm/logos/black/Viction.js.map +1 -1
- package/dist/esm/logos/color/Arbitrum.js +1 -1
- package/dist/esm/logos/color/Arbitrum.js.map +1 -1
- package/dist/esm/logos/color/Avalanche.js +1 -1
- package/dist/esm/logos/color/Avalanche.js.map +1 -1
- package/dist/esm/logos/color/Base.js +1 -1
- package/dist/esm/logos/color/Base.js.map +1 -1
- package/dist/esm/logos/color/Bsc.js +1 -1
- package/dist/esm/logos/color/Bsc.js.map +1 -1
- package/dist/esm/logos/color/Celo.js +1 -1
- package/dist/esm/logos/color/Celo.js.map +1 -1
- package/dist/esm/logos/color/Cosmos.js +1 -1
- package/dist/esm/logos/color/Cosmos.js.map +1 -1
- package/dist/esm/logos/color/Cosmwasm.js +1 -1
- package/dist/esm/logos/color/Cosmwasm.js.map +1 -1
- package/dist/esm/logos/color/Eclipse.js +1 -1
- package/dist/esm/logos/color/Eclipse.js.map +1 -1
- package/dist/esm/logos/color/Ethereum.js +1 -1
- package/dist/esm/logos/color/Ethereum.js.map +1 -1
- package/dist/esm/logos/color/Gnosis.js +1 -1
- package/dist/esm/logos/color/Gnosis.js.map +1 -1
- package/dist/esm/logos/color/Hyperlane.js +1 -1
- package/dist/esm/logos/color/Hyperlane.js.map +1 -1
- package/dist/esm/logos/color/Inevm.js +1 -1
- package/dist/esm/logos/color/Inevm.js.map +1 -1
- package/dist/esm/logos/color/Injective.js +1 -1
- package/dist/esm/logos/color/Injective.js.map +1 -1
- package/dist/esm/logos/color/Manta.js +1 -1
- package/dist/esm/logos/color/Manta.js.map +1 -1
- package/dist/esm/logos/color/Moonbeam.js +1 -1
- package/dist/esm/logos/color/Moonbeam.js.map +1 -1
- package/dist/esm/logos/color/Nautilus.js +1 -1
- package/dist/esm/logos/color/Nautilus.js.map +1 -1
- package/dist/esm/logos/color/Neutron.js +1 -1
- package/dist/esm/logos/color/Neutron.js.map +1 -1
- package/dist/esm/logos/color/Optimism.js +1 -1
- package/dist/esm/logos/color/Optimism.js.map +1 -1
- package/dist/esm/logos/color/Plume.js +1 -1
- package/dist/esm/logos/color/Plume.js.map +1 -1
- package/dist/esm/logos/color/Polygon.js +1 -1
- package/dist/esm/logos/color/Polygon.js.map +1 -1
- package/dist/esm/logos/color/Polygonzkevm.js +1 -1
- package/dist/esm/logos/color/Polygonzkevm.js.map +1 -1
- package/dist/esm/logos/color/Scroll.js +1 -1
- package/dist/esm/logos/color/Scroll.js.map +1 -1
- package/dist/esm/logos/color/Solana.js +1 -1
- package/dist/esm/logos/color/Solana.js.map +1 -1
- package/dist/esm/logos/color/Viction.js +1 -1
- package/dist/esm/logos/color/Viction.js.map +1 -1
- package/dist/esm/messages/MessageTimeline.js +1 -1
- package/dist/esm/messages/MessageTimeline.js.map +1 -1
- package/dist/esm/messages/useMessage.js +24 -35
- package/dist/esm/messages/useMessage.js.map +1 -1
- package/dist/esm/messages/useMessageStage.js +85 -102
- package/dist/esm/messages/useMessageStage.js.map +1 -1
- package/dist/esm/utils/explorers.js +33 -50
- package/dist/esm/utils/explorers.js.map +1 -1
- package/dist/esm/utils/timeout.js +8 -16
- package/dist/esm/utils/timeout.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { useCallback, useState } from 'react';
|
|
11
2
|
import { chainIdToMetadata } from '@hyperlane-xyz/sdk';
|
|
12
3
|
import { HYPERLANE_EXPLORER_API_URL } from '../consts';
|
|
@@ -34,7 +25,7 @@ export function useMessageStage({ message, explorerApiUrl = HYPERLANE_EXPLORER_A
|
|
|
34
25
|
if (message.status === MessageStatus.Failing && data)
|
|
35
26
|
return;
|
|
36
27
|
// Don't re-run for pending, validated messages
|
|
37
|
-
if (message.status === MessageStatus.Pending &&
|
|
28
|
+
if (message.status === MessageStatus.Pending && data?.stage === Stage.Validated)
|
|
38
29
|
return;
|
|
39
30
|
setIsLoading(true);
|
|
40
31
|
fetchMessageState(message, explorerApiUrl)
|
|
@@ -47,116 +38,108 @@ export function useMessageStage({ message, explorerApiUrl = HYPERLANE_EXPLORER_A
|
|
|
47
38
|
}, [message, data]);
|
|
48
39
|
useInterval(fetcher, retryInterval);
|
|
49
40
|
return {
|
|
50
|
-
stage:
|
|
51
|
-
timings:
|
|
41
|
+
stage: data?.stage ? data.stage : isValidMessage(message) ? Stage.Sent : Stage.Preparing,
|
|
42
|
+
timings: data?.timings ? data.timings : defaultTiming,
|
|
52
43
|
isLoading,
|
|
53
44
|
error,
|
|
54
45
|
};
|
|
55
46
|
}
|
|
56
|
-
function fetchMessageState(message, explorerApiUrl) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (latestNonce && latestNonce >= nonce) {
|
|
83
|
-
return {
|
|
84
|
-
stage: Stage.Validated,
|
|
85
|
-
timings: {
|
|
86
|
-
[Stage.Finalized]: finalityEstimate,
|
|
87
|
-
[Stage.Validated]: VALIDATION_TIME_EST,
|
|
88
|
-
[Stage.Relayed]: relayEstimate,
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
const latestBlock = yield tryFetchChainLatestBlock(originChainId);
|
|
93
|
-
const finalizedBlock = originBlockNumber + finalityBlocks;
|
|
94
|
-
if (latestBlock && parseInt(latestBlock.number.toString()) > finalizedBlock) {
|
|
95
|
-
return {
|
|
96
|
-
stage: Stage.Finalized,
|
|
97
|
-
timings: {
|
|
98
|
-
[Stage.Finalized]: finalityEstimate,
|
|
99
|
-
[Stage.Validated]: VALIDATION_TIME_EST,
|
|
100
|
-
[Stage.Relayed]: relayEstimate,
|
|
101
|
-
},
|
|
102
|
-
};
|
|
103
|
-
}
|
|
47
|
+
async function fetchMessageState(message, explorerApiUrl) {
|
|
48
|
+
const { status, nonce, originChainId, destinationChainId, origin, destination } = message;
|
|
49
|
+
const { blockNumber: originBlockNumber, timestamp: originTimestamp } = origin;
|
|
50
|
+
const destTimestamp = destination?.timestamp;
|
|
51
|
+
const relayEstimate = Math.floor(getBlockTimeEst(destinationChainId) * 1.5);
|
|
52
|
+
const finalityBlocks = getFinalityBlocks(originChainId);
|
|
53
|
+
const finalityEstimate = finalityBlocks * getBlockTimeEst(originChainId);
|
|
54
|
+
if (status === MessageStatus.Delivered && destTimestamp) {
|
|
55
|
+
// For delivered messages, just to rough estimates for stages
|
|
56
|
+
// This saves us from making extra explorer calls. May want to revisit in future
|
|
57
|
+
const totalDuration = Math.round((destTimestamp - originTimestamp) / 1000);
|
|
58
|
+
const finalityDuration = Math.max(Math.min(finalityEstimate, totalDuration - VALIDATION_TIME_EST), 1);
|
|
59
|
+
const remaining = totalDuration - finalityDuration;
|
|
60
|
+
const validateDuration = Math.max(Math.min(Math.round(remaining * 0.25), VALIDATION_TIME_EST), 1);
|
|
61
|
+
const relayDuration = Math.max(remaining - validateDuration, 1);
|
|
62
|
+
return {
|
|
63
|
+
stage: Stage.Relayed,
|
|
64
|
+
timings: {
|
|
65
|
+
[Stage.Finalized]: finalityDuration,
|
|
66
|
+
[Stage.Validated]: validateDuration,
|
|
67
|
+
[Stage.Relayed]: relayDuration,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const latestNonce = await tryFetchLatestNonce(originChainId, explorerApiUrl);
|
|
72
|
+
if (latestNonce && latestNonce >= nonce) {
|
|
104
73
|
return {
|
|
105
|
-
stage: Stage.
|
|
74
|
+
stage: Stage.Validated,
|
|
106
75
|
timings: {
|
|
107
76
|
[Stage.Finalized]: finalityEstimate,
|
|
108
77
|
[Stage.Validated]: VALIDATION_TIME_EST,
|
|
109
78
|
[Stage.Relayed]: relayEstimate,
|
|
110
79
|
},
|
|
111
80
|
};
|
|
112
|
-
}
|
|
81
|
+
}
|
|
82
|
+
const latestBlock = await tryFetchChainLatestBlock(originChainId);
|
|
83
|
+
const finalizedBlock = originBlockNumber + finalityBlocks;
|
|
84
|
+
if (latestBlock && parseInt(latestBlock.number.toString()) > finalizedBlock) {
|
|
85
|
+
return {
|
|
86
|
+
stage: Stage.Finalized,
|
|
87
|
+
timings: {
|
|
88
|
+
[Stage.Finalized]: finalityEstimate,
|
|
89
|
+
[Stage.Validated]: VALIDATION_TIME_EST,
|
|
90
|
+
[Stage.Relayed]: relayEstimate,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
stage: Stage.Sent,
|
|
96
|
+
timings: {
|
|
97
|
+
[Stage.Finalized]: finalityEstimate,
|
|
98
|
+
[Stage.Validated]: VALIDATION_TIME_EST,
|
|
99
|
+
[Stage.Relayed]: relayEstimate,
|
|
100
|
+
},
|
|
101
|
+
};
|
|
113
102
|
}
|
|
114
103
|
function getFinalityBlocks(chainId) {
|
|
115
|
-
|
|
116
|
-
const finalityBlocks = ((_b = (_a = chainIdToMetadata[chainId]) === null || _a === void 0 ? void 0 : _a.blocks) === null || _b === void 0 ? void 0 : _b.confirmations) || 0;
|
|
104
|
+
const finalityBlocks = chainIdToMetadata[chainId]?.blocks?.confirmations || 0;
|
|
117
105
|
return Math.max(finalityBlocks, 1);
|
|
118
106
|
}
|
|
119
107
|
function getBlockTimeEst(chainId) {
|
|
120
|
-
|
|
121
|
-
return ((_b = (_a = chainIdToMetadata[chainId]) === null || _a === void 0 ? void 0 : _a.blocks) === null || _b === void 0 ? void 0 : _b.estimateBlockTime) || 3;
|
|
108
|
+
return chainIdToMetadata[chainId]?.blocks?.estimateBlockTime || 3;
|
|
122
109
|
}
|
|
123
|
-
function tryFetchChainLatestBlock(chainId) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
});
|
|
110
|
+
async function tryFetchChainLatestBlock(chainId) {
|
|
111
|
+
if (!chainId)
|
|
112
|
+
return null;
|
|
113
|
+
console.debug(`Attempting to fetch latest block for:`, chainId);
|
|
114
|
+
try {
|
|
115
|
+
const block = await queryExplorerForBlock(chainId, 'latest');
|
|
116
|
+
return block;
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
console.error('Error fetching latest block', error);
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
137
122
|
}
|
|
138
|
-
function tryFetchLatestNonce(chainId, explorerApiUrl) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
});
|
|
123
|
+
async function tryFetchLatestNonce(chainId, explorerApiUrl) {
|
|
124
|
+
if (!chainId)
|
|
125
|
+
return null;
|
|
126
|
+
console.debug(`Attempting to fetch nonce for:`, chainId);
|
|
127
|
+
try {
|
|
128
|
+
const response = await fetchWithTimeout(`${explorerApiUrl}/latest-nonce`, {
|
|
129
|
+
method: 'POST',
|
|
130
|
+
headers: {
|
|
131
|
+
'Content-Type': 'application/json',
|
|
132
|
+
},
|
|
133
|
+
body: JSON.stringify({ chainId }),
|
|
134
|
+
}, 3000);
|
|
135
|
+
const result = await response.json();
|
|
136
|
+
console.debug(`Found nonce:`, result.nonce);
|
|
137
|
+
return result.nonce;
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
console.error('Error fetching nonce', error);
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
160
143
|
}
|
|
161
144
|
function isValidMessage(message) {
|
|
162
145
|
return !!(message &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMessageStage.js","sourceRoot":"","sources":["../../../src/messages/useMessageStage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMessageStage.js","sourceRoot":"","sources":["../../../src/messages/useMessageStage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,14 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { chainIdToMetadata } from '@hyperlane-xyz/sdk';
|
|
11
2
|
import { fetchWithTimeout } from './timeout';
|
|
12
3
|
export function getExplorerUrl(chainId) {
|
|
13
|
-
var _a;
|
|
14
4
|
const chain = chainIdToMetadata[chainId];
|
|
15
|
-
if (!
|
|
5
|
+
if (!chain?.blockExplorers?.length)
|
|
16
6
|
return null;
|
|
17
7
|
return chain.blockExplorers[0].url;
|
|
18
8
|
}
|
|
19
9
|
export function getExplorerApiUrl(chainId) {
|
|
20
|
-
var _a;
|
|
21
10
|
const chain = chainIdToMetadata[chainId];
|
|
22
|
-
if (!
|
|
11
|
+
if (!chain?.blockExplorers?.length)
|
|
23
12
|
return null;
|
|
24
13
|
return chain.blockExplorers[0].apiUrl || chain.blockExplorers[0].url;
|
|
25
14
|
}
|
|
@@ -29,44 +18,38 @@ export function getTxExplorerUrl(chainId, hash) {
|
|
|
29
18
|
return null;
|
|
30
19
|
return `${baseUrl}/tx/${hash}`;
|
|
31
20
|
}
|
|
32
|
-
export function queryExplorer(chainId, path, apiKey, timeout) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return result;
|
|
44
|
-
});
|
|
21
|
+
export async function queryExplorer(chainId, path, apiKey, timeout) {
|
|
22
|
+
const baseUrl = getExplorerApiUrl(chainId);
|
|
23
|
+
if (!baseUrl)
|
|
24
|
+
throw new Error(`No URL found for explorer for chain ${chainId}`);
|
|
25
|
+
let url = `${baseUrl}/${path}`;
|
|
26
|
+
console.debug('Querying explorer url:', url);
|
|
27
|
+
if (apiKey) {
|
|
28
|
+
url += `&apikey=${apiKey}`;
|
|
29
|
+
}
|
|
30
|
+
const result = await executeExplorerQuery(url, timeout);
|
|
31
|
+
return result;
|
|
45
32
|
}
|
|
46
|
-
export function executeExplorerQuery(url, timeout) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
return json.result;
|
|
58
|
-
});
|
|
33
|
+
export async function executeExplorerQuery(url, timeout) {
|
|
34
|
+
const response = await fetchWithTimeout(url, undefined, timeout);
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new Error(`Fetch response not okay: ${response.status}`);
|
|
37
|
+
}
|
|
38
|
+
const json = (await response.json());
|
|
39
|
+
if (!json.result) {
|
|
40
|
+
const responseText = await response.text();
|
|
41
|
+
throw new Error(`Invalid result format: ${responseText}`);
|
|
42
|
+
}
|
|
43
|
+
return json.result;
|
|
59
44
|
}
|
|
60
|
-
export function queryExplorerForBlock(chainId, blockNumber) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return block;
|
|
70
|
-
});
|
|
45
|
+
export async function queryExplorerForBlock(chainId, blockNumber) {
|
|
46
|
+
const path = `?module=proxy&action=eth_getBlockByNumber&tag=${blockNumber || 'latest'}&boolean=false`;
|
|
47
|
+
const block = await queryExplorer(chainId, path);
|
|
48
|
+
if (!block?.number || parseInt(block.number.toString()) < 0) {
|
|
49
|
+
const msg = 'Invalid block result';
|
|
50
|
+
console.error(msg, JSON.stringify(block), path);
|
|
51
|
+
throw new Error(msg);
|
|
52
|
+
}
|
|
53
|
+
return block;
|
|
71
54
|
}
|
|
72
55
|
//# sourceMappingURL=explorers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explorers.js","sourceRoot":"","sources":["../../../src/utils/explorers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"explorers.js","sourceRoot":"","sources":["../../../src/utils/explorers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
export function fetchWithTimeout(resource, options, timeout = 10000) {
|
|
11
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
12
|
-
const controller = new AbortController();
|
|
13
|
-
const id = setTimeout(() => controller.abort(), timeout);
|
|
14
|
-
const response = yield fetch(resource, Object.assign(Object.assign({}, options), { signal: controller.signal }));
|
|
15
|
-
clearTimeout(id);
|
|
16
|
-
return response;
|
|
1
|
+
export async function fetchWithTimeout(resource, options, timeout = 10000) {
|
|
2
|
+
const controller = new AbortController();
|
|
3
|
+
const id = setTimeout(() => controller.abort(), timeout);
|
|
4
|
+
const response = await fetch(resource, {
|
|
5
|
+
...options,
|
|
6
|
+
signal: controller.signal,
|
|
17
7
|
});
|
|
8
|
+
clearTimeout(id);
|
|
9
|
+
return response;
|
|
18
10
|
}
|
|
19
11
|
//# sourceMappingURL=timeout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../../src/utils/timeout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../../src/utils/timeout.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAqB,EACrB,OAAqB,EACrB,OAAO,GAAG,KAAK;IAEf,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,GAAG,OAAO;QACV,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperlane-xyz/widgets",
|
|
3
3
|
"description": "Common react components for Hyperlane projects",
|
|
4
|
-
"version": "3.8.0
|
|
4
|
+
"version": "3.8.0",
|
|
5
5
|
"author": "J M Rossy",
|
|
6
6
|
"peerDependencies": {
|
|
7
7
|
"@hyperlane-xyz/sdk": "^3.1",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"react-dom": "^18"
|
|
10
10
|
},
|
|
11
11
|
"devDependencies": {
|
|
12
|
-
"@hyperlane-xyz/sdk": "3.8.0
|
|
12
|
+
"@hyperlane-xyz/sdk": "3.8.0",
|
|
13
13
|
"@storybook/addon-essentials": "^7.6.14",
|
|
14
14
|
"@storybook/addon-interactions": "^7.6.14",
|
|
15
15
|
"@storybook/addon-links": "^7.6.14",
|