@vultisig/core-mpc 1.7.3 → 1.8.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 (28) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/keysign/fee/resolvers/evm/getEvmFeeQuote.d.ts.map +1 -1
  3. package/dist/keysign/fee/resolvers/evm/getEvmFeeQuote.js +17 -12
  4. package/dist/keysign/fee/resolvers/evm/getEvmFeeQuote.js.map +1 -1
  5. package/dist/keysign/signingInputs/resolvers/evm/index.d.ts.map +1 -1
  6. package/dist/keysign/signingInputs/resolvers/evm/index.js +16 -1
  7. package/dist/keysign/signingInputs/resolvers/evm/index.js.map +1 -1
  8. package/dist/keysign/signingInputs/resolvers/utxo.d.ts.map +1 -1
  9. package/dist/keysign/signingInputs/resolvers/utxo.js +59 -3
  10. package/dist/keysign/signingInputs/resolvers/utxo.js.map +1 -1
  11. package/dist/keysign/utils/getIsGenericContractCall.d.ts +15 -0
  12. package/dist/keysign/utils/getIsGenericContractCall.d.ts.map +1 -0
  13. package/dist/keysign/utils/getIsGenericContractCall.js +27 -0
  14. package/dist/keysign/utils/getIsGenericContractCall.js.map +1 -0
  15. package/dist/keysign/vultStaking/build.d.ts +43 -0
  16. package/dist/keysign/vultStaking/build.d.ts.map +1 -0
  17. package/dist/keysign/vultStaking/build.js +125 -0
  18. package/dist/keysign/vultStaking/build.js.map +1 -0
  19. package/dist/security/blockaid/tx/simulation/input/resolvers/evm.d.ts.map +1 -1
  20. package/dist/security/blockaid/tx/simulation/input/resolvers/evm.js +2 -1
  21. package/dist/security/blockaid/tx/simulation/input/resolvers/evm.js.map +1 -1
  22. package/dist/security/blockaid/tx/validation/input/resolvers/evm.d.ts.map +1 -1
  23. package/dist/security/blockaid/tx/validation/input/resolvers/evm.js +2 -1
  24. package/dist/security/blockaid/tx/validation/input/resolvers/evm.js.map +1 -1
  25. package/dist/swap/utils/getSwapTrackingUrl.d.ts.map +1 -1
  26. package/dist/swap/utils/getSwapTrackingUrl.js +8 -4
  27. package/dist/swap/utils/getSwapTrackingUrl.js.map +1 -1
  28. package/package.json +12 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # @vultisig/core-mpc
2
2
 
3
+ ## 1.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#767](https://github.com/vultisig/vultisig-sdk/pull/767) [`ad14563`](https://github.com/vultisig/vultisig-sdk/commit/ad14563fb14358ff3efa96ed32e2304b8fc8d0ae) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - feat(keysign): VULT staking (sVULT) keysign builders + generic EVM contract-call routing
8
+
9
+ Adds `keysign/vultStaking/build` (depositFor with an optional VULT→sVULT approval
10
+ prepended, requestUnstake, claim, cancelUnstake) for native VULT staking on
11
+ Ethereum.
12
+
13
+ Stake reuses the swap-with-approval flow: the payload coin is the VULT token so
14
+ the EVM signing-input resolver can attach an `erc20ApprovePayload`, and the
15
+ `depositFor` calldata is emitted as a generic contract call. The routing
16
+ decision (token coin + zero `toAmount` + `0x` memo + no swap) is extracted into a
17
+ shared `getIsGenericContractCall` predicate now consumed by the signing-input,
18
+ fee-quote, and Blockaid simulation/validation resolvers so they all target the
19
+ same on-chain call (fixes gas being estimated against — and Blockaid scanning —
20
+ a synthetic ERC-20 transfer instead of the real `depositFor`). Patch-bumps
21
+ `@vultisig/sdk` to rebundle.
22
+
23
+ ### Patch Changes
24
+
25
+ - [#775](https://github.com/vultisig/vultisig-sdk/pull/775) [`fb6837b`](https://github.com/vultisig/vultisig-sdk/commit/fb6837b263c3c870f1a79e9c6011f27a1cc58f5d) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Add the original transaction hash to SwapKit tracking URLs so tracker links prefill correctly.
26
+
27
+ - [#773](https://github.com/vultisig/vultisig-sdk/pull/773) [`ba1372e`](https://github.com/vultisig/vultisig-sdk/commit/ba1372e6cc76243e6c44114d706ae0b00c524e47) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - Raise Zcash memo-send fees to the ZIP-317 conventional fee at plan time. WalletCore's `zip_0317` planner flat-sizes OP_RETURN and ignores `byteFee`, so memo sends planned one logical action short and were rejected by the network; the signing-input resolver now re-plans with `zip_0317` off and bumps `byteFee` until the fee clears.
28
+
29
+ - Updated dependencies [[`ba1372e`](https://github.com/vultisig/vultisig-sdk/commit/ba1372e6cc76243e6c44114d706ae0b00c524e47)]:
30
+ - @vultisig/core-chain@2.17.4
31
+
32
+ ## 1.7.4
33
+
34
+ ### Patch Changes
35
+
36
+ - Updated dependencies [[`e988851`](https://github.com/vultisig/vultisig-sdk/commit/e98885119f18078a0dde1f1ebdbca20f842c9325), [`35c48e3`](https://github.com/vultisig/vultisig-sdk/commit/35c48e3eac615d62697c9052f43a9dab918b94dd)]:
37
+ - @vultisig/core-chain@2.17.3
38
+
3
39
  ## 1.7.3
4
40
 
5
41
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"getEvmFeeQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/fee/resolvers/evm/getEvmFeeQuote.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAA;AAKlF,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAA;AAgBhG,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,KAAK,mBAAmB,GAAG;IACzB,cAAc,EAAE,cAAc,CAAA;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;IAChC,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,iFAKlC,mBAAmB,KAAG,OAAO,CAAC,WAAW,CA8I3C,CAAA"}
1
+ {"version":3,"file":"getEvmFeeQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/fee/resolvers/evm/getEvmFeeQuote.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAA;AAMlF,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAA;AAgBhG,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,KAAK,mBAAmB,GAAG;IACzB,cAAc,EAAE,cAAc,CAAA;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;IAChC,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,iFAKlC,mBAAmB,KAAG,OAAO,CAAC,WAAW,CAkJ3C,CAAA"}
@@ -4,6 +4,7 @@ import { getEvmClient } from '@vultisig/core-chain/chains/evm/client';
4
4
  import { getEvmBaseFee } from '@vultisig/core-chain/tx/fee/evm/baseFee';
5
5
  import { getEvmMaxPriorityFeePerGas } from '@vultisig/core-chain/tx/fee/evm/maxPriorityFeePerGas';
6
6
  import { getKeysignSwapPayload } from '@vultisig/core-mpc/keysign/swap/getKeysignSwapPayload';
7
+ import { getIsGenericContractCall } from '@vultisig/core-mpc/keysign/utils/getIsGenericContractCall';
7
8
  import { getKeysignAmount } from '@vultisig/core-mpc/keysign/utils/getKeysignAmount';
8
9
  import { getKeysignCoin } from '@vultisig/core-mpc/keysign/utils/getKeysignCoin';
9
10
  import { without } from '@vultisig/lib-utils/array/without';
@@ -56,22 +57,26 @@ export const getEvmFeeQuote = async ({ keysignPayload, feeSettings, thirdPartyGa
56
57
  if (!receiver) {
57
58
  return null;
58
59
  }
59
- if (coin.id) {
60
- const transferData = encodeFunctionData({
61
- abi: erc20Abi,
62
- functionName: 'transfer',
63
- args: [receiver, amount],
64
- });
60
+ // Native send, or a generic contract call (e.g. staking depositFor): estimate
61
+ // against `memo` calldata sent to `toAddress`. For a generic call `amount` is
62
+ // 0 (zero toAmount), so this also covers its zero value — and crucially avoids
63
+ // estimating a synthetic ERC-20 transfer to coin.id.
64
+ if (getIsGenericContractCall(keysignPayload) || !coin.id) {
65
65
  return {
66
- to: coin.id,
67
- value: 0n,
68
- data: transferData,
66
+ to: receiver,
67
+ value: amount,
68
+ data,
69
69
  };
70
70
  }
71
+ const transferData = encodeFunctionData({
72
+ abi: erc20Abi,
73
+ functionName: 'transfer',
74
+ args: [receiver, amount],
75
+ });
71
76
  return {
72
- to: receiver,
73
- value: amount,
74
- data,
77
+ to: coin.id,
78
+ value: 0n,
79
+ data: transferData,
75
80
  };
76
81
  };
77
82
  const getFeeData = async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"getEvmFeeQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/fee/resolvers/evm/getEvmFeeQuote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getEvmFeeQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/fee/resolvers/evm/getEvmFeeQuote.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/evm/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAKtD,eAAO,MAAM,mBAAmB,EAAE,qBAAqB,CAAC,KAAK,CAwJ5D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/evm/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAKtD,eAAO,MAAM,mBAAmB,EAAE,qBAAqB,CAAC,KAAK,CAwK5D,CAAA"}
@@ -15,6 +15,7 @@ import { KeysignPayloadSchema } from '../../../../types/vultisig/keysign/v1/keys
15
15
  import { getBlockchainSpecificValue } from '../../../chainSpecific/KeysignChainSpecific.js';
16
16
  import { getKeysignSwapPayload } from '../../../swap/getKeysignSwapPayload.js';
17
17
  import { toTwAddress } from '../../../tw/toTwAddress.js';
18
+ import { getIsGenericContractCall } from '../../../utils/getIsGenericContractCall.js';
18
19
  import { getKeysignChain } from '../../../utils/getKeysignChain.js';
19
20
  import { getErc20ApproveSigningInput } from './erc20.js';
20
21
  const memoToTxData = (memo) => (memo.startsWith('0x') ? toEvmTxData(memo) : Buffer.from(memo, 'utf8'));
@@ -36,6 +37,12 @@ export const getEvmSigningInputs = async ({ keysignPayload, walletCore }) => {
36
37
  const evmSpecific = getBlockchainSpecificValue(keysignPayload.blockchainSpecific, 'ethereumSpecific');
37
38
  const { nonce } = evmSpecific;
38
39
  const swapPayload = getKeysignSwapPayload(keysignPayload);
40
+ // A token coin carrying raw `0x` calldata with a zero `toAmount` (and no swap)
41
+ // is a generic contract call (e.g. staking depositFor, whose token amount lives
42
+ // in the calldata) rather than a plain ERC-20 transfer: send the calldata to
43
+ // `toAddress` instead of building a transfer to `coin.contractAddress`. Shared
44
+ // with the fee-quote and Blockaid resolvers so they target the same call.
45
+ const isGenericContractCall = getIsGenericContractCall(keysignPayload);
39
46
  const getToAddress = () => {
40
47
  if (swapPayload) {
41
48
  return matchRecordUnion(swapPayload, {
@@ -43,7 +50,7 @@ export const getEvmSigningInputs = async ({ keysignPayload, walletCore }) => {
43
50
  general: ({ quote }) => shouldBePresent(quote?.tx?.to),
44
51
  });
45
52
  }
46
- if (coin.isNativeToken) {
53
+ if (coin.isNativeToken || isGenericContractCall) {
47
54
  return keysignPayload.toAddress;
48
55
  }
49
56
  return coin.contractAddress;
@@ -104,6 +111,14 @@ export const getEvmSigningInputs = async ({ keysignPayload, walletCore }) => {
104
111
  }),
105
112
  };
106
113
  }
114
+ if (isGenericContractCall) {
115
+ return {
116
+ contractGeneric: TW.Ethereum.Proto.Transaction.ContractGeneric.create({
117
+ amount,
118
+ data: toEvmTxData(shouldBePresent(keysignPayload.memo)),
119
+ }),
120
+ };
121
+ }
107
122
  return {
108
123
  erc20Transfer: TW.Ethereum.Proto.Transaction.ERC20Transfer.create({
109
124
  amount,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/evm/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/evm/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/utxo.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,eAAO,MAAM,oBAAoB,EAAE,qBAAqB,CAAC,MAAM,CA4F9D,CAAA"}
1
+ {"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/utxo.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,eAAO,MAAM,oBAAoB,EAAE,qBAAqB,CAAC,MAAM,CAoG9D,CAAA"}
@@ -1,10 +1,12 @@
1
1
  import { Buffer } from 'buffer';
2
2
  import { UtxoChain } from '@vultisig/core-chain/Chain';
3
+ import { ceilDiv, getZcashConventionalFee, getZcashTransparentOutputSizes, } from '@vultisig/core-chain/chains/utxo/fee/zip317';
3
4
  import { minUtxo } from '@vultisig/core-chain/chains/utxo/minUtxo';
4
5
  import { utxoChainScriptType } from '@vultisig/core-chain/chains/utxo/tx/UtxoScriptType';
5
6
  import { getZcashBranchIdHex } from '@vultisig/core-chain/chains/utxo/zcashBranchId';
6
7
  import { getCoinType } from '@vultisig/core-chain/coin/coinType';
7
8
  import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
9
+ import { bigIntMax } from '@vultisig/lib-utils/bigint/bigIntMax';
8
10
  import { match } from '@vultisig/lib-utils/match';
9
11
  import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
10
12
  import { getRecordUnionValue } from '@vultisig/lib-utils/record/union/getRecordUnionValue';
@@ -79,12 +81,66 @@ export const getUtxoSigningInputs = async ({ keysignPayload, walletCore }) => {
79
81
  const encoder = new TextEncoder();
80
82
  input.outputOpReturn = encoder.encode(keysignPayload.memo);
81
83
  }
82
- const inputData = TW.Bitcoin.Proto.SigningInput.encode(input).finish();
83
- const plan = walletCore.AnySigner.plan(inputData, coinType);
84
- input.plan = TW.Bitcoin.Proto.TransactionPlan.decode(plan);
84
+ const planInput = (signingInput) => TW.Bitcoin.Proto.TransactionPlan.decode(walletCore.AnySigner.plan(TW.Bitcoin.Proto.SigningInput.encode(signingInput).finish(), coinType));
85
+ input.plan =
86
+ chain === UtxoChain.Zcash
87
+ ? planZcashConventionalFee({
88
+ input,
89
+ memo: keysignPayload.memo,
90
+ planInput,
91
+ })
92
+ : planInput(input);
85
93
  if (chain === UtxoChain.Zcash) {
86
94
  input.plan.branchId = Buffer.from(shouldBePresent(zcashBranchIdHex, 'Zcash branch id'), 'hex');
87
95
  }
88
96
  return [input];
89
97
  };
98
+ /** Max non-ZIP-317 re-plans before we give up raising the Zcash fee. */
99
+ const maxZcashFeeBumps = 5;
100
+ /**
101
+ * Produce a Zcash plan whose fee meets the ZIP-317 conventional fee.
102
+ *
103
+ * WalletCore's `zip_0317` planner sizes an OP_RETURN output as a flat ~34
104
+ * bytes and ignores `byteFee`, so memo sends plan exactly one logical action
105
+ * short (e.g. 15,000 zats where the network requires 20,000) with no way to
106
+ * raise the fee in that mode. When the `zip_0317` plan underpays the
107
+ * byte-accurate conventional fee, we re-plan with `zip_0317` off — where
108
+ * WalletCore honours `byteFee` — and bump `byteFee` until the fee clears.
109
+ * Plain (no-memo) sends already meet the fee and keep the `zip_0317` plan.
110
+ *
111
+ * An empty plan (no selected UTXOs) is returned untouched: it means the
112
+ * coin selection produced nothing yet (insufficient funds, or before
113
+ * `refineKeysignUtxo` flips `sendMaxAmount`), and that flow owns the outcome.
114
+ */
115
+ const planZcashConventionalFee = ({ input, memo, planInput, }) => {
116
+ const conventionalFee = (plan) => getZcashConventionalFee({
117
+ inputCount: plan.utxos.length,
118
+ outputSizes: getZcashTransparentOutputSizes({
119
+ change: BigInt(plan.change.toString()),
120
+ memo,
121
+ }),
122
+ });
123
+ // An empty plan has no shape to charge for; leave the fee flow to the caller.
124
+ const meetsConventionalFee = (plan) => plan.utxos.length === 0 || BigInt(plan.fee.toString()) >= conventionalFee(plan);
125
+ const zipPlan = planInput(input);
126
+ if (meetsConventionalFee(zipPlan)) {
127
+ return zipPlan;
128
+ }
129
+ input.zip_0317 = false;
130
+ let byteFee = 1n;
131
+ let plan = zipPlan;
132
+ for (let bump = 0; bump < maxZcashFeeBumps; bump++) {
133
+ input.byteFee = Long.fromString(byteFee.toString());
134
+ plan = planInput(input);
135
+ if (meetsConventionalFee(plan)) {
136
+ return plan;
137
+ }
138
+ // byteFee mode scales fee linearly with vsize; derive the byteFee that
139
+ // clears the conventional fee for this plan's (byteFee-independent) vsize.
140
+ const fee = BigInt(plan.fee.toString());
141
+ const plannerVsize = fee > 0n ? fee / byteFee : 1n;
142
+ byteFee = bigIntMax(ceilDiv({ value: conventionalFee(plan), divisor: plannerVsize }), byteFee + 1n);
143
+ }
144
+ throw new Error(`Failed to meet the Zcash minimum network fee (ZIP-317): planned ${plan.fee.toString()} zats, required ${conventionalFee(plan)}`);
145
+ };
90
146
  //# sourceMappingURL=utxo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/utxo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/utxo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { KeysignPayload } from '@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb';
2
+ /**
3
+ * True when a keysign payload is a generic EVM contract call carried as `0x`
4
+ * calldata in `memo` on a token coin — e.g. VULT staking `depositFor`.
5
+ *
6
+ * Matches: a non-native coin, `toAmount === '0'`, `0x` calldata in `memo`, and no
7
+ * swap payload. The zero-`toAmount` guard means this never matches a real ERC-20
8
+ * transfer (those always carry a non-zero amount).
9
+ *
10
+ * Shared by the EVM signing-input, fee-quote, and Blockaid simulation/validation
11
+ * resolvers so they all route to the same on-chain call (data -> `toAddress`)
12
+ * instead of a synthetic ERC-20 transfer to `coin.contractAddress`.
13
+ */
14
+ export declare const getIsGenericContractCall: (payload: KeysignPayload) => boolean;
15
+ //# sourceMappingURL=getIsGenericContractCall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIsGenericContractCall.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/utils/getIsGenericContractCall.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAA;AAEhG;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,GAAI,SAAS,cAAc,KAAG,OAgBlE,CAAA"}
@@ -0,0 +1,27 @@
1
+ import { getKeysignSwapPayload } from '@vultisig/core-mpc/keysign/swap/getKeysignSwapPayload';
2
+ /**
3
+ * True when a keysign payload is a generic EVM contract call carried as `0x`
4
+ * calldata in `memo` on a token coin — e.g. VULT staking `depositFor`.
5
+ *
6
+ * Matches: a non-native coin, `toAmount === '0'`, `0x` calldata in `memo`, and no
7
+ * swap payload. The zero-`toAmount` guard means this never matches a real ERC-20
8
+ * transfer (those always carry a non-zero amount).
9
+ *
10
+ * Shared by the EVM signing-input, fee-quote, and Blockaid simulation/validation
11
+ * resolvers so they all route to the same on-chain call (data -> `toAddress`)
12
+ * instead of a synthetic ERC-20 transfer to `coin.contractAddress`.
13
+ */
14
+ export const getIsGenericContractCall = (payload) => {
15
+ if (getKeysignSwapPayload(payload)) {
16
+ return false;
17
+ }
18
+ const coin = payload.coin;
19
+ if (!coin || coin.isNativeToken) {
20
+ return false;
21
+ }
22
+ if (payload.toAmount !== '0') {
23
+ return false;
24
+ }
25
+ return !!payload.memo && payload.memo.startsWith('0x');
26
+ };
27
+ //# sourceMappingURL=getIsGenericContractCall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIsGenericContractCall.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/utils/getIsGenericContractCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAA;AAG7F;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAuB,EAAW,EAAE;IAC3E,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IAEzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACxD,CAAC,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { Coin } from '@vultisig/core-chain/coin/Coin';
2
+ import { KeysignLibType } from '@vultisig/core-mpc/mpcLib';
3
+ import { WalletCore } from '@trustwallet/wallet-core';
4
+ import { PublicKey } from '@trustwallet/wallet-core/dist/src/wallet-core';
5
+ import { Address } from 'viem';
6
+ export declare const encodeVultDepositFor: (account: Address, value: bigint) => `0x${string}`;
7
+ export declare const encodeVultRequestUnstake: (amount: bigint) => `0x${string}`;
8
+ export declare const encodeVultClaim: (requestId: bigint, receiver: Address) => `0x${string}`;
9
+ export declare const encodeVultCancelUnstake: (requestId: bigint) => `0x${string}`;
10
+ export type BuildVultStakingKeysignPayloadInput = {
11
+ vaultAddress: string;
12
+ vaultId: string;
13
+ localPartyId: string;
14
+ publicKey: PublicKey;
15
+ libType: KeysignLibType;
16
+ walletCore: WalletCore;
17
+ };
18
+ /**
19
+ * `sVULT.depositFor(vault, amount)`, prefixed with `VULT.approve(sVULT, amount)`
20
+ * when the current allowance is insufficient. Both are emitted as signing inputs
21
+ * and broadcast in a single ceremony.
22
+ */
23
+ export declare const buildVultStakeKeysignPayload: ({ underlyingToken, stakingContractAddress, amount, ...input }: BuildVultStakingKeysignPayloadInput & {
24
+ underlyingToken: Coin;
25
+ stakingContractAddress: string;
26
+ amount: bigint;
27
+ }) => Promise<import("@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb").KeysignPayload>;
28
+ /** `sVULT.requestUnstake(amount)` — starts the cooldown for `amount` of sVULT. */
29
+ export declare const buildVultUnstakeKeysignPayload: ({ stakingContractAddress, amount, ...input }: BuildVultStakingKeysignPayloadInput & {
30
+ stakingContractAddress: string;
31
+ amount: bigint;
32
+ }) => Promise<import("@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb").KeysignPayload>;
33
+ /** `sVULT.claim(requestId, vault)` — returns the underlying VULT once matured. */
34
+ export declare const buildVultClaimKeysignPayload: ({ stakingContractAddress, requestId, ...input }: BuildVultStakingKeysignPayloadInput & {
35
+ stakingContractAddress: string;
36
+ requestId: bigint;
37
+ }) => Promise<import("@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb").KeysignPayload>;
38
+ /** `sVULT.cancelUnstake(requestId)` — cancels a pending request and restores sVULT. */
39
+ export declare const buildVultCancelUnstakeKeysignPayload: ({ stakingContractAddress, requestId, ...input }: BuildVultStakingKeysignPayloadInput & {
40
+ stakingContractAddress: string;
41
+ requestId: bigint;
42
+ }) => Promise<import("@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb").KeysignPayload>;
43
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/vultStaking/build.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAK1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AACzE,OAAO,EAAE,OAAO,EAAgC,MAAM,MAAM,CAAA;AA2B5D,eAAO,MAAM,oBAAoB,GAAI,SAAS,OAAO,EAAE,OAAO,MAAM,KAAG,KAAK,MAAM,EACS,CAAA;AAE3F,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,KAAG,KAAK,MAAM,EACkB,CAAA;AAEvF,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,EAAE,UAAU,OAAO,KAAG,KAAK,MAAM,EACS,CAAA;AAE3F,eAAO,MAAM,uBAAuB,GAAI,WAAW,MAAM,KAAG,KAAK,MAAM,EACkB,CAAA;AAEzF,MAAM,MAAM,mCAAmC,GAAG;IAChD,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAwCD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAU,+DAKhD,mCAAmC,GAAG;IACvC,eAAe,EAAE,IAAI,CAAA;IACrB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;CACf,sGA2CA,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,8BAA8B,GAAI,8CAI5C,mCAAmC,GAAG;IACvC,sBAAsB,EAAE,MAAM,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;CACf,sGAKG,CAAA;AAEJ,kFAAkF;AAClF,eAAO,MAAM,4BAA4B,GAAI,iDAI1C,mCAAmC,GAAG;IACvC,sBAAsB,EAAE,MAAM,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;CAClB,sGAKG,CAAA;AAEJ,uFAAuF;AACvF,eAAO,MAAM,oCAAoC,GAAI,iDAIlD,mCAAmC,GAAG;IACvC,sBAAsB,EAAE,MAAM,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;CAClB,sGAKG,CAAA"}
@@ -0,0 +1,125 @@
1
+ import { Buffer } from 'buffer';
2
+ import { create } from '@bufbuild/protobuf';
3
+ import { Chain, EvmChain } from '@vultisig/core-chain/Chain';
4
+ import { getErc20Allowance } from '@vultisig/core-chain/chains/evm/erc20/getErc20Allowance';
5
+ import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
6
+ import { getChainSpecific } from '@vultisig/core-mpc/keysign/chainSpecific';
7
+ import { toCommCoin } from '@vultisig/core-mpc/types/utils/commCoin';
8
+ import { Erc20ApprovePayloadSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/erc20_approve_payload_pb';
9
+ import { KeysignPayloadSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb';
10
+ import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
11
+ import { encodeFunctionData, parseAbi } from 'viem';
12
+ /**
13
+ * VULT staking (sVULT) is an EVM ERC20-wrapper on Ethereum mainnet. Every action
14
+ * is a raw contract call.
15
+ *
16
+ * Stake mirrors the swap-with-approval pattern: the payload's `coin` is the VULT
17
+ * token, so the shared EVM resolver can attach an `erc20ApprovePayload` (approve
18
+ * VULT → sVULT) as a first signing input, and the `depositFor` calldata in `memo`
19
+ * is emitted as a generic contract call to sVULT as the second input. Both are
20
+ * signed in one ceremony and broadcast back-to-back (approve at nonce N, deposit
21
+ * at N+1), so the allowance is in place before depositFor executes.
22
+ *
23
+ * Unstake / claim / cancel need no approval and act on sVULT directly, so they
24
+ * use the native fee coin + `memo` shape (like Circle withdraw).
25
+ *
26
+ * Calldata is encoded with viem against the schema below (compile-time-checked
27
+ * function names + args), verified against the deployed sVULT ABI on Ethereum
28
+ * mainnet (0x11113d7311FB8584a6e82BB126aA11D92e5fB39B).
29
+ */
30
+ const sVultAbi = parseAbi([
31
+ 'function depositFor(address account, uint256 value)',
32
+ 'function requestUnstake(uint256 amount)',
33
+ 'function claim(uint256 requestId, address receiver)',
34
+ 'function cancelUnstake(uint256 requestId)',
35
+ ]);
36
+ export const encodeVultDepositFor = (account, value) => encodeFunctionData({ abi: sVultAbi, functionName: 'depositFor', args: [account, value] });
37
+ export const encodeVultRequestUnstake = (amount) => encodeFunctionData({ abi: sVultAbi, functionName: 'requestUnstake', args: [amount] });
38
+ export const encodeVultClaim = (requestId, receiver) => encodeFunctionData({ abi: sVultAbi, functionName: 'claim', args: [requestId, receiver] });
39
+ export const encodeVultCancelUnstake = (requestId) => encodeFunctionData({ abi: sVultAbi, functionName: 'cancelUnstake', args: [requestId] });
40
+ /** Raw call to sVULT signed via the native fee coin + `memo` (no token transfer). */
41
+ const buildNativeContractCallPayload = async ({ input, toAddress, memo, }) => {
42
+ const { vaultAddress, vaultId, localPartyId, publicKey, libType, walletCore } = input;
43
+ const nativeCoin = {
44
+ ...chainFeeCoin[Chain.Ethereum],
45
+ address: vaultAddress,
46
+ };
47
+ const keysignPayload = create(KeysignPayloadSchema, {
48
+ coin: toCommCoin({
49
+ ...nativeCoin,
50
+ hexPublicKey: Buffer.from(publicKey.data()).toString('hex'),
51
+ }),
52
+ toAddress,
53
+ toAmount: '0',
54
+ memo,
55
+ vaultLocalPartyId: localPartyId,
56
+ vaultPublicKeyEcdsa: vaultId,
57
+ libType,
58
+ });
59
+ keysignPayload.blockchainSpecific = await getChainSpecific({
60
+ keysignPayload,
61
+ walletCore,
62
+ });
63
+ return keysignPayload;
64
+ };
65
+ /**
66
+ * `sVULT.depositFor(vault, amount)`, prefixed with `VULT.approve(sVULT, amount)`
67
+ * when the current allowance is insufficient. Both are emitted as signing inputs
68
+ * and broadcast in a single ceremony.
69
+ */
70
+ export const buildVultStakeKeysignPayload = async ({ underlyingToken, stakingContractAddress, amount, ...input }) => {
71
+ if (underlyingToken.chain !== Chain.Ethereum) {
72
+ throw new Error(`VULT staking is only supported on Ethereum, got ${underlyingToken.chain}`);
73
+ }
74
+ const { vaultAddress, vaultId, localPartyId, publicKey, libType, walletCore } = input;
75
+ const tokenId = shouldBePresent(underlyingToken.id, 'VULT token id');
76
+ const keysignPayload = create(KeysignPayloadSchema, {
77
+ coin: toCommCoin({
78
+ ...underlyingToken,
79
+ address: vaultAddress,
80
+ hexPublicKey: Buffer.from(publicKey.data()).toString('hex'),
81
+ }),
82
+ toAddress: stakingContractAddress,
83
+ toAmount: '0',
84
+ memo: encodeVultDepositFor(vaultAddress, amount),
85
+ vaultLocalPartyId: localPartyId,
86
+ vaultPublicKeyEcdsa: vaultId,
87
+ libType,
88
+ });
89
+ const allowance = await getErc20Allowance({
90
+ chain: EvmChain.Ethereum,
91
+ id: tokenId,
92
+ address: vaultAddress,
93
+ spender: stakingContractAddress,
94
+ });
95
+ if (allowance < amount) {
96
+ keysignPayload.erc20ApprovePayload = create(Erc20ApprovePayloadSchema, {
97
+ amount: amount.toString(),
98
+ spender: stakingContractAddress,
99
+ });
100
+ }
101
+ keysignPayload.blockchainSpecific = await getChainSpecific({
102
+ keysignPayload,
103
+ walletCore,
104
+ });
105
+ return keysignPayload;
106
+ };
107
+ /** `sVULT.requestUnstake(amount)` — starts the cooldown for `amount` of sVULT. */
108
+ export const buildVultUnstakeKeysignPayload = ({ stakingContractAddress, amount, ...input }) => buildNativeContractCallPayload({
109
+ input,
110
+ toAddress: stakingContractAddress,
111
+ memo: encodeVultRequestUnstake(amount),
112
+ });
113
+ /** `sVULT.claim(requestId, vault)` — returns the underlying VULT once matured. */
114
+ export const buildVultClaimKeysignPayload = ({ stakingContractAddress, requestId, ...input }) => buildNativeContractCallPayload({
115
+ input,
116
+ toAddress: stakingContractAddress,
117
+ memo: encodeVultClaim(requestId, input.vaultAddress),
118
+ });
119
+ /** `sVULT.cancelUnstake(requestId)` — cancels a pending request and restores sVULT. */
120
+ export const buildVultCancelUnstakeKeysignPayload = ({ stakingContractAddress, requestId, ...input }) => buildNativeContractCallPayload({
121
+ input,
122
+ toAddress: stakingContractAddress,
123
+ memo: encodeVultCancelUnstake(requestId),
124
+ });
125
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/vultStaking/build.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/simulation/input/resolvers/evm.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,yBAAyB,EAAE,MAAM,kDAAkD,CAAA;AAS9G,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAA;AAE/D,eAAO,MAAM,+BAA+B,EAAE,iCAAiC,CAAC,yBAAyB,CAiExG,CAAA"}
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/simulation/input/resolvers/evm.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,yBAAyB,EAAE,MAAM,kDAAkD,CAAA;AAU9G,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAA;AAE/D,eAAO,MAAM,+BAA+B,EAAE,iCAAiC,CAAC,yBAAyB,CAiExG,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { productRootDomain } from '@vultisig/core-config';
2
2
  import { blockaidEvmChain } from '@vultisig/core-chain/security/blockaid/evmChains';
3
3
  import { getKeysignSwapPayload } from '@vultisig/core-mpc/keysign/swap/getKeysignSwapPayload';
4
+ import { getIsGenericContractCall } from '@vultisig/core-mpc/keysign/utils/getIsGenericContractCall';
4
5
  import { getKeysignCoin } from '@vultisig/core-mpc/keysign/utils/getKeysignCoin';
5
6
  import { bigIntToHex } from '@vultisig/lib-utils/bigint/bigIntToHex';
6
7
  import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
@@ -45,7 +46,7 @@ export const getEvmBlockaidTxSimulationInput = ({ payload, chain, }) => {
45
46
  }
46
47
  const amount = BigInt(payload.toAmount);
47
48
  const receiver = payload.toAddress;
48
- if (!coin.id) {
49
+ if (getIsGenericContractCall(payload) || !coin.id) {
49
50
  return toEvmBlockaidTxScanInput({
50
51
  to: receiver,
51
52
  value: `0x${bigIntToHex(amount)}`,
@@ -1 +1 @@
1
- {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/simulation/input/resolvers/evm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/simulation/input/resolvers/evm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/resolvers/evm.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,yBAAyB,EAAE,MAAM,kDAAkD,CAAA;AAS9G,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAA;AAE/D,eAAO,MAAM,+BAA+B,EAAE,iCAAiC,CAAC,yBAAyB,CAyDxG,CAAA"}
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/resolvers/evm.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,yBAAyB,EAAE,MAAM,kDAAkD,CAAA;AAU9G,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAA;AAE/D,eAAO,MAAM,+BAA+B,EAAE,iCAAiC,CAAC,yBAAyB,CAyDxG,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { productRootDomain } from '@vultisig/core-config';
2
2
  import { blockaidEvmChain } from '@vultisig/core-chain/security/blockaid/evmChains';
3
3
  import { getKeysignSwapPayload } from '@vultisig/core-mpc/keysign/swap/getKeysignSwapPayload';
4
+ import { getIsGenericContractCall } from '@vultisig/core-mpc/keysign/utils/getIsGenericContractCall';
4
5
  import { getKeysignCoin } from '@vultisig/core-mpc/keysign/utils/getKeysignCoin';
5
6
  import { bigIntToHex } from '@vultisig/lib-utils/bigint/bigIntToHex';
6
7
  import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
@@ -36,7 +37,7 @@ export const getEvmBlockaidTxValidationInput = ({ payload, chain, }) => {
36
37
  }
37
38
  const amount = BigInt(payload.toAmount);
38
39
  const receiver = payload.toAddress;
39
- if (!coin.id) {
40
+ if (getIsGenericContractCall(payload) || !coin.id) {
40
41
  return toEvmBlockaidTxScanInput({
41
42
  to: receiver,
42
43
  value: `0x${bigIntToHex(amount)}`,
@@ -1 +1 @@
1
- {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/resolvers/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAA6B,MAAM,kDAAkD,CAAA;AAE9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAA;AAE7F,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAInD,MAAM,CAAC,MAAM,+BAA+B,GAAiE,CAAC,EAC5G,OAAO,EACP,KAAK,GACN,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAEpC,MAAM,wBAAwB,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAA+C,EAAE,EAAE,CAAC,CAAC;QACtG,IAAI,EAAE;YACJ,MAAM,EAAE,qBAAqB;YAC7B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAClD;QACD,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC;QAC9B,QAAQ,EAAE;YACR,MAAM,EAAE,iBAAiB;SAC1B;KACF,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAElD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,gBAAgB,CAAqE,WAAW,EAAE;YACvG,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;YAClB,OAAO,EAAE,kBAAkB,CAAC,EAAE;gBAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAA;gBACpC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;oBACf,OAAO,IAAI,CAAA;gBACb,CAAC;gBAED,OAAO,wBAAwB,CAAC;oBAC9B,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;oBACf,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;oBACpG,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI;iBACpB,CAAC,CAAA;YACJ,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAA0B,CAAA;IAEnD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,wBAAwB,CAAC;YAC9B,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,KAAK,WAAW,CAAC,MAAM,CAAC,EAAE;YACjC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;SAC3B,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,wBAAwB,CAAC;QAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,KAAK,WAAW,CAAC,MAAM,CAAC,EAAE;QACjC,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SACzB,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../../../../packages/core/mpc/security/blockaid/tx/validation/input/resolvers/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAA6B,MAAM,kDAAkD,CAAA;AAE9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAA;AAE7F,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAA;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAInD,MAAM,CAAC,MAAM,+BAA+B,GAAiE,CAAC,EAC5G,OAAO,EACP,KAAK,GACN,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAEpC,MAAM,wBAAwB,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAA+C,EAAE,EAAE,CAAC,CAAC;QACtG,IAAI,EAAE;YACJ,MAAM,EAAE,qBAAqB;YAC7B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAClD;QACD,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC;QAC9B,QAAQ,EAAE;YACR,MAAM,EAAE,iBAAiB;SAC1B;KACF,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAElD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,gBAAgB,CAAqE,WAAW,EAAE;YACvG,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;YAClB,OAAO,EAAE,kBAAkB,CAAC,EAAE;gBAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAA;gBACpC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;oBACf,OAAO,IAAI,CAAA;gBACb,CAAC;gBAED,OAAO,wBAAwB,CAAC;oBAC9B,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;oBACf,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;oBACpG,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI;iBACpB,CAAC,CAAA;YACJ,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAA0B,CAAA;IAEnD,IAAI,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAClD,OAAO,wBAAwB,CAAC;YAC9B,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,KAAK,WAAW,CAAC,MAAM,CAAC,EAAE;YACjC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;SAC3B,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,wBAAwB,CAAC;QAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,KAAK,WAAW,CAAC,MAAM,CAAC,EAAE;QACjC,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SACzB,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -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;AAgCD,eAAO,MAAM,kBAAkB,GAAI,sCAAsC,uBAAuB,KAAG,MAwDlG,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;AAgCD,eAAO,MAAM,kBAAkB,GAAI,sCAAsC,uBAAuB,KAAG,MA4DlG,CAAA"}
@@ -65,10 +65,14 @@ export const getSwapTrackingUrl = ({ swapPayload, txHash, sourceChain }) => {
65
65
  if (sourceChain === Chain.Ton && txHash.startsWith('0x')) {
66
66
  throw new Error(`TON tx hash must not have a 0x prefix (got: ${txHash.slice(0, 10)}...)`);
67
67
  }
68
- // Bare hash (no `0x` prefix) -- `stripHexPrefix` is a no-op when the
69
- // hash is already prefix-free (UTXO chains, Ripple, TON, etc.) and strips
70
- // `0x` from EVM hashes to match track.swapkit.dev's expected format.
71
- return `https://track.swapkit.dev/?tx=${encodeURIComponent(stripHexPrefix(txHash))}&chainId=${chainId}`;
68
+ // `tx` remains the bare tracker identifier, while `hash` carries the
69
+ // original source-chain tx hash that SwapKit uses to prefill the form.
70
+ const searchParams = new URLSearchParams({
71
+ tx: stripHexPrefix(txHash),
72
+ chainId,
73
+ hash: txHash,
74
+ });
75
+ return `https://track.swapkit.dev/?${searchParams.toString()}`;
72
76
  }
73
77
  // SwapKitSourceChain extended without updating swapKitTrackerChainId
74
78
  // -> silent fallback to block explorer would degrade tracking
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vultisig/core-mpc",
3
- "version": "1.7.3",
3
+ "version": "1.8.0",
4
4
  "description": "MPC, keysign, and vault types shared across Vultisig clients",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -576,6 +576,11 @@
576
576
  "import": "./dist/keysign/tw/toTwAddress.js",
577
577
  "default": "./dist/keysign/tw/toTwAddress.js"
578
578
  },
579
+ "./keysign/utils/getIsGenericContractCall": {
580
+ "types": "./dist/keysign/utils/getIsGenericContractCall.d.ts",
581
+ "import": "./dist/keysign/utils/getIsGenericContractCall.js",
582
+ "default": "./dist/keysign/utils/getIsGenericContractCall.js"
583
+ },
579
584
  "./keysign/utils/getJoinKeysignUrl": {
580
585
  "types": "./dist/keysign/utils/getJoinKeysignUrl.d.ts",
581
586
  "import": "./dist/keysign/utils/getJoinKeysignUrl.js",
@@ -606,6 +611,11 @@
606
611
  "import": "./dist/keysign/utxo/getKeysignUtxoInfo.js",
607
612
  "default": "./dist/keysign/utxo/getKeysignUtxoInfo.js"
608
613
  },
614
+ "./keysign/vultStaking/build": {
615
+ "types": "./dist/keysign/vultStaking/build.d.ts",
616
+ "import": "./dist/keysign/vultStaking/build.js",
617
+ "default": "./dist/keysign/vultStaking/build.js"
618
+ },
609
619
  "./keysignComplete": {
610
620
  "types": "./dist/keysignComplete.d.ts",
611
621
  "import": "./dist/keysignComplete.js",
@@ -1004,7 +1014,7 @@
1004
1014
  "@noble/hashes": "^1.8.0",
1005
1015
  "@solana/web3.js": "^1.98.4",
1006
1016
  "@trustwallet/wallet-core": "^4.6.13",
1007
- "@vultisig/core-chain": "2.17.2",
1017
+ "@vultisig/core-chain": "2.17.4",
1008
1018
  "@vultisig/core-config": "0.9.1",
1009
1019
  "@vultisig/lib-dkls": "0.9.0",
1010
1020
  "@vultisig/lib-mldsa": "0.9.0",