@vultisig/core-chain 1.4.1 → 1.4.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.
Files changed (37) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/chains/cosmos/cosmosMsgTypes.d.ts +5 -1
  3. package/dist/chains/cosmos/cosmosMsgTypes.d.ts.map +1 -1
  4. package/dist/chains/cosmos/cosmosMsgTypes.js +5 -0
  5. package/dist/chains/cosmos/cosmosMsgTypes.js.map +1 -1
  6. package/dist/chains/cosmos/qbtc/claim/computeClaimHashes.d.ts +4 -2
  7. package/dist/chains/cosmos/qbtc/claim/computeClaimHashes.d.ts.map +1 -1
  8. package/dist/chains/cosmos/qbtc/claim/computeClaimHashes.js +17 -6
  9. package/dist/chains/cosmos/qbtc/claim/computeClaimHashes.js.map +1 -1
  10. package/dist/chains/cosmos/staking/lcdQueries.d.ts +117 -0
  11. package/dist/chains/cosmos/staking/lcdQueries.d.ts.map +1 -0
  12. package/dist/chains/cosmos/staking/lcdQueries.js +80 -0
  13. package/dist/chains/cosmos/staking/lcdQueries.js.map +1 -0
  14. package/dist/chains/cosmos/thor/lp/pools.d.ts +1 -1
  15. package/dist/chains/cosmos/thor/lp/pools.d.ts.map +1 -1
  16. package/dist/chains/cosmos/thor/lp/pools.js +1 -1
  17. package/dist/chains/cosmos/thor/lp/pools.js.map +1 -1
  18. package/dist/chains/ton/messageBody/decode.d.ts +42 -0
  19. package/dist/chains/ton/messageBody/decode.d.ts.map +1 -0
  20. package/dist/chains/ton/messageBody/decode.js +337 -0
  21. package/dist/chains/ton/messageBody/decode.js.map +1 -0
  22. package/dist/chains/ton/messageBody/knownRouters.d.ts +19 -0
  23. package/dist/chains/ton/messageBody/knownRouters.d.ts.map +1 -0
  24. package/dist/chains/ton/messageBody/knownRouters.js +179 -0
  25. package/dist/chains/ton/messageBody/knownRouters.js.map +1 -0
  26. package/dist/chains/ton/messageBody/opcodes.d.ts +23 -0
  27. package/dist/chains/ton/messageBody/opcodes.d.ts.map +1 -0
  28. package/dist/chains/ton/messageBody/opcodes.js +22 -0
  29. package/dist/chains/ton/messageBody/opcodes.js.map +1 -0
  30. package/dist/chains/ton/messageBody/types.d.ts +50 -0
  31. package/dist/chains/ton/messageBody/types.d.ts.map +1 -0
  32. package/dist/chains/ton/messageBody/types.js +2 -0
  33. package/dist/chains/ton/messageBody/types.js.map +1 -0
  34. package/dist/coin/balance/resolvers/polkadot.d.ts.map +1 -1
  35. package/dist/coin/balance/resolvers/polkadot.js +72 -6
  36. package/dist/coin/balance/resolvers/polkadot.js.map +1 -1
  37. package/package.json +31 -4
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Decoded intent extracted from a TON internal-message body BOC.
3
+ *
4
+ * Returned by `decodeTonMessageBody` when the body's leading opcode matches a
5
+ * known operation. Addresses are user-friendly (bounceable, mainnet) strings
6
+ * so they render directly in the UI without further conversion.
7
+ */
8
+ export type TonMessageBodyIntent = {
9
+ kind: 'jettonTransfer';
10
+ queryId: bigint;
11
+ /** Jetton units the sender is moving (in jetton's own decimals). */
12
+ amount: bigint;
13
+ /** Real recipient of the jettons (NOT the jetton wallet contract). */
14
+ destination: string;
15
+ /** Where excess TON gas is refunded to. May be null. */
16
+ responseDestination: string | null;
17
+ /** TON forwarded with the inner notification to the recipient's jetton wallet. */
18
+ forwardTonAmount: bigint;
19
+ } | {
20
+ kind: 'nftTransfer';
21
+ queryId: bigint;
22
+ /** Address that receives ownership of the NFT. */
23
+ newOwner: string;
24
+ /** Where excess TON gas is refunded to. May be null. */
25
+ responseDestination: string | null;
26
+ /** TON forwarded with the ownership-change notification. */
27
+ forwardAmount: bigint;
28
+ } | {
29
+ kind: 'excesses';
30
+ queryId: bigint;
31
+ } | TonSwapIntent;
32
+ export type TonSwapIntent = {
33
+ kind: 'swap';
34
+ provider: 'stonfi' | 'dedust';
35
+ /** Asset being offered by the signed message. */
36
+ offerAsset: 'ton' | 'jetton';
37
+ /** Offered amount in the source asset's base units. */
38
+ offerAmount: bigint;
39
+ /** Minimum output encoded in the swap payload, when the protocol exposes it. */
40
+ minOut: bigint | null;
41
+ /** Final recipient, when encoded by the swap protocol. */
42
+ receiverAddress: string | null;
43
+ /** Refund target, when encoded by the swap protocol. */
44
+ refundAddress: string | null;
45
+ /** Excess gas target, when encoded by the swap protocol. */
46
+ excessesAddress: string | null;
47
+ /** Protocol-side pool/token wallet that identifies the swap route. */
48
+ targetAddress: string | null;
49
+ };
50
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/ton/messageBody/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,kFAAkF;IAClF,gBAAgB,EAAE,MAAM,CAAA;CACzB,GACD;IACE,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,4DAA4D;IAC5D,aAAa,EAAE,MAAM,CAAA;CACtB,GACD;IACE,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,aAAa,CAAA;AAEjB,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC7B,iDAAiD;IACjD,UAAU,EAAE,KAAK,GAAG,QAAQ,CAAA;IAC5B,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAA;IACnB,gFAAgF;IAChF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,wDAAwD;IACxD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,4DAA4D;IAC5D,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,sEAAsE;IACtE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/ton/messageBody/types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"polkadot.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/polkadot.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAUjD,eAAO,MAAM,sBAAsB,EAAE,mBAYpC,CAAA"}
1
+ {"version":3,"file":"polkadot.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/polkadot.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AA0CjD,eAAO,MAAM,sBAAsB,EAAE,mBAuCpC,CAAA"}
@@ -1,11 +1,77 @@
1
- import { toChainAmount } from '@vultisig/core-chain/amount/toChainAmount';
2
- import { Chain } from '@vultisig/core-chain/Chain';
3
- import { chainFeeCoin } from '@vultisig/core-chain/coin/chainFeeCoin';
1
+ // SS58 decode + blake2b are intentionally implemented with bs58 + @noble/hashes
2
+ // rather than @polkadot/util-crypto: the latter pulls a BN.js dep that double-bundles
3
+ // in browser/extension builds and crashes at module init with
4
+ // "Cannot assign to read only property 'toString'" — same root cause as the
5
+ // Bittensor revert that originally broke this resolver.
6
+ import { blake2b } from '@noble/hashes/blake2b';
7
+ import { bytesToHex } from '@noble/hashes/utils';
8
+ import { polkadotRpcUrl } from '@vultisig/core-chain/chains/polkadot/client';
4
9
  import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
10
+ import bs58 from 'bs58';
11
+ // twox128("System") ++ twox128("Account") — well-known Substrate storage prefix
12
+ const systemAccountPrefix = '0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9';
13
+ const polkadotSs58Prefix = 0;
14
+ const ss58AddressByteLength = 35;
15
+ const ss58ChecksumPreamble = new TextEncoder().encode('SS58PRE');
16
+ const decodePolkadotPublicKey = (address) => {
17
+ const decoded = bs58.decode(address);
18
+ if (decoded.length !== ss58AddressByteLength) {
19
+ throw new Error(`Invalid SS58 address length: expected ${ss58AddressByteLength} bytes, got ${decoded.length}`);
20
+ }
21
+ // Reject other Substrate networks (Kusama=2, generic=42, etc.) — they decode
22
+ // to the same length and would silently resolve to a 0 DOT balance, which
23
+ // looks indistinguishable from fund loss.
24
+ if (decoded[0] !== polkadotSs58Prefix) {
25
+ throw new Error(`Not a Polkadot address: SS58 network prefix ${decoded[0]}, expected ${polkadotSs58Prefix}`);
26
+ }
27
+ // SS58 checksum: blake2b-512("SS58PRE" || prefix || pubkey)[0..2] == trailing 2 bytes.
28
+ // Catches single-character typos that would otherwise yield a valid-shaped pubkey
29
+ // and a 0 balance.
30
+ const payload = decoded.subarray(0, 33);
31
+ const checksum = decoded.subarray(33);
32
+ const checksumInput = new Uint8Array(ss58ChecksumPreamble.length + payload.length);
33
+ checksumInput.set(ss58ChecksumPreamble);
34
+ checksumInput.set(payload, ss58ChecksumPreamble.length);
35
+ const expected = blake2b(checksumInput, { dkLen: 64 });
36
+ if (expected[0] !== checksum[0] || expected[1] !== checksum[1]) {
37
+ throw new Error('Invalid SS58 checksum');
38
+ }
39
+ return payload.subarray(1);
40
+ };
5
41
  export const getPolkadotCoinBalance = async (input) => {
6
- const { data } = await queryUrl('https://assethub-polkadot.api.subscan.io/api/v2/scan/search', {
7
- body: { key: input.address },
42
+ const pubkey = decodePolkadotPublicKey(input.address);
43
+ const hash = bytesToHex(blake2b(pubkey, { dkLen: 16 }));
44
+ const accountId = bytesToHex(pubkey);
45
+ const storageKey = systemAccountPrefix + hash + accountId;
46
+ const response = await queryUrl(polkadotRpcUrl, {
47
+ body: {
48
+ jsonrpc: '2.0',
49
+ method: 'state_getStorage',
50
+ params: [storageKey],
51
+ id: 1,
52
+ },
8
53
  });
9
- return toChainAmount(data.account.balance, chainFeeCoin[Chain.Polkadot].decimals);
54
+ if (response.error) {
55
+ throw new Error(`Polkadot balance RPC error: ${response.error.message ?? `code ${response.error.code}`}`);
56
+ }
57
+ const result = response.result;
58
+ if (!result)
59
+ return BigInt(0);
60
+ // SCALE AccountInfo layout (frame_system + pallet_balances v47):
61
+ // nonce(u32) + consumers(u32) + providers(u32) + sufficients(u32)
62
+ // + AccountData { free(u128), reserved(u128), frozen(u128), flags(u128) }
63
+ // free is always at byte offset 16, length 16, encoded LE — stable across the
64
+ // misc_frozen/fee_frozen → frozen/flags migration, since `free` is always the
65
+ // first AccountData field.
66
+ const hex = result.startsWith('0x') ? result.slice(2) : result;
67
+ if (hex.length < 64 || !/^[0-9a-fA-F]+$/.test(hex)) {
68
+ throw new Error(`Unexpected storage response format: ${result}`);
69
+ }
70
+ const freeHex = hex.slice(32, 64);
71
+ const leBytes = freeHex.match(/.{2}/g);
72
+ if (!leBytes) {
73
+ throw new Error(`Failed to parse free balance hex: ${freeHex}`);
74
+ }
75
+ return BigInt('0x' + leBytes.reverse().join(''));
10
76
  };
11
77
  //# sourceMappingURL=polkadot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"polkadot.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/polkadot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAA;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAY7D,MAAM,CAAC,MAAM,sBAAsB,GAAwB,KAAK,EAAC,KAAK,EAAC,EAAE;IACvE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAC7B,6DAA6D,EAC7D;QACE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE;KAC7B,CACF,CAAA;IAED,OAAO,aAAa,CAClB,IAAI,CAAC,OAAO,CAAC,OAAO,EACpB,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CACtC,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"polkadot.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/coin/balance/resolvers/polkadot.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": "1.4.1",
3
+ "version": "1.4.2",
4
4
  "description": "Blockchain chain logic shared across Vultisig clients",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -284,6 +284,11 @@
284
284
  "import": "./dist/chains/cosmos/qbtc/tendermintRpcUrl.js",
285
285
  "default": "./dist/chains/cosmos/qbtc/tendermintRpcUrl.js"
286
286
  },
287
+ "./chains/cosmos/staking/lcdQueries": {
288
+ "types": "./dist/chains/cosmos/staking/lcdQueries.d.ts",
289
+ "import": "./dist/chains/cosmos/staking/lcdQueries.js",
290
+ "default": "./dist/chains/cosmos/staking/lcdQueries.js"
291
+ },
287
292
  "./chains/cosmos/sumFeeAmountForCosmosChainFeeDenom": {
288
293
  "types": "./dist/chains/cosmos/sumFeeAmountForCosmosChainFeeDenom.d.ts",
289
294
  "import": "./dist/chains/cosmos/sumFeeAmountForCosmosChainFeeDenom.js",
@@ -634,6 +639,26 @@
634
639
  "import": "./dist/chains/ton/config.js",
635
640
  "default": "./dist/chains/ton/config.js"
636
641
  },
642
+ "./chains/ton/messageBody/decode": {
643
+ "types": "./dist/chains/ton/messageBody/decode.d.ts",
644
+ "import": "./dist/chains/ton/messageBody/decode.js",
645
+ "default": "./dist/chains/ton/messageBody/decode.js"
646
+ },
647
+ "./chains/ton/messageBody/knownRouters": {
648
+ "types": "./dist/chains/ton/messageBody/knownRouters.d.ts",
649
+ "import": "./dist/chains/ton/messageBody/knownRouters.js",
650
+ "default": "./dist/chains/ton/messageBody/knownRouters.js"
651
+ },
652
+ "./chains/ton/messageBody/opcodes": {
653
+ "types": "./dist/chains/ton/messageBody/opcodes.d.ts",
654
+ "import": "./dist/chains/ton/messageBody/opcodes.js",
655
+ "default": "./dist/chains/ton/messageBody/opcodes.js"
656
+ },
657
+ "./chains/ton/messageBody/types": {
658
+ "types": "./dist/chains/ton/messageBody/types.d.ts",
659
+ "import": "./dist/chains/ton/messageBody/types.js",
660
+ "default": "./dist/chains/ton/messageBody/types.js"
661
+ },
637
662
  "./chains/tron/config": {
638
663
  "types": "./dist/chains/tron/config.d.ts",
639
664
  "import": "./dist/chains/tron/config.js",
@@ -1643,18 +1668,20 @@
1643
1668
  "@polkadot/util": "^14.0.1",
1644
1669
  "@polkadot/util-crypto": "^14.0.1",
1645
1670
  "@solana/web3.js": "^1.98.4",
1671
+ "@ton/core": "^0.63.1",
1672
+ "@ton/crypto": "^3.3.0",
1646
1673
  "@trustwallet/wallet-core": "^4.6.0",
1647
1674
  "@vultisig/core-config": "0.9.1",
1648
- "@vultisig/lib-utils": "0.9.3",
1675
+ "@vultisig/lib-utils": "0.10.0",
1649
1676
  "bip32": "^5.0.1",
1650
1677
  "bitcoinjs-lib": "^7.0.1",
1651
1678
  "bs58": "^6.0.0",
1652
1679
  "cbor-x": "^1.6.4",
1653
1680
  "date-fns": "^4.1.0",
1654
1681
  "ethers": "^6.16.0",
1655
- "i18next": "^25.8.18",
1682
+ "i18next": "^26.0.8",
1656
1683
  "tiny-secp256k1": "^2.2.4",
1657
- "viem": "^2.47.4",
1684
+ "viem": "^2.48.4",
1658
1685
  "xrpl": "^4.6.0"
1659
1686
  }
1660
1687
  }