@vultisig/core-chain 2.35.1 → 2.37.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/CHANGELOG.md +42 -0
- package/dist/chains/cosmos/cosmosGasLimitRecord.d.ts.map +1 -1
- package/dist/chains/cosmos/cosmosGasLimitRecord.js +13 -14
- package/dist/chains/cosmos/cosmosGasLimitRecord.js.map +1 -1
- package/dist/chains/cosmos/gas.d.ts +16 -0
- package/dist/chains/cosmos/gas.d.ts.map +1 -1
- package/dist/chains/cosmos/gas.js +17 -1
- package/dist/chains/cosmos/gas.js.map +1 -1
- package/dist/chains/sui/listAllCoins.d.ts.map +1 -1
- package/dist/chains/sui/listAllCoins.js +8 -0
- package/dist/chains/sui/listAllCoins.js.map +1 -1
- package/dist/chains/thorchain/ruji/services/fetchMergeableTokenBalances.d.ts +6 -1
- package/dist/chains/thorchain/ruji/services/fetchMergeableTokenBalances.d.ts.map +1 -1
- package/dist/chains/thorchain/ruji/services/fetchMergeableTokenBalances.js +6 -35
- package/dist/chains/thorchain/ruji/services/fetchMergeableTokenBalances.js.map +1 -1
- package/dist/swap/general/knownAggregatorRouters.d.ts +40 -22
- package/dist/swap/general/knownAggregatorRouters.d.ts.map +1 -1
- package/dist/swap/general/knownAggregatorRouters.js +147 -54
- package/dist/swap/general/knownAggregatorRouters.js.map +1 -1
- package/dist/swap/general/lifi/api/getLifiSwapQuote.d.ts.map +1 -1
- package/dist/swap/general/lifi/api/getLifiSwapQuote.js +15 -48
- package/dist/swap/general/lifi/api/getLifiSwapQuote.js.map +1 -1
- package/dist/swap/general/lifi/api/lifiSwapFeeChain.d.ts +4 -0
- package/dist/swap/general/lifi/api/lifiSwapFeeChain.d.ts.map +1 -0
- package/dist/swap/general/lifi/api/lifiSwapFeeChain.js +19 -0
- package/dist/swap/general/lifi/api/lifiSwapFeeChain.js.map +1 -0
- package/dist/swap/general/swapkit/api/getSwapKitQuote.d.ts.map +1 -1
- package/dist/swap/general/swapkit/api/getSwapKitQuote.js +24 -44
- package/dist/swap/general/swapkit/api/getSwapKitQuote.js.map +1 -1
- package/dist/swap/quote/SwapQuote.d.ts +12 -0
- package/dist/swap/quote/SwapQuote.d.ts.map +1 -1
- package/dist/swap/quote/findSwapQuote.d.ts +48 -2
- package/dist/swap/quote/findSwapQuote.d.ts.map +1 -1
- package/dist/swap/quote/findSwapQuote.js +64 -3
- package/dist/swap/quote/findSwapQuote.js.map +1 -1
- package/dist/swap/quote/getSwapQuoteSafetyFingerprint.d.ts +20 -0
- package/dist/swap/quote/getSwapQuoteSafetyFingerprint.d.ts.map +1 -0
- package/dist/swap/quote/getSwapQuoteSafetyFingerprint.js +67 -0
- package/dist/swap/quote/getSwapQuoteSafetyFingerprint.js.map +1 -0
- package/dist/tx/broadcast/cosmosSequenceMismatch.d.ts +26 -0
- package/dist/tx/broadcast/cosmosSequenceMismatch.d.ts.map +1 -0
- package/dist/tx/broadcast/cosmosSequenceMismatch.js +79 -0
- package/dist/tx/broadcast/cosmosSequenceMismatch.js.map +1 -0
- package/dist/tx/broadcast/resolvers/cosmos.d.ts +1 -0
- package/dist/tx/broadcast/resolvers/cosmos.d.ts.map +1 -1
- package/dist/tx/broadcast/resolvers/cosmos.js +7 -1
- package/dist/tx/broadcast/resolvers/cosmos.js.map +1 -1
- package/dist/tx/broadcast/transientRetry.d.ts.map +1 -1
- package/dist/tx/broadcast/transientRetry.js +6 -0
- package/dist/tx/broadcast/transientRetry.js.map +1 -1
- package/dist/utils/isValidTokenId.d.ts +6 -3
- package/dist/utils/isValidTokenId.d.ts.map +1 -1
- package/dist/utils/isValidTokenId.js +10 -3
- package/dist/utils/isValidTokenId.js.map +1 -1
- package/package.json +17 -2
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { AccountCoin } from '@vultisig/core-chain/coin/AccountCoin';
|
|
2
|
+
import type { SwapQuoteResult } from './SwapQuote.js';
|
|
3
|
+
type Input = {
|
|
4
|
+
from: AccountCoin;
|
|
5
|
+
to: AccountCoin;
|
|
6
|
+
requestedAmount: bigint;
|
|
7
|
+
expiresAt: number;
|
|
8
|
+
quote: SwapQuoteResult;
|
|
9
|
+
};
|
|
10
|
+
export declare const cloneSwapSafetyValue: <T>(value: T) => T;
|
|
11
|
+
/**
|
|
12
|
+
* Detects accidental mutation and stale or mismatched reuse by binding a
|
|
13
|
+
* canonical quote to the exact request identity and signable transaction it
|
|
14
|
+
* was returned with. This unkeyed digest is not an authenticity boundary.
|
|
15
|
+
* Pure and platform-neutral so preparation can recompute the same value before
|
|
16
|
+
* any wallet/key/payload work.
|
|
17
|
+
*/
|
|
18
|
+
export declare const getSwapQuoteSafetyFingerprint: ({ from, to, requestedAmount, expiresAt, quote }: Input) => string;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=getSwapQuoteSafetyFingerprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSwapQuoteSafetyFingerprint.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/getSwapQuoteSafetyFingerprint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,WAAW,CAAA;IACjB,EAAE,EAAE,WAAW,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,CAWlD,CAAA;AA0CD;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,GAAI,iDAAiD,KAAK,KAAG,MAcpG,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { sha256 } from '@noble/hashes/sha256';
|
|
2
|
+
import { bytesToHex } from '@noble/hashes/utils';
|
|
3
|
+
export const cloneSwapSafetyValue = (value) => {
|
|
4
|
+
if (value === null || typeof value !== 'object')
|
|
5
|
+
return value;
|
|
6
|
+
if (value instanceof Uint8Array)
|
|
7
|
+
return new Uint8Array(value);
|
|
8
|
+
if (Array.isArray(value))
|
|
9
|
+
return value.map(cloneSwapSafetyValue);
|
|
10
|
+
return Object.fromEntries(Object.entries(value).map(([key, nestedValue]) => [
|
|
11
|
+
key,
|
|
12
|
+
cloneSwapSafetyValue(nestedValue),
|
|
13
|
+
]));
|
|
14
|
+
};
|
|
15
|
+
const canonicalize = (value) => {
|
|
16
|
+
if (value === null)
|
|
17
|
+
return 'null';
|
|
18
|
+
if (value instanceof Uint8Array)
|
|
19
|
+
return `{"$bytes":${JSON.stringify(bytesToHex(value))}}`;
|
|
20
|
+
if (Array.isArray(value)) {
|
|
21
|
+
return `[${Array.from({ length: value.length }, (_, index) => index in value && value[index] !== undefined ? canonicalize(value[index]) : '{"$undefined":true}').join(',')}]`;
|
|
22
|
+
}
|
|
23
|
+
switch (typeof value) {
|
|
24
|
+
case 'bigint':
|
|
25
|
+
return `{"$bigint":${JSON.stringify(value.toString())}}`;
|
|
26
|
+
case 'boolean':
|
|
27
|
+
case 'number':
|
|
28
|
+
case 'string':
|
|
29
|
+
return JSON.stringify(value);
|
|
30
|
+
case 'object': {
|
|
31
|
+
const record = value;
|
|
32
|
+
return `{${Object.keys(record)
|
|
33
|
+
.filter(key => record[key] !== undefined)
|
|
34
|
+
.sort()
|
|
35
|
+
// `$...` is reserved for canonical type tags above. Escape real object
|
|
36
|
+
// keys in that namespace so, for example, `5n` cannot collide with a
|
|
37
|
+
// provider object shaped like `{ $bigint: '5' }`.
|
|
38
|
+
.map(key => `${JSON.stringify(key.startsWith('$') ? `$${key}` : key)}:${canonicalize(record[key])}`)
|
|
39
|
+
.join(',')}}`;
|
|
40
|
+
}
|
|
41
|
+
default:
|
|
42
|
+
throw new Error(`Unsupported swap quote safety value: ${typeof value}`);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const coinIdentity = ({ chain, address, id, ticker, decimals }) => ({
|
|
46
|
+
chain,
|
|
47
|
+
address,
|
|
48
|
+
id,
|
|
49
|
+
ticker,
|
|
50
|
+
decimals,
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Detects accidental mutation and stale or mismatched reuse by binding a
|
|
54
|
+
* canonical quote to the exact request identity and signable transaction it
|
|
55
|
+
* was returned with. This unkeyed digest is not an authenticity boundary.
|
|
56
|
+
* Pure and platform-neutral so preparation can recompute the same value before
|
|
57
|
+
* any wallet/key/payload work.
|
|
58
|
+
*/
|
|
59
|
+
export const getSwapQuoteSafetyFingerprint = ({ from, to, requestedAmount, expiresAt, quote }) => bytesToHex(sha256(new TextEncoder().encode(canonicalize({
|
|
60
|
+
version: 1,
|
|
61
|
+
from: coinIdentity(from),
|
|
62
|
+
to: coinIdentity(to),
|
|
63
|
+
requestedAmount,
|
|
64
|
+
expiresAt,
|
|
65
|
+
quote,
|
|
66
|
+
}))));
|
|
67
|
+
//# sourceMappingURL=getSwapQuoteSafetyFingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSwapQuoteSafetyFingerprint.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/quote/getSwapQuoteSafetyFingerprint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type CosmosSequenceMismatchRecovery = 'resign' | 'wait';
|
|
2
|
+
export type CosmosSequenceMismatch = {
|
|
3
|
+
expectedSequence: bigint;
|
|
4
|
+
signedSequence: bigint;
|
|
5
|
+
recovery: CosmosSequenceMismatchRecovery;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* A Cosmos CheckTx code-32 rejection with the sequence direction preserved.
|
|
9
|
+
*
|
|
10
|
+
* `resign` means the signed sequence is already behind chain state, so these
|
|
11
|
+
* exact bytes can never become valid. `wait` means the signed sequence is
|
|
12
|
+
* ahead of chain state and may become valid after the preceding transaction
|
|
13
|
+
* is accepted.
|
|
14
|
+
*/
|
|
15
|
+
export declare class CosmosSequenceMismatchError extends Error {
|
|
16
|
+
readonly expectedSequence: bigint;
|
|
17
|
+
readonly signedSequence: bigint;
|
|
18
|
+
readonly recovery: CosmosSequenceMismatchRecovery;
|
|
19
|
+
constructor({ expectedSequence, signedSequence }: Pick<CosmosSequenceMismatch, 'expectedSequence' | 'signedSequence'>, options?: ErrorOptions);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Finds a Cosmos code-32 account-sequence rejection through ordinary Error
|
|
23
|
+
* causes and the SDK's `VaultError.originalError` wrapper.
|
|
24
|
+
*/
|
|
25
|
+
export declare const toCosmosSequenceMismatchError: (error: unknown) => CosmosSequenceMismatchError | undefined;
|
|
26
|
+
//# sourceMappingURL=cosmosSequenceMismatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cosmosSequenceMismatch.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/broadcast/cosmosSequenceMismatch.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,8BAA8B,GAAG,QAAQ,GAAG,MAAM,CAAA;AAE9D,MAAM,MAAM,sBAAsB,GAAG;IACnC,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,8BAA8B,CAAA;CACzC,CAAA;AAgCD;;;;;;;GAOG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAA;gBAG/C,EAAE,gBAAgB,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,sBAAsB,EAAE,kBAAkB,GAAG,gBAAgB,CAAC,EACzG,OAAO,CAAC,EAAE,YAAY;CAczB;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,KAAG,2BAA2B,GAAG,SAyB5F,CAAA"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
const COSMOS_SEQUENCE_MISMATCH_RE = /broadcasting transaction failed with code 32 \(codespace: sdk\)\. log: account sequence mismatch, expected (\d{1,20}), got (\d{1,20}): incorrect account sequence/i;
|
|
2
|
+
const UINT64_MAX = (1n << 64n) - 1n;
|
|
3
|
+
const parseCosmosSequenceMismatchMessage = (message) => {
|
|
4
|
+
const match = message.match(COSMOS_SEQUENCE_MISMATCH_RE);
|
|
5
|
+
if (!match)
|
|
6
|
+
return undefined;
|
|
7
|
+
const expectedSequence = BigInt(match[1]);
|
|
8
|
+
const signedSequence = BigInt(match[2]);
|
|
9
|
+
if (expectedSequence > UINT64_MAX || signedSequence > UINT64_MAX || expectedSequence === signedSequence) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
expectedSequence,
|
|
14
|
+
signedSequence,
|
|
15
|
+
recovery: signedSequence < expectedSequence ? 'resign' : 'wait',
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
const getNestedErrors = (error) => {
|
|
19
|
+
const nested = [];
|
|
20
|
+
if ('cause' in error && error.cause !== undefined)
|
|
21
|
+
nested.push(error.cause);
|
|
22
|
+
if ('originalError' in error && error.originalError !== undefined) {
|
|
23
|
+
nested.push(error.originalError);
|
|
24
|
+
}
|
|
25
|
+
return nested;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* A Cosmos CheckTx code-32 rejection with the sequence direction preserved.
|
|
29
|
+
*
|
|
30
|
+
* `resign` means the signed sequence is already behind chain state, so these
|
|
31
|
+
* exact bytes can never become valid. `wait` means the signed sequence is
|
|
32
|
+
* ahead of chain state and may become valid after the preceding transaction
|
|
33
|
+
* is accepted.
|
|
34
|
+
*/
|
|
35
|
+
export class CosmosSequenceMismatchError extends Error {
|
|
36
|
+
expectedSequence;
|
|
37
|
+
signedSequence;
|
|
38
|
+
recovery;
|
|
39
|
+
constructor({ expectedSequence, signedSequence }, options) {
|
|
40
|
+
const recovery = signedSequence < expectedSequence ? 'resign' : 'wait';
|
|
41
|
+
const message = recovery === 'resign'
|
|
42
|
+
? `Cosmos account sequence changed before broadcast: this transaction was signed with sequence ${signedSequence}, but the chain expects ${expectedSequence}. Rebuild the transaction with the latest account sequence and start a new signing ceremony; retrying these signed bytes cannot succeed.`
|
|
43
|
+
: `Cosmos account sequence is not ready: this transaction was signed with sequence ${signedSequence}, but the chain expects ${expectedSequence}. Wait for the preceding transaction to be accepted, then retry these signed bytes. If the chain advances past sequence ${signedSequence}, rebuild the transaction and start a new signing ceremony.`;
|
|
44
|
+
super(message, options);
|
|
45
|
+
this.name = 'CosmosSequenceMismatchError';
|
|
46
|
+
this.expectedSequence = expectedSequence;
|
|
47
|
+
this.signedSequence = signedSequence;
|
|
48
|
+
this.recovery = recovery;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Finds a Cosmos code-32 account-sequence rejection through ordinary Error
|
|
53
|
+
* causes and the SDK's `VaultError.originalError` wrapper.
|
|
54
|
+
*/
|
|
55
|
+
export const toCosmosSequenceMismatchError = (error) => {
|
|
56
|
+
const pending = [error];
|
|
57
|
+
const seen = new Set();
|
|
58
|
+
while (pending.length > 0) {
|
|
59
|
+
const current = pending.shift();
|
|
60
|
+
if (current == null || seen.has(current))
|
|
61
|
+
continue;
|
|
62
|
+
seen.add(current);
|
|
63
|
+
if (current instanceof CosmosSequenceMismatchError)
|
|
64
|
+
return current;
|
|
65
|
+
const message = current instanceof Error ? current.message : typeof current === 'string' ? current : undefined;
|
|
66
|
+
if (message) {
|
|
67
|
+
const mismatch = parseCosmosSequenceMismatchMessage(message);
|
|
68
|
+
if (mismatch) {
|
|
69
|
+
return new CosmosSequenceMismatchError(mismatch, {
|
|
70
|
+
cause: current instanceof Error ? current : new Error(String(current)),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (typeof current === 'object')
|
|
75
|
+
pending.push(...getNestedErrors(current));
|
|
76
|
+
}
|
|
77
|
+
return undefined;
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=cosmosSequenceMismatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cosmosSequenceMismatch.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/broadcast/cosmosSequenceMismatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CosmosChain } from '@vultisig/core-chain/Chain';
|
|
2
2
|
import { BroadcastTxResolver } from '../resolver.js';
|
|
3
|
+
export { CosmosSequenceMismatchError, toCosmosSequenceMismatchError } from '../cosmosSequenceMismatch.js';
|
|
3
4
|
export declare const getCosmosBroadcastTimeoutTxId: (error: unknown) => string | undefined;
|
|
4
5
|
export declare const broadcastCosmosTx: BroadcastTxResolver<CosmosChain>;
|
|
5
6
|
//# sourceMappingURL=cosmos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/cosmos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/cosmos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAMxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAIjD,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAEtG,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,KAAG,MAAM,GAAG,SAMvE,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,mBAAmB,CAAC,WAAW,CAyC9D,CAAA"}
|
|
@@ -2,8 +2,10 @@ import { assertIsDeliverTxSuccess, TimeoutError } from '@cosmjs/stargate';
|
|
|
2
2
|
import { getCosmosClient } from '@vultisig/core-chain/chains/cosmos/client';
|
|
3
3
|
import { attempt } from '@vultisig/lib-utils/attempt';
|
|
4
4
|
import { isInError } from '@vultisig/lib-utils/error/isInError';
|
|
5
|
+
import { toCosmosSequenceMismatchError } from '../cosmosSequenceMismatch.js';
|
|
5
6
|
import { DeliverTxFailedError } from '../transientRetry.js';
|
|
6
7
|
import { verifyBroadcastByHash } from '../verifyBroadcastByHash.js';
|
|
8
|
+
export { CosmosSequenceMismatchError, toCosmosSequenceMismatchError } from '../cosmosSequenceMismatch.js';
|
|
7
9
|
export const getCosmosBroadcastTimeoutTxId = (error) => {
|
|
8
10
|
if (!(error instanceof TimeoutError))
|
|
9
11
|
return undefined;
|
|
@@ -42,6 +44,10 @@ export const broadcastCosmosTx = async ({ chain, tx }) => {
|
|
|
42
44
|
if (timeoutTxId) {
|
|
43
45
|
return timeoutTxId;
|
|
44
46
|
}
|
|
45
|
-
|
|
47
|
+
// Keep the hash-verification safety net first: another MPC participant may
|
|
48
|
+
// have successfully broadcast these same bytes just before this node returned
|
|
49
|
+
// a sequence rejection. When the hash is genuinely unknown, replace the raw
|
|
50
|
+
// code-32 message with direction-aware recovery guidance.
|
|
51
|
+
await verifyBroadcastByHash({ chain, tx, error: toCosmosSequenceMismatchError(error) ?? error });
|
|
46
52
|
};
|
|
47
53
|
//# sourceMappingURL=cosmos.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/cosmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/cosmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAE/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAEtG,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,KAAc,EAAsB,EAAE;IAClF,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC;QAAE,OAAO,SAAS,CAAA;IAEtD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAEtB,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,SAAS,CAAA;AACjC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAqC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;IACzF,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;IACzB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAEtD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAA;IAEzE,IAAI,IAAI,EAAE,CAAC;QACT,4EAA4E;QAC5E,wEAAwE;QACxE,4EAA4E;QAC5E,6EAA6E;QAC7E,IAAI,CAAC;YACH,wBAAwB,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC;QAAC,OAAO,cAAc,EAAE,CAAC;YACxB,wEAAwE;YACxE,sEAAsE;YACtE,sEAAsE;YACtE,qEAAqE;YACrE,2DAA2D;YAC3D,MAAM,OAAO,GAAG,cAAc,YAAY,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;YACjG,MAAM,IAAI,oBAAoB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;QACpE,CAAC;QACD,OAAM;IACR,CAAC;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,4BAA4B,CAAC,EAAE,CAAC;QACnD,OAAM;IACR,CAAC;IAED,MAAM,WAAW,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAA;IACxD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,0DAA0D;IAC1D,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,CAAA;AAClG,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transientRetry.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/broadcast/transientRetry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transientRetry.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/broadcast/transientRetry.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAED,eAAO,MAAM,yBAAyB,IAAI,CAAA;AAuE1C,eAAO,MAAM,yBAAyB,GAAI,OAAO,OAAO,KAAG,OA2C1D,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAU,CAAC,EAAE,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAkB3F,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HttpResponseError } from '@vultisig/lib-utils/fetch/HttpResponseError';
|
|
2
|
+
import { CosmosSequenceMismatchError } from './cosmosSequenceMismatch.js';
|
|
2
3
|
/**
|
|
3
4
|
* A transaction was included on-chain but its execution genuinely failed
|
|
4
5
|
* (e.g. Cosmos DeliverTx code !== 0 — a wasm revert, out-of-gas, a
|
|
@@ -89,6 +90,11 @@ export const isTransientBroadcastError = (error) => {
|
|
|
89
90
|
const seen = new Set();
|
|
90
91
|
while (current != null && !seen.has(current)) {
|
|
91
92
|
seen.add(current);
|
|
93
|
+
if (current instanceof CosmosSequenceMismatchError) {
|
|
94
|
+
// A future sequence can become valid when its missing predecessor lands.
|
|
95
|
+
// A stale sequence is already consumed and must be rebuilt/re-signed.
|
|
96
|
+
return current.recovery === 'wait';
|
|
97
|
+
}
|
|
92
98
|
if (current instanceof DeliverTxFailedError) {
|
|
93
99
|
return false;
|
|
94
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transientRetry.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/broadcast/transientRetry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transientRetry.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/broadcast/transientRetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,12 +18,15 @@ export declare const isValidTokenId: ({ chain, id, walletCore }: Input) => boole
|
|
|
18
18
|
/**
|
|
19
19
|
* Canonical form of a custom token id, for storage and equality.
|
|
20
20
|
*
|
|
21
|
-
*
|
|
21
|
+
* EVM contract addresses are case-insensitive, so checksum casing is display
|
|
22
|
+
* metadata rather than identity and the canonical form is lowercase.
|
|
23
|
+
*
|
|
24
|
+
* XRPL also needs normalising: a token may be entered by its human ticker
|
|
22
25
|
* (`SOLO.rsoLo…`, as shown on explorers) or by its on-ledger currency code, and
|
|
23
26
|
* both must resolve to the same id so a manually added token dedupes against the
|
|
24
27
|
* same token discovered from the ledger — which always uses the on-ledger code.
|
|
25
|
-
* `rippleTokenId` re-encodes the currency to that canonical form.
|
|
26
|
-
*
|
|
28
|
+
* `rippleTokenId` re-encodes the currency to that canonical form. Other chains
|
|
29
|
+
* remain byte-for-byte case-sensitive.
|
|
27
30
|
*/
|
|
28
31
|
export declare const normalizeTokenId: ({ chain, id }: Pick<Input, "chain" | "id">) => string;
|
|
29
32
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isValidTokenId.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/utils/isValidTokenId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"isValidTokenId.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/utils/isValidTokenId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAYlD,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,KAAK,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GAAI,2BAA2B,KAAK,YA0B9D,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,GAAI,eAAe,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC,KAAG,MAe7E,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { isValidStructTag } from '@mysten/sui/utils';
|
|
2
2
|
import { Chain } from '@vultisig/core-chain/Chain';
|
|
3
|
+
import { getChainKind } from '@vultisig/core-chain/ChainKind';
|
|
3
4
|
import { isValidXrplCurrencyCode, parseRippleTokenId, rippleTokenId, toXrplCurrencyCode, } from '@vultisig/core-chain/chains/ripple/issuedCurrency';
|
|
4
5
|
import { attempt } from '@vultisig/lib-utils/attempt';
|
|
5
6
|
import { isValidAddress } from './isValidAddress.js';
|
|
@@ -38,14 +39,20 @@ export const isValidTokenId = ({ chain, id, walletCore }) => {
|
|
|
38
39
|
/**
|
|
39
40
|
* Canonical form of a custom token id, for storage and equality.
|
|
40
41
|
*
|
|
41
|
-
*
|
|
42
|
+
* EVM contract addresses are case-insensitive, so checksum casing is display
|
|
43
|
+
* metadata rather than identity and the canonical form is lowercase.
|
|
44
|
+
*
|
|
45
|
+
* XRPL also needs normalising: a token may be entered by its human ticker
|
|
42
46
|
* (`SOLO.rsoLo…`, as shown on explorers) or by its on-ledger currency code, and
|
|
43
47
|
* both must resolve to the same id so a manually added token dedupes against the
|
|
44
48
|
* same token discovered from the ledger — which always uses the on-ledger code.
|
|
45
|
-
* `rippleTokenId` re-encodes the currency to that canonical form.
|
|
46
|
-
*
|
|
49
|
+
* `rippleTokenId` re-encodes the currency to that canonical form. Other chains
|
|
50
|
+
* remain byte-for-byte case-sensitive.
|
|
47
51
|
*/
|
|
48
52
|
export const normalizeTokenId = ({ chain, id }) => {
|
|
53
|
+
if (getChainKind(chain) === 'evm') {
|
|
54
|
+
return id.toLowerCase();
|
|
55
|
+
}
|
|
49
56
|
if (chain !== Chain.Ripple) {
|
|
50
57
|
return id;
|
|
51
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isValidTokenId.js","sourceRoot":"","sources":["../../../../../packages/core/chain/utils/isValidTokenId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,GACnB,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAQjD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAS,EAAE,EAAE;IACjE,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;QACxB,OAAO,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;IACpC,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAC3D,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;QAExC,4EAA4E;QAC5E,qEAAqE;QACrE,0EAA0E;QAC1E,uEAAuE;QACvE,qCAAqC;QACrC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAA;QAChE,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;IAC7G,CAAC;IAED,OAAO,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;AAC3D,CAAC,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"isValidTokenId.js","sourceRoot":"","sources":["../../../../../packages/core/chain/utils/isValidTokenId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,GACnB,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAQjD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAS,EAAE,EAAE;IACjE,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;QACxB,OAAO,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;IACpC,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAC3D,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;QAExC,4EAA4E;QAC5E,qEAAqE;QACrE,0EAA0E;QAC1E,uEAAuE;QACvE,qCAAqC;QACrC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAA;QAChE,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;IAC7G,CAAC;IAED,OAAO,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;AAC3D,CAAC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAA+B,EAAU,EAAE;IACrF,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAA;IACzB,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7E,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAA;AACvB,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vultisig/core-chain",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.37.0",
|
|
4
4
|
"description": "Blockchain chain logic shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -1708,6 +1708,11 @@
|
|
|
1708
1708
|
"import": "./dist/swap/general/lifi/api/lifiSlippage.js",
|
|
1709
1709
|
"default": "./dist/swap/general/lifi/api/lifiSlippage.js"
|
|
1710
1710
|
},
|
|
1711
|
+
"./swap/general/lifi/api/lifiSwapFeeChain": {
|
|
1712
|
+
"types": "./dist/swap/general/lifi/api/lifiSwapFeeChain.d.ts",
|
|
1713
|
+
"import": "./dist/swap/general/lifi/api/lifiSwapFeeChain.js",
|
|
1714
|
+
"default": "./dist/swap/general/lifi/api/lifiSwapFeeChain.js"
|
|
1715
|
+
},
|
|
1711
1716
|
"./swap/general/lifi/config": {
|
|
1712
1717
|
"types": "./dist/swap/general/lifi/config.d.ts",
|
|
1713
1718
|
"import": "./dist/swap/general/lifi/config.js",
|
|
@@ -1908,6 +1913,11 @@
|
|
|
1908
1913
|
"import": "./dist/swap/quote/getSwapQuoteProviderName.js",
|
|
1909
1914
|
"default": "./dist/swap/quote/getSwapQuoteProviderName.js"
|
|
1910
1915
|
},
|
|
1916
|
+
"./swap/quote/getSwapQuoteSafetyFingerprint": {
|
|
1917
|
+
"types": "./dist/swap/quote/getSwapQuoteSafetyFingerprint.d.ts",
|
|
1918
|
+
"import": "./dist/swap/quote/getSwapQuoteSafetyFingerprint.js",
|
|
1919
|
+
"default": "./dist/swap/quote/getSwapQuoteSafetyFingerprint.js"
|
|
1920
|
+
},
|
|
1911
1921
|
"./swap/quote/SwapQuote": {
|
|
1912
1922
|
"types": "./dist/swap/quote/SwapQuote.d.ts",
|
|
1913
1923
|
"import": "./dist/swap/quote/SwapQuote.js",
|
|
@@ -1953,6 +1963,11 @@
|
|
|
1953
1963
|
"import": "./dist/tx/broadcast/index.js",
|
|
1954
1964
|
"default": "./dist/tx/broadcast/index.js"
|
|
1955
1965
|
},
|
|
1966
|
+
"./tx/broadcast/cosmosSequenceMismatch": {
|
|
1967
|
+
"types": "./dist/tx/broadcast/cosmosSequenceMismatch.d.ts",
|
|
1968
|
+
"import": "./dist/tx/broadcast/cosmosSequenceMismatch.js",
|
|
1969
|
+
"default": "./dist/tx/broadcast/cosmosSequenceMismatch.js"
|
|
1970
|
+
},
|
|
1956
1971
|
"./tx/broadcast/resolver": {
|
|
1957
1972
|
"types": "./dist/tx/broadcast/resolver.d.ts",
|
|
1958
1973
|
"import": "./dist/tx/broadcast/resolver.js",
|
|
@@ -2266,7 +2281,7 @@
|
|
|
2266
2281
|
"@ton/crypto": "^3.3.0",
|
|
2267
2282
|
"@trustwallet/wallet-core": "^4.7.0",
|
|
2268
2283
|
"@vultisig/core-config": "0.9.1",
|
|
2269
|
-
"@vultisig/lib-utils": "0.10.
|
|
2284
|
+
"@vultisig/lib-utils": "0.10.5",
|
|
2270
2285
|
"bip32": "^5.0.1",
|
|
2271
2286
|
"bitcoinjs-lib": "^7.0.1",
|
|
2272
2287
|
"bs58": "^6.0.0",
|