@vultisig/core-mpc 1.2.20 → 1.2.21

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 CHANGED
@@ -1,5 +1,31 @@
1
1
  # @vultisig/core-mpc
2
2
 
3
+ ## 1.2.21
4
+
5
+ ### Patch Changes
6
+
7
+ - [#577](https://github.com/vultisig/vultisig-sdk/pull/577) [`cc9d67f`](https://github.com/vultisig/vultisig-sdk/commit/cc9d67f0c61d9ebdfc133beac5ef04658d37a37f) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - feat(mpc): env-gated diagnostic logging for relay-decrypt ghash tag investigation
8
+
9
+ Adds non-default-on diagnostic logging to `fromMpcServerMessage` and the
10
+ `receiveMessages` keysign relay loop, gated on `VULTISIG_DIAG_MPC_RELAY=1`.
11
+ Logs envelope shape (`body_len`, `decoded_len`, `nonce_hex`, first 32 bytes
12
+ of ciphertext) plus a `key_fingerprint` (sha256-truncated of decoded key
13
+ bytes, NOT raw key material) for cross-node correlation of the persistent
14
+ "aes/gcm: invalid ghash tag" failures. Behavior unchanged when the env flag
15
+ is absent.
16
+
17
+ - [#577](https://github.com/vultisig/vultisig-sdk/pull/577) [`cc9d67f`](https://github.com/vultisig/vultisig-sdk/commit/cc9d67f0c61d9ebdfc133beac5ef04658d37a37f) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - ## New
18
+ - Polkadot Asset Hub USDT (asset_id 1984) + USDC (asset_id 1337) token registry ([#562](https://github.com/vultisig/vultisig-sdk/issues/562))
19
+ - Polkadot `pallet_assets.Account` balance resolver for Asset Hub tokens - replaces placeholder 0n guard ([#563](https://github.com/vultisig/vultisig-sdk/issues/563))
20
+ - Tron native send `data` field (proto field 12) for THORChain memos + exchange deposit memos; `BuildTronSendOptions` and `BuildTrc20TransferOptions` gain optional `data?: Uint8Array` field ([#559](https://github.com/vultisig/vultisig-sdk/issues/559))
21
+
22
+ ## Fixed
23
+ - Tron TRC-20 fee estimate now subtracts sender's available energy before charging TRX ([#556](https://github.com/vultisig/vultisig-sdk/issues/556))
24
+ - Tron native send free bandwidth check prevents spurious fee charge when bandwidth is available ([#555](https://github.com/vultisig/vultisig-sdk/issues/555))
25
+
26
+ - Updated dependencies [[`cc9d67f`](https://github.com/vultisig/vultisig-sdk/commit/cc9d67f0c61d9ebdfc133beac5ef04658d37a37f)]:
27
+ - @vultisig/core-chain@2.3.0
28
+
3
29
  ## 1.2.20
4
30
 
5
31
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/solana/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAEzD,eAAO,MAAM,sBAAsB,EAAE,wBAAwB,CAAC,gBAAgB,CAqD7E,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/solana/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAEzD,eAAO,MAAM,sBAAsB,EAAE,wBAAwB,CAAC,gBAAgB,CA6D7E,CAAA"}
@@ -5,12 +5,16 @@ import { getDynamicPriorityFeePrice } from '@vultisig/core-chain/chains/solana/g
5
5
  import { solanaConfig } from '@vultisig/core-chain/chains/solana/solanaConfig';
6
6
  import { getSplAssociatedAccount } from '@vultisig/core-chain/chains/solana/spl/getSplAssociatedAccount';
7
7
  import { SolanaSpecificSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/blockchain_specific_pb';
8
- import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
9
8
  import { attempt, withFallback } from '@vultisig/lib-utils/attempt';
10
9
  import { getKeysignCoin } from '../../../utils/getKeysignCoin.js';
11
10
  export const getSolanaChainSpecific = async ({ keysignPayload }) => {
12
11
  const coin = getKeysignCoin(keysignPayload);
13
- const receiver = shouldBePresent(keysignPayload.toAddress);
12
+ // DApp signing flows (raw transaction bytes — Jupiter swaps, multi-step
13
+ // routes, etc.) can arrive with an empty `toAddress` because the recipient
14
+ // set isn't a single account. The bytes already carry their own recipients
15
+ // and blockhash; we just need to populate the schema and pick a priority
16
+ // fee. Treat empty as "no specific recipient" instead of throwing.
17
+ const receiver = keysignPayload.toAddress || undefined;
14
18
  const client = getSolanaClient();
15
19
  const recentBlockHash = (await client.getLatestBlockhash()).blockhash;
16
20
  const chainSpecific = create(SolanaSpecificSchema, {
@@ -25,6 +29,7 @@ export const getSolanaChainSpecific = async ({ keysignPayload }) => {
25
29
  // For native SOL the recipient lamports change, so it's writable.
26
30
  // For SPL the SystemProgram never touches the recipient's main
27
31
  // wallet — only the sender/recipient ATAs are writable.
32
+ // When `receiver` is unknown (DApp signing), fall back to the global feed.
28
33
  const writableAccounts = [];
29
34
  if (coin.id) {
30
35
  const fromAccount = await getSplAssociatedAccount({
@@ -34,16 +39,18 @@ export const getSolanaChainSpecific = async ({ keysignPayload }) => {
34
39
  chainSpecific.fromTokenAssociatedAddress = fromAccount.address;
35
40
  chainSpecific.programId = fromAccount.isToken2022;
36
41
  writableAccounts.push(new PublicKey(fromAccount.address));
37
- const { data } = await attempt(getSplAssociatedAccount({
38
- account: receiver,
39
- token: coin.id,
40
- }));
41
- if (data) {
42
- chainSpecific.toTokenAssociatedAddress = data.address;
43
- writableAccounts.push(new PublicKey(data.address));
42
+ if (receiver) {
43
+ const { data } = await attempt(getSplAssociatedAccount({
44
+ account: receiver,
45
+ token: coin.id,
46
+ }));
47
+ if (data) {
48
+ chainSpecific.toTokenAssociatedAddress = data.address;
49
+ writableAccounts.push(new PublicKey(data.address));
50
+ }
44
51
  }
45
52
  }
46
- else {
53
+ else if (receiver) {
47
54
  writableAccounts.push(new PublicKey(receiver));
48
55
  }
49
56
  const priorityFeePrice = await withFallback(attempt(getDynamicPriorityFeePrice(writableAccounts)), solanaConfig.priorityFeePrice);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/solana/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+DAA+D,CAAA;AAC1G,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAA;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gEAAgE,CAAA;AACxG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qEAAqE,CAAA;AAC1G,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAG9D,MAAM,CAAC,MAAM,sBAAsB,GAA+C,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IAC7G,MAAM,IAAI,GAAG,cAAc,CAAoB,cAAc,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;IAC1D,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;IAEhC,MAAM,eAAe,GAAG,CAAC,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAA;IAErE,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,EAAE;QACjD,eAAe;QACf,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE;KACvD,CAAC,CAAA;IAEF,oEAAoE;IACpE,qEAAqE;IACrE,iEAAiE;IACjE,gCAAgC;IAChC,EAAE;IACF,kEAAkE;IAClE,+DAA+D;IAC/D,wDAAwD;IACxD,MAAM,gBAAgB,GAAgB,EAAE,CAAA;IAExC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC;YAChD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,EAAE;SACf,CAAC,CAAA;QACF,aAAa,CAAC,0BAA0B,GAAG,WAAW,CAAC,OAAO,CAAA;QAC9D,aAAa,CAAC,SAAS,GAAG,WAAW,CAAC,WAAW,CAAA;QACjD,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;QAEzD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAC5B,uBAAuB,CAAC;YACtB,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,IAAI,CAAC,EAAE;SACf,CAAC,CACH,CAAA;QACD,IAAI,IAAI,EAAE,CAAC;YACT,aAAa,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAA;YACrD,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,YAAY,CACzC,OAAO,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC,EACrD,YAAY,CAAC,gBAAgB,CAC9B,CAAA;IAED,aAAa,CAAC,WAAW,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IAEvD,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/solana/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+DAA+D,CAAA;AAC1G,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAA;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gEAAgE,CAAA;AACxG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qEAAqE,CAAA;AAC1G,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAG9D,MAAM,CAAC,MAAM,sBAAsB,GAA+C,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IAC7G,MAAM,IAAI,GAAG,cAAc,CAAoB,cAAc,CAAC,CAAA;IAC9D,wEAAwE;IACxE,2EAA2E;IAC3E,2EAA2E;IAC3E,yEAAyE;IACzE,mEAAmE;IACnE,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,IAAI,SAAS,CAAA;IACtD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;IAEhC,MAAM,eAAe,GAAG,CAAC,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAA;IAErE,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,EAAE;QACjD,eAAe;QACf,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE;KACvD,CAAC,CAAA;IAEF,oEAAoE;IACpE,qEAAqE;IACrE,iEAAiE;IACjE,gCAAgC;IAChC,EAAE;IACF,kEAAkE;IAClE,+DAA+D;IAC/D,wDAAwD;IACxD,2EAA2E;IAC3E,MAAM,gBAAgB,GAAgB,EAAE,CAAA;IAExC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC;YAChD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,EAAE;SACf,CAAC,CAAA;QACF,aAAa,CAAC,0BAA0B,GAAG,WAAW,CAAC,OAAO,CAAA;QAC9D,aAAa,CAAC,SAAS,GAAG,WAAW,CAAC,WAAW,CAAA;QACjD,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;QAEzD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAC5B,uBAAuB,CAAC;gBACtB,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,IAAI,CAAC,EAAE;aACf,CAAC,CACH,CAAA;YACD,IAAI,IAAI,EAAE,CAAC;gBACT,aAAa,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAA;gBACrD,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,YAAY,CACzC,OAAO,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC,EACrD,YAAY,CAAC,gBAAgB,CAC9B,CAAA;IAED,aAAa,CAAC,WAAW,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IAEvD,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fee.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/fee.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;AAWtE,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,cAAc,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAiBD,eAAO,MAAM,mBAAmB,GAAU,4BAA4B,wBAAwB,KAAG,OAAO,CAAC,MAAM,CAqC9G,CAAA"}
1
+ {"version":3,"file":"fee.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/fee.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;AAYtE,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,cAAc,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAiBD,eAAO,MAAM,mBAAmB,GAAU,4BAA4B,wBAAwB,KAAG,OAAO,CAAC,MAAM,CAuD9G,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { Buffer } from 'buffer';
2
+ import { getTronAccountResources } from '@vultisig/core-chain/chains/tron/resources/getTronAccountResources';
2
3
  import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
3
4
  import base58 from 'bs58';
4
5
  import { getEnergyPrice } from './energyPrice.js';
@@ -44,8 +45,25 @@ export const getTrc20TransferFee = async ({ coin, receiver, amount }) => {
44
45
  if (totalEnergy <= 0n) {
45
46
  return 0n;
46
47
  }
48
+ // Subtract sender's available staked energy before computing the burn cost.
49
+ // Mirrors iOS TronService.swift:117-126 intent — falls back to worst-case on
50
+ // fetch failure so fee is never under-estimated.
51
+ let energyToBurn = totalEnergy;
52
+ try {
53
+ const resources = await getTronAccountResources(coin.address);
54
+ const availableEnergy = BigInt(resources.energy.available);
55
+ if (availableEnergy >= totalEnergy) {
56
+ energyToBurn = 0n;
57
+ }
58
+ else if (availableEnergy > 0n) {
59
+ energyToBurn = totalEnergy - availableEnergy;
60
+ }
61
+ }
62
+ catch (err) {
63
+ console.warn('[tron] failed to fetch account energy resources, falling back to worst-case fee', err);
64
+ }
47
65
  const energyPrice = await getEnergyPrice();
48
- const totalSun = totalEnergy * energyPrice;
66
+ const totalSun = energyToBurn * energyPrice;
49
67
  return totalSun;
50
68
  };
51
69
  //# sourceMappingURL=fee.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAC7D,OAAO,MAAM,MAAM,MAAM,CAAA;AAEzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAa9C,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACzC,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAClD,CAAC;AAED,SAAS,2BAA2B,CAAC,gBAAwB,EAAE,MAAc;IAC3E,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC7D,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACvD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACrC,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACnD,OAAO,gBAAgB,GAAG,eAAe,CAAA;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAA4B,EAAmB,EAAE;IACjH,MAAM,mBAAmB,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;IACjD,MAAM,gBAAgB,GAAG,2BAA2B,CAAA;IAEpD,MAAM,SAAS,GAAG,2BAA2B,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;IAE1E,MAAM,GAAG,GAAG,wDAAwD,CAAA;IAEpE,MAAM,YAAY,GAAG,MAAM,QAAQ,CAA0B,GAAG,EAAE;QAChE,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;SAC3B;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,IAAI,CAAC,OAAO;YAC3B,gBAAgB,EAAE,IAAI,CAAC,EAAE;YACzB,iBAAiB,EAAE,gBAAgB;YACnC,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,IAAI;SACd;KACF,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,IAAI,CAAC,CAAA;IAChD,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,IAAI,CAAC,CAAA;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;IAC9D,6EAA6E;IAC7E,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;QACtB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAA;IAC1C,MAAM,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAA;IAE1C,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
1
+ {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/fee.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAKzD,eAAO,MAAM,oBAAoB,EAAE,wBAAwB,CAAC,cAAc,CA2CzE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAyBzD,eAAO,MAAM,oBAAoB,EAAE,wBAAwB,CAAC,cAAc,CA2CzE,CAAA"}
@@ -1,11 +1,31 @@
1
1
  import { create } from '@bufbuild/protobuf';
2
2
  import { getTronBlockInfo } from '@vultisig/core-chain/chains/tron/getTronBlockInfo';
3
+ import { getTronAccountResources } from '@vultisig/core-chain/chains/tron/resources/getTronAccountResources';
3
4
  import { isFeeCoin } from '@vultisig/core-chain/coin/utils/isFeeCoin';
4
5
  import { TronSpecificSchema } from '@vultisig/core-mpc/types/vultisig/keysign/v1/blockchain_specific_pb';
5
6
  import { getKeysignAmount } from '../../../utils/getKeysignAmount.js';
6
7
  import { getKeysignCoin } from '../../../utils/getKeysignCoin.js';
7
8
  import { getTrc20TransferFee } from './fee.js';
8
- const nativeTronSendFee = 800000n;
9
+ // Worst-case fee when sender has exhausted bandwidth. A native TRX transfer
10
+ // is ~267-345 bytes on-wire (signed size); at 1000 sun/byte that's ~267k-345k
11
+ // sun. 800_000n keeps the pre-existing margin (~2.4× the median signed size)
12
+ // and guards against governance-driven bandwidth price hikes.
13
+ const NATIVE_TRX_SEND_FEE_FALLBACK = 800000n;
14
+ // Native TRX transfer is ~270-345 bytes; use 300 as the threshold (mirrors iOS BYTES_PER_COIN_TX)
15
+ const BYTES_PER_NATIVE_TRX_TX = 300;
16
+ const getNativeTronSendFee = async (fromAddress) => {
17
+ try {
18
+ const resources = await getTronAccountResources(fromAddress);
19
+ if (resources.bandwidth.available >= BYTES_PER_NATIVE_TRX_TX) {
20
+ return 0n;
21
+ }
22
+ return NATIVE_TRX_SEND_FEE_FALLBACK;
23
+ }
24
+ catch {
25
+ // RPC error — don't block the send, fall back to worst-case estimate
26
+ return NATIVE_TRX_SEND_FEE_FALLBACK;
27
+ }
28
+ };
9
29
  export const getTronChainSpecific = async ({ keysignPayload, thirdPartyGasLimitEstimation, expiration, timestamp, refBlockBytesHex, refBlockHashHex, }) => {
10
30
  const coin = getKeysignCoin(keysignPayload);
11
31
  const blockInfo = await getTronBlockInfo({
@@ -19,7 +39,7 @@ export const getTronChainSpecific = async ({ keysignPayload, thirdPartyGasLimitE
19
39
  return thirdPartyGasLimitEstimation;
20
40
  }
21
41
  if (isFeeCoin(coin)) {
22
- return nativeTronSendFee;
42
+ return getNativeTronSendFee(coin.address);
23
43
  }
24
44
  return getTrc20TransferFee({
25
45
  coin,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAA;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qEAAqE,CAAA;AAExG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAE3C,MAAM,iBAAiB,GAAG,OAAO,CAAA;AAEjC,MAAM,CAAC,MAAM,oBAAoB,GAA6C,KAAK,EAAE,EACnF,cAAc,EACd,4BAA4B,EAC5B,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,GAChB,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;IAE3C,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;QACvC,UAAU;QACV,SAAS;QACT,gBAAgB;QAChB,eAAe;KAChB,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,IAAI,4BAA4B,EAAE,CAAC;YACjC,OAAO,4BAA4B,CAAA;QACrC,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QAED,OAAO,mBAAmB,CAAC;YACzB,IAAI;YACJ,QAAQ,EAAE,cAAc,CAAC,SAAS;YAClC,MAAM,EAAE,gBAAgB,CAAC,cAAc,CAAC;SACzC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,MAAM,CAAC,kBAAkB,EAAE;QAChC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;QACtC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;QACxC,oBAAoB,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAC5D,iBAAiB,EAAE,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC;QACtD,kBAAkB,EAAE,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;QACxD,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;QACtD,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;QACtD,yBAAyB,EAAE,SAAS,CAAC,yBAAyB;QAC9D,aAAa,EAAE,MAAM,gBAAgB,EAAE;KACxC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/mpc/keysign/chainSpecific/resolvers/tron/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAA;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oEAAoE,CAAA;AAC5G,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qEAAqE,CAAA;AAExG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAE3C,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,8DAA8D;AAC9D,MAAM,4BAA4B,GAAG,OAAQ,CAAA;AAE7C,kGAAkG;AAClG,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAEnC,MAAM,oBAAoB,GAAG,KAAK,EAAE,WAAmB,EAAmB,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAA;QAC5D,IAAI,SAAS,CAAC,SAAS,CAAC,SAAS,IAAI,uBAAuB,EAAE,CAAC;YAC7D,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,4BAA4B,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;QACrE,OAAO,4BAA4B,CAAA;IACrC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAA6C,KAAK,EAAE,EACnF,cAAc,EACd,4BAA4B,EAC5B,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,GAChB,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;IAE3C,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;QACvC,UAAU;QACV,SAAS;QACT,gBAAgB;QAChB,eAAe;KAChB,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,IAAI,4BAA4B,EAAE,CAAC;YACjC,OAAO,4BAA4B,CAAA;QACrC,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3C,CAAC;QAED,OAAO,mBAAmB,CAAC;YACzB,IAAI;YACJ,QAAQ,EAAE,cAAc,CAAC,SAAS;YAClC,MAAM,EAAE,gBAAgB,CAAC,cAAc,CAAC;SACzC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,MAAM,CAAC,kBAAkB,EAAE;QAChC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;QACtC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;QACxC,oBAAoB,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAC5D,iBAAiB,EAAE,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC;QACtD,kBAAkB,EAAE,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;QACxD,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;QACtD,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;QACtD,yBAAyB,EAAE,SAAS,CAAC,yBAAyB;QAC9D,aAAa,EAAE,MAAM,gBAAgB,EAAE;KACxC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/keysign/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAA;AAGpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AAuB9E,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,OAAO,CAAA;CAC5B,CAAA;AAID,eAAO,MAAM,OAAO,GAAU,wIAW3B,YAAY,8BA+Kd,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/keysign/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAA;AAGpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AAuB9E,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,OAAO,CAAA;CAC5B,CAAA;AAID,eAAO,MAAM,OAAO,GAAU,wIAW3B,YAAY,8BA8Ld,CAAA"}
@@ -87,6 +87,17 @@ export const keysign = async ({ keyShare, signatureAlgorithm, message, chainPath
87
87
  if (processedMessages[cacheKey]) {
88
88
  continue;
89
89
  }
90
+ // Diagnostic logging for "aes/gcm: invalid ghash tag" investigation.
91
+ // Enable via VULTISIG_DIAG_MPC_RELAY=1. Remove once root-cause is confirmed.
92
+ if (process.env.VULTISIG_DIAG_MPC_RELAY === '1') {
93
+ console.log('[DIAG-MPC-INBOUND]', JSON.stringify({
94
+ from: msg.from,
95
+ to: msg.to,
96
+ session_id: msg.session_id,
97
+ body_len: msg.body?.length ?? null,
98
+ message_id: messageId,
99
+ }));
100
+ }
90
101
  const accepted = session.inputMessage(fromMpcServerMessage(msg.body, hexEncryptionKey));
91
102
  if (accepted) {
92
103
  processedMessages[cacheKey] = true;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/keysign/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/keysign/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/message/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAO/B,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,EAAE,kBAAkB,MAAM,wBAOxE,CAAA;AAEH,eAAO,MAAM,kBAAkB,GAAI,MAAM,UAAU,EAAE,kBAAkB,MAAM,WAI7C,CAAA"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../packages/core/mpc/message/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAO/B,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,EAAE,kBAAkB,MAAM,wBAqC1E,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,MAAM,UAAU,EAAE,kBAAkB,MAAM,WAI7C,CAAA"}
@@ -1,12 +1,39 @@
1
+ import { createHash } from 'crypto';
1
2
  import { Buffer } from 'buffer';
2
3
  import { base64Encode } from '@vultisig/lib-utils/base64Encode';
3
4
  import { decryptWithAesGcm } from '@vultisig/lib-utils/encryption/aesGcm/decryptWithAesGcm';
4
5
  import { encryptWithAesGcm } from '@vultisig/lib-utils/encryption/aesGcm/encryptWithAesGcm';
5
6
  import { encryptedEncoding, plainTextEncoding } from '@vultisig/lib-utils/encryption/config';
6
- export const fromMpcServerMessage = (body, hexEncryptionKey) => Buffer.from(decryptWithAesGcm({
7
- key: Buffer.from(hexEncryptionKey, 'hex'),
8
- value: Buffer.from(body, encryptedEncoding),
9
- }).toString(plainTextEncoding), 'base64');
7
+ export const fromMpcServerMessage = (body, hexEncryptionKey) => {
8
+ // Decode once so the diag log and the decrypt path observe identical bytes
9
+ // and any decode failure attributes to a single site (cleaner stack trace
10
+ // for the ghash investigation).
11
+ const encryptedBuf = Buffer.from(body, encryptedEncoding);
12
+ // Diagnostic logging for "aes/gcm: invalid ghash tag" investigation.
13
+ // No behavior change — only logs body/key signature shapes when the env flag is set.
14
+ // Enable via VULTISIG_DIAG_MPC_RELAY=1. Remove once root-cause is confirmed.
15
+ //
16
+ // key_fingerprint is a sha256-truncated digest of the relay key's DECODED
17
+ // bytes (NOT the hex string), so the fingerprint is stable across
18
+ // upper/lower-case hex inputs - `0xABCD...` and `0xabcd...` map to the same
19
+ // 32 bytes of key material and must produce the same fingerprint for
20
+ // cross-node correlation. Hashing the hex string would split the same key
21
+ // into two distinct fingerprints based on caller-side casing. No key bits
22
+ // reach the log either way.
23
+ if (process.env.VULTISIG_DIAG_MPC_RELAY === '1') {
24
+ console.log('[DIAG-MPC-RELAY]', JSON.stringify({
25
+ body_len: body.length,
26
+ decoded_len: encryptedBuf.length,
27
+ nonce_hex: encryptedBuf.subarray(0, 12).toString('hex'),
28
+ first32_hex: encryptedBuf.toString('hex').slice(0, 64),
29
+ key_fingerprint: createHash('sha256').update(Buffer.from(hexEncryptionKey, 'hex')).digest('hex').slice(0, 16),
30
+ }));
31
+ }
32
+ return Buffer.from(decryptWithAesGcm({
33
+ key: Buffer.from(hexEncryptionKey, 'hex'),
34
+ value: encryptedBuf,
35
+ }).toString(plainTextEncoding), 'base64');
36
+ };
10
37
  export const toMpcServerMessage = (body, hexEncryptionKey) => encryptWithAesGcm({
11
38
  key: Buffer.from(hexEncryptionKey, 'hex'),
12
39
  value: Buffer.from(base64Encode(body)),
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/message/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAC3F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAE5F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,gBAAwB,EAAE,EAAE,CAC7E,MAAM,CAAC,IAAI,CACT,iBAAiB,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC;CAC5C,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAC9B,QAAQ,CACT,CAAA;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAgB,EAAE,gBAAwB,EAAE,EAAE,CAC/E,iBAAiB,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;CACvC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../../packages/core/mpc/message/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAC3F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAE5F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,gBAAwB,EAAE,EAAE;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,gCAAgC;IAChC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IAEzD,qEAAqE;IACrE,qFAAqF;IACrF,6EAA6E;IAC7E,EAAE;IACF,0EAA0E;IAC1E,kEAAkE;IAClE,4EAA4E;IAC5E,qEAAqE;IACrE,0EAA0E;IAC1E,0EAA0E;IAC1E,4BAA4B;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,GAAG,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CACT,kBAAkB,EAClB,IAAI,CAAC,SAAS,CAAC;YACb,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,WAAW,EAAE,YAAY,CAAC,MAAM;YAChC,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACvD,WAAW,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACtD,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SAC9G,CAAC,CACH,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAChB,iBAAiB,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;QACzC,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAC9B,QAAQ,CACT,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAgB,EAAE,gBAAwB,EAAE,EAAE,CAC/E,iBAAiB,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;CACvC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vultisig/core-mpc",
3
- "version": "1.2.20",
3
+ "version": "1.2.21",
4
4
  "description": "MPC, keysign, and vault types shared across Vultisig clients",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -980,11 +980,11 @@
980
980
  "7z-wasm": "^1.2.0",
981
981
  "@bufbuild/protobuf": "^2.11.0",
982
982
  "@cosmjs/encoding": "^0.39.0",
983
- "@mysten/sui": "^2.8.0",
983
+ "@mysten/sui": "^2.17.0",
984
984
  "@noble/hashes": "^1.8.0",
985
985
  "@solana/web3.js": "^1.98.4",
986
986
  "@trustwallet/wallet-core": "^4.6.9",
987
- "@vultisig/core-chain": "2.2.5",
987
+ "@vultisig/core-chain": "2.3.0",
988
988
  "@vultisig/core-config": "0.9.1",
989
989
  "@vultisig/lib-dkls": "0.9.0",
990
990
  "@vultisig/lib-mldsa": "0.9.0",
@@ -996,6 +996,6 @@
996
996
  "buffer": "^6.0.3",
997
997
  "cosmjs-types": "^0.11.0",
998
998
  "long": "^5.3.2",
999
- "viem": "^2.48.4"
999
+ "viem": "^2.51.0"
1000
1000
  }
1001
1001
  }