@vultisig/core-chain 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @vultisig/core-chain
2
2
 
3
+ ## 1.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#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
8
+
9
+ ## @vultisig/cli
10
+ - Auto-TTY JSON output (`--output`, `--ci`, `--quiet`, `--fields`, `--non-interactive`)
11
+ - Versioned `{ success, v: 1, data }` envelope and typed error envelope with exit codes 0-7
12
+ - Safety: fixed `swap`/`send`/`execute`/`rujira swap`/`rujira withdraw` auto-executing in JSON mode; `--yes` now required uniformly
13
+ - `--dry-run` coverage across all mutating commands
14
+ - `vsig schema` machine-readable command introspection
15
+ - Auth: replaced `keytar` with `@napi-rs/keyring`, encrypted-file fallback for headless environments (AES-256-GCM + async scrypt)
16
+
17
+ ## @vultisig/client-shared (new package)
18
+
19
+ Shared client infrastructure for `@vultisig/cli` and `@vultisig/mcp`: auth setup, config store, credential store (keyring + file fallback), tool descriptions, vault discovery.
20
+
21
+ ## @vultisig/sdk
22
+ - `VaultBase.send()` and `VaultBase.swap()` accept `amount: 'max'`
23
+ - `SwapService` rejects quotes with near-zero output to guard against bad provider routes
24
+ - `FiatValueService.fetchTokenPrice` returns `0` for non-EVM chains instead of throwing (effective behavior identical — `getPortfolioValue` already caught the throw)
25
+ - `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
26
+
27
+ ## @vultisig/core-chain
28
+ - 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`)
29
+
30
+ ## @vultisig/core-mpc
31
+ - `maxInboundWaitTime` raised from 1 to 3 minutes for flaky networks
32
+ - Added 100ms sleep in `processInbound` recursion to prevent hot-looping on empty inbound
33
+ - Setup message polling: same 10-second budget, polls 5× more often (50 × 200ms vs 10 × 1000ms)
34
+
3
35
  ## 1.2.0
4
36
 
5
37
  ### 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.1",
4
4
  "description": "Blockchain chain logic shared across Vultisig clients",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1553,7 +1553,7 @@
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",