@vultisig/core-chain 1.2.0 → 1.2.2

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,44 @@
1
1
  # @vultisig/core-chain
2
2
 
3
+ ## 1.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`ed1eb16`](https://github.com/vultisig/vultisig-sdk/commit/ed1eb16b868176b796629e10de95fddcf701c151)]:
8
+ - @vultisig/lib-utils@0.9.2
9
+
10
+ ## 1.2.1
11
+
12
+ ### Patch Changes
13
+
14
+ - [#204](https://github.com/vultisig/vultisig-sdk/pull/204) [`0388700`](https://github.com/vultisig/vultisig-sdk/commit/03887009b7579fc0b193d068d4a205cdd3b7c214) Thanks [@premiumjibles](https://github.com/premiumjibles)! - feat(cli): agent-friendly CLI + new @vultisig/mcp package
15
+
16
+ ## @vultisig/cli
17
+ - Auto-TTY JSON output (`--output`, `--ci`, `--quiet`, `--fields`, `--non-interactive`)
18
+ - Versioned `{ success, v: 1, data }` envelope and typed error envelope with exit codes 0-7
19
+ - Safety: fixed `swap`/`send`/`execute`/`rujira swap`/`rujira withdraw` auto-executing in JSON mode; `--yes` now required uniformly
20
+ - `--dry-run` coverage across all mutating commands
21
+ - `vsig schema` machine-readable command introspection
22
+ - Auth: replaced `keytar` with `@napi-rs/keyring`, encrypted-file fallback for headless environments (AES-256-GCM + async scrypt)
23
+
24
+ ## @vultisig/client-shared (new package)
25
+
26
+ Shared client infrastructure for `@vultisig/cli` and `@vultisig/mcp`: auth setup, config store, credential store (keyring + file fallback), tool descriptions, vault discovery.
27
+
28
+ ## @vultisig/sdk
29
+ - `VaultBase.send()` and `VaultBase.swap()` accept `amount: 'max'`
30
+ - `SwapService` rejects quotes with near-zero output to guard against bad provider routes
31
+ - `FiatValueService.fetchTokenPrice` returns `0` for non-EVM chains instead of throwing (effective behavior identical — `getPortfolioValue` already caught the throw)
32
+ - `ServerManager`: removed stdout `console.log` calls that corrupted JSON output; raised `waitForPeers` timeout from 30s to 120s and tightened poll interval from 2s to 500ms
33
+
34
+ ## @vultisig/core-chain
35
+ - Narrowed EVM broadcast retry list to strings that genuinely indicate "same tx already in mempool under this hash" (`already known`, `transaction already exists`, `tx already in mempool`). Dropped strings that can silently swallow real broadcast failures (`nonce too low`, `transaction is temporarily banned`, `future transaction tries to replace pending`, `could not replace existing tx`)
36
+
37
+ ## @vultisig/core-mpc
38
+ - `maxInboundWaitTime` raised from 1 to 3 minutes for flaky networks
39
+ - Added 100ms sleep in `processInbound` recursion to prevent hot-looping on empty inbound
40
+ - Setup message polling: same 10-second budget, polls 5× more often (50 × 200ms vs 10 × 1000ms)
41
+
3
42
  ## 1.2.0
4
43
 
5
44
  ### Minor Changes
@@ -1,5 +1,5 @@
1
- import { ripemd160 } from '@noble/hashes/legacy.js';
2
- import { sha256 } from '@noble/hashes/sha2.js';
1
+ import { ripemd160 } from '@noble/hashes/ripemd160';
2
+ import { sha256 } from '@noble/hashes/sha256';
3
3
  import { btcAddressTypeCircuit } from './BtcAddressType.js';
4
4
  import { detectBtcAddressType } from './detectBtcAddressType.js';
5
5
  const claimSuffix = 'qbtc-claim-v1';
@@ -1 +1 @@
1
- {"version":3,"file":"computeClaimHashes.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/qbtc/claim/computeClaimHashes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"computeClaimHashes.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/chains/cosmos/qbtc/claim/computeClaimHashes.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { mirrorRecord } from '@vultisig/lib-utils/record/mirrorRecord';
2
2
  import { recordMap } from '@vultisig/lib-utils/record/recordMap';
3
3
  import { Chain } from '../../../../Chain.js';
4
4
  import { chainFeeCoin } from '../../../../coin/chainFeeCoin.js';
5
- import { kujiraCoinMigratedToThorChainDestinationId, kujiraCoinsMigratedToThorChainMetadata, } from '.';
5
+ import { kujiraCoinMigratedToThorChainDestinationId, kujiraCoinsMigratedToThorChainMetadata, } from './index.js';
6
6
  export const kujiraCoinsOnThorChain = recordMap(mirrorRecord(kujiraCoinMigratedToThorChainDestinationId), coin => {
7
7
  const metadata = kujiraCoinsMigratedToThorChainMetadata[coin];
8
8
  const decimals = chainFeeCoin[Chain.THORChain].decimals;
@@ -1,7 +1,7 @@
1
1
  import { match } from '@vultisig/lib-utils/match';
2
2
  import { TW } from '@trustwallet/wallet-core';
3
3
  import { toEvmTwAmount } from '../../tw/toEvmTwAmount.js';
4
- import { evmChainTxFeeFormat } from '..';
4
+ import { evmChainTxFeeFormat } from '../index.js';
5
5
  export const getEvmTwFeeFields = ({ chain, maxFeePerGasWei, priorityFee, gasLimit, }) => {
6
6
  const feeFormat = evmChainTxFeeFormat[chain];
7
7
  return match(feeFormat, {
@@ -1,6 +1,6 @@
1
1
  import { Chain, EthereumL2Chain } from '@vultisig/core-chain/Chain';
2
2
  import { recordMap } from '@vultisig/lib-utils/record/recordMap';
3
- import { kujiraCoinsMigratedToThorChainMetadata } from '../chains/cosmos/thor/kujira-merge.js';
3
+ import { kujiraCoinsMigratedToThorChainMetadata } from '../chains/cosmos/thor/kujira-merge/index.js';
4
4
  const ether = {
5
5
  ticker: 'ETH',
6
6
  logo: 'eth',
@@ -1,5 +1,5 @@
1
1
  import { chainFeeCoin } from './chainFeeCoin.js';
2
- import { knownTokens } from './knownTokens.js';
2
+ import { knownTokens } from './knownTokens/index.js';
3
3
  export const coins = [
4
4
  ...Object.values(chainFeeCoin),
5
5
  ...Object.values(knownTokens).flat(),
@@ -3,8 +3,8 @@ import { isOneOf } from '@vultisig/lib-utils/array/isOneOf';
3
3
  import { coinFinderChainKinds, } from './CoinFinderChainKind.js';
4
4
  import { findCardanoCoins } from './resolvers/cardano.js';
5
5
  import { findCosmosCoins } from './resolvers/cosmos.js';
6
- import { findEvmCoins } from './resolvers/evm.js';
7
- import { findSolanaCoins } from './resolvers/solana.js';
6
+ import { findEvmCoins } from './resolvers/evm/index.js';
7
+ import { findSolanaCoins } from './resolvers/solana/index.js';
8
8
  const resolvers = {
9
9
  cosmos: findCosmosCoins,
10
10
  evm: findEvmCoins,
@@ -1,5 +1,5 @@
1
1
  import { Chain } from '../../Chain.js';
2
- import { kujiraCoinsMigratedToThorChainMetadata } from '../../chains/cosmos/thor/kujira-merge.js';
2
+ import { kujiraCoinsMigratedToThorChainMetadata } from '../../chains/cosmos/thor/kujira-merge/index.js';
3
3
  import { kujiraCoinsOnThorChain } from '../../chains/cosmos/thor/kujira-merge/kujiraCoinsOnThorChain.js';
4
4
  import { yieldBearingThorChainTokens } from '../../chains/cosmos/thor/yield-bearing-tokens/yAssetsOnThorChain.js';
5
5
  export const knownCosmosTokens = {
@@ -1,5 +1,5 @@
1
1
  import { shouldBePresent } from '@vultisig/lib-utils/assert/shouldBePresent';
2
- import { knownTokensIndex } from '.';
2
+ import { knownTokensIndex } from './index.js';
3
3
  const getKnownToken = (key) => {
4
4
  return knownTokensIndex[key.chain]?.[key.id.toLowerCase()];
5
5
  };
@@ -1,4 +1,4 @@
1
- import { blake2b } from '@noble/hashes/blake2.js';
1
+ import { blake2b } from '@noble/hashes/blake2b';
2
2
  export const deriveCardanoAddress = ({ publicKey, walletCore }) => {
3
3
  const extendedKeyData = publicKey.data();
4
4
  const spendingKeyData = extendedKeyData.slice(0, 32);
@@ -1 +1 @@
1
- {"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/publicKey/address/cardano.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAWjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAS,EAAE,EAAE;IACvE,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IACxC,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEpD,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IAEpD,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IACtC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACrB,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAExB,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AACtD,CAAC,CAAA"}
1
+ {"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/publicKey/address/cardano.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAW/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAS,EAAE,EAAE;IACvE,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IACxC,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEpD,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IAEpD,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IACtC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACrB,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAExB,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AACtD,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { toBech32 } from '@cosmjs/encoding';
2
- import { ripemd160 } from '@noble/hashes/legacy.js';
3
- import { sha256 } from '@noble/hashes/sha2.js';
2
+ import { ripemd160 } from '@noble/hashes/ripemd160';
3
+ import { sha256 } from '@noble/hashes/sha256';
4
4
  const qbtcBech32Prefix = 'qbtc';
5
5
  /** Derives a QBTC address from an MLDSA public key using Bech32(RIPEMD160(SHA256(pubkey))). */
6
6
  export const deriveQbtcAddress = (mldsaPublicKeyHex) => {
@@ -1 +1 @@
1
- {"version":3,"file":"deriveQbtcAddress.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/publicKey/address/deriveQbtcAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE9C,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAE/B,+FAA+F;AAC/F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,iBAAyB,EAAU,EAAE;IACrE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;IACzD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;IAC3C,OAAO,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC,CAAA"}
1
+ {"version":3,"file":"deriveQbtcAddress.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/publicKey/address/deriveQbtcAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAE/B,+FAA+F;AAC/F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,iBAAyB,EAAU,EAAE;IACrE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;IACzD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;IAC3C,OAAO,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { recordMap } from '@vultisig/lib-utils/record/recordMap';
2
2
  import { sortRecordKeysAlphabetically } from '@vultisig/lib-utils/record/sortRecordKeysAlphabetically';
3
3
  import { execSync } from 'child_process';
4
- import { knownTokens } from '../coin/knownTokens.js';
4
+ import { knownTokens } from '../coin/knownTokens/index.js';
5
5
  const main = () => {
6
6
  const sorted = sortRecordKeysAlphabetically(recordMap(knownTokens, tokens => [...tokens].sort((a, b) => a.ticker.localeCompare(b.ticker))));
7
7
  const output = JSON.stringify(sorted, null, 2);
@@ -1,6 +1,6 @@
1
1
  import { AccountCoin } from '@vultisig/core-chain/coin/AccountCoin';
2
2
  import { TransferDirection } from '@vultisig/lib-utils/TransferDirection';
3
- import { VultDiscountTier } from '../affiliate.js';
3
+ import { VultDiscountTier } from '../affiliate/index.js';
4
4
  import { SwapQuote } from './SwapQuote.js';
5
5
  export type FindSwapQuoteInput = Record<TransferDirection, AccountCoin> & {
6
6
  amount: bigint;
@@ -12,7 +12,7 @@ import { asyncFallbackChain } from '@vultisig/lib-utils/promise/asyncFallbackCha
12
12
  import { pick } from '@vultisig/lib-utils/record/pick';
13
13
  import { Chain } from '../../Chain.js';
14
14
  import { isChainOfKind } from '../../ChainKind.js';
15
- import { getSwapAffiliateBps } from '../affiliate.js';
15
+ import { getSwapAffiliateBps } from '../affiliate/index.js';
16
16
  import { getKyberSwapQuote } from '../general/kyber/api/quote.js';
17
17
  import { kyberSwapEnabledChains } from '../general/kyber/chains.js';
18
18
  import { getNativeSwapQuote } from '../native/api/getNativeSwapQuote.js';
@@ -1 +1 @@
1
- {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAMrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,cAAc,EAAE,mBAAmB,CAAC,QAAQ,CA6BxD,CAAA"}
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/evm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAMrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,cAAc,EAAE,mBAAmB,CAAC,QAAQ,CAyBxD,CAAA"}
@@ -8,7 +8,7 @@ export const broadcastEvmTx = async ({ chain, tx, }) => {
8
8
  serializedTransaction: ensureHexPrefix(Buffer.from(tx.encoded).toString('hex')),
9
9
  }));
10
10
  if (error &&
11
- !isInError(error, 'already known', 'transaction is temporarily banned', 'nonce too low', 'transaction already exists', 'future transaction tries to replace pending', 'could not replace existing tx', 'tx already in mempool')) {
11
+ !isInError(error, 'already known', 'transaction already exists', 'tx already in mempool')) {
12
12
  throw error;
13
13
  }
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/evm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAIzE,MAAM,CAAC,MAAM,cAAc,GAAkC,KAAK,EAAE,EAClE,KAAK,EACL,EAAE,GACH,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAElC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAC7B,MAAM,CAAC,kBAAkB,CAAC;QACxB,qBAAqB,EAAE,eAAe,CACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACxC;KACF,CAAC,CACH,CAAA;IAED,IACE,KAAK;QACL,CAAC,SAAS,CACR,KAAK,EACL,eAAe,EACf,mCAAmC,EACnC,eAAe,EACf,4BAA4B,EAC5B,6CAA6C,EAC7C,+BAA+B,EAC/B,uBAAuB,CACxB,EACD,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/evm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAIzE,MAAM,CAAC,MAAM,cAAc,GAAkC,KAAK,EAAE,EAClE,KAAK,EACL,EAAE,GACH,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAElC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAC7B,MAAM,CAAC,kBAAkB,CAAC;QACxB,qBAAqB,EAAE,eAAe,CACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACxC;KACF,CAAC,CACH,CAAA;IAED,IACE,KAAK;QACL,CAAC,SAAS,CACR,KAAK,EACL,eAAe,EACf,4BAA4B,EAC5B,uBAAuB,CACxB,EACD,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
@@ -7,7 +7,7 @@ export const broadcastTonTx = async ({ tx, }) => {
7
7
  const { error } = await attempt(queryUrl(url, {
8
8
  body: { boc: tx.encoded },
9
9
  }));
10
- if (error && !isInError(error, 'duplicate message')) {
10
+ if (error && !isInError(error, 'duplicate message', 'duplicate msg_seqno')) {
11
11
  throw error;
12
12
  }
13
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ton.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/ton.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAI7D,MAAM,CAAC,MAAM,cAAc,GAAwC,KAAK,EAAE,EACxE,EAAE,GACH,EAAE,EAAE;IACH,MAAM,GAAG,GAAG,GAAG,UAAU,2BAA2B,CAAA;IAEpD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAC7B,QAAQ,CAA+B,GAAG,EAAE;QAC1C,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE;KAC1B,CAAC,CACH,CAAA;IAED,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"ton.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/ton.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAI7D,MAAM,CAAC,MAAM,cAAc,GAAwC,KAAK,EAAE,EACxE,EAAE,GACH,EAAE,EAAE;IACH,MAAM,GAAG,GAAG,GAAG,UAAU,2BAA2B,CAAA;IAEpD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAC7B,QAAQ,CAA+B,GAAG,EAAE;QAC1C,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE;KAC1B,CAAC,CACH,CAAA;IAED,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,CAAC,EAAE,CAAC;QAC3E,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { blake2b } from '@noble/hashes/blake2.js';
1
+ import { blake2b } from '@noble/hashes/blake2b';
2
2
  import { decode, encode } from 'cbor-x';
3
3
  export const getCardanoTxHash = tx => {
4
4
  // Prefer pre-computed txId (set by compileTx to avoid cbor-x
@@ -1 +1 @@
1
- {"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/hash/resolvers/cardano.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIvC,MAAM,CAAC,MAAM,gBAAgB,GAAuC,EAAE,CAAC,EAAE;IACvE,6DAA6D;IAC7D,oDAAoD;IACpD,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IAE/C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC5C,CAAC,CAAA"}
1
+ {"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/hash/resolvers/cardano.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIvC,MAAM,CAAC,MAAM,gBAAgB,GAAuC,EAAE,CAAC,EAAE;IACvE,6DAA6D;IAC7D,oDAAoD;IACpD,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IAE/C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC5C,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vultisig/core-chain",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Blockchain chain logic shared across Vultisig clients",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1553,14 +1553,14 @@
1553
1553
  "@cosmjs/stargate": "^0.38.1",
1554
1554
  "@lifi/sdk": "^3.16.2",
1555
1555
  "@mysten/sui": "^2.8.0",
1556
- "@noble/hashes": "^2.0.1",
1556
+ "@noble/hashes": "^1.8.0",
1557
1557
  "@polkadot/api": "^16.5.4",
1558
1558
  "@polkadot/util": "^14.0.1",
1559
1559
  "@polkadot/util-crypto": "^14.0.1",
1560
1560
  "@solana/web3.js": "^1.98.4",
1561
1561
  "@trustwallet/wallet-core": "^4.6.0",
1562
1562
  "@vultisig/core-config": "0.9.1",
1563
- "@vultisig/lib-utils": "0.9.1",
1563
+ "@vultisig/lib-utils": "0.9.2",
1564
1564
  "bip32": "^5.0.1",
1565
1565
  "bitcoinjs-lib": "^7.0.1",
1566
1566
  "bs58": "^6.0.0",