@vultisig/core-mpc 1.12.1 → 1.14.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 +165 -0
- package/dist/chains/cosmos/qbtc/QBTCHelper.js +4 -3
- package/dist/chains/cosmos/qbtc/QBTCHelper.js.map +1 -1
- package/dist/chains/cosmos/qbtc/QBTCTx.js +1 -1
- package/dist/chains/cosmos/qbtc/QBTCTx.js.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/cosmos/index.d.ts.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/cosmos/index.js +71 -10
- package/dist/keysign/chainSpecific/resolvers/cosmos/index.js.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/sui/index.d.ts.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/sui/index.js +62 -64
- package/dist/keysign/chainSpecific/resolvers/sui/index.js.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/sui/refine.d.ts.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/sui/refine.js +14 -4
- package/dist/keysign/chainSpecific/resolvers/sui/refine.js.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/tron/energyPrice.d.ts +4 -3
- package/dist/keysign/chainSpecific/resolvers/tron/energyPrice.d.ts.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/tron/energyPrice.js +11 -5
- package/dist/keysign/chainSpecific/resolvers/tron/energyPrice.js.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/tron/fee.d.ts +11 -0
- package/dist/keysign/chainSpecific/resolvers/tron/fee.d.ts.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/tron/fee.js +43 -19
- package/dist/keysign/chainSpecific/resolvers/tron/fee.js.map +1 -1
- package/dist/keysign/fee/resolvers/cosmos.d.ts +5 -3
- package/dist/keysign/fee/resolvers/cosmos.d.ts.map +1 -1
- package/dist/keysign/fee/resolvers/cosmos.js +8 -21
- package/dist/keysign/fee/resolvers/cosmos.js.map +1 -1
- package/dist/keysign/fee/resolvers/tron.d.ts.map +1 -1
- package/dist/keysign/fee/resolvers/tron.js +11 -2
- package/dist/keysign/fee/resolvers/tron.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/cosmos/index.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/cosmos/index.js +30 -17
- package/dist/keysign/signingInputs/resolvers/cosmos/index.js.map +1 -1
- package/dist/keysign/swap/buildLimitSwapKeysignPayload.d.ts +86 -0
- package/dist/keysign/swap/buildLimitSwapKeysignPayload.d.ts.map +1 -0
- package/dist/keysign/swap/buildLimitSwapKeysignPayload.js +178 -0
- package/dist/keysign/swap/buildLimitSwapKeysignPayload.js.map +1 -0
- package/dist/keysign/swap/getKeysignLimitSwapOrder.d.ts +41 -0
- package/dist/keysign/swap/getKeysignLimitSwapOrder.d.ts.map +1 -0
- package/dist/keysign/swap/getKeysignLimitSwapOrder.js +50 -0
- package/dist/keysign/swap/getKeysignLimitSwapOrder.js.map +1 -0
- package/package.json +14 -4
|
@@ -3,6 +3,8 @@ import { create } from '@bufbuild/protobuf';
|
|
|
3
3
|
import { Chain } from '@vultisig/core-chain/Chain';
|
|
4
4
|
import { getSuiClient } from '@vultisig/core-chain/chains/sui/client';
|
|
5
5
|
import { suiMinGasBudget } from '@vultisig/core-chain/chains/sui/config';
|
|
6
|
+
import { getSuiResultTransaction } from '@vultisig/core-chain/chains/sui/transactionResult';
|
|
7
|
+
import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
|
|
6
8
|
import { KeysignPayloadSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb';
|
|
7
9
|
import { maxBigInt } from '@vultisig/lib-utils/math/maxBigInt';
|
|
8
10
|
import { getPreSigningOutput } from '../../../preSigningOutput/index.js';
|
|
@@ -25,11 +27,19 @@ export const refineSuiChainSpecific = async ({ keysignPayload, chainSpecific, wa
|
|
|
25
27
|
txInputData,
|
|
26
28
|
chain: Chain.Sui,
|
|
27
29
|
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
// Strip WalletCore's 3-byte intent prefix — the chain wants the raw
|
|
31
|
+
// TransactionData BCS bytes. `simulateTransaction` (the replacement for the
|
|
32
|
+
// retired `dryRunTransactionBlock`) takes those bytes directly rather than a
|
|
33
|
+
// base64 string.
|
|
34
|
+
const txBytes = new Uint8Array(Buffer.from(data).subarray(3));
|
|
35
|
+
const simulation = await client.simulateTransaction({
|
|
36
|
+
transaction: txBytes,
|
|
37
|
+
include: { effects: true },
|
|
31
38
|
});
|
|
32
|
-
|
|
39
|
+
// A simulation that reports no gas at all cannot price the budget; fail
|
|
40
|
+
// closed rather than fall through to a 0 budget the send can't pay for.
|
|
41
|
+
const gasUsed = shouldBePresent(getSuiResultTransaction(simulation)?.effects?.gasUsed, 'Sui simulated gas usage');
|
|
42
|
+
const gasBudget = BigInt(gasUsed.computationCost ?? '0') + BigInt(gasUsed.storageCost ?? '0');
|
|
33
43
|
return {
|
|
34
44
|
...chainSpecific,
|
|
35
45
|
gasBudget: maxBigInt(gasBudgetMultiplier(gasBudget), suiMinGasBudget).toString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refine.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/sui/refine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;
|
|
1
|
+
{"version":3,"file":"refine.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/sui/refine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAA;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAE5E,OAAO,EAAkB,oBAAoB,EAAE,MAAM,iEAAiE,CAAA;AACtH,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAG9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAEhE,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;AAQpE,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAC3C,cAAc,EACd,aAAa,EACb,UAAU,GACkB,EAAwB,EAAE;IACtD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAE7B,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,uBAAuB,CAAC;QAClD,cAAc,EAAE,MAAM,CAAC,oBAAoB,EAAE;YAC3C,GAAG,cAAc;YACjB,kBAAkB,EAAE;gBAClB,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,aAAa;aACrB;SACF,CAAC;QACF,UAAU;KACX,CAAC,CAAA;IAEF,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC;QACnC,UAAU;QACV,WAAW;QACX,KAAK,EAAE,KAAK,CAAC,GAAG;KACjB,CAAC,CAAA;IAEF,oEAAoE;IACpE,4EAA4E;IAC5E,6EAA6E;IAC7E,iBAAiB;IACjB,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAE7D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC;QAClD,WAAW,EAAE,OAAO;QACpB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KAC3B,CAAC,CAAA;IAEF,wEAAwE;IACxE,wEAAwE;IACxE,MAAM,OAAO,GAAG,eAAe,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,yBAAyB,CAAC,CAAA;IAEjH,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,CAAA;IAE7F,OAAO;QACL,GAAG,aAAa;QAChB,SAAS,EAAE,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE;KACjF,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Returns the current energy price in sun/energy from Tron chain params.
|
|
3
|
-
* Successful fetches cached for 5 min. Falls back to
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Successful fetches cached for 5 min. Falls back to 100 sun/energy (live
|
|
4
|
+
* TronGrid getEnergyFee value) if the endpoint is unreachable or its response
|
|
5
|
+
* omits a valid positive getEnergyFee parameter. Network errors are never
|
|
6
|
+
* cached, so recovery is immediate once TronGrid comes back.
|
|
6
7
|
*/
|
|
7
8
|
export declare const getEnergyPrice: () => Promise<bigint>;
|
|
8
9
|
//# sourceMappingURL=energyPrice.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"energyPrice.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/energyPrice.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"energyPrice.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/energyPrice.ts"],"names":[],"mappings":"AA2CA;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,MAAM,CAMrD,CAAA"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { memoizeAsync } from '@vultisig/lib-utils/memoizeAsync';
|
|
2
2
|
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
3
|
-
|
|
3
|
+
// Live-verified via `curl -sX POST https://api.trongrid.io/wallet/getchainparameters`
|
|
4
|
+
// (getEnergyFee=100 as of 2026-07-21). Used when TronGrid is unreachable or
|
|
5
|
+
// returns a missing/invalid getEnergyFee parameter.
|
|
6
|
+
const FALLBACK_ENERGY_PRICE = 100n;
|
|
4
7
|
const CHAIN_PARAMS_URL = 'https://api.trongrid.io/wallet/getchainparameters';
|
|
5
8
|
// 5 min TTL - governance proposals that change energy price are extremely
|
|
6
9
|
// rare (last change was 2023) so this trades one RPC call per 5 min window
|
|
@@ -18,12 +21,15 @@ const fetchEnergyPriceRaw = async () => {
|
|
|
18
21
|
};
|
|
19
22
|
// Only successful fetches are memoized. Errors bubble up so the catch below
|
|
20
23
|
// never caches the fallback as if it were a real price (fixes error-caching bug).
|
|
21
|
-
const memoizedFetchEnergyPrice = memoizeAsync(fetchEnergyPriceRaw, {
|
|
24
|
+
const memoizedFetchEnergyPrice = memoizeAsync(fetchEnergyPriceRaw, {
|
|
25
|
+
cacheTime: CACHE_TTL_MS,
|
|
26
|
+
});
|
|
22
27
|
/**
|
|
23
28
|
* Returns the current energy price in sun/energy from Tron chain params.
|
|
24
|
-
* Successful fetches cached for 5 min. Falls back to
|
|
25
|
-
*
|
|
26
|
-
*
|
|
29
|
+
* Successful fetches cached for 5 min. Falls back to 100 sun/energy (live
|
|
30
|
+
* TronGrid getEnergyFee value) if the endpoint is unreachable or its response
|
|
31
|
+
* omits a valid positive getEnergyFee parameter. Network errors are never
|
|
32
|
+
* cached, so recovery is immediate once TronGrid comes back.
|
|
27
33
|
*/
|
|
28
34
|
export const getEnergyPrice = async () => {
|
|
29
35
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"energyPrice.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/energyPrice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,MAAM,qBAAqB,GAAG,IAAI,CAAA;AAElC,MAAM,gBAAgB,GAAG,mDAAmD,CAAA;AAE5E,0EAA0E;AAC1E,2EAA2E;AAC3E,kEAAkE;AAClE,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAWlC,MAAM,mBAAmB,GAAG,KAAK,IAAqB,EAAE;IACtD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAA6B,gBAAgB,EAAE;QACxE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,cAAc,CAAC,CAAA;IACtE,IAAI,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7C,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,4EAA4E;AAC5E,kFAAkF;AAClF,MAAM,wBAAwB,GAAG,YAAY,CAAC,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"energyPrice.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/energyPrice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,sFAAsF;AACtF,4EAA4E;AAC5E,oDAAoD;AACpD,MAAM,qBAAqB,GAAG,IAAI,CAAA;AAElC,MAAM,gBAAgB,GAAG,mDAAmD,CAAA;AAE5E,0EAA0E;AAC1E,2EAA2E;AAC3E,kEAAkE;AAClE,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAWlC,MAAM,mBAAmB,GAAG,KAAK,IAAqB,EAAE;IACtD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAA6B,gBAAgB,EAAE;QACxE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACxC,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,cAAc,CAAC,CAAA;IACtE,IAAI,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7C,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,4EAA4E;AAC5E,kFAAkF;AAClF,MAAM,wBAAwB,GAAG,YAAY,CAAC,mBAAmB,EAAE;IACjE,SAAS,EAAE,YAAY;CACxB,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAqB,EAAE;IACxD,IAAI,CAAC;QACH,OAAO,MAAM,wBAAwB,EAAE,CAAA;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,qBAAqB,CAAA;IAC9B,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -4,6 +4,17 @@ type GetTrc20TransferFeeInput = {
|
|
|
4
4
|
amount: bigint;
|
|
5
5
|
receiver: string;
|
|
6
6
|
};
|
|
7
|
+
type GetTrc20TransferFeeAmountInput = {
|
|
8
|
+
feeLimit: bigint;
|
|
9
|
+
fromAddress: string;
|
|
10
|
+
};
|
|
7
11
|
export declare const getTrc20TransferFee: ({ coin, receiver, amount }: GetTrc20TransferFeeInput) => Promise<bigint>;
|
|
12
|
+
/**
|
|
13
|
+
* Returns the expected TRX burn for display/max-send, separately from the
|
|
14
|
+
* serialized feeLimit ceiling. When the ceiling is capped, return the cap as a
|
|
15
|
+
* conservative estimate because the original uncapped simulation cost cannot
|
|
16
|
+
* be recovered from the protobuf value.
|
|
17
|
+
*/
|
|
18
|
+
export declare const getTrc20TransferFeeAmount: ({ feeLimit, fromAddress, }: GetTrc20TransferFeeAmountInput) => Promise<bigint>;
|
|
8
19
|
export {};
|
|
9
20
|
//# sourceMappingURL=fee.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fee.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/fee.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"fee.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/fee.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;AAatE,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,cAAc,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,8BAA8B,GAAG;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAoBD,eAAO,MAAM,mBAAmB,GAAU,4BAA4B,wBAAwB,KAAG,OAAO,CAAC,MAAM,CAqD9G,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GAAU,4BAG7C,8BAA8B,KAAG,OAAO,CAAC,MAAM,CAuBjD,CAAA"}
|
|
@@ -3,6 +3,8 @@ import { getTronAccountResources } from '@vultisig/core-chain/chains/tron/resour
|
|
|
3
3
|
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
4
4
|
import base58 from 'bs58';
|
|
5
5
|
import { getEnergyPrice } from './energyPrice.js';
|
|
6
|
+
const FEE_LIMIT_MARGIN_BPS = 5000n; // +50%
|
|
7
|
+
const FEE_LIMIT_CAP_SUN = 100000000n; // 100 TRX
|
|
6
8
|
function base58ToHex(address) {
|
|
7
9
|
const decoded = base58.decode(address);
|
|
8
10
|
const addressBytes = decoded.slice(0, -4);
|
|
@@ -33,37 +35,59 @@ export const getTrc20TransferFee = async ({ coin, receiver, amount }) => {
|
|
|
33
35
|
visible: true,
|
|
34
36
|
},
|
|
35
37
|
});
|
|
38
|
+
// triggerconstantcontract can return a 200 with an empty/malformed body or a
|
|
39
|
+
// reverted simulation without surfacing an HTTP error. Live revert responses
|
|
40
|
+
// may even carry result.result=true alongside a REVERT message, so treat any
|
|
41
|
+
// code/message as a failed estimate too. Trusting energy_used=0 in those cases
|
|
42
|
+
// silently produces feeLimit=0 downstream, which guarantees OUT_OF_ENERGY at
|
|
43
|
+
// broadcast.
|
|
44
|
+
const result = responseData.result;
|
|
45
|
+
if (!result || result.result !== true || result.code || result.message) {
|
|
46
|
+
const reason = result?.message || result?.code || 'empty or malformed response (possible TronGrid indexing lag)';
|
|
47
|
+
throw new Error(`[tron] triggerconstantcontract did not return a successful estimate: ${reason}`);
|
|
48
|
+
}
|
|
36
49
|
const energyUsed = responseData.energy_used ?? 0;
|
|
37
50
|
const energyPenalty = responseData.energy_penalty ?? 0;
|
|
38
51
|
const totalEnergy = BigInt(energyUsed) + BigInt(energyPenalty);
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
// protobuf feeLimit field via `Long.fromString(gasEstimation.toString())`.
|
|
42
|
-
// TronGrid rejects negative feeLimit at broadcast. Send-service path has a
|
|
43
|
-
// similar guard at sdk/src/chains/tron/tx.ts:391; mirror it here for the MPC
|
|
44
|
-
// keysign path. Returning 0 lets the upstream estimator pick a sane default.
|
|
52
|
+
// A successful TRC-20 simulation must consume energy. Fail closed rather than
|
|
53
|
+
// letting a non-positive estimate become a zero/negative protobuf feeLimit.
|
|
45
54
|
if (totalEnergy <= 0n) {
|
|
55
|
+
throw new Error('[tron] triggerconstantcontract returned a non-positive energy estimate');
|
|
56
|
+
}
|
|
57
|
+
const energyPrice = await getEnergyPrice();
|
|
58
|
+
const totalSun = totalEnergy * energyPrice;
|
|
59
|
+
// feeLimit is a spending CEILING, not an expected cost. Base it on the full
|
|
60
|
+
// simulation before staked-energy subtraction so concurrent energy use during
|
|
61
|
+
// the 10-60s MPC ceremony cannot reduce it to zero. Cap pathological estimates
|
|
62
|
+
// at the typical 100 TRX limit documented by the send service.
|
|
63
|
+
const withMargin = totalSun + (totalSun * FEE_LIMIT_MARGIN_BPS) / 10000n;
|
|
64
|
+
return withMargin > FEE_LIMIT_CAP_SUN ? FEE_LIMIT_CAP_SUN : withMargin;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Returns the expected TRX burn for display/max-send, separately from the
|
|
68
|
+
* serialized feeLimit ceiling. When the ceiling is capped, return the cap as a
|
|
69
|
+
* conservative estimate because the original uncapped simulation cost cannot
|
|
70
|
+
* be recovered from the protobuf value.
|
|
71
|
+
*/
|
|
72
|
+
export const getTrc20TransferFeeAmount = async ({ feeLimit, fromAddress, }) => {
|
|
73
|
+
if (feeLimit <= 0n) {
|
|
46
74
|
return 0n;
|
|
47
75
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
let energyToBurn = totalEnergy;
|
|
76
|
+
const fullBurnEstimate = feeLimit >= FEE_LIMIT_CAP_SUN
|
|
77
|
+
? FEE_LIMIT_CAP_SUN
|
|
78
|
+
: (feeLimit * 10000n + (10000n + FEE_LIMIT_MARGIN_BPS - 1n)) / (10000n + FEE_LIMIT_MARGIN_BPS);
|
|
52
79
|
try {
|
|
53
|
-
const resources = await getTronAccountResources(
|
|
80
|
+
const [resources, energyPrice] = await Promise.all([getTronAccountResources(fromAddress), getEnergyPrice()]);
|
|
54
81
|
const availableEnergy = BigInt(resources.energy.available);
|
|
55
|
-
if (availableEnergy
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
else if (availableEnergy > 0n) {
|
|
59
|
-
energyToBurn = totalEnergy - availableEnergy;
|
|
82
|
+
if (availableEnergy <= 0n) {
|
|
83
|
+
return fullBurnEstimate;
|
|
60
84
|
}
|
|
85
|
+
const coveredSun = availableEnergy * energyPrice;
|
|
86
|
+
return coveredSun >= fullBurnEstimate ? 0n : fullBurnEstimate - coveredSun;
|
|
61
87
|
}
|
|
62
88
|
catch (err) {
|
|
63
89
|
console.warn('[tron] failed to fetch account energy resources, falling back to worst-case fee', err);
|
|
90
|
+
return fullBurnEstimate;
|
|
64
91
|
}
|
|
65
|
-
const energyPrice = await getEnergyPrice();
|
|
66
|
-
const totalSun = energyToBurn * energyPrice;
|
|
67
|
-
return totalSun;
|
|
68
92
|
};
|
|
69
93
|
//# sourceMappingURL=fee.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oEAAoE,CAAA;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAC7D,OAAO,MAAM,MAAM,MAAM,CAAA;AAEzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/fee.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,11 @@ import { FeeAmountResolver } from '../resolver.js';
|
|
|
6
6
|
* `CosmosSpecific.gas` at keysign-payload build time, so every consumer —
|
|
7
7
|
* including this resolver — agrees on what the chain will charge.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* Fee row
|
|
9
|
+
* `CosmosSpecific.gas` is the fee AMOUNT (proto field 3) and is returned
|
|
10
|
+
* verbatim — exactly what the signing-inputs resolver puts in the SignDoc, so
|
|
11
|
+
* the Network Fee row can never drift from what gets signed. A relayed
|
|
12
|
+
* `gas_limit` (field 7) changes the signed gas limit, not the amount; the
|
|
13
|
+
* initiator has already priced `gas` against it.
|
|
12
14
|
*/
|
|
13
15
|
export declare const getCosmosFeeAmount: FeeAmountResolver;
|
|
14
16
|
//# sourceMappingURL=cosmos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/fee/resolvers/cosmos.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/fee/resolvers/cosmos.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBAShC,CAAA"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { resolveCosmosGasFee } from '@vultisig/core-chain/chains/cosmos/resolveCosmosGasFee';
|
|
3
|
-
import { TransactionType } from '@vultisig/core-mpc/types/vultisig/keysign/v1/blockchain_specific_pb';
|
|
1
|
+
import { MAYA_SEND_FEE_BASE_UNITS } from '@vultisig/core-chain/chains/cosmos/gas';
|
|
4
2
|
import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
|
|
5
3
|
import { getCosmosChainSpecific } from '../../signingInputs/resolvers/cosmos/chainSpecific.js';
|
|
6
4
|
import { getKeysignChain } from '../../utils/getKeysignChain.js';
|
|
7
|
-
import { getKeysignCoin } from '../../utils/getKeysignCoin.js';
|
|
8
|
-
const mayaGas = 2000000000n;
|
|
9
5
|
/**
|
|
10
6
|
* Reads the cosmos fee from `blockchainSpecific`. Initiators are responsible
|
|
11
7
|
* for writing the canonical fee (e.g. the dapp-supplied value when signing
|
|
@@ -13,27 +9,18 @@ const mayaGas = 2000000000n;
|
|
|
13
9
|
* `CosmosSpecific.gas` at keysign-payload build time, so every consumer —
|
|
14
10
|
* including this resolver — agrees on what the chain will charge.
|
|
15
11
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* Fee row
|
|
12
|
+
* `CosmosSpecific.gas` is the fee AMOUNT (proto field 3) and is returned
|
|
13
|
+
* verbatim — exactly what the signing-inputs resolver puts in the SignDoc, so
|
|
14
|
+
* the Network Fee row can never drift from what gets signed. A relayed
|
|
15
|
+
* `gas_limit` (field 7) changes the signed gas limit, not the amount; the
|
|
16
|
+
* initiator has already priced `gas` against it.
|
|
19
17
|
*/
|
|
20
18
|
export const getCosmosFeeAmount = ({ keysignPayload }) => {
|
|
21
19
|
const chain = getKeysignChain(keysignPayload);
|
|
22
20
|
const chainSpecific = getCosmosChainSpecific(chain, keysignPayload.blockchainSpecific);
|
|
23
21
|
return matchRecordUnion(chainSpecific, {
|
|
24
|
-
ibcEnabled: ({ gas
|
|
25
|
-
|
|
26
|
-
const { feeAmount } = resolveCosmosGasFee({
|
|
27
|
-
gas,
|
|
28
|
-
relayedGasLimit: gasLimit,
|
|
29
|
-
staticGasLimit: getCosmosGasLimit(coin),
|
|
30
|
-
// COSMOS-02: mirror the signing-inputs resolver's IBC gas multiplier
|
|
31
|
-
// so the displayed Network Fee never drifts from what gets signed.
|
|
32
|
-
isIbcTransfer: transactionType === TransactionType.IBC_TRANSFER,
|
|
33
|
-
});
|
|
34
|
-
return feeAmount;
|
|
35
|
-
},
|
|
36
|
-
vaultBased: value => ('fee' in value ? value.fee : mayaGas),
|
|
22
|
+
ibcEnabled: ({ gas }) => gas,
|
|
23
|
+
vaultBased: value => ('fee' in value ? value.fee : MAYA_SEND_FEE_BASE_UNITS),
|
|
37
24
|
});
|
|
38
25
|
};
|
|
39
26
|
//# sourceMappingURL=cosmos.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/fee/resolvers/cosmos.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/fee/resolvers/cosmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAEvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAA;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAG7D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsB,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE;IAC1E,MAAM,KAAK,GAAG,eAAe,CAAW,cAAc,CAAC,CAAA;IAEvD,MAAM,aAAa,GAAG,sBAAsB,CAAC,KAAK,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAA;IAEtF,OAAO,gBAAgB,CAAC,aAAa,EAAE;QACrC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG;QAC5B,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB,CAAC;KAC7E,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/fee/resolvers/tron.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/fee/resolvers/tron.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,eAAO,MAAM,gBAAgB,EAAE,iBAY9B,CAAA"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
+
import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
|
|
1
2
|
import { getBlockchainSpecificValue } from '../../chainSpecific/KeysignChainSpecific.js';
|
|
2
|
-
|
|
3
|
+
import { getTrc20TransferFeeAmount } from '../../chainSpecific/resolvers/tron/fee.js';
|
|
4
|
+
export const getTronFeeAmount = async ({ keysignPayload }) => {
|
|
3
5
|
const { gasEstimation } = getBlockchainSpecificValue(keysignPayload.blockchainSpecific, 'tronSpecific');
|
|
4
|
-
|
|
6
|
+
const coin = shouldBePresent(keysignPayload.coin);
|
|
7
|
+
if (coin.isNativeToken) {
|
|
8
|
+
return gasEstimation;
|
|
9
|
+
}
|
|
10
|
+
return getTrc20TransferFeeAmount({
|
|
11
|
+
feeLimit: gasEstimation,
|
|
12
|
+
fromAddress: coin.address,
|
|
13
|
+
});
|
|
5
14
|
};
|
|
6
15
|
//# sourceMappingURL=tron.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/fee/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAA;
|
|
1
|
+
{"version":3,"file":"tron.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/fee/resolvers/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAE5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAA;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AAGlF,MAAM,CAAC,MAAM,gBAAgB,GAAsB,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IAC9E,MAAM,EAAE,aAAa,EAAE,GAAG,0BAA0B,CAAC,cAAc,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;IACvG,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IAEjD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,OAAO,yBAAyB,CAAC;QAC/B,QAAQ,EAAE,aAAa;QACvB,WAAW,EAAE,IAAI,CAAC,OAAO;KAC1B,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cosmos/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cosmos/index.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAwFtD,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,CAAC,QAAQ,CAmdlE,CAAA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
2
|
import { cosmosFeeCoinDenom } from '@vultisig/core-chain/chains/cosmos/cosmosFeeCoinDenom';
|
|
3
3
|
import { getCosmosGasLimit } from '@vultisig/core-chain/chains/cosmos/cosmosGasLimitRecord';
|
|
4
|
-
import {
|
|
4
|
+
import { resolveCosmosGasLimit } from '@vultisig/core-chain/chains/cosmos/resolveCosmosGasLimit';
|
|
5
5
|
import { getCosmosChainKind } from '@vultisig/core-chain/chains/cosmos/utils/getCosmosChainKind';
|
|
6
6
|
import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
|
|
7
7
|
import { areEqualCoins } from '@vultisig/core-chain/coin/Coin';
|
|
8
|
-
import { nativeSwapChainIds } from '@vultisig/core-chain/swap/native/NativeSwapChain';
|
|
8
|
+
import { getNativeSwapChainIdFromDenomPrefix, nativeSwapChainIds, } from '@vultisig/core-chain/swap/native/NativeSwapChain';
|
|
9
9
|
import { TransactionType } from '@vultisig/core-mpc/types/vultisig/keysign/v1/blockchain_specific_pb';
|
|
10
10
|
import { fromBase64 } from '@cosmjs/encoding';
|
|
11
11
|
import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
|
|
@@ -33,7 +33,20 @@ const getThorchainDepositAsset = ({ assetCoin, chain, secured, }) => {
|
|
|
33
33
|
const chainId = nativeSwapChainIds[assetCoin.chain] ??
|
|
34
34
|
nativeSwapChainIds[chain];
|
|
35
35
|
const { contractAddress } = assetCoin;
|
|
36
|
-
|
|
36
|
+
// The `TICKER-CONTRACT` symbol form belongs to secured-asset withdrawals only,
|
|
37
|
+
// where `assetCoin` is the L1 coin being pulled off THORChain and
|
|
38
|
+
// `contractAddress` is its L1 token contract (`USDC` + `0xa0b8…` ->
|
|
39
|
+
// `USDC-0XA0B8…`, matching THORNode's `ETH.USDC-0XA0B8…`).
|
|
40
|
+
//
|
|
41
|
+
// For a plain swap the contract address is the THORChain bank denom
|
|
42
|
+
// (`tcy`, `x/ruji`), and appending it produced `TCY-tcy` — an asset THORNode
|
|
43
|
+
// has no pool for, and a pre-image hash that no longer matched the one iOS
|
|
44
|
+
// (`thorchain.swift` getSwapPreSignedInputData) and Android
|
|
45
|
+
// (`ThorchainSwapHelper.getSwapPreSignedInputData`) derive from the same
|
|
46
|
+
// payload. A co-signing joiner then polled a `message_id` the initiator never
|
|
47
|
+
// uploaded and died on `404 Timed out while waiting for setup message`.
|
|
48
|
+
// See vultisig/vultisig-windows#4464.
|
|
49
|
+
const rawSymbol = secured && typeof contractAddress === 'string' && contractAddress.trim()
|
|
37
50
|
? `${assetCoin.ticker}-${contractAddress}`
|
|
38
51
|
: assetCoin.ticker;
|
|
39
52
|
return TW.Cosmos.Proto.THORChainAsset.create({
|
|
@@ -58,9 +71,13 @@ const isSecuredAssetSwapCoin = (assetCoin) => assetCoin.chain === Chain.THORChai
|
|
|
58
71
|
// secured asset referenced by the server-issued swap memo (`=:ETH-USDC:…`).
|
|
59
72
|
const getSecuredAssetDepositAsset = (assetCoin) => {
|
|
60
73
|
const [chainPrefix, ...symbolParts] = assetCoin.contractAddress.split('-');
|
|
74
|
+
const chainId = getNativeSwapChainIdFromDenomPrefix(chainPrefix);
|
|
75
|
+
if (!chainId) {
|
|
76
|
+
throw new Error(`Unsupported secured asset chain prefix: "${chainPrefix}"`);
|
|
77
|
+
}
|
|
61
78
|
const symbol = symbolParts.join('-');
|
|
62
79
|
return TW.Cosmos.Proto.THORChainAsset.create({
|
|
63
|
-
chain:
|
|
80
|
+
chain: chainId,
|
|
64
81
|
symbol: (symbol || assetCoin.ticker).toUpperCase(),
|
|
65
82
|
ticker: assetCoin.ticker.toUpperCase().replace(/X\//g, ''),
|
|
66
83
|
synth: false,
|
|
@@ -419,22 +436,18 @@ export const getCosmosSigningInputs = ({ keysignPayload, walletCore }) => {
|
|
|
419
436
|
return amounts;
|
|
420
437
|
};
|
|
421
438
|
const ibcSpecific = chainKind === 'ibcEnabled' ? getRecordUnionValue(chainSpecific, 'ibcEnabled') : undefined;
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
//
|
|
425
|
-
//
|
|
426
|
-
//
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
gas: ibcSpecific?.gas ?? 0n,
|
|
431
|
-
relayedGasLimit,
|
|
432
|
-
staticGasLimit,
|
|
433
|
-
isIbcTransfer,
|
|
439
|
+
// `CosmosSpecific.gas` (proto field 3) IS the fee amount — signed verbatim,
|
|
440
|
+
// never re-derived here. The initiator prices it against the gas limit it
|
|
441
|
+
// relays in field 7 (`getCosmosChainSpecific`), so any headroom is already
|
|
442
|
+
// baked in. Doing arithmetic on it in this read path is what diverged the
|
|
443
|
+
// SignDoc from iOS / Android — see resolveCosmosGasLimit.ts.
|
|
444
|
+
const resolvedGasLimit = resolveCosmosGasLimit({
|
|
445
|
+
relayedGasLimit: ibcSpecific?.gasLimit,
|
|
446
|
+
staticGasLimit: getCosmosGasLimit(coin),
|
|
434
447
|
});
|
|
435
448
|
return TW.Cosmos.Proto.Fee.create({
|
|
436
449
|
gas: Long.fromBigInt(resolvedGasLimit),
|
|
437
|
-
amounts: getFeeAmounts(
|
|
450
|
+
amounts: getFeeAmounts(ibcSpecific?.gas ?? 0n),
|
|
438
451
|
});
|
|
439
452
|
};
|
|
440
453
|
const { accountNumber, sequence } = getRecordUnionValue(chainSpecific);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cosmos/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cosmos/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { AccountCoin } from '@vultisig/core-chain/coin/AccountCoin';
|
|
2
|
+
import { WalletCore } from '@trustwallet/wallet-core';
|
|
3
|
+
import { PublicKey } from '@trustwallet/wallet-core/dist/src/wallet-core';
|
|
4
|
+
import { KeysignLibType } from '../../mpcLib.js';
|
|
5
|
+
export type BuildLimitSwapKeysignPayloadInput = {
|
|
6
|
+
fromCoin: AccountCoin;
|
|
7
|
+
toCoin: AccountCoin;
|
|
8
|
+
/** Source amount in the coin's native smallest units. */
|
|
9
|
+
amount: bigint;
|
|
10
|
+
/** The `=<` memo from `buildLimitSwapMemo`. */
|
|
11
|
+
memo: string;
|
|
12
|
+
vaultId: string;
|
|
13
|
+
localPartyId: string;
|
|
14
|
+
fromPublicKey: PublicKey;
|
|
15
|
+
toPublicKey: PublicKey;
|
|
16
|
+
libType: KeysignLibType;
|
|
17
|
+
walletCore: WalletCore;
|
|
18
|
+
/**
|
|
19
|
+
* Optional cross-check of the caller's own "you receive" figure, in
|
|
20
|
+
* THORChain's 1e8 fixed point — the same scale the memo's LIM uses, and what
|
|
21
|
+
* `getNativeSwapDecimals` formats a THORChain swap's output with.
|
|
22
|
+
*
|
|
23
|
+
* Not used to build the payload: the displayed minimum is always taken from
|
|
24
|
+
* the memo's LIM, so it cannot disagree with the order being signed. Supplying
|
|
25
|
+
* it asserts the caller's display math agrees with the memo, which catches a
|
|
26
|
+
* caller that rescaled to the target coin's own decimals — the LIM would still
|
|
27
|
+
* sign correctly while the co-signer saw a wrong figure.
|
|
28
|
+
*/
|
|
29
|
+
expectedToAmount?: bigint;
|
|
30
|
+
/** Epoch milliseconds; parameterised so the router expiry is deterministic under test. */
|
|
31
|
+
now?: number;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Build the `KeysignPayload` for a THORChain limit order.
|
|
35
|
+
*
|
|
36
|
+
* The limit-ness always lives in the memo (`=<` vs the market `=>`); how that
|
|
37
|
+
* memo reaches the chain depends on the source asset:
|
|
38
|
+
*
|
|
39
|
+
* - **Native RUNE** — `MsgDeposit` on THORChain itself. No inbound vault and no
|
|
40
|
+
* real destination, so `toAddress` carries the signer's own address as a
|
|
41
|
+
* placeholder (the Cosmos signer keys off `isDeposit`, not `toAddress`).
|
|
42
|
+
* - **Native gas asset** (BTC/ETH/AVAX/…) — a plain transfer to the Asgard
|
|
43
|
+
* inbound vault with the memo in tx `data` / `OP_RETURN`. No swap payload.
|
|
44
|
+
* - **ERC20** — the router's `depositWithExpiry(vault, asset, amount, memo,
|
|
45
|
+
* expiry)` call, which needs `approve(router, amount)` first. Both ride one
|
|
46
|
+
* ceremony, mirroring the market ERC20 THORChain swap. A token source signed
|
|
47
|
+
* *without* a swap payload would fall through to a plain ERC20 transfer,
|
|
48
|
+
* dropping the memo and stranding the tokens on the router — so it must carry
|
|
49
|
+
* one.
|
|
50
|
+
*
|
|
51
|
+
* The swap payload is deliberately NOT attached to the first two branches, even
|
|
52
|
+
* though it would give co-signers the market path's swap review for free
|
|
53
|
+
* (sdk#1611). It is not display metadata: every signing-input resolver re-routes
|
|
54
|
+
* on its presence — UTXO takes both amount and destination from it, EVM and Tron
|
|
55
|
+
* take the destination from `vaultAddress`, and the Cosmos resolver drops the
|
|
56
|
+
* tx-body memo (`txMemo: swapPayload ? '' : memo`). Attaching one would change
|
|
57
|
+
* signed bytes on a working path to improve a display, and for RUNE it would
|
|
58
|
+
* additionally make `assertNativeSwapReadyForBroadcast` resolve a `THOR` inbound
|
|
59
|
+
* row that THORChain's own inbound list does not contain, failing the broadcast
|
|
60
|
+
* guard outright. Joining devices get the order terms from
|
|
61
|
+
* `getKeysignLimitSwapOrder` instead, which reads the memo that every branch
|
|
62
|
+
* already carries — and which, being the string THORChain executes, cannot
|
|
63
|
+
* disagree with what is signed.
|
|
64
|
+
*
|
|
65
|
+
* Fund-safety gates, all fail-closed:
|
|
66
|
+
* - The `EnableAdvSwapQueue` mimir is re-checked here, at sign time. Placement
|
|
67
|
+
* was already gated on it, but it can flip while the user sits on Verify, and
|
|
68
|
+
* a `=<` order on a network with the queue disabled can execute as an
|
|
69
|
+
* unprotected market swap.
|
|
70
|
+
* - The memo must actually be a limit memo.
|
|
71
|
+
* - RUNE deposits are blocked on THORChain's global trading pause (they bypass
|
|
72
|
+
* the per-chain inbound halt filter entirely), including when the inbound list
|
|
73
|
+
* is unverifiable — and on a halted destination chain: with no swap payload
|
|
74
|
+
* attached, the broadcast guard's destination-leg re-check never runs for
|
|
75
|
+
* them, so sign time is their only destination gate.
|
|
76
|
+
* - External sources must resolve a live, non-halted, non-paused inbound row,
|
|
77
|
+
* and the destination is taken from that same live view rather than a cache.
|
|
78
|
+
*
|
|
79
|
+
* Gas: unlike iOS, no EVM gas-limit override is applied. iOS pins a native-EVM
|
|
80
|
+
* limit deposit to 120000 to match its own market path; here both paths put the
|
|
81
|
+
* memo on `keysignPayload.memo` and neither sets a general swap payload, so both
|
|
82
|
+
* already floor at `deriveEvmGasLimit`'s 600000 data-tx limit. Forcing 120000
|
|
83
|
+
* would make the limit path diverge from the market path and risk under-gassing.
|
|
84
|
+
*/
|
|
85
|
+
export declare const buildLimitSwapKeysignPayload: ({ fromCoin, toCoin, amount, memo, vaultId, localPartyId, fromPublicKey, toPublicKey, libType, walletCore, expectedToAmount, now, }: BuildLimitSwapKeysignPayloadInput) => Promise<import("../../types/vultisig/keysign/v1/keysign_message_pb.js").KeysignPayload>;
|
|
86
|
+
//# sourceMappingURL=buildLimitSwapKeysignPayload.d.ts.map
|