@vultisig/core-mpc 1.12.0 → 1.13.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.
Files changed (74) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/dist/chains/cosmos/qbtc/QBTCHelper.js +11 -0
  3. package/dist/chains/cosmos/qbtc/QBTCHelper.js.map +1 -1
  4. package/dist/chains/cosmos/qbtc/QBTCTx.d.ts +1 -1
  5. package/dist/chains/cosmos/qbtc/QBTCTx.d.ts.map +1 -1
  6. package/dist/chains/cosmos/qbtc/QBTCTx.js +8 -2
  7. package/dist/chains/cosmos/qbtc/QBTCTx.js.map +1 -1
  8. package/dist/keysign/chainSpecific/resolvers/cosmos/index.d.ts.map +1 -1
  9. package/dist/keysign/chainSpecific/resolvers/cosmos/index.js +6 -4
  10. package/dist/keysign/chainSpecific/resolvers/cosmos/index.js.map +1 -1
  11. package/dist/keysign/chainSpecific/resolvers/maya.js +2 -2
  12. package/dist/keysign/chainSpecific/resolvers/maya.js.map +1 -1
  13. package/dist/keysign/chainSpecific/resolvers/sui/index.d.ts.map +1 -1
  14. package/dist/keysign/chainSpecific/resolvers/sui/index.js +51 -6
  15. package/dist/keysign/chainSpecific/resolvers/sui/index.js.map +1 -1
  16. package/dist/keysign/chainSpecific/resolvers/thor.js +2 -2
  17. package/dist/keysign/chainSpecific/resolvers/thor.js.map +1 -1
  18. package/dist/keysign/signingInputs/index.d.ts.map +1 -1
  19. package/dist/keysign/signingInputs/index.js +12 -0
  20. package/dist/keysign/signingInputs/index.js.map +1 -1
  21. package/dist/keysign/signingInputs/resolvers/cardano.d.ts.map +1 -1
  22. package/dist/keysign/signingInputs/resolvers/cardano.js +17 -2
  23. package/dist/keysign/signingInputs/resolvers/cardano.js.map +1 -1
  24. package/dist/keysign/signingInputs/resolvers/cosmos/index.d.ts.map +1 -1
  25. package/dist/keysign/signingInputs/resolvers/cosmos/index.js +6 -2
  26. package/dist/keysign/signingInputs/resolvers/cosmos/index.js.map +1 -1
  27. package/dist/keysign/signingInputs/resolvers/evm/index.d.ts.map +1 -1
  28. package/dist/keysign/signingInputs/resolvers/evm/index.js +37 -0
  29. package/dist/keysign/signingInputs/resolvers/evm/index.js.map +1 -1
  30. package/dist/keysign/signingInputs/resolvers/solana/index.d.ts.map +1 -1
  31. package/dist/keysign/signingInputs/resolvers/solana/index.js +43 -14
  32. package/dist/keysign/signingInputs/resolvers/solana/index.js.map +1 -1
  33. package/dist/keysign/signingInputs/resolvers/solana/rawTx.d.ts +52 -0
  34. package/dist/keysign/signingInputs/resolvers/solana/rawTx.d.ts.map +1 -0
  35. package/dist/keysign/signingInputs/resolvers/solana/rawTx.js +84 -0
  36. package/dist/keysign/signingInputs/resolvers/solana/rawTx.js.map +1 -0
  37. package/dist/keysign/signingInputs/resolvers/sui.d.ts.map +1 -1
  38. package/dist/keysign/signingInputs/resolvers/sui.js +13 -6
  39. package/dist/keysign/signingInputs/resolvers/sui.js.map +1 -1
  40. package/dist/keysign/signingInputs/resolvers/ton/jetton.d.ts.map +1 -1
  41. package/dist/keysign/signingInputs/resolvers/ton/jetton.js +4 -6
  42. package/dist/keysign/signingInputs/resolvers/ton/jetton.js.map +1 -1
  43. package/dist/keysign/signingInputs/resolvers/ton/native.d.ts +2 -0
  44. package/dist/keysign/signingInputs/resolvers/ton/native.d.ts.map +1 -1
  45. package/dist/keysign/signingInputs/resolvers/ton/native.js +25 -4
  46. package/dist/keysign/signingInputs/resolvers/ton/native.js.map +1 -1
  47. package/dist/keysign/suiCoinSelection.d.ts +20 -0
  48. package/dist/keysign/suiCoinSelection.d.ts.map +1 -0
  49. package/dist/keysign/suiCoinSelection.js +88 -0
  50. package/dist/keysign/suiCoinSelection.js.map +1 -0
  51. package/dist/keysign/swap/assertNativeSwapReadyForBroadcast.d.ts +26 -0
  52. package/dist/keysign/swap/assertNativeSwapReadyForBroadcast.d.ts.map +1 -0
  53. package/dist/keysign/swap/assertNativeSwapReadyForBroadcast.js +96 -0
  54. package/dist/keysign/swap/assertNativeSwapReadyForBroadcast.js.map +1 -0
  55. package/dist/keysign/swap/build.d.ts.map +1 -1
  56. package/dist/keysign/swap/build.js +5 -1
  57. package/dist/keysign/swap/build.js.map +1 -1
  58. package/dist/keysign/swap/buildLimitSwapKeysignPayload.d.ts +70 -0
  59. package/dist/keysign/swap/buildLimitSwapKeysignPayload.d.ts.map +1 -0
  60. package/dist/keysign/swap/buildLimitSwapKeysignPayload.js +160 -0
  61. package/dist/keysign/swap/buildLimitSwapKeysignPayload.js.map +1 -0
  62. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.d.ts.map +1 -1
  63. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js +12 -0
  64. package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js.map +1 -1
  65. package/dist/swap/utils/getSwapTrackingUrl.d.ts.map +1 -1
  66. package/dist/swap/utils/getSwapTrackingUrl.js +5 -60
  67. package/dist/swap/utils/getSwapTrackingUrl.js.map +1 -1
  68. package/dist/tx/compile/compileTx.d.ts.map +1 -1
  69. package/dist/tx/compile/compileTx.js +28 -0
  70. package/dist/tx/compile/compileTx.js.map +1 -1
  71. package/dist/tx/preSigningHashes/index.d.ts.map +1 -1
  72. package/dist/tx/preSigningHashes/index.js +10 -0
  73. package/dist/tx/preSigningHashes/index.js.map +1 -1
  74. package/package.json +23 -3
@@ -0,0 +1,160 @@
1
+ import { Buffer } from 'buffer';
2
+ import { create } from '@bufbuild/protobuf';
3
+ import { fromChainAmountDisplay } from '@vultisig/core-chain/amount/fromChainAmountExact';
4
+ import { Chain } from '@vultisig/core-chain/Chain';
5
+ import { isChainOfKind } from '@vultisig/core-chain/ChainKind';
6
+ import { getThorchainInboundAddress } from '@vultisig/core-chain/chains/cosmos/thor/getThorchainInboundAddress';
7
+ import { getErc20Allowance } from '@vultisig/core-chain/chains/evm/erc20/getErc20Allowance';
8
+ import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
9
+ import { areEqualCoins } from '@vultisig/core-chain/coin/Coin';
10
+ import { isFeeCoin } from '@vultisig/core-chain/coin/utils/isFeeCoin';
11
+ import { getAdvancedSwapQueueEnabled } from '@vultisig/core-chain/swap/native/limitSwapAvailability';
12
+ import { findLimitSwapInbound, isLimitSwapDestinationHalted, shouldBlockRuneDeposit, } from '@vultisig/core-chain/swap/native/limitSwapInbound';
13
+ import { assertLimitSwapMemo } from '@vultisig/core-chain/swap/native/limitSwapMemo';
14
+ import { getNativeSwapDecimals } from '@vultisig/core-chain/swap/native/utils/getNativeSwapDecimals';
15
+ import { getChainSpecific } from '../chainSpecific/index.js';
16
+ import { refineKeysignUtxo } from '../refine/utxo.js';
17
+ import { getKeysignUtxoInfo } from '../utxo/getKeysignUtxoInfo.js';
18
+ import { toCommCoin } from '../../types/utils/commCoin.js';
19
+ import { Erc20ApprovePayloadSchema } from '../../types/vultisig/keysign/v1/erc20_approve_payload_pb.js';
20
+ import { KeysignPayloadSchema } from '../../types/vultisig/keysign/v1/keysign_message_pb.js';
21
+ import { THORChainSwapPayloadSchema } from '../../types/vultisig/keysign/v1/thorchain_swap_payload_pb.js';
22
+ /**
23
+ * On-chain deadline for the router's `depositWithExpiry` call.
24
+ *
25
+ * This bounds when the *deposit transaction* may execute — a stale, long-
26
+ * unconfirmed tx cannot land later. It is NOT the resting order's lifetime: that
27
+ * is the memo's interval, up to 3 days, evaluated per block by THORChain. Once
28
+ * THORChain observes the deposit (a block or two, far inside this window) the
29
+ * order rests for its full memo TTL regardless of this value.
30
+ */
31
+ const routerExpiryMs = 15 * 60 * 1000;
32
+ /**
33
+ * Build the `KeysignPayload` for a THORChain limit order.
34
+ *
35
+ * The limit-ness always lives in the memo (`=<` vs the market `=>`); how that
36
+ * memo reaches the chain depends on the source asset:
37
+ *
38
+ * - **Native RUNE** — `MsgDeposit` on THORChain itself. No inbound vault and no
39
+ * real destination, so `toAddress` carries the signer's own address as a
40
+ * placeholder (the Cosmos signer keys off `isDeposit`, not `toAddress`).
41
+ * - **Native gas asset** (BTC/ETH/AVAX/…) — a plain transfer to the Asgard
42
+ * inbound vault with the memo in tx `data` / `OP_RETURN`. No swap payload.
43
+ * - **ERC20** — the router's `depositWithExpiry(vault, asset, amount, memo,
44
+ * expiry)` call, which needs `approve(router, amount)` first. Both ride one
45
+ * ceremony, mirroring the market ERC20 THORChain swap. A token source signed
46
+ * *without* a swap payload would fall through to a plain ERC20 transfer,
47
+ * dropping the memo and stranding the tokens on the router — so it must carry
48
+ * one.
49
+ *
50
+ * Fund-safety gates, all fail-closed:
51
+ * - The `EnableAdvSwapQueue` mimir is re-checked here, at sign time. Placement
52
+ * was already gated on it, but it can flip while the user sits on Verify, and
53
+ * a `=<` order on a network with the queue disabled can execute as an
54
+ * unprotected market swap.
55
+ * - The memo must actually be a limit memo.
56
+ * - RUNE deposits are blocked on THORChain's global trading pause (they bypass
57
+ * the per-chain inbound halt filter entirely), including when the inbound list
58
+ * is unverifiable — and on a halted destination chain: with no swap payload
59
+ * attached, the broadcast guard's destination-leg re-check never runs for
60
+ * them, so sign time is their only destination gate.
61
+ * - External sources must resolve a live, non-halted, non-paused inbound row,
62
+ * and the destination is taken from that same live view rather than a cache.
63
+ *
64
+ * Gas: unlike iOS, no EVM gas-limit override is applied. iOS pins a native-EVM
65
+ * limit deposit to 120000 to match its own market path; here both paths put the
66
+ * memo on `keysignPayload.memo` and neither sets a general swap payload, so both
67
+ * already floor at `deriveEvmGasLimit`'s 600000 data-tx limit. Forcing 120000
68
+ * would make the limit path diverge from the market path and risk under-gassing.
69
+ */
70
+ export const buildLimitSwapKeysignPayload = async ({ fromCoin, toCoin, amount, memo, vaultId, localPartyId, fromPublicKey, toPublicKey, libType, walletCore, expectedToAmount = 0n, now = Date.now(), }) => {
71
+ assertLimitSwapMemo(memo);
72
+ if (amount <= 0n) {
73
+ throw new Error('buildLimitSwapKeysignPayload: amount must be greater than 0');
74
+ }
75
+ if (!(await getAdvancedSwapQueueEnabled())) {
76
+ throw new Error("THORChain's advanced swap queue is disabled; a limit order placed now could execute as an unprotected market swap");
77
+ }
78
+ const fromCoinHexPublicKey = Buffer.from(fromPublicKey.data()).toString('hex');
79
+ const toCoinHexPublicKey = Buffer.from(toPublicKey.data()).toString('hex');
80
+ const isRuneDeposit = areEqualCoins(fromCoin, chainFeeCoin[Chain.THORChain]);
81
+ const inbounds = await getThorchainInboundAddress();
82
+ const { toAddress, swapPayload, approveSpender } = (() => {
83
+ if (isRuneDeposit) {
84
+ if (shouldBlockRuneDeposit(inbounds)) {
85
+ throw new Error('THORChain has globally paused trading (or its inbound list is unverifiable); refusing to sign a RUNE limit-order deposit');
86
+ }
87
+ if (isLimitSwapDestinationHalted({ inbounds, chain: toCoin.chain })) {
88
+ throw new Error(`THORChain has halted ${toCoin.chain} trading; refusing to sign a RUNE limit-order deposit whose outbound could not leave`);
89
+ }
90
+ return { toAddress: fromCoin.address };
91
+ }
92
+ const inbound = findLimitSwapInbound({ inbounds, chain: fromCoin.chain });
93
+ if (isFeeCoin(fromCoin)) {
94
+ return { toAddress: inbound.address };
95
+ }
96
+ const { router } = inbound;
97
+ if (!router) {
98
+ throw new Error(`buildLimitSwapKeysignPayload: THORChain's ${inbound.chain} inbound has no router contract, so a token deposit cannot be built`);
99
+ }
100
+ return {
101
+ toAddress: router,
102
+ approveSpender: router,
103
+ swapPayload: create(THORChainSwapPayloadSchema, {
104
+ fromAddress: fromCoin.address,
105
+ fromCoin: toCommCoin({ ...fromCoin, hexPublicKey: fromCoinHexPublicKey }),
106
+ toCoin: toCommCoin({ ...toCoin, hexPublicKey: toCoinHexPublicKey }),
107
+ vaultAddress: inbound.address,
108
+ routerAddress: router,
109
+ fromAmount: amount.toString(),
110
+ // Display-only, for the co-signer's "you receive" row. The order's real
111
+ // floor is the LIM inside the memo; these fields are never read here.
112
+ toAmountDecimal: fromChainAmountDisplay(expectedToAmount, getNativeSwapDecimals(toCoin)),
113
+ toAmountLimit: '0',
114
+ streamingInterval: '0',
115
+ streamingQuantity: '0',
116
+ expirationTime: BigInt(Math.floor((now + routerExpiryMs) / 1000)),
117
+ isAffiliate: true,
118
+ }),
119
+ };
120
+ })();
121
+ let keysignPayload = create(KeysignPayloadSchema, {
122
+ coin: toCommCoin({ ...fromCoin, hexPublicKey: fromCoinHexPublicKey }),
123
+ toAmount: amount.toString(),
124
+ vaultLocalPartyId: localPartyId,
125
+ vaultPublicKeyEcdsa: vaultId,
126
+ libType,
127
+ toAddress,
128
+ memo,
129
+ utxoInfo: await getKeysignUtxoInfo(fromCoin),
130
+ ...(swapPayload ? { swapPayload: { case: 'thorchainSwapPayload', value: swapPayload } } : {}),
131
+ });
132
+ keysignPayload.blockchainSpecific = await getChainSpecific({
133
+ keysignPayload,
134
+ walletCore,
135
+ isDeposit: isRuneDeposit,
136
+ });
137
+ if (approveSpender && isChainOfKind(fromCoin.chain, 'evm') && fromCoin.id) {
138
+ const allowance = await getErc20Allowance({
139
+ chain: fromCoin.chain,
140
+ id: fromCoin.id,
141
+ address: fromCoin.address,
142
+ spender: approveSpender,
143
+ });
144
+ if (allowance < amount) {
145
+ keysignPayload.erc20ApprovePayload = create(Erc20ApprovePayloadSchema, {
146
+ amount: amount.toString(),
147
+ spender: approveSpender,
148
+ });
149
+ }
150
+ }
151
+ if (isChainOfKind(fromCoin.chain, 'utxo')) {
152
+ keysignPayload = await refineKeysignUtxo({
153
+ keysignPayload,
154
+ walletCore,
155
+ publicKey: fromPublicKey,
156
+ });
157
+ }
158
+ return keysignPayload;
159
+ };
160
+ //# sourceMappingURL=buildLimitSwapKeysignPayload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildLimitSwapKeysignPayload.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/swap/buildLimitSwapKeysignPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AACzF,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oEAAoE,CAAA;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAE3F,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAA;AACpG,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAA;AAIpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAA;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAA;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,2DAA2D,CAAA;AAEtG;;;;;;;;GAQG;AACH,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AA6BrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAAE,EACjD,QAAQ,EACR,MAAM,EACN,MAAM,EACN,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,aAAa,EACb,WAAW,EACX,OAAO,EACP,UAAU,EACV,gBAAgB,GAAG,EAAE,EACrB,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GACkB,EAAE,EAAE;IACtC,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAEzB,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;IAChF,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,2BAA2B,EAAE,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAA;IACH,CAAC;IAED,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9E,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE1E,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;IAE5E,MAAM,QAAQ,GAAG,MAAM,0BAA0B,EAAE,CAAA;IAEnD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,CAAC,GAIlD,EAAE;QACF,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CACb,0HAA0H,CAC3H,CAAA;YACH,CAAC;YAED,IAAI,4BAA4B,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CACb,wBAAwB,MAAM,CAAC,KAAK,sFAAsF,CAC3H,CAAA;YACH,CAAC;YAED,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAA;QACxC,CAAC;QAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;QAEzE,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;QACvC,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,6CAA6C,OAAO,CAAC,KAAK,qEAAqE,CAChI,CAAA;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE,MAAM;YACtB,WAAW,EAAE,MAAM,CAAC,0BAA0B,EAAE;gBAC9C,WAAW,EAAE,QAAQ,CAAC,OAAO;gBAC7B,QAAQ,EAAE,UAAU,CAAC,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC;gBACzE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;gBACnE,YAAY,EAAE,OAAO,CAAC,OAAO;gBAC7B,aAAa,EAAE,MAAM;gBACrB,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE;gBAC7B,wEAAwE;gBACxE,sEAAsE;gBACtE,eAAe,EAAE,sBAAsB,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;gBACxF,aAAa,EAAE,GAAG;gBAClB,iBAAiB,EAAE,GAAG;gBACtB,iBAAiB,EAAE,GAAG;gBACtB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;gBACjE,WAAW,EAAE,IAAI;aAClB,CAAC;SACH,CAAA;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,IAAI,cAAc,GAAG,MAAM,CAAC,oBAAoB,EAAE;QAChD,IAAI,EAAE,UAAU,CAAC,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC;QACrE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;QAC3B,iBAAiB,EAAE,YAAY;QAC/B,mBAAmB,EAAE,OAAO;QAC5B,OAAO;QACP,SAAS;QACT,IAAI;QACJ,QAAQ,EAAE,MAAM,kBAAkB,CAAC,QAAQ,CAAC;QAC5C,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,sBAA+B,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvG,CAAC,CAAA;IAEF,cAAc,CAAC,kBAAkB,GAAG,MAAM,gBAAgB,CAAC;QACzD,cAAc;QACd,UAAU;QACV,SAAS,EAAE,aAAa;KACzB,CAAC,CAAA;IAEF,IAAI,cAAc,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAC1E,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC;YACxC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,cAAc;SACxB,CAAC,CAAA;QAEF,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC;YACvB,cAAc,CAAC,mBAAmB,GAAG,MAAM,CAAC,yBAAyB,EAAE;gBACrE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;gBACzB,OAAO,EAAE,cAAc;aACxB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAC1C,cAAc,GAAG,MAAM,iBAAiB,CAAC;YACvC,cAAc;YACd,UAAU;YACV,SAAS,EAAE,aAAa;SACzB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getCompiledTxsForBlockaidInput.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAMrD,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAA;AAIzF,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAU,yBAAyB,KAAK,2CAuElF,CAAA"}
1
+ {"version":3,"file":"getCompiledTxsForBlockaidInput.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.ts"],"names":[],"mappings":"AAMA,OAAO,EAAM,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAQzD,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAA;AAIzF,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAU,yBAAyB,KAAK,2CAmFlF,CAAA"}
@@ -4,7 +4,10 @@ import { getCoinType } from '@vultisig/core-chain/coin/coinType';
4
4
  import { signatureFormats } from '@vultisig/core-chain/signing/SignatureFormat';
5
5
  import { getTwPublicKeyType } from '@vultisig/core-chain/publicKey/tw/getTwPublicKeyType';
6
6
  import { match } from '@vultisig/lib-utils/match';
7
+ import { TW } from '@trustwallet/wallet-core';
8
+ import base58 from 'bs58';
7
9
  import { getEncodedSigningInputs } from '../../../../keysign/signingInputs/index.js';
10
+ import { spliceSolanaSignature } from '../../../../keysign/signingInputs/resolvers/solana/rawTx.js';
8
11
  import { getKeysignTwPublicKey } from '../../../../keysign/tw/getKeysignTwPublicKey.js';
9
12
  import { getKeysignChain } from '../../../../keysign/utils/getKeysignChain.js';
10
13
  import { compileSignBitcoinTx } from '../../../../tx/compile/compileSignBitcoinTx.js';
@@ -43,6 +46,15 @@ export const getCompiledTxsForBlockaidInput = async ({ payload, walletCore }) =>
43
46
  publicKey,
44
47
  });
45
48
  return inputs.map(txInputData => {
49
+ // dApp-supplied raw Solana transaction (sdk#1204): txInputData is the
50
+ // ORIGINAL serialized transaction, not a TW SigningInput — WalletCore's
51
+ // TransactionCompiler can't consume it. The zero-signature scan preview
52
+ // is the original bytes with a zeroed fee-payer signature slot, wrapped
53
+ // in the same SigningOutput shape (base58 encoded) the consumers decode.
54
+ if (chainKind === 'solana' && payload.signData.case === 'signSolana') {
55
+ const zeroSigned = spliceSolanaSignature(txInputData, new Uint8Array(64));
56
+ return TW.Solana.Proto.SigningOutput.encode(TW.Solana.Proto.SigningOutput.create({ encoded: base58.encode(zeroSigned) })).finish();
57
+ }
46
58
  const preHashes = getPreSigningHashes({
47
59
  walletCore,
48
60
  txInputData,
@@ -1 +1 @@
1
- {"version":3,"file":"getCompiledTxsForBlockaidInput.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getCompiledTxsForBlockaidInput.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getSwapTrackingUrl.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAOlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAE1E,KAAK,uBAAuB,GAAG;IAC7B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,KAAK,CAAA;CACnB,CAAA;AAuCD,eAAO,MAAM,kBAAkB,GAAI,sCAAsC,uBAAuB,KAAG,MA4DlG,CAAA"}
1
+ {"version":3,"file":"getSwapTrackingUrl.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAOlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAE1E,KAAK,uBAAuB,GAAG;IAC7B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,KAAK,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,sCAAsC,uBAAuB,KAAG,MAuClG,CAAA"}
@@ -1,44 +1,9 @@
1
1
  import { Chain } from '@vultisig/core-chain/Chain';
2
2
  import { getCowSwapExplorerOrderUrl } from '@vultisig/core-chain/swap/general/cowswap/getCowSwapExplorerOrderUrl';
3
+ import { getSwapKitTrackerUrl } from '@vultisig/core-chain/swap/general/swapkit/getSwapKitTrackerUrl';
3
4
  import { getBlockExplorerUrl } from '@vultisig/core-chain/utils/getBlockExplorerUrl';
4
5
  import { stripHexPrefix } from '@vultisig/lib-utils/hex/stripHexPrefix';
5
6
  import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
6
- // Chain identifiers accepted by https://track.swapkit.dev/?tx=<hash>&chainId=<id>
7
- // These differ from the SwapKit API chain-prefix map (ETH, ARB, ...) used in getSwapKitQuote.ts.
8
- // Source: https://docs.swapkit.dev/swapkit-api/providers-request-supported-chains-by-a-swap-provider#chain-ids-and-corresponding-names
9
- //
10
- // UTXO byte-order contract: track.swapkit.dev accepts UTXO tx hashes in their
11
- // natural txid representation (the byte-reversed, human-readable form that block
12
- // explorers display). Our signing flow produces hashes in that same display form,
13
- // so no additional byte reversal is needed here.
14
- // Typed as `Partial<Record<SwapKitSourceChain, string>>` (rather than
15
- // `satisfies Record<SwapKitSourceChain, string>`) so lookups below can safely
16
- // index by any `SwapKitSourceChain` and get `string | undefined` -- adding a
17
- // chain to SwapKitEnabledChains without updating this map is fine (see the
18
- // runtime fallback below), it just degrades to a block-explorer link.
19
- //
20
- // Sui + Cardano are intentionally OMITTED: `getSwapKitQuote` explicitly rejects
21
- // them as a SwapKit source (no tx-build path yet), so no swap can ever
22
- // complete and reach this tracker for either chain today. Add their real
23
- // track.swapkit.dev chain-id here once source-side signing lands.
24
- const swapKitTrackerChainId = {
25
- [Chain.Ethereum]: '1',
26
- [Chain.Arbitrum]: '42161',
27
- [Chain.Avalanche]: '43114',
28
- [Chain.Base]: '8453',
29
- [Chain.BSC]: '56',
30
- [Chain.Optimism]: '10',
31
- [Chain.Polygon]: '137',
32
- [Chain.Solana]: 'solana',
33
- [Chain.Bitcoin]: 'bitcoin',
34
- [Chain.BitcoinCash]: 'bitcoincash',
35
- [Chain.Dogecoin]: 'dogecoin',
36
- [Chain.Litecoin]: 'litecoin',
37
- [Chain.Ripple]: 'ripple',
38
- [Chain.Ton]: 'ton',
39
- [Chain.Tron]: '728126428',
40
- [Chain.Zcash]: 'zcash',
41
- };
42
7
  export const getSwapTrackingUrl = ({ swapPayload, txHash, sourceChain }) => {
43
8
  return matchRecordUnion(swapPayload, {
44
9
  native: ({ chain }) => {
@@ -64,30 +29,10 @@ export const getSwapTrackingUrl = ({ swapPayload, txHash, sourceChain }) => {
64
29
  return `https://scan.li.fi/tx/${txHash}`;
65
30
  }
66
31
  if (provider === 'swapkit') {
67
- const chainId = swapKitTrackerChainId[sourceChain];
68
- if (chainId) {
69
- // Guard: TON hashes are hex-encoded (see packages/core/chain/tx/hash/resolvers/ton.ts).
70
- // A `0x`-prefixed TON hash indicates a misconfigured upstream -- stripHexPrefix would
71
- // silently corrupt it by stripping the first two hex chars, producing a wrong hash.
72
- if (sourceChain === Chain.Ton && txHash.startsWith('0x')) {
73
- throw new Error(`TON tx hash must not have a 0x prefix (got: ${txHash.slice(0, 10)}...)`);
74
- }
75
- // `tx` remains the bare tracker identifier, while `hash` carries the
76
- // original source-chain tx hash that SwapKit uses to prefill the form.
77
- const searchParams = new URLSearchParams({
78
- tx: stripHexPrefix(txHash),
79
- chainId,
80
- hash: txHash,
81
- });
82
- return `https://track.swapkit.dev/?${searchParams.toString()}`;
83
- }
84
- // SwapKitSourceChain extended without updating swapKitTrackerChainId
85
- // -> silent fallback to block explorer would degrade tracking
86
- // without surfacing the gap. Warn so the drift shows up in logs +
87
- // greppable CI output.
88
- // TODO: wire to telemetry event 'swapkit_tracker_chain_missing' so
89
- // mapping drift is caught in production monitoring, not just CI logs.
90
- console.warn(`[getSwapTrackingUrl] SwapKit tracker chainId missing for ${sourceChain} — falling back to source-chain block explorer. Add a swapKitTrackerChainId entry.`);
32
+ const trackerUrl = getSwapKitTrackerUrl({ chain: sourceChain, txHash });
33
+ if (trackerUrl)
34
+ return trackerUrl;
35
+ console.warn(`[getSwapTrackingUrl] SwapKit tracker chainId missing for ${sourceChain} falling back to source-chain block explorer. Add a swapKitTrackerChainIds entry.`);
91
36
  }
92
37
  return getBlockExplorerUrl({
93
38
  chain: sourceChain,
@@ -1 +1 @@
1
- {"version":3,"file":"getSwapTrackingUrl.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getSwapTrackingUrl.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sEAAsE,CAAA;AACjH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gEAAgE,CAAA;AACrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAUvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAA2B,EAAU,EAAE;IAC1G,OAAO,gBAAgB,CAA6B,WAAW,EAAE;QAC/D,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACpB,IAAI,KAAK,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC9B,OAAO,0BAA0B,cAAc,CAAC,MAAM,CAAC,EAAE,CAAA;YAC3D,CAAC;YACD,OAAO,mBAAmB,CAAC;gBACzB,KAAK;gBACL,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM;aACd,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxB,2EAA2E;YAC3E,2EAA2E;YAC3E,2EAA2E;YAC3E,QAAQ;YACR,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,gEAAgE;gBAChE,OAAO,0BAA0B,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;YACxE,CAAC;YACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,OAAO,yBAAyB,MAAM,EAAE,CAAA;YAC1C,CAAC;YACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,oBAAoB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;gBACvE,IAAI,UAAU;oBAAE,OAAO,UAAU,CAAA;gBAEjC,OAAO,CAAC,IAAI,CACV,4DAA4D,WAAW,qFAAqF,CAC7J,CAAA;YACH,CAAC;YACD,OAAO,mBAAmB,CAAC;gBACzB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM;aACd,CAAC,CAAA;QACJ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"compileTx.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"AAEA,OAAO,EAAM,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAEzE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAWlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EAAE,cAAc,EAAwB,MAAM,oDAAoD,CAAA;AAMzG,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,EAAE,UAAU,CAAA;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC5C,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;IACtB,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,+FAOvB,KAAK,gCAsJP,CAAA"}
1
+ {"version":3,"file":"compileTx.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"AAEA,OAAO,EAAM,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAGzE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAWlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAGjE,OAAO,EAAE,cAAc,EAAwB,MAAM,oDAAoD,CAAA;AAMzG,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,EAAE,UAAU,CAAA;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC5C,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;IACtB,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,+FAOvB,KAAK,gCAuLP,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { Buffer } from 'buffer';
2
2
  import { fromBinary } from '@bufbuild/protobuf';
3
3
  import { TW } from '@trustwallet/wallet-core';
4
+ import base58 from 'bs58';
4
5
  import { Chain } from '@vultisig/core-chain/Chain';
5
6
  import { getChainKind } from '@vultisig/core-chain/ChainKind';
6
7
  import { assembleBittensorExtrinsic } from '@vultisig/core-chain/chains/bittensor/signing/buildExtrinsic';
@@ -12,6 +13,7 @@ import { buildCip20AuxData } from './cardano/buildCip20AuxData.js';
12
13
  import { buildSignedCardanoTx } from './cardano/buildSignedCardanoTx.js';
13
14
  import { getBlockchainSpecificValue } from '../../keysign/chainSpecific/KeysignChainSpecific.js';
14
15
  import { decodeBittensorTxInput } from '../../keysign/signingInputs/resolvers/bittensor.js';
16
+ import { spliceSolanaSignature } from '../../keysign/signingInputs/resolvers/solana/rawTx.js';
15
17
  import { KeysignPayloadSchema } from '../../types/vultisig/keysign/v1/keysign_message_pb.js';
16
18
  import { getPreSigningHashes } from '../preSigningHashes/index.js';
17
19
  import { generateSignature } from '../signature/generateSignature.js';
@@ -53,6 +55,32 @@ export const compileTx = ({ publicKey, txInputData, signatures: keysignSignature
53
55
  });
54
56
  const chainKind = getChainKind(chain);
55
57
  const signatureFormat = signatureFormats[chainKind];
58
+ // dApp-supplied raw Solana transaction (sdk#1204): txInputData is the
59
+ // ORIGINAL serialized transaction and hashes[0] is its wire-format message
60
+ // (see getPreSigningHashes). Splice the 64-byte signature into the original
61
+ // bytes at signer index 0 instead of letting TransactionCompiler assemble
62
+ // from a WalletCore re-encode that may not match what was signed
63
+ // (ios#4419 / android#5223 parity).
64
+ if (chainKind === 'solana' && keysignPayload?.signData.case === 'signSolana') {
65
+ const message = hashes[0];
66
+ const signature = generateSignature({
67
+ walletCore,
68
+ signature: keysignSignatures[Buffer.from(message).toString('hex')],
69
+ signatureFormat,
70
+ });
71
+ assertSignature({
72
+ publicKey,
73
+ message,
74
+ signature,
75
+ signatureFormat,
76
+ });
77
+ const signedTx = spliceSolanaSignature(txInputData, new Uint8Array(signature));
78
+ return TW.Solana.Proto.SigningOutput.encode(TW.Solana.Proto.SigningOutput.create({
79
+ // WalletCore's Solana SigningOutput.encoded is base58 — the broadcast
80
+ // resolver (`broadcastSolanaTx`) and Blockaid inputs decode it as such.
81
+ encoded: base58.encode(signedTx),
82
+ })).finish();
83
+ }
56
84
  if (chain === Chain.Bittensor) {
57
85
  const hash = hashes[0];
58
86
  const hashHex = Buffer.from(hash).toString('hex');
@@ -1 +1 @@
1
- {"version":3,"file":"compileTx.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,EAAE,EAAc,MAAM,0BAA0B,CAAA;AAGzD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8DAA8D,CAAA;AACzG,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAE5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAA;AAE7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAA;AACxF,OAAO,EAAkB,oBAAoB,EAAE,MAAM,oDAAoD,CAAA;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAW7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACxB,SAAS,EACT,WAAW,EACX,UAAU,EAAE,iBAAiB,EAC7B,KAAK,EACL,UAAU,EACV,cAAc,GACR,EAAE,EAAE;IACV,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEtF,6EAA6E;IAC7E,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACtE,CAAC;QACD,OAAO,oBAAoB,CAAC,WAAW,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAA;IACxE,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,UAAU,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAA;QACjE,MAAM,cAAc,GAAG,0BAA0B,CAAC,WAAW,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAA;QACnG,MAAM,SAAS,GAAG,mBAAmB,CAAC;YACpC,UAAU;YACV,WAAW;YACX,KAAK;SACN,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9F,MAAM,EAAE,UAAU,EAAE,GAAG,wBAAwB,CAAC;YAC9C,cAAc,EAAE,WAAW;YAC3B,cAAc;YACd,UAAU,EAAE,cAAc;SAC3B,CAAC,CAAA;QACF,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;IAC5G,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,0BAA0B,CAAC,CAAA;IAC/E,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,UAAU;QACV,WAAW;QACX,KAAK;QACL,cAAc;KACf,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,eAAe,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAEnD,IAAI,KAAK,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAEjD,MAAM,GAAG,GAAG,iBAAiB,CAAC;YAC5B,UAAU;YACV,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC;YACrC,eAAe;SAChB,CAAC,CAAA;QAEF,eAAe,CAAC;YACd,SAAS;YACT,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,GAAG;YACd,eAAe;SAChB,CAAC,CAAA;QAEF,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAA;QACrE,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;QAErD,MAAM,SAAS,GAAG,0BAA0B,CAAC,YAAY,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;QAEtG,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAC3C,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;YACrC,OAAO,EAAE,SAAS;SACnB,CAAC,CACH,CAAC,MAAM,EAAE,CAAA;IACZ,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5B,0EAA0E;QAC1E,iEAAiE;QACjE,0EAA0E;QAC1E,mDAAmD;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAEjD,MAAM,GAAG,GAAG,iBAAiB,CAAC;YAC5B,UAAU;YACV,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC;YACrC,eAAe;SAChB,CAAC,CAAA;QAEF,eAAe,CAAC;YACd,SAAS;YACT,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,GAAG;YACd,eAAe;SAChB,CAAC,CAAA;QAEF,4EAA4E;QAC5E,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAC3D,UAAU,CAAC,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,CAAC,CAC/F,CAAA;QAED,MAAM,IAAI,GAAG,cAAc,EAAE,IAAI,CAAA;QACjC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAA;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAA;QAE1E,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACjE,MAAM,OAAO,GAAG,oBAAoB,CAAC;YACnC,UAAU;YACV,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC;YAC9B,WAAW;SACZ,CAAC,CAAA;QAEF,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAC1C,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;YACpC,OAAO;YACP,qEAAqE;YACrE,IAAI,EAAE,IAAI;SACX,CAAC,CACH,CAAC,MAAM,EAAE,CAAA;IACZ,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;IACpD,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;IAEjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACpB,MAAM,SAAS,GAAG,iBAAiB,CAAC;YAClC,UAAU;YACV,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/D,eAAe;SAChB,CAAC,CAAA;QAEF,eAAe,CAAC;YACd,SAAS;YACT,OAAO,EAAE,IAAI;YACb,SAAS;YACT,eAAe;SAChB,CAAC,CAAA;QAEF,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAE5B,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;QAClC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,KAAK;QACL,UAAU;KACX,CAAC,CAAA;IAEF,OAAO,UAAU,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;AAC/G,CAAC,CAAA"}
1
+ {"version":3,"file":"compileTx.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/compile/compileTx.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/preSigningHashes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAQlD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAGrD,OAAO,EAAE,cAAc,EAAwB,MAAM,oDAAoD,CAAA;AAGzG,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,UAAU,CAAA;IACvB,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC,CAAA;AAKD,eAAO,MAAM,mBAAmB,GAAI,oDAAoD,KAAK,kCAqD5F,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/preSigningHashes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAUlD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAGrD,OAAO,EAAE,cAAc,EAAwB,MAAM,oDAAoD,CAAA;AAGzG,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,UAAU,CAAA;IACvB,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC,CAAA;AAKD,eAAO,MAAM,mBAAmB,GAAI,oDAAoD,KAAK,kCA8D5F,CAAA"}
@@ -1,7 +1,9 @@
1
1
  import { Chain } from '@vultisig/core-chain/Chain';
2
+ import { getChainKind } from '@vultisig/core-chain/ChainKind';
2
3
  import { fromBinary } from '@bufbuild/protobuf';
3
4
  import { decodeBittensorTxInput } from '../../keysign/signingInputs/resolvers/bittensor.js';
4
5
  import { computePreSigningHashes } from '../../keysign/signingInputs/resolvers/bitcoin/sighash.js';
6
+ import { extractSolanaMessageBytes } from '../../keysign/signingInputs/resolvers/solana/rawTx.js';
5
7
  import { getQBTCPreSignedImageHash } from '../../chains/cosmos/qbtc/QBTCHelper.js';
6
8
  import { without } from '@vultisig/lib-utils/array/without';
7
9
  import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
@@ -29,6 +31,14 @@ export const getPreSigningHashes = ({ walletCore, txInputData, chain, keysignPay
29
31
  const toSign = payload.length > 256 ? blake2AsU8a(payload, 256) : payload;
30
32
  return [toSign];
31
33
  }
34
+ // dApp-supplied raw Solana transaction (sdk#1204): txInputData is the
35
+ // ORIGINAL serialized transaction (see getEncodedSigningInputs), not a TW
36
+ // SigningInput. The ed25519 pre-image is the wire-format message verbatim —
37
+ // strip the signature envelope and sign those exact bytes, never a
38
+ // WalletCore re-encode (ios#4419 / android#5223 parity).
39
+ if (getChainKind(chain) === 'solana' && keysignPayload?.signData.case === 'signSolana') {
40
+ return [extractSolanaMessageBytes(txInputData).message];
41
+ }
32
42
  const output = getPreSigningOutput({
33
43
  walletCore,
34
44
  txInputData,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/preSigningHashes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAA;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAA;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAA;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAkB,oBAAoB,EAAE,MAAM,oDAAoD,CAAA;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAS7D,MAAM,UAAU,GAAG,CAAC,MAAoB,EAAgB,EAAE,CACxD,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEpF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAS,EAAE,EAAE;IAC/F,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEtF,yEAAyE;IACzE,0EAA0E;IAC1E,+EAA+E;IAC/E,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,UAAU,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,UAAU,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAA;QACjE,MAAM,cAAc,GAAG,0BAA0B,CAAC,WAAW,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAA;QACnG,OAAO,yBAAyB,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAA;IACnF,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACzE,OAAO,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,UAAU;QACV,WAAW;QACX,KAAK;KACN,CAAC,CAAA;IAEF,IAAI,oBAAoB,IAAI,MAAM,IAAI,MAAM,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QACzE,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QACrE,MAAM,SAAS,GAAG,eAAe,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAC/D,OAAO,OAAO,CACZ,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EACpC,IAAI,EACJ,SAAS,CACV,CAAA;IACH,CAAC;IAED,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAAC;QAC/B,OAAO,OAAO,CACZ,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EACjD,IAAI,EACJ,SAAS,CACV,CAAA;IACH,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAEvB,IAAI,UAAU,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/tx/preSigningHashes/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vultisig/core-mpc",
3
- "version": "1.12.0",
3
+ "version": "1.13.0",
4
4
  "description": "MPC, keysign, and vault types shared across Vultisig clients",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -536,6 +536,11 @@
536
536
  "import": "./dist/keysign/signingInputs/resolvers/solana/index.js",
537
537
  "default": "./dist/keysign/signingInputs/resolvers/solana/index.js"
538
538
  },
539
+ "./keysign/signingInputs/resolvers/solana/rawTx": {
540
+ "types": "./dist/keysign/signingInputs/resolvers/solana/rawTx.d.ts",
541
+ "import": "./dist/keysign/signingInputs/resolvers/solana/rawTx.js",
542
+ "default": "./dist/keysign/signingInputs/resolvers/solana/rawTx.js"
543
+ },
539
544
  "./keysign/signingInputs/resolvers/solana/send": {
540
545
  "types": "./dist/keysign/signingInputs/resolvers/solana/send.d.ts",
541
546
  "import": "./dist/keysign/signingInputs/resolvers/solana/send.js",
@@ -571,11 +576,26 @@
571
576
  "import": "./dist/keysign/signingInputs/resolvers/utxo.js",
572
577
  "default": "./dist/keysign/signingInputs/resolvers/utxo.js"
573
578
  },
579
+ "./keysign/suiCoinSelection": {
580
+ "types": "./dist/keysign/suiCoinSelection.d.ts",
581
+ "import": "./dist/keysign/suiCoinSelection.js",
582
+ "default": "./dist/keysign/suiCoinSelection.js"
583
+ },
584
+ "./keysign/swap/assertNativeSwapReadyForBroadcast": {
585
+ "types": "./dist/keysign/swap/assertNativeSwapReadyForBroadcast.d.ts",
586
+ "import": "./dist/keysign/swap/assertNativeSwapReadyForBroadcast.js",
587
+ "default": "./dist/keysign/swap/assertNativeSwapReadyForBroadcast.js"
588
+ },
574
589
  "./keysign/swap/build": {
575
590
  "types": "./dist/keysign/swap/build.d.ts",
576
591
  "import": "./dist/keysign/swap/build.js",
577
592
  "default": "./dist/keysign/swap/build.js"
578
593
  },
594
+ "./keysign/swap/buildLimitSwapKeysignPayload": {
595
+ "types": "./dist/keysign/swap/buildLimitSwapKeysignPayload.d.ts",
596
+ "import": "./dist/keysign/swap/buildLimitSwapKeysignPayload.js",
597
+ "default": "./dist/keysign/swap/buildLimitSwapKeysignPayload.js"
598
+ },
579
599
  "./keysign/swap/cowswap/buildCowSwapApprovalSigningInput": {
580
600
  "types": "./dist/keysign/swap/cowswap/buildCowSwapApprovalSigningInput.d.ts",
581
601
  "import": "./dist/keysign/swap/cowswap/buildCowSwapApprovalSigningInput.js",
@@ -1050,11 +1070,11 @@
1050
1070
  "7z-wasm": "^1.2.0",
1051
1071
  "@bufbuild/protobuf": "^2.12.0",
1052
1072
  "@cosmjs/encoding": "^0.39.0",
1053
- "@mysten/sui": "^2.20.1",
1073
+ "@mysten/sui": "^2.20.3",
1054
1074
  "@noble/hashes": "^1.8.0",
1055
1075
  "@solana/web3.js": "^1.98.4",
1056
1076
  "@trustwallet/wallet-core": "^4.7.0",
1057
- "@vultisig/core-chain": "2.26.0",
1077
+ "@vultisig/core-chain": "2.28.0",
1058
1078
  "@vultisig/core-config": "0.9.1",
1059
1079
  "@vultisig/lib-dkls": "0.9.0",
1060
1080
  "@vultisig/lib-mldsa": "0.9.0",