@vultisig/core-mpc 1.2.17 → 1.2.19

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,19 @@
1
1
  # @vultisig/core-mpc
2
2
 
3
+ ## 1.2.19
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`72eb200`](https://github.com/vultisig/vultisig-sdk/commit/72eb200ec647a707d1ebdc1f8b6f0f5243780477)]:
8
+ - @vultisig/core-chain@2.2.4
9
+
10
+ ## 1.2.18
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies [[`4c9454e`](https://github.com/vultisig/vultisig-sdk/commit/4c9454eca99f43a2ce572732c3d6fcc74c99e89e)]:
15
+ - @vultisig/core-chain@2.2.3
16
+
3
17
  ## 1.2.17
4
18
 
5
19
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"getSwapTrackingUrl.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAKlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAE1E,KAAK,uBAAuB,GAAG;IAC7B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,KAAK,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,sCAAsC,uBAAuB,KAAG,MAuBlG,CAAA"}
1
+ {"version":3,"file":"getSwapTrackingUrl.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAMlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAE1E,KAAK,uBAAuB,GAAG;IAC7B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,KAAK,CAAA;CACnB,CAAA;AAgCD,eAAO,MAAM,kBAAkB,GAAI,sCAAsC,uBAAuB,KAAG,MAgDlG,CAAA"}
@@ -2,6 +2,35 @@ import { Chain } from '@vultisig/core-chain/Chain';
2
2
  import { getBlockExplorerUrl } from '@vultisig/core-chain/utils/getBlockExplorerUrl';
3
3
  import { stripHexPrefix } from '@vultisig/lib-utils/hex/stripHexPrefix';
4
4
  import { matchRecordUnion } from '@vultisig/lib-utils/matchRecordUnion';
5
+ // Chain identifiers accepted by https://track.swapkit.dev/?tx=<hash>&chainId=<id>
6
+ // These differ from the SwapKit API chain-prefix map (ETH, ARB, ...) used in getSwapKitQuote.ts.
7
+ // Source: https://docs.swapkit.dev/swapkit-api/providers-request-supported-chains-by-a-swap-provider#chain-ids-and-corresponding-names
8
+ //
9
+ // UTXO byte-order contract: track.swapkit.dev accepts UTXO tx hashes in their
10
+ // natural txid representation (the byte-reversed, human-readable form that block
11
+ // explorers display). Our signing flow produces hashes in that same display form,
12
+ // so no additional byte reversal is needed here.
13
+ // The `satisfies Record<SwapKitSourceChain, string>` below enforces compile-time
14
+ // exhaustiveness -- adding a chain to SwapKitEnabledChains without updating this
15
+ // map is a type error.
16
+ const swapKitTrackerChainId = {
17
+ [Chain.Ethereum]: '1',
18
+ [Chain.Arbitrum]: '42161',
19
+ [Chain.Avalanche]: '43114',
20
+ [Chain.Base]: '8453',
21
+ [Chain.BSC]: '56',
22
+ [Chain.Optimism]: '10',
23
+ [Chain.Polygon]: '137',
24
+ [Chain.Solana]: 'solana',
25
+ [Chain.Bitcoin]: 'bitcoin',
26
+ [Chain.BitcoinCash]: 'bitcoincash',
27
+ [Chain.Dogecoin]: 'dogecoin',
28
+ [Chain.Litecoin]: 'litecoin',
29
+ [Chain.Ripple]: 'ripple',
30
+ [Chain.Ton]: 'ton',
31
+ [Chain.Tron]: '728126428',
32
+ [Chain.Zcash]: 'zcash',
33
+ };
5
34
  export const getSwapTrackingUrl = ({ swapPayload, txHash, sourceChain }) => {
6
35
  return matchRecordUnion(swapPayload, {
7
36
  native: ({ chain }) => {
@@ -18,6 +47,28 @@ export const getSwapTrackingUrl = ({ swapPayload, txHash, sourceChain }) => {
18
47
  if (provider === 'li.fi') {
19
48
  return `https://scan.li.fi/tx/${txHash}`;
20
49
  }
50
+ if (provider === 'swapkit') {
51
+ const chainId = swapKitTrackerChainId[sourceChain];
52
+ if (chainId) {
53
+ // Guard: TON hashes are hex-encoded (see packages/core/chain/tx/hash/resolvers/ton.ts).
54
+ // A `0x`-prefixed TON hash indicates a misconfigured upstream -- stripHexPrefix would
55
+ // silently corrupt it by stripping the first two hex chars, producing a wrong hash.
56
+ if (sourceChain === Chain.Ton && txHash.startsWith('0x')) {
57
+ throw new Error(`TON tx hash must not have a 0x prefix (got: ${txHash.slice(0, 10)}...)`);
58
+ }
59
+ // Bare hash (no `0x` prefix) -- `stripHexPrefix` is a no-op when the
60
+ // hash is already prefix-free (UTXO chains, Ripple, TON, etc.) and strips
61
+ // `0x` from EVM hashes to match track.swapkit.dev's expected format.
62
+ return `https://track.swapkit.dev/?tx=${encodeURIComponent(stripHexPrefix(txHash))}&chainId=${chainId}`;
63
+ }
64
+ // SwapKitSourceChain extended without updating swapKitTrackerChainId
65
+ // -> silent fallback to block explorer would degrade tracking
66
+ // without surfacing the gap. Warn so the drift shows up in logs +
67
+ // greppable CI output.
68
+ // TODO: wire to telemetry event 'swapkit_tracker_chain_missing' so
69
+ // mapping drift is caught in production monitoring, not just CI logs.
70
+ console.warn(`[getSwapTrackingUrl] SwapKit tracker chainId missing for ${sourceChain} — falling back to source-chain block explorer. Add a swapKitTrackerChainId entry.`);
71
+ }
21
72
  return getBlockExplorerUrl({
22
73
  chain: sourceChain,
23
74
  entity: 'tx',
@@ -1 +1 @@
1
- {"version":3,"file":"getSwapTrackingUrl.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAUvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAA2B,EAAU,EAAE;IAC1G,OAAO,gBAAgB,CAA6B,WAAW,EAAE;QAC/D,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACpB,IAAI,KAAK,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC9B,OAAO,0BAA0B,cAAc,CAAC,MAAM,CAAC,EAAE,CAAA;YAC3D,CAAC;YACD,OAAO,mBAAmB,CAAC;gBACzB,KAAK;gBACL,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM;aACd,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,OAAO,yBAAyB,MAAM,EAAE,CAAA;YAC1C,CAAC;YACD,OAAO,mBAAmB,CAAC;gBACzB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM;aACd,CAAC,CAAA;QACJ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"getSwapTrackingUrl.js","sourceRoot":"","sources":["../../../../../../packages/core/mpc/swap/utils/getSwapTrackingUrl.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vultisig/core-mpc",
3
- "version": "1.2.17",
3
+ "version": "1.2.19",
4
4
  "description": "MPC, keysign, and vault types shared across Vultisig clients",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -974,7 +974,7 @@
974
974
  "@noble/hashes": "^1.8.0",
975
975
  "@solana/web3.js": "^1.98.4",
976
976
  "@trustwallet/wallet-core": "^4.6.9",
977
- "@vultisig/core-chain": "2.2.2",
977
+ "@vultisig/core-chain": "2.2.4",
978
978
  "@vultisig/core-config": "0.9.1",
979
979
  "@vultisig/lib-dkls": "0.9.0",
980
980
  "@vultisig/lib-mldsa": "0.9.0",