@vultisig/core-mpc 1.11.0 → 1.12.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 +60 -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/resolver.d.ts +2 -0
- package/dist/keysign/chainSpecific/resolver.d.ts.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/qbtc.js +3 -3
- package/dist/keysign/chainSpecific/resolvers/qbtc.js.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/ripple.d.ts +1 -0
- package/dist/keysign/chainSpecific/resolvers/ripple.d.ts.map +1 -1
- package/dist/keysign/chainSpecific/resolvers/ripple.js +35 -4
- package/dist/keysign/chainSpecific/resolvers/ripple.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/error.d.ts +2 -3
- package/dist/keysign/error.d.ts.map +1 -1
- package/dist/keysign/error.js +3 -2
- package/dist/keysign/error.js.map +1 -1
- package/dist/keysign/send/build.d.ts +3 -1
- package/dist/keysign/send/build.d.ts.map +1 -1
- package/dist/keysign/send/build.js +26 -4
- package/dist/keysign/send/build.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 +32 -3
- 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/ripple.d.ts.map +1 -1
- package/dist/keysign/signingInputs/resolvers/ripple.js +38 -34
- package/dist/keysign/signingInputs/resolvers/ripple.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/utils/rippleDestinationTag.d.ts +8 -0
- package/dist/keysign/utils/rippleDestinationTag.d.ts.map +1 -0
- package/dist/keysign/utils/rippleDestinationTag.js +22 -0
- package/dist/keysign/utils/rippleDestinationTag.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/dist/types/vultisig/keysign/v1/blockchain_specific_pb.d.ts +30 -17
- package/dist/types/vultisig/keysign/v1/blockchain_specific_pb.d.ts.map +1 -1
- package/dist/types/vultisig/keysign/v1/blockchain_specific_pb.js +52 -18
- package/dist/types/vultisig/keysign/v1/blockchain_specific_pb.js.map +1 -1
- package/package.json +23 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,65 @@
|
|
|
1
1
|
# @vultisig/core-mpc
|
|
2
2
|
|
|
3
|
+
## 1.12.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#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.
|
|
8
|
+
|
|
9
|
+
- [#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).
|
|
10
|
+
|
|
11
|
+
- [#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
|
|
12
|
+
wallets and the SDK facade can share one pre-signing or pre-broadcast check.
|
|
13
|
+
|
|
14
|
+
- [#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.
|
|
15
|
+
|
|
16
|
+
- [#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.
|
|
17
|
+
|
|
18
|
+
- [#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
|
|
19
|
+
from the swap router, use the quote's approval address for SDK allowance checks
|
|
20
|
+
and approval payloads while retaining the router as the signed destination.
|
|
21
|
+
|
|
22
|
+
- [#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
|
|
23
|
+
program + fund-movement guard on the MPC co-signer signing-input path, not only
|
|
24
|
+
at quote construction. Every co-signer independently rebuilds the signing input
|
|
25
|
+
from the shared KeysignPayload, so a compromised initiator could otherwise hand
|
|
26
|
+
a co-signer an unvalidated swap destination (EVM `quote.tx.to`) or a spliced
|
|
27
|
+
drain instruction (Solana `quote.tx.data`) and have it signed verbatim. Both
|
|
28
|
+
guards are pure gates: they fail closed for enforced providers or no-op, and
|
|
29
|
+
never mutate the signed bytes, so cross-device pre-signing hash agreement is
|
|
30
|
+
unchanged.
|
|
31
|
+
|
|
32
|
+
- [#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.
|
|
33
|
+
|
|
34
|
+
- [#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
|
|
35
|
+
objects covering amount plus gas, selecting token inputs by largest covering
|
|
36
|
+
objects, and choosing a native gas object that covers token-send gas.
|
|
37
|
+
|
|
38
|
+
- [#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.
|
|
39
|
+
|
|
40
|
+
- [#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
|
|
41
|
+
TON messages, and Jetton helper amounts cannot silently truncate a `-`-prefixed
|
|
42
|
+
hex value.
|
|
43
|
+
- 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)]:
|
|
44
|
+
- @vultisig/core-chain@2.27.0
|
|
45
|
+
|
|
46
|
+
## 1.12.0
|
|
47
|
+
|
|
48
|
+
### Minor Changes
|
|
49
|
+
|
|
50
|
+
- [#1128](https://github.com/vultisig/vultisig-sdk/pull/1128) [`f885e91`](https://github.com/vultisig/vultisig-sdk/commit/f885e91da06674dbef2ca1495291ca7d201e4c58) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Add first-class XRP DestinationTag support alongside transaction memos.
|
|
51
|
+
|
|
52
|
+
### Patch Changes
|
|
53
|
+
|
|
54
|
+
- [#1306](https://github.com/vultisig/vultisig-sdk/pull/1306) [`747b6c6`](https://github.com/vultisig/vultisig-sdk/commit/747b6c68a81e14f3242003f39a4b58499ef44a21) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Preserve full uint64 Cosmos account numbers and sequences through additive exact QBTC bigint fields and WalletCore signing inputs while retaining the legacy numeric account fields.
|
|
55
|
+
|
|
56
|
+
- [#1264](https://github.com/vultisig/vultisig-sdk/pull/1264) [`3b4da09`](https://github.com/vultisig/vultisig-sdk/commit/3b4da09c85b784276ea99cd8a399377a21dae245) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Fail closed when Ripple account info is missing a valid `ledger_current_index` instead of building an already-expired transaction.
|
|
57
|
+
|
|
58
|
+
- [#1326](https://github.com/vultisig/vultisig-sdk/pull/1326) [`4815346`](https://github.com/vultisig/vultisig-sdk/commit/4815346d794f4a198e84a562c503b3bdd5ae10b8) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - Fix native swaps from THORChain secured assets. Swap quotes now emit secured-asset notation (`CHAIN-ASSET`, e.g. `XRP-XRP`, `ETH-USDC-0x…`) instead of the L1 pool notation (`CHAIN.ASSET`) that THORNode rejects for `thor1`-settling swaps, and the spent secured asset is encoded correctly in the `MsgDeposit` (L1 chain and symbol derived from the denom, `secured` flag set). Applies to all secured assets and swap directions.
|
|
59
|
+
|
|
60
|
+
- Updated dependencies [[`747b6c6`](https://github.com/vultisig/vultisig-sdk/commit/747b6c68a81e14f3242003f39a4b58499ef44a21), [`b6fbbe3`](https://github.com/vultisig/vultisig-sdk/commit/b6fbbe3705d6aae02b483de0b7dd1b8a097acd6b), [`a08a52b`](https://github.com/vultisig/vultisig-sdk/commit/a08a52bb0933fd5470ea849613e147baa29286ad), [`9e366db`](https://github.com/vultisig/vultisig-sdk/commit/9e366db273e87e62d260867ea6702466b325d7fc), [`30b76c6`](https://github.com/vultisig/vultisig-sdk/commit/30b76c6d0fbe7f0ad3015fee9bc77b5ee9fa7927), [`846d6c2`](https://github.com/vultisig/vultisig-sdk/commit/846d6c24e96ba4f8133721f1030dd9d023376570), [`dda2e90`](https://github.com/vultisig/vultisig-sdk/commit/dda2e9084859eae02dd16149ac3ab2240a7d37e5), [`eb11e50`](https://github.com/vultisig/vultisig-sdk/commit/eb11e50b2f478fbb21db2970f8616d5f296b49f5), [`4815346`](https://github.com/vultisig/vultisig-sdk/commit/4815346d794f4a198e84a562c503b3bdd5ae10b8), [`f885e91`](https://github.com/vultisig/vultisig-sdk/commit/f885e91da06674dbef2ca1495291ca7d201e4c58)]:
|
|
61
|
+
- @vultisig/core-chain@2.26.0
|
|
62
|
+
|
|
3
63
|
## 1.11.0
|
|
4
64
|
|
|
5
65
|
### 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":"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"}
|
|
@@ -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"}
|
|
@@ -11,6 +11,8 @@ type ValueForCase<C extends KeysignChainSpecificKey> = Extract<KeysignChainSpeci
|
|
|
11
11
|
export type GetChainSpecificInput<C extends KeysignChainSpecificKey = KeysignChainSpecificKey> = {
|
|
12
12
|
keysignPayload: KeysignPayload;
|
|
13
13
|
walletCore: WalletCore;
|
|
14
|
+
/** XRPL DestinationTag, carried in RippleSpecific for Ripple payments. */
|
|
15
|
+
destinationTag?: number;
|
|
14
16
|
} & (C extends 'ethereumSpecific' ? {
|
|
15
17
|
feeSettings?: FeeSettings<'evm'>;
|
|
16
18
|
thirdPartyGasLimitEstimation?: bigint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/chainSpecific/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qEAAqE,CAAA;AAC1G,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAEtF,KAAK,YAAY,CAAC,CAAC,SAAS,uBAAuB,IAAI,OAAO,CAAC,oBAAoB,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC,OAAO,CAAC,CAAA;AAE1G,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,IAAI;IAC/F,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/chainSpecific/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qEAAqE,CAAA;AAC1G,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAEtF,KAAK,YAAY,CAAC,CAAC,SAAS,uBAAuB,IAAI,OAAO,CAAC,oBAAoB,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC,OAAO,CAAC,CAAA;AAE1G,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,IAAI;IAC/F,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,GAAG,CAAC,CAAC,SAAS,kBAAkB,GAC7B;IACE,WAAW,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;IAChC,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACtC,GACD,CAAC,SAAS,cAAc,GACtB;IAAE,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,GAClD,CAAC,SAAS,gBAAgB,GACxB;IACE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,GACD,CAAC,SAAS,mBAAmB,GAC3B;IACE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,GACD,CAAC,SAAS,cAAc,GACtB;IACE,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,GACD,CAAC,SAAS,cAAc,GACtB;IACE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACtC,GACD,EAAE,CAAC,CAAA;AAEjB,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,IAAI,QAAQ,CAC1G,qBAAqB,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CACzB,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"}
|
|
@@ -5,12 +5,12 @@ import { getKeysignCoin } from '../../utils/getKeysignCoin.js';
|
|
|
5
5
|
const qbtcDefaultGas = 7500n;
|
|
6
6
|
export const getQbtcChainSpecific = async ({ keysignPayload, transactionType = TransactionType.UNSPECIFIED, timeoutTimestamp, }) => {
|
|
7
7
|
const coin = getKeysignCoin(keysignPayload);
|
|
8
|
-
const {
|
|
8
|
+
const { accountNumberBigInt, sequenceBigInt, latestBlock } = await getQbtcAccountInfo({
|
|
9
9
|
address: coin.address,
|
|
10
10
|
});
|
|
11
11
|
return create(CosmosSpecificSchema, {
|
|
12
|
-
accountNumber:
|
|
13
|
-
sequence:
|
|
12
|
+
accountNumber: accountNumberBigInt,
|
|
13
|
+
sequence: sequenceBigInt,
|
|
14
14
|
transactionType,
|
|
15
15
|
gas: qbtcDefaultGas,
|
|
16
16
|
ibcDenomTraces: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qbtc.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/qbtc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAA;AAC/F,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,qEAAqE,CAAA;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,MAAM,cAAc,GAAG,KAAK,CAAA;AAE5B,MAAM,CAAC,MAAM,oBAAoB,GAA+C,KAAK,EAAE,EACrF,cAAc,EACd,eAAe,GAAG,eAAe,CAAC,WAAW,EAC7C,gBAAgB,GACjB,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,cAAc,CAAoB,cAAc,CAAC,CAAA;IAC9D,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"qbtc.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/qbtc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAA;AAC/F,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,qEAAqE,CAAA;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,MAAM,cAAc,GAAG,KAAK,CAAA;AAE5B,MAAM,CAAC,MAAM,oBAAoB,GAA+C,KAAK,EAAE,EACrF,cAAc,EACd,eAAe,GAAG,eAAe,CAAC,WAAW,EAC7C,gBAAgB,GACjB,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,cAAc,CAAoB,cAAc,CAAC,CAAA;IAC9D,MAAM,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC;QACpF,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,oBAAoB,EAAE;QAClC,aAAa,EAAE,mBAAmB;QAClC,QAAQ,EAAE,cAAc;QACxB,eAAe;QACf,GAAG,EAAE,cAAc;QACnB,cAAc,EAAE;YACd,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,WAAW;YAChG,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;SACT;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { GetChainSpecificResolver } from '../resolver.js';
|
|
2
|
+
export declare const getRippleLastLedgerSequence: (ledgerCurrentIndex: number | undefined) => bigint;
|
|
2
3
|
export declare const getRippleChainSpecific: GetChainSpecificResolver<'rippleSpecific'>;
|
|
3
4
|
//# sourceMappingURL=ripple.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/ripple.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/ripple.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAOtD,eAAO,MAAM,2BAA2B,GAAI,oBAAoB,MAAM,GAAG,SAAS,KAAG,MAMpF,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,wBAAwB,CAAC,gBAAgB,CAkF7E,CAAA"}
|
|
@@ -6,16 +6,31 @@ import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
|
|
|
6
6
|
import { attempt } from '@vultisig/lib-utils/attempt';
|
|
7
7
|
import { isInError } from '@vultisig/lib-utils/error/isInError';
|
|
8
8
|
import { maxBigInt } from '@vultisig/lib-utils/math/maxBigInt';
|
|
9
|
+
import { BuildKeysignPayloadError } from '../../error.js';
|
|
9
10
|
import { getKeysignCoin } from '../../utils/getKeysignCoin.js';
|
|
11
|
+
import { resolveDestinationTag } from '../../utils/rippleDestinationTag.js';
|
|
10
12
|
const minProtocolFee = 15n;
|
|
11
13
|
const baseFeeMultiplier = 2n;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
const rippleRequireDestinationTagFlag = 0x00020000;
|
|
15
|
+
const lastLedgerSequenceOffset = 60;
|
|
16
|
+
export const getRippleLastLedgerSequence = (ledgerCurrentIndex) => {
|
|
17
|
+
if (ledgerCurrentIndex === undefined || !Number.isSafeInteger(ledgerCurrentIndex) || ledgerCurrentIndex <= 0) {
|
|
18
|
+
throw new Error('Ripple account_info response is missing a valid ledger_current_index.');
|
|
19
|
+
}
|
|
20
|
+
return BigInt(ledgerCurrentIndex + lastLedgerSequenceOffset);
|
|
21
|
+
};
|
|
22
|
+
export const getRippleChainSpecific = async ({ keysignPayload, destinationTag, }) => {
|
|
23
|
+
const coin = getKeysignCoin(keysignPayload);
|
|
24
|
+
const { address } = coin;
|
|
14
25
|
// A dApp-supplied transaction (OfferCreate, OfferCancel, …) carries no
|
|
15
26
|
// `toAddress`: the base-reserve check below is specific to a Payment that
|
|
16
27
|
// funds a destination, so skip the destination fetch when there isn't one.
|
|
17
28
|
// Fee and sequence come from the sender account and are unaffected.
|
|
18
29
|
const toAddress = keysignPayload.toAddress || undefined;
|
|
30
|
+
const effectiveDestinationTag = resolveDestinationTag({
|
|
31
|
+
destinationTag,
|
|
32
|
+
memo: keysignPayload.memo,
|
|
33
|
+
});
|
|
19
34
|
const [senderAccount, networkInfo, destinationAccountResult] = await Promise.all([
|
|
20
35
|
getRippleAccountInfo(address),
|
|
21
36
|
getRippleNetworkInfo(),
|
|
@@ -35,6 +50,21 @@ export const getRippleChainSpecific = async ({ keysignPayload }) => {
|
|
|
35
50
|
const destinationUnfunded = destinationAccountResult !== undefined &&
|
|
36
51
|
'error' in destinationAccountResult &&
|
|
37
52
|
isInError(destinationAccountResult.error, 'Account not found');
|
|
53
|
+
// XRP Ledger rejects a Payment to an account with lsfRequireDestTag when no
|
|
54
|
+
// tag is present. Fail closed on lookup errors other than an unfunded
|
|
55
|
+
// destination: without an account object there is no RequireDestTag flag.
|
|
56
|
+
if (toAddress && destinationAccountResult !== undefined && !coin.id && effectiveDestinationTag === undefined) {
|
|
57
|
+
if ('error' in destinationAccountResult) {
|
|
58
|
+
if (!destinationUnfunded) {
|
|
59
|
+
// This lookup can fail transiently, so keep it retryable. Only
|
|
60
|
+
// deterministic user-input failures use BuildKeysignPayloadError.
|
|
61
|
+
throw new Error(`Unable to verify whether XRP destination ${toAddress} requires a DestinationTag`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else if ((destinationAccountResult.data.account_data.Flags & rippleRequireDestinationTagFlag) !== 0) {
|
|
65
|
+
throw new BuildKeysignPayloadError('ripple-destination-tag-required', `XRP destination ${toAddress} requires a DestinationTag`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
38
68
|
if (destinationUnfunded) {
|
|
39
69
|
const toAmount = BigInt(shouldBePresent(keysignPayload.toAmount));
|
|
40
70
|
if (toAmount < BigInt(reserve_base)) {
|
|
@@ -44,12 +74,13 @@ export const getRippleChainSpecific = async ({ keysignPayload }) => {
|
|
|
44
74
|
`the reserve, or send to an already-activated account.`);
|
|
45
75
|
}
|
|
46
76
|
}
|
|
47
|
-
const { account_data, ledger_current_index } = senderAccount;
|
|
77
|
+
const { account_data, ledger_current_index: ledgerCurrentIndex } = senderAccount;
|
|
48
78
|
return create(RippleSpecificSchema, {
|
|
49
79
|
sequence: BigInt(account_data.Sequence),
|
|
50
|
-
lastLedgerSequence:
|
|
80
|
+
lastLedgerSequence: getRippleLastLedgerSequence(ledgerCurrentIndex),
|
|
51
81
|
// Fee is the network fee only — the reserve rides on the Payment amount.
|
|
52
82
|
gas: networkFee,
|
|
83
|
+
...(effectiveDestinationTag !== undefined ? { destinationTag: effectiveDestinationTag } : {}),
|
|
53
84
|
});
|
|
54
85
|
};
|
|
55
86
|
//# sourceMappingURL=ripple.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/ripple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAA;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAA;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qEAAqE,CAAA;AAC1G,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"ripple.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/ripple.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
package/dist/keysign/error.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
type BuildKeysignPayloadErrorType = 'not-enough-funds';
|
|
1
|
+
export type BuildKeysignPayloadErrorType = 'not-enough-funds' | 'ripple-destination-tag-invalid' | 'ripple-destination-tag-required';
|
|
2
2
|
export declare class BuildKeysignPayloadError extends Error {
|
|
3
3
|
readonly type: BuildKeysignPayloadErrorType;
|
|
4
|
-
constructor(type: BuildKeysignPayloadErrorType);
|
|
4
|
+
constructor(type: BuildKeysignPayloadErrorType, message?: string);
|
|
5
5
|
}
|
|
6
|
-
export {};
|
|
7
6
|
//# sourceMappingURL=error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/keysign/error.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/keysign/error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,4BAA4B,GACpC,kBAAkB,GAClB,gCAAgC,GAChC,iCAAiC,CAAA;AAErC,qBAAa,wBAAyB,SAAQ,KAAK;aAE/B,IAAI,EAAE,4BAA4B;gBAAlC,IAAI,EAAE,4BAA4B,EAClD,OAAO,GAAE,MAAa;CAKzB"}
|
package/dist/keysign/error.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export class BuildKeysignPayloadError extends Error {
|
|
2
2
|
type;
|
|
3
|
-
constructor(type) {
|
|
4
|
-
super(
|
|
3
|
+
constructor(type, message = type) {
|
|
4
|
+
super(message);
|
|
5
5
|
this.type = type;
|
|
6
|
+
this.name = 'BuildKeysignPayloadError';
|
|
6
7
|
}
|
|
7
8
|
}
|
|
8
9
|
//# sourceMappingURL=error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/keysign/error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/keysign/error.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAE/B;IADlB,YACkB,IAAkC,EAClD,UAAkB,IAAI;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAA;QAHE,SAAI,GAAJ,IAAI,CAA8B;QAIlD,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,CAAC;CACF"}
|
|
@@ -8,6 +8,8 @@ export type BuildSendKeysignPayloadInput = {
|
|
|
8
8
|
receiver: string;
|
|
9
9
|
amount: bigint;
|
|
10
10
|
memo?: string;
|
|
11
|
+
/** XRPL DestinationTag, kept independent from the free-text memo. */
|
|
12
|
+
destinationTag?: number;
|
|
11
13
|
vaultId: string;
|
|
12
14
|
localPartyId: string;
|
|
13
15
|
publicKey: PublicKey | null;
|
|
@@ -17,5 +19,5 @@ export type BuildSendKeysignPayloadInput = {
|
|
|
17
19
|
walletCore: WalletCore;
|
|
18
20
|
feeSettings?: FeeSettings;
|
|
19
21
|
};
|
|
20
|
-
export declare const buildSendKeysignPayload: ({ coin, receiver, amount, memo, vaultId, localPartyId, publicKey, hexPublicKeyOverride, walletCore, libType, feeSettings, }: BuildSendKeysignPayloadInput) => Promise<import("@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb").KeysignPayload>;
|
|
22
|
+
export declare const buildSendKeysignPayload: ({ coin, receiver, amount, memo, destinationTag, vaultId, localPartyId, publicKey, hexPublicKeyOverride, walletCore, libType, feeSettings, }: BuildSendKeysignPayloadInput) => Promise<import("@vultisig/core-mpc/types/vultisig/keysign/v1/keysign_message_pb").KeysignPayload>;
|
|
21
23
|
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/send/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/keysign/send/build.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAGnE,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAA;AAIlF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAMzE,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,gGAAgG;IAChG,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,6IAa3C,4BAA4B,sGAwF9B,CAAA"}
|