@vultisig/core-chain 2.28.0 → 2.29.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 +111 -0
- package/dist/chains/cosmos/cosmosGasLimitRecord.js +3 -3
- package/dist/chains/cosmos/cosmosGasLimitRecord.js.map +1 -1
- package/dist/chains/cosmos/gas.d.ts +28 -1
- package/dist/chains/cosmos/gas.d.ts.map +1 -1
- package/dist/chains/cosmos/gas.js +37 -5
- package/dist/chains/cosmos/gas.js.map +1 -1
- package/dist/chains/cosmos/resolveCosmosGasLimit.d.ts +82 -0
- package/dist/chains/cosmos/resolveCosmosGasLimit.d.ts.map +1 -0
- package/dist/chains/cosmos/resolveCosmosGasLimit.js +71 -0
- package/dist/chains/cosmos/resolveCosmosGasLimit.js.map +1 -0
- package/dist/chains/cosmos/terraClassicTax.d.ts +68 -0
- package/dist/chains/cosmos/terraClassicTax.d.ts.map +1 -1
- package/dist/chains/cosmos/terraClassicTax.js +85 -0
- package/dist/chains/cosmos/terraClassicTax.js.map +1 -1
- package/dist/chains/sui/client.d.ts +11 -2
- package/dist/chains/sui/client.d.ts.map +1 -1
- package/dist/chains/sui/client.js +5 -4
- package/dist/chains/sui/client.js.map +1 -1
- package/dist/chains/sui/config.d.ts +28 -0
- package/dist/chains/sui/config.d.ts.map +1 -1
- package/dist/chains/sui/config.js +27 -0
- package/dist/chains/sui/config.js.map +1 -1
- package/dist/chains/sui/listAllCoins.d.ts +44 -0
- package/dist/chains/sui/listAllCoins.d.ts.map +1 -0
- package/dist/chains/sui/listAllCoins.js +43 -0
- package/dist/chains/sui/listAllCoins.js.map +1 -0
- package/dist/chains/sui/transactionResult.d.ts +59 -0
- package/dist/chains/sui/transactionResult.d.ts.map +1 -0
- package/dist/chains/sui/transactionResult.js +43 -0
- package/dist/chains/sui/transactionResult.js.map +1 -0
- package/dist/coin/balance/resolvers/sui.d.ts.map +1 -1
- package/dist/coin/balance/resolvers/sui.js +6 -3
- package/dist/coin/balance/resolvers/sui.js.map +1 -1
- package/dist/coin/token/metadata/resolvers/sui.d.ts +1 -1
- package/dist/coin/token/metadata/resolvers/sui.d.ts.map +1 -1
- package/dist/coin/token/metadata/resolvers/sui.js +6 -3
- package/dist/coin/token/metadata/resolvers/sui.js.map +1 -1
- package/dist/swap/general/jupiter/api/getJupiterSwapQuote.d.ts.map +1 -1
- package/dist/swap/general/jupiter/api/getJupiterSwapQuote.js +2 -1
- package/dist/swap/general/jupiter/api/getJupiterSwapQuote.js.map +1 -1
- package/dist/swap/native/limitSwapMemo.d.ts +35 -5
- package/dist/swap/native/limitSwapMemo.d.ts.map +1 -1
- package/dist/swap/native/limitSwapMemo.js +32 -7
- package/dist/swap/native/limitSwapMemo.js.map +1 -1
- package/dist/tx/broadcast/resolvers/sui.d.ts +2 -8
- package/dist/tx/broadcast/resolvers/sui.d.ts.map +1 -1
- package/dist/tx/broadcast/resolvers/sui.js +18 -17
- package/dist/tx/broadcast/resolvers/sui.js.map +1 -1
- package/dist/tx/broadcast/transientRetry.d.ts.map +1 -1
- package/dist/tx/broadcast/transientRetry.js +30 -2
- package/dist/tx/broadcast/transientRetry.js.map +1 -1
- package/dist/tx/hash/resolvers/sui.d.ts.map +1 -1
- package/dist/tx/hash/resolvers/sui.js +13 -3
- package/dist/tx/hash/resolvers/sui.js.map +1 -1
- package/dist/tx/status/resolvers/sui.d.ts.map +1 -1
- package/dist/tx/status/resolvers/sui.js +15 -6
- package/dist/tx/status/resolvers/sui.js.map +1 -1
- package/package.json +17 -7
- package/dist/chains/cosmos/resolveCosmosGasFee.d.ts +0 -49
- package/dist/chains/cosmos/resolveCosmosGasFee.d.ts.map +0 -1
- package/dist/chains/cosmos/resolveCosmosGasFee.js +0 -35
- package/dist/chains/cosmos/resolveCosmosGasFee.js.map +0 -1
|
@@ -21,18 +21,48 @@ export declare const validateLimitSwapInputs: (inputs: LimitSwapMemoInput) => vo
|
|
|
21
21
|
* a resting limit order rather than a market swap (`=>`).
|
|
22
22
|
*/
|
|
23
23
|
export declare const limitSwapMemoPrefix = "=<:";
|
|
24
|
+
/** The order terms a `=<` memo encodes, as decoded from the memo itself. */
|
|
25
|
+
export type ParsedLimitSwapMemo = {
|
|
26
|
+
/** THORChain asset notation for the buy side, e.g. `ETH.USDC-06EB48`. */
|
|
27
|
+
targetAsset: string;
|
|
28
|
+
/** Where a filled order pays out. */
|
|
29
|
+
destinationAddress: string;
|
|
30
|
+
/** Guaranteed-minimum received (LIM), in THORChain's 1e8 fixed point. */
|
|
31
|
+
limit: bigint;
|
|
32
|
+
/** How long the order rests, in THORChain blocks. */
|
|
33
|
+
intervalBlocks: number;
|
|
34
|
+
/** Streaming quantity; `0` for the orders this SDK builds. */
|
|
35
|
+
quantity: number;
|
|
36
|
+
affiliate?: string;
|
|
37
|
+
affiliateBps?: number;
|
|
38
|
+
};
|
|
24
39
|
/**
|
|
25
|
-
*
|
|
40
|
+
* Decode a THORChain limit-swap memo into the order terms it encodes.
|
|
26
41
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
42
|
+
* Fail closed on anything that is not a well-formed limit memo. This guards the
|
|
43
|
+
* signing path: the limit deposit builder accepts a pre-built memo string, so a
|
|
44
|
+
* market (`=>`) memo, an unrelated action, or a truncated/corrupted limit memo
|
|
45
|
+
* would otherwise sign a value-bearing deposit that executes with completely
|
|
46
|
+
* different semantics — or with no price protection at all.
|
|
31
47
|
*
|
|
32
48
|
* Validates the shape `=<:TARGET:DEST:LIM/INTERVAL/QUANTITY[:AFFILIATE:BPS]`
|
|
33
49
|
* rather than only the prefix, because it is the trade-target segment that
|
|
34
50
|
* carries the order's price floor: a memo whose LIM is missing or non-numeric is
|
|
35
51
|
* exactly the case that must never reach a signer.
|
|
52
|
+
*
|
|
53
|
+
* Returning the terms rather than only validating them is what lets a *joining*
|
|
54
|
+
* device review a limit order. The memo is the order — it rides on the keysign
|
|
55
|
+
* payload for every source branch, and it is the exact string THORChain
|
|
56
|
+
* executes — so terms derived from it cannot disagree with what gets signed, the
|
|
57
|
+
* way a separately-supplied display field can.
|
|
58
|
+
*/
|
|
59
|
+
export declare const parseLimitSwapMemo: (memo: string) => ParsedLimitSwapMemo;
|
|
60
|
+
/**
|
|
61
|
+
* Fail closed on anything that is not a well-formed THORChain limit-swap memo.
|
|
62
|
+
*
|
|
63
|
+
* Thin wrapper over {@link parseLimitSwapMemo} so the grammar has exactly one
|
|
64
|
+
* implementation — a validator that could drift from the parser is how a memo
|
|
65
|
+
* ends up reviewed as one order and executed as another.
|
|
36
66
|
*/
|
|
37
67
|
export declare const assertLimitSwapMemo: (memo: string) => void;
|
|
38
68
|
export declare const buildLimitSwapMemo: (inputs: LimitSwapMemoInput) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limitSwapMemo.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapMemo.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,oBAAoB,uBAAwB,CAAA;AACzD,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA;AAExE,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE5D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,qBAAqB,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,qBAAqB,CAAA;IACnC,YAAY,EAAE,oBAAoB,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,OAAO,CAAA;AAEvD,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAG3E,CAAA;AA8FD,eAAO,MAAM,2BAA2B,GAAI,aAAa,MAAM,KAAG,wBAGjE,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,aAAa,oBAAoB,KAAG,MAM9E,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,kCAGrC,IAAI,CAAC,kBAAkB,EAAE,eAAe,GAAG,cAAc,CAAC,KAAG,MAoB/D,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,EAAE,iBAAiB,wBAAwB,KAAG,IAU9F,CAAA;AAgED,eAAO,MAAM,uBAAuB,GAAI,QAAQ,kBAAkB,KAAG,IASpE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAA;AAQxC
|
|
1
|
+
{"version":3,"file":"limitSwapMemo.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapMemo.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,oBAAoB,uBAAwB,CAAA;AACzD,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA;AAExE,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE5D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,qBAAqB,CAAA;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,qBAAqB,CAAA;IACnC,YAAY,EAAE,oBAAoB,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,OAAO,CAAA;AAEvD,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAG3E,CAAA;AA8FD,eAAO,MAAM,2BAA2B,GAAI,aAAa,MAAM,KAAG,wBAGjE,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,aAAa,oBAAoB,KAAG,MAM9E,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,kCAGrC,IAAI,CAAC,kBAAkB,EAAE,eAAe,GAAG,cAAc,CAAC,KAAG,MAoB/D,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,EAAE,iBAAiB,wBAAwB,KAAG,IAU9F,CAAA;AAgED,eAAO,MAAM,uBAAuB,GAAI,QAAQ,kBAAkB,KAAG,IASpE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAA;AAQxC,4EAA4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG;IAChC,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAA;IACnB,qCAAqC;IACrC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAA;IACb,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAA;IACtB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,mBAsDjD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,IAElD,CAAA;AAUD,eAAO,MAAM,kBAAkB,GAAI,QAAQ,kBAAkB,KAAG,MAmB/D,CAAA"}
|
|
@@ -201,19 +201,26 @@ const limitSwapMemoTradeTargetPattern = /^\d+\/\d+\/\d+$/;
|
|
|
201
201
|
/** Basis points are a bare integer; the affiliate name is a printable, separator-free token. */
|
|
202
202
|
const limitSwapMemoAffiliateBpsPattern = /^\d+$/;
|
|
203
203
|
/**
|
|
204
|
-
*
|
|
204
|
+
* Decode a THORChain limit-swap memo into the order terms it encodes.
|
|
205
205
|
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
206
|
+
* Fail closed on anything that is not a well-formed limit memo. This guards the
|
|
207
|
+
* signing path: the limit deposit builder accepts a pre-built memo string, so a
|
|
208
|
+
* market (`=>`) memo, an unrelated action, or a truncated/corrupted limit memo
|
|
209
|
+
* would otherwise sign a value-bearing deposit that executes with completely
|
|
210
|
+
* different semantics — or with no price protection at all.
|
|
210
211
|
*
|
|
211
212
|
* Validates the shape `=<:TARGET:DEST:LIM/INTERVAL/QUANTITY[:AFFILIATE:BPS]`
|
|
212
213
|
* rather than only the prefix, because it is the trade-target segment that
|
|
213
214
|
* carries the order's price floor: a memo whose LIM is missing or non-numeric is
|
|
214
215
|
* exactly the case that must never reach a signer.
|
|
216
|
+
*
|
|
217
|
+
* Returning the terms rather than only validating them is what lets a *joining*
|
|
218
|
+
* device review a limit order. The memo is the order — it rides on the keysign
|
|
219
|
+
* payload for every source branch, and it is the exact string THORChain
|
|
220
|
+
* executes — so terms derived from it cannot disagree with what gets signed, the
|
|
221
|
+
* way a separately-supplied display field can.
|
|
215
222
|
*/
|
|
216
|
-
export const
|
|
223
|
+
export const parseLimitSwapMemo = (memo) => {
|
|
217
224
|
if (!memo.startsWith(limitSwapMemoPrefix)) {
|
|
218
225
|
throw new Error(`memo is not a THORChain limit-swap memo (expected a "${limitSwapMemoPrefix}" prefix): ${JSON.stringify(memo)}`);
|
|
219
226
|
}
|
|
@@ -231,7 +238,7 @@ export const assertLimitSwapMemo = (memo) => {
|
|
|
231
238
|
if (!limitSwapMemoTradeTargetPattern.test(tradeTarget)) {
|
|
232
239
|
throw new Error(`limit-swap memo trade target must be "<limit>/<interval>/<quantity>", got ${JSON.stringify(tradeTarget)}`);
|
|
233
240
|
}
|
|
234
|
-
const [limit] = tradeTarget.split('/');
|
|
241
|
+
const [limit, interval, quantity] = tradeTarget.split('/');
|
|
235
242
|
if (BigInt(limit) === 0n) {
|
|
236
243
|
// THORChain reads a zero trade target as an unprotected market order.
|
|
237
244
|
throw new Error(`limit-swap memo has a zero minimum-received (LIM), which THORChain treats as a market order`);
|
|
@@ -244,6 +251,24 @@ export const assertLimitSwapMemo = (memo) => {
|
|
|
244
251
|
throw new Error(`limit-swap memo affiliate bps must be an integer, got ${JSON.stringify(affiliateBps)}`);
|
|
245
252
|
}
|
|
246
253
|
}
|
|
254
|
+
return {
|
|
255
|
+
targetAsset,
|
|
256
|
+
destinationAddress: destAddress,
|
|
257
|
+
limit: BigInt(limit),
|
|
258
|
+
intervalBlocks: Number(interval),
|
|
259
|
+
quantity: Number(quantity),
|
|
260
|
+
...(segments.length === 5 ? { affiliate, affiliateBps: Number(affiliateBps) } : {}),
|
|
261
|
+
};
|
|
262
|
+
};
|
|
263
|
+
/**
|
|
264
|
+
* Fail closed on anything that is not a well-formed THORChain limit-swap memo.
|
|
265
|
+
*
|
|
266
|
+
* Thin wrapper over {@link parseLimitSwapMemo} so the grammar has exactly one
|
|
267
|
+
* implementation — a validator that could drift from the parser is how a memo
|
|
268
|
+
* ends up reviewed as one order and executed as another.
|
|
269
|
+
*/
|
|
270
|
+
export const assertLimitSwapMemo = (memo) => {
|
|
271
|
+
parseLimitSwapMemo(memo);
|
|
247
272
|
};
|
|
248
273
|
const buildMemo = (inputs, includeAffiliate) => {
|
|
249
274
|
const limit = getLimitSwapLimitAmount(inputs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limitSwapMemo.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapMemo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"limitSwapMemo.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/native/limitSwapMemo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import { OtherChain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { SuiTransactionResultLike } from '@vultisig/core-chain/chains/sui/transactionResult';
|
|
2
3
|
import { BroadcastTxResolver } from '../resolver.js';
|
|
3
|
-
|
|
4
|
-
status?: {
|
|
5
|
-
status?: string;
|
|
6
|
-
error?: string | null;
|
|
7
|
-
};
|
|
8
|
-
};
|
|
9
|
-
export declare const assertSuiTxSucceeded: (effects: SuiExecutionEffects | null | undefined) => void;
|
|
4
|
+
export declare const assertSuiTxSucceeded: (result: SuiTransactionResultLike | null | undefined) => void;
|
|
10
5
|
export declare const broadcastSuiTx: BroadcastTxResolver<OtherChain.Sui>;
|
|
11
|
-
export {};
|
|
12
6
|
//# sourceMappingURL=sui.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/sui.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/sui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,EAGL,wBAAwB,EACzB,MAAM,mDAAmD,CAAA;AAG1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAIjD,eAAO,MAAM,oBAAoB,GAAI,QAAQ,wBAAwB,GAAG,IAAI,GAAG,SAAS,KAAG,IAI1F,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAkC9D,CAAA"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
+
import { fromBase64 } from '@mysten/sui/utils';
|
|
1
2
|
import { getSuiClient } from '@vultisig/core-chain/chains/sui/client';
|
|
3
|
+
import { describeSuiExecutionFailure, isSuiExecutionSuccess, } from '@vultisig/core-chain/chains/sui/transactionResult';
|
|
2
4
|
import { attempt } from '@vultisig/lib-utils/attempt';
|
|
3
5
|
import { DeliverTxFailedError } from '../transientRetry.js';
|
|
4
6
|
import { verifyBroadcastByHash } from '../verifyBroadcastByHash.js';
|
|
5
|
-
export const assertSuiTxSucceeded = (
|
|
6
|
-
|
|
7
|
-
if (executionStatus === 'success')
|
|
7
|
+
export const assertSuiTxSucceeded = (result) => {
|
|
8
|
+
if (isSuiExecutionSuccess(result))
|
|
8
9
|
return;
|
|
9
|
-
throw new DeliverTxFailedError(`Sui transaction failed on-chain: ${
|
|
10
|
+
throw new DeliverTxFailedError(`Sui transaction failed on-chain: ${describeSuiExecutionFailure(result)}`);
|
|
10
11
|
};
|
|
11
12
|
export const broadcastSuiTx = async ({ chain, tx }) => {
|
|
12
|
-
const { data: response, error } = await attempt(getSuiClient().
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// sdk#1398: without requesting effects,
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
|
|
13
|
+
const { data: response, error } = await attempt(getSuiClient().executeTransaction({
|
|
14
|
+
transaction: fromBase64(tx.unsignedTx),
|
|
15
|
+
signatures: [tx.signature],
|
|
16
|
+
// sdk#1398: without requesting effects, execution resolves with a digest even when the tx
|
|
17
|
+
// executed but ABORTED (MoveAbort / InsufficientGas) — an RPC-level success that is NOT
|
|
18
|
+
// execution success. Ask for effects so we can tell the two apart.
|
|
19
|
+
include: { effects: true },
|
|
19
20
|
}));
|
|
20
21
|
if (error) {
|
|
21
22
|
await verifyBroadcastByHash({ chain, tx, error });
|
|
@@ -24,17 +25,17 @@ export const broadcastSuiTx = async ({ chain, tx }) => {
|
|
|
24
25
|
if (!response) {
|
|
25
26
|
return;
|
|
26
27
|
}
|
|
27
|
-
// Mirror the status resolver (status/resolvers/sui.ts): ONLY an explicit '
|
|
28
|
-
// is execution success. A
|
|
29
|
-
// must NOT be returned as a digest-carrying
|
|
30
|
-
// outside the RPC-error path above so it
|
|
31
|
-
// on-chain and failed, not un-broadcast.
|
|
28
|
+
// Mirror the status resolver (status/resolvers/sui.ts): ONLY an explicit `$kind: 'Transaction'`
|
|
29
|
+
// with `status.success === true` is execution success. A `FailedTransaction` (MoveAbort /
|
|
30
|
+
// InsufficientGas) — or a missing/unknown status — must NOT be returned as a digest-carrying
|
|
31
|
+
// successful broadcast (that's the sdk#1398 bug). Thrown outside the RPC-error path above so it
|
|
32
|
+
// isn't fed back into verifyBroadcastByHash — the tx is on-chain and failed, not un-broadcast.
|
|
32
33
|
//
|
|
33
34
|
// Throw DeliverTxFailedError (not a bare Error) so isTransientBroadcastError short-circuits on the
|
|
34
35
|
// `instanceof` BEFORE its message-regex runs: a Sui abort error string routinely contains
|
|
35
36
|
// "aborted"/"timed out", which the transient patterns match — a bare Error would be misclassified
|
|
36
37
|
// as transient and the aborted tx re-sent by withTransientBroadcastRetry.
|
|
37
|
-
assertSuiTxSucceeded(response
|
|
38
|
+
assertSuiTxSucceeded(response);
|
|
38
39
|
return response;
|
|
39
40
|
};
|
|
40
41
|
//# sourceMappingURL=sui.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sui.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/sui.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sui.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GAEtB,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAGrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAmD,EAAQ,EAAE;IAChG,IAAI,qBAAqB,CAAC,MAAM,CAAC;QAAE,OAAM;IAEzC,MAAM,IAAI,oBAAoB,CAAC,oCAAoC,2BAA2B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAC3G,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAwC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;IACzF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAC7C,YAAY,EAAE,CAAC,kBAAkB,CAAC;QAChC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC;QACtC,UAAU,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAC1B,0FAA0F;QAC1F,wFAAwF;QACxF,mEAAmE;QACnE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KAC3B,CAAC,CACH,CAAA;IAED,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QACjD,OAAM;IACR,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAM;IACR,CAAC;IAED,gGAAgG;IAChG,0FAA0F;IAC1F,6FAA6F;IAC7F,gGAAgG;IAChG,+FAA+F;IAC/F,EAAE;IACF,mGAAmG;IACnG,0FAA0F;IAC1F,kGAAkG;IAClG,0EAA0E;IAC1E,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAE9B,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transientRetry.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/broadcast/transientRetry.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAED,eAAO,MAAM,yBAAyB,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"transientRetry.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/broadcast/transientRetry.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;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,OAqC1D,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAU,CAAC,EAAE,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAkB3F,CAAA"}
|
|
@@ -34,6 +34,33 @@ const transientErrorCodes = new Set([
|
|
|
34
34
|
'ETIMEDOUT',
|
|
35
35
|
'EAI_AGAIN',
|
|
36
36
|
]);
|
|
37
|
+
// gRPC statuses (Sui, since it retired JSON-RPC). `@protobuf-ts` surfaces the
|
|
38
|
+
// grpc-status trailer as `RpcError.code`, holding the status NAME — so these land
|
|
39
|
+
// in the same `code` slot as the errno strings above.
|
|
40
|
+
//
|
|
41
|
+
// Deliberately only the three the gRPC project itself calls safe to retry. Under
|
|
42
|
+
// JSON-RPC a busy or restarting node surfaced as an HTTP 5xx and was retried by the
|
|
43
|
+
// status branch below; without this set that coverage silently disappears, because a
|
|
44
|
+
// grpc-web response is HTTP 200 with the real status in the trailer.
|
|
45
|
+
//
|
|
46
|
+
// Excluded on purpose: INVALID_ARGUMENT / NOT_FOUND / FAILED_PRECONDITION are verdicts
|
|
47
|
+
// about the request itself, and ABORTED / INTERNAL are ambiguous enough that retrying
|
|
48
|
+
// could re-send bytes the chain already rejected.
|
|
49
|
+
const transientGrpcStatuses = new Set(['UNAVAILABLE', 'DEADLINE_EXCEEDED', 'RESOURCE_EXHAUSTED']);
|
|
50
|
+
// grpc-web percent-encodes the grpc-message trailer, so a server-produced message
|
|
51
|
+
// arrives as `connection%20reset` and none of the space-bearing patterns below can
|
|
52
|
+
// match it. Decode before testing (falling back to the raw text on a malformed escape)
|
|
53
|
+
// so gRPC errors are classified on the same footing as every other transport's.
|
|
54
|
+
const decodeTransportMessage = (message) => {
|
|
55
|
+
if (!message.includes('%'))
|
|
56
|
+
return message;
|
|
57
|
+
try {
|
|
58
|
+
return decodeURIComponent(message);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return message;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
37
64
|
const transientMessagePatterns = [
|
|
38
65
|
/\bfetch failed\b/i,
|
|
39
66
|
/\bfailed to fetch\b/i,
|
|
@@ -70,7 +97,7 @@ export const isTransientBroadcastError = (error) => {
|
|
|
70
97
|
}
|
|
71
98
|
if (typeof current === 'object') {
|
|
72
99
|
const code = current.code;
|
|
73
|
-
if (typeof code === 'string' && transientErrorCodes.has(code)) {
|
|
100
|
+
if (typeof code === 'string' && (transientErrorCodes.has(code) || transientGrpcStatuses.has(code))) {
|
|
74
101
|
return true;
|
|
75
102
|
}
|
|
76
103
|
const status = current.status;
|
|
@@ -78,7 +105,8 @@ export const isTransientBroadcastError = (error) => {
|
|
|
78
105
|
return true;
|
|
79
106
|
}
|
|
80
107
|
}
|
|
81
|
-
const
|
|
108
|
+
const rawMessage = current instanceof Error ? current.message : typeof current === 'string' ? current : undefined;
|
|
109
|
+
const message = rawMessage === undefined ? undefined : decodeTransportMessage(rawMessage);
|
|
82
110
|
if (message && transientMessagePatterns.some(pattern => pattern.test(message))) {
|
|
83
111
|
return true;
|
|
84
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transientRetry.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/broadcast/transientRetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAE/E;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAA;AAC1C,MAAM,yBAAyB,GAAG,GAAG,CAAA;AAErC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,WAAW;IACX,cAAc;IACd,YAAY;IACZ,cAAc;IACd,cAAc;IACd,UAAU;IACV,WAAW;IACX,aAAa;IACb,WAAW;IACX,WAAW;IACX,WAAW;CACZ,CAAC,CAAA;AAEF,MAAM,wBAAwB,GAAG;IAC/B,mBAAmB;IACnB,sBAAsB;IACtB,oBAAoB;IACpB,6BAA6B;IAC7B,wBAAwB;IACxB,gBAAgB;IAChB,mBAAmB;IACnB,qBAAqB;IACrB,0CAA0C;IAC1C,yBAAyB;IACzB,wBAAwB;IACxB,kBAAkB;IAClB,0BAA0B;IAC1B,sBAAsB;CACvB,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;AAE5F,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAW,EAAE;IAC3C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QAC3D,OAAQ,KAA6B,CAAC,KAAK,CAAA;IAC7C,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAc,EAAW,EAAE;IACnE,IAAI,OAAO,GAAY,KAAK,CAAA;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAA;IAE/B,OAAO,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAEjB,IAAI,OAAO,YAAY,oBAAoB,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,OAAO,YAAY,iBAAiB,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,CAAA;QACnF,CAAC;QAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,GAAI,OAA8B,CAAC,IAAI,CAAA;YACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"transientRetry.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/tx/broadcast/transientRetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/hash/resolvers/sui.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/hash/resolvers/sui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAKvD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,CAkBvD,CAAA"}
|
|
@@ -1,9 +1,19 @@
|
|
|
1
|
+
import { fromBase64 } from '@mysten/sui/utils';
|
|
1
2
|
import { getSuiClient } from '@vultisig/core-chain/chains/sui/client';
|
|
3
|
+
import { getSuiResultTransaction } from '@vultisig/core-chain/chains/sui/transactionResult';
|
|
4
|
+
import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
|
|
2
5
|
export const getSuiTxHash = async ({ unsignedTx }) => {
|
|
3
6
|
const client = getSuiClient();
|
|
4
|
-
|
|
5
|
-
|
|
7
|
+
// `simulateTransaction` replaces the retired `dryRunTransactionBlock`. It
|
|
8
|
+
// takes raw BCS bytes rather than a base64 string, and the digest lives on
|
|
9
|
+
// the EFFECTS — the top-level `digest` is not populated for a simulation.
|
|
10
|
+
// A simulation whose execution fails still returns effects carrying the
|
|
11
|
+
// digest, which is exactly what broadcast hash-verification needs, so read
|
|
12
|
+
// it off whichever arm of the result union came back.
|
|
13
|
+
const result = await client.simulateTransaction({
|
|
14
|
+
transaction: fromBase64(unsignedTx),
|
|
15
|
+
include: { effects: true },
|
|
6
16
|
});
|
|
7
|
-
return transactionDigest;
|
|
17
|
+
return shouldBePresent(getSuiResultTransaction(result)?.effects?.transactionDigest, 'Sui simulated transaction digest');
|
|
8
18
|
};
|
|
9
19
|
//# sourceMappingURL=sui.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sui.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/hash/resolvers/sui.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sui.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/hash/resolvers/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAA;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAI5E,MAAM,CAAC,MAAM,YAAY,GAAmC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IACnF,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAE7B,0EAA0E;IAC1E,2EAA2E;IAC3E,0EAA0E;IAC1E,wEAAwE;IACxE,2EAA2E;IAC3E,sDAAsD;IACtD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC;QAC9C,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC;QACnC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KAC3B,CAAC,CAAA;IAEF,OAAO,eAAe,CACpB,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAC3D,kCAAkC,CACnC,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAM9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,eAAO,MAAM,cAAc,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAoD3D,CAAA"}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
2
|
import { getSuiClient } from '@vultisig/core-chain/chains/sui/client';
|
|
3
|
+
import { getSuiResultTransaction, isSuiExecutionSuccess } from '@vultisig/core-chain/chains/sui/transactionResult';
|
|
3
4
|
import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
|
|
4
5
|
import { attempt } from '@vultisig/lib-utils/attempt';
|
|
5
6
|
export const getSuiTxStatus = async ({ hash }) => {
|
|
6
7
|
const client = getSuiClient();
|
|
7
|
-
|
|
8
|
+
// `getTransaction` replaces the retired `getTransactionBlock`. An unknown
|
|
9
|
+
// digest REJECTS ("missing digest") rather than resolving to null, which the
|
|
10
|
+
// attempt() wrapper already funnels into the not-known branch below.
|
|
11
|
+
const { data, error } = await attempt(client.getTransaction({
|
|
8
12
|
digest: hash,
|
|
9
|
-
|
|
13
|
+
include: { effects: true },
|
|
10
14
|
}));
|
|
11
15
|
if (error || !data) {
|
|
12
16
|
return { status: 'pending', isKnown: false };
|
|
13
17
|
}
|
|
14
|
-
const
|
|
15
|
-
if (
|
|
16
|
-
|
|
18
|
+
const transaction = getSuiResultTransaction(data);
|
|
19
|
+
if (!transaction) {
|
|
20
|
+
return { status: 'pending', isKnown: false };
|
|
21
|
+
}
|
|
22
|
+
if (isSuiExecutionSuccess(data)) {
|
|
23
|
+
const gasUsed = transaction.effects?.gasUsed;
|
|
17
24
|
const feeCoin = chainFeeCoin[Chain.Sui];
|
|
18
25
|
const receipt = gasUsed != null &&
|
|
19
26
|
typeof gasUsed === 'object' &&
|
|
@@ -30,7 +37,9 @@ export const getSuiTxStatus = async ({ hash }) => {
|
|
|
30
37
|
: undefined;
|
|
31
38
|
return { status: 'success', receipt };
|
|
32
39
|
}
|
|
33
|
-
|
|
40
|
+
// A `FailedTransaction` arm, or an explicit `status.success === false`, is a
|
|
41
|
+
// finalized on-chain failure (MoveAbort / InsufficientGas).
|
|
42
|
+
if (data.$kind === 'FailedTransaction' || transaction.status?.success === false) {
|
|
34
43
|
return { status: 'error' };
|
|
35
44
|
}
|
|
36
45
|
return { status: 'pending', isKnown: true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sui.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAIrD,MAAM,CAAC,MAAM,cAAc,GAAqC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACjF,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAE7B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CACnC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"sui.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/status/resolvers/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAA;AAClH,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAIrD,MAAM,CAAC,MAAM,cAAc,GAAqC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACjF,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAE7B,0EAA0E;IAC1E,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CACnC,MAAM,CAAC,cAAc,CAAC;QACpB,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KAC3B,CAAC,CACH,CAAA;IAED,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC9C,CAAC;IAED,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAEjD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC9C,CAAC;IAED,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAA;QAC5C,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,OAAO,GACX,OAAO,IAAI,IAAI;YACf,OAAO,OAAO,KAAK,QAAQ;YAC3B,iBAAiB,IAAI,OAAO;YAC5B,aAAa,IAAI,OAAO;YACxB,eAAe,IAAI,OAAO;YACxB,CAAC,CAAC;gBACE,SAAS,EACP,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBACvC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACvC,WAAW,EAAE,OAAO,CAAC,QAAQ;gBAC7B,SAAS,EAAE,OAAO,CAAC,MAAM;aAC1B;YACH,CAAC,CAAC,SAAS,CAAA;QAEf,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;IACvC,CAAC;IAED,6EAA6E;IAC7E,4DAA4D;IAC5D,IAAI,IAAI,CAAC,KAAK,KAAK,mBAAmB,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;QAChF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IAC5B,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC7C,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vultisig/core-chain",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.29.0",
|
|
4
4
|
"description": "Blockchain chain logic shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -375,10 +375,10 @@
|
|
|
375
375
|
"import": "./dist/chains/cosmos/qbtc/waitForQbtcTxInclusion.js",
|
|
376
376
|
"default": "./dist/chains/cosmos/qbtc/waitForQbtcTxInclusion.js"
|
|
377
377
|
},
|
|
378
|
-
"./chains/cosmos/
|
|
379
|
-
"types": "./dist/chains/cosmos/
|
|
380
|
-
"import": "./dist/chains/cosmos/
|
|
381
|
-
"default": "./dist/chains/cosmos/
|
|
378
|
+
"./chains/cosmos/resolveCosmosGasLimit": {
|
|
379
|
+
"types": "./dist/chains/cosmos/resolveCosmosGasLimit.d.ts",
|
|
380
|
+
"import": "./dist/chains/cosmos/resolveCosmosGasLimit.js",
|
|
381
|
+
"default": "./dist/chains/cosmos/resolveCosmosGasLimit.js"
|
|
382
382
|
},
|
|
383
383
|
"./chains/cosmos/staking/lcdQueries": {
|
|
384
384
|
"types": "./dist/chains/cosmos/staking/lcdQueries.d.ts",
|
|
@@ -820,11 +820,21 @@
|
|
|
820
820
|
"import": "./dist/chains/sui/config.js",
|
|
821
821
|
"default": "./dist/chains/sui/config.js"
|
|
822
822
|
},
|
|
823
|
+
"./chains/sui/listAllCoins": {
|
|
824
|
+
"types": "./dist/chains/sui/listAllCoins.d.ts",
|
|
825
|
+
"import": "./dist/chains/sui/listAllCoins.js",
|
|
826
|
+
"default": "./dist/chains/sui/listAllCoins.js"
|
|
827
|
+
},
|
|
823
828
|
"./chains/sui/sign": {
|
|
824
829
|
"types": "./dist/chains/sui/sign.d.ts",
|
|
825
830
|
"import": "./dist/chains/sui/sign.js",
|
|
826
831
|
"default": "./dist/chains/sui/sign.js"
|
|
827
832
|
},
|
|
833
|
+
"./chains/sui/transactionResult": {
|
|
834
|
+
"types": "./dist/chains/sui/transactionResult.d.ts",
|
|
835
|
+
"import": "./dist/chains/sui/transactionResult.js",
|
|
836
|
+
"default": "./dist/chains/sui/transactionResult.js"
|
|
837
|
+
},
|
|
828
838
|
"./chains/thorchain/ruji/services/fetchMergeableTokenBalances": {
|
|
829
839
|
"types": "./dist/chains/thorchain/ruji/services/fetchMergeableTokenBalances.d.ts",
|
|
830
840
|
"import": "./dist/chains/thorchain/ruji/services/fetchMergeableTokenBalances.js",
|
|
@@ -2159,13 +2169,13 @@
|
|
|
2159
2169
|
},
|
|
2160
2170
|
"dependencies": {
|
|
2161
2171
|
"7z-wasm": "^1.2.0",
|
|
2162
|
-
"@bufbuild/protobuf": "^2.
|
|
2172
|
+
"@bufbuild/protobuf": "^2.13.0",
|
|
2163
2173
|
"@cosmjs/amino": "^0.39.0",
|
|
2164
2174
|
"@cosmjs/encoding": "^0.39.0",
|
|
2165
2175
|
"@cosmjs/proto-signing": "^0.39.0",
|
|
2166
2176
|
"@cosmjs/stargate": "^0.39.0",
|
|
2167
2177
|
"@lifi/sdk": "^4.1.0",
|
|
2168
|
-
"@mysten/sui": "^2.
|
|
2178
|
+
"@mysten/sui": "^2.22.1",
|
|
2169
2179
|
"@noble/hashes": "^1.8.0",
|
|
2170
2180
|
"@polkadot/api": "^16.5.6",
|
|
2171
2181
|
"@polkadot/util": "^14.0.3",
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolves the effective Cosmos gas limit and fee amount for a native send,
|
|
3
|
-
* honoring a relayed dynamic `gas_limit` when present.
|
|
4
|
-
*
|
|
5
|
-
* Shared by the signing-inputs resolver (what gets signed) and the fee-display
|
|
6
|
-
* resolver (what the user sees) so the shown and signed fee can never drift —
|
|
7
|
-
* the gas limit is part of the SignDoc, so both sides MUST agree.
|
|
8
|
-
*
|
|
9
|
-
* When the relayed limit exceeds the static per-chain limit, the fee amount is
|
|
10
|
-
* scaled proportionally with a ceiling (exact integer math) so the tx pays for
|
|
11
|
-
* the extra gas. Below or equal to the static limit, both values are left
|
|
12
|
-
* untouched, keeping the non-dynamic path byte-identical.
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* COSMOS-02: an IBC transfer (ICS-20 `MsgTransfer`, optionally PFM-forwarded
|
|
16
|
-
* via memo) does measurably more work on the source leg than a plain bank
|
|
17
|
-
* send — channel-state writes plus a relayer event — so the flat per-chain
|
|
18
|
-
* limit (calibrated for `MsgSend`) is undersized and can run out of gas
|
|
19
|
-
* mid-execution: the fee is spent, the transfer fails, and funds don't move
|
|
20
|
-
* but the fee is still burned. PFM hops are budgeted by each forwarding
|
|
21
|
-
* chain, not the source leg here, so ×2 headroom on the source leg is
|
|
22
|
-
* sufficient. Mirrors the app's own `IBC_GAS_MULTIPLIER`
|
|
23
|
-
* (vultiagent-app/src/services/cosmosTx.ts).
|
|
24
|
-
*/
|
|
25
|
-
export declare const IBC_GAS_MULTIPLIER = 2n;
|
|
26
|
-
type ResolveCosmosGasFeeInput = {
|
|
27
|
-
/** static per-chain fee amount already stored in `CosmosSpecific.gas` */
|
|
28
|
-
gas: bigint;
|
|
29
|
-
/** relayed `CosmosSpecific.gas_limit` (undefined / 0 → use the static limit) */
|
|
30
|
-
relayedGasLimit: bigint | undefined;
|
|
31
|
-
/** static per-chain gas limit (`getCosmosGasLimit`) */
|
|
32
|
-
staticGasLimit: bigint;
|
|
33
|
-
/**
|
|
34
|
-
* Whether this tx is an IBC transfer (`MsgTransfer`, optionally
|
|
35
|
-
* PFM-forwarded). Applies `IBC_GAS_MULTIPLIER` to both the static gas
|
|
36
|
-
* limit and its matching fee before resolving against a relayed limit.
|
|
37
|
-
* Defaults to `false` so every other Cosmos message (plain sends, wasm
|
|
38
|
-
* executes, staking) keeps paying the calibrated flat fee — a blanket
|
|
39
|
-
* multiplier on all Cosmos messages would overpay non-IBC sends.
|
|
40
|
-
*/
|
|
41
|
-
isIbcTransfer?: boolean;
|
|
42
|
-
};
|
|
43
|
-
type ResolveCosmosGasFeeResult = {
|
|
44
|
-
resolvedGasLimit: bigint;
|
|
45
|
-
feeAmount: bigint;
|
|
46
|
-
};
|
|
47
|
-
export declare const resolveCosmosGasFee: ({ gas, relayedGasLimit, staticGasLimit, isIbcTransfer, }: ResolveCosmosGasFeeInput) => ResolveCosmosGasFeeResult;
|
|
48
|
-
export {};
|
|
49
|
-
//# sourceMappingURL=resolveCosmosGasFee.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolveCosmosGasFee.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cosmos/resolveCosmosGasFee.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAA;AAEpC,KAAK,wBAAwB,GAAG;IAC9B,yEAAyE;IACzE,GAAG,EAAE,MAAM,CAAA;IACX,gFAAgF;IAChF,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAA;IACtB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,0DAKjC,wBAAwB,KAAG,yBAY7B,CAAA"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolves the effective Cosmos gas limit and fee amount for a native send,
|
|
3
|
-
* honoring a relayed dynamic `gas_limit` when present.
|
|
4
|
-
*
|
|
5
|
-
* Shared by the signing-inputs resolver (what gets signed) and the fee-display
|
|
6
|
-
* resolver (what the user sees) so the shown and signed fee can never drift —
|
|
7
|
-
* the gas limit is part of the SignDoc, so both sides MUST agree.
|
|
8
|
-
*
|
|
9
|
-
* When the relayed limit exceeds the static per-chain limit, the fee amount is
|
|
10
|
-
* scaled proportionally with a ceiling (exact integer math) so the tx pays for
|
|
11
|
-
* the extra gas. Below or equal to the static limit, both values are left
|
|
12
|
-
* untouched, keeping the non-dynamic path byte-identical.
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* COSMOS-02: an IBC transfer (ICS-20 `MsgTransfer`, optionally PFM-forwarded
|
|
16
|
-
* via memo) does measurably more work on the source leg than a plain bank
|
|
17
|
-
* send — channel-state writes plus a relayer event — so the flat per-chain
|
|
18
|
-
* limit (calibrated for `MsgSend`) is undersized and can run out of gas
|
|
19
|
-
* mid-execution: the fee is spent, the transfer fails, and funds don't move
|
|
20
|
-
* but the fee is still burned. PFM hops are budgeted by each forwarding
|
|
21
|
-
* chain, not the source leg here, so ×2 headroom on the source leg is
|
|
22
|
-
* sufficient. Mirrors the app's own `IBC_GAS_MULTIPLIER`
|
|
23
|
-
* (vultiagent-app/src/services/cosmosTx.ts).
|
|
24
|
-
*/
|
|
25
|
-
export const IBC_GAS_MULTIPLIER = 2n;
|
|
26
|
-
export const resolveCosmosGasFee = ({ gas, relayedGasLimit, staticGasLimit, isIbcTransfer = false, }) => {
|
|
27
|
-
const effectiveStaticGasLimit = isIbcTransfer ? staticGasLimit * IBC_GAS_MULTIPLIER : staticGasLimit;
|
|
28
|
-
const effectiveGas = isIbcTransfer ? gas * IBC_GAS_MULTIPLIER : gas;
|
|
29
|
-
const resolvedGasLimit = relayedGasLimit && relayedGasLimit > 0n ? relayedGasLimit : effectiveStaticGasLimit;
|
|
30
|
-
const feeAmount = resolvedGasLimit > effectiveStaticGasLimit
|
|
31
|
-
? (effectiveGas * resolvedGasLimit + effectiveStaticGasLimit - 1n) / effectiveStaticGasLimit
|
|
32
|
-
: effectiveGas;
|
|
33
|
-
return { resolvedGasLimit, feeAmount };
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=resolveCosmosGasFee.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolveCosmosGasFee.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cosmos/resolveCosmosGasFee.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAA;AAyBpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,GAAG,EACH,eAAe,EACf,cAAc,EACd,aAAa,GAAG,KAAK,GACI,EAA6B,EAAE;IACxD,MAAM,uBAAuB,GAAG,aAAa,CAAC,CAAC,CAAC,cAAc,GAAG,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAA;IACpG,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAA;IAEnE,MAAM,gBAAgB,GAAG,eAAe,IAAI,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,uBAAuB,CAAA;IAE5G,MAAM,SAAS,GACb,gBAAgB,GAAG,uBAAuB;QACxC,CAAC,CAAC,CAAC,YAAY,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,EAAE,CAAC,GAAG,uBAAuB;QAC5F,CAAC,CAAC,YAAY,CAAA;IAElB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAA;AACxC,CAAC,CAAA"}
|