@vultisig/core-chain 5.2.0 → 5.3.0

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 (74) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/chains/solana/spl/verification.d.ts +38 -0
  3. package/dist/chains/solana/spl/verification.d.ts.map +1 -0
  4. package/dist/chains/solana/spl/verification.js +45 -0
  5. package/dist/chains/solana/spl/verification.js.map +1 -0
  6. package/dist/chains/solana/spl/verifiedRegistry.d.ts +34 -0
  7. package/dist/chains/solana/spl/verifiedRegistry.d.ts.map +1 -0
  8. package/dist/chains/solana/spl/verifiedRegistry.js +65 -0
  9. package/dist/chains/solana/spl/verifiedRegistry.js.map +1 -0
  10. package/dist/chains/ton/jetton/symbol.d.ts +3 -5
  11. package/dist/chains/ton/jetton/symbol.d.ts.map +1 -1
  12. package/dist/chains/ton/jetton/symbol.js +5 -58
  13. package/dist/chains/ton/jetton/symbol.js.map +1 -1
  14. package/dist/chains/ton/jetton/verification.d.ts +1 -1
  15. package/dist/chains/ton/jetton/verification.d.ts.map +1 -1
  16. package/dist/chains/ton/jetton/verification.js +3 -3
  17. package/dist/chains/ton/jetton/verification.js.map +1 -1
  18. package/dist/chains/ton/jetton/verifiedRegistry.d.ts +1 -1
  19. package/dist/chains/ton/jetton/verifiedRegistry.d.ts.map +1 -1
  20. package/dist/chains/ton/jetton/verifiedRegistry.js +3 -3
  21. package/dist/chains/ton/jetton/verifiedRegistry.js.map +1 -1
  22. package/dist/coin/coingecko/coingeckoToken.d.ts +11 -0
  23. package/dist/coin/coingecko/coingeckoToken.d.ts.map +1 -1
  24. package/dist/coin/coingecko/getCoingeckoId.d.ts +10 -0
  25. package/dist/coin/coingecko/getCoingeckoId.d.ts.map +1 -1
  26. package/dist/coin/coingecko/getCoingeckoId.js +30 -1
  27. package/dist/coin/coingecko/getCoingeckoId.js.map +1 -1
  28. package/dist/coin/find/resolvers/solana/index.d.ts +22 -1
  29. package/dist/coin/find/resolvers/solana/index.d.ts.map +1 -1
  30. package/dist/coin/find/resolvers/solana/index.js +79 -11
  31. package/dist/coin/find/resolvers/solana/index.js.map +1 -1
  32. package/dist/coin/jupiter/api.d.ts +18 -0
  33. package/dist/coin/jupiter/api.d.ts.map +1 -0
  34. package/dist/coin/jupiter/api.js +52 -0
  35. package/dist/coin/jupiter/api.js.map +1 -0
  36. package/dist/coin/jupiter/token.d.ts +4 -0
  37. package/dist/coin/jupiter/token.d.ts.map +1 -1
  38. package/dist/coin/jupiter/token.js.map +1 -1
  39. package/dist/coin/token/metadata/resolvers/solana.d.ts +3 -1
  40. package/dist/coin/token/metadata/resolvers/solana.d.ts.map +1 -1
  41. package/dist/coin/token/metadata/resolvers/solana.js +10 -6
  42. package/dist/coin/token/metadata/resolvers/solana.js.map +1 -1
  43. package/dist/coin/tokenSymbol.d.ts +10 -0
  44. package/dist/coin/tokenSymbol.d.ts.map +1 -0
  45. package/dist/coin/tokenSymbol.js +62 -0
  46. package/dist/coin/tokenSymbol.js.map +1 -0
  47. package/dist/security/blockaid/tx/simulation/api/core.d.ts +17 -0
  48. package/dist/security/blockaid/tx/simulation/api/core.d.ts.map +1 -1
  49. package/dist/security/blockaid/tx/simulation/api/core.js +58 -41
  50. package/dist/security/blockaid/tx/simulation/api/core.js.map +1 -1
  51. package/dist/swap/general/GeneralSwapQuote.d.ts +10 -0
  52. package/dist/swap/general/GeneralSwapQuote.d.ts.map +1 -1
  53. package/dist/swap/general/swapkit/api/getSwapKitQuote.d.ts.map +1 -1
  54. package/dist/swap/general/swapkit/api/getSwapKitQuote.js +40 -14
  55. package/dist/swap/general/swapkit/api/getSwapKitQuote.js.map +1 -1
  56. package/dist/swap/native/NativeSwapQuote.d.ts +6 -1
  57. package/dist/swap/native/NativeSwapQuote.d.ts.map +1 -1
  58. package/dist/tx/fee/evm/clampEvmPriorityFee.d.ts +10 -4
  59. package/dist/tx/fee/evm/clampEvmPriorityFee.d.ts.map +1 -1
  60. package/dist/tx/fee/evm/clampEvmPriorityFee.js +35 -14
  61. package/dist/tx/fee/evm/clampEvmPriorityFee.js.map +1 -1
  62. package/dist/tx/fee/evm/evmGasLimit.d.ts +29 -0
  63. package/dist/tx/fee/evm/evmGasLimit.d.ts.map +1 -1
  64. package/dist/tx/fee/evm/evmGasLimit.js +47 -17
  65. package/dist/tx/fee/evm/evmGasLimit.js.map +1 -1
  66. package/dist/tx/fee/evm/gasPrice.d.ts +4 -0
  67. package/dist/tx/fee/evm/gasPrice.d.ts.map +1 -0
  68. package/dist/tx/fee/evm/gasPrice.js +4 -0
  69. package/dist/tx/fee/evm/gasPrice.js.map +1 -0
  70. package/dist/tx/fee/evm/maxPriorityFeePerGas.d.ts +8 -0
  71. package/dist/tx/fee/evm/maxPriorityFeePerGas.d.ts.map +1 -1
  72. package/dist/tx/fee/evm/maxPriorityFeePerGas.js +30 -1
  73. package/dist/tx/fee/evm/maxPriorityFeePerGas.js.map +1 -1
  74. package/package.json +26 -1
@@ -1,18 +1,86 @@
1
1
  import { getSplAccounts } from '@vultisig/core-chain/chains/solana/spl/getSplAccounts';
2
+ import { resolveSolanaTokenVerification } from '@vultisig/core-chain/chains/solana/spl/verification';
3
+ import { getSolanaVerifiedTokenRegistry } from '@vultisig/core-chain/chains/solana/spl/verifiedRegistry';
4
+ import { getSolanaCoingeckoIds } from '@vultisig/core-chain/coin/coingecko/getCoingeckoId';
5
+ import { getJupiterTokens } from '@vultisig/core-chain/coin/jupiter/api';
6
+ import { knownTokensIndex } from '@vultisig/core-chain/coin/knownTokens';
2
7
  import { without } from '@vultisig/lib-utils/array/without';
3
8
  import { attempt } from '@vultisig/lib-utils/attempt';
4
- import { Chain } from '../../../../Chain.js';
5
- import { getSolanaTokenMetadata } from '../../../token/metadata/resolvers/solana.js';
6
- export const findSolanaCoins = async ({ address }) => {
9
+ const toHolding = (account) => {
10
+ const { mint, tokenAmount } = account.account.data.parsed.info;
11
+ return { mint: String(mint), amount: BigInt(tokenAmount.amount), decimals: Number(tokenAmount.decimals) };
12
+ };
13
+ /**
14
+ * Discovers the SPL and Token-2022 holdings at `address` that pass verification.
15
+ *
16
+ * Only `verified` mints are returned. Solana wallets are carpet-bombed with
17
+ * airdropped counterfeits and zero-decimal spam, and auto-adding those to a
18
+ * vault would put a "USDT" balance on the home screen that the user never
19
+ * received. A verified token is returned whether or not a price id is known
20
+ * for it: gating on price hid legitimate unpriced tokens while letting priced
21
+ * scams through. Unverified and scam mints can still be added by hand, where
22
+ * the UI labels them.
23
+ *
24
+ * Jupiter answers for a hundred mints per call and CoinGecko for thirty, so a
25
+ * whole wallet costs a handful of calls; decimals come from the token account
26
+ * itself, and curated metadata wins for tokens we ship ourselves. When Jupiter
27
+ * cannot be reached, listed mints are still discovered from registry metadata
28
+ * and only a mint verified since the registry's last refresh waits for the
29
+ * next round. A failed price-id lookup, by contrast, fails the round: the
30
+ * caller persists the result, and a token saved without its price id would
31
+ * stay unpriced for good.
32
+ */
33
+ export const findSolanaCoins = async ({ address, chain }) => {
7
34
  const accounts = await getSplAccounts(address);
8
- const tokenAddresses = accounts.map(account => account.account.data.parsed.info.mint);
9
- const result = await Promise.all(tokenAddresses.map(async (id) => {
10
- const key = { id, chain: Chain.Solana };
11
- const { data } = await attempt(getSolanaTokenMetadata(key));
12
- if (data && data.priceProviderId) {
13
- return { ...key, ...data, address };
35
+ const holdings = new Map();
36
+ for (const account of accounts) {
37
+ const holding = toHolding(account);
38
+ if (holding.amount > 0n && !holdings.has(holding.mint))
39
+ holdings.set(holding.mint, holding);
40
+ }
41
+ if (holdings.size === 0)
42
+ return [];
43
+ const mints = [...holdings.keys()];
44
+ const [jupiter, registry] = await Promise.all([attempt(getJupiterTokens(mints)), getSolanaVerifiedTokenRegistry()]);
45
+ if ('error' in jupiter) {
46
+ console.warn('[solana] Jupiter metadata unavailable; discovering registry-listed mints only', jupiter.error);
47
+ }
48
+ const tokens = 'data' in jupiter && jupiter.data ? jupiter.data : {};
49
+ const verified = [...holdings.values()].filter(({ mint }) => {
50
+ const token = tokens[mint];
51
+ const verification = resolveSolanaTokenVerification({
52
+ address: mint,
53
+ symbol: token?.symbol,
54
+ name: token?.name,
55
+ isVerified: token?.isVerified,
56
+ registry,
57
+ });
58
+ return verification === 'verified';
59
+ });
60
+ const getKnown = (mint) => knownTokensIndex[chain][mint.toLowerCase()];
61
+ const priceProviderIds = await getSolanaCoingeckoIds(verified.filter(({ mint }) => !getKnown(mint)).map(({ mint }) => mint));
62
+ const coins = verified.map(({ mint: id, decimals }) => {
63
+ const known = getKnown(id);
64
+ if (known) {
65
+ return { ...known, chain, id, address };
14
66
  }
15
- }));
16
- return without(result, undefined);
67
+ const token = tokens[id];
68
+ const listed = registry.byAddress[id];
69
+ const ticker = token?.symbol ?? listed?.symbol;
70
+ if (!ticker)
71
+ return;
72
+ const logo = token?.icon ?? listed?.logo;
73
+ const priceProviderId = priceProviderIds[id];
74
+ return {
75
+ chain,
76
+ id,
77
+ address,
78
+ ticker,
79
+ decimals,
80
+ ...(logo === undefined ? {} : { logo }),
81
+ ...(priceProviderId === undefined ? {} : { priceProviderId }),
82
+ };
83
+ });
84
+ return without(coins, undefined);
17
85
  };
18
86
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/find/resolvers/solana/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAA;AAEtF,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAErD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA;AAEjF,MAAM,CAAC,MAAM,eAAe,GAAsB,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACtE,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAA;IAE9C,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAErF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,cAAc,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;QAC5B,MAAM,GAAG,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAW,CAAA;QAChD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAA;QAE3D,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACjC,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAA;QACrC,CAAC;IACH,CAAC,CAAC,CACH,CAAA;IAED,OAAO,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AACnC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/find/resolvers/solana/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { SolanaJupiterToken } from '@vultisig/core-chain/coin/jupiter/token';
2
+ /** Jupiter's Token API v2, reached through the Vultisig proxy. */
3
+ export declare const baseJupiterTokensUrl: string;
4
+ /**
5
+ * Metadata for the given mints, keyed by mint. One search call covers a
6
+ * hundred mints, so a whole wallet costs a call or two rather than one per
7
+ * token. A mint Jupiter does not index is simply absent from the result, and
8
+ * the response is filtered to the requested mints so a lookalike match can
9
+ * never stand in for a mint that was asked about.
10
+ */
11
+ export declare const getJupiterTokens: (mints: string[]) => Promise<Record<string, SolanaJupiterToken>>;
12
+ /**
13
+ * Every mint Jupiter marks verified: the community-reviewed list the major
14
+ * Solana wallets show as their "verified" tier. Several megabytes, so callers
15
+ * cache it.
16
+ */
17
+ export declare const getJupiterVerifiedTokens: () => Promise<SolanaJupiterToken[]>;
18
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/jupiter/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AAM5E,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,QAAgC,CAAA;AA6BjE;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAU,OAAO,MAAM,EAAE,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAkBlG,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAa,OAAO,CAAC,kBAAkB,EAAE,CAI3E,CAAA"}
@@ -0,0 +1,52 @@
1
+ import { rootApiUrl } from '@vultisig/core-config';
2
+ import { toBatches } from '@vultisig/lib-utils/array/toBatches';
3
+ import { withoutDuplicates } from '@vultisig/lib-utils/array/withoutDuplicates';
4
+ import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
5
+ /** Jupiter's Token API v2, reached through the Vultisig proxy. */
6
+ export const baseJupiterTokensUrl = `${rootApiUrl}/jup/tokens/v2`;
7
+ /** Jupiter's search endpoint accepts up to a hundred comma-separated mints per call. */
8
+ const mintsPerSearch = 100;
9
+ // The verified list runs to several megabytes; a slow link should not turn it
10
+ // into a timeout, which would leave legitimate tokens unrecognised until retry.
11
+ const verifiedListTimeoutMs = 60_000;
12
+ const isJupiterToken = (value) => {
13
+ if (typeof value !== 'object' || value === null)
14
+ return false;
15
+ const { id, symbol, name, decimals } = value;
16
+ return (typeof id === 'string' && typeof symbol === 'string' && typeof name === 'string' && typeof decimals === 'number');
17
+ };
18
+ // An entry missing a required field is dropped rather than passed on as a
19
+ // partial token that would surface as `decimals: undefined` downstream.
20
+ const parseJupiterTokens = (response, source) => {
21
+ if (!Array.isArray(response)) {
22
+ throw new Error(`Jupiter ${source} did not return a token list`);
23
+ }
24
+ return response.filter(isJupiterToken);
25
+ };
26
+ /**
27
+ * Metadata for the given mints, keyed by mint. One search call covers a
28
+ * hundred mints, so a whole wallet costs a call or two rather than one per
29
+ * token. A mint Jupiter does not index is simply absent from the result, and
30
+ * the response is filtered to the requested mints so a lookalike match can
31
+ * never stand in for a mint that was asked about.
32
+ */
33
+ export const getJupiterTokens = async (mints) => {
34
+ const requested = withoutDuplicates(mints);
35
+ const wanted = new Set(requested);
36
+ const responses = await Promise.all(toBatches(requested, mintsPerSearch).map(batch => queryUrl(`${baseJupiterTokensUrl}/search?query=${batch.join(',')}`)));
37
+ const result = {};
38
+ for (const response of responses) {
39
+ for (const token of parseJupiterTokens(response, 'search')) {
40
+ if (wanted.has(token.id))
41
+ result[token.id] = token;
42
+ }
43
+ }
44
+ return result;
45
+ };
46
+ /**
47
+ * Every mint Jupiter marks verified: the community-reviewed list the major
48
+ * Solana wallets show as their "verified" tier. Several megabytes, so callers
49
+ * cache it.
50
+ */
51
+ export const getJupiterVerifiedTokens = async () => parseJupiterTokens(await queryUrl(`${baseJupiterTokensUrl}/tag?query=verified`, { timeoutMs: verifiedListTimeoutMs }), 'verified list');
52
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/jupiter/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,kEAAkE;AAClE,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,UAAU,gBAAgB,CAAA;AAEjE,wFAAwF;AACxF,MAAM,cAAc,GAAG,GAAG,CAAA;AAE1B,8EAA8E;AAC9E,gFAAgF;AAChF,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAEpC,MAAM,cAAc,GAAG,CAAC,KAAc,EAA+B,EAAE;IACrE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAE7D,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAgC,CAAA;IAEvE,OAAO,CACL,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,CACjH,CAAA;AACH,CAAC,CAAA;AAED,0EAA0E;AAC1E,wEAAwE;AACxE,MAAM,kBAAkB,GAAG,CAAC,QAAiB,EAAE,MAAc,EAAwB,EAAE;IACrF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,8BAA8B,CAAC,CAAA;IAClE,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;AACxC,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAe,EAA+C,EAAE;IACrG,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAEjC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAC/C,QAAQ,CAAU,GAAG,oBAAoB,iBAAiB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAC7E,CACF,CAAA;IAED,MAAM,MAAM,GAAuC,EAAE,CAAA;IACrD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC3D,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;QACpD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,IAAmC,EAAE,CAChF,kBAAkB,CAChB,MAAM,QAAQ,CAAU,GAAG,oBAAoB,qBAAqB,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,EAC3G,eAAe,CAChB,CAAA"}
@@ -1,11 +1,15 @@
1
1
  import { Chain } from '@vultisig/core-chain/Chain';
2
2
  import { Coin } from '@vultisig/core-chain/coin/Coin';
3
+ /** One entry of Jupiter's Token API v2, as returned by its search and tag endpoints. */
3
4
  export type SolanaJupiterToken = {
4
5
  id: string;
5
6
  name: string;
6
7
  symbol: string;
7
8
  decimals: number;
8
9
  icon?: string;
10
+ /** Jupiter's own verification flag; `null` for a mint it indexes but does not vouch for. */
11
+ isVerified?: boolean | null;
12
+ tags?: string[];
9
13
  };
10
14
  type FromSolanaJupiterTokensInput = {
11
15
  tokens: SolanaJupiterToken[];
@@ -1 +1 @@
1
- {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/jupiter/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAA;AAErD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,4BAA4B,GAAG;IAClC,MAAM,EAAE,kBAAkB,EAAE,CAAA;IAC5B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,mBAAmB,4BAA4B,KAAG,IAAI,EAU7F,CAAA"}
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/jupiter/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAA;AAErD,wFAAwF;AACxF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAED,KAAK,4BAA4B,GAAG;IAClC,MAAM,EAAE,kBAAkB,EAAE,CAAA;IAC5B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,mBAAmB,4BAA4B,KAAG,IAAI,EAU7F,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/jupiter/token.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAgC,EAAU,EAAE;IACjG,OAAO,MAAM;SACV,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,6CAA6C;SAC3E,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACb,KAAK;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC,CAAA;AACP,CAAC,CAAA"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/coin/jupiter/token.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAgC,EAAU,EAAE;IACjG,OAAO,MAAM;SACV,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,6CAA6C;SAC3E,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACb,KAAK;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC,CAAA;AACP,CAAC,CAAA"}
@@ -1,4 +1,6 @@
1
+ import { baseJupiterTokensUrl } from '@vultisig/core-chain/coin/jupiter/api';
1
2
  import { TokenMetadataResolver } from '../resolver.js';
2
- export declare const baseJupiterTokensUrl = "https://api.vultisig.com/jup/tokens/v2";
3
+ /** Kept on this subpath for consumers that read the Jupiter base URL from the resolver module. */
4
+ export { baseJupiterTokensUrl };
3
5
  export declare const getSolanaTokenMetadata: TokenMetadataResolver;
4
6
  //# sourceMappingURL=solana.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/token/metadata/resolvers/solana.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,eAAO,MAAM,oBAAoB,2CAA2C,CAAA;AAE5E,eAAO,MAAM,sBAAsB,EAAE,qBAYpC,CAAA"}
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/token/metadata/resolvers/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAoB,MAAM,uCAAuC,CAAA;AAG9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,kGAAkG;AAClG,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAE/B,eAAO,MAAM,sBAAsB,EAAE,qBAcpC,CAAA"}
@@ -1,13 +1,17 @@
1
- import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
1
+ import { baseJupiterTokensUrl, getJupiterTokens } from '@vultisig/core-chain/coin/jupiter/api';
2
2
  import { getSolanaCoingeckoId } from '../../../coingecko/getCoingeckoId.js';
3
- export const baseJupiterTokensUrl = 'https://api.vultisig.com/jup/tokens/v2';
3
+ /** Kept on this subpath for consumers that read the Jupiter base URL from the resolver module. */
4
+ export { baseJupiterTokensUrl };
4
5
  export const getSolanaTokenMetadata = async ({ id }) => {
5
- const [{ decimals, icon, symbol }] = await queryUrl(`${baseJupiterTokensUrl}/search?query=${id}`);
6
+ const token = (await getJupiterTokens([id]))[id];
7
+ if (!token) {
8
+ throw new Error(`Jupiter has no metadata for Solana mint ${id}`);
9
+ }
6
10
  const coingeckoId = await getSolanaCoingeckoId({ id });
7
11
  return {
8
- decimals,
9
- logo: icon,
10
- ticker: symbol,
12
+ decimals: token.decimals,
13
+ logo: token.icon,
14
+ ticker: token.symbol,
11
15
  priceProviderId: coingeckoId,
12
16
  };
13
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/token/metadata/resolvers/solana.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAGxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,wCAAwC,CAAA;AAE5E,MAAM,CAAC,MAAM,sBAAsB,GAA0B,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC5E,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,QAAQ,CACjD,GAAG,oBAAoB,iBAAiB,EAAE,EAAE,CAC7C,CAAA;IACD,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAEtD,OAAO;QACL,QAAQ;QACR,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,MAAM;QACd,eAAe,EAAE,WAAW;KAC7B,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/token/metadata/resolvers/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAA;AAE9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAGxE,kGAAkG;AAClG,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAE/B,MAAM,CAAC,MAAM,sBAAsB,GAA0B,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC5E,MAAM,KAAK,GAAG,CAAC,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAEtD,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,eAAe,EAAE,WAAW;KAC7B,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Collapses a token symbol or name to the Latin skeleton a user perceives, so
3
+ * `USD₮`, `UЅDT` (Cyrillic Ѕ), `$USĐ₮` and `usdt` all compare equal to `USDT`.
4
+ * Compatibility decomposition folds full-width and mathematical letter forms,
5
+ * diacritics are dropped, known homoglyphs are mapped, and everything that is
6
+ * not `A–Z`/`0–9` is removed. Returns an empty string when nothing survives.
7
+ * Chain-agnostic: every chain's counterfeit heuristic compares these skeletons.
8
+ */
9
+ export declare const normalizeTokenSymbol: (value: string) => string;
10
+ //# sourceMappingURL=tokenSymbol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenSymbol.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/coin/tokenSymbol.ts"],"names":[],"mappings":"AAmDA;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,MAIvB,CAAA"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Homoglyphs scammers substitute into a token symbol so it *reads* like a
3
+ * verified one while differing byte-for-byte: Cyrillic/Greek capitals that look
4
+ * like Latin ones, the tugrik sign standing in for `T`, and stroked `D`s. Keys
5
+ * are already upper-cased because the map is applied after `toUpperCase()`.
6
+ */
7
+ const confusables = {
8
+ // Cyrillic
9
+ А: 'A',
10
+ В: 'B',
11
+ Е: 'E',
12
+ Ё: 'E',
13
+ Ѕ: 'S',
14
+ І: 'I',
15
+ Ј: 'J',
16
+ К: 'K',
17
+ М: 'M',
18
+ Н: 'H',
19
+ О: 'O',
20
+ Р: 'P',
21
+ С: 'C',
22
+ Т: 'T',
23
+ У: 'Y',
24
+ Х: 'X',
25
+ Ԛ: 'Q',
26
+ Ԝ: 'W',
27
+ // Greek
28
+ Α: 'A',
29
+ Β: 'B',
30
+ Ε: 'E',
31
+ Ζ: 'Z',
32
+ Η: 'H',
33
+ Ι: 'I',
34
+ Κ: 'K',
35
+ Μ: 'M',
36
+ Ν: 'N',
37
+ Ο: 'O',
38
+ Ρ: 'P',
39
+ Τ: 'T',
40
+ Υ: 'Y',
41
+ Χ: 'X',
42
+ // Currency and stroked letters
43
+ '₮': 'T',
44
+ Đ: 'D',
45
+ Ð: 'D',
46
+ Ɖ: 'D',
47
+ Ŧ: 'T',
48
+ };
49
+ const combiningMarks = /[̀-ͯ]/g;
50
+ /**
51
+ * Collapses a token symbol or name to the Latin skeleton a user perceives, so
52
+ * `USD₮`, `UЅDT` (Cyrillic Ѕ), `$USĐ₮` and `usdt` all compare equal to `USDT`.
53
+ * Compatibility decomposition folds full-width and mathematical letter forms,
54
+ * diacritics are dropped, known homoglyphs are mapped, and everything that is
55
+ * not `A–Z`/`0–9` is removed. Returns an empty string when nothing survives.
56
+ * Chain-agnostic: every chain's counterfeit heuristic compares these skeletons.
57
+ */
58
+ export const normalizeTokenSymbol = (value) => Array.from(value.normalize('NFKD').replace(combiningMarks, '').toUpperCase())
59
+ .map(char => confusables[char] ?? char)
60
+ .join('')
61
+ .replace(/[^A-Z0-9]/g, '');
62
+ //# sourceMappingURL=tokenSymbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenSymbol.js","sourceRoot":"","sources":["../../../../../packages/core/chain/coin/tokenSymbol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,GAA2B;IAC1C,WAAW;IACX,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,QAAQ;IACR,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,+BAA+B;IAC/B,GAAG,EAAE,GAAG;IACR,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;CACP,CAAA;AAED,MAAM,cAAc,GAAG,QAAQ,CAAA;AAE/B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAU,EAAE,CAC5D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;KAC1E,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;KACtC,IAAI,CAAC,EAAE,CAAC;KACR,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA"}
@@ -114,6 +114,23 @@ export type BlockaidEVMSimulation = {
114
114
  }>;
115
115
  };
116
116
  };
117
+ /**
118
+ * Parse a Blockaid Solana simulation into the user's net balance change,
119
+ * classified as a `swap` (two distinct mints move) or a `transfer` (one
120
+ * mint moves net-negative).
121
+ *
122
+ * Diffs are grouped by resolved mint and netted (`in - out`) per group,
123
+ * mirroring `parseBlockaidEvmSimulation`. This collapses a wrap-then-spend or
124
+ * an unwrap/close-account pair — native SOL and the WSOL mint landing in the
125
+ * same bucket — into the single net movement it actually is, instead of
126
+ * surfacing a same-asset "SOL -> WSOL swap" whose destination amount is only
127
+ * the token account's rent-exempt residual (sdk#1997).
128
+ *
129
+ * Throws when the netted result isn't representable as `swap`/`transfer`
130
+ * (net-zero, a pure net-receive with no matching type, or 3+ distinct
131
+ * nonzero mints) rather than guess — the caller falls back to showing no
132
+ * preview, which is safe; a wrong number is not.
133
+ */
117
134
  export declare const parseBlockaidSolanaSimulation: (simulation: BlockaidSolanaSimulation) => Promise<BlockaidSolanaSimulationInfo>;
118
135
  /**
119
136
  * Parse a Blockaid EVM simulation into the user's net balance changes.
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/chain/security/blockaid/tx/simulation/api/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/chain/security/blockaid/tx/simulation/api/core.ts"],"names":[],"mappings":"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"}
@@ -121,6 +121,36 @@ const blockaidSuiAssetFrom = (asset) => {
121
121
  logo: asset.logo_url ?? asset.logo,
122
122
  };
123
123
  };
124
+ const WSOL_MINT = 'So11111111111111111111111111111111111111112';
125
+ // Native SOL and the WSOL mint are the SAME underlying asset for netting
126
+ // purposes: a wrap-then-spend (or an unwrap/withdraw that closes the WSOL
127
+ // account) produces an `out` leg on one and an `in` leg on the other for a
128
+ // single economic movement, not a swap between two assets.
129
+ //
130
+ // Checks BOTH `asset.type` and the diff-level `asset_type` (matching the
131
+ // native-SOL-fee filter a few lines below) — Blockaid responses aren't
132
+ // always internally consistent, and a diff carrying `asset_type: 'SOL'`
133
+ // with `asset.type: 'TOKEN'` would otherwise fall through to
134
+ // `shouldBePresent(asset.address)` and throw instead of resolving to the
135
+ // WSOL mint bucket.
136
+ const solanaMintForAsset = (diff) => diff.asset.type === 'SOL' || diff.asset_type === 'SOL' ? WSOL_MINT : shouldBePresent(diff.asset.address);
137
+ /**
138
+ * Parse a Blockaid Solana simulation into the user's net balance change,
139
+ * classified as a `swap` (two distinct mints move) or a `transfer` (one
140
+ * mint moves net-negative).
141
+ *
142
+ * Diffs are grouped by resolved mint and netted (`in - out`) per group,
143
+ * mirroring `parseBlockaidEvmSimulation`. This collapses a wrap-then-spend or
144
+ * an unwrap/close-account pair — native SOL and the WSOL mint landing in the
145
+ * same bucket — into the single net movement it actually is, instead of
146
+ * surfacing a same-asset "SOL -> WSOL swap" whose destination amount is only
147
+ * the token account's rent-exempt residual (sdk#1997).
148
+ *
149
+ * Throws when the netted result isn't representable as `swap`/`transfer`
150
+ * (net-zero, a pure net-receive with no matching type, or 3+ distinct
151
+ * nonzero mints) rather than guess — the caller falls back to showing no
152
+ * preview, which is safe; a wrong number is not.
153
+ */
124
154
  export const parseBlockaidSolanaSimulation = async (simulation) => {
125
155
  const assetDiffs = simulation.account_summary.account_assets_diff;
126
156
  // When we have 3 items and one is native SOL, filter it out and use the other two tokens.
@@ -132,56 +162,43 @@ export const parseBlockaidSolanaSimulation = async (simulation) => {
132
162
  relevantDiffs = assetDiffs.filter((_, index) => index !== nativeSolIndex);
133
163
  }
134
164
  }
135
- if (relevantDiffs.length === 1) {
136
- const [potentialOutAsset] = relevantDiffs;
137
- if (!potentialOutAsset.out) {
165
+ const groups = new Map();
166
+ for (const diff of relevantDiffs) {
167
+ const mint = solanaMintForAsset(diff);
168
+ const outRaw = diff.out ? BigInt(diff.out.raw_value) : 0n;
169
+ const inRaw = diff.in ? BigInt(diff.in.raw_value) : 0n;
170
+ const existing = groups.get(mint);
171
+ if (existing) {
172
+ existing.netRaw += inRaw - outRaw;
173
+ }
174
+ else {
175
+ groups.set(mint, { mint, decimals: diff.asset.decimals, netRaw: inRaw - outRaw });
176
+ }
177
+ }
178
+ const nonZero = [...groups.values()].filter(group => group.netRaw !== 0n);
179
+ if (nonZero.length === 1) {
180
+ const [only] = nonZero;
181
+ if (only.netRaw >= 0n) {
138
182
  throw new Error('Invalid simulation data: no out value for transfer');
139
183
  }
140
184
  return {
141
185
  transfer: {
142
- fromMint: potentialOutAsset.asset.type === 'SOL'
143
- ? 'So11111111111111111111111111111111111111112'
144
- : shouldBePresent(potentialOutAsset.asset.address),
145
- fromAmount: BigInt(shouldBePresent(potentialOutAsset.out).raw_value),
186
+ fromMint: only.mint,
187
+ fromAmount: -only.netRaw,
146
188
  },
147
189
  };
148
190
  }
149
- if (relevantDiffs.length > 1) {
150
- const [potentialOutAsset, potentialInAsset] = relevantDiffs;
151
- const { inAsset, inValue } = potentialInAsset.in
152
- ? {
153
- inAsset: potentialInAsset.asset,
154
- inValue: potentialInAsset.in,
155
- }
156
- : {
157
- inAsset: potentialOutAsset.asset,
158
- inValue: potentialOutAsset.in,
159
- };
160
- const { outAsset, outValue } = potentialOutAsset.out
161
- ? {
162
- outAsset: potentialOutAsset.asset,
163
- outValue: potentialOutAsset.out,
164
- }
165
- : {
166
- outAsset: potentialInAsset.asset,
167
- outValue: potentialInAsset.out,
168
- };
169
- if (outAsset && inAsset && outValue && inValue) {
191
+ if (nonZero.length === 2) {
192
+ const [first, second] = nonZero;
193
+ const [outGroup, inGroup] = first.netRaw < 0n ? [first, second] : [second, first];
194
+ if (outGroup.netRaw < 0n && inGroup.netRaw > 0n) {
170
195
  return {
171
196
  swap: {
172
- fromMint: outAsset.type === 'SOL' ? 'So11111111111111111111111111111111111111112' : shouldBePresent(outAsset.address),
173
- toMint: inAsset.type === 'SOL' ? 'So11111111111111111111111111111111111111112' : shouldBePresent(inAsset.address),
174
- fromAmount: BigInt(shouldBePresent(outValue).raw_value),
175
- toAmount: BigInt(shouldBePresent(inValue).raw_value),
176
- toAssetDecimal: inAsset.decimals,
177
- },
178
- };
179
- }
180
- else if (outAsset && outValue) {
181
- return {
182
- transfer: {
183
- fromMint: outAsset.type === 'SOL' ? 'So11111111111111111111111111111111111111112' : shouldBePresent(outAsset.address),
184
- fromAmount: BigInt(shouldBePresent(outValue).raw_value),
197
+ fromMint: outGroup.mint,
198
+ toMint: inGroup.mint,
199
+ fromAmount: -outGroup.netRaw,
200
+ toAmount: inGroup.netRaw,
201
+ toAssetDecimal: inGroup.decimals,
185
202
  },
186
203
  };
187
204
  }
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../../../../../packages/core/chain/security/blockaid/tx/simulation/api/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../../../../../packages/core/chain/security/blockaid/tx/simulation/api/core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAW5E,MAAM,oBAAoB,GAAG,eAAe,CAAA;AA+C5C,MAAM,WAAW,GAAG,CAAC,KAA0B,EAAW,EAAE,CAC1D,KAAK,CAAC,IAAI,KAAK,QAAQ;IACvB,KAAK,CAAC,IAAI,KAAK,KAAK;IACpB,KAAK,CAAC,UAAU,KAAK,QAAQ;IAC7B,KAAK,CAAC,SAAS,KAAK,oBAAoB;IACxC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAA;AAE7E,MAAM,iBAAiB,GAAG,CAAC,KAA0B,EAAiB,EAAE;IACtE,IAAI,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC,EAAE,CAAA;IAC7B,IAAI,KAAK,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC,SAAS,CAAA;IAC3C,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC,OAAO,CAAA;IACvC,IAAI,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,oBAAoB,CAAA;IACnD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,uEAAuE;AACvE,iEAAiE;AACjE,MAAM,QAAQ,GAAG,CAAC,GAAoB,EAAiB,EAAE;IACvD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAA;QACpE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACrC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;AACpB,CAAC,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC7C,UAAiC,EACU,EAAE;IAC7C,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,EAAE,oBAAoB,IAAI,UAAU,CAAC,eAAe,EAAE,mBAAmB,CAAA;IACtH,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAEvD,wEAAwE;IACxE,0EAA0E;IAC1E,6CAA6C;IAC7C,IAAI,aAAa,GAAG,UAAU,CAAA;IAC9B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QACvE,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAA;QAC5B,wEAAwE;QACxE,wDAAwD;QACxD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QACrC,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QACtB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC/C,IAAI,UAAU,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QACpC,OAAO;YACL,QAAQ,EAAE;gBACR,IAAI;gBACJ,UAAU;aACX;SACF,CAAA;IACH,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,2CAA2C;IAC3C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAE3C,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAA;IAC5B,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC7D,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IAE3C,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAChD,MAAM,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC7C,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAE9D,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;IAC9C,IAAI,UAAU,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAEzD,OAAO;QACL,IAAI,EAAE;YACJ,IAAI;YACJ,EAAE;YACF,UAAU;YACV,QAAQ;SACT;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,KAA0B,EAA2B,EAAE;IACnF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACzC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1B,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ;QAC9D,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI;KACnC,CAAA;AACH,CAAC,CAAA;AAwED,MAAM,SAAS,GAAG,6CAA6C,CAAA;AAI/D,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,2DAA2D;AAC3D,EAAE;AACF,yEAAyE;AACzE,uEAAuE;AACvE,wEAAwE;AACxE,6DAA6D;AAC7D,yEAAyE;AACzE,oBAAoB;AACpB,MAAM,kBAAkB,GAAG,CAAC,IAAqB,EAAU,EAAE,CAC3D,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAE1G;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAChD,UAAoC,EACG,EAAE;IACzC,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,mBAAmB,CAAA;IAEjE,0FAA0F;IAC1F,6EAA6E;IAC7E,IAAI,aAAa,GAAG,UAAU,CAAA;IAC9B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAA;QAC3G,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1B,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,cAAc,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8D,CAAA;IACpF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,MAAM,IAAI,KAAK,GAAG,MAAM,CAAA;QACnC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,CAAC,CAAA;QACnF,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,CAAA;IAEzE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;QACtB,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;QACD,OAAO;YACL,QAAQ,EAAE;gBACR,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM;aACzB;SACF,CAAA;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAAA;QAC/B,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACjF,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAChD,OAAO;gBACL,IAAI,EAAE;oBACJ,QAAQ,EAAE,QAAQ,CAAC,IAAI;oBACvB,MAAM,EAAE,OAAO,CAAC,IAAI;oBACpB,UAAU,EAAE,CAAC,QAAQ,CAAC,MAAM;oBAC5B,QAAQ,EAAE,OAAO,CAAC,MAAM;oBACxB,cAAc,EAAE,OAAO,CAAC,QAAQ;iBACjC;aACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;AAC5C,CAAC,CAAA;AAKD,MAAM,gBAAgB,GAAG,QAAQ,CAAA;AAEjC,2EAA2E;AAC3E,oEAAoE;AACpE,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAiB,EAAE;IACvE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAA;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,CAAA;IAC5C,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,KAAqB,EAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;AAEnH,MAAM,gBAAgB,GAAG,CAAC,KAAqB,EAAU,EAAE;IACzD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAC7D,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;QACD,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAA;IACtC,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED,gFAAgF;AAChF,+EAA+E;AAC/E,mFAAmF;AACnF,MAAM,kBAAkB,GAAG,CAAC,KAA4B,EAAE,KAAe,EAAQ,EAAE;IACjF,MAAM,IAAI,GAAS;QACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,KAAK,CAAC,QAAQ;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK;KACN,CAAA;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5C,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAA;IACrD,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC7C,UAAiC,EACjC,KAAe,EACqB,EAAE;IACtC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,6DAA6D,KAAK,EAAE,CAAC,CAAA;IACvF,CAAC;IAQD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAA;IAEvC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxC,IAAI,GAAG,KAAK,IAAI;YAAE,SAAQ;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1C,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAE7C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,MAAM,IAAI,WAAW,GAAG,OAAO,CAAA;YACxC,QAAQ,CAAC,MAAM,IAAI,WAAW,GAAG,OAAO,CAAA;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;gBACd,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,WAAW,GAAG,OAAO;gBAC7B,MAAM,EAAE,WAAW,GAAG,OAAO;aAC9B,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAA+B,EAAE,CAAA;IAC9C,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACxD,IAAI,MAAM,KAAK,EAAE;YAAE,SAAQ;QAC3B,MAAM,SAAS,GAAuB,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;QACtE,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QAC7C,MAAM,MAAM,GAA6B;YACvC,SAAS;YACT,IAAI,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC;YACtC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;QACD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACpC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAA;AACpB,CAAC,CAAA"}
@@ -42,6 +42,16 @@ export type GeneralSwapTx = {
42
42
  txPayload?: Uint8Array;
43
43
  inboundAddress?: string;
44
44
  swapId?: string;
45
+ /**
46
+ * Provider fee for the route, when the response itemizes one. Absent
47
+ * rather than zero when no fee is itemized or its shape can't be
48
+ * resolved — the same convention `evm.affiliateFee` follows, since
49
+ * neither establishes an amount worth vouching for.
50
+ *
51
+ * Not part of the signed transfer. It travels so a cosigning peer,
52
+ * which holds no quote, can state what the swap costs.
53
+ */
54
+ swapFee?: SwapFee;
45
55
  };
46
56
  } | {
47
57
  cowswap_order: {
@@ -1 +1 @@
1
- {"version":3,"file":"GeneralSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/general/GeneralSwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,MAAM,aAAa,GACrB;IACE,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB;;;;;;;;;;;;;;WAcG;QACH,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;CACF,GACD;IACE,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,OAAO,CAAA;KACjB,CAAA;CACF,GACD;IACE,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,UAAU,CAAA;QACtB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,GACD;IACE,aAAa,EAAE;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,gBAAgB,CAAA;QACtB,iBAAiB,EAAE,OAAO,CAAA;QAC1B,gBAAgB,EAAE,mBAAmB,CAAA;QACrC,eAAe,EAAE,mBAAmB,CAAA;QACpC,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf;;kFAE0E;QAC1E,cAAc,CAAC,EAAE,IAAI,CAAA;KACtB,CAAA;CACF,GACD;IACE,UAAU,EAAE;QACV,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAChD,CAAA;CACF,CAAA;AAEL;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,EAAE,EAAE,aAAa,CAAA;CAClB,CAAA"}
1
+ {"version":3,"file":"GeneralSwapQuote.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/swap/general/GeneralSwapQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,MAAM,aAAa,GACrB;IACE,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB;;;;;;;;;;;;;;WAcG;QACH,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;CACF,GACD;IACE,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,OAAO,CAAA;KACjB,CAAA;CACF,GACD;IACE,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,UAAU,CAAA;QACtB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf;;;;;;;;WAQG;QACH,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,CAAA;CACF,GACD;IACE,aAAa,EAAE;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,gBAAgB,CAAA;QACtB,iBAAiB,EAAE,OAAO,CAAA;QAC1B,gBAAgB,EAAE,mBAAmB,CAAA;QACrC,eAAe,EAAE,mBAAmB,CAAA;QACpC,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf;;kFAE0E;QAC1E,cAAc,CAAC,EAAE,IAAI,CAAA;KACtB,CAAA;CACF,GACD;IACE,UAAU,EAAE;QACV,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAChD,CAAA;CACF,CAAA;AAEL;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,EAAE,EAAE,aAAa,CAAA;CAClB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getSwapKitQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/swapkit/api/getSwapKitQuote.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAGnE,OAAO,EAAE,gBAAgB,EAAiB,MAAM,oDAAoD,CAAA;AA4BpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAGzE,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG;IACpD,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AA++BD,eAAO,MAAM,eAAe,GAAU,+CAMnC,KAAK,KAAG,OAAO,CAAC,gBAAgB,CAwElC,CAAA"}
1
+ {"version":3,"file":"getSwapKitQuote.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/swap/general/swapkit/api/getSwapKitQuote.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAGnE,OAAO,EAAE,gBAAgB,EAAiB,MAAM,oDAAoD,CAAA;AA4BpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAGzE,KAAK,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG;IACpD,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AA0hCD,eAAO,MAAM,eAAe,GAAU,+CAMnC,KAAK,KAAG,OAAO,CAAC,gBAAgB,CAwElC,CAAA"}