@mento-protocol/mento-sdk 3.0.0 → 3.1.0-beta.1

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 (38) hide show
  1. package/dist/cache/routes.js +225 -1
  2. package/dist/cache/tokens.d.ts +1 -3
  3. package/dist/cache/tokens.js +142 -150
  4. package/dist/core/abis/reserve.d.ts +1 -0
  5. package/dist/core/abis/reserve.js +9 -1
  6. package/dist/core/constants/addresses.d.ts +5 -0
  7. package/dist/core/constants/addresses.js +25 -5
  8. package/dist/core/constants/chainId.d.ts +3 -1
  9. package/dist/core/constants/chainId.js +2 -0
  10. package/dist/core/types/pool.d.ts +1 -3
  11. package/dist/core/types/provider.d.ts +45 -0
  12. package/dist/core/types/provider.js +3 -0
  13. package/dist/esm/cache/routes.js +225 -1
  14. package/dist/esm/cache/tokens.js +142 -150
  15. package/dist/esm/core/abis/reserve.js +8 -0
  16. package/dist/esm/core/constants/addresses.js +24 -5
  17. package/dist/esm/core/constants/chainId.js +2 -0
  18. package/dist/esm/core/types/provider.js +1 -0
  19. package/dist/esm/index.js +6 -8
  20. package/dist/esm/services/index.js +0 -1
  21. package/dist/esm/services/liquidity/liquidityHelpers.js +2 -4
  22. package/dist/esm/services/pools/poolDetails.js +4 -10
  23. package/dist/esm/services/pools/poolDiscovery.js +6 -10
  24. package/dist/esm/services/tokens/tokenService.js +70 -11
  25. package/dist/esm/services/trading/TradingLimitsService.js +11 -23
  26. package/dist/esm/utils/chainConfig.js +49 -0
  27. package/dist/index.d.ts +6 -8
  28. package/dist/index.js +6 -8
  29. package/dist/services/index.d.ts +0 -1
  30. package/dist/services/index.js +0 -1
  31. package/dist/services/liquidity/liquidityHelpers.js +2 -4
  32. package/dist/services/pools/poolDetails.js +4 -10
  33. package/dist/services/pools/poolDiscovery.js +5 -9
  34. package/dist/services/tokens/tokenService.d.ts +17 -2
  35. package/dist/services/tokens/tokenService.js +68 -9
  36. package/dist/services/trading/TradingLimitsService.js +10 -22
  37. package/dist/utils/chainConfig.js +49 -0
  38. package/package.json +1 -1
@@ -1,17 +1,16 @@
1
1
  // This file is auto-generated. Do not edit manually.
2
- // Generated on 2026-03-03T20:21:18.047Z
2
+ // Generated on 2026-03-10T14:45:05.132Z
3
3
  /**
4
4
  * Enum of all token symbols across all supported chains
5
5
  */
6
6
  export var TokenSymbol;
7
7
  (function (TokenSymbol) {
8
8
  TokenSymbol["AUDm"] = "AUDm";
9
+ TokenSymbol["AUSD"] = "AUSD";
9
10
  TokenSymbol["BRLm"] = "BRLm";
10
11
  TokenSymbol["CADm"] = "CADm";
11
- TokenSymbol["CELO"] = "CELO";
12
12
  TokenSymbol["CHFm"] = "CHFm";
13
13
  TokenSymbol["COPm"] = "COPm";
14
- TokenSymbol["EURm"] = "EURm";
15
14
  TokenSymbol["GBPm"] = "GBPm";
16
15
  TokenSymbol["GHSm"] = "GHSm";
17
16
  TokenSymbol["JPYm"] = "JPYm";
@@ -23,56 +22,72 @@ export var TokenSymbol;
23
22
  TokenSymbol["USD_"] = "USD\u20AE";
24
23
  TokenSymbol["XOFm"] = "XOFm";
25
24
  TokenSymbol["ZARm"] = "ZARm";
26
- TokenSymbol["axlEUROC"] = "axlEUROC";
27
25
  TokenSymbol["axlUSDC"] = "axlUSDC";
28
26
  })(TokenSymbol || (TokenSymbol = {}));
29
27
  /**
30
28
  * Cached tokens indexed by chain ID
31
29
  */
32
30
  export const cachedTokens = {
33
- // Chain 42220
34
- 42220: [
31
+ // Chain 143
32
+ 143: [],
33
+ // Chain 10143
34
+ 10143: [
35
35
  {
36
- address: '0x765DE816845861e75A25fCA122bb6898B8B1282a',
36
+ address: '0x04de554E875c9797dC4ceBd834A9e99fa8fD5Df9',
37
+ symbol: TokenSymbol.GBPm,
38
+ name: 'Mento British Pound',
39
+ decimals: 18,
40
+ },
41
+ {
42
+ address: '0x5eCc03111ad2A78F981A108759bc73BAE2AB31bc',
37
43
  symbol: TokenSymbol.USDm,
38
44
  name: 'Mento Dollar',
39
45
  decimals: 18,
40
46
  },
41
47
  {
42
- address: '0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73',
43
- symbol: TokenSymbol.EURm,
44
- name: 'Mento Euro',
45
- decimals: 18,
48
+ address: '0x534b2f3A21130d7a60830c2Df862319e593943A3',
49
+ symbol: TokenSymbol.USDC,
50
+ name: 'USDC',
51
+ decimals: 6,
46
52
  },
47
53
  {
48
- address: '0xe8537a3d056DA446677B9E9d6c5dB704EaAb4787',
49
- symbol: TokenSymbol.BRLm,
50
- name: 'Mento Brazilian Real',
54
+ address: '0x502E67D3fE9302A5e4Ec1CFCDdbD6F34F9B9484B',
55
+ symbol: TokenSymbol.AUSD,
56
+ name: 'Mento Mock AUSD',
57
+ decimals: 6,
58
+ }
59
+ ],
60
+ // Chain 42220
61
+ 42220: [
62
+ {
63
+ address: '0xCCF663b1fF11028f0b19058d0f7B674004a40746',
64
+ symbol: TokenSymbol.GBPm,
65
+ name: 'Mento British Pound',
51
66
  decimals: 18,
52
67
  },
53
68
  {
54
- address: '0x73F93dcc49cB8A239e2032663e9475dd5ef29A08',
55
- symbol: TokenSymbol.XOFm,
56
- name: 'Mento West African CFA franc',
69
+ address: '0x765DE816845861e75A25fCA122bb6898B8B1282a',
70
+ symbol: TokenSymbol.USDm,
71
+ name: 'Mento Dollar',
57
72
  decimals: 18,
58
73
  },
59
74
  {
60
- address: '0x456a3D042C0DbD3db53D5489e98dFb038553B0d0',
61
- symbol: TokenSymbol.KESm,
62
- name: 'Mento Kenyan Shilling',
63
- decimals: 18,
75
+ address: '0xEB466342C4d449BC9f53A865D5Cb90586f405215',
76
+ symbol: TokenSymbol.axlUSDC,
77
+ name: 'Axelar Wrapped USDC',
78
+ decimals: 6,
64
79
  },
65
80
  {
66
- address: '0x105d4A9306D2E55a71d2Eb95B81553AE1dC20d7B',
67
- symbol: TokenSymbol.PHPm,
68
- name: 'Mento Philippine Peso',
69
- decimals: 18,
81
+ address: '0xcebA9300f2b948710d2653dD7B07f33A8B32118C',
82
+ symbol: TokenSymbol.USDC,
83
+ name: 'USDC',
84
+ decimals: 6,
70
85
  },
71
86
  {
72
- address: '0x8A567e2aE79CA692Bd748aB832081C45de4041eA',
73
- symbol: TokenSymbol.COPm,
74
- name: 'Mento Colombian Peso',
75
- decimals: 18,
87
+ address: '0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e',
88
+ symbol: TokenSymbol.USD_,
89
+ name: 'Tether USD',
90
+ decimals: 6,
76
91
  },
77
92
  {
78
93
  address: '0xfAeA5F3404bbA20D3cc2f8C4B0A888F55a3c7313',
@@ -80,24 +95,12 @@ export const cachedTokens = {
80
95
  name: 'Mento Ghanaian Cedi',
81
96
  decimals: 18,
82
97
  },
83
- {
84
- address: '0xCCF663b1fF11028f0b19058d0f7B674004a40746',
85
- symbol: TokenSymbol.GBPm,
86
- name: 'Mento British Pound',
87
- decimals: 18,
88
- },
89
98
  {
90
99
  address: '0x4c35853A3B4e647fD266f4de678dCc8fEC410BF6',
91
100
  symbol: TokenSymbol.ZARm,
92
101
  name: 'Mento South African Rand',
93
102
  decimals: 18,
94
103
  },
95
- {
96
- address: '0xff4Ab19391af240c311c54200a492233052B6325',
97
- symbol: TokenSymbol.CADm,
98
- name: 'Mento Canadian Dollar',
99
- decimals: 18,
100
- },
101
104
  {
102
105
  address: '0x7175504C455076F15c04A2F90a8e352281F492F9',
103
106
  symbol: TokenSymbol.AUDm,
@@ -117,73 +120,79 @@ export const cachedTokens = {
117
120
  decimals: 18,
118
121
  },
119
122
  {
120
- address: '0xc45eCF20f3CD864B32D9794d6f76814aE8892e20',
121
- symbol: TokenSymbol.JPYm,
122
- name: 'Mento Japanese Yen',
123
+ address: '0x456a3D042C0DbD3db53D5489e98dFb038553B0d0',
124
+ symbol: TokenSymbol.KESm,
125
+ name: 'Mento Kenyan Shilling',
123
126
  decimals: 18,
124
127
  },
125
128
  {
126
- address: '0x471EcE3750Da237f93B8E339c536989b8978a438',
127
- symbol: TokenSymbol.CELO,
128
- name: 'Celo native asset',
129
+ address: '0xff4Ab19391af240c311c54200a492233052B6325',
130
+ symbol: TokenSymbol.CADm,
131
+ name: 'Mento Canadian Dollar',
129
132
  decimals: 18,
130
133
  },
131
134
  {
132
- address: '0x061cc5a2C863E0C1Cb404006D559dB18A34C762d',
133
- symbol: TokenSymbol.axlEUROC,
134
- name: 'Axelar Wrapped EUROC',
135
- decimals: 6,
135
+ address: '0x105d4A9306D2E55a71d2Eb95B81553AE1dC20d7B',
136
+ symbol: TokenSymbol.PHPm,
137
+ name: 'Mento Philippine Peso',
138
+ decimals: 18,
136
139
  },
137
140
  {
138
- address: '0xcebA9300f2b948710d2653dD7B07f33A8B32118C',
139
- symbol: TokenSymbol.USDC,
140
- name: 'USDC',
141
- decimals: 6,
141
+ address: '0xc45eCF20f3CD864B32D9794d6f76814aE8892e20',
142
+ symbol: TokenSymbol.JPYm,
143
+ name: 'Mento Japanese Yen',
144
+ decimals: 18,
142
145
  },
143
146
  {
144
- address: '0xEB466342C4d449BC9f53A865D5Cb90586f405215',
145
- symbol: TokenSymbol.axlUSDC,
146
- name: 'Axelar Wrapped USDC',
147
- decimals: 6,
147
+ address: '0x8A567e2aE79CA692Bd748aB832081C45de4041eA',
148
+ symbol: TokenSymbol.COPm,
149
+ name: 'Mento Colombian Peso',
150
+ decimals: 18,
148
151
  },
149
152
  {
150
- address: '0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e',
151
- symbol: TokenSymbol.USD_,
152
- name: 'Tether USD',
153
- decimals: 6,
153
+ address: '0xe8537a3d056DA446677B9E9d6c5dB704EaAb4787',
154
+ symbol: TokenSymbol.BRLm,
155
+ name: 'Mento Brazilian Real',
156
+ decimals: 18,
157
+ },
158
+ {
159
+ address: '0x73F93dcc49cB8A239e2032663e9475dd5ef29A08',
160
+ symbol: TokenSymbol.XOFm,
161
+ name: 'Mento West African CFA franc',
162
+ decimals: 18,
154
163
  }
155
164
  ],
156
165
  // Chain 11142220
157
166
  11142220: [
158
167
  {
159
- address: '0xdE9e4C3ce781b4bA68120d6261cbad65ce0aB00b',
160
- symbol: TokenSymbol.USDm,
161
- name: 'Mento Dollar',
168
+ address: '0x85F5181Abdbf0e1814Fc4358582Ae07b8eBA3aF3',
169
+ symbol: TokenSymbol.GBPm,
170
+ name: 'Mento British Pound',
162
171
  decimals: 18,
163
172
  },
164
173
  {
165
- address: '0xA99dC247d6b7B2E3ab48a1fEE101b83cD6aCd82a',
166
- symbol: TokenSymbol.EURm,
167
- name: 'Mento Euro',
174
+ address: '0xdE9e4C3ce781b4bA68120d6261cbad65ce0aB00b',
175
+ symbol: TokenSymbol.USDm,
176
+ name: 'Mento Dollar',
168
177
  decimals: 18,
169
178
  },
170
179
  {
171
- address: '0x2294298942fdc79417DE9E0D740A4957E0e7783a',
172
- symbol: TokenSymbol.BRLm,
173
- name: 'Mento Brazilian Real',
180
+ address: '0x6285De9DA7C1d329C0451628638908915002d9d1',
181
+ symbol: TokenSymbol.axlUSDC,
182
+ name: 'Mento Mock axlUSDC',
174
183
  decimals: 18,
175
184
  },
176
185
  {
177
- address: '0x5505b70207aE3B826c1A7607F19F3Bf73444A082',
178
- symbol: TokenSymbol.XOFm,
179
- name: 'Mento West African CFA franc',
180
- decimals: 18,
186
+ address: '0x01C5C0122039549AD1493B8220cABEdD739BC44E',
187
+ symbol: TokenSymbol.USDC,
188
+ name: 'USDC',
189
+ decimals: 6,
181
190
  },
182
191
  {
183
- address: '0xC7e4635651E3e3Af82b61d3E23c159438daE3BbF',
184
- symbol: TokenSymbol.KESm,
185
- name: 'Mento Kenyan Shilling',
186
- decimals: 18,
192
+ address: '0xd077A400968890Eacc75cdc901F0356c943e4fDb',
193
+ symbol: TokenSymbol.USD_,
194
+ name: 'Tether USD',
195
+ decimals: 6,
187
196
  },
188
197
  {
189
198
  address: '0x0352976d940a2C3FBa0C3623198947Ee1d17869E',
@@ -192,27 +201,15 @@ export const cachedTokens = {
192
201
  decimals: 18,
193
202
  },
194
203
  {
195
- address: '0x5F8d55c3627d2dc0a2B4afa798f877242F382F67',
196
- symbol: TokenSymbol.COPm,
197
- name: 'Mento Colombian Peso',
198
- decimals: 18,
199
- },
200
- {
201
- address: '0x5e94B8C872bD47BC4255E60ECBF44D5E66e7401C',
202
- symbol: TokenSymbol.GHSm,
203
- name: 'Mento Ghanaian Cedi',
204
- decimals: 18,
205
- },
206
- {
207
- address: '0x85F5181Abdbf0e1814Fc4358582Ae07b8eBA3aF3',
208
- symbol: TokenSymbol.GBPm,
209
- name: 'Mento British Pound',
204
+ address: '0x5505b70207aE3B826c1A7607F19F3Bf73444A082',
205
+ symbol: TokenSymbol.XOFm,
206
+ name: 'Mento West African CFA franc',
210
207
  decimals: 18,
211
208
  },
212
209
  {
213
- address: '0x10CCfB235b0E1Ed394bACE4560C3ed016697687e',
214
- symbol: TokenSymbol.ZARm,
215
- name: 'Mento South African Rand',
210
+ address: '0x5873Faeb42F3563dcD77F0fbbdA818E6d6DA3139',
211
+ symbol: TokenSymbol.AUDm,
212
+ name: 'Mento Australian Dollar',
216
213
  decimals: 18,
217
214
  },
218
215
  {
@@ -222,9 +219,9 @@ export const cachedTokens = {
222
219
  decimals: 18,
223
220
  },
224
221
  {
225
- address: '0x5873Faeb42F3563dcD77F0fbbdA818E6d6DA3139',
226
- symbol: TokenSymbol.AUDm,
227
- name: 'Mento Australian Dollar',
222
+ address: '0x10CCfB235b0E1Ed394bACE4560C3ed016697687e',
223
+ symbol: TokenSymbol.ZARm,
224
+ name: 'Mento South African Rand',
228
225
  decimals: 18,
229
226
  },
230
227
  {
@@ -240,40 +237,34 @@ export const cachedTokens = {
240
237
  decimals: 18,
241
238
  },
242
239
  {
243
- address: '0x3d5ae86F34E2a82771496D140daFAEf3789dF888',
244
- symbol: TokenSymbol.NGNm,
245
- name: 'Mento Nigerian Naira',
240
+ address: '0x5F8d55c3627d2dc0a2B4afa798f877242F382F67',
241
+ symbol: TokenSymbol.COPm,
242
+ name: 'Mento Colombian Peso',
246
243
  decimals: 18,
247
244
  },
248
245
  {
249
- address: '0x6285De9DA7C1d329C0451628638908915002d9d1',
250
- symbol: TokenSymbol.axlUSDC,
251
- name: 'Mento Mock axlUSDC',
246
+ address: '0x2294298942fdc79417DE9E0D740A4957E0e7783a',
247
+ symbol: TokenSymbol.BRLm,
248
+ name: 'Mento Brazilian Real',
252
249
  decimals: 18,
253
250
  },
254
251
  {
255
- address: '0x471EcE3750Da237f93B8E339c536989b8978a438',
256
- symbol: TokenSymbol.CELO,
257
- name: 'Celo native asset',
252
+ address: '0x5e94B8C872bD47BC4255E60ECBF44D5E66e7401C',
253
+ symbol: TokenSymbol.GHSm,
254
+ name: 'Mento Ghanaian Cedi',
258
255
  decimals: 18,
259
256
  },
260
257
  {
261
- address: '0x9883d788d40F1C7595a780ed881Ea833C7743B4B',
262
- symbol: TokenSymbol.axlEUROC,
263
- name: 'Mento Mock axlEUROC',
258
+ address: '0x3d5ae86F34E2a82771496D140daFAEf3789dF888',
259
+ symbol: TokenSymbol.NGNm,
260
+ name: 'Mento Nigerian Naira',
264
261
  decimals: 18,
265
262
  },
266
263
  {
267
- address: '0x01C5C0122039549AD1493B8220cABEdD739BC44E',
268
- symbol: TokenSymbol.USDC,
269
- name: 'USDC',
270
- decimals: 6,
271
- },
272
- {
273
- address: '0xd077A400968890Eacc75cdc901F0356c943e4fDb',
274
- symbol: TokenSymbol.USD_,
275
- name: 'Tether USD',
276
- decimals: 6,
264
+ address: '0xC7e4635651E3e3Af82b61d3E23c159438daE3BbF',
265
+ symbol: TokenSymbol.KESm,
266
+ name: 'Mento Kenyan Shilling',
267
+ decimals: 18,
277
268
  }
278
269
  ],
279
270
  };
@@ -282,49 +273,50 @@ export const cachedTokens = {
282
273
  * Useful for quickly looking up a token address by its symbol on a specific chain
283
274
  */
284
275
  export const TOKEN_ADDRESSES_BY_CHAIN = {
276
+ 143: {},
277
+ 10143: {
278
+ [TokenSymbol.GBPm]: '0x04de554E875c9797dC4ceBd834A9e99fa8fD5Df9',
279
+ [TokenSymbol.USDm]: '0x5eCc03111ad2A78F981A108759bc73BAE2AB31bc',
280
+ [TokenSymbol.USDC]: '0x534b2f3A21130d7a60830c2Df862319e593943A3',
281
+ [TokenSymbol.AUSD]: '0x502E67D3fE9302A5e4Ec1CFCDdbD6F34F9B9484B',
282
+ },
285
283
  42220: {
284
+ [TokenSymbol.GBPm]: '0xCCF663b1fF11028f0b19058d0f7B674004a40746',
286
285
  [TokenSymbol.USDm]: '0x765DE816845861e75A25fCA122bb6898B8B1282a',
287
- [TokenSymbol.EURm]: '0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73',
288
- [TokenSymbol.BRLm]: '0xe8537a3d056DA446677B9E9d6c5dB704EaAb4787',
289
- [TokenSymbol.XOFm]: '0x73F93dcc49cB8A239e2032663e9475dd5ef29A08',
290
- [TokenSymbol.KESm]: '0x456a3D042C0DbD3db53D5489e98dFb038553B0d0',
291
- [TokenSymbol.PHPm]: '0x105d4A9306D2E55a71d2Eb95B81553AE1dC20d7B',
292
- [TokenSymbol.COPm]: '0x8A567e2aE79CA692Bd748aB832081C45de4041eA',
286
+ [TokenSymbol.axlUSDC]: '0xEB466342C4d449BC9f53A865D5Cb90586f405215',
287
+ [TokenSymbol.USDC]: '0xcebA9300f2b948710d2653dD7B07f33A8B32118C',
288
+ [TokenSymbol.USD_]: '0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e',
293
289
  [TokenSymbol.GHSm]: '0xfAeA5F3404bbA20D3cc2f8C4B0A888F55a3c7313',
294
- [TokenSymbol.GBPm]: '0xCCF663b1fF11028f0b19058d0f7B674004a40746',
295
290
  [TokenSymbol.ZARm]: '0x4c35853A3B4e647fD266f4de678dCc8fEC410BF6',
296
- [TokenSymbol.CADm]: '0xff4Ab19391af240c311c54200a492233052B6325',
297
291
  [TokenSymbol.AUDm]: '0x7175504C455076F15c04A2F90a8e352281F492F9',
298
292
  [TokenSymbol.CHFm]: '0xb55a79F398E759E43C95b979163f30eC87Ee131D',
299
293
  [TokenSymbol.NGNm]: '0xE2702Bd97ee33c88c8f6f92DA3B733608aa76F71',
294
+ [TokenSymbol.KESm]: '0x456a3D042C0DbD3db53D5489e98dFb038553B0d0',
295
+ [TokenSymbol.CADm]: '0xff4Ab19391af240c311c54200a492233052B6325',
296
+ [TokenSymbol.PHPm]: '0x105d4A9306D2E55a71d2Eb95B81553AE1dC20d7B',
300
297
  [TokenSymbol.JPYm]: '0xc45eCF20f3CD864B32D9794d6f76814aE8892e20',
301
- [TokenSymbol.CELO]: '0x471EcE3750Da237f93B8E339c536989b8978a438',
302
- [TokenSymbol.axlEUROC]: '0x061cc5a2C863E0C1Cb404006D559dB18A34C762d',
303
- [TokenSymbol.USDC]: '0xcebA9300f2b948710d2653dD7B07f33A8B32118C',
304
- [TokenSymbol.axlUSDC]: '0xEB466342C4d449BC9f53A865D5Cb90586f405215',
305
- [TokenSymbol.USD_]: '0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e',
298
+ [TokenSymbol.COPm]: '0x8A567e2aE79CA692Bd748aB832081C45de4041eA',
299
+ [TokenSymbol.BRLm]: '0xe8537a3d056DA446677B9E9d6c5dB704EaAb4787',
300
+ [TokenSymbol.XOFm]: '0x73F93dcc49cB8A239e2032663e9475dd5ef29A08',
306
301
  },
307
302
  11142220: {
303
+ [TokenSymbol.GBPm]: '0x85F5181Abdbf0e1814Fc4358582Ae07b8eBA3aF3',
308
304
  [TokenSymbol.USDm]: '0xdE9e4C3ce781b4bA68120d6261cbad65ce0aB00b',
309
- [TokenSymbol.EURm]: '0xA99dC247d6b7B2E3ab48a1fEE101b83cD6aCd82a',
310
- [TokenSymbol.BRLm]: '0x2294298942fdc79417DE9E0D740A4957E0e7783a',
311
- [TokenSymbol.XOFm]: '0x5505b70207aE3B826c1A7607F19F3Bf73444A082',
312
- [TokenSymbol.KESm]: '0xC7e4635651E3e3Af82b61d3E23c159438daE3BbF',
305
+ [TokenSymbol.axlUSDC]: '0x6285De9DA7C1d329C0451628638908915002d9d1',
306
+ [TokenSymbol.USDC]: '0x01C5C0122039549AD1493B8220cABEdD739BC44E',
307
+ [TokenSymbol.USD_]: '0xd077A400968890Eacc75cdc901F0356c943e4fDb',
313
308
  [TokenSymbol.PHPm]: '0x0352976d940a2C3FBa0C3623198947Ee1d17869E',
314
- [TokenSymbol.COPm]: '0x5F8d55c3627d2dc0a2B4afa798f877242F382F67',
315
- [TokenSymbol.GHSm]: '0x5e94B8C872bD47BC4255E60ECBF44D5E66e7401C',
316
- [TokenSymbol.GBPm]: '0x85F5181Abdbf0e1814Fc4358582Ae07b8eBA3aF3',
317
- [TokenSymbol.ZARm]: '0x10CCfB235b0E1Ed394bACE4560C3ed016697687e',
318
- [TokenSymbol.CADm]: '0xF151c9a13b78C84f93f50B8b3bC689fedc134F60',
309
+ [TokenSymbol.XOFm]: '0x5505b70207aE3B826c1A7607F19F3Bf73444A082',
319
310
  [TokenSymbol.AUDm]: '0x5873Faeb42F3563dcD77F0fbbdA818E6d6DA3139',
311
+ [TokenSymbol.CADm]: '0xF151c9a13b78C84f93f50B8b3bC689fedc134F60',
312
+ [TokenSymbol.ZARm]: '0x10CCfB235b0E1Ed394bACE4560C3ed016697687e',
320
313
  [TokenSymbol.CHFm]: '0x284E9b7B623eAE866914b7FA0eB720C2Bb3C2980',
321
314
  [TokenSymbol.JPYm]: '0x85Bee67D435A39f7467a8a9DE34a5B73D25Df426',
315
+ [TokenSymbol.COPm]: '0x5F8d55c3627d2dc0a2B4afa798f877242F382F67',
316
+ [TokenSymbol.BRLm]: '0x2294298942fdc79417DE9E0D740A4957E0e7783a',
317
+ [TokenSymbol.GHSm]: '0x5e94B8C872bD47BC4255E60ECBF44D5E66e7401C',
322
318
  [TokenSymbol.NGNm]: '0x3d5ae86F34E2a82771496D140daFAEf3789dF888',
323
- [TokenSymbol.axlUSDC]: '0x6285De9DA7C1d329C0451628638908915002d9d1',
324
- [TokenSymbol.CELO]: '0x471EcE3750Da237f93B8E339c536989b8978a438',
325
- [TokenSymbol.axlEUROC]: '0x9883d788d40F1C7595a780ed881Ea833C7743B4B',
326
- [TokenSymbol.USDC]: '0x01C5C0122039549AD1493B8220cABEdD739BC44E',
327
- [TokenSymbol.USD_]: '0xd077A400968890Eacc75cdc901F0356c943e4fDb',
319
+ [TokenSymbol.KESm]: '0xC7e4635651E3e3Af82b61d3E23c159438daE3BbF',
328
320
  },
329
321
  };
330
322
  /**
@@ -1,6 +1,14 @@
1
1
  import { parseAbi } from 'viem';
2
+ // Legacy Reserve (Celo)
2
3
  export const RESERVE_ABI = parseAbi([
3
4
  'function getTokens() view returns (address[])',
4
5
  'function isToken(address) view returns (bool)',
5
6
  'function isCollateralAsset(address) view returns (bool)',
6
7
  ]);
8
+ // ReserveV2 (Monad)
9
+ export const RESERVE_V2_ABI = parseAbi([
10
+ 'function getStableAssets() view returns (address[])',
11
+ 'function getCollateralAssets() view returns (address[])',
12
+ 'function isStableAsset(address) view returns (bool)',
13
+ 'function isCollateralAsset(address) view returns (bool)',
14
+ ]);
@@ -29,6 +29,18 @@ export const addresses = {
29
29
  ReserveLiquidityStrategy: '0xa0fB8b16ce6AF3634fF9F3f4F40E49E1C1ae4f0B',
30
30
  CDPLiquidityStrategy: '0x4e78BD9565341EAbe99cDC024acB044d9BDcB985',
31
31
  },
32
+ [ChainId.MONAD_TESTNET]: {
33
+ BreakerBox: '0x88869E30609D2C0E4032463D713328C6f541878e',
34
+ MedianDeltaBreaker: '0xf923C884F319b8866F67C5719A80E5cB4D0FAF2c',
35
+ SortedOracles: '0x85ed9ac57827132B8F60938F3165BC139E1F53cd',
36
+ ValueDeltaBreaker: '0xbbD0D093F5F11D16D4456FBd6229c9a3b70B8Aaf',
37
+ Reserve: '0xbCdc1D0b92DfceEaa0FcD0a0D53355F4bF1DB8a7',
38
+ StableToken: '0x5eCc03111ad2A78F981A108759bc73BAE2AB31bc', // USDm
39
+ FPMMFactory: '0x353ED52bF8482027C0e0b9e3c0e5d96A9F680980',
40
+ Router: '0xcf6cD45210b3ffE3cA28379C4683F1e60D0C2CCd',
41
+ ReserveLiquidityStrategy: '0x734bb3251Ec3f1A83f8f2A8609bcEF649D54EbF8',
42
+ },
43
+ [ChainId.MONAD]: {},
32
44
  [ChainId.CELO_SEPOLIA]: {
33
45
  // Oracles & Breakers
34
46
  BreakerBox: '0x578bD46003B9D3fd4c3C3f47c98B329562a6a1dE',
@@ -56,6 +68,17 @@ export const addresses = {
56
68
  CDPLiquidityStrategy: '0x065AE7D4e207C8f4dca112D0B79E668cc7e93e03',
57
69
  },
58
70
  };
71
+ /**
72
+ * Get the address of a contract for a given chain, returning undefined if not found.
73
+ * Use this when the contract may not be deployed on the target chain.
74
+ */
75
+ export function tryGetContractAddress(chainId, contractName) {
76
+ const addressesForChain = addresses[chainId];
77
+ if (!addressesForChain) {
78
+ return undefined;
79
+ }
80
+ return addressesForChain[contractName];
81
+ }
59
82
  /**
60
83
  * Get the address of a contract for a given chain
61
84
  * @param chainId - The chain ID
@@ -64,11 +87,7 @@ export const addresses = {
64
87
  * @throws Error if the address is not found for the given chain
65
88
  */
66
89
  export function getContractAddress(chainId, contractName) {
67
- const addressesForChain = addresses[chainId];
68
- if (!addressesForChain) {
69
- throw new Error(`No addresses found for chain ID ${chainId}`);
70
- }
71
- const address = addressesForChain[contractName];
90
+ const address = tryGetContractAddress(chainId, contractName);
72
91
  if (!address) {
73
92
  throw new Error(`Address not found for contract ${contractName} on chain ID ${chainId}`);
74
93
  }
@@ -2,4 +2,6 @@ export var ChainId;
2
2
  (function (ChainId) {
3
3
  ChainId[ChainId["CELO"] = 42220] = "CELO";
4
4
  ChainId[ChainId["CELO_SEPOLIA"] = 11142220] = "CELO_SEPOLIA";
5
+ ChainId[ChainId["MONAD_TESTNET"] = 10143] = "MONAD_TESTNET";
6
+ ChainId[ChainId["MONAD"] = 143] = "MONAD";
5
7
  })(ChainId || (ChainId = {}));
@@ -0,0 +1 @@
1
+ export {};
package/dist/esm/index.js CHANGED
@@ -49,16 +49,14 @@ import { BorrowService } from './services/borrow';
49
49
  * const status = await mento.trading.getPoolTradabilityStatus(pool);
50
50
  *
51
51
  * // Add liquidity to a pool
52
- * const { approvalA, approvalB, addLiquidity } = await mento.liquidity.buildAddLiquidityTransaction({
53
- * poolAddress, tokenA, amountA, tokenB, amountB, recipient, owner,
54
- * options: { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) },
55
- * });
52
+ * const { approval0, approval1, addLiquidity } = await mento.liquidity.buildAddLiquidityTransaction(
53
+ * poolAddress, amount0, amount1, recipient, owner, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
54
+ * );
56
55
  *
57
56
  * // Add liquidity using a single token (zap in)
58
- * const { approval, zapIn } = await mento.liquidity.buildZapInTransaction({
59
- * poolAddress, tokenIn, amountIn, amountInSplit: 0.5, recipient, owner,
60
- * options: { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) },
61
- * });
57
+ * const { approval, zapIn } = await mento.liquidity.buildZapInTransaction(
58
+ * poolAddress, tokenIn, amountIn, 0.5, recipient, owner, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
59
+ * );
62
60
  */
63
61
  export class Mento {
64
62
  constructor(chainId, tokens, pools, routes, quotes, swap, trading, liquidity, borrow) {
@@ -5,4 +5,3 @@ export * from './swap';
5
5
  export * from './trading';
6
6
  export * from './borrow';
7
7
  export * from './tokens';
8
- export * from './liquidity';
@@ -22,13 +22,11 @@ export async function getAllowance(publicClient, token, owner, chainId) {
22
22
  }));
23
23
  }
24
24
  export function calculateMinAmount(amount, slippageTolerance) {
25
- const MAX_SLIPPAGE_TOLERANCE = 20;
26
25
  if (slippageTolerance < 0) {
27
26
  throw new Error('Slippage tolerance cannot be negative');
28
27
  }
29
- if (slippageTolerance > MAX_SLIPPAGE_TOLERANCE) {
30
- throw new Error(`Slippage tolerance ${slippageTolerance}% exceeds maximum of ${MAX_SLIPPAGE_TOLERANCE}%. ` +
31
- 'High slippage makes transactions vulnerable to sandwich attacks.');
28
+ if (slippageTolerance > 100) {
29
+ throw new Error('Slippage tolerance cannot exceed 100%');
32
30
  }
33
31
  const basisPoints = BigInt(Math.floor(slippageTolerance * 100));
34
32
  const slippageMultiplier = 10000n - basisPoints;
@@ -37,7 +37,6 @@ export async function fetchFPMMPoolDetails(publicClient, chainId, pool) {
37
37
  const liquidityStrategy = activeIndex >= 0 ? knownStrategies[activeIndex] : null;
38
38
  // Fetch pricing separately — graceful degradation when FX market is closed
39
39
  let pricing = null;
40
- let pricingUnavailableReason = null;
41
40
  let inBand = null;
42
41
  try {
43
42
  const rebalancingStateResult = await publicClient.readContract({
@@ -59,8 +58,8 @@ export async function fetchFPMMPoolDetails(publicClient, chainId, pool) {
59
58
  };
60
59
  inBand = priceDifference < BigInt(rebalanceThreshold);
61
60
  }
62
- catch (error) {
63
- pricingUnavailableReason = `getRebalancingState() reverted: ${error.message ?? 'unknown error'}`;
61
+ catch {
62
+ // getRebalancingState() failed (likely FXMarketClosed) pricing stays null
64
63
  }
65
64
  return {
66
65
  ...pool,
@@ -71,7 +70,6 @@ export async function fetchFPMMPoolDetails(publicClient, chainId, pool) {
71
70
  reserve1,
72
71
  blockTimestampLast,
73
72
  pricing,
74
- pricingUnavailableReason,
75
73
  fees: {
76
74
  lpFeeBps,
77
75
  lpFeePercent: Number(lpFeeBps) / 100,
@@ -92,9 +90,7 @@ export async function fetchFPMMPoolDetails(publicClient, chainId, pool) {
92
90
  };
93
91
  }
94
92
  catch (error) {
95
- const wrapped = new Error(`Failed to fetch FPMM pool details for ${pool.poolAddr}: ${error.message}`);
96
- wrapped.cause = error;
97
- throw wrapped;
93
+ throw new Error(`Failed to fetch FPMM pool details for ${pool.poolAddr}: ${error.message}`);
98
94
  }
99
95
  }
100
96
  /**
@@ -124,9 +120,7 @@ export async function fetchVirtualPoolDetails(publicClient, pool) {
124
120
  };
125
121
  }
126
122
  catch (error) {
127
- const wrapped = new Error(`Failed to fetch Virtual pool details for ${pool.poolAddr}: ${error.message}`);
128
- wrapped.cause = error;
129
- throw wrapped;
123
+ throw new Error(`Failed to fetch Virtual pool details for ${pool.poolAddr}: ${error.message}`);
130
124
  }
131
125
  }
132
126
  /**