@vultisig/core-mpc 1.7.4 → 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.
- package/CHANGELOG.md +29 -0
- package/dist/keysign/fee/resolvers/evm/getEvmFeeQuote.d.ts.map +1 -1
- package/dist/keysign/fee/resolvers/evm/getEvmFeeQuote.js +17 -12
- package/dist/keysign/fee/resolvers/evm/getEvmFeeQuote.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/evm/index.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/evm/index.js +16 -1
- package/dist/keysign/signingInputs/resolvers/evm/index.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/utxo.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/utxo.js +59 -3
- package/dist/keysign/signingInputs/resolvers/utxo.js.map +1 -1
- package/dist/keysign/utils/getIsGenericContractCall.d.ts +15 -0
- package/dist/keysign/utils/getIsGenericContractCall.d.ts.map +1 -0
- package/dist/keysign/utils/getIsGenericContractCall.js +27 -0
- package/dist/keysign/utils/getIsGenericContractCall.js.map +1 -0
- package/dist/keysign/vultStaking/build.d.ts +43 -0
- package/dist/keysign/vultStaking/build.d.ts.map +1 -0
- package/dist/keysign/vultStaking/build.js +125 -0
- package/dist/keysign/vultStaking/build.js.map +1 -0
- package/dist/security/blockaid/tx/simulation/input/resolvers/evm.d.ts.map +1 -1
- package/dist/security/blockaid/tx/simulation/input/resolvers/evm.js +2 -1
- package/dist/security/blockaid/tx/simulation/input/resolvers/evm.js.map +1 -1
- package/dist/security/blockaid/tx/validation/input/resolvers/evm.d.ts.map +1 -1
- package/dist/security/blockaid/tx/validation/input/resolvers/evm.js +2 -1
- package/dist/security/blockaid/tx/validation/input/resolvers/evm.js.map +1 -1
- package/dist/swap/utils/getSwapTrackingUrl.d.ts.map +1 -1
- package/dist/swap/utils/getSwapTrackingUrl.js +8 -4
- package/dist/swap/utils/getSwapTrackingUrl.js.map +1 -1
- package/package.json +12 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
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
|
+
|
|
3
32
|
## 1.7.4
|
|
4
33
|
|
|
5
34
|
### 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;
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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:
|
|
67
|
-
value:
|
|
68
|
-
data
|
|
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:
|
|
73
|
-
value:
|
|
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":"
|
|
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":"
|
|
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
|
|
83
|
-
|
|
84
|
-
|
|
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;
|
|
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":"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;QACpG,MAAM,MAAM,GAA2B;YACrC,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,EAAE;YACF,KAAK;YACL,IAAI;SACL,CAAA;QACD,OAAO;YACL,IAAI,EAAE;gBACJ,MAAM,EAAE,qBAAqB;gBAC7B,MAAM,EAAE,CAAC,MAAM,CAAC;aACjB;YACD,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC;YAC9B,QAAQ,EAAE;gBACR,MAAM,EAAE,iBAAiB;aAC1B;YACD,OAAO,EAAE,CAAC,YAAY,CAAC;SACxB,CAAA;IACH,CAAC,CAAA;IACD,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;
|
|
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;
|
|
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;
|
|
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,
|
|
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
|
-
//
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
|
|
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.
|
|
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.
|
|
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",
|