@allbridge/bridge-core-sdk 3.35.1 → 3.36.0-beta.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 (103) hide show
  1. package/dist/browser/index.js +2 -2
  2. package/dist/browser/index.js.map +4 -4
  3. package/dist/cjs/index.js +2 -2
  4. package/dist/cjs/index.js.map +4 -4
  5. package/dist/esm/index.js +2 -2
  6. package/dist/esm/index.js.map +4 -4
  7. package/dist/src/client/core-api/api-client-caching.d.ts +6 -1
  8. package/dist/src/client/core-api/api-client-caching.js +11 -0
  9. package/dist/src/client/core-api/api-client-caching.js.map +1 -1
  10. package/dist/src/client/core-api/api-client.d.ts +38 -4
  11. package/dist/src/client/core-api/api-client.js +83 -16
  12. package/dist/src/client/core-api/api-client.js.map +1 -1
  13. package/dist/src/client/core-api/core-api-mapper.d.ts +4 -1
  14. package/dist/src/client/core-api/core-api-mapper.js +25 -10
  15. package/dist/src/client/core-api/core-api-mapper.js.map +1 -1
  16. package/dist/src/client/core-api/core-api.model.d.ts +124 -21
  17. package/dist/src/client/core-api/core-api.model.js +9 -0
  18. package/dist/src/client/core-api/core-api.model.js.map +1 -1
  19. package/dist/src/client/core-api/core-client-base.d.ts +7 -1
  20. package/dist/src/client/core-api/core-client-base.js +9 -0
  21. package/dist/src/client/core-api/core-client-base.js.map +1 -1
  22. package/dist/src/client/core-api/core-client-filtered.d.ts +4 -1
  23. package/dist/src/client/core-api/core-client-filtered.js +9 -0
  24. package/dist/src/client/core-api/core-client-filtered.js.map +1 -1
  25. package/dist/src/client/core-api/core-client-pool-info-caching.d.ts +4 -1
  26. package/dist/src/client/core-api/core-client-pool-info-caching.js +9 -0
  27. package/dist/src/client/core-api/core-client-pool-info-caching.js.map +1 -1
  28. package/dist/src/exceptions/exceptions.d.ts +41 -0
  29. package/dist/src/exceptions/exceptions.js +52 -0
  30. package/dist/src/exceptions/exceptions.js.map +1 -1
  31. package/dist/src/index.d.ts +19 -6
  32. package/dist/src/index.js +6 -1
  33. package/dist/src/index.js.map +1 -1
  34. package/dist/src/models/index.d.ts +4 -2
  35. package/dist/src/models/index.js.map +1 -1
  36. package/dist/src/services/bridge/alg/index.d.ts +5 -1
  37. package/dist/src/services/bridge/alg/index.js +7 -0
  38. package/dist/src/services/bridge/alg/index.js.map +1 -1
  39. package/dist/src/services/bridge/evm/index.d.ts +12 -2
  40. package/dist/src/services/bridge/evm/index.js +32 -0
  41. package/dist/src/services/bridge/evm/index.js.map +1 -1
  42. package/dist/src/services/bridge/index.d.ts +10 -3
  43. package/dist/src/services/bridge/index.js +27 -3
  44. package/dist/src/services/bridge/index.js.map +1 -1
  45. package/dist/src/services/bridge/models/bridge.d.ts +17 -1
  46. package/dist/src/services/bridge/models/bridge.js +6 -0
  47. package/dist/src/services/bridge/models/bridge.js.map +1 -1
  48. package/dist/src/services/bridge/models/bridge.model.d.ts +25 -0
  49. package/dist/src/services/bridge/models/bridge.model.js.map +1 -1
  50. package/dist/src/services/bridge/raw-bridge-transaction-builder.d.ts +8 -1
  51. package/dist/src/services/bridge/raw-bridge-transaction-builder.js +11 -1
  52. package/dist/src/services/bridge/raw-bridge-transaction-builder.js.map +1 -1
  53. package/dist/src/services/bridge/sol/bridge-tx-service.js +3 -0
  54. package/dist/src/services/bridge/sol/bridge-tx-service.js.map +1 -1
  55. package/dist/src/services/bridge/sol/index.d.ts +14 -1
  56. package/dist/src/services/bridge/sol/index.js +47 -2
  57. package/dist/src/services/bridge/sol/index.js.map +1 -1
  58. package/dist/src/services/bridge/sol/payer-with-token-service.js +3 -0
  59. package/dist/src/services/bridge/sol/payer-with-token-service.js.map +1 -1
  60. package/dist/src/services/bridge/spender.js +4 -0
  61. package/dist/src/services/bridge/spender.js.map +1 -1
  62. package/dist/src/services/bridge/srb/index.d.ts +9 -1
  63. package/dist/src/services/bridge/srb/index.js +45 -3
  64. package/dist/src/services/bridge/srb/index.js.map +1 -1
  65. package/dist/src/services/bridge/stx/index.d.ts +6 -2
  66. package/dist/src/services/bridge/stx/index.js +7 -0
  67. package/dist/src/services/bridge/stx/index.js.map +1 -1
  68. package/dist/src/services/bridge/sui/index.d.ts +8 -1
  69. package/dist/src/services/bridge/sui/index.js +24 -0
  70. package/dist/src/services/bridge/sui/index.js.map +1 -1
  71. package/dist/src/services/bridge/trx/index.d.ts +11 -1
  72. package/dist/src/services/bridge/trx/index.js +25 -0
  73. package/dist/src/services/bridge/trx/index.js.map +1 -1
  74. package/dist/src/services/bridge/utils.js +4 -1
  75. package/dist/src/services/bridge/utils.js.map +1 -1
  76. package/dist/src/services/index.d.ts +10 -0
  77. package/dist/src/services/index.js +36 -1
  78. package/dist/src/services/index.js.map +1 -1
  79. package/dist/src/services/near-intents/index.d.ts +62 -0
  80. package/dist/src/services/near-intents/index.js +115 -0
  81. package/dist/src/services/near-intents/index.js.map +1 -0
  82. package/dist/src/services/near-intents/models.d.ts +169 -0
  83. package/dist/src/services/near-intents/models.js +2 -0
  84. package/dist/src/services/near-intents/models.js.map +1 -0
  85. package/dist/src/services/near-intents/utils.d.ts +34 -0
  86. package/dist/src/services/near-intents/utils.js +53 -0
  87. package/dist/src/services/near-intents/utils.js.map +1 -0
  88. package/dist/src/services/token/evm/index.js +3 -0
  89. package/dist/src/services/token/evm/index.js.map +1 -1
  90. package/dist/src/services/token/sol/index.js +3 -0
  91. package/dist/src/services/token/sol/index.js.map +1 -1
  92. package/dist/src/services/token/srb/index.js +11 -0
  93. package/dist/src/services/token/srb/index.js.map +1 -1
  94. package/dist/src/services/token/sui/index.js +5 -0
  95. package/dist/src/services/token/sui/index.js.map +1 -1
  96. package/dist/src/services/token/trx/index.js +3 -0
  97. package/dist/src/services/token/trx/index.js.map +1 -1
  98. package/dist/src/tokens-info/tokens-info.model.d.ts +23 -1
  99. package/dist/src/tokens-info/tokens-info.model.js.map +1 -1
  100. package/dist/src/version.d.ts +1 -1
  101. package/dist/src/version.js +1 -1
  102. package/dist/src/version.js.map +1 -1
  103. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { PoolInfoMap, PoolKeyObject } from "../../tokens-info";
2
2
  import { ApiClient, TokenInfo } from "./api-client";
3
- import { GasBalanceResponse, PendingInfoResponse, ReceiveTransactionCostRequest, ReceiveTransactionCostResponse, TransferStatusResponse } from "./core-api.model";
3
+ import { GasBalanceResponse, NearIntentsDepositRequest, NearIntentsDepositResponse, NearIntentsQuoteRequest, NearIntentsQuoteResponse, NearIntentsSubmitDepositRequest, PendingInfoResponse, ReceiveTransactionCostRequest, ReceiveTransactionCostResponse, TransferStatusResponse } from "./core-api.model";
4
4
  export declare class ApiClientCaching implements ApiClient {
5
5
  private apiClient;
6
6
  private tokenInfoCache;
@@ -16,4 +16,9 @@ export declare class ApiClientCaching implements ApiClient {
16
16
  getTransferStatus(chainSymbol: string, txId: string): Promise<TransferStatusResponse>;
17
17
  /** @deprecated Do not use. */
18
18
  getPoolInfoMap(pools: PoolKeyObject[] | PoolKeyObject): Promise<PoolInfoMap>;
19
+ /** Not cached: every quote is a fresh market price. */
20
+ getNearIntentsQuote(args: NearIntentsQuoteRequest): Promise<NearIntentsQuoteResponse>;
21
+ /** Not cached: every call creates a new one-shot deposit address. */
22
+ createNearIntentsDeposit(args: NearIntentsDepositRequest): Promise<NearIntentsDepositResponse>;
23
+ submitNearIntentsDeposit(args: NearIntentsSubmitDepositRequest): Promise<void>;
19
24
  }
@@ -62,5 +62,16 @@ export class ApiClientCaching {
62
62
  async getPoolInfoMap(pools) {
63
63
  return this.apiClient.getPoolInfoMap(pools);
64
64
  }
65
+ /** Not cached: every quote is a fresh market price. */
66
+ async getNearIntentsQuote(args) {
67
+ return this.apiClient.getNearIntentsQuote(args);
68
+ }
69
+ /** Not cached: every call creates a new one-shot deposit address. */
70
+ async createNearIntentsDeposit(args) {
71
+ return this.apiClient.createNearIntentsDeposit(args);
72
+ }
73
+ async submitNearIntentsDeposit(args) {
74
+ return this.apiClient.submitNearIntentsDeposit(args);
75
+ }
65
76
  }
66
77
  //# sourceMappingURL=api-client-caching.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client-caching.js","sourceRoot":"","sources":["../../../../src/client/core-api/api-client-caching.ts"],"names":[],"mappings":"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","sourcesContent":["import Cache from \"timed-cache\";\nimport { PoolInfoMap, PoolKeyObject } from \"../../tokens-info\";\nimport { ApiClient, TokenInfo } from \"./api-client\";\nimport {\n GasBalanceResponse,\n PendingInfoResponse,\n ReceiveTransactionCostRequest,\n ReceiveTransactionCostResponse,\n TransferStatusResponse,\n} from \"./core-api.model\";\n\nconst _20_SECONDS_TTL = 20 * 1000;\nconst _55_SECONDS_TTL = 55 * 1000;\n\nexport class ApiClientCaching implements ApiClient {\n private tokenInfoCache: Cache<Promise<TokenInfo>>;\n private pendingInfoCache: Cache<Promise<PendingInfoResponse>>;\n private gasBalanceCache: Cache<Promise<GasBalanceResponse>>;\n private receivedTransactionCache: Cache<ReceiveTransactionCostResponse>;\n\n constructor(private apiClient: ApiClient) {\n this.tokenInfoCache = new Cache({ defaultTtl: _55_SECONDS_TTL });\n this.receivedTransactionCache = new Cache({ defaultTtl: _20_SECONDS_TTL });\n this.pendingInfoCache = new Cache({ defaultTtl: _20_SECONDS_TTL });\n this.gasBalanceCache = new Cache({ defaultTtl: _20_SECONDS_TTL });\n }\n\n getTokenInfo(): Promise<TokenInfo> {\n const TOKEN_INFO_CACHE_KEY = \"TOKEN_INFO_CACHE_KEY\";\n const tokenInfo = this.tokenInfoCache.get(TOKEN_INFO_CACHE_KEY);\n if (tokenInfo) {\n return tokenInfo;\n }\n const tokenInfoPromise = this.apiClient.getTokenInfo();\n this.tokenInfoCache.put(TOKEN_INFO_CACHE_KEY, tokenInfoPromise);\n return tokenInfoPromise;\n }\n\n async getGasBalance(chainSymbol: string, address: string): Promise<GasBalanceResponse> {\n const GAS_BALANCE_CACHE_KEY = `GAS_BALANCE_${chainSymbol}_${address}`;\n const gasBalance = this.gasBalanceCache.get(GAS_BALANCE_CACHE_KEY);\n if (gasBalance) {\n return gasBalance;\n }\n const gasBalancePromise = this.apiClient.getGasBalance(chainSymbol, address);\n this.gasBalanceCache.put(GAS_BALANCE_CACHE_KEY, gasBalancePromise);\n return gasBalancePromise;\n }\n\n /** @deprecated Do not use. */\n async getPendingInfo(): Promise<PendingInfoResponse> {\n const PENDING_INFO_CACHE_KEY = \"PENDING_INFO_CACHE_KEY\";\n const pendingInfo = this.pendingInfoCache.get(PENDING_INFO_CACHE_KEY);\n if (pendingInfo) {\n return pendingInfo;\n }\n const pendingInfoPromise = this.apiClient.getPendingInfo();\n this.pendingInfoCache.put(PENDING_INFO_CACHE_KEY, pendingInfoPromise);\n return pendingInfoPromise;\n }\n\n async getReceiveTransactionCost(args: ReceiveTransactionCostRequest): Promise<ReceiveTransactionCostResponse> {\n const RECEIVE_TX_COST_KEY = `RECEIVE_TX_COST_${args.sourceChainId}_${args.destinationChainId}_${args.messenger}${args.sourceToken ? \"_\" + args.sourceToken : \"\"}`;\n const transactionCost = this.receivedTransactionCache.get(RECEIVE_TX_COST_KEY);\n if (transactionCost) {\n return transactionCost;\n }\n const fetchedTransactionCost = await this.apiClient.getReceiveTransactionCost(args);\n this.receivedTransactionCache.put(RECEIVE_TX_COST_KEY, fetchedTransactionCost);\n return fetchedTransactionCost;\n }\n\n async getTransferStatus(chainSymbol: string, txId: string): Promise<TransferStatusResponse> {\n return this.apiClient.getTransferStatus(chainSymbol, txId);\n }\n\n /** @deprecated Do not use. */\n async getPoolInfoMap(pools: PoolKeyObject[] | PoolKeyObject): Promise<PoolInfoMap> {\n return this.apiClient.getPoolInfoMap(pools);\n }\n}\n"]}
1
+ {"version":3,"file":"api-client-caching.js","sourceRoot":"","sources":["../../../../src/client/core-api/api-client-caching.ts"],"names":[],"mappings":"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","sourcesContent":["import Cache from \"timed-cache\";\nimport { PoolInfoMap, PoolKeyObject } from \"../../tokens-info\";\nimport { ApiClient, TokenInfo } from \"./api-client\";\nimport {\n GasBalanceResponse,\n NearIntentsDepositRequest,\n NearIntentsDepositResponse,\n NearIntentsQuoteRequest,\n NearIntentsQuoteResponse,\n NearIntentsSubmitDepositRequest,\n PendingInfoResponse,\n ReceiveTransactionCostRequest,\n ReceiveTransactionCostResponse,\n TransferStatusResponse,\n} from \"./core-api.model\";\n\nconst _20_SECONDS_TTL = 20 * 1000;\nconst _55_SECONDS_TTL = 55 * 1000;\n\nexport class ApiClientCaching implements ApiClient {\n private tokenInfoCache: Cache<Promise<TokenInfo>>;\n private pendingInfoCache: Cache<Promise<PendingInfoResponse>>;\n private gasBalanceCache: Cache<Promise<GasBalanceResponse>>;\n private receivedTransactionCache: Cache<ReceiveTransactionCostResponse>;\n\n constructor(private apiClient: ApiClient) {\n this.tokenInfoCache = new Cache({ defaultTtl: _55_SECONDS_TTL });\n this.receivedTransactionCache = new Cache({ defaultTtl: _20_SECONDS_TTL });\n this.pendingInfoCache = new Cache({ defaultTtl: _20_SECONDS_TTL });\n this.gasBalanceCache = new Cache({ defaultTtl: _20_SECONDS_TTL });\n }\n\n getTokenInfo(): Promise<TokenInfo> {\n const TOKEN_INFO_CACHE_KEY = \"TOKEN_INFO_CACHE_KEY\";\n const tokenInfo = this.tokenInfoCache.get(TOKEN_INFO_CACHE_KEY);\n if (tokenInfo) {\n return tokenInfo;\n }\n const tokenInfoPromise = this.apiClient.getTokenInfo();\n this.tokenInfoCache.put(TOKEN_INFO_CACHE_KEY, tokenInfoPromise);\n return tokenInfoPromise;\n }\n\n async getGasBalance(chainSymbol: string, address: string): Promise<GasBalanceResponse> {\n const GAS_BALANCE_CACHE_KEY = `GAS_BALANCE_${chainSymbol}_${address}`;\n const gasBalance = this.gasBalanceCache.get(GAS_BALANCE_CACHE_KEY);\n if (gasBalance) {\n return gasBalance;\n }\n const gasBalancePromise = this.apiClient.getGasBalance(chainSymbol, address);\n this.gasBalanceCache.put(GAS_BALANCE_CACHE_KEY, gasBalancePromise);\n return gasBalancePromise;\n }\n\n /** @deprecated Do not use. */\n async getPendingInfo(): Promise<PendingInfoResponse> {\n const PENDING_INFO_CACHE_KEY = \"PENDING_INFO_CACHE_KEY\";\n const pendingInfo = this.pendingInfoCache.get(PENDING_INFO_CACHE_KEY);\n if (pendingInfo) {\n return pendingInfo;\n }\n const pendingInfoPromise = this.apiClient.getPendingInfo();\n this.pendingInfoCache.put(PENDING_INFO_CACHE_KEY, pendingInfoPromise);\n return pendingInfoPromise;\n }\n\n async getReceiveTransactionCost(args: ReceiveTransactionCostRequest): Promise<ReceiveTransactionCostResponse> {\n const RECEIVE_TX_COST_KEY = `RECEIVE_TX_COST_${args.sourceChainId}_${args.destinationChainId}_${args.messenger}${args.sourceToken ? \"_\" + args.sourceToken : \"\"}`;\n const transactionCost = this.receivedTransactionCache.get(RECEIVE_TX_COST_KEY);\n if (transactionCost) {\n return transactionCost;\n }\n const fetchedTransactionCost = await this.apiClient.getReceiveTransactionCost(args);\n this.receivedTransactionCache.put(RECEIVE_TX_COST_KEY, fetchedTransactionCost);\n return fetchedTransactionCost;\n }\n\n async getTransferStatus(chainSymbol: string, txId: string): Promise<TransferStatusResponse> {\n return this.apiClient.getTransferStatus(chainSymbol, txId);\n }\n\n /** @deprecated Do not use. */\n async getPoolInfoMap(pools: PoolKeyObject[] | PoolKeyObject): Promise<PoolInfoMap> {\n return this.apiClient.getPoolInfoMap(pools);\n }\n\n /** Not cached: every quote is a fresh market price. */\n async getNearIntentsQuote(args: NearIntentsQuoteRequest): Promise<NearIntentsQuoteResponse> {\n return this.apiClient.getNearIntentsQuote(args);\n }\n\n /** Not cached: every call creates a new one-shot deposit address. */\n async createNearIntentsDeposit(args: NearIntentsDepositRequest): Promise<NearIntentsDepositResponse> {\n return this.apiClient.createNearIntentsDeposit(args);\n }\n\n async submitNearIntentsDeposit(args: NearIntentsSubmitDepositRequest): Promise<void> {\n return this.apiClient.submitNearIntentsDeposit(args);\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { ChainDetailsMapWithFlags, PoolInfoMap, PoolKeyObject } from "../../tokens-info";
2
- import { GasBalanceResponse, PendingInfoResponse, ReceiveTransactionCostRequest, ReceiveTransactionCostResponse, TransferStatusResponse } from "./core-api.model";
2
+ import { GasBalanceResponse, NearIntentsDepositRequest, NearIntentsDepositResponse, NearIntentsQuoteRequest, NearIntentsQuoteResponse, NearIntentsSubmitDepositRequest, PendingInfoResponse, ReceiveTransactionCostRequest, ReceiveTransactionCostResponse, TransferStatusResponse } from "./core-api.model";
3
3
  import { AllbridgeCoreClientParams } from "./core-client-base";
4
4
  export interface TokenInfo {
5
5
  chainDetailsMap: ChainDetailsMapWithFlags;
@@ -15,16 +15,50 @@ export interface ApiClient {
15
15
  getReceiveTransactionCost(args: ReceiveTransactionCostRequest): Promise<ReceiveTransactionCostResponse>;
16
16
  /** @deprecated Do not use. */
17
17
  getPoolInfoMap(pools: PoolKeyObject[] | PoolKeyObject): Promise<PoolInfoMap>;
18
+ /**
19
+ * `POST /near-intents/quote`: a dry NEAR Intents quote, see {@link mapNearIntentsError} for the thrown errors.
20
+ */
21
+ getNearIntentsQuote(args: NearIntentsQuoteRequest): Promise<NearIntentsQuoteResponse>;
22
+ /**
23
+ * `POST /near-intents/deposit`: a NEAR Intents quote with a one-shot deposit address.
24
+ */
25
+ createNearIntentsDeposit(args: NearIntentsDepositRequest): Promise<NearIntentsDepositResponse>;
26
+ /**
27
+ * `POST /near-intents/deposit/submit`: notifies NEAR Intents about the deposit transaction.
28
+ */
29
+ submitNearIntentsDeposit(args: NearIntentsSubmitDepositRequest): Promise<void>;
18
30
  }
31
+ /**
32
+ * Maps an error of a Core API `/near-intents/*` call to a typed SDK error:
33
+ * - HTTP 404 -> {@link NearIntentsDoesNotSupportedError}
34
+ * - `AMOUNT_TOO_LOW` -> {@link NearIntentsAmountTooLowError} (with `minAmount` / `minAmountUsd` when known)
35
+ * - `NO_LIQUIDITY` -> {@link NearIntentsNoLiquidityError}
36
+ * - `FAILED_TO_GET_QUOTE`, `UPSTREAM_ERROR` or HTTP 502 -> {@link NearIntentsQuoteError}
37
+ *
38
+ * Any other error is returned unchanged.
39
+ * @internal
40
+ */
41
+ export declare function mapNearIntentsError(error: unknown): unknown;
19
42
  export declare class ApiClientImpl implements ApiClient {
20
43
  private api;
21
44
  constructor(params: AllbridgeCoreClientParams);
22
45
  getTokenInfo(): Promise<TokenInfo>;
23
- /** @deprecated Do not use. */
46
+ /**
47
+ * @deprecated Do not use.
48
+ * The `/pending-info` endpoint was removed from the Core API together with the liquidity pools;
49
+ * always resolves to an empty object without calling the server.
50
+ */
24
51
  getPendingInfo(): Promise<PendingInfoResponse>;
25
52
  getGasBalance(chainSymbol: string, address: string): Promise<GasBalanceResponse>;
26
53
  getTransferStatus(chainSymbol: string, txId: string): Promise<TransferStatusResponse>;
27
54
  getReceiveTransactionCost(args: ReceiveTransactionCostRequest): Promise<ReceiveTransactionCostResponse>;
28
- /** @deprecated Do not use. */
29
- getPoolInfoMap(pools: PoolKeyObject[] | PoolKeyObject): Promise<PoolInfoMap>;
55
+ /**
56
+ * @deprecated Do not use.
57
+ * The `/pool-info` endpoint was removed from the Core API together with the liquidity pools;
58
+ * always resolves to an empty map without calling the server.
59
+ */
60
+ getPoolInfoMap(_pools: PoolKeyObject[] | PoolKeyObject): Promise<PoolInfoMap>;
61
+ getNearIntentsQuote(args: NearIntentsQuoteRequest): Promise<NearIntentsQuoteResponse>;
62
+ createNearIntentsDeposit(args: NearIntentsDepositRequest): Promise<NearIntentsDepositResponse>;
63
+ submitNearIntentsDeposit(args: NearIntentsSubmitDepositRequest): Promise<void>;
30
64
  }
@@ -1,8 +1,42 @@
1
- import { AxiosHeaders, create } from "axios";
2
- import { InvalidMessengerOptionError } from "../../exceptions";
1
+ import { AxiosHeaders, create, isAxiosError } from "axios";
2
+ import { InvalidMessengerOptionError, NearIntentsAmountTooLowError, NearIntentsDoesNotSupportedError, NearIntentsNoLiquidityError, NearIntentsQuoteError, } from "../../exceptions";
3
3
  import { VERSION } from "../../version";
4
- import { mapChainDetailsResponseToChainDetailsMap, mapChainDetailsResponseToPoolInfoMap, mapPoolInfoResponseToPoolInfoMap, } from "./core-api-mapper";
4
+ import { mapChainDetailsResponseToChainDetailsMap, mapChainDetailsResponseToPoolInfoMap } from "./core-api-mapper";
5
5
  import { Messenger, } from "./core-api.model";
6
+ /**
7
+ * Maps an error of a Core API `/near-intents/*` call to a typed SDK error:
8
+ * - HTTP 404 -> {@link NearIntentsDoesNotSupportedError}
9
+ * - `AMOUNT_TOO_LOW` -> {@link NearIntentsAmountTooLowError} (with `minAmount` / `minAmountUsd` when known)
10
+ * - `NO_LIQUIDITY` -> {@link NearIntentsNoLiquidityError}
11
+ * - `FAILED_TO_GET_QUOTE`, `UPSTREAM_ERROR` or HTTP 502 -> {@link NearIntentsQuoteError}
12
+ *
13
+ * Any other error is returned unchanged.
14
+ * @internal
15
+ */
16
+ export function mapNearIntentsError(error) {
17
+ if (!isAxiosError(error) || !error.response) {
18
+ return error;
19
+ }
20
+ const status = error.response.status;
21
+ const body = (error.response.data ?? {});
22
+ const message = typeof body.message === "string" ? body.message : undefined;
23
+ switch (body.code) {
24
+ case "AMOUNT_TOO_LOW":
25
+ return new NearIntentsAmountTooLowError(message ?? "Amount is too low for NEAR Intents route", body.minAmount, body.minAmountUsd);
26
+ case "NO_LIQUIDITY":
27
+ return new NearIntentsNoLiquidityError(message ?? "No liquidity available for NEAR Intents route");
28
+ case "FAILED_TO_GET_QUOTE":
29
+ case "UPSTREAM_ERROR":
30
+ return new NearIntentsQuoteError(message ?? "Failed to get NEAR Intents quote", body.code);
31
+ }
32
+ if (status === 404) {
33
+ return new NearIntentsDoesNotSupportedError(message ?? "Such route does not support NEAR Intents protocol");
34
+ }
35
+ if (status === 502) {
36
+ return new NearIntentsQuoteError(message ?? "NEAR Intents upstream error", "UPSTREAM_ERROR");
37
+ }
38
+ return error;
39
+ }
6
40
  export class ApiClientImpl {
7
41
  api;
8
42
  constructor(params) {
@@ -40,10 +74,13 @@ export class ApiClientImpl {
40
74
  poolInfoMap: mapChainDetailsResponseToPoolInfoMap(data),
41
75
  };
42
76
  }
43
- /** @deprecated Do not use. */
44
- async getPendingInfo() {
45
- const { data } = await this.api.get("/pending-info");
46
- return data;
77
+ /**
78
+ * @deprecated Do not use.
79
+ * The `/pending-info` endpoint was removed from the Core API together with the liquidity pools;
80
+ * always resolves to an empty object without calling the server.
81
+ */
82
+ getPendingInfo() {
83
+ return Promise.resolve({});
47
84
  }
48
85
  async getGasBalance(chainSymbol, address) {
49
86
  const { data } = await this.api.get(`/check/${chainSymbol}/${address}`);
@@ -70,15 +107,45 @@ export class ApiClientImpl {
70
107
  adminFeeShareWithExtras: data.adminFeeShareWithExtras,
71
108
  };
72
109
  }
73
- /** @deprecated Do not use. */
74
- async getPoolInfoMap(pools) {
75
- const poolKeys = pools instanceof Array ? pools : [pools];
76
- const { data } = await this.api.post("/pool-info", { pools: poolKeys }, {
77
- headers: {
78
- "Content-Type": "application/json",
79
- },
80
- });
81
- return mapPoolInfoResponseToPoolInfoMap(data);
110
+ /**
111
+ * @deprecated Do not use.
112
+ * The `/pool-info` endpoint was removed from the Core API together with the liquidity pools;
113
+ * always resolves to an empty map without calling the server.
114
+ */
115
+ getPoolInfoMap(_pools) {
116
+ return Promise.resolve({});
117
+ }
118
+ async getNearIntentsQuote(args) {
119
+ try {
120
+ const { data } = await this.api.post("/near-intents/quote", args, {
121
+ headers: { "Content-Type": "application/json" },
122
+ });
123
+ return data;
124
+ }
125
+ catch (e) {
126
+ throw mapNearIntentsError(e);
127
+ }
128
+ }
129
+ async createNearIntentsDeposit(args) {
130
+ try {
131
+ const { data } = await this.api.post("/near-intents/deposit", args, {
132
+ headers: { "Content-Type": "application/json" },
133
+ });
134
+ return data;
135
+ }
136
+ catch (e) {
137
+ throw mapNearIntentsError(e);
138
+ }
139
+ }
140
+ async submitNearIntentsDeposit(args) {
141
+ try {
142
+ await this.api.post("/near-intents/deposit/submit", args, {
143
+ headers: { "Content-Type": "application/json" },
144
+ });
145
+ }
146
+ catch (e) {
147
+ throw mapNearIntentsError(e);
148
+ }
82
149
  }
83
150
  }
84
151
  //# sourceMappingURL=api-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../../src/client/core-api/api-client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Axios, AxiosHeaders, create } from \"axios\";\nimport { InvalidMessengerOptionError } from \"../../exceptions\";\nimport { ChainDetailsMapWithFlags, PoolInfoMap, PoolKeyObject } from \"../../tokens-info\";\nimport { VERSION } from \"../../version\";\nimport {\n mapChainDetailsResponseToChainDetailsMap,\n mapChainDetailsResponseToPoolInfoMap,\n mapPoolInfoResponseToPoolInfoMap,\n} from \"./core-api-mapper\";\nimport {\n ChainDetailsResponse,\n GasBalanceResponse,\n Messenger,\n PendingInfoResponse,\n PoolInfoResponse,\n ReceiveTransactionCostRequest,\n ReceiveTransactionCostResponse,\n TransferStatusResponse,\n} from \"./core-api.model\";\nimport { AllbridgeCoreClientParams } from \"./core-client-base\";\n\nexport interface TokenInfo {\n chainDetailsMap: ChainDetailsMapWithFlags;\n /** @deprecated Do not use. */\n poolInfoMap: PoolInfoMap;\n}\n\nexport interface ApiClient {\n getTokenInfo(): Promise<TokenInfo>;\n\n /** @deprecated Do not use. */\n getPendingInfo(): Promise<PendingInfoResponse>;\n\n getGasBalance(chainSymbol: string, address: string): Promise<GasBalanceResponse>;\n\n getTransferStatus(chainSymbol: string, txId: string): Promise<TransferStatusResponse>;\n\n getReceiveTransactionCost(args: ReceiveTransactionCostRequest): Promise<ReceiveTransactionCostResponse>;\n\n /** @deprecated Do not use. */\n getPoolInfoMap(pools: PoolKeyObject[] | PoolKeyObject): Promise<PoolInfoMap>;\n}\n\nexport class ApiClientImpl implements ApiClient {\n private api: Axios;\n\n constructor(params: AllbridgeCoreClientParams) {\n this.api = create({\n baseURL: params.coreApiUrl,\n headers: {\n Accept: \"application/json\",\n ...params.coreApiHeaders,\n \"x-Sdk-Agent\": \"AllbridgeCoreSDK/\" + VERSION,\n },\n params: params.coreApiQueryParams,\n });\n\n if (params.coreApiHeadersProvider) {\n this.api.interceptors.request.use(async (config: { headers: any }) => {\n const dynamicHeaders = await params.coreApiHeadersProvider?.();\n if (!dynamicHeaders || Object.keys(dynamicHeaders).length === 0) {\n return config;\n }\n\n const headers = AxiosHeaders.from(config.headers);\n for (const [headerName, headerValue] of Object.entries(dynamicHeaders)) {\n if (!headerValue || headers.has(headerName)) {\n continue;\n }\n headers.set(headerName, headerValue);\n }\n\n config.headers = headers;\n return config;\n });\n }\n }\n\n async getTokenInfo(): Promise<TokenInfo> {\n const { data } = await this.api.get<ChainDetailsResponse>(\"/token-info\", { params: { filter: \"all\" } });\n return {\n chainDetailsMap: mapChainDetailsResponseToChainDetailsMap(data),\n poolInfoMap: mapChainDetailsResponseToPoolInfoMap(data),\n };\n }\n\n /** @deprecated Do not use. */\n async getPendingInfo(): Promise<PendingInfoResponse> {\n const { data } = await this.api.get<PendingInfoResponse>(\"/pending-info\");\n return data;\n }\n\n async getGasBalance(chainSymbol: string, address: string): Promise<GasBalanceResponse> {\n const { data } = await this.api.get<GasBalanceResponse>(`/check/${chainSymbol}/${address}`);\n return data;\n }\n\n async getTransferStatus(chainSymbol: string, txId: string): Promise<TransferStatusResponse> {\n const { data } = await this.api.get<TransferStatusResponse>(`/chain/${chainSymbol}/${txId}`);\n return data;\n }\n\n async getReceiveTransactionCost(args: ReceiveTransactionCostRequest): Promise<ReceiveTransactionCostResponse> {\n if (args.messenger === Messenger.OFT && !args.sourceToken) {\n throw new InvalidMessengerOptionError(\"For OFT sourceToken required\");\n }\n const { data } = await this.api.post<ReceiveTransactionCostResponse>(\"/receive-fee\", args, {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n return {\n exchangeRate: data.exchangeRate,\n fee: data.fee,\n sourceNativeTokenPrice: data.sourceNativeTokenPrice,\n abrExchangeRate: data.abrExchangeRate,\n adminFeeShareWithExtras: data.adminFeeShareWithExtras,\n };\n }\n\n /** @deprecated Do not use. */\n async getPoolInfoMap(pools: PoolKeyObject[] | PoolKeyObject): Promise<PoolInfoMap> {\n const poolKeys = pools instanceof Array ? pools : [pools];\n const { data } = await this.api.post<PoolInfoResponse>(\n \"/pool-info\",\n { pools: poolKeys },\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n return mapPoolInfoResponseToPoolInfoMap(data);\n }\n}\n"]}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../../src/client/core-api/api-client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Axios, AxiosHeaders, create, isAxiosError } from \"axios\";\nimport {\n InvalidMessengerOptionError,\n NearIntentsAmountTooLowError,\n NearIntentsDoesNotSupportedError,\n NearIntentsNoLiquidityError,\n NearIntentsQuoteError,\n} from \"../../exceptions\";\nimport { ChainDetailsMapWithFlags, PoolInfoMap, PoolKeyObject } from \"../../tokens-info\";\nimport { VERSION } from \"../../version\";\nimport { mapChainDetailsResponseToChainDetailsMap, mapChainDetailsResponseToPoolInfoMap } from \"./core-api-mapper\";\nimport {\n ChainDetailsResponse,\n GasBalanceResponse,\n Messenger,\n NearIntentsDepositRequest,\n NearIntentsDepositResponse,\n NearIntentsErrorResponse,\n NearIntentsQuoteRequest,\n NearIntentsQuoteResponse,\n NearIntentsSubmitDepositRequest,\n PendingInfoResponse,\n ReceiveTransactionCostRequest,\n ReceiveTransactionCostResponse,\n TransferStatusResponse,\n} from \"./core-api.model\";\nimport { AllbridgeCoreClientParams } from \"./core-client-base\";\n\nexport interface TokenInfo {\n chainDetailsMap: ChainDetailsMapWithFlags;\n /** @deprecated Do not use. */\n poolInfoMap: PoolInfoMap;\n}\n\nexport interface ApiClient {\n getTokenInfo(): Promise<TokenInfo>;\n\n /** @deprecated Do not use. */\n getPendingInfo(): Promise<PendingInfoResponse>;\n\n getGasBalance(chainSymbol: string, address: string): Promise<GasBalanceResponse>;\n\n getTransferStatus(chainSymbol: string, txId: string): Promise<TransferStatusResponse>;\n\n getReceiveTransactionCost(args: ReceiveTransactionCostRequest): Promise<ReceiveTransactionCostResponse>;\n\n /** @deprecated Do not use. */\n getPoolInfoMap(pools: PoolKeyObject[] | PoolKeyObject): Promise<PoolInfoMap>;\n\n /**\n * `POST /near-intents/quote`: a dry NEAR Intents quote, see {@link mapNearIntentsError} for the thrown errors.\n */\n getNearIntentsQuote(args: NearIntentsQuoteRequest): Promise<NearIntentsQuoteResponse>;\n\n /**\n * `POST /near-intents/deposit`: a NEAR Intents quote with a one-shot deposit address.\n */\n createNearIntentsDeposit(args: NearIntentsDepositRequest): Promise<NearIntentsDepositResponse>;\n\n /**\n * `POST /near-intents/deposit/submit`: notifies NEAR Intents about the deposit transaction.\n */\n submitNearIntentsDeposit(args: NearIntentsSubmitDepositRequest): Promise<void>;\n}\n\n/**\n * Maps an error of a Core API `/near-intents/*` call to a typed SDK error:\n * - HTTP 404 -> {@link NearIntentsDoesNotSupportedError}\n * - `AMOUNT_TOO_LOW` -> {@link NearIntentsAmountTooLowError} (with `minAmount` / `minAmountUsd` when known)\n * - `NO_LIQUIDITY` -> {@link NearIntentsNoLiquidityError}\n * - `FAILED_TO_GET_QUOTE`, `UPSTREAM_ERROR` or HTTP 502 -> {@link NearIntentsQuoteError}\n *\n * Any other error is returned unchanged.\n * @internal\n */\nexport function mapNearIntentsError(error: unknown): unknown {\n if (!isAxiosError(error) || !error.response) {\n return error;\n }\n const status = error.response.status;\n const body = (error.response.data ?? {}) as Partial<NearIntentsErrorResponse>;\n const message = typeof body.message === \"string\" ? body.message : undefined;\n switch (body.code) {\n case \"AMOUNT_TOO_LOW\":\n return new NearIntentsAmountTooLowError(\n message ?? \"Amount is too low for NEAR Intents route\",\n body.minAmount,\n body.minAmountUsd\n );\n case \"NO_LIQUIDITY\":\n return new NearIntentsNoLiquidityError(message ?? \"No liquidity available for NEAR Intents route\");\n case \"FAILED_TO_GET_QUOTE\":\n case \"UPSTREAM_ERROR\":\n return new NearIntentsQuoteError(message ?? \"Failed to get NEAR Intents quote\", body.code);\n }\n if (status === 404) {\n return new NearIntentsDoesNotSupportedError(message ?? \"Such route does not support NEAR Intents protocol\");\n }\n if (status === 502) {\n return new NearIntentsQuoteError(message ?? \"NEAR Intents upstream error\", \"UPSTREAM_ERROR\");\n }\n return error;\n}\n\nexport class ApiClientImpl implements ApiClient {\n private api: Axios;\n\n constructor(params: AllbridgeCoreClientParams) {\n this.api = create({\n baseURL: params.coreApiUrl,\n headers: {\n Accept: \"application/json\",\n ...params.coreApiHeaders,\n \"x-Sdk-Agent\": \"AllbridgeCoreSDK/\" + VERSION,\n },\n params: params.coreApiQueryParams,\n });\n\n if (params.coreApiHeadersProvider) {\n this.api.interceptors.request.use(async (config: { headers: any }) => {\n const dynamicHeaders = await params.coreApiHeadersProvider?.();\n if (!dynamicHeaders || Object.keys(dynamicHeaders).length === 0) {\n return config;\n }\n\n const headers = AxiosHeaders.from(config.headers);\n for (const [headerName, headerValue] of Object.entries(dynamicHeaders)) {\n if (!headerValue || headers.has(headerName)) {\n continue;\n }\n headers.set(headerName, headerValue);\n }\n\n config.headers = headers;\n return config;\n });\n }\n }\n\n async getTokenInfo(): Promise<TokenInfo> {\n const { data } = await this.api.get<ChainDetailsResponse>(\"/token-info\", { params: { filter: \"all\" } });\n return {\n chainDetailsMap: mapChainDetailsResponseToChainDetailsMap(data),\n poolInfoMap: mapChainDetailsResponseToPoolInfoMap(data),\n };\n }\n\n /**\n * @deprecated Do not use.\n * The `/pending-info` endpoint was removed from the Core API together with the liquidity pools;\n * always resolves to an empty object without calling the server.\n */\n getPendingInfo(): Promise<PendingInfoResponse> {\n return Promise.resolve({});\n }\n\n async getGasBalance(chainSymbol: string, address: string): Promise<GasBalanceResponse> {\n const { data } = await this.api.get<GasBalanceResponse>(`/check/${chainSymbol}/${address}`);\n return data;\n }\n\n async getTransferStatus(chainSymbol: string, txId: string): Promise<TransferStatusResponse> {\n const { data } = await this.api.get<TransferStatusResponse>(`/chain/${chainSymbol}/${txId}`);\n return data;\n }\n\n async getReceiveTransactionCost(args: ReceiveTransactionCostRequest): Promise<ReceiveTransactionCostResponse> {\n if (args.messenger === Messenger.OFT && !args.sourceToken) {\n throw new InvalidMessengerOptionError(\"For OFT sourceToken required\");\n }\n const { data } = await this.api.post<ReceiveTransactionCostResponse>(\"/receive-fee\", args, {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n return {\n exchangeRate: data.exchangeRate,\n fee: data.fee,\n sourceNativeTokenPrice: data.sourceNativeTokenPrice,\n abrExchangeRate: data.abrExchangeRate,\n adminFeeShareWithExtras: data.adminFeeShareWithExtras,\n };\n }\n\n /**\n * @deprecated Do not use.\n * The `/pool-info` endpoint was removed from the Core API together with the liquidity pools;\n * always resolves to an empty map without calling the server.\n */\n getPoolInfoMap(_pools: PoolKeyObject[] | PoolKeyObject): Promise<PoolInfoMap> {\n return Promise.resolve({});\n }\n\n async getNearIntentsQuote(args: NearIntentsQuoteRequest): Promise<NearIntentsQuoteResponse> {\n try {\n const { data } = await this.api.post<NearIntentsQuoteResponse>(\"/near-intents/quote\", args, {\n headers: { \"Content-Type\": \"application/json\" },\n });\n return data;\n } catch (e) {\n throw mapNearIntentsError(e);\n }\n }\n\n async createNearIntentsDeposit(args: NearIntentsDepositRequest): Promise<NearIntentsDepositResponse> {\n try {\n const { data } = await this.api.post<NearIntentsDepositResponse>(\"/near-intents/deposit\", args, {\n headers: { \"Content-Type\": \"application/json\" },\n });\n return data;\n } catch (e) {\n throw mapNearIntentsError(e);\n }\n }\n\n async submitNearIntentsDeposit(args: NearIntentsSubmitDepositRequest): Promise<void> {\n try {\n await this.api.post(\"/near-intents/deposit/submit\", args, {\n headers: { \"Content-Type\": \"application/json\" },\n });\n } catch (e) {\n throw mapNearIntentsError(e);\n }\n }\n}\n"]}
@@ -1,10 +1,13 @@
1
1
  import { ChainDetailsMap, ChainDetailsMapWithFlags, PoolInfoMap, PoolKeyObject } from "../../tokens-info";
2
- import { ChainDetailsResponse, PoolInfoResponse } from "./core-api.model";
2
+ import { AbrPayerAvailabilityKeyDTO, ChainDetailsResponse, Messenger, MessengerKeyDTO, PoolInfoResponse } from "./core-api.model";
3
3
  export declare function mapChainDetailsResponseToChainDetailsMap(response: ChainDetailsResponse): ChainDetailsMapWithFlags;
4
4
  /**
5
5
  * @deprecated Do not use.
6
+ * The current Core API does not serve pool data, so the result is empty for it.
6
7
  */
7
8
  export declare function mapChainDetailsResponseToPoolInfoMap(response: ChainDetailsResponse): PoolInfoMap;
9
+ export declare function mapMessengerKeyDtoToMessenger(dto: MessengerKeyDTO): Messenger | null;
10
+ export declare const dtoKeyToMessenger: Record<AbrPayerAvailabilityKeyDTO, Messenger>;
8
11
  /**
9
12
  * @deprecated Do not use.
10
13
  */
@@ -14,32 +14,42 @@ export function mapChainDetailsResponseToChainDetailsMap(response) {
14
14
  }
15
15
  /**
16
16
  * @deprecated Do not use.
17
+ * The current Core API does not serve pool data, so the result is empty for it.
17
18
  */
18
19
  export function mapChainDetailsResponseToPoolInfoMap(response) {
19
20
  const poolInfoMap = {};
20
21
  for (const [chainSymbolValue, chainDetailsDTO] of Object.entries(response)) {
21
22
  const chainSymbol = chainSymbolValue;
22
23
  for (const token of chainDetailsDTO.tokens) {
23
- const poolKey = mapPoolKeyObjectToPoolKey({
24
- chainSymbol,
25
- poolAddress: token.poolAddress,
26
- });
27
- const imbalance = calculatePoolInfoImbalance(token.poolInfo);
28
- poolInfoMap[poolKey] = { ...token.poolInfo, imbalance };
24
+ const { poolAddress, poolInfo } = token;
25
+ if (!poolAddress || !poolInfo) {
26
+ continue;
27
+ }
28
+ const poolKey = mapPoolKeyObjectToPoolKey({ chainSymbol, poolAddress });
29
+ const imbalance = calculatePoolInfoImbalance(poolInfo);
30
+ poolInfoMap[poolKey] = { ...poolInfo, imbalance };
29
31
  }
30
32
  }
31
33
  return poolInfoMap;
32
34
  }
35
+ /**
36
+ * Flags assumed for tokens served without them: the current Core API returns every token as a token to send
37
+ * and has no liquidity pools.
38
+ */
39
+ const DEFAULT_TOKEN_FLAGS = { swap: true, pool: false };
33
40
  function mapTokenWithChainDetailsFromDto(chainDetails, dto) {
34
41
  const { name: chainName, ...chainDetailsWithoutName } = chainDetails;
35
- const { poolInfo: _poolInfo, ...dtoWithoutPoolInfo } = dto;
42
+ const { poolInfo: _poolInfo, flags, ...dtoWithoutPoolInfo } = dto;
43
+ // The deprecated pool-era token fields (poolAddress, feeShare, apr, lpRate, ...) are kept on the public type
44
+ // for backward compatibility but are undefined when served by the current Core API.
36
45
  return {
37
46
  ...dtoWithoutPoolInfo,
38
47
  ...chainDetailsWithoutName,
39
48
  chainName,
49
+ flags: flags ?? { ...DEFAULT_TOKEN_FLAGS },
40
50
  };
41
51
  }
42
- function mapMessengerKeyDtoToMessenger(dto) {
52
+ export function mapMessengerKeyDtoToMessenger(dto) {
43
53
  switch (dto) {
44
54
  case MessengerKeyDTO.ALLBRIDGE:
45
55
  return Messenger.ALLBRIDGE;
@@ -53,6 +63,8 @@ function mapMessengerKeyDtoToMessenger(dto) {
53
63
  return Messenger.OFT;
54
64
  case MessengerKeyDTO.X_RESERVE:
55
65
  return Messenger.X_RESERVE;
66
+ case MessengerKeyDTO.NEAR_INTENTS:
67
+ return Messenger.NEAR_INTENTS;
56
68
  }
57
69
  }
58
70
  function mapTransferTimeFromDto(dto) {
@@ -75,6 +87,8 @@ function mapChainDetailsFromDto(chainSymbol, dto) {
75
87
  if (!basicChainProperties) {
76
88
  return null;
77
89
  }
90
+ // bridgeAddress is deprecated and undefined when served by the current Core API; the public type keeps it
91
+ // for backward compatibility.
78
92
  const chainDetails = {
79
93
  ...basicChainProperties,
80
94
  allbridgeChainId: dto.chainId,
@@ -118,8 +132,9 @@ function mapAbrPayerAvailabilityFromDto(dto) {
118
132
  }
119
133
  return out;
120
134
  }
121
- // Build mapping from dto key ("allbridge") to Messenger enum value (1..5)
122
- const dtoKeyToMessenger = Object.fromEntries(Object.entries(MessengerKeyDTO).map(([enumKey, dtoKey]) => {
135
+ // Build mapping from dto key ("allbridge") to Messenger enum value (1..7).
136
+ // Pairs the enums by key name: every MessengerKeyDTO key must exist in Messenger with the same spelling.
137
+ export const dtoKeyToMessenger = Object.fromEntries(Object.entries(MessengerKeyDTO).map(([enumKey, dtoKey]) => {
123
138
  // enumKey: "ALLBRIDGE"
124
139
  // dtoKey: "allbridge"
125
140
  return [dtoKey, Messenger[enumKey]];
@@ -1 +1 @@
1
- {"version":3,"file":"core-api-mapper.js","sourceRoot":"","sources":["../../../../src/client/core-api/core-api-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import { Chains } from \"../../chains\";\nimport { ChainSymbol } from \"../../chains/chain.enums\";\nimport {\n AbrPayerAvailability,\n ChainDetails,\n ChainDetailsMap,\n ChainDetailsMapWithFlags,\n ChainDetailsWithTokensWithFlags,\n MessengerTransferTime,\n PoolInfoMap,\n PoolKeyObject,\n TokenWithChainDetailsWithFlags,\n TransferTime,\n} from \"../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../utils/calculation\";\nimport {\n AbrPayerAvailabilityKeyDTO,\n AbrPayerAvailabilityTypeDTO,\n ChainDetailsDTO,\n ChainDetailsResponse,\n Messenger,\n MessengerKeyDTO,\n MessengerTransferTimeDTO,\n PoolInfoResponse,\n TokenDTO,\n TransferTimeDTO,\n} from \"./core-api.model\";\n\nexport function mapChainDetailsResponseToChainDetailsMap(response: ChainDetailsResponse): ChainDetailsMapWithFlags {\n return Object.entries(response).reduce<ChainDetailsMapWithFlags>((map, entry) => {\n const chainSymbol = entry[0];\n const chainDetailsDTO = entry[1];\n const chainDetails = mapChainDetailsFromDto(chainSymbol, chainDetailsDTO);\n if (chainDetails) {\n map[chainSymbol] = chainDetails;\n }\n return map;\n }, {});\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function mapChainDetailsResponseToPoolInfoMap(response: ChainDetailsResponse): PoolInfoMap {\n const poolInfoMap: PoolInfoMap = {};\n for (const [chainSymbolValue, chainDetailsDTO] of Object.entries(response)) {\n const chainSymbol = chainSymbolValue;\n for (const token of chainDetailsDTO.tokens) {\n const poolKey = mapPoolKeyObjectToPoolKey({\n chainSymbol,\n poolAddress: token.poolAddress,\n });\n const imbalance = calculatePoolInfoImbalance(token.poolInfo);\n poolInfoMap[poolKey] = { ...token.poolInfo, imbalance };\n }\n }\n return poolInfoMap;\n}\n\nfunction mapTokenWithChainDetailsFromDto(chainDetails: ChainDetails, dto: TokenDTO): TokenWithChainDetailsWithFlags {\n const { name: chainName, ...chainDetailsWithoutName } = chainDetails;\n const { poolInfo: _poolInfo, ...dtoWithoutPoolInfo } = dto;\n return {\n ...dtoWithoutPoolInfo,\n ...chainDetailsWithoutName,\n chainName,\n };\n}\n\nfunction mapMessengerKeyDtoToMessenger(dto: MessengerKeyDTO): Messenger | null {\n switch (dto) {\n case MessengerKeyDTO.ALLBRIDGE:\n return Messenger.ALLBRIDGE;\n case MessengerKeyDTO.WORMHOLE:\n return Messenger.WORMHOLE;\n case MessengerKeyDTO.CCTP:\n return Messenger.CCTP;\n case MessengerKeyDTO.CCTP_V2:\n return Messenger.CCTP_V2;\n case MessengerKeyDTO.OFT:\n return Messenger.OFT;\n case MessengerKeyDTO.X_RESERVE:\n return Messenger.X_RESERVE;\n }\n}\n\nfunction mapTransferTimeFromDto(dto: TransferTimeDTO): TransferTime {\n return Object.entries(dto).reduce<TransferTime>((result, [key, value]) => {\n result[key as ChainSymbol] = mapMessengerTransferTimeFromDto(value);\n return result;\n }, {});\n}\n\nfunction mapMessengerTransferTimeFromDto(dto: MessengerTransferTimeDTO): MessengerTransferTime {\n return Object.entries(dto).reduce<MessengerTransferTime>((messengerTransferTime, [key, value]) => {\n const messenger = mapMessengerKeyDtoToMessenger(key as MessengerKeyDTO);\n if (messenger && value != null) {\n messengerTransferTime[messenger] = value;\n }\n return messengerTransferTime;\n }, {});\n}\n\nfunction mapChainDetailsFromDto(chainSymbol: string, dto: ChainDetailsDTO): ChainDetailsWithTokensWithFlags | null {\n const basicChainProperties = Chains.getChainsProperties()[chainSymbol];\n if (!basicChainProperties) {\n return null;\n }\n const chainDetails: ChainDetails = {\n ...basicChainProperties,\n allbridgeChainId: dto.chainId,\n bridgeId: dto.bridgeId,\n paddingUtilId: dto.paddingUtilId,\n bridgeAddress: dto.bridgeAddress,\n oftBridgeAddress: dto.oftBridgeAddress,\n yieldAddress: dto.yieldAddress,\n abrPayer: dto.abrPayer\n ? {\n payerAddress: dto.abrPayer.payerAddress,\n abrToken: {\n chainSymbol: chainSymbol as ChainSymbol,\n tokenAddress: dto.abrPayer.tokenAddress,\n decimals: dto.abrPayer.tokenDecimals,\n },\n payerAvailability: mapAbrPayerAvailabilityFromDto(dto.abrPayer.payerAvailability),\n }\n : undefined,\n transferTime: mapTransferTimeFromDto(dto.transferTime),\n txCostAmount: dto.txCostAmount,\n confirmations: dto.confirmations,\n suiAddresses: dto.suiAddresses,\n };\n return {\n ...chainDetails,\n tokens: dto.tokens.map((tokenDto) => mapTokenWithChainDetailsFromDto(chainDetails, tokenDto)),\n };\n}\n\nfunction mapAbrPayerAvailabilityFromDto(dto: AbrPayerAvailabilityTypeDTO): AbrPayerAvailability {\n if (!dto) return {};\n const out: AbrPayerAvailability = {};\n\n for (const [dtoKey, isAvailable] of Object.entries(dto) as [AbrPayerAvailabilityKeyDTO, boolean][]) {\n if (!isAvailable) continue;\n\n const messengerEnumValue = dtoKeyToMessenger[dtoKey];\n if (!messengerEnumValue) continue;\n\n out[messengerEnumValue] = true;\n }\n\n return out;\n}\n\n// Build mapping from dto key (\"allbridge\") to Messenger enum value (1..5)\nconst dtoKeyToMessenger: Record<AbrPayerAvailabilityKeyDTO, Messenger> = Object.fromEntries(\n Object.entries(MessengerKeyDTO).map(([enumKey, dtoKey]) => {\n // enumKey: \"ALLBRIDGE\"\n // dtoKey: \"allbridge\"\n return [dtoKey, Messenger[enumKey as keyof typeof Messenger]];\n })\n) as Record<AbrPayerAvailabilityKeyDTO, Messenger>;\n\n/**\n * @deprecated Do not use.\n */\nexport function mapPoolKeyToPoolKeyObject(poolKey: string): PoolKeyObject {\n const dividerPosition = poolKey.indexOf(\"_\");\n return {\n chainSymbol: poolKey.substring(0, dividerPosition),\n poolAddress: poolKey.substring(dividerPosition + 1),\n };\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function mapPoolKeyObjectToPoolKey(poolKeyObject: PoolKeyObject): string {\n return poolKeyObject.chainSymbol + \"_\" + poolKeyObject.poolAddress;\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function mapChainDetailsMapToPoolKeyObjects(chainDetailsMap: ChainDetailsMap): PoolKeyObject[] {\n const result = [];\n for (const [chainSymbolValue, chainDetails] of Object.entries(chainDetailsMap)) {\n const chainSymbol = chainSymbolValue;\n for (const token of chainDetails.tokens) {\n result.push({\n chainSymbol,\n poolAddress: token.poolAddress,\n });\n }\n }\n return result;\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function mapPoolInfoResponseToPoolInfoMap(responseBody: PoolInfoResponse): PoolInfoMap {\n const poolInfoMap: PoolInfoMap = {};\n for (const [chainSymbolValue, poolInfoByAddress] of Object.entries(responseBody)) {\n const chainSymbol = chainSymbolValue;\n for (const [poolAddress, poolInfo] of Object.entries(poolInfoByAddress)) {\n poolInfo.imbalance = calculatePoolInfoImbalance(poolInfo);\n poolInfoMap[mapPoolKeyObjectToPoolKey({ chainSymbol, poolAddress })] = poolInfo;\n }\n }\n return poolInfoMap;\n}\n"]}
1
+ {"version":3,"file":"core-api-mapper.js","sourceRoot":"","sources":["../../../../src/client/core-api/core-api-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import { Chains } from \"../../chains\";\nimport { ChainSymbol } from \"../../chains/chain.enums\";\nimport {\n AbrPayerAvailability,\n ChainDetails,\n ChainDetailsMap,\n ChainDetailsMapWithFlags,\n ChainDetailsWithTokensWithFlags,\n MessengerTransferTime,\n PoolInfoMap,\n PoolKeyObject,\n TokenWithChainDetailsWithFlags,\n TransferTime,\n} from \"../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../utils/calculation\";\nimport {\n AbrPayerAvailabilityKeyDTO,\n AbrPayerAvailabilityTypeDTO,\n ChainDetailsDTO,\n ChainDetailsResponse,\n Messenger,\n MessengerKeyDTO,\n MessengerTransferTimeDTO,\n PoolInfoResponse,\n TokenDTO,\n TransferTimeDTO,\n} from \"./core-api.model\";\n\nexport function mapChainDetailsResponseToChainDetailsMap(response: ChainDetailsResponse): ChainDetailsMapWithFlags {\n return Object.entries(response).reduce<ChainDetailsMapWithFlags>((map, entry) => {\n const chainSymbol = entry[0];\n const chainDetailsDTO = entry[1];\n const chainDetails = mapChainDetailsFromDto(chainSymbol, chainDetailsDTO);\n if (chainDetails) {\n map[chainSymbol] = chainDetails;\n }\n return map;\n }, {});\n}\n\n/**\n * @deprecated Do not use.\n * The current Core API does not serve pool data, so the result is empty for it.\n */\nexport function mapChainDetailsResponseToPoolInfoMap(response: ChainDetailsResponse): PoolInfoMap {\n const poolInfoMap: PoolInfoMap = {};\n for (const [chainSymbolValue, chainDetailsDTO] of Object.entries(response)) {\n const chainSymbol = chainSymbolValue;\n for (const token of chainDetailsDTO.tokens) {\n const { poolAddress, poolInfo } = token;\n if (!poolAddress || !poolInfo) {\n continue;\n }\n const poolKey = mapPoolKeyObjectToPoolKey({ chainSymbol, poolAddress });\n const imbalance = calculatePoolInfoImbalance(poolInfo);\n poolInfoMap[poolKey] = { ...poolInfo, imbalance };\n }\n }\n return poolInfoMap;\n}\n\n/**\n * Flags assumed for tokens served without them: the current Core API returns every token as a token to send\n * and has no liquidity pools.\n */\nconst DEFAULT_TOKEN_FLAGS: TokenWithChainDetailsWithFlags[\"flags\"] = { swap: true, pool: false };\n\nfunction mapTokenWithChainDetailsFromDto(chainDetails: ChainDetails, dto: TokenDTO): TokenWithChainDetailsWithFlags {\n const { name: chainName, ...chainDetailsWithoutName } = chainDetails;\n const { poolInfo: _poolInfo, flags, ...dtoWithoutPoolInfo } = dto;\n // The deprecated pool-era token fields (poolAddress, feeShare, apr, lpRate, ...) are kept on the public type\n // for backward compatibility but are undefined when served by the current Core API.\n return {\n ...dtoWithoutPoolInfo,\n ...chainDetailsWithoutName,\n chainName,\n flags: flags ?? { ...DEFAULT_TOKEN_FLAGS },\n } as TokenWithChainDetailsWithFlags;\n}\n\nexport function mapMessengerKeyDtoToMessenger(dto: MessengerKeyDTO): Messenger | null {\n switch (dto) {\n case MessengerKeyDTO.ALLBRIDGE:\n return Messenger.ALLBRIDGE;\n case MessengerKeyDTO.WORMHOLE:\n return Messenger.WORMHOLE;\n case MessengerKeyDTO.CCTP:\n return Messenger.CCTP;\n case MessengerKeyDTO.CCTP_V2:\n return Messenger.CCTP_V2;\n case MessengerKeyDTO.OFT:\n return Messenger.OFT;\n case MessengerKeyDTO.X_RESERVE:\n return Messenger.X_RESERVE;\n case MessengerKeyDTO.NEAR_INTENTS:\n return Messenger.NEAR_INTENTS;\n }\n}\n\nfunction mapTransferTimeFromDto(dto: TransferTimeDTO): TransferTime {\n return Object.entries(dto).reduce<TransferTime>((result, [key, value]) => {\n result[key as ChainSymbol] = mapMessengerTransferTimeFromDto(value);\n return result;\n }, {});\n}\n\nfunction mapMessengerTransferTimeFromDto(dto: MessengerTransferTimeDTO): MessengerTransferTime {\n return Object.entries(dto).reduce<MessengerTransferTime>((messengerTransferTime, [key, value]) => {\n const messenger = mapMessengerKeyDtoToMessenger(key as MessengerKeyDTO);\n if (messenger && value != null) {\n messengerTransferTime[messenger] = value;\n }\n return messengerTransferTime;\n }, {});\n}\n\nfunction mapChainDetailsFromDto(chainSymbol: string, dto: ChainDetailsDTO): ChainDetailsWithTokensWithFlags | null {\n const basicChainProperties = Chains.getChainsProperties()[chainSymbol];\n if (!basicChainProperties) {\n return null;\n }\n // bridgeAddress is deprecated and undefined when served by the current Core API; the public type keeps it\n // for backward compatibility.\n const chainDetails = {\n ...basicChainProperties,\n allbridgeChainId: dto.chainId,\n bridgeId: dto.bridgeId,\n paddingUtilId: dto.paddingUtilId,\n bridgeAddress: dto.bridgeAddress,\n oftBridgeAddress: dto.oftBridgeAddress,\n yieldAddress: dto.yieldAddress,\n abrPayer: dto.abrPayer\n ? {\n payerAddress: dto.abrPayer.payerAddress,\n abrToken: {\n chainSymbol: chainSymbol as ChainSymbol,\n tokenAddress: dto.abrPayer.tokenAddress,\n decimals: dto.abrPayer.tokenDecimals,\n },\n payerAvailability: mapAbrPayerAvailabilityFromDto(dto.abrPayer.payerAvailability),\n }\n : undefined,\n transferTime: mapTransferTimeFromDto(dto.transferTime),\n txCostAmount: dto.txCostAmount,\n confirmations: dto.confirmations,\n suiAddresses: dto.suiAddresses,\n } as ChainDetails;\n return {\n ...chainDetails,\n tokens: dto.tokens.map((tokenDto) => mapTokenWithChainDetailsFromDto(chainDetails, tokenDto)),\n };\n}\n\nfunction mapAbrPayerAvailabilityFromDto(dto: AbrPayerAvailabilityTypeDTO): AbrPayerAvailability {\n if (!dto) return {};\n const out: AbrPayerAvailability = {};\n\n for (const [dtoKey, isAvailable] of Object.entries(dto) as [AbrPayerAvailabilityKeyDTO, boolean][]) {\n if (!isAvailable) continue;\n\n const messengerEnumValue = dtoKeyToMessenger[dtoKey];\n if (!messengerEnumValue) continue;\n\n out[messengerEnumValue] = true;\n }\n\n return out;\n}\n\n// Build mapping from dto key (\"allbridge\") to Messenger enum value (1..7).\n// Pairs the enums by key name: every MessengerKeyDTO key must exist in Messenger with the same spelling.\nexport const dtoKeyToMessenger: Record<AbrPayerAvailabilityKeyDTO, Messenger> = Object.fromEntries(\n Object.entries(MessengerKeyDTO).map(([enumKey, dtoKey]) => {\n // enumKey: \"ALLBRIDGE\"\n // dtoKey: \"allbridge\"\n return [dtoKey, Messenger[enumKey as keyof typeof Messenger]];\n })\n) as Record<AbrPayerAvailabilityKeyDTO, Messenger>;\n\n/**\n * @deprecated Do not use.\n */\nexport function mapPoolKeyToPoolKeyObject(poolKey: string): PoolKeyObject {\n const dividerPosition = poolKey.indexOf(\"_\");\n return {\n chainSymbol: poolKey.substring(0, dividerPosition),\n poolAddress: poolKey.substring(dividerPosition + 1),\n };\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function mapPoolKeyObjectToPoolKey(poolKeyObject: PoolKeyObject): string {\n return poolKeyObject.chainSymbol + \"_\" + poolKeyObject.poolAddress;\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function mapChainDetailsMapToPoolKeyObjects(chainDetailsMap: ChainDetailsMap): PoolKeyObject[] {\n const result = [];\n for (const [chainSymbolValue, chainDetails] of Object.entries(chainDetailsMap)) {\n const chainSymbol = chainSymbolValue;\n for (const token of chainDetails.tokens) {\n result.push({\n chainSymbol,\n poolAddress: token.poolAddress,\n });\n }\n }\n return result;\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function mapPoolInfoResponseToPoolInfoMap(responseBody: PoolInfoResponse): PoolInfoMap {\n const poolInfoMap: PoolInfoMap = {};\n for (const [chainSymbolValue, poolInfoByAddress] of Object.entries(responseBody)) {\n const chainSymbol = chainSymbolValue;\n for (const [poolAddress, poolInfo] of Object.entries(poolInfoByAddress)) {\n poolInfo.imbalance = calculatePoolInfoImbalance(poolInfo);\n poolInfoMap[mapPoolKeyObjectToPoolKey({ chainSymbol, poolAddress })] = poolInfo;\n }\n }\n return poolInfoMap;\n}\n"]}