@vultisig/core-mpc 1.12.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +70 -0
- package/dist/chains/cosmos/qbtc/QBTCHelper.js +11 -0
- package/dist/chains/cosmos/qbtc/QBTCHelper.js.map +1 -1
- package/dist/chains/cosmos/qbtc/QBTCTx.d.ts +1 -1
- package/dist/chains/cosmos/qbtc/QBTCTx.d.ts.map +1 -1
- package/dist/chains/cosmos/qbtc/QBTCTx.js +8 -2
- package/dist/chains/cosmos/qbtc/QBTCTx.js.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/cosmos/index.d.ts.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/cosmos/index.js +6 -4
- package/dist/keysign/chainSpecific/resolvers/cosmos/index.js.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/maya.js +2 -2
- package/dist/keysign/chainSpecific/resolvers/maya.js.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/sui/index.d.ts.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/sui/index.js +51 -6
- package/dist/keysign/chainSpecific/resolvers/sui/index.js.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/thor.js +2 -2
- package/dist/keysign/chainSpecific/resolvers/thor.js.map +1 -1
- package/dist/keysign/signingInputs/index.d.ts.map +1 -1
- package/dist/keysign/signingInputs/index.js +12 -0
- package/dist/keysign/signingInputs/index.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/cardano.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/cardano.js +17 -2
- package/dist/keysign/signingInputs/resolvers/cardano.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/cosmos/index.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/cosmos/index.js +6 -2
- package/dist/keysign/signingInputs/resolvers/cosmos/index.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/evm/index.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/evm/index.js +37 -0
- package/dist/keysign/signingInputs/resolvers/evm/index.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/solana/index.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/solana/index.js +43 -14
- package/dist/keysign/signingInputs/resolvers/solana/index.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/solana/rawTx.d.ts +52 -0
- package/dist/keysign/signingInputs/resolvers/solana/rawTx.d.ts.map +1 -0
- package/dist/keysign/signingInputs/resolvers/solana/rawTx.js +84 -0
- package/dist/keysign/signingInputs/resolvers/solana/rawTx.js.map +1 -0
- package/dist/keysign/signingInputs/resolvers/sui.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/sui.js +13 -6
- package/dist/keysign/signingInputs/resolvers/sui.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/jetton.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/jetton.js +4 -6
- package/dist/keysign/signingInputs/resolvers/ton/jetton.js.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/native.d.ts +2 -0
- package/dist/keysign/signingInputs/resolvers/ton/native.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ton/native.js +25 -4
- package/dist/keysign/signingInputs/resolvers/ton/native.js.map +1 -1
- package/dist/keysign/suiCoinSelection.d.ts +20 -0
- package/dist/keysign/suiCoinSelection.d.ts.map +1 -0
- package/dist/keysign/suiCoinSelection.js +88 -0
- package/dist/keysign/suiCoinSelection.js.map +1 -0
- package/dist/keysign/swap/assertNativeSwapReadyForBroadcast.d.ts +26 -0
- package/dist/keysign/swap/assertNativeSwapReadyForBroadcast.d.ts.map +1 -0
- package/dist/keysign/swap/assertNativeSwapReadyForBroadcast.js +96 -0
- package/dist/keysign/swap/assertNativeSwapReadyForBroadcast.js.map +1 -0
- package/dist/keysign/swap/build.d.ts.map +1 -1
- package/dist/keysign/swap/build.js +5 -1
- package/dist/keysign/swap/build.js.map +1 -1
- package/dist/keysign/swap/buildLimitSwapKeysignPayload.d.ts +70 -0
- package/dist/keysign/swap/buildLimitSwapKeysignPayload.d.ts.map +1 -0
- package/dist/keysign/swap/buildLimitSwapKeysignPayload.js +160 -0
- package/dist/keysign/swap/buildLimitSwapKeysignPayload.js.map +1 -0
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.d.ts.map +1 -1
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js +12 -0
- package/dist/security/blockaid/tx/utils/getCompiledTxsForBlockaidInput.js.map +1 -1
- package/dist/swap/utils/getSwapTrackingUrl.d.ts.map +1 -1
- package/dist/swap/utils/getSwapTrackingUrl.js +5 -60
- package/dist/swap/utils/getSwapTrackingUrl.js.map +1 -1
- package/dist/tx/compile/compileTx.d.ts.map +1 -1
- package/dist/tx/compile/compileTx.js +28 -0
- package/dist/tx/compile/compileTx.js.map +1 -1
- package/dist/tx/preSigningHashes/index.d.ts.map +1 -1
- package/dist/tx/preSigningHashes/index.js +10 -0
- package/dist/tx/preSigningHashes/index.js.map +1 -1
- package/package.json +23 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,75 @@
|
|
|
1
1
|
# @vultisig/core-mpc
|
|
2
2
|
|
|
3
|
+
## 1.13.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#1518](https://github.com/vultisig/vultisig-sdk/pull/1518) [`aa47b4a`](https://github.com/vultisig/vultisig-sdk/commit/aa47b4a03c7391d13c738cba68b13a1526d1c502) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - Add `buildLimitSwapKeysignPayload`, the step that turns a THORChain `=<` limit-order memo into a signable transaction.
|
|
8
|
+
|
|
9
|
+
`buildLimitSwapMemo` produced the memo and `getThorchainMemoAsset` the asset notation, but nothing carried either into a `KeysignPayload` — limit orders could be composed and never placed. This builder branches on the source asset, mirroring iOS `LimitSwapPayloadAssembler`:
|
|
10
|
+
|
|
11
|
+
- **Native RUNE** — `MsgDeposit` on THORChain itself; no inbound vault, `toAddress` carries the signer's own address as the placeholder the Cosmos signer ignores.
|
|
12
|
+
- **Native gas asset** — transfer to the live Asgard inbound vault with the memo in tx `data` / `OP_RETURN`, no swap payload.
|
|
13
|
+
- **ERC20** — the router's `depositWithExpiry` call plus an `approve` when allowance is short, both in one ceremony. A token source signed without a swap payload would fall through to a plain ERC-20 transfer, dropping the memo and stranding the tokens on the router.
|
|
14
|
+
|
|
15
|
+
Every gate fails closed: the `EnableAdvSwapQueue` mimir is re-checked at sign time (it can flip while the user sits on Verify, and a `=<` order on a network with the queue off can execute as an unprotected market swap), the memo must actually be a limit memo, RUNE deposits are blocked on THORChain's global trading pause — including when the inbound list is unverifiable, since RUNE bypasses the per-chain halt filter entirely — and external sources must resolve a live, non-halted inbound whose address is then used as the destination.
|
|
16
|
+
|
|
17
|
+
Also exports `getAdvancedSwapQueueEnabled` (the mimir gate), `findLimitSwapInbound` / `shouldBlockRuneDeposit` (pure inbound selection), and `assertLimitSwapMemo`.
|
|
18
|
+
|
|
19
|
+
`assertValidThorchainDepositMemo` is deliberately unchanged: it guards the standalone `prepareThorchainMsgDepositTxFromKeys` tool and is not on the keysign-payload path, so excluding swap-shaped memos there stays correct.
|
|
20
|
+
|
|
21
|
+
No EVM gas-limit override is applied. iOS pins a native-EVM limit deposit to 120000 to match its own market path, but here both paths put the memo on `keysignPayload.memo` and neither sets a general swap payload, so both already floor at `deriveEvmGasLimit`'s 600000 data-tx limit. Forcing 120000 would make the limit path diverge from the market path and risk under-gassing.
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- [#1419](https://github.com/vultisig/vultisig-sdk/pull/1419) [`1292e83`](https://github.com/vultisig/vultisig-sdk/commit/1292e83b1d370eff35ecd95b94e83689b724ca36) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Reject secured-asset signing payloads whose chain prefix is not in the canonical native-swap registry.
|
|
26
|
+
|
|
27
|
+
- Updated dependencies [[`1292e83`](https://github.com/vultisig/vultisig-sdk/commit/1292e83b1d370eff35ecd95b94e83689b724ca36), [`aa47b4a`](https://github.com/vultisig/vultisig-sdk/commit/aa47b4a03c7391d13c738cba68b13a1526d1c502), [`b8d0639`](https://github.com/vultisig/vultisig-sdk/commit/b8d063904673890f0a956a56f6474d678ceaba3c), [`32e5d36`](https://github.com/vultisig/vultisig-sdk/commit/32e5d369ae4723299a6cb8f694da1782dbf207c2)]:
|
|
28
|
+
- @vultisig/core-chain@2.28.0
|
|
29
|
+
|
|
30
|
+
## 1.12.1
|
|
31
|
+
|
|
32
|
+
### Patch Changes
|
|
33
|
+
|
|
34
|
+
- [#1474](https://github.com/vultisig/vultisig-sdk/pull/1474) [`c443b9c`](https://github.com/vultisig/vultisig-sdk/commit/c443b9ce699ef76f1407d0386ed20fbc7e3f253f) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Route SwapKit transaction links through its public tracker across the shared core and SDK APIs.
|
|
35
|
+
|
|
36
|
+
- [#1423](https://github.com/vultisig/vultisig-sdk/pull/1423) [`6c64ce3`](https://github.com/vultisig/vultisig-sdk/commit/6c64ce39888097d02881427e3cc4c9a388714beb) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - Fix Cardano send-max building an unbroadcastable zero-fee transaction. WalletCore's Cardano planner ignores `forceFee` whenever `useMaxAmount` is set (it returns the full input as the amount with fee=0), so a send-max is now built as an explicit `(totalInput - fee)` transfer with the converged fee forced and `useMaxAmount: false` - yielding a valid fee-bearing tx with the balance fully consumed (no change output).
|
|
37
|
+
|
|
38
|
+
- [#1473](https://github.com/vultisig/vultisig-sdk/pull/1473) [`338ef32`](https://github.com/vultisig/vultisig-sdk/commit/338ef3229d778bb012d915977f512121d330ac1f) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Expose the native-swap expiry and inbound-vault guard from core MPC so shipping
|
|
39
|
+
wallets and the SDK facade can share one pre-signing or pre-broadcast check.
|
|
40
|
+
|
|
41
|
+
- [#1415](https://github.com/vultisig/vultisig-sdk/pull/1415) [`01a66cf`](https://github.com/vultisig/vultisig-sdk/commit/01a66cf5c0110ea1ea439ddbca8e6b75179fc0c5) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Preserve exact uint64 Cosmos account sequences through account lookup and signing payload construction.
|
|
42
|
+
|
|
43
|
+
- [#1378](https://github.com/vultisig/vultisig-sdk/pull/1378) [`ba14218`](https://github.com/vultisig/vultisig-sdk/commit/ba1421829bd4d278b9e6524fa53cf0dd18e96943) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - fix(qbtc): thread proto field-7 `gasLimit` into the QBTC AuthInfo encoder so a QBTC tx that supplies a simulated gas limit is no longer capped at the flat `300000` default. This is a no-op while field 7 is unset, which is the case for every QBTC tx today (the QBTC chain-specific resolver never populates it). Adds golden vectors pinning the QBTC fee/gas split: fee amount from field-3 `gas`, gas limit from field-7-or-300000. QBTC's fee is deliberately flat and, unlike the shared `resolveCosmosGasFee` path, does not scale with the limit.
|
|
44
|
+
|
|
45
|
+
- [#1414](https://github.com/vultisig/vultisig-sdk/pull/1414) [`300dabf`](https://github.com/vultisig/vultisig-sdk/commit/300dabf232bfe49d9628d4026c55bb72b6472b97) Thanks [@rcoderdev](https://github.com/rcoderdev)! - For EVM swap providers that legitimately distinguish the allowance executor
|
|
46
|
+
from the swap router, use the quote's approval address for SDK allowance checks
|
|
47
|
+
and approval payloads while retaining the router as the signed destination.
|
|
48
|
+
|
|
49
|
+
- [#1377](https://github.com/vultisig/vultisig-sdk/pull/1377) [`a971dfa`](https://github.com/vultisig/vultisig-sdk/commit/a971dfa99274b419863f83a078868f25a8241235) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - Re-assert the aggregator router allow-list (1inch/kyber) and the Solana Jupiter
|
|
50
|
+
program + fund-movement guard on the MPC co-signer signing-input path, not only
|
|
51
|
+
at quote construction. Every co-signer independently rebuilds the signing input
|
|
52
|
+
from the shared KeysignPayload, so a compromised initiator could otherwise hand
|
|
53
|
+
a co-signer an unvalidated swap destination (EVM `quote.tx.to`) or a spliced
|
|
54
|
+
drain instruction (Solana `quote.tx.data`) and have it signed verbatim. Both
|
|
55
|
+
guards are pure gates: they fail closed for enforced providers or no-op, and
|
|
56
|
+
never mutate the signed bytes, so cross-device pre-signing hash agreement is
|
|
57
|
+
unchanged.
|
|
58
|
+
|
|
59
|
+
- [#1215](https://github.com/vultisig/vultisig-sdk/pull/1215) [`77e2401`](https://github.com/vultisig/vultisig-sdk/commit/77e24018c906a8dcf1cb21d2c1fc8e337a4b2b8e) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - Sign dApp-supplied raw Solana transactions over their original message bytes instead of a WalletCore re-encode. The signSolana path previously routed raw transactions through TransactionDecoder + SigningInput.rawMessage, letting WalletCore re-encode the message to form the ed25519 pre-image - not guaranteed byte-identical for v0+ALT transactions across WalletCore versions, which breaks mixed-vault co-signing with iOS/Android (which already sign the original bytes, ios#4419 / android#5223). The signature is now spliced into the original transaction bytes at the fee-payer slot for assembly.
|
|
60
|
+
|
|
61
|
+
- [#1275](https://github.com/vultisig/vultisig-sdk/pull/1275) [`83df849`](https://github.com/vultisig/vultisig-sdk/commit/83df8496aa01cfe7d59f48b32686ba863cf87a02) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Match iOS Sui send coin selection by bounding native inputs to the largest
|
|
62
|
+
objects covering amount plus gas, selecting token inputs by largest covering
|
|
63
|
+
objects, and choosing a native gas object that covers token-send gas.
|
|
64
|
+
|
|
65
|
+
- [#1377](https://github.com/vultisig/vultisig-sdk/pull/1377) [`a971dfa`](https://github.com/vultisig/vultisig-sdk/commit/a971dfa99274b419863f83a078868f25a8241235) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - Bind the ERC-20 approval spender to the verified swap router on the co-signer signing-input path for enforced aggregator providers (1inch/kyber). Follow-up to the signing-path router guard: `quote.tx.to` was re-asserted, but `erc20ApprovePayload.spender` is a separate wire field the approve resolver reads verbatim, so a payload could pass the router check yet still carry an approve granting an attacker an allowance (approval-drain). The bind runs in the approve branch (where the field is still present) and requires `spender === quote.tx.to` for enforced providers; unenforced providers stay unbound (notably cowswap, whose spender is legitimately the GPv2VaultRelayer, not `tx.to`). Monotonic gate: throws or no-ops, never mutates signed bytes. Initiators set the two equal by construction, so only a hand-built/tampered payload trips it.
|
|
66
|
+
|
|
67
|
+
- [#1274](https://github.com/vultisig/vultisig-sdk/pull/1274) [`ffc174c`](https://github.com/vultisig/vultisig-sdk/commit/ffc174c56d72990e6ee387ac389c96a2f4812cf5) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Reject negative TON signing amounts before byte encoding so native, dApp-supplied
|
|
68
|
+
TON messages, and Jetton helper amounts cannot silently truncate a `-`-prefixed
|
|
69
|
+
hex value.
|
|
70
|
+
- Updated dependencies [[`5d46269`](https://github.com/vultisig/vultisig-sdk/commit/5d46269396fd0dbcf9d84f0201a494dffafc1a36), [`9d50ac5`](https://github.com/vultisig/vultisig-sdk/commit/9d50ac5c586d058aabdbfb413e7be163a222da89), [`c443b9c`](https://github.com/vultisig/vultisig-sdk/commit/c443b9ce699ef76f1407d0386ed20fbc7e3f253f), [`a4d8bbe`](https://github.com/vultisig/vultisig-sdk/commit/a4d8bbe81a94019aea5193a411a091ccb2e98682), [`69a3f75`](https://github.com/vultisig/vultisig-sdk/commit/69a3f75c265e19682e6dbdac0fdb640c53d73b33), [`e3d8568`](https://github.com/vultisig/vultisig-sdk/commit/e3d8568a04a6dcd977ccaeeeb5bcf5da080fd275), [`47a63df`](https://github.com/vultisig/vultisig-sdk/commit/47a63dfc8613405b7be1105233627e66a163d7c7), [`ceccf56`](https://github.com/vultisig/vultisig-sdk/commit/ceccf5633ebd7d838e26e2fcbac151c52d26af85), [`b5f880a`](https://github.com/vultisig/vultisig-sdk/commit/b5f880a2dea1e06239b6ccb1a35fbdb4994d5917), [`0c4a090`](https://github.com/vultisig/vultisig-sdk/commit/0c4a090bc4f3868e2a3a20c9f12742344cf8350e), [`8a0bca6`](https://github.com/vultisig/vultisig-sdk/commit/8a0bca688ec606292df587559115cafcc3287fcf), [`8c02c8c`](https://github.com/vultisig/vultisig-sdk/commit/8c02c8c7e8463b5d57fbd5c338a1f95c6129feb2), [`01a66cf`](https://github.com/vultisig/vultisig-sdk/commit/01a66cf5c0110ea1ea439ddbca8e6b75179fc0c5), [`7226d49`](https://github.com/vultisig/vultisig-sdk/commit/7226d49d42cec673465aac5b49b54d4e47628ab6), [`0de8684`](https://github.com/vultisig/vultisig-sdk/commit/0de8684706f1b538a459acca0e55bf15c95a91f3), [`a971dfa`](https://github.com/vultisig/vultisig-sdk/commit/a971dfa99274b419863f83a078868f25a8241235), [`d01ac2e`](https://github.com/vultisig/vultisig-sdk/commit/d01ac2ee87d080def76454adcf5313726a916ed8), [`358c27b`](https://github.com/vultisig/vultisig-sdk/commit/358c27ba3bdd94813d00ec966ba43c8cc46f49e0), [`a971dfa`](https://github.com/vultisig/vultisig-sdk/commit/a971dfa99274b419863f83a078868f25a8241235), [`3a40960`](https://github.com/vultisig/vultisig-sdk/commit/3a40960cc6391b69bbe6371874889b64399d64b9), [`3bc880a`](https://github.com/vultisig/vultisig-sdk/commit/3bc880a06b90fa64793983ba498f11fdc55e2115)]:
|
|
71
|
+
- @vultisig/core-chain@2.27.0
|
|
72
|
+
|
|
3
73
|
## 1.12.0
|
|
4
74
|
|
|
5
75
|
### Minor Changes
|
|
@@ -81,6 +81,17 @@ const buildTxComponents = ({ keysignPayload, cosmosSpecific }) => {
|
|
|
81
81
|
const authInfoBytes = buildQBTCAuthInfo({
|
|
82
82
|
pubKeyData,
|
|
83
83
|
sequence: cosmosSpecific.sequence,
|
|
84
|
+
// cosmosSpecific.gas is the fee AMOUNT (proto field 3 - "the fee AMOUNT (not a limit)"), NOT the
|
|
85
|
+
// gas limit. The gas limit is proto field 7 (cosmosSpecific.gasLimit), the per-tx /simulate
|
|
86
|
+
// estimate; thread it through so a QBTC tx that needs more headroom than the flat default (e.g. an
|
|
87
|
+
// IBC transfer) uses the simulated limit. Undefined (the common case today) falls back to
|
|
88
|
+
// buildQBTCAuthInfo's 300_000n default, so this is a no-op when the caller doesn't set field 7.
|
|
89
|
+
// gasLimit is part of the SignDoc, so every co-signing device MUST derive it identically - keeping
|
|
90
|
+
// the same field-7-or-default rule the WalletCore cosmos path uses keeps QBTC co-signers in lockstep.
|
|
91
|
+
// NOTE: only the LIMIT tracks field 7. The fee AMOUNT below stays flat (== cosmosSpecific.gas) - QBTC
|
|
92
|
+
// deliberately does NOT scale the fee with the limit the way resolveCosmosGasFee does for standard
|
|
93
|
+
// cosmos, and its fee-display resolver returns the same raw gas, so shown == signed with no drift.
|
|
94
|
+
gasLimit: cosmosSpecific.gasLimit,
|
|
84
95
|
fee: {
|
|
85
96
|
denom,
|
|
86
97
|
amount: cosmosSpecific.gas.toString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QBTCHelper.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/chains/cosmos/qbtc/QBTCHelper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QBTCHelper.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/chains/cosmos/qbtc/QBTCHelper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAE5E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AAKpH,OAAO,EAAE,iBAAiB,EAAE,8BAA8B,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE5F,MAAM,cAAc,GAAG,8BAA8B,CAAA;AACrD,MAAM,kBAAkB,GAAG,2CAA2C,CAAA;AACtE,MAAM,cAAc,GAAG,6BAA6B,CAAA;AAEpD,gDAAgD;AAChD,MAAM,KAAK,GAAG,MAAM,CAAA;AAOpB,sEAAsE;AACtE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EAAE,cAAc,EAAE,cAAc,EAAoB,EAAgB,EAAE;IAC9G,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAA;IAChE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;AAC1B,CAAC,CAAA;AAMD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,cAAc,EACd,cAAc,EACd,UAAU,GACiB,EAG3B,EAAE;IACF,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC;QACrD,cAAc;QACd,cAAc;KACf,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,8BAA8B,CAAC;QAC7C,SAAS;QACT,aAAa;QACb,aAAa,EAAE,cAAc,CAAC,aAAa;KAC5C,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC5D,MAAM,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,2BAA2B,OAAO,EAAE,CAAC,CAAA;IACtF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IAErD,MAAM,KAAK,GAAG,cAAc,CAAC;QAC3B,SAAS;QACT,aAAa;QACb,SAAS,EAAE,OAAO;KACnB,CAAC,CAAA;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,QAAQ,EAAE,aAAa;QACvB,IAAI,EAAE,qBAAqB;KAC5B,CAAC,CAAA;IACF,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;IAEhF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,EAAE,cAAc,EAAE,cAAc,EAAoB,EAAE,EAAE;IAC5E,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC;QACrD,cAAc;QACd,cAAc;KACf,CAAC,CAAA;IACF,OAAO,8BAA8B,CAAC;QACpC,SAAS;QACT,aAAa;QACb,aAAa,EAAE,cAAc,CAAC,aAAa;KAC5C,CAAC,CAAA;AACJ,CAAC,CAAA;AAOD,MAAM,iBAAiB,GAAG,CAAC,EAAE,cAAc,EAAE,cAAc,EAAoB,EAA2B,EAAE;IAC1G,yEAAyE;IACzE,0EAA0E;IAC1E,6EAA6E;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAA;IACnC,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACnC,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC;YAC1D,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC;SACnE,CAAA;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAClC,wEAAwE;QACxE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;IAC1F,CAAC;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;IAExD,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAA;IACjE,MAAM,aAAa,GAAG,iBAAiB,CAAC;QACtC,UAAU;QACV,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,iGAAiG;QACjG,4FAA4F;QAC5F,mGAAmG;QACnG,0FAA0F;QAC1F,gGAAgG;QAChG,mGAAmG;QACnG,sGAAsG;QACtG,sGAAsG;QACtG,mGAAmG;QACnG,mGAAmG;QACnG,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,GAAG,EAAE;YACH,KAAK;YACL,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE;SACtC;KACF,CAAC,CAAA;IACF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA;AACrC,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,EAAE,cAAc,EAAE,cAAc,EAAoB,EAAc,EAAE;IACvF,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,cAAc,CAAA;IAC1D,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,CAAA;IAC7B,IAAI,MAAkB,CAAA;IAEtB,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,mBAAmB,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3D,CAAC;SAAM,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;QACrC,IAAI,GAAG,SAAS,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,eAAe,CAAC,cAAc,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5F,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,cAA8B,EAAc,EAAE;IACrE,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;IAC5C,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;AAC5E,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,cAA8B,EAAc,EAAE;IAClE,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAA;IAEnE,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEjG,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;AACtH,CAAC,CAAA;AAOD,MAAM,mBAAmB,GAAG,CAAC,EAAE,cAAc,EAAE,cAAc,EAA4B,EAAc,EAAE;IACvG,MAAM,WAAW,GAAG,gBAAgB,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAA;IACxE,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAA;AACpF,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,EAAE,cAAc,EAAE,cAAc,EAA4B,EAAc,EAAE;IACpG,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAA;IAC7F,CAAC;IACD,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAE9B,MAAM,QAAQ,GAAG,cAAc,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAChD,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;IAElC,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAA;IAEpE,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE9F,OAAO,WAAW,CAChB,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,EAC1B,WAAW,CAAC,CAAC,EAAE,aAAa,CAAC,EAC7B,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,EACpB,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAC5B,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,EACxC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CACxB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,cAA8B,EAAc,EAAE;IAClE,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;IAC5C,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;AAC5E,CAAC,CAAA;AAED,MAAM,gBAAgB,GAA2B;IAC/C,GAAG,EAAE,EAAE;IACP,OAAO,EAAE,EAAE;IACX,EAAE,EAAE,EAAE;IACN,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,EAAE;CACf,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,cAA8B,EAAc,EAAE;IAClE,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IACjD,MAAM,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IACrE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;IAChF,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IACxC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC1C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,CAAC,CAAC,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxG,CAAA;IACH,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAEnC,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;AACtG,CAAC,CAAA"}
|
|
@@ -12,7 +12,7 @@ type BuildQBTCAuthInfoInput = {
|
|
|
12
12
|
amount: string;
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
|
-
export declare const buildQBTCAuthInfo: ({ pubKeyData, sequence, gasLimit, fee
|
|
15
|
+
export declare const buildQBTCAuthInfo: ({ pubKeyData, sequence, gasLimit, fee }: BuildQBTCAuthInfoInput) => Uint8Array;
|
|
16
16
|
type BuildQBTCSignDocFromComponentsInput = QBTCTxComponents & {
|
|
17
17
|
accountNumber: bigint;
|
|
18
18
|
chainID?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QBTCTx.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/chains/cosmos/qbtc/QBTCTx.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,SAAS,CAAA;AAEjC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,UAAU,CAAA;IACrB,aAAa,EAAE,UAAU,CAAA;CAC1B,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,
|
|
1
|
+
{"version":3,"file":"QBTCTx.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/chains/cosmos/qbtc/QBTCTx.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,SAAS,CAAA;AAEjC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,UAAU,CAAA;IACrB,aAAa,EAAE,UAAU,CAAA;CAC1B,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,yCAAyC,sBAAsB,KAAG,UAkBnG,CAAA;AAED,KAAK,mCAAmC,GAAG,gBAAgB,GAAG;IAC5D,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAI,uDAK5C,mCAAmC,gCAMnC,CAAA;AAEH,KAAK,mBAAmB,GAAG,gBAAgB,GAAG;IAC5C,SAAS,EAAE,UAAU,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,yCAAyC,mBAAmB,KAAG,UACC,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { concatBytes, protoBytes, protoString, protoVarint } from '@vultisig/cor
|
|
|
2
2
|
const pubKeyTypeURL = '/cosmos.crypto.mldsa.PubKey';
|
|
3
3
|
const defaultGasLimit = 300000n;
|
|
4
4
|
export const qbtcChainID = 'qbtc';
|
|
5
|
-
export const buildQBTCAuthInfo = ({ pubKeyData, sequence, gasLimit
|
|
5
|
+
export const buildQBTCAuthInfo = ({ pubKeyData, sequence, gasLimit, fee }) => {
|
|
6
6
|
const pubKeyMsg = protoBytes(1, pubKeyData);
|
|
7
7
|
const pubKeyAny = concatBytes(protoString(1, pubKeyTypeURL), protoBytes(2, pubKeyMsg));
|
|
8
8
|
const singleMode = protoVarint(1, 1n);
|
|
@@ -11,7 +11,13 @@ export const buildQBTCAuthInfo = ({ pubKeyData, sequence, gasLimit = defaultGasL
|
|
|
11
11
|
const feeCoin = fee
|
|
12
12
|
? protoBytes(1, concatBytes(protoString(1, fee.denom), protoString(2, fee.amount)))
|
|
13
13
|
: new Uint8Array(0);
|
|
14
|
-
|
|
14
|
+
// Proto field 7 is `optional uint64`: an unset limit arrives as `undefined`, but a producer could
|
|
15
|
+
// also relay a nonsensical 0n (or negative). Both must fall back to the static default - NOT flow
|
|
16
|
+
// through as-is, because `protoVarint(2, 0n)` elides the field entirely (proto3 default-elision),
|
|
17
|
+
// which would omit gas_limit and sign an invalid zero-gas tx. Mirrors resolveCosmosGasFee's
|
|
18
|
+
// `relayedGasLimit && relayedGasLimit > 0n` guard so QBTC and standard cosmos treat 0/unset alike.
|
|
19
|
+
const effectiveGasLimit = gasLimit && gasLimit > 0n ? gasLimit : defaultGasLimit;
|
|
20
|
+
const feeBytes = concatBytes(feeCoin, protoVarint(2, effectiveGasLimit));
|
|
15
21
|
return concatBytes(protoBytes(1, signerInfo), protoBytes(2, feeBytes));
|
|
16
22
|
};
|
|
17
23
|
export const buildQBTCSignDocFromComponents = ({ bodyBytes, authInfoBytes, accountNumber, chainID = qbtcChainID, }) => concatBytes(protoBytes(1, bodyBytes), protoBytes(2, authInfoBytes), protoString(3, chainID), protoVarint(4, accountNumber));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QBTCTx.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/chains/cosmos/qbtc/QBTCTx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AAEpH,MAAM,aAAa,GAAG,6BAA6B,CAAA;AACnD,MAAM,eAAe,GAAG,OAAQ,CAAA;AAEhC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAA;AAiBjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"QBTCTx.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/chains/cosmos/qbtc/QBTCTx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AAEpH,MAAM,aAAa,GAAG,6BAA6B,CAAA;AACnD,MAAM,eAAe,GAAG,OAAQ,CAAA;AAEhC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAA;AAiBjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAA0B,EAAc,EAAE;IAC/G,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;IACtF,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAC1C,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC3G,MAAM,OAAO,GAAG,GAAG;QACjB,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IACrB,kGAAkG;IAClG,kGAAkG;IAClG,kGAAkG;IAClG,4FAA4F;IAC5F,mGAAmG;IACnG,MAAM,iBAAiB,GAAG,QAAQ,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAA;IAChF,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAExE,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;AACxE,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAC7C,SAAS,EACT,aAAa,EACb,aAAa,EACb,OAAO,GAAG,WAAW,GACe,EAAE,EAAE,CACxC,WAAW,CACT,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,EACxB,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,EAC5B,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,EACvB,WAAW,CAAC,CAAC,EAAE,aAAa,CAAC,CAC9B,CAAA;AAMH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAuB,EAAc,EAAE,CACzG,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/cosmos/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/cosmos/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AA0BzD,eAAO,MAAM,sBAAsB,EAAE,wBAAwB,CAAC,gBAAgB,CAwE7E,CAAA"}
|
|
@@ -24,12 +24,14 @@ async function computeUstcBurnTaxAmount(toAmount) {
|
|
|
24
24
|
if (rate === 0n)
|
|
25
25
|
return '0';
|
|
26
26
|
const cap = await getTerraClassicTaxCap('uusd');
|
|
27
|
-
const tax = applyTerraClassicTax(BigInt(toAmount), 'uusd', rate, {
|
|
27
|
+
const tax = applyTerraClassicTax(BigInt(toAmount), 'uusd', rate, {
|
|
28
|
+
uusd: cap,
|
|
29
|
+
});
|
|
28
30
|
return tax.toString();
|
|
29
31
|
}
|
|
30
32
|
export const getCosmosChainSpecific = async ({ keysignPayload, walletCore, transactionType = TransactionType.UNSPECIFIED, timeoutTimestamp, }) => {
|
|
31
33
|
const coin = getKeysignCoin(keysignPayload);
|
|
32
|
-
const { accountNumber,
|
|
34
|
+
const { accountNumber, sequenceBigInt, latestBlock } = await getCosmosAccountInfo(coin);
|
|
33
35
|
// For TerraClassic USTC (uusd) sends, pre-compute the burn-tax surcharge
|
|
34
36
|
// dynamically. Encoded in baseDenom so the sync signing-inputs resolver
|
|
35
37
|
// can use it without an async LCD call. Falls back to '0' when the tax
|
|
@@ -74,12 +76,12 @@ export const getCosmosChainSpecific = async ({ keysignPayload, walletCore, trans
|
|
|
74
76
|
walletCore,
|
|
75
77
|
keysignPayload,
|
|
76
78
|
accountNumber: BigInt(accountNumber),
|
|
77
|
-
sequence:
|
|
79
|
+
sequence: sequenceBigInt,
|
|
78
80
|
})
|
|
79
81
|
: undefined;
|
|
80
82
|
return create(CosmosSpecificSchema, {
|
|
81
83
|
accountNumber: BigInt(accountNumber),
|
|
82
|
-
sequence:
|
|
84
|
+
sequence: sequenceBigInt,
|
|
83
85
|
transactionType,
|
|
84
86
|
gas: await getCosmosFeeAmount(coin),
|
|
85
87
|
gasLimit,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/cosmos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAyB,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAA;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,qEAAqE,CAAA;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAE/E;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,wBAAwB,CAAC,QAAgB;IACtD,MAAM,IAAI,GAAG,MAAM,sBAAsB,EAAE,CAAA;IAC3C,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,GAAG,CAAA;IAE3B,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC/C,MAAM,GAAG,GAAG,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/cosmos/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,10 @@ import { MAYAChainSpecificSchema } from '@vultisig/core-mpc/types/vultisig/keysi
|
|
|
4
4
|
import { getKeysignCoin } from '../../utils/getKeysignCoin.js';
|
|
5
5
|
export const getMayaChainSpecific = async ({ keysignPayload, isDeposit }) => {
|
|
6
6
|
const coin = getKeysignCoin(keysignPayload);
|
|
7
|
-
const { accountNumber,
|
|
7
|
+
const { accountNumber, sequenceBigInt } = await getCosmosAccountInfo(coin);
|
|
8
8
|
return create(MAYAChainSpecificSchema, {
|
|
9
9
|
accountNumber: BigInt(accountNumber),
|
|
10
|
-
sequence:
|
|
10
|
+
sequence: sequenceBigInt,
|
|
11
11
|
isDeposit,
|
|
12
12
|
});
|
|
13
13
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maya.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/maya.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAA;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,qEAAqE,CAAA;AAE7G,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,MAAM,CAAC,MAAM,oBAAoB,GAA6C,KAAK,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE;IACpH,MAAM,IAAI,GAAG,cAAc,CAAc,cAAc,CAAC,CAAA;IACxD,MAAM,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"maya.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/maya.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAA;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,qEAAqE,CAAA;AAE7G,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,MAAM,CAAC,MAAM,oBAAoB,GAA6C,KAAK,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE;IACpH,MAAM,IAAI,GAAG,cAAc,CAAc,cAAc,CAAC,CAAA;IACxD,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAE1E,OAAO,MAAM,CAAC,uBAAuB,EAAE;QACrC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;QACpC,QAAQ,EAAE,cAAc;QACxB,SAAS;KACV,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/sui/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/sui/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAGzD,eAAO,MAAM,mBAAmB,EAAE,wBAAwB,CAAC,gBAAgB,CAqH1E,CAAA"}
|
|
@@ -4,6 +4,7 @@ import { suiGasBudget } from '@vultisig/core-chain/chains/sui/config';
|
|
|
4
4
|
import { SuiCoinSchema, SuiSpecificSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/blockchain_specific_pb';
|
|
5
5
|
import { attempt, withFallback } from '@vultisig/lib-utils/attempt';
|
|
6
6
|
import { getKeysignCoin } from '../../../utils/getKeysignCoin.js';
|
|
7
|
+
import { selectSuiPayloadCoins } from '../../../suiCoinSelection.js';
|
|
7
8
|
import { refineSuiChainSpecific } from './refine.js';
|
|
8
9
|
export const getSuiChainSpecific = async ({ keysignPayload, walletCore, }) => {
|
|
9
10
|
// dApp-supplied PTBs (`signData.signSui`) are already fully built: coins,
|
|
@@ -45,15 +46,59 @@ export const getSuiChainSpecific = async ({ keysignPayload, walletCore, }) => {
|
|
|
45
46
|
} while (cursor);
|
|
46
47
|
const coins = rawCoins.map((coin) => create(SuiCoinSchema, coin));
|
|
47
48
|
const referenceGasPrice = await client.getReferenceGasPrice();
|
|
48
|
-
const
|
|
49
|
+
const amount = BigInt(keysignPayload.toAmount || '0');
|
|
50
|
+
const isNativeToken = !coin.id;
|
|
51
|
+
const selectCoins = (gasBudget) => selectSuiPayloadCoins({
|
|
49
52
|
coins,
|
|
53
|
+
isNativeToken,
|
|
54
|
+
coinType: coin.id,
|
|
55
|
+
amount,
|
|
56
|
+
gasBudget,
|
|
57
|
+
});
|
|
58
|
+
const chainSpecific = create(SuiSpecificSchema, {
|
|
59
|
+
coins: selectCoins(suiGasBudget),
|
|
50
60
|
referenceGasPrice: referenceGasPrice.toString(),
|
|
51
61
|
gasBudget: suiGasBudget.toString(),
|
|
52
62
|
});
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
63
|
+
// PaySui gas cost grows with the number of input objects. Refining the
|
|
64
|
+
// baseline budget can therefore select more objects than the dry run priced.
|
|
65
|
+
// Re-price that grown selection, bounded so a pathological RPC response
|
|
66
|
+
// cannot make transaction construction loop indefinitely.
|
|
67
|
+
const maxGasBudgetConvergeIterations = 2;
|
|
68
|
+
const refined = await withFallback(attempt(async () => {
|
|
69
|
+
let priced = await refineSuiChainSpecific({
|
|
70
|
+
keysignPayload,
|
|
71
|
+
chainSpecific,
|
|
72
|
+
walletCore,
|
|
73
|
+
});
|
|
74
|
+
let gasBudget = priced.gasBudget ? BigInt(priced.gasBudget) : suiGasBudget;
|
|
75
|
+
let selectedCoins = selectCoins(gasBudget);
|
|
76
|
+
let pricedCoinCount = chainSpecific.coins.length;
|
|
77
|
+
for (let iteration = 0; iteration < maxGasBudgetConvergeIterations && selectedCoins.length > pricedCoinCount; iteration++) {
|
|
78
|
+
const repriced = await refineSuiChainSpecific({
|
|
79
|
+
keysignPayload,
|
|
80
|
+
chainSpecific: create(SuiSpecificSchema, {
|
|
81
|
+
...priced,
|
|
82
|
+
coins: selectedCoins,
|
|
83
|
+
gasBudget: gasBudget.toString(),
|
|
84
|
+
}),
|
|
85
|
+
walletCore,
|
|
86
|
+
});
|
|
87
|
+
const repricedGasBudget = repriced.gasBudget ? BigInt(repriced.gasBudget) : gasBudget;
|
|
88
|
+
const nextGasBudget = repricedGasBudget > gasBudget ? repricedGasBudget : gasBudget;
|
|
89
|
+
if (nextGasBudget === gasBudget)
|
|
90
|
+
break;
|
|
91
|
+
pricedCoinCount = selectedCoins.length;
|
|
92
|
+
gasBudget = nextGasBudget;
|
|
93
|
+
priced = repriced;
|
|
94
|
+
selectedCoins = selectCoins(gasBudget);
|
|
95
|
+
}
|
|
96
|
+
return create(SuiSpecificSchema, {
|
|
97
|
+
...priced,
|
|
98
|
+
coins: selectedCoins,
|
|
99
|
+
gasBudget: gasBudget.toString(),
|
|
100
|
+
});
|
|
101
|
+
}), chainSpecific);
|
|
102
|
+
return refined;
|
|
58
103
|
};
|
|
59
104
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/sui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qEAAqE,CAAA;AACtH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/sui/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,11 @@ import { TransactionType } from '@vultisig/core-mpc/types/vultisig/keysign/v1/bl
|
|
|
6
6
|
import { getKeysignCoin } from '../../utils/getKeysignCoin.js';
|
|
7
7
|
export const getThorchainChainSpecific = async ({ keysignPayload, transactionType = TransactionType.UNSPECIFIED, isDeposit, }) => {
|
|
8
8
|
const coin = getKeysignCoin(keysignPayload);
|
|
9
|
-
const { accountNumber,
|
|
9
|
+
const { accountNumber, sequenceBigInt } = await getCosmosAccountInfo(coin);
|
|
10
10
|
const { native_tx_fee_rune } = await getThorNetworkInfo();
|
|
11
11
|
return create(THORChainSpecificSchema, {
|
|
12
12
|
accountNumber: BigInt(accountNumber),
|
|
13
|
-
sequence:
|
|
13
|
+
sequence: sequenceBigInt,
|
|
14
14
|
transactionType,
|
|
15
15
|
fee: BigInt(native_tx_fee_rune),
|
|
16
16
|
isDeposit,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thor.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/thor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAA;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAA;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qEAAqE,CAAA;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,qEAAqE,CAAA;AAErG,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,MAAM,CAAC,MAAM,yBAAyB,GAAkD,KAAK,EAAE,EAC7F,cAAc,EACd,eAAe,GAAG,eAAe,CAAC,WAAW,EAC7C,SAAS,GACV,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,cAAc,CAAc,cAAc,CAAC,CAAA;IACxD,MAAM,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"thor.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/thor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAA;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAA;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qEAAqE,CAAA;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,qEAAqE,CAAA;AAErG,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,MAAM,CAAC,MAAM,yBAAyB,GAAkD,KAAK,EAAE,EAC7F,cAAc,EACd,eAAe,GAAG,eAAe,CAAC,WAAW,EAC7C,SAAS,GACV,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,cAAc,CAAc,cAAc,CAAC,CAAA;IACxD,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAC1E,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,kBAAkB,EAAE,CAAA;IAEzD,OAAO,MAAM,CAAC,uBAAuB,EAAE;QACrC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;QACpC,QAAQ,EAAE,cAAc;QACxB,eAAe;QACf,GAAG,EAAE,MAAM,CAAC,kBAAkB,CAAC;QAC/B,SAAS;KACV,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/signingInputs/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/signingInputs/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAgB,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAA;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAIzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAclD,KAAK,KAAK,GAAG;IACX,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA;AAED,iHAAiH;AACjH,eAAO,MAAM,gCAAgC,EAAE,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAa1F,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,OAAO,KAAK,KAAG,OAAO,CAAC,UAAU,EAAE,CA6BhF,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
1
2
|
import { getChainKind } from '@vultisig/core-chain/ChainKind';
|
|
2
3
|
import { getKeysignChain } from '../utils/getKeysignChain.js';
|
|
3
4
|
import { signingInputClasses } from './core.js';
|
|
@@ -31,6 +32,17 @@ export const signingInputResolversByChainKind = {
|
|
|
31
32
|
export const getEncodedSigningInputs = async (input) => {
|
|
32
33
|
const chain = getKeysignChain(input.keysignPayload);
|
|
33
34
|
const chainKind = getChainKind(chain);
|
|
35
|
+
// dApp-supplied raw Solana transactions bypass TW SigningInput entirely
|
|
36
|
+
// (sdk#1204): the txInputData IS the original serialized transaction, and
|
|
37
|
+
// getPreSigningHashes / compileTx have matching signSolana branches that
|
|
38
|
+
// sign the original message bytes verbatim and splice the signature back
|
|
39
|
+
// in. Routing these through TransactionDecoder + SigningInput.rawMessage
|
|
40
|
+
// made WalletCore RE-ENCODE the message, which is not guaranteed
|
|
41
|
+
// byte-identical for v0+ALT transactions and broke mixed-vault co-signing
|
|
42
|
+
// (iOS/Android already sign the original bytes — ios#4419, android#5223).
|
|
43
|
+
if (chainKind === 'solana' && input.keysignPayload.signData.case === 'signSolana') {
|
|
44
|
+
return input.keysignPayload.signData.value.rawTransactions.map(transaction => new Uint8Array(Buffer.from(transaction, 'base64')));
|
|
45
|
+
}
|
|
34
46
|
const signingInputs = await signingInputResolversByChainKind[chainKind](input);
|
|
35
47
|
// Bittensor returns pre-encoded Uint8Array (custom extrinsic builder, not TW proto)
|
|
36
48
|
if (chainKind === 'bittensor' || chainKind === 'qbtc') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/signingInputs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAKxE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAE5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAQvD,iHAAiH;AACjH,MAAM,CAAC,MAAM,gCAAgC,GAAkD;IAC7F,SAAS,EAAE,yBAAyB;IACpC,OAAO,EAAE,uBAAuB;IAChC,MAAM,EAAE,sBAAsB;IAC9B,GAAG,EAAE,mBAAmB;IACxB,QAAQ,EAAE,wBAAwB;IAClC,IAAI,EAAE,oBAAoB;IAC1B,MAAM,EAAE,sBAAsB;IAC9B,MAAM,EAAE,sBAAsB;IAC9B,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,mBAAmB;IACxB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,oBAAoB;CAC3B,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,KAAY,EAAyB,EAAE;IACnF,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,MAAM,aAAa,GAAG,MAAM,gCAAgC,CAAC,SAAS,CAAC,CAAC,KAAY,CAAC,CAAA;IAErF,oFAAoF;IACpF,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACtD,OAAO,aAAwC,CAAA;IACjD,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;QACtC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;QACxD,OAAO,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/signingInputs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAa,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAKxE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAE5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAQvD,iHAAiH;AACjH,MAAM,CAAC,MAAM,gCAAgC,GAAkD;IAC7F,SAAS,EAAE,yBAAyB;IACpC,OAAO,EAAE,uBAAuB;IAChC,MAAM,EAAE,sBAAsB;IAC9B,GAAG,EAAE,mBAAmB;IACxB,QAAQ,EAAE,wBAAwB;IAClC,IAAI,EAAE,oBAAoB;IAC1B,MAAM,EAAE,sBAAsB;IAC9B,MAAM,EAAE,sBAAsB;IAC9B,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,mBAAmB;IACxB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,oBAAoB;CAC3B,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,KAAY,EAAyB,EAAE;IACnF,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAErC,wEAAwE;IACxE,0EAA0E;IAC1E,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,iEAAiE;IACjE,0EAA0E;IAC1E,0EAA0E;IAC1E,IAAI,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAC5D,WAAW,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAClE,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,gCAAgC,CAAC,SAAS,CAAC,CAAC,KAAY,CAAC,CAAA;IAErF,oFAAoF;IACpF,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACtD,OAAO,aAAwC,CAAA;IACjD,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;QACtC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;QACxD,OAAO,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cardano.ts"],"names":[],"mappings":"
|
|
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;AASnD,eAAO,MAAM,uBAAuB,EAAE,qBAAqB,CAAC,SAAS,CAqFpE,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Buffer } from 'buffer';
|
|
2
2
|
import { fromCardanoAssetId } from '@vultisig/core-chain/chains/cardano/asset/cardanoAssetId';
|
|
3
3
|
import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
|
|
4
|
+
import { bigIntSum } from '@vultisig/lib-utils/bigint/bigIntSum';
|
|
4
5
|
import { stripHexPrefix } from '@vultisig/lib-utils/hex/stripHexPrefix';
|
|
5
6
|
import { TW } from '@trustwallet/wallet-core';
|
|
6
7
|
import Long from 'long';
|
|
@@ -16,6 +17,20 @@ export const getCardanoSigningInputs = ({ keysignPayload, walletCore }) => {
|
|
|
16
17
|
const { sendMaxAmount, ttl, byteFee } = getBlockchainSpecificValue(keysignPayload.blockchainSpecific, 'cardano');
|
|
17
18
|
const coin = shouldBePresent(keysignPayload.coin);
|
|
18
19
|
const isTokenSend = coin.contractAddress !== '';
|
|
20
|
+
// Send-max fee convergence (sdk#1382). WalletCore's Cardano planner IGNORES
|
|
21
|
+
// `forceFee` whenever `useMaxAmount` is set — it returns TransactionPlan{ amount:
|
|
22
|
+
// <full input>, fee: 0 }, an unbroadcastable zero-fee tx (nodes require
|
|
23
|
+
// fee >= minFeeA + minFeeB*txSize). So we never take that path: a max send is
|
|
24
|
+
// built as an EXPLICIT transfer of (totalInput - fee) with the converged fee
|
|
25
|
+
// forced and `useMaxAmount: false`, which the planner honors (fee > 0, change
|
|
26
|
+
// consumed to 0). The fee itself is converged by getCardanoChainSpecific, whose
|
|
27
|
+
// loop calls back into this resolver — so it now prices the real fee-bearing
|
|
28
|
+
// body instead of the fee=0 one. `useMaxAmount` without `forceFee` is not an
|
|
29
|
+
// option: the planner aborts (uncatchable WASM assert) with no forced fee.
|
|
30
|
+
const isSendMax = sendMaxAmount && !isTokenSend;
|
|
31
|
+
const sendAmount = isSendMax
|
|
32
|
+
? bigIntSum(keysignPayload.utxoInfo.map(({ amount }) => amount)) - byteFee
|
|
33
|
+
: BigInt(keysignPayload.toAmount);
|
|
19
34
|
// CIP-20 memo: hand the already-CBOR-encoded auxiliary data to WalletCore,
|
|
20
35
|
// which commits its Blake2b-256 hash into the tx body (key 7) and embeds the
|
|
21
36
|
// bytes in the signed transaction. No client-side body patching needed.
|
|
@@ -38,8 +53,8 @@ export const getCardanoSigningInputs = ({ keysignPayload, walletCore }) => {
|
|
|
38
53
|
transferMessage: TW.Cardano.Proto.Transfer.create({
|
|
39
54
|
toAddress: keysignPayload.toAddress,
|
|
40
55
|
changeAddress: coin.address,
|
|
41
|
-
amount: Long.fromString(
|
|
42
|
-
useMaxAmount:
|
|
56
|
+
amount: Long.fromString(sendAmount.toString()),
|
|
57
|
+
useMaxAmount: false,
|
|
43
58
|
tokenAmount: tokenBundle,
|
|
44
59
|
forceFee: Long.fromString(byteFee.toString()),
|
|
45
60
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cardano.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,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,iBAAiB,EAAE,MAAM,+CAA+C,CAAA;AAGjF,iFAAiF;AACjF,MAAM,aAAa,GAAG,CAAC,MAAc,EAAc,EAAE;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IACrD,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAqC,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE;IAC1G,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,0BAA0B,CAAC,cAAc,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAA;IAEhH,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,KAAK,EAAE,CAAA;IAE/C,2EAA2E;IAC3E,6EAA6E;IAC7E,wEAAwE;IACxE,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAA;IAE1G,MAAM,WAAW,GAAG,WAAW;QAC7B,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YAExE,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;gBACzC,KAAK,EAAE;oBACL,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;wBAClC,QAAQ;wBACR,YAAY,EAAE,SAAS;wBACvB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;qBACvD,CAAC;iBACH;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,SAAS,CAAA;IAEb,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;QACjD,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAChD,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,aAAa,EAAE,IAAI,CAAC,OAAO;YAC3B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,
|
|
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":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cosmos/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/cosmos/index.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AA2EtD,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,CAAC,QAAQ,CAudlE,CAAA"}
|
|
@@ -5,7 +5,7 @@ import { resolveCosmosGasFee } from '@vultisig/core-chain/chains/cosmos/resolveC
|
|
|
5
5
|
import { getCosmosChainKind } from '@vultisig/core-chain/chains/cosmos/utils/getCosmosChainKind';
|
|
6
6
|
import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
|
|
7
7
|
import { areEqualCoins } from '@vultisig/core-chain/coin/Coin';
|
|
8
|
-
import { nativeSwapChainIds } from '@vultisig/core-chain/swap/native/NativeSwapChain';
|
|
8
|
+
import { getNativeSwapChainIdFromDenomPrefix, nativeSwapChainIds, } from '@vultisig/core-chain/swap/native/NativeSwapChain';
|
|
9
9
|
import { TransactionType } from '@vultisig/core-mpc/types/vultisig/keysign/v1/blockchain_specific_pb';
|
|
10
10
|
import { fromBase64 } from '@cosmjs/encoding';
|
|
11
11
|
import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
|
|
@@ -58,9 +58,13 @@ const isSecuredAssetSwapCoin = (assetCoin) => assetCoin.chain === Chain.THORChai
|
|
|
58
58
|
// secured asset referenced by the server-issued swap memo (`=:ETH-USDC:…`).
|
|
59
59
|
const getSecuredAssetDepositAsset = (assetCoin) => {
|
|
60
60
|
const [chainPrefix, ...symbolParts] = assetCoin.contractAddress.split('-');
|
|
61
|
+
const chainId = getNativeSwapChainIdFromDenomPrefix(chainPrefix);
|
|
62
|
+
if (!chainId) {
|
|
63
|
+
throw new Error(`Unsupported secured asset chain prefix: "${chainPrefix}"`);
|
|
64
|
+
}
|
|
61
65
|
const symbol = symbolParts.join('-');
|
|
62
66
|
return TW.Cosmos.Proto.THORChainAsset.create({
|
|
63
|
-
chain:
|
|
67
|
+
chain: chainId,
|
|
64
68
|
symbol: (symbol || assetCoin.ticker).toUpperCase(),
|
|
65
69
|
ticker: assetCoin.ticker.toUpperCase().replace(/X\//g, ''),
|
|
66
70
|
synth: false,
|