@mento-protocol/mento-sdk 3.0.0-beta.5 → 3.0.0-beta.7

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 (99) hide show
  1. package/README.md +34 -0
  2. package/dist/cache/routes.d.ts.map +1 -1
  3. package/dist/cache/routes.js +5 -3
  4. package/dist/cache/routes.js.map +1 -1
  5. package/dist/core/abis/erc20.d.ts +7 -0
  6. package/dist/core/abis/erc20.d.ts.map +1 -1
  7. package/dist/core/abis/erc20.js +7 -0
  8. package/dist/core/abis/erc20.js.map +1 -1
  9. package/dist/core/abis/fpmm.d.ts +38 -0
  10. package/dist/core/abis/fpmm.d.ts.map +1 -1
  11. package/dist/core/abis/fpmm.js +1 -0
  12. package/dist/core/abis/fpmm.js.map +1 -1
  13. package/dist/core/constants/aaveConfig.js +2 -2
  14. package/dist/core/constants/addresses.d.ts.map +1 -1
  15. package/dist/core/constants/addresses.js +3 -1
  16. package/dist/core/constants/addresses.js.map +1 -1
  17. package/dist/core/types/index.d.ts +2 -1
  18. package/dist/core/types/index.d.ts.map +1 -1
  19. package/dist/core/types/index.js +2 -1
  20. package/dist/core/types/index.js.map +1 -1
  21. package/dist/core/types/pool.d.ts +4 -0
  22. package/dist/core/types/pool.d.ts.map +1 -1
  23. package/dist/core/types/provider.d.ts.map +1 -1
  24. package/dist/core/types/provider.js +0 -1
  25. package/dist/core/types/provider.js.map +1 -1
  26. package/dist/core/types/route.d.ts +3 -3
  27. package/dist/core/types/route.d.ts.map +1 -1
  28. package/dist/core/types/token.d.ts +13 -3
  29. package/dist/core/types/token.d.ts.map +1 -1
  30. package/dist/core/types/tradingLimits.d.ts +91 -0
  31. package/dist/core/types/tradingLimits.d.ts.map +1 -0
  32. package/dist/core/types/tradingLimits.js +3 -0
  33. package/dist/core/types/tradingLimits.js.map +1 -0
  34. package/dist/core/types/transaction.d.ts +45 -0
  35. package/dist/core/types/transaction.d.ts.map +1 -0
  36. package/dist/core/types/transaction.js +3 -0
  37. package/dist/core/types/transaction.js.map +1 -0
  38. package/dist/index.d.ts +10 -4
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +10 -4
  41. package/dist/index.js.map +1 -1
  42. package/dist/services/pools/PoolService.d.ts +1 -1
  43. package/dist/services/pools/PoolService.d.ts.map +1 -1
  44. package/dist/services/pools/PoolService.js +20 -12
  45. package/dist/services/pools/PoolService.js.map +1 -1
  46. package/dist/services/quotes/QuoteService.d.ts +21 -12
  47. package/dist/services/quotes/QuoteService.d.ts.map +1 -1
  48. package/dist/services/quotes/QuoteService.js +23 -11
  49. package/dist/services/quotes/QuoteService.js.map +1 -1
  50. package/dist/services/routes/RouteService.d.ts +3 -3
  51. package/dist/services/routes/RouteService.d.ts.map +1 -1
  52. package/dist/services/routes/RouteService.js +3 -5
  53. package/dist/services/routes/RouteService.js.map +1 -1
  54. package/dist/services/swap/SwapService.d.ts +18 -14
  55. package/dist/services/swap/SwapService.d.ts.map +1 -1
  56. package/dist/services/swap/SwapService.js +31 -14
  57. package/dist/services/swap/SwapService.js.map +1 -1
  58. package/dist/services/tokens/supplyAdjustmentService.d.ts +0 -4
  59. package/dist/services/tokens/supplyAdjustmentService.d.ts.map +1 -1
  60. package/dist/services/tokens/supplyAdjustmentService.js +3 -8
  61. package/dist/services/tokens/supplyAdjustmentService.js.map +1 -1
  62. package/dist/services/tokens/tokenService.d.ts.map +1 -1
  63. package/dist/services/tokens/tokenService.js +2 -2
  64. package/dist/services/tokens/tokenService.js.map +1 -1
  65. package/dist/services/trading/TradingLimitsService.d.ts +38 -0
  66. package/dist/services/trading/TradingLimitsService.d.ts.map +1 -0
  67. package/dist/services/trading/TradingLimitsService.js +157 -0
  68. package/dist/services/trading/TradingLimitsService.js.map +1 -0
  69. package/dist/services/trading/TradingService.d.ts +39 -5
  70. package/dist/services/trading/TradingService.d.ts.map +1 -1
  71. package/dist/services/trading/TradingService.js +56 -4
  72. package/dist/services/trading/TradingService.js.map +1 -1
  73. package/dist/services/trading/index.d.ts +1 -0
  74. package/dist/services/trading/index.d.ts.map +1 -1
  75. package/dist/services/trading/index.js +1 -0
  76. package/dist/services/trading/index.js.map +1 -1
  77. package/dist/utils/costUtils.js +4 -4
  78. package/dist/utils/costUtils.js.map +1 -1
  79. package/dist/utils/index.d.ts +1 -0
  80. package/dist/utils/index.d.ts.map +1 -1
  81. package/dist/utils/index.js +1 -0
  82. package/dist/utils/index.js.map +1 -1
  83. package/dist/utils/pathEncoder.d.ts +3 -2
  84. package/dist/utils/pathEncoder.d.ts.map +1 -1
  85. package/dist/utils/pathEncoder.js +19 -3
  86. package/dist/utils/pathEncoder.js.map +1 -1
  87. package/dist/utils/routeUtils.d.ts +53 -53
  88. package/dist/utils/routeUtils.d.ts.map +1 -1
  89. package/dist/utils/routeUtils.js +41 -41
  90. package/dist/utils/routeUtils.js.map +1 -1
  91. package/dist/utils/tradingLimits.d.ts +41 -0
  92. package/dist/utils/tradingLimits.d.ts.map +1 -0
  93. package/dist/utils/tradingLimits.js +171 -0
  94. package/dist/utils/tradingLimits.js.map +1 -0
  95. package/dist/utils/validation.d.ts +19 -0
  96. package/dist/utils/validation.d.ts.map +1 -0
  97. package/dist/utils/validation.js +34 -0
  98. package/dist/utils/validation.js.map +1 -0
  99. package/package.json +1 -1
@@ -27,15 +27,15 @@ type Address = string;
27
27
  *
28
28
  * CONCRETE EXAMPLE:
29
29
  * Given these direct trading pairs:
30
- * - cUSD ↔ CELO (direct exchange exists)
31
- * - CELO ↔ cEUR (direct exchange exists)
32
- * - cUSDcREAL (direct exchange exists)
30
+ * - USDm ↔ CELO (direct exchange exists)
31
+ * - CELO ↔ EURm (direct exchange exists)
32
+ * - USDmBRLm (direct exchange exists)
33
33
  *
34
34
  * How route finding works:
35
- * - Direct route: cUSDcEUR? Check token graph: cUSD connects to [CELO, cREAL], none is cEUR → No direct route
36
- * - Two-hop route: cUSD → ? → cEUR?
37
- * - cUSD connects to CELO, CELO connects to cEUR → Found route: cUSD → CELO → cEUR
38
- * - cUSD connects to cREAL, cREAL connects to [cUSD] → No route via cREAL
35
+ * - Direct route: USDmEURm? Check token graph: USDm connects to [CELO, BRLm], none is EURm → No direct route
36
+ * - Two-hop route: USDm → ? → EURm?
37
+ * - USDm connects to CELO, CELO connects to EURm → Found route: USDm → CELO → EURm
38
+ * - USDm connects to BRLm, BRLm connects to [USDm] → No route via BRLm
39
39
  *
40
40
  * The "connectivity" part means we can quickly traverse the network of
41
41
  * token connections to find all possible trading paths.
@@ -44,31 +44,31 @@ export interface ConnectivityData {
44
44
  /** Maps token address to symbol for efficient lookups
45
45
  *
46
46
  * ```
47
- * '0x765D...' → 'cUSD'
47
+ * '0x765D...' → 'USDm'
48
48
  * '0x471E...' → 'CELO'
49
- * '0xD876...' → 'cEUR'
49
+ * '0xD876...' → 'EURm'
50
50
  * ```
51
51
  */
52
52
  addrToSymbol: Map<Address, TokenSymbol>;
53
53
  /** Adjacency list mapping which tokens connect to which
54
54
  * Used for finding two-hop routes by traversing token → neighbor → neighbor.
55
55
  *
56
- * Example for a cUSD => cEUR swap: First we find cUSD → [CELO, cKES, ...]
57
- * Then we find CELO → [cUSD, cEUR, ...] = found route via cUSD → CELO → cEUR
56
+ * Example for a USDm => EURm swap: First we find USDm → [CELO, KESm, ...]
57
+ * Then we find CELO → [USDm, EURm, ...] = found route via USDm → CELO → EURm
58
58
  *
59
59
  * ```
60
- * 'cUSD_addr' → Set(['CELO_addr', 'cKES_addr']) // cUSD connects to CELO and cKES
61
- * 'CELO_addr' → Set(['cUSD_addr', 'cEUR_addr']) // CELO connects to cUSD and cEUR
62
- * 'cEUR_addr' → Set(['CELO_addr']) // cEUR connects to CELO
63
- * 'cKES_addr' → Set(['cUSD_addr']) // cKES connects to cUSD
60
+ * 'USDm_addr' → Set(['CELO_addr', 'KESm_addr']) // USDm connects to CELO and KESm
61
+ * 'CELO_addr' → Set(['USDm_addr', 'EURm_addr']) // CELO connects to USDm and EURm
62
+ * 'EURm_addr' → Set(['CELO_addr']) // EURm connects to CELO
63
+ * 'KESm_addr' → Set(['USDm_addr']) // KESm connects to USDm
64
64
  * ```
65
65
  */
66
66
  tokenGraph: Map<Address, Set<Address>>;
67
67
  /** Maps sorted token address pairs to their direct route details
68
68
  * ```
69
- * 'CELO_addr-cEUR_addr' → { route details for CELO ↔ cEUR }
70
- * 'CELO_addr-cUSD_addr' → { route details for CELO ↔ cUSD }
71
- * 'cUSD_addr-cKES_addr' → { route details for cUSDcKES }
69
+ * 'CELO_addr-EURm_addr' → { route details for CELO ↔ EURm }
70
+ * 'CELO_addr-USDm_addr' → { route details for CELO ↔ USDm }
71
+ * 'USDm_addr-KESm_addr' → { route details for USDmKESm }
72
72
  * ```
73
73
  */
74
74
  directRouteMap: Map<RouteID, Pool>;
@@ -85,23 +85,23 @@ export interface ConnectivityData {
85
85
  *
86
86
  * ```
87
87
  * Input: TradablePairs = [
88
- * { id: 'cUSD-CELO', assets: [cUSD, CELO], path: [exchange1_CELO_cUSD] },
89
- * { id: 'CELO-cEUR', assets: [CELO, cEUR], path: [exchange2_CELO_cEUR] }
88
+ * { id: 'USDm-CELO', assets: [USDm, CELO], path: [exchange1_CELO_USDm] },
89
+ * { id: 'CELO-EURm', assets: [CELO, EURm], path: [exchange2_CELO_EURm] }
90
90
  * ]
91
91
  *
92
92
  * Step 1 - Build addrToSymbol map:
93
- * cUSD.address → 'cUSD'
93
+ * USDm.address → 'USDm'
94
94
  * CELO.address → 'CELO'
95
- * cEUR.address → 'cEUR'
95
+ * EURm.address → 'EURm'
96
96
  *
97
97
  * Step 2 - Build directPathMap (sorted alphabetically for consistency):
98
- * 'CELO_addr-cEUR_addr' → exchange2_CELO_cEUR
99
- * 'CELO_addr-cUSD_addr' → exchange1_CELO_cUSD
98
+ * 'CELO_addr-EURm_addr' → exchange2_CELO_EURm
99
+ * 'CELO_addr-USDm_addr' → exchange1_CELO_USDm
100
100
  *
101
101
  * Step 3 - Build bidirectional tokenGraph:
102
- * cUSD.address → Set([CELO.address])
103
- * CELO.address → Set([cUSD.address, cEUR.address])
104
- * cEUR.address → Set([CELO.address])
102
+ * USDm.address → Set([CELO.address])
103
+ * CELO.address → Set([USDm.address, EURm.address])
104
+ * EURm.address → Set([CELO.address])
105
105
  * ```
106
106
  *
107
107
  * **Result**: We can now efficiently answer:
@@ -115,17 +115,17 @@ export interface ConnectivityData {
115
115
  * @example
116
116
  * ```typescript
117
117
  * const directPairs = [
118
- * { id: 'cUSD-CELO', assets: [cUSD, CELO], path: [exchange1] },
119
- * { id: 'CELO-cEUR', assets: [CELO, cEUR], path: [exchange2] }
118
+ * { id: 'USDm-CELO', assets: [USDm, CELO], path: [exchange1] },
119
+ * { id: 'CELO-EURm', assets: [CELO, EURm], path: [exchange2] }
120
120
  * ]
121
121
  *
122
122
  * const connectivityData = buildConnectivityStructures(directPairs)
123
123
  *
124
124
  * // Now we can efficiently find routes:
125
- * // 1. Check if cUSD connects to anything: connectivityData.tokenGraph.get(cUSD.address) → [CELO.address]
126
- * // 2. Check if CELO connects to cEUR: connectivityData.tokenGraph.get(CELO.address) → [cUSD.address, cEUR.address] ✓
127
- * // 3. Get exchange details: connectivityData.directPathMap.get('CELO_addr-cEUR_addr') → exchange2_CELO_cEUR
128
- * // Result: Found route cUSD → CELO → cEUR with exchange details
125
+ * // 1. Check if USDm connects to anything: connectivityData.tokenGraph.get(USDm.address) → [CELO.address]
126
+ * // 2. Check if CELO connects to EURm: connectivityData.tokenGraph.get(CELO.address) → [USDm.address, EURm.address] ✓
127
+ * // 3. Get exchange details: connectivityData.directPathMap.get('CELO_addr-EURm_addr') → exchange2_CELO_EURm
128
+ * // Result: Found route USDm → CELO → EURm with exchange details
129
129
  * ```
130
130
  */
131
131
  export declare function buildConnectivityStructures(directRoutes: Route[]): ConnectivityData;
@@ -145,21 +145,21 @@ export declare function buildConnectivityStructures(directRoutes: Route[]): Conn
145
145
  * the best one based on cost data or heuristics.
146
146
  *
147
147
  * **Canonical Route IDs**: All routes use alphabetically sorted symbols
148
- * (e.g., 'cEUR-cUSD' not 'cUSD-cEUR') for consistent identification.
148
+ * (e.g., 'EURm-USDm' not 'USDm-EURm') for consistent identification.
149
149
  *
150
150
  * @param connectivityData - The connectivity data from buildConnectivityStructures()
151
151
  * @returns Map of route ID -> array of possible routes for that token pair
152
152
  *
153
153
  * @example
154
154
  * ```typescript
155
- * // Given direct routes: cUSD-CELO, CELO-cEUR, cUSD-USDC
155
+ * // Given direct routes: USDm-CELO, CELO-EURm, USDm-USDC
156
156
  * const allRoutes = generateAllRoutes(connectivityData)
157
157
  *
158
158
  * // Results might include:
159
- * // 'cUSD-CELO' -> [{ path: [cUSD->CELO] }] // direct route
160
- * // 'cEUR-cUSD' -> [
161
- * // { path: [cUSD->USDC, USDC->cEUR] } // two-hop via USDC
162
- * // { path: [cUSD->CELO, CELO->cEUR] } // two-hop via CELO
159
+ * // 'USDm-CELO' -> [{ path: [USDm->CELO] }] // direct route
160
+ * // 'EURm-USDm' -> [
161
+ * // { path: [USDm->USDC, USDC->EURm] } // two-hop via USDC
162
+ * // { path: [USDm->CELO, CELO->EURm] } // two-hop via CELO
163
163
  * // ]
164
164
  * ```
165
165
  */
@@ -187,22 +187,22 @@ export declare function generateAllRoutes(connectivityData: ConnectivityData): M
187
187
  *
188
188
  * @example
189
189
  * ```typescript
190
- * // Create route: cUSD -> CELO -> cEUR
190
+ * // Create route: USDm -> CELO -> EURm
191
191
  * const pair = createTwoHopPair(
192
- * '0x765D...', // cUSD address
192
+ * '0x765D...', // USDm address
193
193
  * '0x471E...', // CELO address
194
- * '0xD876...', // cEUR address
194
+ * '0xD876...', // EURm address
195
195
  * addrToSymbol,
196
196
  * directPathMap
197
197
  * )
198
198
  *
199
199
  * // Result:
200
200
  * // {
201
- * // id: 'cEUR-cUSD', // alphabetical order
202
- * // assets: [cEUR, cUSD], // alphabetical order
201
+ * // id: 'EURm-USDm', // alphabetical order
202
+ * // assets: [EURm, USDm], // alphabetical order
203
203
  * // path: [ // actual routing path
204
- * // { cUSD->CELO exchange },
205
- * // { CELO->cEUR exchange }
204
+ * // { USDm->CELO exchange },
205
+ * // { CELO->EURm exchange }
206
206
  * // ]
207
207
  * // }
208
208
  * ```
@@ -229,17 +229,17 @@ export declare function createTwoHopRoute(startAddr: Address, intermediateAddr:
229
229
  *
230
230
  * @example
231
231
  * ```typescript
232
- * // Multiple routes for cUSD-cEUR pair
232
+ * // Multiple routes for USDm-EURm pair
233
233
  * const candidates = new Map([
234
- * ['cEUR-cUSD', [
235
- * { path: [cUSD->CELO->cEUR], costData: { totalCostPercent: 0.5 } },
236
- * { path: [cUSD->cREAL->cEUR], costData: { totalCostPercent: 0.3 } },
237
- * { path: [cUSD->cEUR] } // direct route, no cost data
234
+ * ['EURm-USDm', [
235
+ * { path: [USDm->CELO->EURm], costData: { totalCostPercent: 0.5 } },
236
+ * { path: [USDm->BRLm->EURm], costData: { totalCostPercent: 0.3 } },
237
+ * { path: [USDm->EURm] } // direct route, no cost data
238
238
  * ]]
239
239
  * ])
240
240
  *
241
241
  * const optimal = selectOptimalRoutes(candidates, false, assetMap)
242
- * // Returns the cUSD->cREAL->cEUR route (lowest cost: 0.3%)
242
+ * // Returns the USDm->BRLm->EURm route (lowest cost: 0.3%)
243
243
  * ```
244
244
  */
245
245
  export declare function selectOptimalRoutes(allRoutes: Map<RouteID, Route[]>, returnAllRoutes: boolean, addrToSymbol: Map<Address, TokenSymbol>): (Route | RouteWithCost)[];
@@ -260,7 +260,7 @@ export declare function selectOptimalRoutes(allRoutes: Map<RouteID, Route[]>, re
260
260
  *
261
261
  * **Tier 3 - Major Stablecoin Preference** (Final Fallback):
262
262
  * - For two-hop routes, prefer those going through major stablecoins
263
- * - Major FX currencies like cUSD and cEUR typically have better liquidity
263
+ * - Major FX currencies like USDm and EURm typically have better liquidity
264
264
  *
265
265
  * **Tier 4 - First Available** (Last Resort):
266
266
  * - If no other heuristics apply, use the first route found
@@ -1 +1 @@
1
- {"version":3,"file":"routeUtils.d.ts","sourceRoot":"","sources":["../../src/utils/routeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAS,aAAa,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAI/E,KAAK,WAAW,GAAG,MAAM,CAAA;AACzB,KAAK,OAAO,GAAG,MAAM,CAAA;AAErB;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;OAOG;IACH,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAEvC;;;;;;;;;;;;OAYG;IACH,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IAEtC;;;;;;OAMG;IACH,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAElC,wEAAwE;IACxE,YAAY,EAAE,KAAK,EAAE,CAAA;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,gBAAgB,CA4BnF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAgD3F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,OAAO,EAClB,gBAAgB,EAAE,OAAO,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,EACvC,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GACjC,KAAK,GAAG,IAAI,CAgCd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAChC,eAAe,EAAE,OAAO,EACxB,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,GACtC,CAAC,KAAK,GAAG,aAAa,CAAC,EAAE,CAoB3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,KAAK,GAAG,aAAa,CAwBnH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAMtE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI,IAAI,aAAa,CAE9E"}
1
+ {"version":3,"file":"routeUtils.d.ts","sourceRoot":"","sources":["../../src/utils/routeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAc,aAAa,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAIpF,KAAK,WAAW,GAAG,MAAM,CAAA;AACzB,KAAK,OAAO,GAAG,MAAM,CAAA;AAErB;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;OAOG;IACH,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAEvC;;;;;;;;;;;;OAYG;IACH,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IAEtC;;;;;;OAMG;IACH,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAElC,wEAAwE;IACxE,YAAY,EAAE,KAAK,EAAE,CAAA;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,gBAAgB,CA4BnF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAgD3F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,OAAO,EAClB,gBAAgB,EAAE,OAAO,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,EACvC,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GACjC,KAAK,GAAG,IAAI,CAgCd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAChC,eAAe,EAAE,OAAO,EACxB,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,GACtC,CAAC,KAAK,GAAG,aAAa,CAAC,EAAE,CAoB3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,KAAK,GAAG,aAAa,CAwBnH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAMtE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI,IAAI,aAAa,CAE9E"}
@@ -18,23 +18,23 @@ const sortUtils_1 = require("./sortUtils");
18
18
  *
19
19
  * ```
20
20
  * Input: TradablePairs = [
21
- * { id: 'cUSD-CELO', assets: [cUSD, CELO], path: [exchange1_CELO_cUSD] },
22
- * { id: 'CELO-cEUR', assets: [CELO, cEUR], path: [exchange2_CELO_cEUR] }
21
+ * { id: 'USDm-CELO', assets: [USDm, CELO], path: [exchange1_CELO_USDm] },
22
+ * { id: 'CELO-EURm', assets: [CELO, EURm], path: [exchange2_CELO_EURm] }
23
23
  * ]
24
24
  *
25
25
  * Step 1 - Build addrToSymbol map:
26
- * cUSD.address → 'cUSD'
26
+ * USDm.address → 'USDm'
27
27
  * CELO.address → 'CELO'
28
- * cEUR.address → 'cEUR'
28
+ * EURm.address → 'EURm'
29
29
  *
30
30
  * Step 2 - Build directPathMap (sorted alphabetically for consistency):
31
- * 'CELO_addr-cEUR_addr' → exchange2_CELO_cEUR
32
- * 'CELO_addr-cUSD_addr' → exchange1_CELO_cUSD
31
+ * 'CELO_addr-EURm_addr' → exchange2_CELO_EURm
32
+ * 'CELO_addr-USDm_addr' → exchange1_CELO_USDm
33
33
  *
34
34
  * Step 3 - Build bidirectional tokenGraph:
35
- * cUSD.address → Set([CELO.address])
36
- * CELO.address → Set([cUSD.address, cEUR.address])
37
- * cEUR.address → Set([CELO.address])
35
+ * USDm.address → Set([CELO.address])
36
+ * CELO.address → Set([USDm.address, EURm.address])
37
+ * EURm.address → Set([CELO.address])
38
38
  * ```
39
39
  *
40
40
  * **Result**: We can now efficiently answer:
@@ -48,17 +48,17 @@ const sortUtils_1 = require("./sortUtils");
48
48
  * @example
49
49
  * ```typescript
50
50
  * const directPairs = [
51
- * { id: 'cUSD-CELO', assets: [cUSD, CELO], path: [exchange1] },
52
- * { id: 'CELO-cEUR', assets: [CELO, cEUR], path: [exchange2] }
51
+ * { id: 'USDm-CELO', assets: [USDm, CELO], path: [exchange1] },
52
+ * { id: 'CELO-EURm', assets: [CELO, EURm], path: [exchange2] }
53
53
  * ]
54
54
  *
55
55
  * const connectivityData = buildConnectivityStructures(directPairs)
56
56
  *
57
57
  * // Now we can efficiently find routes:
58
- * // 1. Check if cUSD connects to anything: connectivityData.tokenGraph.get(cUSD.address) → [CELO.address]
59
- * // 2. Check if CELO connects to cEUR: connectivityData.tokenGraph.get(CELO.address) → [cUSD.address, cEUR.address] ✓
60
- * // 3. Get exchange details: connectivityData.directPathMap.get('CELO_addr-cEUR_addr') → exchange2_CELO_cEUR
61
- * // Result: Found route cUSD → CELO → cEUR with exchange details
58
+ * // 1. Check if USDm connects to anything: connectivityData.tokenGraph.get(USDm.address) → [CELO.address]
59
+ * // 2. Check if CELO connects to EURm: connectivityData.tokenGraph.get(CELO.address) → [USDm.address, EURm.address] ✓
60
+ * // 3. Get exchange details: connectivityData.directPathMap.get('CELO_addr-EURm_addr') → exchange2_CELO_EURm
61
+ * // Result: Found route USDm → CELO → EURm with exchange details
62
62
  * ```
63
63
  */
64
64
  function buildConnectivityStructures(directRoutes) {
@@ -103,21 +103,21 @@ function buildConnectivityStructures(directRoutes) {
103
103
  * the best one based on cost data or heuristics.
104
104
  *
105
105
  * **Canonical Route IDs**: All routes use alphabetically sorted symbols
106
- * (e.g., 'cEUR-cUSD' not 'cUSD-cEUR') for consistent identification.
106
+ * (e.g., 'EURm-USDm' not 'USDm-EURm') for consistent identification.
107
107
  *
108
108
  * @param connectivityData - The connectivity data from buildConnectivityStructures()
109
109
  * @returns Map of route ID -> array of possible routes for that token pair
110
110
  *
111
111
  * @example
112
112
  * ```typescript
113
- * // Given direct routes: cUSD-CELO, CELO-cEUR, cUSD-USDC
113
+ * // Given direct routes: USDm-CELO, CELO-EURm, USDm-USDC
114
114
  * const allRoutes = generateAllRoutes(connectivityData)
115
115
  *
116
116
  * // Results might include:
117
- * // 'cUSD-CELO' -> [{ path: [cUSD->CELO] }] // direct route
118
- * // 'cEUR-cUSD' -> [
119
- * // { path: [cUSD->USDC, USDC->cEUR] } // two-hop via USDC
120
- * // { path: [cUSD->CELO, CELO->cEUR] } // two-hop via CELO
117
+ * // 'USDm-CELO' -> [{ path: [USDm->CELO] }] // direct route
118
+ * // 'EURm-USDm' -> [
119
+ * // { path: [USDm->USDC, USDC->EURm] } // two-hop via USDC
120
+ * // { path: [USDm->CELO, CELO->EURm] } // two-hop via CELO
121
121
  * // ]
122
122
  * ```
123
123
  */
@@ -133,23 +133,23 @@ function generateAllRoutes(connectivityData) {
133
133
  }
134
134
  // Step 2: Generate two-hop routes using graph traversal
135
135
  // Algorithm: For each token, explore all paths of length 2
136
- // OUTER LOOP: "For each starting token..." (e.g., cUSD, CELO, cEUR, etc.)
136
+ // OUTER LOOP: "For each starting token..." (e.g., USDm, CELO, EURm, etc.)
137
137
  for (const [start, neighbors] of tokenGraph.entries()) {
138
138
  // MIDDLE LOOP: "Where can I go from the starting token?" (first hop)
139
- // Example: If start = cUSD, neighbors might be [CELO, USDC, cKES]
139
+ // Example: If start = USDm, neighbors might be [CELO, USDC, KESm]
140
140
  for (const intermediate of neighbors) {
141
141
  // Get all tokens reachable from this intermediate token (second hop destinations)
142
142
  const secondHopNeighbors = tokenGraph.get(intermediate);
143
143
  if (!secondHopNeighbors)
144
144
  continue;
145
145
  // INNER LOOP: "From the intermediate token, where can I go?" (second hop)
146
- // Example: If intermediate = CELO, secondHopNeighbors might be [cUSD, cEUR, cBRL]
146
+ // Example: If intermediate = CELO, secondHopNeighbors might be [USDm, EURm, BRLm]
147
147
  for (const end of secondHopNeighbors) {
148
- // Skip circular routes like cUSD → CELO → cUSD (pointless)
148
+ // Skip circular routes like USDm → CELO → USDm (pointless)
149
149
  if (end === start)
150
150
  continue;
151
151
  // At this point we have a potential route: start → intermediate → end
152
- // Example: cUSD → CELO → cEUR
152
+ // Example: USDm → CELO → EURm
153
153
  // Try to create a valid two-hop trading pair from this route
154
154
  const twoHopRoute = createTwoHopRoute(start, intermediate, end, addrToSymbol, directRouteMap);
155
155
  // If we successfully created the pair, add it to our collection
@@ -187,22 +187,22 @@ function generateAllRoutes(connectivityData) {
187
187
  *
188
188
  * @example
189
189
  * ```typescript
190
- * // Create route: cUSD -> CELO -> cEUR
190
+ * // Create route: USDm -> CELO -> EURm
191
191
  * const pair = createTwoHopPair(
192
- * '0x765D...', // cUSD address
192
+ * '0x765D...', // USDm address
193
193
  * '0x471E...', // CELO address
194
- * '0xD876...', // cEUR address
194
+ * '0xD876...', // EURm address
195
195
  * addrToSymbol,
196
196
  * directPathMap
197
197
  * )
198
198
  *
199
199
  * // Result:
200
200
  * // {
201
- * // id: 'cEUR-cUSD', // alphabetical order
202
- * // assets: [cEUR, cUSD], // alphabetical order
201
+ * // id: 'EURm-USDm', // alphabetical order
202
+ * // assets: [EURm, USDm], // alphabetical order
203
203
  * // path: [ // actual routing path
204
- * // { cUSD->CELO exchange },
205
- * // { CELO->cEUR exchange }
204
+ * // { USDm->CELO exchange },
205
+ * // { CELO->EURm exchange }
206
206
  * // ]
207
207
  * // }
208
208
  * ```
@@ -257,17 +257,17 @@ function createTwoHopRoute(startAddr, intermediateAddr, endAddr, addrToSymbol, d
257
257
  *
258
258
  * @example
259
259
  * ```typescript
260
- * // Multiple routes for cUSD-cEUR pair
260
+ * // Multiple routes for USDm-EURm pair
261
261
  * const candidates = new Map([
262
- * ['cEUR-cUSD', [
263
- * { path: [cUSD->CELO->cEUR], costData: { totalCostPercent: 0.5 } },
264
- * { path: [cUSD->cREAL->cEUR], costData: { totalCostPercent: 0.3 } },
265
- * { path: [cUSD->cEUR] } // direct route, no cost data
262
+ * ['EURm-USDm', [
263
+ * { path: [USDm->CELO->EURm], costData: { totalCostPercent: 0.5 } },
264
+ * { path: [USDm->BRLm->EURm], costData: { totalCostPercent: 0.3 } },
265
+ * { path: [USDm->EURm] } // direct route, no cost data
266
266
  * ]]
267
267
  * ])
268
268
  *
269
269
  * const optimal = selectOptimalRoutes(candidates, false, assetMap)
270
- * // Returns the cUSD->cREAL->cEUR route (lowest cost: 0.3%)
270
+ * // Returns the USDm->BRLm->EURm route (lowest cost: 0.3%)
271
271
  * ```
272
272
  */
273
273
  function selectOptimalRoutes(allRoutes, returnAllRoutes, addrToSymbol) {
@@ -308,7 +308,7 @@ function selectOptimalRoutes(allRoutes, returnAllRoutes, addrToSymbol) {
308
308
  *
309
309
  * **Tier 3 - Major Stablecoin Preference** (Final Fallback):
310
310
  * - For two-hop routes, prefer those going through major stablecoins
311
- * - Major FX currencies like cUSD and cEUR typically have better liquidity
311
+ * - Major FX currencies like USDm and EURm typically have better liquidity
312
312
  *
313
313
  * **Tier 4 - First Available** (Last Resort):
314
314
  * - If no other heuristics apply, use the first route found
@@ -340,7 +340,7 @@ function selectBestRoute(candidates, addrToSymbol) {
340
340
  if (directRoute)
341
341
  return directRoute;
342
342
  // Tier 3: Prefer routes through major stablecoins (better liquidity)
343
- const stablecoins = ['cUSD', 'cEUR', 'USDC', 'USDT'];
343
+ const stablecoins = ['USDm', 'EURm', 'USDC', 'USDT'];
344
344
  const routeWithStablecoin = candidates.find((candidate) => {
345
345
  const intermediateToken = getIntermediateToken(candidate);
346
346
  if (!intermediateToken)
@@ -1 +1 @@
1
- {"version":3,"file":"routeUtils.js","sourceRoot":"","sources":["../../src/utils/routeUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routeUtils.js","sourceRoot":"","sources":["../../src/utils/routeUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { TradingLimit, TradingLimitsConfigV1, TradingLimitsStateV1, TradingLimitsConfigV2, TradingLimitsStateV2 } from '../core/types';
2
+ /**
3
+ * Compute limit ID for Broker (V1) trading limits.
4
+ * limitId = exchangeId XOR bytes32(uint256(uint160(token)))
5
+ *
6
+ * @param exchangeId - The exchange ID (bytes32)
7
+ * @param token - The token address
8
+ * @returns The limit ID as hex string
9
+ */
10
+ export declare function computeLimitId(exchangeId: string, token: string): `0x${string}`;
11
+ /**
12
+ * Calculate trading limits from V1 config and state (Broker/Virtual pools).
13
+ * Returns human-friendly TradingLimit objects with maxIn/maxOut/until.
14
+ *
15
+ * @param config - V1 trading limits configuration
16
+ * @param state - V1 trading limits state
17
+ * @param asset - Token address
18
+ * @param tokenDecimals - Token decimals for consumer reference
19
+ * @returns Array of TradingLimit objects
20
+ */
21
+ export declare function calculateTradingLimitsV1(config: TradingLimitsConfigV1, state: TradingLimitsStateV1, asset: string, tokenDecimals: number): TradingLimit[];
22
+ /**
23
+ * Calculate trading limits from V2 config and state (FPMM pools).
24
+ * V2 uses fixed timeframes: 5 min for L0, 1 day for L1.
25
+ * Values are stored with 15 decimals precision.
26
+ *
27
+ * @param config - V2 trading limits configuration
28
+ * @param state - V2 trading limits state
29
+ * @param asset - Token address
30
+ * @returns Array of TradingLimit objects
31
+ */
32
+ export declare function calculateTradingLimitsV2(config: TradingLimitsConfigV2, state: TradingLimitsStateV2, asset: string): TradingLimit[];
33
+ /**
34
+ * Check if any trading limits are configured (flags > 0 for V1, or limit0/limit1 > 0 for V2)
35
+ */
36
+ export declare function hasConfiguredLimitsV1(config: TradingLimitsConfigV1): boolean;
37
+ /**
38
+ * Check if any trading limits are configured for V2
39
+ */
40
+ export declare function hasConfiguredLimitsV2(config: TradingLimitsConfigV2): boolean;
41
+ //# sourceMappingURL=tradingLimits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tradingLimits.d.ts","sourceRoot":"","sources":["../../src/utils/tradingLimits.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,eAAe,CAAA;AActB;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAa/E;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GACpB,YAAY,EAAE,CAiEhB;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,MAAM,GACZ,YAAY,EAAE,CAmDhB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAE5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAE5E"}