@vultisig/core-chain 2.23.1 → 2.23.3
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/CHANGELOG.md +33 -0
- package/dist/chains/cardano/client/getCardanoAddressAssets.d.ts.map +1 -1
- package/dist/chains/cardano/client/getCardanoAddressAssets.js +32 -7
- package/dist/chains/cardano/client/getCardanoAddressAssets.js.map +1 -1
- package/dist/chains/cosmos/account/getAllCosmosBalances.d.ts +19 -0
- package/dist/chains/cosmos/account/getAllCosmosBalances.d.ts.map +1 -0
- package/dist/chains/cosmos/account/getAllCosmosBalances.js +36 -0
- package/dist/chains/cosmos/account/getAllCosmosBalances.js.map +1 -0
- package/dist/chains/cosmos/cosmosFeeDenomAllowlist.d.ts +15 -0
- package/dist/chains/cosmos/cosmosFeeDenomAllowlist.d.ts.map +1 -0
- package/dist/chains/cosmos/cosmosFeeDenomAllowlist.js +48 -0
- package/dist/chains/cosmos/cosmosFeeDenomAllowlist.js.map +1 -0
- package/dist/chains/cosmos/cosmosMemoCap.d.ts +31 -0
- package/dist/chains/cosmos/cosmosMemoCap.d.ts.map +1 -0
- package/dist/chains/cosmos/cosmosMemoCap.js +49 -0
- package/dist/chains/cosmos/cosmosMemoCap.js.map +1 -0
- package/dist/chains/cosmos/resolveCosmosGasFee.d.ts +28 -0
- package/dist/chains/cosmos/resolveCosmosGasFee.d.ts.map +1 -0
- package/dist/chains/cosmos/resolveCosmosGasFee.js +6 -0
- package/dist/chains/cosmos/resolveCosmosGasFee.js.map +1 -0
- package/dist/chains/solana/spl/getSplAccounts.d.ts.map +1 -1
- package/dist/chains/solana/spl/getSplAccounts.js +15 -4
- package/dist/chains/solana/spl/getSplAccounts.js.map +1 -1
- package/dist/chains/ton/account/getTonAccountInfo.d.ts +1 -1
- package/dist/chains/ton/account/getTonAccountInfo.d.ts.map +1 -1
- package/dist/chains/ton/account/getTonAccountInfo.js +14 -2
- package/dist/chains/ton/account/getTonAccountInfo.js.map +1 -1
- package/dist/coin/balance/resolvers/cosmos.d.ts.map +1 -1
- package/dist/coin/balance/resolvers/cosmos.js +3 -0
- package/dist/coin/balance/resolvers/cosmos.js.map +1 -1
- package/dist/coin/find/resolvers/cosmos.d.ts.map +1 -1
- package/dist/coin/find/resolvers/cosmos.js +9 -2
- package/dist/coin/find/resolvers/cosmos.js.map +1 -1
- package/dist/coin/find/resolvers/evm/index.d.ts.map +1 -1
- package/dist/coin/find/resolvers/evm/index.js +38 -10
- package/dist/coin/find/resolvers/evm/index.js.map +1 -1
- package/dist/coin/token/metadata/resolvers/cosmos.d.ts.map +1 -1
- package/dist/coin/token/metadata/resolvers/cosmos.js +4 -0
- package/dist/coin/token/metadata/resolvers/cosmos.js.map +1 -1
- package/dist/publicKey/getPublicKey.d.ts.map +1 -1
- package/dist/publicKey/getPublicKey.js +3 -0
- package/dist/publicKey/getPublicKey.js.map +1 -1
- package/dist/swap/general/swapkit/SwapKitEnabledChains.d.ts +2 -2
- package/dist/swap/general/swapkit/SwapKitEnabledChains.d.ts.map +1 -1
- package/dist/swap/general/swapkit/SwapKitEnabledChains.js +11 -2
- package/dist/swap/general/swapkit/SwapKitEnabledChains.js.map +1 -1
- package/dist/swap/general/swapkit/api/getSwapKitQuote.d.ts.map +1 -1
- package/dist/swap/general/swapkit/api/getSwapKitQuote.js +21 -0
- package/dist/swap/general/swapkit/api/getSwapKitQuote.js.map +1 -1
- package/dist/swap/native/NativeSwapChain.d.ts +2 -1
- package/dist/swap/native/NativeSwapChain.d.ts.map +1 -1
- package/dist/swap/native/NativeSwapChain.js +13 -0
- package/dist/swap/native/NativeSwapChain.js.map +1 -1
- package/dist/swap/native/api/getNativeSwapQuote.d.ts.map +1 -1
- package/dist/swap/native/api/getNativeSwapQuote.js +17 -0
- package/dist/swap/native/api/getNativeSwapQuote.js.map +1 -1
- package/dist/swap/quote/findSwapQuote.d.ts.map +1 -1
- package/dist/swap/quote/findSwapQuote.js +119 -29
- package/dist/swap/quote/findSwapQuote.js.map +1 -1
- package/dist/swap/skip/skipRouting.d.ts +28 -0
- package/dist/swap/skip/skipRouting.d.ts.map +1 -0
- package/dist/swap/skip/skipRouting.js +79 -0
- package/dist/swap/skip/skipRouting.js.map +1 -0
- package/dist/swap/swapEnabledChains.d.ts +1 -1
- package/dist/swap/swapEnabledChains.d.ts.map +1 -1
- package/dist/tx/isValidTxHash.d.ts +8 -0
- package/dist/tx/isValidTxHash.d.ts.map +1 -0
- package/dist/tx/isValidTxHash.js +41 -0
- package/dist/tx/isValidTxHash.js.map +1 -0
- package/dist/tx/status/resolver.d.ts +1 -1
- package/dist/tx/status/resolver.d.ts.map +1 -1
- package/dist/tx/status/resolvers/evm.d.ts.map +1 -1
- package/dist/tx/status/resolvers/evm.js +33 -13
- package/dist/tx/status/resolvers/evm.js.map +1 -1
- package/package.json +32 -2
|
@@ -25,8 +25,14 @@ import { isEmpty } from '@vultisig/lib-utils/array/isEmpty';
|
|
|
25
25
|
import { isOneOf } from '@vultisig/lib-utils/array/isOneOf';
|
|
26
26
|
import { bigIntToNumber } from '@vultisig/lib-utils/bigint/bigIntToNumber';
|
|
27
27
|
import { isInError } from '@vultisig/lib-utils/error/isInError';
|
|
28
|
+
import { HttpResponseError } from '@vultisig/lib-utils/fetch/HttpResponseError';
|
|
28
29
|
import { pick } from '@vultisig/lib-utils/record/pick';
|
|
29
30
|
const QUOTE_FETCH_TIMEOUT_MS = 30_000;
|
|
31
|
+
// Node/undici network-layer error codes — mirrors agent-backend-ts's
|
|
32
|
+
// `TRANSIENT_QUOTE_CODE_RE` (execute_swap.ts) for the same reason: a provider's raw
|
|
33
|
+
// rejection surfaces these as bare codes (e.g. "ETIMEDOUT"), which don't contain the
|
|
34
|
+
// substrings "timeout" or "timed out" checked elsewhere.
|
|
35
|
+
const TRANSIENT_PROVIDER_CODE_RE = /\b(ETIMEDOUT|ECONNRESET|ECONNREFUSED|ECONNABORTED|EPIPE|ENOTFOUND|EAI_AGAIN|UND_ERR_\w+)\b/i;
|
|
30
36
|
const withTimeout = (p, ms) => {
|
|
31
37
|
let timeoutId;
|
|
32
38
|
const timeoutPromise = new Promise((_, reject) => {
|
|
@@ -81,6 +87,82 @@ const assertNativeTradingOpen = async (input) => {
|
|
|
81
87
|
}
|
|
82
88
|
};
|
|
83
89
|
const asTradingHaltedSwapError = (reason) => reason instanceof SwapError && reason.code === SwapErrorCode.TradingHalted ? reason : null;
|
|
90
|
+
const isBelowMinimumMsg = (msg) => {
|
|
91
|
+
const lower = msg.toLowerCase();
|
|
92
|
+
return (lower.includes('below minimum') ||
|
|
93
|
+
lower.includes('minimum amount') ||
|
|
94
|
+
lower.includes('min amount') ||
|
|
95
|
+
lower.includes('amount too small') ||
|
|
96
|
+
lower.includes('below the minimum'));
|
|
97
|
+
};
|
|
98
|
+
// Native protocols halt trading per-chain (THORChain mimir `HALT<CHAIN>TRADING`,
|
|
99
|
+
// pool ragnarok, churn). The quote API then rejects EVERY amount with
|
|
100
|
+
// "trading is halted" — an operational state, not an amount problem. Detect it
|
|
101
|
+
// so we surface a "temporarily unavailable" message instead of the misleading
|
|
102
|
+
// generic "no route" (which reads like the pair is unsupported). Also match the
|
|
103
|
+
// "trading paused" wordings emitted by the THOR halt helpers in
|
|
104
|
+
// `chains/cosmos/thor/lp/halts.ts` (`global trading paused`,
|
|
105
|
+
// `<chain> chain trading paused`). (#604, CodeRabbit)
|
|
106
|
+
const isTradingHaltedMsg = (msg) => {
|
|
107
|
+
const lower = msg.toLowerCase();
|
|
108
|
+
return (lower.includes('halted') ||
|
|
109
|
+
lower.includes('trading halt') ||
|
|
110
|
+
lower.includes('trading paused') ||
|
|
111
|
+
lower.includes('trading is paused'));
|
|
112
|
+
};
|
|
113
|
+
// A provider's raw rejection is a transient infra failure (network/timeout/5xx),
|
|
114
|
+
// not a genuine structural decline. Bails to false on the same "no route" /
|
|
115
|
+
// dust-threshold / halted substrings checked above so a provider that positively
|
|
116
|
+
// answered is never misclassified as transient. Mirrors (deliberately duplicated,
|
|
117
|
+
// not imported — separate repo/package) agent-backend-ts's execute_swap.ts
|
|
118
|
+
// `isTransientQuoteError`, which classifies the SAME kind of raw single-provider
|
|
119
|
+
// error for the native asyncFallbackChain path. Used below to detect the case
|
|
120
|
+
// where EVERY provider failed transiently, so the generic `AllProvidersFailed`
|
|
121
|
+
// fallback doesn't collapse a genuine outage into a "no route" hard-negative that
|
|
122
|
+
// downstream classifiers (and `isTransientQuoteError` itself) cannot un-collapse.
|
|
123
|
+
// Hoisted to module scope (rather than nested in findSwapQuote) since it closes
|
|
124
|
+
// over no local state — only the module-level regex and the two helpers above.
|
|
125
|
+
const isTransientProviderFailure = (reason) => {
|
|
126
|
+
const msg = reason instanceof Error ? reason.message : String(reason);
|
|
127
|
+
const lower = msg.toLowerCase();
|
|
128
|
+
if (lower.includes('no swap routes found') ||
|
|
129
|
+
lower.includes('no swap route found') ||
|
|
130
|
+
lower.includes('no routes found') ||
|
|
131
|
+
lower.includes('no route found') ||
|
|
132
|
+
lower.includes('amount less than min swap amount') ||
|
|
133
|
+
isBelowMinimumMsg(msg) ||
|
|
134
|
+
isTradingHaltedMsg(msg) ||
|
|
135
|
+
lower.includes('dust threshold') ||
|
|
136
|
+
lower.includes('does not meet requirements')) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
// Structured status takes precedence over message-sniffing where available
|
|
140
|
+
// (HttpResponseError.status) — a 429/5xx is unambiguously a transient
|
|
141
|
+
// infra signal regardless of how the provider worded the body.
|
|
142
|
+
if (reason instanceof HttpResponseError && (reason.status === 429 || reason.status >= 500)) {
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
return (lower.includes('fetch failed') ||
|
|
146
|
+
lower.includes('failed to fetch') ||
|
|
147
|
+
lower.includes('network error') ||
|
|
148
|
+
lower.includes('socket hang up') ||
|
|
149
|
+
lower.includes('connection refused') ||
|
|
150
|
+
lower.includes('econnrefused') ||
|
|
151
|
+
lower.includes('timeout') ||
|
|
152
|
+
lower.includes('timed out') ||
|
|
153
|
+
lower.includes('deadline exceeded') ||
|
|
154
|
+
lower.includes('the operation was aborted') ||
|
|
155
|
+
/\bhttp\s+5\d{2}\b/.test(lower) ||
|
|
156
|
+
lower.includes('bad gateway') ||
|
|
157
|
+
lower.includes('service unavailable') ||
|
|
158
|
+
lower.includes('gateway timeout') ||
|
|
159
|
+
lower.includes('internal server error') ||
|
|
160
|
+
lower.includes('rate limit') ||
|
|
161
|
+
lower.includes('too many requests') ||
|
|
162
|
+
/\b429\b/.test(lower) ||
|
|
163
|
+
lower.includes('skip api network error') ||
|
|
164
|
+
TRANSIENT_PROVIDER_CODE_RE.test(msg));
|
|
165
|
+
};
|
|
84
166
|
/**
|
|
85
167
|
* Tuning point for issue #605's banded routing rule. 50 bps = 0.5%.
|
|
86
168
|
* Adjust this when product wants a wider or narrower provider-preference band.
|
|
@@ -220,9 +302,21 @@ const isEvmAddress = (address) => /^0x[0-9a-fA-F]{40}$/.test(address);
|
|
|
220
302
|
// THOR/Maya pairs the node validates the destination downstream, so a malformed
|
|
221
303
|
// non-EVM address fails there and the EVM check is skipped. Extracted from
|
|
222
304
|
// findSwapQuote to keep that function's cognitive complexity within the gate.
|
|
305
|
+
// The zero address and the canonical `…dEaD` burn sink — a swap output routed here is
|
|
306
|
+
// unrecoverably destroyed. Never a legit payout target for ANY route, so reject up front
|
|
307
|
+
// (a well-formed but merely WRONG non-burn recipient is the caller's grounding responsibility).
|
|
308
|
+
const ZERO_EVM_ADDRESS = '0x0000000000000000000000000000000000000000';
|
|
309
|
+
const BURN_EVM_ADDRESS = '0x000000000000000000000000000000000000dead';
|
|
223
310
|
const assertValidCustomRecipient = (recipient, from, to) => {
|
|
224
|
-
if (recipient === undefined
|
|
311
|
+
if (recipient === undefined)
|
|
225
312
|
return;
|
|
313
|
+
if (isEvmAddress(recipient)) {
|
|
314
|
+
const lower = recipient.toLowerCase();
|
|
315
|
+
if (lower === ZERO_EVM_ADDRESS || lower === BURN_EVM_ADDRESS) {
|
|
316
|
+
throw new SwapError(SwapErrorCode.InvalidConfig, `recipient "${recipient}" is a zero/burn address — the swap output would be unrecoverable.`);
|
|
317
|
+
}
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
226
320
|
const cowSwapPathReachable = isChainOfKind(from.chain, 'evm') &&
|
|
227
321
|
from.id !== undefined &&
|
|
228
322
|
isChainOfKind(to.chain, 'evm') &&
|
|
@@ -523,29 +617,6 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
523
617
|
'THORChain',
|
|
524
618
|
'MayaChain',
|
|
525
619
|
];
|
|
526
|
-
const isBelowMinimumMsg = (msg) => {
|
|
527
|
-
const lower = msg.toLowerCase();
|
|
528
|
-
return (lower.includes('below minimum') ||
|
|
529
|
-
lower.includes('minimum amount') ||
|
|
530
|
-
lower.includes('min amount') ||
|
|
531
|
-
lower.includes('amount too small') ||
|
|
532
|
-
lower.includes('below the minimum'));
|
|
533
|
-
};
|
|
534
|
-
// Native protocols halt trading per-chain (THORChain mimir `HALT<CHAIN>TRADING`,
|
|
535
|
-
// pool ragnarok, churn). The quote API then rejects EVERY amount with
|
|
536
|
-
// "trading is halted" — an operational state, not an amount problem. Detect it
|
|
537
|
-
// so we surface a "temporarily unavailable" message instead of the misleading
|
|
538
|
-
// generic "no route" (which reads like the pair is unsupported). Also match the
|
|
539
|
-
// "trading paused" wordings emitted by the THOR halt helpers in
|
|
540
|
-
// `chains/cosmos/thor/lp/halts.ts` (`global trading paused`,
|
|
541
|
-
// `<chain> chain trading paused`). (#604, CodeRabbit)
|
|
542
|
-
const isTradingHaltedMsg = (msg) => {
|
|
543
|
-
const lower = msg.toLowerCase();
|
|
544
|
-
return (lower.includes('halted') ||
|
|
545
|
-
lower.includes('trading halt') ||
|
|
546
|
-
lower.includes('trading paused') ||
|
|
547
|
-
lower.includes('trading is paused'));
|
|
548
|
-
};
|
|
549
620
|
const belowMinimumByProvider = new Map();
|
|
550
621
|
const haltedProviders = new Set();
|
|
551
622
|
let proactiveTradingHalt = null;
|
|
@@ -564,11 +635,8 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
564
635
|
isInError(result.reason, 'amount less than')) {
|
|
565
636
|
throw new SwapError(SwapErrorCode.AmountTooSmall, 'Swap amount too small. Please increase the amount to proceed.');
|
|
566
637
|
}
|
|
567
|
-
if (isBelowMinimumMsg(msg)) {
|
|
568
|
-
|
|
569
|
-
if (!belowMinimumByProvider.has(providerName)) {
|
|
570
|
-
belowMinimumByProvider.set(providerName, msg);
|
|
571
|
-
}
|
|
638
|
+
if (isBelowMinimumMsg(msg) && !belowMinimumByProvider.has(fetchers[i].providerName)) {
|
|
639
|
+
belowMinimumByProvider.set(fetchers[i].providerName, msg);
|
|
572
640
|
}
|
|
573
641
|
if (isTradingHaltedMsg(msg)) {
|
|
574
642
|
haltedProviders.add(fetchers[i].providerName);
|
|
@@ -618,6 +686,28 @@ export const findSwapQuote = async ({ from, to, amount, referral, vultDiscountTi
|
|
|
618
686
|
: null)
|
|
619
687
|
.filter((entry) => entry !== null);
|
|
620
688
|
console.warn(`[findSwapQuote] no route for ${from.ticker} -> ${to.ticker}; raw provider errors: ${rawProviderErrors.join(' | ')}`);
|
|
689
|
+
// If EVERY provider failed transiently (network/timeout/5xx — never a genuine
|
|
690
|
+
// structural decline), say so explicitly instead of the generic "no route"
|
|
691
|
+
// wording. The generic message below is deliberately noise-free (never embeds
|
|
692
|
+
// raw provider text — see "omits noisy provider errors" test) and, worse,
|
|
693
|
+
// unconditionally contains "no route", which downstream consumers' transient-
|
|
694
|
+
// error classifiers (e.g. agent-backend-ts's `isTransientQuoteError`) bail out
|
|
695
|
+
// on BEFORE checking for network/timeout signals — so a real outage was always
|
|
696
|
+
// reported as a hard, definitive "this pair has no route" dead-end. This is the
|
|
697
|
+
// one case where that's wrong: nobody actually declined the route, every
|
|
698
|
+
// provider was simply unreachable. Kept just as noise-free as the generic
|
|
699
|
+
// fallback (no raw provider text), naming the detected category rather than the
|
|
700
|
+
// upstream body, so downstream classification is deterministic without leaking
|
|
701
|
+
// upstream internals.
|
|
702
|
+
const rejectedReasons = settled
|
|
703
|
+
.filter((result) => result.status === 'rejected')
|
|
704
|
+
.map(result => result.reason);
|
|
705
|
+
const allProvidersTransient = rejectedReasons.length > 0 && rejectedReasons.every(isTransientProviderFailure);
|
|
706
|
+
if (allProvidersTransient) {
|
|
707
|
+
throw new SwapError(SwapErrorCode.AllProvidersFailed, `Swap quote lookup failed for all ${failedProviders.length} provider(s) tried ` +
|
|
708
|
+
`(${failedProviders.join(', ')}) due to a transient network/timeout error. ` +
|
|
709
|
+
`This is not a missing route — retry the same swap shortly.`);
|
|
710
|
+
}
|
|
621
711
|
throw new SwapError(SwapErrorCode.AllProvidersFailed, `No swap route found after trying ${failedProviders.join(', ')}.`);
|
|
622
712
|
};
|
|
623
713
|
const belowNativeMinimumError = (min, from) => new SwapError(SwapErrorCode.AmountBelowMinimum, `Amount is below the minimum for this swap. Minimum is ~${min.minAmountInHuman} ${from.ticker}. Please increase the amount.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findSwapQuote.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/findSwapQuote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"findSwapQuote.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/findSwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAoB,MAAM,qCAAqC,CAAA;AAE3F,OAAO,EAAE,eAAe,EAAE,MAAM,+DAA+D,CAAA;AAC/F,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AAC7G,OAAO,EAAE,mBAAmB,EAAE,MAAM,mEAAmE,CAAA;AAEvG,OAAO,EAAE,wBAAwB,EAAE,MAAM,oEAAoE,CAAA;AAC7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAA;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AAEvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAA;AAE9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAA;AACpG,OAAO,EACL,mBAAmB,GAEpB,MAAM,mEAAmE,CAAA;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oEAAoE,CAAA;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,+DAA+D,CAAA;AAC/F,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gEAAgE,CAAA;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,yDAAyD,CAAA;AAExG,OAAO,EAAE,kBAAkB,EAAE,MAAM,yDAAyD,CAAA;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iEAAiE,CAAA;AAC1G,OAAO,EACL,wBAAwB,GAEzB,MAAM,mEAAmE,CAAA;AAC1E,OAAO,EAEL,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,kDAAkD,CAAA;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,uEAAuE,CAAA;AACtH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAA;AAgEtD,MAAM,sBAAsB,GAAG,MAAM,CAAA;AAErC,qEAAqE;AACrE,oFAAoF;AACpF,qFAAqF;AACrF,yDAAyD;AACzD,MAAM,0BAA0B,GAC9B,6FAA6F,CAAA;AAE/F,MAAM,WAAW,GAAG,CAAI,CAAa,EAAE,EAAU,EAAc,EAAE;IAC/D,IAAI,SAAoD,CAAA;IACxD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACtD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACjG,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACpD,YAAY,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAqC;IACvE,8EAA8E;IAC9E,yEAAyE;IACzE,6EAA6E;IAC7E,6DAA6D;IAC7D,SAAS;IACT,WAAW;IACX,WAAW;IACX,8EAA8E;IAC9E,0EAA0E;IAC1E,+EAA+E;IAC/E,sEAAsE;IACtE,SAAS;IACT,SAAS;IACT,WAAW;IACX,OAAO;IACP,MAAM;CACE,CAAA;AAEV,iDAAiD;AACjD,MAAM,CAAC,MAAM,yBAAyB,GAAG,uBAAuB,CAAA;AAEhE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CACrC,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CACxD,CAAA;AAED,MAAM,yBAAyB,GAAG,CAAC,IAA2B,EAAU,EAAE,CACxE,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAA;AAE/D,MAAM,0BAA0B,GAAG,CAAC,MAAc,EAAE,EAAE,CACpD,gDAAgD,MAAM,2BAA2B,CAAA;AAEnF,MAAM,yBAAyB,GAAG,KAAK,EAAE,EACvC,IAAI,EACJ,EAAE,EACF,SAAS,GAKV,EAA6B,EAAE;IAC9B,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;IAE3E,OAAO,WAAW;QAChB,CAAC,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC,aAAa,EAAE,0BAA0B,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxG,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,KAAK,EAAE,KAItC,EAAiB,EAAE;IAClB,MAAM,gBAAgB,GAAG,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAA;IAC/D,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,gBAAgB,CAAA;IACxB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAAC,MAAe,EAAoB,EAAE,CACrE,MAAM,YAAY,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;AAE5F,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAE;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC/B,OAAO,CACL,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC/B,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC5B,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAClC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CACpC,CAAA;AACH,CAAC,CAAA;AAED,iFAAiF;AACjF,sEAAsE;AACtE,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,gEAAgE;AAChE,6DAA6D;AAC7D,sDAAsD;AACtD,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC/B,OAAO,CACL,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxB,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC9B,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CACpC,CAAA;AACH,CAAC,CAAA;AAED,iFAAiF;AACjF,4EAA4E;AAC5E,iFAAiF;AACjF,kFAAkF;AAClF,2EAA2E;AAC3E,iFAAiF;AACjF,8EAA8E;AAC9E,+EAA+E;AAC/E,kFAAkF;AAClF,kFAAkF;AAClF,gFAAgF;AAChF,+EAA+E;AAC/E,MAAM,0BAA0B,GAAG,CAAC,MAAe,EAAW,EAAE;IAC9D,MAAM,GAAG,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACrE,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC/B,IACE,KAAK,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACtC,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACrC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACjC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChC,KAAK,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAClD,iBAAiB,CAAC,GAAG,CAAC;QACtB,kBAAkB,CAAC,GAAG,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChC,KAAK,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAC5C,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,2EAA2E;IAC3E,sEAAsE;IACtE,+DAA+D;IAC/D,IAAI,MAAM,YAAY,iBAAiB,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;QAC3F,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,CACL,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC9B,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACjC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC/B,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACpC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC9B,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QACzB,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3B,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACnC,KAAK,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC3C,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/B,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC7B,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACrC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACjC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACvC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC5B,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACnC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QACrB,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACxC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CACrC,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,8BAA8B,GAAG,GAAG,CAAA;AAC1C,MAAM,eAAe,GAAG,MAAO,CAAA;AAE/B,MAAM,sBAAsB,GAAG,CAAC,YAAoB,EAAE,gBAAwB,EAAW,EAAE,CACzF,YAAY,GAAG,eAAe,IAAI,gBAAgB,GAAG,CAAC,eAAe,GAAG,8BAA8B,CAAC,CAAA;AAEzG,iFAAiF;AACjF,SAAS,cAAc,CAAC,KAAa,EAAE,YAAoB,EAAE,UAAkB;IAC7E,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,UAAU,GAAG,YAAY,EAAE,CAAC;QAC9B,OAAO,KAAK,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC,CAAA;IACzD,CAAC;IACD,OAAO,KAAK,GAAG,GAAG,IAAI,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,CAAA;AACzD,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,MAAc,EAAE,GAAW,EAAU,EAAE,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAA;AAEpG,MAAM,aAAa,GAAG,CAAC,GAAkC,EAAE,IAAiB,EAAW,EAAE,CACvF,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAA;AAEhD,MAAM,kCAAkC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAyC,EAAU,EAAE;IAC1G,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,CAAA;IAC/B,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAA;IACtB,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IAEtG,MAAM,kBAAkB,GACtB,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC5B,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC5B,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC5B,OAAO,CAAC,QAAQ,KAAK,SAAS;QAC9B,OAAO,CAAC,QAAQ,KAAK,SAAS;QAC9B,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAA;IAChC,IAAI,CAAC,kBAAkB,IAAI,WAAW,IAAI,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC;QACzE,OAAO,cAAc,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;IAC9E,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,SAAS,yBAAyB,CAAC,CAAY,EAAE,EAAe;IAC9D,IAAI,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,8BAA8B,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,CAAA;IACvF,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACrD,OAAO,eAAe,CAAC,WAAW,EAAE,kCAAkC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;AAC3F,CAAC;AAED,MAAM,6BAA6B,GAAG,CAAC,CAAY,EAAE,IAAiB,EAAE,EAAe,EAAsB,EAAE;IAC7G,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QACpG,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;IAC9B,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,4EAA4E;QAC5E,sDAAsD;QACtD,OAAO,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAA;IACxB,CAAC;IACD,IAAI,eAAe,IAAI,EAAE,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,SAAS,uBAAuB,CAAC,OAAgD;IAC/E,MAAM,UAAU,GAAsB,EAAE,CAAA;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACzB,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CACxC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EACpF,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAC3B,CAAA;IAED,IAAI,QAAQ,GAA2B,IAAI,CAAA;IAC3C,IAAI,sBAAsB,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAErD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACtE,SAAQ;QACV,CAAC;QAED,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAEjF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,QAAQ,GAAG,SAAS,CAAA;YACpB,sBAAsB,GAAG,uBAAuB,CAAA;YAChD,SAAQ;QACV,CAAC;QAED,IAAI,uBAAuB,GAAG,sBAAsB,EAAE,CAAC;YACrD,QAAQ,GAAG,SAAS,CAAA;YACpB,sBAAsB,GAAG,uBAAuB,CAAA;YAChD,SAAQ;QACV,CAAC;QAED,IAAI,uBAAuB,KAAK,sBAAsB,EAAE,CAAC;YACvD,SAAQ;QACV,CAAC;QAED,MAAM,gBAAgB,GACpB,SAAS,CAAC,cAAc,KAAK,SAAS;YACtC,QAAQ,CAAC,cAAc,KAAK,SAAS;YACrC,SAAS,CAAC,cAAc,KAAK,QAAQ,CAAC,cAAc,CAAA;QAEtD,IAAI,gBAAgB,IAAI,SAAS,CAAC,cAAe,GAAG,QAAQ,CAAC,cAAe,EAAE,CAAC;YAC7E,QAAQ,GAAG,SAAS,CAAA;YACpB,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YACxE,QAAQ,GAAG,SAAS,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAA;AAChC,CAAC;AAED,+EAA+E;AAC/E,uEAAuE;AACvE,0EAA0E;AAC1E,4EAA4E;AAC5E,iFAAiF;AACjF,MAAM,8BAA8B,GAAG,EAAE,CAAA;AACzC,MAAM,4BAA4B,GAAG,CAAC,iBAAqC,EAAQ,EAAE;IACnF,IACE,iBAAiB,KAAK,SAAS;QAC/B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,GAAG,CAAC,IAAI,iBAAiB,GAAG,8BAA8B,CAAC,EACpH,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,aAAa,EAC3B,kFAAkF,8BAA8B,eAAe,iBAAiB,IAAI,CACrJ,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED,uFAAuF;AACvF,MAAM,YAAY,GAAG,CAAC,OAAe,EAAW,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAEtF,iFAAiF;AACjF,qFAAqF;AACrF,iFAAiF;AACjF,mFAAmF;AACnF,mFAAmF;AACnF,kFAAkF;AAClF,gFAAgF;AAChF,2EAA2E;AAC3E,8EAA8E;AAC9E,sFAAsF;AACtF,yFAAyF;AACzF,gGAAgG;AAChG,MAAM,gBAAgB,GAAG,4CAA4C,CAAA;AACrE,MAAM,gBAAgB,GAAG,4CAA4C,CAAA;AAErE,MAAM,0BAA0B,GAAG,CAAC,SAA6B,EAAE,IAAiB,EAAE,EAAe,EAAQ,EAAE;IAC7G,IAAI,SAAS,KAAK,SAAS;QAAE,OAAM;IACnC,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;QACrC,IAAI,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;YAC7D,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,aAAa,EAC3B,cAAc,SAAS,oEAAoE,CAC5F,CAAA;QACH,CAAC;QACD,OAAM;IACR,CAAC;IACD,MAAM,oBAAoB,GACxB,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QAChC,IAAI,CAAC,EAAE,KAAK,SAAS;QACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;QAC9B,EAAE,CAAC,EAAE,KAAK,SAAS;QACnB,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK;QACvB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAA;IAC7C,IAAI,oBAAoB,EAAE,CAAC;QACzB,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,aAAa,EAC3B,cAAc,SAAS,+EAA+E,CACvG,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAaD,MAAM,kBAAkB,GAAG,CAAC,iBAAqC,EAAoB,EAAE;IACrF,MAAM,GAAG,GAAG,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAE7F,OAAO;QACL,SAAS,EAAE,GAAG;QACd,cAAc,EAAE,iBAAiB;QACjC,cAAc,EAAE,iBAAiB;QACjC,YAAY,EAAE,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS;QACnF,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,GAAG;KAChB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,EAClC,IAAI,EACJ,EAAE,EACF,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,iBAAiB,GACE,EAAsB,EAAE;IAC3C,iEAAiE;IACjE,8EAA8E;IAC9E,0EAA0E;IAC1E,+EAA+E;IAC/E,MAAM,yBAAyB,GAAG,eAAe,EAAE,MAAM,EAAE,mBAAmB,CAAA;IAC9E,IACE,yBAAyB,KAAK,SAAS;QACvC,yBAAyB,KAAK,yBAAyB,CAAC,WAAW,EAAE,EACrE,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,aAAa,EAC3B,oGAAoG,yBAAyB,8CAA8C,CAC5K,CAAA;IACH,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAA;IAElE,MAAM,YAAY,GAAmB,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEnG,MAAM,gBAAgB,GAAmB,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE3E,0EAA0E;IAC1E,0EAA0E;IAC1E,8EAA8E;IAC9E,2EAA2E;IAC3E,gEAAgE;IAChE,2EAA2E;IAC3E,mEAAmE;IACnE,MAAM,mBAAmB,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,SAAS,CAAA;IAC1D,MAAM,kBAAkB,GAAG,mBAAmB,KAAK,SAAS,CAAA;IAE5D,6EAA6E;IAC7E,8EAA8E;IAC9E,0BAA0B;IAC1B,0BAA0B,CAAC,mBAAmB,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;IAEzD,4EAA4E;IAC5E,0EAA0E;IAC1E,oCAAoC;IACpC,4BAA4B,CAAC,iBAAiB,CAAC,CAAA;IAE/C,uEAAuE;IACvE,4EAA4E;IAC5E,MAAM,EACJ,cAAc,EAAE,sBAAsB,EACtC,cAAc,EAAE,sBAAsB,EACtC,YAAY,EAAE,oBAAoB,EAClC,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,iBAAiB,GAC7B,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAA;IAEzC,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;IAE7C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAC7D,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,CACxF,CAAA;IAED,MAAM,iBAAiB,GAAG,GAAuB,EAAE,CACjD,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnC,YAAY,EAAE,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW;QACvE,KAAK,EAAE,KAAK,IAAwB,EAAE;YACpC,MAAM,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;YAEtD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAA;YAClC,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;YACzD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,SAAS;gBACT,WAAW,EAAE,mBAAmB,IAAI,EAAE,CAAC,OAAO;gBAC9C,IAAI;gBACJ,EAAE;gBACF,MAAM,EAAE,YAAY;gBACpB,oBAAoB,EAAE,iBAAiB;gBACvC,QAAQ;gBACR,YAAY;gBACZ,qBAAqB,EAAE,eAAe,EAAE,MAAM;aAC/C,CAAC,CAAA;YAEF,OAAO;gBACL,KAAK,EAAE,EAAE,MAAM,EAAE;gBACjB,SAAS,EAAE,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY;aACjG,CAAA;QACH,CAAC;KACF,CAAC,CAAC,CAAA;IAEL,MAAM,kBAAkB,GAAG,GAAuB,EAAE;QAClD,MAAM,MAAM,GAAuB,EAAE,CAAA;QAErC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5B,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAA;QACxB,MAAM,WAAW,GAAG,MAAM,CAAA;QAE1B,yEAAyE;QACzE,2EAA2E;QAC3E,qEAAqE;QACrE,2EAA2E;QAC3E,qEAAqE;QACrE,+DAA+D;QAC/D,yDAAyD;QACzD,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,yEAAyE;QACzE,0EAA0E;QAC1E,yBAAyB;QACzB,IACE,SAAS,KAAK,OAAO;YACrB,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC;YAC1C,IAAI,CAAC,EAAE,KAAK,SAAS;YACrB,EAAE,CAAC,EAAE,KAAK,SAAS,EACnB,CAAC;YACD,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAA;YACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAA;YACtB,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,SAAS;gBACvB,KAAK,EAAE,KAAK,IAAwB,EAAE;oBACpC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;wBACpC,SAAS;wBACT,QAAQ;wBACR,UAAU,EAAE,WAAW;wBACvB,IAAI,EAAE,IAAI,CAAC,OAAO;wBAClB,QAAQ,EAAE,mBAAmB,IAAI,IAAI,CAAC,OAAO;wBAC7C,WAAW,EAAE,cAAc;wBAC3B,YAAY;qBACb,CAAC,CAAA;oBAEF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;gBACxD,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,IACE,CAAC,kBAAkB;YACnB,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC;YAC1C,OAAO,CAAC,OAAO,EAAE,sBAAsB,CAAC;YACxC,SAAS,KAAK,OAAO,EACrB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,WAAW;gBACzB,KAAK,EAAE,KAAK,IAAwB,EAAE;oBACpC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC;wBACtC,IAAI,EAAE;4BACJ,GAAG,IAAI;4BACP,KAAK,EAAE,SAAS;yBACjB;wBACD,EAAE,EAAE;4BACF,GAAG,EAAE;4BACL,KAAK,EAAE,OAAO;yBACf;wBACD,MAAM,EAAE,WAAW;wBACnB,YAAY;wBACZ,WAAW,EAAE,eAAe,EAAE,KAAK;wBACnC,iBAAiB,EAAE,gBAAgB;qBACpC,CAAC,CAAA;oBAEF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;gBACxD,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,wBAAwB,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;YACpG,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,OAAO;gBACrB,KAAK,EAAE,KAAK,IAAwB,EAAE;oBACpC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC;wBACxC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;wBACzC,UAAU,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM;wBAClC,QAAQ,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM;wBAC5B,MAAM,EAAE,WAAW;wBACnB,YAAY;wBACZ,aAAa,EAAE,eAAe,EAAE,OAAO;wBACvC,QAAQ,EAAE,sBAAsB;qBACjC,CAAC,CAAA;oBAEF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;gBACxD,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,4EAA4E;QAC5E,wEAAwE;QACxE,IAAI,CAAC,kBAAkB,IAAI,OAAO,CAAC,SAAS,EAAE,wBAAwB,CAAC,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACjG,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,SAAS;gBACvB,KAAK,EAAE,KAAK,IAAwB,EAAE;oBACpC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC;wBACxC,IAAI,EAAE;4BACJ,GAAG,IAAI;4BACP,KAAK,EAAE,SAAS;yBACjB;wBACD,EAAE,EAAE;4BACF,GAAG,EAAE;4BACL,KAAK,EAAE,SAAS;yBACjB;wBACD,MAAM,EAAE,WAAW;wBACnB,YAAY;wBACZ,aAAa,EAAE,eAAe,EAAE,OAAO;wBACvC,WAAW,EAAE,kBAAkB;qBAChC,CAAC,CAAA;oBAEF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;gBACxD,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,kBAAkB,IAAI,OAAO,CAAC,SAAS,EAAE,qBAAqB,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAAE,CAAC;YAChH,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,MAAM;gBACpB,KAAK,EAAE,KAAK,IAAwB,EAAE;oBACpC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC;wBACrC,IAAI,EAAE;4BACJ,GAAG,IAAI;4BACP,KAAK,EAAE,SAAS;yBACjB;wBACD,EAAE,EAAE;4BACF,GAAG,EAAE;4BACL,KAAK,EAAE,OAAO;yBACf;wBACD,MAAM,EAAE,WAAW;wBACnB,YAAY;wBACZ,mBAAmB,EAAE,eAAe,EAAE,IAAI;wBAC1C,QAAQ,EAAE,oBAAoB;qBAC/B,CAAC,CAAA;oBAEF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;gBACxD,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,kBAAkB,IAAI,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,EAAE,CAAC;YAC7G,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,SAAS;gBACvB,KAAK,EAAE,KAAK,IAAwB,EAAE;oBACpC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;wBACpC,IAAI,EAAE;4BACJ,GAAG,IAAI;4BACP,KAAK,EAAE,SAAS;yBACjB;wBACD,EAAE,EAAE;4BACF,GAAG,EAAE;4BACL,KAAK,EAAE,OAAO;yBACf;wBACD,MAAM,EAAE,WAAW;wBACnB,YAAY;wBACZ,QAAQ,EAAE,sBAAsB;qBACjC,CAAC,CAAA;oBAEF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;gBACxD,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,MAAM,uBAAuB,GAC3B,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAErG,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAA;IAC5C,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAE1C,MAAM,QAAQ,GAAG,uBAAuB;QACtC,CAAC,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,cAAc,CAAC;QACzC,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,GAAG,eAAe,CAAC,CAAA;IAE3C,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,iBAAiB,EAAE,CAAA;IAC/B,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,8EAA8E;IAC9E,8EAA8E;IAC9E,6EAA6E;IAC7E,0DAA0D;IAC1D,MAAM,gBAAgB,GAAG,GAA0C,EAAE,CACnE,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;QAC1C,CAAC,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACpE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3B,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,eAAe,GACnB,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAC9G,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;QAEvE,MAAM,SAAS,GAAG,MAAM,gBAAgB,EAAE,CAAA;QAC1C,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC;YACzD,MAAM,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAA4B,EAAE;QACvD,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,sBAAsB,CAAC,CAAA;QACxE,OAAO;YACL,KAAK;YACL,YAAY,EAAE,yBAAyB,CAAC,KAAK,EAAE,EAAE,CAAC;YAClD,cAAc,EAAE,6BAA6B,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;YAC9D,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IACD,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;IAE7C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IAED,6EAA6E;IAC7E,0EAA0E;IAC1E,6BAA6B;IAC7B,EAAE;IACF,8EAA8E;IAC9E,8DAA8D;IAC9D,6EAA6E;IAC7E,wEAAwE;IACxE,4EAA4E;IAC5E,wEAAwE;IACxE,sEAAsE;IACtE,qEAAqE;IACrE,kEAAkE;IAClE,MAAM,yBAAyB,GAA4B;QACzD,SAAS;QACT,WAAW;QACX,OAAO;QACP,SAAS;QACT,MAAM;QACN,SAAS;QACT,WAAW;QACX,WAAW;KACZ,CAAA;IAED,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAiC,CAAA;IACvE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAA;IACxD,IAAI,oBAAoB,GAAqB,IAAI,CAAA;IAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACzB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,SAAQ;QACV,CAAC;QAED,MAAM,GAAG,GAAW,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAElG,oBAAoB,KAAK,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAEhE,qEAAqE;QACrE,yEAAyE;QACzE,kDAAkD;QAClD,IACE,MAAM,CAAC,MAAM,YAAY,8BAA8B;YACvD,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;YAC1C,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC5C,CAAC;YACD,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,+DAA+D,CAAC,CAAA;QACpH,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;YACpF,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;QAC3D,CAAC;QAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,sBAAsB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACpC,sEAAsE;QACtE,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACpF,MAAM,mBAAmB,GAAG,SAAS;YACnC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAE;YACxC,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,kBAAkB,EAChC,yDAAyD,mBAAmB,EAAE,CAC/E,CAAA;IACH,CAAC;IAED,IAAI,oBAAoB,EAAE,CAAC;QACzB,MAAM,oBAAoB,CAAA;IAC5B,CAAC;IAED,8EAA8E;IAC9E,gFAAgF;IAChF,+EAA+E;IAC/E,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,aAAa,EAC3B,0BAA0B,CAAC,wBAAwB,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CACtF,CAAA;IACH,CAAC;IAED,8EAA8E;IAC9E,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,SAAS,GAAG,MAAM,gBAAgB,EAAE,CAAA;IAC1C,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC;QACzD,MAAM,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,eAAe,GAAG,OAAO;SAC5B,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACrB,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAA;IACrC,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,YAAY,EAAyC,EAAE,CAAC,YAAY,KAAK,IAAI,CAAC,CAAA;IAEzF,6EAA6E;IAC7E,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,iBAAiB,GAAG,OAAO;SAC9B,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACrB,MAAM,CAAC,MAAM,KAAK,UAAU;QAC1B,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACtH,CAAC,CAAC,IAAI,CACT;SACA,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;IACrD,OAAO,CAAC,IAAI,CACV,gCAAgC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,MAAM,0BAA0B,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACrH,CAAA;IAED,8EAA8E;IAC9E,2EAA2E;IAC3E,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAC9E,+EAA+E;IAC/E,+EAA+E;IAC/E,gFAAgF;IAChF,yEAAyE;IACzE,0EAA0E;IAC1E,gFAAgF;IAChF,+EAA+E;IAC/E,sBAAsB;IACtB,MAAM,eAAe,GAAG,OAAO;SAC5B,MAAM,CAAC,CAAC,MAAM,EAAmC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC;SACjF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC/B,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAE7G,IAAI,qBAAqB,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,kBAAkB,EAChC,oCAAoC,eAAe,CAAC,MAAM,qBAAqB;YAC7E,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C;YAC5E,4DAA4D,CAC/D,CAAA;IACH,CAAC;IAED,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,kBAAkB,EAChC,oCAAoC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAAC,GAA0B,EAAE,IAAiB,EAAa,EAAE,CAC3F,IAAI,SAAS,CACX,aAAa,CAAC,kBAAkB,EAChC,0DAA0D,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,+BAA+B,CAC7H,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare const isTerraChain: (chain: string) => boolean;
|
|
2
|
+
/**
|
|
3
|
+
* True when the chain participates in a Skip-routed swap pair (as either
|
|
4
|
+
* the source or destination side of `willRouteViaSkip`). Use this in
|
|
5
|
+
* routing predicates ("should we try Skip for this pair?"); use
|
|
6
|
+
* `isTerraChain` only for the narrower Terra-specific special cases.
|
|
7
|
+
*/
|
|
8
|
+
export declare const isSkipRoutableChain: (chain: string) => boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Single source of truth for "does this from/to chain pair route through
|
|
11
|
+
* Skip Go?" — the gate every consumer (execute/build tools, route
|
|
12
|
+
* discovery/listing, destination-format validation) must share so they can
|
|
13
|
+
* never drift from each other. A pair routes via Skip when ANY of:
|
|
14
|
+
*
|
|
15
|
+
* - skipBoth: both sides are Skip-routable cosmos chains (ATOM<->OSMO).
|
|
16
|
+
* - terraTouching: either side is Terra v2 / TerraClassic (Skip bridge).
|
|
17
|
+
* - cosmosEvmCross: one side is Skip-routable cosmos AND the other is a
|
|
18
|
+
* Skip-supported EVM chain (ATOM->USDC.eth via CCTP/Axelar).
|
|
19
|
+
*
|
|
20
|
+
* A consumer whose Skip-routing decision drifts from its own destination-
|
|
21
|
+
* validation or route-discovery logic (two independently-maintained copies
|
|
22
|
+
* of this same chain-topology knowledge, one per consumer) is exactly the
|
|
23
|
+
* bug class this function exists to close — accept a raw, uncanonicalized
|
|
24
|
+
* chain string here and it fails closed to `false` (falls through to the
|
|
25
|
+
* caller's native/general-aggregator lane) rather than silently guessing.
|
|
26
|
+
*/
|
|
27
|
+
export declare const willRouteViaSkip: (fromChain: string, toChain: string) => boolean;
|
|
28
|
+
//# sourceMappingURL=skipRouting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skipRouting.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/skip/skipRouting.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,OAA2C,CAAA;AAuBxF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,OAA0D,CAAA;AAoB9G;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,EAAE,SAAS,MAAM,KAAG,OAOrE,CAAA"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { CosmosChain, EvmChain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { isChainOfKind } from '@vultisig/core-chain/ChainKind';
|
|
3
|
+
/**
|
|
4
|
+
* Terra-family chains (Terra v2/phoenix-1, TerraClassic/columbus-5) that
|
|
5
|
+
* route swaps through Skip Go's bridge rather than a native/general
|
|
6
|
+
* aggregator quote. Keep this narrower than `isSkipRoutableChain` for the
|
|
7
|
+
* few call sites that genuinely need to special-case Terra specifically
|
|
8
|
+
* (e.g. a THORChain/MayaChain discoverer returning a no-pools-anymore hint).
|
|
9
|
+
*/
|
|
10
|
+
const TERRA_CHAINS = new Set([CosmosChain.Terra, CosmosChain.TerraClassic]);
|
|
11
|
+
export const isTerraChain = (chain) => TERRA_CHAINS.has(chain);
|
|
12
|
+
/**
|
|
13
|
+
* Cosmos-family chains Skip Go indexes as source/destination chains for its
|
|
14
|
+
* IBC + Osmosis-poolmanager swap routes. Deliberately NOT "any Cosmos
|
|
15
|
+
* chain" — THORChain and MayaChain are native-RUNE/CACAO providers with
|
|
16
|
+
* their own dedicated quote APIs; Skip does not route through them.
|
|
17
|
+
*
|
|
18
|
+
* Each entry below was verified live against Skip's `/v2/fungible/route`
|
|
19
|
+
* endpoint before being added (see the consuming apps' git history for the
|
|
20
|
+
* probe dates) — do not add a chain here on assumption alone.
|
|
21
|
+
*/
|
|
22
|
+
const SKIP_ROUTABLE_COSMOS_CHAINS = new Set([
|
|
23
|
+
CosmosChain.Cosmos,
|
|
24
|
+
CosmosChain.Osmosis,
|
|
25
|
+
CosmosChain.Kujira,
|
|
26
|
+
CosmosChain.Terra,
|
|
27
|
+
CosmosChain.TerraClassic,
|
|
28
|
+
CosmosChain.Akash,
|
|
29
|
+
CosmosChain.Dydx,
|
|
30
|
+
CosmosChain.Noble,
|
|
31
|
+
]);
|
|
32
|
+
/**
|
|
33
|
+
* True when the chain participates in a Skip-routed swap pair (as either
|
|
34
|
+
* the source or destination side of `willRouteViaSkip`). Use this in
|
|
35
|
+
* routing predicates ("should we try Skip for this pair?"); use
|
|
36
|
+
* `isTerraChain` only for the narrower Terra-specific special cases.
|
|
37
|
+
*/
|
|
38
|
+
export const isSkipRoutableChain = (chain) => SKIP_ROUTABLE_COSMOS_CHAINS.has(chain);
|
|
39
|
+
/**
|
|
40
|
+
* EVM chains Skip Go bridges cosmos-side liquidity to/from (e.g. ATOM ->
|
|
41
|
+
* USDC.eth via CCTP/Axelar). Skip does not bridge to every EVM chain — only
|
|
42
|
+
* probe-verified entries are listed.
|
|
43
|
+
*/
|
|
44
|
+
const SKIP_SUPPORTED_EVM_CHAINS = new Set([
|
|
45
|
+
EvmChain.Ethereum,
|
|
46
|
+
EvmChain.Arbitrum,
|
|
47
|
+
EvmChain.Optimism,
|
|
48
|
+
EvmChain.Base,
|
|
49
|
+
EvmChain.Polygon,
|
|
50
|
+
EvmChain.Avalanche,
|
|
51
|
+
EvmChain.BSC,
|
|
52
|
+
]);
|
|
53
|
+
const isSkipSupportedEvmChain = (chain) => isChainOfKind(chain, 'evm') && SKIP_SUPPORTED_EVM_CHAINS.has(chain);
|
|
54
|
+
/**
|
|
55
|
+
* Single source of truth for "does this from/to chain pair route through
|
|
56
|
+
* Skip Go?" — the gate every consumer (execute/build tools, route
|
|
57
|
+
* discovery/listing, destination-format validation) must share so they can
|
|
58
|
+
* never drift from each other. A pair routes via Skip when ANY of:
|
|
59
|
+
*
|
|
60
|
+
* - skipBoth: both sides are Skip-routable cosmos chains (ATOM<->OSMO).
|
|
61
|
+
* - terraTouching: either side is Terra v2 / TerraClassic (Skip bridge).
|
|
62
|
+
* - cosmosEvmCross: one side is Skip-routable cosmos AND the other is a
|
|
63
|
+
* Skip-supported EVM chain (ATOM->USDC.eth via CCTP/Axelar).
|
|
64
|
+
*
|
|
65
|
+
* A consumer whose Skip-routing decision drifts from its own destination-
|
|
66
|
+
* validation or route-discovery logic (two independently-maintained copies
|
|
67
|
+
* of this same chain-topology knowledge, one per consumer) is exactly the
|
|
68
|
+
* bug class this function exists to close — accept a raw, uncanonicalized
|
|
69
|
+
* chain string here and it fails closed to `false` (falls through to the
|
|
70
|
+
* caller's native/general-aggregator lane) rather than silently guessing.
|
|
71
|
+
*/
|
|
72
|
+
export const willRouteViaSkip = (fromChain, toChain) => {
|
|
73
|
+
const cosmosEvmCross = (isSkipRoutableChain(fromChain) && isSkipSupportedEvmChain(toChain)) ||
|
|
74
|
+
(isSkipRoutableChain(toChain) && isSkipSupportedEvmChain(fromChain));
|
|
75
|
+
const skipBoth = isSkipRoutableChain(fromChain) && isSkipRoutableChain(toChain);
|
|
76
|
+
const terraTouching = isTerraChain(fromChain) || isTerraChain(toChain);
|
|
77
|
+
return skipBoth || terraTouching || cosmosEvmCross;
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=skipRouting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skipRouting.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/skip/skipRouting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D;;;;;;GAMG;AACH,MAAM,YAAY,GAAuB,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAA;AAE/F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAc,CAAC,CAAA;AAExF;;;;;;;;;GASG;AACH,MAAM,2BAA2B,GAAuB,IAAI,GAAG,CAAC;IAC9D,WAAW,CAAC,MAAM;IAClB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,MAAM;IAClB,WAAW,CAAC,KAAK;IACjB,WAAW,CAAC,YAAY;IACxB,WAAW,CAAC,KAAK;IACjB,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,KAAK;CAClB,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAc,CAAC,CAAA;AAE9G;;;;GAIG;AACH,MAAM,yBAAyB,GAAuB,IAAI,GAAG,CAAC;IAC5D,QAAQ,CAAC,QAAQ;IACjB,QAAQ,CAAC,QAAQ;IACjB,QAAQ,CAAC,QAAQ;IACjB,QAAQ,CAAC,IAAI;IACb,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,SAAS;IAClB,QAAQ,CAAC,GAAG;CACb,CAAC,CAAA;AAEF,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAW,EAAE,CACzD,aAAa,CAAC,KAAc,EAAE,KAAK,CAAC,IAAI,yBAAyB,CAAC,GAAG,CAAC,KAAc,CAAC,CAAA;AAEvF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,OAAe,EAAW,EAAE;IAC9E,MAAM,cAAc,GAClB,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACpE,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAA;IACtE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC/E,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAA;IACtE,OAAO,QAAQ,IAAI,aAAa,IAAI,cAAc,CAAA;AACpD,CAAC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const swapEnabledChains: readonly [...("Arbitrum" | "Base" | "Blast" | "Optimism" | "Zksync" | "Mantle" | "Avalanche" | "CronosChain" | "BSC" | "Ethereum" | "Polygon" | "Hyperliquid" | "Sei" | "Cosmos" | "Kujira" | "Noble" | "THORChain" | "MayaChain" | import("../Chain.js").UtxoChain | import("../Chain.js").OtherChain.Solana | import("../Chain.js").OtherChain.Ripple | import("../Chain.js").OtherChain.Tron)[], import("../Chain.js").OtherChain.Solana, "Ethereum", "Arbitrum", "Avalanche", "Base", "BSC", "Optimism", "Polygon", import("../Chain.js").OtherChain.Solana, import("../Chain.js").UtxoChain.Bitcoin, import("../Chain.js").UtxoChain.BitcoinCash, import("../Chain.js").UtxoChain.Dogecoin, import("../Chain.js").UtxoChain.Litecoin, import("../Chain.js").OtherChain.Ripple, import("../Chain.js").OtherChain.Ton, import("../Chain.js").OtherChain.Tron, import("../Chain.js").UtxoChain.Zcash, import("../Chain.js").OtherChain.Cardano, "Cosmos", import("../Chain.js").UtxoChain.Dash, "Kujira", "MayaChain",
|
|
1
|
+
export declare const swapEnabledChains: readonly [...("Arbitrum" | "Base" | "Blast" | "Optimism" | "Zksync" | "Mantle" | "Avalanche" | "CronosChain" | "BSC" | "Ethereum" | "Polygon" | "Hyperliquid" | "Sei" | "Cosmos" | "Kujira" | "Noble" | "THORChain" | "MayaChain" | import("../Chain.js").UtxoChain | import("../Chain.js").OtherChain.Solana | import("../Chain.js").OtherChain.Ripple | import("../Chain.js").OtherChain.Tron | import("../Chain.js").OtherChain.Cardano)[], import("../Chain.js").OtherChain.Solana, "Ethereum", "Arbitrum", "Avalanche", "Base", "BSC", "Optimism", "Polygon", import("../Chain.js").OtherChain.Solana, import("../Chain.js").UtxoChain.Bitcoin, import("../Chain.js").UtxoChain.BitcoinCash, import("../Chain.js").UtxoChain.Dogecoin, import("../Chain.js").UtxoChain.Litecoin, import("../Chain.js").OtherChain.Ripple, import("../Chain.js").OtherChain.Ton, import("../Chain.js").OtherChain.Tron, import("../Chain.js").UtxoChain.Zcash, import("../Chain.js").OtherChain.Sui, import("../Chain.js").OtherChain.Cardano, "Cosmos", import("../Chain.js").UtxoChain.Dash, "Kujira", "MayaChain", "THORChain"];
|
|
2
2
|
//# sourceMappingURL=swapEnabledChains.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapEnabledChains.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/swap/swapEnabledChains.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"swapEnabledChains.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/swap/swapEnabledChains.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,kgCAKpB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Chain } from '../Chain.js';
|
|
2
|
+
/**
|
|
3
|
+
* True when `hash` is a plausibly-well-formed transaction hash for `chain`'s
|
|
4
|
+
* chain-kind. A cheap pre-RPC guard — a `false` here means the input is
|
|
5
|
+
* malformed (reject it), a `true` does NOT imply the tx exists.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isValidTxHash(chain: Chain, hash: string): boolean;
|
|
8
|
+
//# sourceMappingURL=isValidTxHash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isValidTxHash.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/tx/isValidTxHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AA+BhC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAKjE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getChainKind } from '../ChainKind.js';
|
|
2
|
+
// Per-chain-kind transaction-hash shape checks. Deliberately conservative: the
|
|
3
|
+
// goal is to reject obviously-malformed input (e.g. `nothash`, a truncated hex
|
|
4
|
+
// string) *before* any RPC call, not to guarantee the hash exists on-chain.
|
|
5
|
+
// Bounds are kept loose enough to admit every well-formed hash the SDK emits.
|
|
6
|
+
const HEX_64 = /^[0-9a-fA-F]{64}$/;
|
|
7
|
+
const HEX_64_PREFIXED = /^0x[0-9a-fA-F]{64}$/;
|
|
8
|
+
// Base58 alphabet (Bitcoin/IPFS style: excludes 0, O, I, l).
|
|
9
|
+
const base58 = (min, max) => new RegExp(`^[1-9A-HJ-NP-Za-km-z]{${min},${max}}$`);
|
|
10
|
+
// TON message hashes are 32 bytes, surfaced as hex or (url-safe) base64.
|
|
11
|
+
const TON_BASE64 = /^[A-Za-z0-9+/_-]{43,44}={0,2}$/;
|
|
12
|
+
const validators = {
|
|
13
|
+
evm: h => HEX_64_PREFIXED.test(h),
|
|
14
|
+
polkadot: h => HEX_64_PREFIXED.test(h),
|
|
15
|
+
bittensor: h => HEX_64_PREFIXED.test(h),
|
|
16
|
+
utxo: h => HEX_64.test(h),
|
|
17
|
+
cosmos: h => HEX_64.test(h),
|
|
18
|
+
ripple: h => HEX_64.test(h),
|
|
19
|
+
tron: h => HEX_64.test(h),
|
|
20
|
+
cardano: h => HEX_64.test(h),
|
|
21
|
+
qbtc: h => HEX_64.test(h),
|
|
22
|
+
// base58-encoded 32-byte digest (~43-44 chars).
|
|
23
|
+
sui: h => base58(40, 48).test(h),
|
|
24
|
+
// base58-encoded 64-byte signature (~87-88 chars).
|
|
25
|
+
solana: h => base58(80, 90).test(h),
|
|
26
|
+
ton: h => HEX_64.test(h) || TON_BASE64.test(h),
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* True when `hash` is a plausibly-well-formed transaction hash for `chain`'s
|
|
30
|
+
* chain-kind. A cheap pre-RPC guard — a `false` here means the input is
|
|
31
|
+
* malformed (reject it), a `true` does NOT imply the tx exists.
|
|
32
|
+
*/
|
|
33
|
+
export function isValidTxHash(chain, hash) {
|
|
34
|
+
if (typeof hash !== 'string')
|
|
35
|
+
return false;
|
|
36
|
+
const trimmed = hash.trim();
|
|
37
|
+
if (trimmed.length === 0)
|
|
38
|
+
return false;
|
|
39
|
+
return validators[getChainKind(chain)](trimmed);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=isValidTxHash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isValidTxHash.js","sourceRoot":"","sources":["../../../../../packages/core/chain/tx/isValidTxHash.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,YAAY,EAAE,MAAM,cAAc,CAAA;AAEtD,+EAA+E;AAC/E,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,MAAM,GAAG,mBAAmB,CAAA;AAClC,MAAM,eAAe,GAAG,qBAAqB,CAAA;AAC7C,6DAA6D;AAC7D,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,yBAAyB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAA;AAChG,yEAAyE;AACzE,MAAM,UAAU,GAAG,gCAAgC,CAAA;AAEnD,MAAM,UAAU,GAAiD;IAC/D,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzB,gDAAgD;IAChD,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,mDAAmD;IACnD,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;CAC/C,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAY,EAAE,IAAY;IACtD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,OAAO,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;AACjD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Resolver } from '@vultisig/lib-utils/types/Resolver';
|
|
2
2
|
import { Chain } from '../../Chain.js';
|
|
3
|
-
type TxStatus = 'pending' | 'success' | 'error';
|
|
3
|
+
type TxStatus = 'pending' | 'success' | 'error' | 'not_found';
|
|
4
4
|
export type TxReceiptInfo = {
|
|
5
5
|
feeAmount: bigint;
|
|
6
6
|
feeDecimals: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/status/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/status/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAOnC,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAA;AAE7D,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,QAAQ,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,IAAI,QAAQ,CAC9D;IACE,KAAK,EAAE,CAAC,CAAA;IACR,IAAI,EAAE,MAAM,CAAA;CACb,EACD,OAAO,CAAC,cAAc,CAAC,CACxB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAMrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,eAAO,MAAM,cAAc,EAAE,gBAAgB,CAAC,QAAQ,CAgDrD,CAAA"}
|
|
@@ -1,24 +1,44 @@
|
|
|
1
1
|
import { getEvmClient } from '@vultisig/core-chain/chains/evm/client';
|
|
2
2
|
import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
|
|
3
3
|
import { attempt } from '@vultisig/lib-utils/attempt';
|
|
4
|
+
import { TransactionNotFoundError, TransactionReceiptNotFoundError } from 'viem';
|
|
4
5
|
export const getEvmTxStatus = async ({ chain, hash }) => {
|
|
5
6
|
const client = getEvmClient(chain);
|
|
6
7
|
const { data, error } = await attempt(client.getTransactionReceipt({ hash: hash }));
|
|
7
|
-
if (
|
|
8
|
-
|
|
8
|
+
if (data) {
|
|
9
|
+
const status = data.status === 'success' ? 'success' : 'error';
|
|
10
|
+
const feeCoin = chainFeeCoin[chain];
|
|
11
|
+
const receipt = data.gasUsed != null && data.effectiveGasPrice != null
|
|
12
|
+
? {
|
|
13
|
+
feeAmount: data.gasUsed * data.effectiveGasPrice,
|
|
14
|
+
feeDecimals: feeCoin.decimals,
|
|
15
|
+
feeTicker: feeCoin.ticker,
|
|
16
|
+
}
|
|
17
|
+
: undefined;
|
|
18
|
+
return { status, receipt };
|
|
9
19
|
}
|
|
10
|
-
|
|
20
|
+
// No receipt. A missing receipt on its own can't distinguish "still pending in
|
|
21
|
+
// the mempool" from "the node has never seen this hash" — so only treat the
|
|
22
|
+
// receipt as *definitively* absent when viem says so. Any other failure is a
|
|
23
|
+
// transient RPC error: report a non-terminal `pending` with `isKnown: false`
|
|
24
|
+
// and let the caller's bounded polling decide when to give up.
|
|
25
|
+
const receiptMissing = error instanceof TransactionReceiptNotFoundError || data === null;
|
|
26
|
+
if (!receiptMissing) {
|
|
11
27
|
return { status: 'pending', isKnown: false };
|
|
12
28
|
}
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
29
|
+
// Receipt genuinely absent — ask the node whether it knows the tx at all.
|
|
30
|
+
const { data: tx, error: txError } = await attempt(client.getTransaction({ hash: hash }));
|
|
31
|
+
if (tx) {
|
|
32
|
+
// The node has the tx (in the mempool, or mined but the receipt is lagging):
|
|
33
|
+
// a true pending. `isKnown: true` so the broadcast-verify safety net trusts it.
|
|
34
|
+
return { status: 'pending', isKnown: true };
|
|
35
|
+
}
|
|
36
|
+
if (txError instanceof TransactionNotFoundError || tx === null) {
|
|
37
|
+
// The node has never seen this hash — terminal `not_found`, NOT `pending`, so
|
|
38
|
+
// a malformed/dropped/typo'd hash is not polled forever.
|
|
39
|
+
return { status: 'not_found', isKnown: false };
|
|
40
|
+
}
|
|
41
|
+
// Couldn't confirm not-found (transient error on getTransaction) — stay pending.
|
|
42
|
+
return { status: 'pending', isKnown: false };
|
|
23
43
|
};
|
|
24
44
|
//# sourceMappingURL=evm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/evm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/evm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,MAAM,CAAA;AAIhF,MAAM,CAAC,MAAM,cAAc,GAA+B,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAClF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAElC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAqB,EAAE,CAAC,CAAC,CAAA;IAEpG,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAA;QAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;QAEnC,MAAM,OAAO,GACX,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI;YACpD,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB;gBAChD,WAAW,EAAE,OAAO,CAAC,QAAQ;gBAC7B,SAAS,EAAE,OAAO,CAAC,MAAM;aAC1B;YACH,CAAC,CAAC,SAAS,CAAA;QAEf,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IAC5B,CAAC;IAED,+EAA+E;IAC/E,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,+DAA+D;IAC/D,MAAM,cAAc,GAAG,KAAK,YAAY,+BAA+B,IAAI,IAAI,KAAK,IAAI,CAAA;IACxF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC9C,CAAC;IAED,0EAA0E;IAC1E,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAqB,EAAE,CAAC,CAAC,CAAA;IAE1G,IAAI,EAAE,EAAE,CAAC;QACP,6EAA6E;QAC7E,gFAAgF;QAChF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC7C,CAAC;IAED,IAAI,OAAO,YAAY,wBAAwB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAC/D,8EAA8E;QAC9E,yDAAyD;QACzD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAChD,CAAC;IAED,iFAAiF;IACjF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAC9C,CAAC,CAAA"}
|