@vultisig/core-chain 2.14.1 → 2.15.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,39 @@
1
1
  # @vultisig/core-chain
2
2
 
3
+ ## 2.15.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#709](https://github.com/vultisig/vultisig-sdk/pull/709) [`de621f3`](https://github.com/vultisig/vultisig-sdk/commit/de621f3fd2a8c1ca64e73f6fe64afb7d77fb3e43) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Resolve Cosmos fee amounts from live node min gas prices when available, keeping the existing static amounts as safe floors.
8
+
9
+ - [#712](https://github.com/vultisig/vultisig-sdk/pull/712) [`9439a61`](https://github.com/vultisig/vultisig-sdk/commit/9439a6194abf3533ad06aa84847c81b2af7fe8df) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Filter Blockchair UTXO selection to confirmed spendable outputs and request an explicit address-info UTXO limit.
10
+
11
+ - [#714](https://github.com/vultisig/vultisig-sdk/pull/714) [`625fb42`](https://github.com/vultisig/vultisig-sdk/commit/625fb4205f265587f66f447b4059543756ef1095) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Fetch the live Zcash ZIP-243 consensus branch ID for SDK signing and fail loudly instead of using a stale compiled fallback.
12
+
13
+ ## 2.15.0
14
+
15
+ ### Minor Changes
16
+
17
+ - [#686](https://github.com/vultisig/vultisig-sdk/pull/686) [`b900fcf`](https://github.com/vultisig/vultisig-sdk/commit/b900fcf95709da28ea7add1ea144d126c9fbcd98) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - Add QBTC support to the Cosmos staking signing path and LCD query layer. QBTC
18
+ is a Cosmos-SDK chain (post-quantum testnet, ML-DSA-signed) but lives in
19
+ `OtherChain`, so it sat outside the staking helpers' typing and LCD root
20
+ resolution.
21
+
22
+ - `QBTCHelper.buildTxComponents` now consumes a `signData.signDirect` payload
23
+ verbatim — the `bodyBytes` / `authInfoBytes` already carry the ML-DSA pubkey
24
+ `Any`, gas and fee, so the initiator and every co-signing peer rebuild an
25
+ identical SignDoc hash. Previously it always rebuilt the body from
26
+ `transactionType` (MsgSend / IBC / Vote), which silently turned a staking
27
+ SignDoc into a `MsgSend`. `signAmino` is rejected (ML-DSA is
28
+ SIGN_MODE_DIRECT only). The normal send path (no `signData`) is unchanged.
29
+ - `chains/cosmos/staking/lcdQueries` exports a widened
30
+ `StakingChain = IbcEnabledCosmosChain | Chain.QBTC` and resolves the LCD root
31
+ through a helper that routes QBTC to `qbtcRestUrl` and every other staking
32
+ chain to `cosmosRpcUrl[chain]`.
33
+
34
+ Backward compatible: existing IBC-enabled staking chains route exactly as
35
+ before.
36
+
3
37
  ## 2.14.1
4
38
 
5
39
  ### Patch Changes
@@ -1,3 +1,16 @@
1
1
  import { IbcEnabledCosmosChain } from '../../Chain.js';
2
+ import type { CoinKey } from '../../coin/Coin.js';
2
3
  export declare const cosmosGasRecord: Record<IbcEnabledCosmosChain, bigint>;
4
+ type FetchOpts = {
5
+ fetchImpl?: typeof fetch;
6
+ signal?: AbortSignal;
7
+ };
8
+ type ParsedDecimal = {
9
+ numerator: bigint;
10
+ denominator: bigint;
11
+ };
12
+ export declare const getFeeAmountFromGasPrice: (gasLimit: bigint, gasPrice: ParsedDecimal) => bigint;
13
+ export declare const getMinGasPriceForDenom: (minimumGasPrice: string, targetDenom: string) => ParsedDecimal | undefined;
14
+ export declare const getCosmosFeeAmount: (coin: CoinKey<IbcEnabledCosmosChain>, opts?: FetchOpts) => Promise<bigint>;
15
+ export {};
3
16
  //# sourceMappingURL=gas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gas.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cosmos/gas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAI1D,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CASjE,CAAA"}
1
+ {"version":3,"file":"gas.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cosmos/gas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAO9C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CASjE,CAAA;AAED,KAAK,SAAS,GAAG;IACf,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAMD,KAAK,aAAa,GAAG;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AA2BD,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,EAAE,UAAU,aAAa,KAAG,MAIpF,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,iBAAiB,MAAM,EAAE,aAAa,MAAM,KAAG,aAAa,GAAG,SAYrG,CAAA;AAyDD,eAAO,MAAM,kBAAkB,GAC7B,MAAM,OAAO,CAAC,qBAAqB,CAAC,EACpC,OAAM,SAAc,KACnB,OAAO,CAAC,MAAM,CAehB,CAAA"}
@@ -1,4 +1,7 @@
1
1
  import { Chain } from '../../Chain.js';
2
+ import { cosmosFeeCoinDenom } from './cosmosFeeCoinDenom.js';
3
+ import { getCosmosGasLimit } from './cosmosGasLimitRecord.js';
4
+ import { cosmosRpcUrl } from './cosmosRpcUrl.js';
2
5
  const defaultGas = 7500n;
3
6
  export const cosmosGasRecord = {
4
7
  [Chain.Cosmos]: defaultGas,
@@ -10,4 +13,104 @@ export const cosmosGasRecord = {
10
13
  [Chain.Noble]: 30000n,
11
14
  [Chain.Akash]: 200000n,
12
15
  };
16
+ const minGasPriceConfigPath = '/cosmos/base/node/v1beta1/config';
17
+ const minGasPriceFetchTimeoutMs = 3_000;
18
+ const maxLiveFeeMultiplier = 10n;
19
+ const parseDecimal = (value) => {
20
+ if (!/^\d+(?:\.\d+)?$/.test(value))
21
+ return undefined;
22
+ const [whole, fraction = ''] = value.split('.');
23
+ const denominator = 10n ** BigInt(fraction.length);
24
+ const numerator = BigInt(`${whole}${fraction}`);
25
+ return { numerator, denominator };
26
+ };
27
+ const parseMinGasPriceEntry = (entry) => {
28
+ const match = entry.trim().match(/^(\d+(?:\.\d+)?)([a-zA-Z][a-zA-Z0-9/._:-]*)$/);
29
+ if (!match)
30
+ return undefined;
31
+ const [, amount, denom] = match;
32
+ const decimal = parseDecimal(amount);
33
+ if (!decimal)
34
+ return undefined;
35
+ return { ...decimal, denom };
36
+ };
37
+ export const getFeeAmountFromGasPrice = (gasLimit, gasPrice) => {
38
+ const total = gasLimit * gasPrice.numerator;
39
+ return (total + gasPrice.denominator - 1n) / gasPrice.denominator;
40
+ };
41
+ export const getMinGasPriceForDenom = (minimumGasPrice, targetDenom) => {
42
+ for (const entry of minimumGasPrice.split(',')) {
43
+ const parsed = parseMinGasPriceEntry(entry);
44
+ if (parsed?.denom.toLowerCase() === targetDenom.toLowerCase()) {
45
+ return {
46
+ numerator: parsed.numerator,
47
+ denominator: parsed.denominator,
48
+ };
49
+ }
50
+ }
51
+ return undefined;
52
+ };
53
+ const getTimeoutController = (signal) => {
54
+ const controller = new AbortController();
55
+ const abort = () => controller.abort();
56
+ if (signal?.aborted) {
57
+ abort();
58
+ }
59
+ else {
60
+ signal?.addEventListener('abort', abort, { once: true });
61
+ }
62
+ return {
63
+ controller,
64
+ cleanup: () => {
65
+ signal?.removeEventListener('abort', abort);
66
+ },
67
+ };
68
+ };
69
+ const fetchMinGasPrice = async (chain, { fetchImpl = fetch, signal } = {}) => {
70
+ const timeoutController = getTimeoutController(signal);
71
+ const timeout = setTimeout(() => timeoutController.controller.abort(), minGasPriceFetchTimeoutMs);
72
+ const timeoutPromise = new Promise((_resolve, reject) => {
73
+ const rejectTimeout = () => reject(new Error(`Cosmos min gas config request timed out after ${minGasPriceFetchTimeoutMs}ms`));
74
+ if (timeoutController.controller.signal.aborted) {
75
+ rejectTimeout();
76
+ return;
77
+ }
78
+ timeoutController.controller.signal.addEventListener('abort', rejectTimeout, { once: true });
79
+ });
80
+ try {
81
+ return await Promise.race([
82
+ (async () => {
83
+ const response = await fetchImpl(`${cosmosRpcUrl[chain]}${minGasPriceConfigPath}`, {
84
+ signal: timeoutController.controller.signal,
85
+ });
86
+ if (!response.ok) {
87
+ throw new Error(`Cosmos ${chain} min gas config request failed: ${response.status}`);
88
+ }
89
+ const data = (await response.json());
90
+ return data.minimum_gas_price ?? '';
91
+ })(),
92
+ timeoutPromise,
93
+ ]);
94
+ }
95
+ finally {
96
+ clearTimeout(timeout);
97
+ timeoutController.cleanup();
98
+ }
99
+ };
100
+ export const getCosmosFeeAmount = async (coin, opts = {}) => {
101
+ const floor = cosmosGasRecord[coin.chain];
102
+ try {
103
+ const minimumGasPrice = await fetchMinGasPrice(coin.chain, opts);
104
+ const gasPrice = getMinGasPriceForDenom(minimumGasPrice, cosmosFeeCoinDenom[coin.chain]);
105
+ if (!gasPrice)
106
+ return floor;
107
+ const computedFee = getFeeAmountFromGasPrice(getCosmosGasLimit(coin), gasPrice);
108
+ if (computedFee > floor * maxLiveFeeMultiplier)
109
+ return floor;
110
+ return computedFee > floor ? computedFee : floor;
111
+ }
112
+ catch {
113
+ return floor;
114
+ }
115
+ };
13
116
  //# sourceMappingURL=gas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cosmos/gas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAyB,MAAM,aAAa,CAAA;AAE1D,MAAM,UAAU,GAAG,KAAK,CAAA;AAExB,MAAM,CAAC,MAAM,eAAe,GAA0C;IACpE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU;IAC1B,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK;IACtB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU;IAC1B,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU;IACzB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,iBAAiB;IAC/B,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,UAAU;IAChC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM;IACrB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO;CACvB,CAAA"}
1
+ {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cosmos/gas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAyB,MAAM,aAAa,CAAA;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,UAAU,GAAG,KAAK,CAAA;AAExB,MAAM,CAAC,MAAM,eAAe,GAA0C;IACpE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU;IAC1B,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK;IACtB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU;IAC1B,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU;IACzB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,iBAAiB;IAC/B,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,UAAU;IAChC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM;IACrB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO;CACvB,CAAA;AAgBD,MAAM,qBAAqB,GAAG,kCAAkC,CAAA;AAChE,MAAM,yBAAyB,GAAG,KAAK,CAAA;AACvC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAEhC,MAAM,YAAY,GAAG,CAAC,KAAa,EAA6B,EAAE;IAChE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAEpD,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC/C,MAAM,WAAW,GAAG,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,KAAK,GAAG,QAAQ,EAAE,CAAC,CAAA;IAE/C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAA;AACnC,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAE,EAAE;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;IAChF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAE5B,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,CAAA;IAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACpC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAE9B,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAgB,EAAE,QAAuB,EAAU,EAAE;IAC5F,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAA;IAE3C,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAA;AACnE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,eAAuB,EAAE,WAAmB,EAA6B,EAAE;IAChH,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9D,OAAO;gBACL,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,MAAoB,EAAE,EAAE;IACpD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IAExC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IACtC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,KAAK,EAAE,CAAA;IACT,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO;QACL,UAAU;QACV,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC7C,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAA4B,EAAE,EAAE,SAAS,GAAG,KAAK,EAAE,MAAM,KAAgB,EAAE,EAAE,EAAE;IAC7G,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,yBAAyB,CAAC,CAAA;IACjG,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QAC7D,MAAM,aAAa,GAAG,GAAG,EAAE,CACzB,MAAM,CAAC,IAAI,KAAK,CAAC,iDAAiD,yBAAyB,IAAI,CAAC,CAAC,CAAA;QACnG,IAAI,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAChD,aAAa,EAAE,CAAA;YACf,OAAM;QACR,CAAC;QAED,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9F,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,CAAC,KAAK,IAAI,EAAE;gBACV,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,qBAAqB,EAAE,EAAE;oBACjF,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,MAAM;iBAC5C,CAAC,CAAA;gBAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,mCAAmC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;gBACtF,CAAC;gBAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAA;gBAEhE,OAAO,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAA;YACrC,CAAC,CAAC,EAAE;YACJ,cAAc;SACf,CAAC,CAAA;IACJ,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAA;QACrB,iBAAiB,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,IAAoC,EACpC,OAAkB,EAAE,EACH,EAAE;IACnB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEzC,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAChE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,eAAe,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QACxF,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAA;QAE3B,MAAM,WAAW,GAAG,wBAAwB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAA;QAC/E,IAAI,WAAW,GAAG,KAAK,GAAG,oBAAoB;YAAE,OAAO,KAAK,CAAA;QAE5D,OAAO,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAA;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA"}
@@ -8,7 +8,7 @@
8
8
  * Generic across every cosmos-sdk chain we support — same paths, just
9
9
  * different LCD root. No chain-specific branching.
10
10
  */
11
- import { IbcEnabledCosmosChain } from '@vultisig/core-chain/Chain';
11
+ import { Chain, IbcEnabledCosmosChain } from '@vultisig/core-chain/Chain';
12
12
  export type Coin = {
13
13
  denom: string;
14
14
  amount: string;
@@ -123,8 +123,14 @@ export type VestingAccount = PeriodicVestingAccount | ContinuousVestingAccount |
123
123
  * make sense on `IbcEnabledCosmosChain`. Tighten the type at the boundary
124
124
  * so callers can't accidentally hit `/cosmos/staking/...` against a
125
125
  * THORChain LCD that doesn't serve it.
126
+ *
127
+ * QBTC is a Cosmos-SDK chain too (post-quantum testnet, MLDSA-signed) and
128
+ * serves the same x/staking + x/distribution endpoints, but it lives in
129
+ * `OtherChain` rather than `CosmosChain` (WalletCore can't sign it), so it
130
+ * isn't a key of `cosmosRpcUrl`. Include it explicitly and resolve its LCD
131
+ * root via `qbtcRestUrl`.
126
132
  */
127
- type StakingChain = (typeof IbcEnabledCosmosChain)[keyof typeof IbcEnabledCosmosChain];
133
+ export type StakingChain = IbcEnabledCosmosChain | typeof Chain.QBTC;
128
134
  export declare const getDelegationsUrl: (chain: StakingChain, delegatorAddress: string) => string;
129
135
  export declare const getUnbondingDelegationsUrl: (chain: StakingChain, delegatorAddress: string) => string;
130
136
  export declare const getDelegatorRewardsUrl: (chain: StakingChain, delegatorAddress: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"lcdQueries.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/cosmos/staking/lcdQueries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAQlE,MAAM,MAAM,IAAI,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpD,MAAM,MAAM,UAAU,GAAG;IACvB,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,CAAA;IACxB,mEAAmE;IACnE,OAAO,EAAE,IAAI,CAAA;IACb,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAA;IACtB,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAA;IACtB,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAA;IACtB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,cAAc,EAAE,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,gBAAgB,EAAE,MAAM,CAAA;IACxB,8DAA8D;IAC9D,MAAM,EAAE,IAAI,EAAE,CAAA;CACf,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,KAAK,EAAE,IAAI,EAAE,CAAA;CACd,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GACvB,yBAAyB,GACzB,sBAAsB,GACtB,uBAAuB,GACvB,oBAAoB,CAAA;AAExB,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;IACvB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAA;IACd,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,oBAAoB,CAAA;IACjC,UAAU,EAAE,mBAAmB,CAAA;IAC/B,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,gDAAgD,CAAA;IACzD,oBAAoB,EAAE;QACpB,YAAY,EAAE;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,cAAc,EAAE,MAAM,CAAA;YACtB,QAAQ,EAAE,MAAM,CAAA;YAChB,OAAO,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,GAAG,EAAE,MAAM,CAAA;aAAE,GAAG,IAAI,CAAA;SAClD,CAAA;QACD,gBAAgB,EAAE,IAAI,EAAE,CAAA;QACxB,cAAc,EAAE,IAAI,EAAE,CAAA;QACtB,iBAAiB,EAAE,IAAI,EAAE,CAAA;QACzB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC,CAAA;CAC3D,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,kDAAkD,CAAA;IAC3D,oBAAoB,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,CAAA;IACpE,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,+CAA+C,CAAA;IACxD,oBAAoB,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,CAAA;CACrE,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,qBAAqB,CAAA;AAMtG;;;;;;GAMG;AACH,KAAK,YAAY,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAA;AAEtF,eAAO,MAAM,iBAAiB,GAAI,OAAO,YAAY,EAAE,kBAAkB,MAAM,KAAG,MACD,CAAA;AAEjF,eAAO,MAAM,0BAA0B,GAAI,OAAO,YAAY,EAAE,kBAAkB,MAAM,KAAG,MACW,CAAA;AAEtG,eAAO,MAAM,sBAAsB,GAAI,OAAO,YAAY,EAAE,kBAAkB,MAAM,KAAG,MACM,CAAA;AAE7F,eAAO,MAAM,iBAAiB,GAAI,OAAO,YAAY,EAAE,SAAS,MAAM,KAAG,MACP,CAAA;AAElE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO,YAAY,EACnB,OAAM;IAAE,MAAM,CAAC,EAAE,eAAe,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,KAC9E,MAOF,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,YAAY,EAAE,kBAAkB,MAAM,KAAG,MACA,CAAA;AAMhF,KAAK,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,CAAA;AAcnE,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,YAAY,EACnB,gBAAgB,EAAE,MAAM,EACxB,IAAI,GAAE,SAAc,GACnB,OAAO,CAAC,UAAU,EAAE,CAAC,CAavB;AAED,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,YAAY,EACnB,gBAAgB,EAAE,MAAM,EACxB,IAAI,GAAE,SAAc,GACnB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAuBhC;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,YAAY,EACnB,gBAAgB,EAAE,MAAM,EACxB,IAAI,GAAE,SAAc,GACnB,OAAO,CAAC,wBAAwB,CAAC,CAenC;AA8CD;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,YAAY,EACnB,IAAI,GAAE,SAAS,GAAG;IAAE,MAAM,CAAC,EAAE,eAAe,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACtE,OAAO,CAAC,SAAS,EAAE,CAAC,CAqBtB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,YAAY,EACnB,gBAAgB,EAAE,MAAM,EACxB,IAAI,GAAE,SAAc,GACnB,OAAO,CAAC,SAAS,CAAC,CAIpB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,SAAc,GACnB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAoBhC"}
1
+ {"version":3,"file":"lcdQueries.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/cosmos/staking/lcdQueries.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,26 @@
1
+ /**
2
+ * LCD query helpers for the cosmos-sdk staking + distribution modules.
3
+ *
4
+ * Read-only HTTP fetches against the per-chain `cosmosRpcUrl` (which actually
5
+ * points at the LCD/REST endpoint, despite the dict name). All endpoints are
6
+ * unauthenticated, public, and rate-limited at most by the upstream provider.
7
+ *
8
+ * Generic across every cosmos-sdk chain we support — same paths, just
9
+ * different LCD root. No chain-specific branching.
10
+ */
11
+ import { Chain } from '@vultisig/core-chain/Chain';
1
12
  import { cosmosRpcUrl } from '../cosmosRpcUrl.js';
2
- export const getDelegationsUrl = (chain, delegatorAddress) => `${cosmosRpcUrl[chain]}/cosmos/staking/v1beta1/delegations/${delegatorAddress}`;
3
- export const getUnbondingDelegationsUrl = (chain, delegatorAddress) => `${cosmosRpcUrl[chain]}/cosmos/staking/v1beta1/delegators/${delegatorAddress}/unbonding_delegations`;
4
- export const getDelegatorRewardsUrl = (chain, delegatorAddress) => `${cosmosRpcUrl[chain]}/cosmos/distribution/v1beta1/delegators/${delegatorAddress}/rewards`;
5
- export const getAuthAccountUrl = (chain, address) => `${cosmosRpcUrl[chain]}/cosmos/auth/v1beta1/accounts/${address}`;
13
+ import { qbtcRestUrl } from '../qbtc/tendermintRpcUrl.js';
14
+ /**
15
+ * LCD/REST root for a staking chain. QBTC isn't keyed in `cosmosRpcUrl`, so
16
+ * route it to its dedicated REST endpoint; every other staking chain is a
17
+ * `CosmosChain` and indexes `cosmosRpcUrl` directly.
18
+ */
19
+ const stakingLcdRoot = (chain) => (chain === Chain.QBTC ? qbtcRestUrl : cosmosRpcUrl[chain]);
20
+ export const getDelegationsUrl = (chain, delegatorAddress) => `${stakingLcdRoot(chain)}/cosmos/staking/v1beta1/delegations/${delegatorAddress}`;
21
+ export const getUnbondingDelegationsUrl = (chain, delegatorAddress) => `${stakingLcdRoot(chain)}/cosmos/staking/v1beta1/delegators/${delegatorAddress}/unbonding_delegations`;
22
+ export const getDelegatorRewardsUrl = (chain, delegatorAddress) => `${stakingLcdRoot(chain)}/cosmos/distribution/v1beta1/delegators/${delegatorAddress}/rewards`;
23
+ export const getAuthAccountUrl = (chain, address) => `${stakingLcdRoot(chain)}/cosmos/auth/v1beta1/accounts/${address}`;
6
24
  /**
7
25
  * Validator list endpoint. Optional `status` filter is the canonical way to
8
26
  * exclude jailed / unbonding validators from the picker — without it, large
@@ -18,9 +36,9 @@ export const getValidatorsUrl = (chain, opts = {}) => {
18
36
  if (opts.paginationKey)
19
37
  params.set('pagination.key', opts.paginationKey);
20
38
  const qs = params.toString();
21
- return `${cosmosRpcUrl[chain]}/cosmos/staking/v1beta1/validators${qs ? `?${qs}` : ''}`;
39
+ return `${stakingLcdRoot(chain)}/cosmos/staking/v1beta1/validators${qs ? `?${qs}` : ''}`;
22
40
  };
23
- export const getValidatorUrl = (chain, validatorAddress) => `${cosmosRpcUrl[chain]}/cosmos/staking/v1beta1/validators/${validatorAddress}`;
41
+ export const getValidatorUrl = (chain, validatorAddress) => `${stakingLcdRoot(chain)}/cosmos/staking/v1beta1/validators/${validatorAddress}`;
24
42
  async function lcdGet(url, opts = {}) {
25
43
  const f = opts.fetchImpl ?? fetch;
26
44
  const res = await f(url, { signal: opts.signal });
@@ -1 +1 @@
1
- {"version":3,"file":"lcdQueries.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/cosmos/staking/lcdQueries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lcdQueries.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/cosmos/staking/lcdQueries.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,9 @@ import { ChainAccount } from '@vultisig/core-chain/ChainAccount';
3
3
  type BlockchairAddressResponse = {
4
4
  data: {
5
5
  [address: string]: {
6
- address: {
6
+ address?: {
7
7
  balance: number;
8
+ unspent_output_count?: number;
8
9
  };
9
10
  utxo: {
10
11
  block_id: number;
@@ -15,11 +16,11 @@ type BlockchairAddressResponse = {
15
16
  recipient: string;
16
17
  script_hex: string;
17
18
  is_from_coinbase: boolean;
18
- is_spendable: boolean;
19
+ is_spendable?: boolean;
19
20
  }[];
20
21
  };
21
22
  };
22
23
  };
23
- export declare const getUtxoAddressInfo: ({ address, chain }: ChainAccount<UtxoChain>) => Promise<BlockchairAddressResponse>;
24
+ export declare const getUtxoAddressInfo: (account: ChainAccount<UtxoChain>) => Promise<BlockchairAddressResponse>;
24
25
  export {};
25
26
  //# sourceMappingURL=getUtxoAddressInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getUtxoAddressInfo.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/client/getUtxoAddressInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAKhE,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE;QACJ,CAAC,OAAO,EAAE,MAAM,GAAG;YACjB,OAAO,EAAE;gBACP,OAAO,EAAE,MAAM,CAAA;aAChB,CAAA;YACD,IAAI,EAAE;gBACJ,QAAQ,EAAE,MAAM,CAAA;gBAChB,gBAAgB,EAAE,MAAM,CAAA;gBACxB,KAAK,EAAE,MAAM,CAAA;gBACb,KAAK,EAAE,MAAM,CAAA;gBACb,SAAS,EAAE,MAAM,CAAA;gBACjB,SAAS,EAAE,MAAM,CAAA;gBACjB,UAAU,EAAE,MAAM,CAAA;gBAClB,gBAAgB,EAAE,OAAO,CAAA;gBACzB,YAAY,EAAE,OAAO,CAAA;aACtB,EAAE,CAAA;SACJ,CAAA;KACF,CAAA;CACF,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,oBAAoB,YAAY,CAAC,SAAS,CAAC,uCAI7E,CAAA"}
1
+ {"version":3,"file":"getUtxoAddressInfo.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/client/getUtxoAddressInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAKhE,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE;QACJ,CAAC,OAAO,EAAE,MAAM,GAAG;YACjB,OAAO,CAAC,EAAE;gBACR,OAAO,EAAE,MAAM,CAAA;gBACf,oBAAoB,CAAC,EAAE,MAAM,CAAA;aAC9B,CAAA;YACD,IAAI,EAAE;gBACJ,QAAQ,EAAE,MAAM,CAAA;gBAChB,gBAAgB,EAAE,MAAM,CAAA;gBACxB,KAAK,EAAE,MAAM,CAAA;gBACb,KAAK,EAAE,MAAM,CAAA;gBACb,SAAS,EAAE,MAAM,CAAA;gBACjB,SAAS,EAAE,MAAM,CAAA;gBACjB,UAAU,EAAE,MAAM,CAAA;gBAClB,gBAAgB,EAAE,OAAO,CAAA;gBACzB,YAAY,CAAC,EAAE,OAAO,CAAA;aACvB,EAAE,CAAA;SACJ,CAAA;KACF,CAAA;CACF,CAAA;AAYD,eAAO,MAAM,kBAAkB,GAAU,SAAS,YAAY,CAAC,SAAS,CAAC,uCAsCxE,CAAA"}
@@ -1,7 +1,34 @@
1
1
  import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
2
2
  import { getBlockchairBaseUrl } from './getBlockchairBaseUrl.js';
3
- export const getUtxoAddressInfo = ({ address, chain }) => {
4
- const url = `${getBlockchairBaseUrl(chain)}/dashboards/address/${address}`;
5
- return queryUrl(url);
3
+ const blockchairUtxoPageSize = 1_000;
4
+ const getAddressInfoUrl = ({ address, chain, offset, }) => `${getBlockchairBaseUrl(chain)}/dashboards/address/${address}?limit=${blockchairUtxoPageSize}&offset=${offset}`;
5
+ export const getUtxoAddressInfo = async (account) => {
6
+ const utxo = [];
7
+ let firstPage;
8
+ let expectedUtxoCount;
9
+ for (let offset = 0;; offset += blockchairUtxoPageSize) {
10
+ const page = await queryUrl(getAddressInfoUrl({ ...account, offset }));
11
+ firstPage ??= page;
12
+ const entry = page.data[account.address];
13
+ const pageUtxos = entry?.utxo ?? [];
14
+ utxo.push(...pageUtxos);
15
+ expectedUtxoCount ??= entry?.address?.unspent_output_count;
16
+ const hasAllReportedUtxos = expectedUtxoCount !== undefined && utxo.length >= expectedUtxoCount;
17
+ const hasNoMorePages = expectedUtxoCount === undefined && pageUtxos.length < blockchairUtxoPageSize;
18
+ if (expectedUtxoCount !== undefined && pageUtxos.length === 0 && utxo.length < expectedUtxoCount) {
19
+ throw new Error(`Blockchair returned ${utxo.length} UTXOs for ${account.chain}:${account.address}, expected ${expectedUtxoCount}`);
20
+ }
21
+ if (hasAllReportedUtxos || pageUtxos.length === 0 || hasNoMorePages) {
22
+ break;
23
+ }
24
+ }
25
+ if (!firstPage) {
26
+ throw new Error(`Failed to fetch UTXO address info for ${account.chain}:${account.address}`);
27
+ }
28
+ const firstEntry = firstPage.data[account.address];
29
+ if (firstEntry) {
30
+ firstEntry.utxo = utxo;
31
+ }
32
+ return firstPage;
6
33
  };
7
34
  //# sourceMappingURL=getUtxoAddressInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getUtxoAddressInfo.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/client/getUtxoAddressInfo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAuB7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAA2B,EAAE,EAAE;IAChF,MAAM,GAAG,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAA;IAE1E,OAAO,QAAQ,CAA4B,GAAG,CAAC,CAAA;AACjD,CAAC,CAAA"}
1
+ {"version":3,"file":"getUtxoAddressInfo.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/client/getUtxoAddressInfo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAwB7D,MAAM,sBAAsB,GAAG,KAAK,CAAA;AAEpC,MAAM,iBAAiB,GAAG,CAAC,EACzB,OAAO,EACP,KAAK,EACL,MAAM,GAGP,EAAE,EAAE,CAAC,GAAG,oBAAoB,CAAC,KAAK,CAAC,uBAAuB,OAAO,UAAU,sBAAsB,WAAW,MAAM,EAAE,CAAA;AAErH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,OAAgC,EAAE,EAAE;IAC3E,MAAM,IAAI,GAAsD,EAAE,CAAA;IAClE,IAAI,SAAgD,CAAA;IACpD,IAAI,iBAAqC,CAAA;IAEzC,KAAK,IAAI,MAAM,GAAG,CAAC,GAAI,MAAM,IAAI,sBAAsB,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAA4B,iBAAiB,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QACjG,SAAS,KAAK,IAAI,CAAA;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACxC,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,CAAA;QACnC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;QAEvB,iBAAiB,KAAK,KAAK,EAAE,OAAO,EAAE,oBAAoB,CAAA;QAC1D,MAAM,mBAAmB,GAAG,iBAAiB,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAA;QAC/F,MAAM,cAAc,GAAG,iBAAiB,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,sBAAsB,CAAA;QAEnG,IAAI,iBAAiB,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YACjG,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,CAAC,MAAM,cAAc,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,cAAc,iBAAiB,EAAE,CAClH,CAAA;QACH,CAAC;QAED,IAAI,mBAAmB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;YACpE,MAAK;QACP,CAAC;IACH,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAC9F,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,IAAI,GAAG,IAAI,CAAA;IACxB,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getUtxos.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/getUtxos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAIpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,eAAO,MAAM,QAAQ,GAAU,SAAS,YAAY,CAAC,SAAS,CAAC,KAAG,OAAO,CAAC,cAAc,EAAE,CAgBzF,CAAA"}
1
+ {"version":3,"file":"getUtxos.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/getUtxos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAIpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,eAAO,MAAM,QAAQ,GAAU,SAAS,YAAY,CAAC,SAAS,CAAC,KAAG,OAAO,CAAC,cAAc,EAAE,CAkBzF,CAAA"}
@@ -9,7 +9,7 @@ export const getUtxos = async (account) => {
9
9
  const { data } = await getUtxoAddressInfo(account);
10
10
  const { utxo } = data[account.address];
11
11
  return utxo
12
- .filter(({ value }) => value > minUtxo[account.chain])
12
+ .filter(({ block_id, is_spendable, value }) => value > minUtxo[account.chain] && is_spendable !== false && block_id > 0)
13
13
  .map(({ transaction_hash, value, index }) => ({
14
14
  hash: transaction_hash,
15
15
  amount: BigInt(value),
@@ -1 +1 @@
1
- {"version":3,"file":"getUtxos.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/getUtxos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAKpC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAgC,EAA6B,EAAE;IAC5F,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAElD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtC,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrD,GAAG,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrB,KAAK;KACN,CAAC,CAAC,CAAA;AACP,CAAC,CAAA"}
1
+ {"version":3,"file":"getUtxos.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/utxo/tx/getUtxos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAKpC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAgC,EAA6B,EAAE;IAC5F,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAElD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtC,OAAO,IAAI;SACR,MAAM,CACL,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,YAAY,KAAK,KAAK,IAAI,QAAQ,GAAG,CAAC,CAChH;SACA,GAAG,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrB,KAAK;KACN,CAAC,CAAC,CAAA;AACP,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ export declare const zcashBranchIdToWalletCoreHex: (bigEndianHex: string) => string;
2
+ export declare const zcashBranchIdToNumber: (bigEndianHex: string) => number;
3
+ export declare const getZcashBranchIdHex: () => Promise<string>;
4
+ export declare const getZcashBranchId: () => Promise<number>;
5
+ export declare const resetZcashBranchIdCacheForTests: () => void;
6
+ //# sourceMappingURL=zcashBranchId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zcashBranchId.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/utxo/zcashBranchId.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,4BAA4B,GAAI,cAAc,MAAM,KAAG,MAGnE,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,cAAc,MAAM,KAAG,MACP,CAAA;AAyCtD,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAAC,MAAM,CAqB1D,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,MAAM,CAIvD,CAAA;AAED,eAAO,MAAM,+BAA+B,YAG3C,CAAA"}
@@ -0,0 +1,83 @@
1
+ import { rootApiUrl } from '@vultisig/core-config';
2
+ import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
3
+ const cacheTtlMs = 60 * 60 * 1000;
4
+ const rpcTimeoutMs = 10_000;
5
+ const zcashRpcUrl = `${rootApiUrl}/zcash`;
6
+ let cache;
7
+ let inFlight;
8
+ const assertFourByteHex = (hex) => {
9
+ if (!/^[0-9a-fA-F]{8}$/.test(hex)) {
10
+ throw new Error(`Invalid Zcash consensus branch id: expected 4-byte hex, received "${hex}"`);
11
+ }
12
+ return hex.toLowerCase();
13
+ };
14
+ export const zcashBranchIdToWalletCoreHex = (bigEndianHex) => {
15
+ const hex = assertFourByteHex(bigEndianHex);
16
+ return hex.match(/../g).reverse().join('');
17
+ };
18
+ export const zcashBranchIdToNumber = (bigEndianHex) => Number.parseInt(assertFourByteHex(bigEndianHex), 16);
19
+ const fetchZcashBranchIdHex = async () => {
20
+ const controller = new AbortController();
21
+ const timeout = setTimeout(() => {
22
+ controller.abort();
23
+ }, rpcTimeoutMs);
24
+ let response;
25
+ try {
26
+ response = await queryUrl(zcashRpcUrl, {
27
+ body: {
28
+ jsonrpc: '1.0',
29
+ id: 'vultisig-sdk',
30
+ method: 'getblockchaininfo',
31
+ params: [],
32
+ },
33
+ signal: controller.signal,
34
+ });
35
+ }
36
+ catch (error) {
37
+ if (controller.signal.aborted) {
38
+ throw new Error('Zcash RPC timed out while fetching consensus branch id');
39
+ }
40
+ throw error;
41
+ }
42
+ finally {
43
+ clearTimeout(timeout);
44
+ }
45
+ if (response.error) {
46
+ throw new Error(`Zcash RPC error: ${response.error.message ?? 'unknown error'}`);
47
+ }
48
+ const nextBlock = response.result?.consensus?.nextblock;
49
+ if (!nextBlock) {
50
+ throw new Error('Zcash RPC response is missing consensus.nextblock');
51
+ }
52
+ return zcashBranchIdToWalletCoreHex(nextBlock);
53
+ };
54
+ export const getZcashBranchIdHex = async () => {
55
+ const now = Date.now();
56
+ if (cache && cache.expiresAt > now) {
57
+ return cache.value;
58
+ }
59
+ if (!inFlight) {
60
+ inFlight = fetchZcashBranchIdHex()
61
+ .then(value => {
62
+ cache = {
63
+ value,
64
+ expiresAt: Date.now() + cacheTtlMs,
65
+ };
66
+ return value;
67
+ })
68
+ .finally(() => {
69
+ inFlight = undefined;
70
+ });
71
+ }
72
+ return inFlight;
73
+ };
74
+ export const getZcashBranchId = async () => {
75
+ const walletCoreHex = await getZcashBranchIdHex();
76
+ const bigEndianHex = walletCoreHex.match(/../g).reverse().join('');
77
+ return zcashBranchIdToNumber(bigEndianHex);
78
+ };
79
+ export const resetZcashBranchIdCacheForTests = () => {
80
+ cache = undefined;
81
+ inFlight = undefined;
82
+ };
83
+ //# sourceMappingURL=zcashBranchId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zcashBranchId.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/utxo/zcashBranchId.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vultisig/core-chain",
3
- "version": "2.14.1",
3
+ "version": "2.15.1",
4
4
  "description": "Blockchain chain logic shared across Vultisig clients",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -785,6 +785,11 @@
785
785
  "import": "./dist/chains/utxo/tx/UtxoScriptType.js",
786
786
  "default": "./dist/chains/utxo/tx/UtxoScriptType.js"
787
787
  },
788
+ "./chains/utxo/zcashBranchId": {
789
+ "types": "./dist/chains/utxo/zcashBranchId.d.ts",
790
+ "import": "./dist/chains/utxo/zcashBranchId.js",
791
+ "default": "./dist/chains/utxo/zcashBranchId.js"
792
+ },
788
793
  "./coin/AccountCoin": {
789
794
  "types": "./dist/coin/AccountCoin.d.ts",
790
795
  "import": "./dist/coin/AccountCoin.js",