@vultisig/core-mpc 3.1.0 → 3.2.1
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 +44 -0
- package/dist/keysign/chainSpecific/resolvers/evm.d.ts.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/evm.js +0 -16
- package/dist/keysign/chainSpecific/resolvers/evm.js.map +1 -1
- package/dist/keysign/fee/resolvers/evm/getEvmFeeQuote.d.ts +5 -0
- package/dist/keysign/fee/resolvers/evm/getEvmFeeQuote.d.ts.map +1 -1
- package/dist/keysign/fee/resolvers/evm/getEvmFeeQuote.js +68 -32
- package/dist/keysign/fee/resolvers/evm/getEvmFeeQuote.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/bittensor.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/bittensor.js +9 -1
- package/dist/keysign/signingInputs/resolvers/bittensor.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/cardano.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/cardano.js +3 -0
- package/dist/keysign/signingInputs/resolvers/cardano.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/polkadot.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/polkadot.js +2 -1
- package/dist/keysign/signingInputs/resolvers/polkadot.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ripple.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ripple.js +3 -2
- package/dist/keysign/signingInputs/resolvers/ripple.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/solana/send.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/solana/send.js +4 -3
- package/dist/keysign/signingInputs/resolvers/solana/send.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/tron.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/tron.js +3 -2
- package/dist/keysign/signingInputs/resolvers/tron.js.map +1 -1
- package/dist/keysign/swap/KeysignSwapPayload.d.ts +1 -1
- package/dist/keysign/swap/KeysignSwapPayload.d.ts.map +1 -1
- package/dist/keysign/swap/build.d.ts +0 -11
- package/dist/keysign/swap/build.d.ts.map +1 -1
- package/dist/keysign/swap/build.js +23 -10
- package/dist/keysign/swap/build.js.map +1 -1
- package/dist/keysign/swap/buildLimitSwapKeysignPayload.d.ts +4 -5
- package/dist/keysign/swap/buildLimitSwapKeysignPayload.d.ts.map +1 -1
- package/dist/keysign/swap/buildLimitSwapKeysignPayload.js +4 -5
- package/dist/keysign/swap/buildLimitSwapKeysignPayload.js.map +1 -1
- package/dist/keysign/swap/getKeysignSwapFeeFields.d.ts +23 -0
- package/dist/keysign/swap/getKeysignSwapFeeFields.d.ts.map +1 -0
- package/dist/keysign/swap/getKeysignSwapFeeFields.js +10 -0
- package/dist/keysign/swap/getKeysignSwapFeeFields.js.map +1 -0
- package/dist/keysign/swap/getKeysignSwapProviderName.d.ts +9 -0
- package/dist/keysign/swap/getKeysignSwapProviderName.d.ts.map +1 -1
- package/dist/keysign/swap/getKeysignSwapProviderName.js +13 -1
- package/dist/keysign/swap/getKeysignSwapProviderName.js.map +1 -1
- package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.d.ts.map +1 -1
- package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.js +3 -0
- package/dist/swap/native/utils/nativeSwapQuoteToSwapPayload.js.map +1 -1
- package/dist/types/vultisig/keysign/v1/1inch_swap_payload_pb.d.ts +19 -6
- package/dist/types/vultisig/keysign/v1/1inch_swap_payload_pb.d.ts.map +1 -1
- package/dist/types/vultisig/keysign/v1/1inch_swap_payload_pb.js +14 -6
- package/dist/types/vultisig/keysign/v1/1inch_swap_payload_pb.js.map +1 -1
- package/dist/types/vultisig/keysign/v1/swapkit_swap_payload_pb.d.ts +36 -4
- package/dist/types/vultisig/keysign/v1/swapkit_swap_payload_pb.d.ts.map +1 -1
- package/dist/types/vultisig/keysign/v1/swapkit_swap_payload_pb.js +8 -4
- package/dist/types/vultisig/keysign/v1/swapkit_swap_payload_pb.js.map +1 -1
- package/dist/types/vultisig/keysign/v1/thorchain_swap_payload_pb.d.ts +15 -0
- package/dist/types/vultisig/keysign/v1/thorchain_swap_payload_pb.d.ts.map +1 -1
- package/dist/types/vultisig/keysign/v1/thorchain_swap_payload_pb.js +1 -1
- package/dist/types/vultisig/keysign/v1/thorchain_swap_payload_pb.js.map +1 -1
- package/package.json +8 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# @vultisig/core-mpc
|
|
2
2
|
|
|
3
|
+
## 3.2.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#2352](https://github.com/vultisig/vultisig-sdk/pull/2352) [`341df52`](https://github.com/vultisig/vultisig-sdk/commit/341df52d63858f41172be2f61bde7c4ca694ad71) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Reject missing and malformed amounts before constructing Tron TRC20, Solana, Polkadot, Bittensor and Ripple issued-currency signing inputs. Preserve explicit zero trust-line limits and encode Solana amounts as unsigned uint64 values without overflow.
|
|
8
|
+
|
|
9
|
+
- [#2341](https://github.com/vultisig/vultisig-sdk/pull/2341) [`ea2e6b7`](https://github.com/vultisig/vultisig-sdk/commit/ea2e6b7f4fc005d93d0a31741f521d7539d3104e) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Reject negative amounts before hexadecimal encoding so EVM and Cardano transaction inputs cannot silently contain empty amount bytes. Preserve existing encodings for non-negative values, including unsigned Long quantities.
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`864dfcb`](https://github.com/vultisig/vultisig-sdk/commit/864dfcb375c474f5bcc6f79bf18aeb145489cc47), [`80ba27f`](https://github.com/vultisig/vultisig-sdk/commit/80ba27f30afbeb104a8cc5738b5942467d977c9e), [`341df52`](https://github.com/vultisig/vultisig-sdk/commit/341df52d63858f41172be2f61bde7c4ca694ad71), [`ea2e6b7`](https://github.com/vultisig/vultisig-sdk/commit/ea2e6b7f4fc005d93d0a31741f521d7539d3104e), [`4fe2d97`](https://github.com/vultisig/vultisig-sdk/commit/4fe2d977cac34de6d0cf0cfefafdb6d484253a56), [`f5b79a4`](https://github.com/vultisig/vultisig-sdk/commit/f5b79a4b3ba943a1e80c4f8c01ecf1cd137a155d)]:
|
|
12
|
+
- @vultisig/core-chain@5.4.0
|
|
13
|
+
- @vultisig/lib-utils@0.10.7
|
|
14
|
+
|
|
15
|
+
## 3.2.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- [#2328](https://github.com/vultisig/vultisig-sdk/pull/2328) [`741272f`](https://github.com/vultisig/vultisig-sdk/commit/741272f8d3872afdf12d9487d2121dee04c2f363) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - Carry a native swap's price impact in the keysign payload, so a co-signer can show it.
|
|
20
|
+
|
|
21
|
+
A device joining a keysign renders its swap verify screen entirely from the `KeysignPayload` — it holds no quote. Price impact was never on the wire, so the initiator showed a `Price Impact` row and the joining device showed nothing, on the screen whose purpose is for both parties to confirm they are approving the same swap.
|
|
22
|
+
|
|
23
|
+
`THORChainSwapPayload` gains `optional uint32 slippage_bps = 14` (vultisig/commondata#104), and `nativeSwapQuoteToSwapPayload` populates it from `quote.fees.slippage_bps`. MayaChain shares the message, so one field covers both native swap chains.
|
|
24
|
+
|
|
25
|
+
The value is carried rather than re-derived on the joiner. A joining device has enough in the payload to rebuild the quote request, but pools move between initiating and joining, so a fresh quote returns a different figure — price impact would become the only term on that screen where the two devices legitimately disagree.
|
|
26
|
+
|
|
27
|
+
The field is optional and left unset when the provider reports no slippage. Payloads from senders that predate it round-trip unchanged, and receivers are expected to hide the row rather than read an absent figure as zero.
|
|
28
|
+
|
|
29
|
+
- [#2325](https://github.com/vultisig/vultisig-sdk/pull/2325) [`7c95286`](https://github.com/vultisig/vultisig-sdk/commit/7c9528622702a1e6f10cd5ff72017779d25e509a) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - EVM fee quotes now size the gas reserve from the transaction itself instead of a flat 600k floor. An aggregator swap is signed with the larger of the route's own gas and 1.5x its simulation (1.5x the 600k default when it cannot be simulated, e.g. a token route quoted before its allowance exists); a THORChain or Maya swap deposit (any transaction carrying the native swap payload) takes a fixed 120k; a plain transfer, including a memo-carrying vault deposit that carries no swap payload, takes its simulation raised to a per-chain floor with no inflation (when it cannot be simulated, that floor plus the intrinsic cost of its memo calldata); a dApp or other contract call keeps 1.5x headroom over its simulation. Base-fee headroom drops from 50% to 20% (32% for swaps), legacy-priced chains (BSC) are priced from `eth_gasPrice` with no tip, and the tip is the highest recent 5th-percentile reward from `eth_feeHistory`, capped at the gas price, with per-chain floors (1 gwei on tip-auction chains, 30 gwei on Polygon, 20 wei on OP-stack rollups) and a zero tip on Arbitrum, Mantle and Robinhood.
|
|
30
|
+
|
|
31
|
+
`getEvmFeeQuote`'s `minimumGasLimit` now only raises the value that stands in for a failed simulation and never a successful estimate. `getEvmTransferGasLimit`, `getEvmContractCallGasLimit` and `evmRouterDepositGasLimit` are exported from `@vultisig/core-chain/tx/fee/evm/evmGasLimit`, and `getEvmGasPrice` from `@vultisig/core-chain/tx/fee/evm/gasPrice`.
|
|
32
|
+
|
|
33
|
+
- [#2331](https://github.com/vultisig/vultisig-sdk/pull/2331) [`982d464`](https://github.com/vultisig/vultisig-sdk/commit/982d4645467272f32e33a2df20883c1a7171a7ee) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - Publish the SwapKit swap-fee work to the core packages that hold it. [#2315](https://github.com/vultisig/vultisig-sdk/issues/2315) landed
|
|
34
|
+
`swap_fee` on `SwapKitSwapPayload`, the `getKeysignSwapFeeFields` reader, and the
|
|
35
|
+
`sub_provider` route tag in `@vultisig/core-mpc`, plus the transfer-route fee
|
|
36
|
+
resolution in `@vultisig/core-chain` — but its changeset named only
|
|
37
|
+
`@vultisig/sdk`, so neither core package was versioned and the release skipped
|
|
38
|
+
both. Clients that consume `@vultisig/core-mpc` directly, rather than through
|
|
39
|
+
`@vultisig/sdk`, cannot reach the new fee group or its reader until these are
|
|
40
|
+
republished.
|
|
41
|
+
|
|
42
|
+
### Patch Changes
|
|
43
|
+
|
|
44
|
+
- Updated dependencies [[`7c95286`](https://github.com/vultisig/vultisig-sdk/commit/7c9528622702a1e6f10cd5ff72017779d25e509a), [`2e1ed70`](https://github.com/vultisig/vultisig-sdk/commit/2e1ed704ccd0a360eaf760f1258c7cd8a4401e22), [`741272f`](https://github.com/vultisig/vultisig-sdk/commit/741272f8d3872afdf12d9487d2121dee04c2f363), [`982d464`](https://github.com/vultisig/vultisig-sdk/commit/982d4645467272f32e33a2df20883c1a7171a7ee), [`95cf397`](https://github.com/vultisig/vultisig-sdk/commit/95cf39722b8a4d3e197b26bcef9983ecef6c3703)]:
|
|
45
|
+
- @vultisig/core-chain@5.3.0
|
|
46
|
+
|
|
3
47
|
## 3.1.0
|
|
4
48
|
|
|
5
49
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/evm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/evm.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAEtD,eAAO,MAAM,mBAAmB,EAAE,wBAAwB,CAAC,kBAAkB,CAsC5E,CAAA"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { create } from '@bufbuild/protobuf';
|
|
2
2
|
import { getEvmClient } from '@vultisig/core-chain/chains/evm/client';
|
|
3
|
-
import { deriveEvmGasLimit } from '@vultisig/core-chain/tx/fee/evm/evmGasLimit';
|
|
4
3
|
import { getEvmFeeQuote } from '@vultisig/core-mpc/keysign/fee/resolvers/evm/getEvmFeeQuote';
|
|
5
4
|
import { EthereumSpecificSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/blockchain_specific_pb';
|
|
6
|
-
import { getKeysignSwapPayload } from '../../swap/getKeysignSwapPayload.js';
|
|
7
5
|
import { getKeysignCoin } from '../../utils/getKeysignCoin.js';
|
|
8
6
|
export const getEvmChainSpecific = async ({ keysignPayload, feeSettings, thirdPartyGasLimitEstimation, }) => {
|
|
9
7
|
const coin = getKeysignCoin(keysignPayload);
|
|
@@ -24,24 +22,10 @@ export const getEvmChainSpecific = async ({ keysignPayload, feeSettings, thirdPa
|
|
|
24
22
|
}
|
|
25
23
|
};
|
|
26
24
|
const nonce = BigInt(await getNonce());
|
|
27
|
-
const getData = () => {
|
|
28
|
-
const swapPayload = getKeysignSwapPayload(keysignPayload);
|
|
29
|
-
if (swapPayload && 'general' in swapPayload) {
|
|
30
|
-
const value = swapPayload.general.quote?.tx?.data;
|
|
31
|
-
if (value) {
|
|
32
|
-
return value;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return keysignPayload.memo;
|
|
36
|
-
};
|
|
37
25
|
const { gasLimit, baseFeePerGas, maxPriorityFeePerGas } = await getEvmFeeQuote({
|
|
38
26
|
keysignPayload,
|
|
39
27
|
feeSettings,
|
|
40
28
|
thirdPartyGasLimitEstimation,
|
|
41
|
-
minimumGasLimit: deriveEvmGasLimit({
|
|
42
|
-
coin,
|
|
43
|
-
data: getData(),
|
|
44
|
-
}),
|
|
45
29
|
});
|
|
46
30
|
const maxFeePerGas = baseFeePerGas + maxPriorityFeePerGas;
|
|
47
31
|
return create(EthereumSpecificSchema, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAA;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,qEAAqE,CAAA;AAE5G,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,MAAM,CAAC,MAAM,mBAAmB,GAAiD,KAAK,EAAE,EACtF,cAAc,EACd,WAAW,EACX,4BAA4B,GAC7B,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,cAAc,CAAW,cAAc,CAAC,CAAA;IACrD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAElC,wEAAwE;IACxE,kEAAkE;IAClE,wEAAwE;IACxE,wEAAwE;IACxE,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,OAAwB,EAAE,CAAA;QACpD,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QAC7E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QACtE,CAAC;IACH,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAA;IAEtC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,MAAM,cAAc,CAAC;QAC7E,cAAc;QACd,WAAW;QACX,4BAA4B;KAC7B,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,aAAa,GAAG,oBAAoB,CAAA;IAEzD,OAAO,MAAM,CAAC,sBAAsB,EAAE;QACpC,KAAK;QACL,eAAe,EAAE,YAAY,CAAC,QAAQ,EAAE;QACxC,WAAW,EAAE,oBAAoB,CAAC,QAAQ,EAAE;QAC5C,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;KAC9B,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -8,7 +8,12 @@ type EvmFeeQuote = {
|
|
|
8
8
|
type GetEvmFeeQuoteInput = {
|
|
9
9
|
keysignPayload: KeysignPayload;
|
|
10
10
|
feeSettings?: FeeSettings<'evm'>;
|
|
11
|
+
/** Gas limit the transaction's author (a dApp, an aggregator route) asks for. */
|
|
11
12
|
thirdPartyGasLimitEstimation?: bigint;
|
|
13
|
+
/**
|
|
14
|
+
* Extra floor on the value that stands in for a failed simulation. Never
|
|
15
|
+
* raises a successful estimate.
|
|
16
|
+
*/
|
|
12
17
|
minimumGasLimit?: bigint;
|
|
13
18
|
};
|
|
14
19
|
export declare const getEvmFeeQuote: ({ keysignPayload, feeSettings, thirdPartyGasLimitEstimation, minimumGasLimit, }: GetEvmFeeQuoteInput) => Promise<EvmFeeQuote>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEvmFeeQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/fee/resolvers/evm/getEvmFeeQuote.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getEvmFeeQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/fee/resolvers/evm/getEvmFeeQuote.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAA;AAMlF,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAA;AAehG,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,iFAAiF;IACjF,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAsBD,eAAO,MAAM,cAAc,GAAU,iFAKlC,mBAAmB,KAAG,OAAO,CAAC,WAAW,CAmM3C,CAAA"}
|
|
@@ -1,24 +1,37 @@
|
|
|
1
|
-
import { Chain
|
|
1
|
+
import { Chain } from '@vultisig/core-chain/Chain';
|
|
2
2
|
import { evmChainInfo } from '@vultisig/core-chain/chains/evm/chainInfo';
|
|
3
3
|
import { getEvmClient } from '@vultisig/core-chain/chains/evm/client';
|
|
4
|
+
import { evmChainTxFeeFormat } from '@vultisig/core-chain/chains/evm/tx/fee';
|
|
4
5
|
import { getEvmBaseFee } from '@vultisig/core-chain/tx/fee/evm/baseFee';
|
|
5
|
-
import { clampEvmPriorityFee } from '@vultisig/core-chain/tx/fee/evm/clampEvmPriorityFee';
|
|
6
|
+
import { clampEvmPriorityFee, isZeroPriorityFeeChain } from '@vultisig/core-chain/tx/fee/evm/clampEvmPriorityFee';
|
|
7
|
+
import { evmRouterDepositGasLimit, getEvmCalldataGas, getEvmContractCallGasLimit, getEvmTransferGasLimit, } from '@vultisig/core-chain/tx/fee/evm/evmGasLimit';
|
|
8
|
+
import { getEvmGasPrice } from '@vultisig/core-chain/tx/fee/evm/gasPrice';
|
|
6
9
|
import { getEvmMaxPriorityFeePerGas } from '@vultisig/core-chain/tx/fee/evm/maxPriorityFeePerGas';
|
|
7
10
|
import { getKeysignSwapPayload } from '@vultisig/core-mpc/keysign/swap/getKeysignSwapPayload';
|
|
8
11
|
import { getIsGenericContractCall } from '@vultisig/core-mpc/keysign/utils/getIsGenericContractCall';
|
|
9
12
|
import { getKeysignAmount } from '@vultisig/core-mpc/keysign/utils/getKeysignAmount';
|
|
10
13
|
import { getKeysignCoin } from '@vultisig/core-mpc/keysign/utils/getKeysignCoin';
|
|
11
|
-
import { without } from '@vultisig/lib-utils/array/without';
|
|
12
14
|
import { attempt, withFallback } from '@vultisig/lib-utils/attempt';
|
|
13
15
|
import { bigIntMax } from '@vultisig/lib-utils/bigint/bigIntMax';
|
|
14
16
|
import { formatDataToHex } from '@vultisig/lib-utils/formatDataToHex';
|
|
17
|
+
import { match } from '@vultisig/lib-utils/match';
|
|
15
18
|
import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
|
|
16
|
-
import { encodeFunctionData, erc20Abi } from 'viem';
|
|
19
|
+
import { encodeFunctionData, erc20Abi, isHex } from 'viem';
|
|
17
20
|
import { publicActionsL2 } from 'viem/zksync';
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
21
|
+
const percentOf = (value, percent) => (value * percent) / 100n;
|
|
22
|
+
// Half again on top of a simulated contract call: a route that turns out to need
|
|
23
|
+
// slightly more gas than its simulation would otherwise revert and forfeit the gas.
|
|
24
|
+
const inflateGasLimit = (value) => value + value / 2n;
|
|
25
|
+
const getEvmTxKind = (keysignPayload, swapPayload) => {
|
|
26
|
+
if (swapPayload) {
|
|
27
|
+
return 'general' in swapPayload ? 'swap' : 'routerDeposit';
|
|
28
|
+
}
|
|
29
|
+
const { memo } = keysignPayload;
|
|
30
|
+
if (getIsGenericContractCall(keysignPayload) || (memo && isHex(memo))) {
|
|
31
|
+
return 'contractCall';
|
|
32
|
+
}
|
|
33
|
+
return 'transfer';
|
|
34
|
+
};
|
|
22
35
|
export const getEvmFeeQuote = async ({ keysignPayload, feeSettings, thirdPartyGasLimitEstimation, minimumGasLimit, }) => {
|
|
23
36
|
const coin = getKeysignCoin(keysignPayload);
|
|
24
37
|
const { chain, address } = coin;
|
|
@@ -27,30 +40,55 @@ export const getEvmFeeQuote = async ({ keysignPayload, feeSettings, thirdPartyGa
|
|
|
27
40
|
const receiver = keysignPayload.toAddress;
|
|
28
41
|
const data = keysignPayload.memo ? formatDataToHex(keysignPayload.memo) : undefined;
|
|
29
42
|
const swapPayload = getKeysignSwapPayload(keysignPayload);
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
const kind = getEvmTxKind(keysignPayload, swapPayload);
|
|
44
|
+
const kindGasLimit = match(kind, {
|
|
45
|
+
transfer: () => getEvmTransferGasLimit(coin),
|
|
46
|
+
contractCall: () => getEvmContractCallGasLimit(chain),
|
|
47
|
+
swap: () => getEvmContractCallGasLimit(chain),
|
|
48
|
+
routerDeposit: () => evmRouterDepositGasLimit,
|
|
49
|
+
});
|
|
50
|
+
// A fee-coin transfer that could not be simulated still has to cover the
|
|
51
|
+
// calldata its memo becomes, which the per-chain floor leaves out; a node
|
|
52
|
+
// refuses a limit below that intrinsic cost outright.
|
|
53
|
+
const unsimulatedGasLimit = kind === 'transfer' && !coin.id && data ? kindGasLimit + getEvmCalldataGas(data) : kindGasLimit;
|
|
54
|
+
// Stands in for a simulation that failed. A caller minimum only ever raises
|
|
55
|
+
// this stand-in, never a real estimate.
|
|
56
|
+
const fallbackGasLimit = bigIntMax(unsimulatedGasLimit, minimumGasLimit ?? 0n);
|
|
57
|
+
const requestedGasLimit = thirdPartyGasLimitEstimation ?? 0n;
|
|
58
|
+
const resolveGasLimit = (estimatedGasLimit) => match(kind, {
|
|
59
|
+
// A transfer costs what its simulation says, raised to the per-chain floor.
|
|
60
|
+
transfer: () => bigIntMax(estimatedGasLimit ?? fallbackGasLimit, kindGasLimit, requestedGasLimit),
|
|
61
|
+
// A contract call gets headroom over its simulation (or the fallback), and
|
|
62
|
+
// never less than what its author asked for.
|
|
63
|
+
contractCall: () => inflateGasLimit(bigIntMax(estimatedGasLimit ?? fallbackGasLimit, requestedGasLimit)),
|
|
64
|
+
// A swap is signed with the larger of the route's own gas and the inflated
|
|
65
|
+
// simulation; a route that carries no gas figure counts as the swap default.
|
|
66
|
+
swap: () => bigIntMax(requestedGasLimit > 0n ? requestedGasLimit : kindGasLimit, inflateGasLimit(estimatedGasLimit ?? fallbackGasLimit)),
|
|
67
|
+
// A router deposit is never simulated, so its fixed limit is the stand-in
|
|
68
|
+
// a caller minimum may raise.
|
|
69
|
+
routerDeposit: () => bigIntMax(fallbackGasLimit, requestedGasLimit),
|
|
70
|
+
});
|
|
71
|
+
const isLegacyPriced = evmChainTxFeeFormat[chain] === 'legacy';
|
|
72
|
+
// Headroom against the base fee rising while the keysign runs: 20% on
|
|
73
|
+
// everything, plus 10% on aggregator swaps, whose quotes go stale fastest
|
|
74
|
+
// and whose reverts cost the most.
|
|
75
|
+
const withBaseFeeHeadroom = (baseFee) => kind === 'swap' ? percentOf(percentOf(baseFee, 110n), 120n) : percentOf(baseFee, 120n);
|
|
76
|
+
// A legacy-priced chain has a single gas price; a swap gets 10% on top of it.
|
|
77
|
+
const withGasPriceHeadroom = (gasPrice) => (kind === 'swap' ? percentOf(gasPrice, 110n) : gasPrice);
|
|
78
|
+
const getBaseFeePerGas = async () => isLegacyPriced ? withGasPriceHeadroom(await getEvmGasPrice(chain)) : withBaseFeeHeadroom(await getEvmBaseFee(chain));
|
|
79
|
+
// A legacy-priced chain carries no tip, and a chain that pins it to zero
|
|
80
|
+
// needs no network suggestion to discard.
|
|
81
|
+
const getMaxPriorityFeePerGas = async () => isLegacyPriced || isZeroPriorityFeeChain(chain)
|
|
82
|
+
? 0n
|
|
83
|
+
: clampEvmPriorityFee(chain, await getEvmMaxPriorityFeePerGas(chain));
|
|
48
84
|
const getEstimateGasParams = async () => {
|
|
49
85
|
if (swapPayload) {
|
|
50
86
|
return matchRecordUnion(swapPayload, {
|
|
51
87
|
native: () => null,
|
|
52
88
|
general: ({ quote }) => {
|
|
53
|
-
|
|
89
|
+
// A token route cannot be simulated until its allowance exists, so it
|
|
90
|
+
// is sized from the route's own gas and the swap fallback instead.
|
|
91
|
+
if (coin.id || !quote?.tx) {
|
|
54
92
|
return null;
|
|
55
93
|
}
|
|
56
94
|
const { to, data, value } = quote.tx;
|
|
@@ -95,7 +133,7 @@ export const getEvmFeeQuote = async ({ keysignPayload, feeSettings, thirdPartyGa
|
|
|
95
133
|
if (feeSettings) {
|
|
96
134
|
return {
|
|
97
135
|
gasLimit: feeSettings.gasLimit,
|
|
98
|
-
baseFeePerGas: await
|
|
136
|
+
baseFeePerGas: await getBaseFeePerGas(),
|
|
99
137
|
maxPriorityFeePerGas: feeSettings.maxPriorityFeePerGas,
|
|
100
138
|
};
|
|
101
139
|
}
|
|
@@ -136,11 +174,9 @@ export const getEvmFeeQuote = async ({ keysignPayload, feeSettings, thirdPartyGa
|
|
|
136
174
|
data: estimateGasParams.data,
|
|
137
175
|
})), undefined)
|
|
138
176
|
: undefined;
|
|
139
|
-
const
|
|
140
|
-
const baseFeePerGas = baseFeeMultiplier(await getEvmBaseFee(chain));
|
|
141
|
-
const maxPriorityFeePerGas = clampEvmPriorityFee(chain, await getEvmMaxPriorityFeePerGas(chain));
|
|
177
|
+
const [baseFeePerGas, maxPriorityFeePerGas] = await Promise.all([getBaseFeePerGas(), getMaxPriorityFeePerGas()]);
|
|
142
178
|
return {
|
|
143
|
-
gasLimit,
|
|
179
|
+
gasLimit: resolveGasLimit(estimatedGasLimit),
|
|
144
180
|
baseFeePerGas,
|
|
145
181
|
maxPriorityFeePerGas,
|
|
146
182
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEvmFeeQuote.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/fee/resolvers/evm/getEvmFeeQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
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":"bittensor.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/bittensor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAA;
|
|
1
|
+
{"version":3,"file":"bittensor.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/bittensor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAA;AAEhG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAsBrD,eAAO,MAAM,sBAAsB,GACjC,MAAM,UAAU,KACf;IAAE,QAAQ,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAgBtE,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,iCAGvC;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;CACvB,KAAG,UAAU,EA+Bb,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { buildBittensorSigningPayload, } from '@vultisig/core-chain/chains/bittensor/signing/buildExtrinsic';
|
|
2
2
|
import { concatBytes } from '@vultisig/core-chain/chains/bittensor/signing/scale';
|
|
3
|
+
import { parseNonNegativeBigInt } from '@vultisig/lib-utils/bigint/parseNonNegativeBigInt';
|
|
3
4
|
import { getBlockchainSpecificValue } from '../../chainSpecific/KeysignChainSpecific.js';
|
|
4
5
|
import { resolvePolkadotToAddress } from '../../utils/resolvePolkadotToAddress.js';
|
|
5
6
|
/**
|
|
@@ -30,6 +31,13 @@ export const decodeBittensorTxInput = (data) => {
|
|
|
30
31
|
return { callData, signedExtra, payload };
|
|
31
32
|
};
|
|
32
33
|
export const getBittensorSigningInputs = ({ keysignPayload, walletCore, }) => {
|
|
34
|
+
// The Bittensor balance transfer extrinsic has no remark or memo field, so a
|
|
35
|
+
// memo here could only be dropped on the floor. Fail loudly rather than
|
|
36
|
+
// silently signing a transfer that omits data the caller believes is
|
|
37
|
+
// attached - matching the Sui memo throw in the sibling resolver.
|
|
38
|
+
if (keysignPayload.memo) {
|
|
39
|
+
throw new Error('Bittensor transactions do not support a memo');
|
|
40
|
+
}
|
|
33
41
|
const toAddress = resolvePolkadotToAddress({
|
|
34
42
|
keysignPayload,
|
|
35
43
|
walletCore,
|
|
@@ -37,7 +45,7 @@ export const getBittensorSigningInputs = ({ keysignPayload, walletCore, }) => {
|
|
|
37
45
|
const { recentBlockHash, nonce, currentBlockNumber, specVersion, transactionVersion, genesisHash } = getBlockchainSpecificValue(keysignPayload.blockchainSpecific, 'polkadotSpecific');
|
|
38
46
|
const params = {
|
|
39
47
|
toAddress,
|
|
40
|
-
amount:
|
|
48
|
+
amount: parseNonNegativeBigInt(keysignPayload.toAmount),
|
|
41
49
|
nonce: Number(nonce),
|
|
42
50
|
blockNumber: Number(currentBlockNumber),
|
|
43
51
|
blockHash: recentBlockHash,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bittensor.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/bittensor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,4BAA4B,GAC7B,MAAM,8DAA8D,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAA;
|
|
1
|
+
{"version":3,"file":"bittensor.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/bittensor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cardano.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cardano.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAanD,eAAO,MAAM,uBAAuB,EAAE,qBAAqB,CAAC,SAAS,CAqFpE,CAAA"}
|
|
@@ -9,6 +9,9 @@ import { getBlockchainSpecificValue } from '../../chainSpecific/KeysignChainSpec
|
|
|
9
9
|
import { buildCip20AuxData } from '../../../tx/compile/cardano/buildCip20AuxData.js';
|
|
10
10
|
/** Encodes a token amount as big-endian bytes for WalletCore's Cardano proto. */
|
|
11
11
|
const amountToBytes = (amount) => {
|
|
12
|
+
if (amount < 0n) {
|
|
13
|
+
throw new RangeError('Cardano token amount must be non-negative');
|
|
14
|
+
}
|
|
12
15
|
const hex = amount.toString(16);
|
|
13
16
|
const padded = hex.length % 2 === 0 ? hex : `0${hex}`;
|
|
14
17
|
return Uint8Array.from(Buffer.from(padded, 'hex'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cardano.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cardano.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polkadot.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/polkadot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"polkadot.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/polkadot.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,eAAO,MAAM,wBAAwB,EAAE,qBAAqB,CAAC,UAAU,CAiEtE,CAAA"}
|
|
@@ -2,6 +2,7 @@ import { Buffer } from 'buffer';
|
|
|
2
2
|
import { getCoinType } from '@vultisig/core-chain/coin/coinType';
|
|
3
3
|
import { bigIntToHex } from '@vultisig/lib-utils/bigint/bigIntToHex';
|
|
4
4
|
import { stripHexPrefix } from '@vultisig/lib-utils/hex/stripHexPrefix';
|
|
5
|
+
import { parseNonNegativeBigInt } from '@vultisig/lib-utils/bigint/parseNonNegativeBigInt';
|
|
5
6
|
import { TW } from '@trustwallet/wallet-core';
|
|
6
7
|
import Long from 'long';
|
|
7
8
|
import { getBlockchainSpecificValue } from '../../chainSpecific/KeysignChainSpecific.js';
|
|
@@ -15,7 +16,7 @@ export const getPolkadotSigningInputs = ({ keysignPayload, walletCore }) => {
|
|
|
15
16
|
});
|
|
16
17
|
const { recentBlockHash, nonce, currentBlockNumber, specVersion, transactionVersion, genesisHash } = getBlockchainSpecificValue(keysignPayload.blockchainSpecific, 'polkadotSpecific');
|
|
17
18
|
// Amount: converted to hexadecimal, stripped of '0x'
|
|
18
|
-
const amountHex = Buffer.from(stripHexPrefix(bigIntToHex(
|
|
19
|
+
const amountHex = Buffer.from(stripHexPrefix(bigIntToHex(parseNonNegativeBigInt(keysignPayload.toAmount))), 'hex');
|
|
19
20
|
// methodIndex 3 = transfer_keep_alive on Asset Hub (statemint pallet_balances).
|
|
20
21
|
// method 0 = transfer_allow_death which can reap the sender's account when the
|
|
21
22
|
// remaining balance drops below ED (0.01 DOT). app + mcp-ts already use method 3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polkadot.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/polkadot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAA;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAA;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAG/E,MAAM,CAAC,MAAM,wBAAwB,GAAsC,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE;IAC5G,MAAM,KAAK,GAAG,eAAe,CAAC,cAAc,CAAC,CAAA;IAC7C,MAAM,SAAS,GAAG,wBAAwB,CAAC;QACzC,cAAc;QACd,UAAU;KACX,CAAC,CAAA;IAEF,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAChG,0BAA0B,CAAC,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAA;IAEnF,qDAAqD;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"polkadot.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/polkadot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAA;AAC1F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAA;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAA;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAG/E,MAAM,CAAC,MAAM,wBAAwB,GAAsC,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE;IAC5G,MAAM,KAAK,GAAG,eAAe,CAAC,cAAc,CAAC,CAAA;IAC7C,MAAM,SAAS,GAAG,wBAAwB,CAAC;QACzC,cAAc;QACd,UAAU;KACX,CAAC,CAAA;IAEF,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAChG,0BAA0B,CAAC,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAA;IAEnF,qDAAqD;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,sBAAsB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAElH,gFAAgF;IAChF,+EAA+E;IAC/E,kFAAkF;IAClF,8CAA8C;IAC9C,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;QACvD,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACjD,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,CAAC;SACf,CAAC;KACH,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;QACnE,WAAW;QACX,SAAS;QACT,KAAK,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC;QAChC,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,CAAC;KACd,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/C,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IACpF,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAExC,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;QACvC,WAAW,EAAE,sBAAsB;QACnC,MAAM,EAAE,UAAU;KACnB,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU;QACV,KAAK;KACN,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAc,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAEvG,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC9D,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;QAClD,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC;QACpC,SAAS,EAAE,UAAU,CAAC,eAAe,CAAC;QACtC,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,WAAW;QACxB,kBAAkB,EAAE,kBAAkB;QACtC,OAAO,EAAE,UAAU;QACnB,GAAG,EAAE,GAAG;QACR,WAAW,EAAE,OAAO;KACrB,CAAC,CAAA;IAEF,OAAO,CAAC,KAAK,CAAC,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/ripple.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/ripple.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAiEnD,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,CAAC,QAAQ,CA6QlE,CAAA"}
|
|
@@ -3,6 +3,7 @@ import { formatIssuedCurrencyValue, getSignableIssuedCurrencyAmount, parseIssued
|
|
|
3
3
|
import { attempt } from '@vultisig/lib-utils/attempt';
|
|
4
4
|
import { assertBoundedInt } from '@vultisig/lib-utils/bigint/assertBoundedInt';
|
|
5
5
|
import { assertField } from '@vultisig/lib-utils/record/assertField';
|
|
6
|
+
import { parseNonNegativeBigInt } from '@vultisig/lib-utils/bigint/parseNonNegativeBigInt';
|
|
6
7
|
import { TW } from '@trustwallet/wallet-core';
|
|
7
8
|
import Long from 'long';
|
|
8
9
|
import { TransactionType } from '../../../types/vultisig/keysign/v1/blockchain_specific_pb.js';
|
|
@@ -132,7 +133,7 @@ export const getRippleSigningInputs = ({ keysignPayload }) => {
|
|
|
132
133
|
iou.issuer === issuer &&
|
|
133
134
|
typeof iou.value === 'string' &&
|
|
134
135
|
attempt(() => parseIssuedCurrencyValue(iou.value)).data ===
|
|
135
|
-
parseIssuedCurrencyValue(formatIssuedCurrencyValue(
|
|
136
|
+
parseIssuedCurrencyValue(formatIssuedCurrencyValue(parseNonNegativeBigInt(keysignPayload.toAmount), coin.decimals));
|
|
136
137
|
if (!matches) {
|
|
137
138
|
throw amountMismatch;
|
|
138
139
|
}
|
|
@@ -179,7 +180,7 @@ export const getRippleSigningInputs = ({ keysignPayload }) => {
|
|
|
179
180
|
throw new Error('XRP issued-currency operation requires a coin carrying a token id');
|
|
180
181
|
}
|
|
181
182
|
const { currency, issuer } = parseRippleTokenId(coin.contractAddress);
|
|
182
|
-
const amount =
|
|
183
|
+
const amount = parseNonNegativeBigInt(keysignPayload.toAmount);
|
|
183
184
|
if (!isRippleTrustSet(keysignPayload) && amount === 0n) {
|
|
184
185
|
throw new Error('XRP issued-currency Payment amount must be positive');
|
|
185
186
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/ripple.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ripple.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/ripple.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/solana/send.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAA;
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/solana/send.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAA;AAIhG,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAMzD,KAAK,8BAA8B,GAAG;IACpC,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,iCAGvC,8BAA8B,KAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YA0FnD,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { solanaConfig } from '@vultisig/core-chain/chains/solana/solanaConfig';
|
|
2
2
|
import { assertBoundedInt } from '@vultisig/lib-utils/bigint/assertBoundedInt';
|
|
3
|
+
import { parseNonNegativeBigInt } from '@vultisig/lib-utils/bigint/parseNonNegativeBigInt';
|
|
3
4
|
import { maxBigInt } from '@vultisig/lib-utils/math/maxBigInt';
|
|
4
5
|
import { TW } from '@trustwallet/wallet-core';
|
|
5
6
|
import Long from 'long';
|
|
@@ -14,7 +15,7 @@ export const getSolanaSendSigningInput = ({ keysignPayload, walletCore, }) => {
|
|
|
14
15
|
// Floor at the config minimum so co-signers all encode the same
|
|
15
16
|
// `setComputeUnitPrice` instruction when the wire value is missing.
|
|
16
17
|
const priorityFeePrice = maxBigInt(priorityFee ? BigInt(assertBoundedInt(priorityFee, 'uint64')) : 0n, BigInt(solanaConfig.priorityFeePrice));
|
|
17
|
-
const amount =
|
|
18
|
+
const amount = assertBoundedInt(parseNonNegativeBigInt(keysignPayload.toAmount).toString(), 'uint64');
|
|
18
19
|
const sender = coin.address;
|
|
19
20
|
const recipient = keysignPayload.toAddress;
|
|
20
21
|
const getSigningInputCoinSpecificFields = () => {
|
|
@@ -22,7 +23,7 @@ export const getSolanaSendSigningInput = ({ keysignPayload, walletCore, }) => {
|
|
|
22
23
|
return {
|
|
23
24
|
transferTransaction: TW.Solana.Proto.Transfer.create({
|
|
24
25
|
recipient,
|
|
25
|
-
value: Long.fromString(amount
|
|
26
|
+
value: Long.fromString(amount, true),
|
|
26
27
|
memo: keysignPayload.memo,
|
|
27
28
|
}),
|
|
28
29
|
};
|
|
@@ -33,7 +34,7 @@ export const getSolanaSendSigningInput = ({ keysignPayload, walletCore, }) => {
|
|
|
33
34
|
const tokenTransferSharedFields = {
|
|
34
35
|
tokenMintAddress: coin.id,
|
|
35
36
|
senderTokenAddress: fromTokenAssociatedAddress,
|
|
36
|
-
amount: Long.fromString(amount
|
|
37
|
+
amount: Long.fromString(amount, true),
|
|
37
38
|
decimals: coin.decimals,
|
|
38
39
|
tokenProgramId,
|
|
39
40
|
memo: keysignPayload.memo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/solana/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAA;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,EAAE,EAAE,EAAc,MAAM,0BAA0B,CAAA;AACzD,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAO9D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,cAAc,EACd,UAAU,GACqB,EAAgC,EAAE;IACjE,MAAM,IAAI,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;IAE3C,MAAM,EACJ,eAAe,EACf,0BAA0B,EAC1B,wBAAwB,EACxB,SAAS,EACT,YAAY,EACZ,WAAW,GACZ,GAAG,0BAA0B,CAAC,cAAc,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAA;IAEnF,sEAAsE;IACtE,0EAA0E;IAC1E,4EAA4E;IAC5E,gEAAgE;IAChE,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,SAAS,CAChC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAClE,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CACtC,CAAA;IAED,MAAM,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/solana/send.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/tron.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/tron.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AA4BnD,eAAO,MAAM,oBAAoB,EAAE,qBAAqB,CAAC,MAAM,CAwT9D,CAAA"}
|