@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.
- package/dist/cache/routes.js +225 -1
- package/dist/cache/tokens.d.ts +1 -3
- package/dist/cache/tokens.js +142 -150
- package/dist/core/abis/reserve.d.ts +1 -0
- package/dist/core/abis/reserve.js +9 -1
- package/dist/core/constants/addresses.d.ts +5 -0
- package/dist/core/constants/addresses.js +25 -5
- package/dist/core/constants/chainId.d.ts +3 -1
- package/dist/core/constants/chainId.js +2 -0
- package/dist/core/types/pool.d.ts +1 -3
- package/dist/core/types/provider.d.ts +45 -0
- package/dist/core/types/provider.js +3 -0
- package/dist/esm/cache/routes.js +225 -1
- package/dist/esm/cache/tokens.js +142 -150
- package/dist/esm/core/abis/reserve.js +8 -0
- package/dist/esm/core/constants/addresses.js +24 -5
- package/dist/esm/core/constants/chainId.js +2 -0
- package/dist/esm/core/types/provider.js +1 -0
- package/dist/esm/index.js +6 -8
- package/dist/esm/services/index.js +0 -1
- package/dist/esm/services/liquidity/liquidityHelpers.js +2 -4
- package/dist/esm/services/pools/poolDetails.js +4 -10
- package/dist/esm/services/pools/poolDiscovery.js +6 -10
- package/dist/esm/services/tokens/tokenService.js +70 -11
- package/dist/esm/services/trading/TradingLimitsService.js +11 -23
- package/dist/esm/utils/chainConfig.js +49 -0
- package/dist/index.d.ts +6 -8
- package/dist/index.js +6 -8
- package/dist/services/index.d.ts +0 -1
- package/dist/services/index.js +0 -1
- package/dist/services/liquidity/liquidityHelpers.js +2 -4
- package/dist/services/pools/poolDetails.js +4 -10
- package/dist/services/pools/poolDiscovery.js +5 -9
- package/dist/services/tokens/tokenService.d.ts +17 -2
- package/dist/services/tokens/tokenService.js +68 -9
- package/dist/services/trading/TradingLimitsService.js +10 -22
- package/dist/utils/chainConfig.js +49 -0
- package/package.json +1 -1
package/dist/esm/cache/tokens.js
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
// This file is auto-generated. Do not edit manually.
|
|
2
|
-
// Generated on 2026-03-
|
|
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
|
|
34
|
-
|
|
31
|
+
// Chain 143
|
|
32
|
+
143: [],
|
|
33
|
+
// Chain 10143
|
|
34
|
+
10143: [
|
|
35
35
|
{
|
|
36
|
-
address: '
|
|
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: '
|
|
43
|
-
symbol: TokenSymbol.
|
|
44
|
-
name: '
|
|
45
|
-
decimals:
|
|
48
|
+
address: '0x534b2f3A21130d7a60830c2Df862319e593943A3',
|
|
49
|
+
symbol: TokenSymbol.USDC,
|
|
50
|
+
name: 'USDC',
|
|
51
|
+
decimals: 6,
|
|
46
52
|
},
|
|
47
53
|
{
|
|
48
|
-
address: '
|
|
49
|
-
symbol: TokenSymbol.
|
|
50
|
-
name: 'Mento
|
|
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: '
|
|
55
|
-
symbol: TokenSymbol.
|
|
56
|
-
name: 'Mento
|
|
69
|
+
address: '0x765DE816845861e75A25fCA122bb6898B8B1282a',
|
|
70
|
+
symbol: TokenSymbol.USDm,
|
|
71
|
+
name: 'Mento Dollar',
|
|
57
72
|
decimals: 18,
|
|
58
73
|
},
|
|
59
74
|
{
|
|
60
|
-
address: '
|
|
61
|
-
symbol: TokenSymbol.
|
|
62
|
-
name: '
|
|
63
|
-
decimals:
|
|
75
|
+
address: '0xEB466342C4d449BC9f53A865D5Cb90586f405215',
|
|
76
|
+
symbol: TokenSymbol.axlUSDC,
|
|
77
|
+
name: 'Axelar Wrapped USDC',
|
|
78
|
+
decimals: 6,
|
|
64
79
|
},
|
|
65
80
|
{
|
|
66
|
-
address: '
|
|
67
|
-
symbol: TokenSymbol.
|
|
68
|
-
name: '
|
|
69
|
-
decimals:
|
|
81
|
+
address: '0xcebA9300f2b948710d2653dD7B07f33A8B32118C',
|
|
82
|
+
symbol: TokenSymbol.USDC,
|
|
83
|
+
name: 'USDC',
|
|
84
|
+
decimals: 6,
|
|
70
85
|
},
|
|
71
86
|
{
|
|
72
|
-
address: '
|
|
73
|
-
symbol: TokenSymbol.
|
|
74
|
-
name: '
|
|
75
|
-
decimals:
|
|
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: '
|
|
121
|
-
symbol: TokenSymbol.
|
|
122
|
-
name: 'Mento
|
|
123
|
+
address: '0x456a3D042C0DbD3db53D5489e98dFb038553B0d0',
|
|
124
|
+
symbol: TokenSymbol.KESm,
|
|
125
|
+
name: 'Mento Kenyan Shilling',
|
|
123
126
|
decimals: 18,
|
|
124
127
|
},
|
|
125
128
|
{
|
|
126
|
-
address: '
|
|
127
|
-
symbol: TokenSymbol.
|
|
128
|
-
name: '
|
|
129
|
+
address: '0xff4Ab19391af240c311c54200a492233052B6325',
|
|
130
|
+
symbol: TokenSymbol.CADm,
|
|
131
|
+
name: 'Mento Canadian Dollar',
|
|
129
132
|
decimals: 18,
|
|
130
133
|
},
|
|
131
134
|
{
|
|
132
|
-
address: '
|
|
133
|
-
symbol: TokenSymbol.
|
|
134
|
-
name: '
|
|
135
|
-
decimals:
|
|
135
|
+
address: '0x105d4A9306D2E55a71d2Eb95B81553AE1dC20d7B',
|
|
136
|
+
symbol: TokenSymbol.PHPm,
|
|
137
|
+
name: 'Mento Philippine Peso',
|
|
138
|
+
decimals: 18,
|
|
136
139
|
},
|
|
137
140
|
{
|
|
138
|
-
address: '
|
|
139
|
-
symbol: TokenSymbol.
|
|
140
|
-
name: '
|
|
141
|
-
decimals:
|
|
141
|
+
address: '0xc45eCF20f3CD864B32D9794d6f76814aE8892e20',
|
|
142
|
+
symbol: TokenSymbol.JPYm,
|
|
143
|
+
name: 'Mento Japanese Yen',
|
|
144
|
+
decimals: 18,
|
|
142
145
|
},
|
|
143
146
|
{
|
|
144
|
-
address: '
|
|
145
|
-
symbol: TokenSymbol.
|
|
146
|
-
name: '
|
|
147
|
-
decimals:
|
|
147
|
+
address: '0x8A567e2aE79CA692Bd748aB832081C45de4041eA',
|
|
148
|
+
symbol: TokenSymbol.COPm,
|
|
149
|
+
name: 'Mento Colombian Peso',
|
|
150
|
+
decimals: 18,
|
|
148
151
|
},
|
|
149
152
|
{
|
|
150
|
-
address: '
|
|
151
|
-
symbol: TokenSymbol.
|
|
152
|
-
name: '
|
|
153
|
-
decimals:
|
|
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: '
|
|
160
|
-
symbol: TokenSymbol.
|
|
161
|
-
name: 'Mento
|
|
168
|
+
address: '0x85F5181Abdbf0e1814Fc4358582Ae07b8eBA3aF3',
|
|
169
|
+
symbol: TokenSymbol.GBPm,
|
|
170
|
+
name: 'Mento British Pound',
|
|
162
171
|
decimals: 18,
|
|
163
172
|
},
|
|
164
173
|
{
|
|
165
|
-
address: '
|
|
166
|
-
symbol: TokenSymbol.
|
|
167
|
-
name: 'Mento
|
|
174
|
+
address: '0xdE9e4C3ce781b4bA68120d6261cbad65ce0aB00b',
|
|
175
|
+
symbol: TokenSymbol.USDm,
|
|
176
|
+
name: 'Mento Dollar',
|
|
168
177
|
decimals: 18,
|
|
169
178
|
},
|
|
170
179
|
{
|
|
171
|
-
address: '
|
|
172
|
-
symbol: TokenSymbol.
|
|
173
|
-
name: 'Mento
|
|
180
|
+
address: '0x6285De9DA7C1d329C0451628638908915002d9d1',
|
|
181
|
+
symbol: TokenSymbol.axlUSDC,
|
|
182
|
+
name: 'Mento Mock axlUSDC',
|
|
174
183
|
decimals: 18,
|
|
175
184
|
},
|
|
176
185
|
{
|
|
177
|
-
address: '
|
|
178
|
-
symbol: TokenSymbol.
|
|
179
|
-
name: '
|
|
180
|
-
decimals:
|
|
186
|
+
address: '0x01C5C0122039549AD1493B8220cABEdD739BC44E',
|
|
187
|
+
symbol: TokenSymbol.USDC,
|
|
188
|
+
name: 'USDC',
|
|
189
|
+
decimals: 6,
|
|
181
190
|
},
|
|
182
191
|
{
|
|
183
|
-
address: '
|
|
184
|
-
symbol: TokenSymbol.
|
|
185
|
-
name: '
|
|
186
|
-
decimals:
|
|
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: '
|
|
196
|
-
symbol: TokenSymbol.
|
|
197
|
-
name: 'Mento
|
|
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: '
|
|
214
|
-
symbol: TokenSymbol.
|
|
215
|
-
name: 'Mento
|
|
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: '
|
|
226
|
-
symbol: TokenSymbol.
|
|
227
|
-
name: 'Mento
|
|
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: '
|
|
244
|
-
symbol: TokenSymbol.
|
|
245
|
-
name: 'Mento
|
|
240
|
+
address: '0x5F8d55c3627d2dc0a2B4afa798f877242F382F67',
|
|
241
|
+
symbol: TokenSymbol.COPm,
|
|
242
|
+
name: 'Mento Colombian Peso',
|
|
246
243
|
decimals: 18,
|
|
247
244
|
},
|
|
248
245
|
{
|
|
249
|
-
address: '
|
|
250
|
-
symbol: TokenSymbol.
|
|
251
|
-
name: 'Mento
|
|
246
|
+
address: '0x2294298942fdc79417DE9E0D740A4957E0e7783a',
|
|
247
|
+
symbol: TokenSymbol.BRLm,
|
|
248
|
+
name: 'Mento Brazilian Real',
|
|
252
249
|
decimals: 18,
|
|
253
250
|
},
|
|
254
251
|
{
|
|
255
|
-
address: '
|
|
256
|
-
symbol: TokenSymbol.
|
|
257
|
-
name: '
|
|
252
|
+
address: '0x5e94B8C872bD47BC4255E60ECBF44D5E66e7401C',
|
|
253
|
+
symbol: TokenSymbol.GHSm,
|
|
254
|
+
name: 'Mento Ghanaian Cedi',
|
|
258
255
|
decimals: 18,
|
|
259
256
|
},
|
|
260
257
|
{
|
|
261
|
-
address: '
|
|
262
|
-
symbol: TokenSymbol.
|
|
263
|
-
name: 'Mento
|
|
258
|
+
address: '0x3d5ae86F34E2a82771496D140daFAEf3789dF888',
|
|
259
|
+
symbol: TokenSymbol.NGNm,
|
|
260
|
+
name: 'Mento Nigerian Naira',
|
|
264
261
|
decimals: 18,
|
|
265
262
|
},
|
|
266
263
|
{
|
|
267
|
-
address: '
|
|
268
|
-
symbol: TokenSymbol.
|
|
269
|
-
name: '
|
|
270
|
-
decimals:
|
|
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.
|
|
288
|
-
[TokenSymbol.
|
|
289
|
-
[TokenSymbol.
|
|
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.
|
|
302
|
-
[TokenSymbol.
|
|
303
|
-
[TokenSymbol.
|
|
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.
|
|
310
|
-
[TokenSymbol.
|
|
311
|
-
[TokenSymbol.
|
|
312
|
-
[TokenSymbol.KESm]: '0xC7e4635651E3e3Af82b61d3E23c159438daE3BbF',
|
|
305
|
+
[TokenSymbol.axlUSDC]: '0x6285De9DA7C1d329C0451628638908915002d9d1',
|
|
306
|
+
[TokenSymbol.USDC]: '0x01C5C0122039549AD1493B8220cABEdD739BC44E',
|
|
307
|
+
[TokenSymbol.USD_]: '0xd077A400968890Eacc75cdc901F0356c943e4fDb',
|
|
313
308
|
[TokenSymbol.PHPm]: '0x0352976d940a2C3FBa0C3623198947Ee1d17869E',
|
|
314
|
-
[TokenSymbol.
|
|
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.
|
|
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
|
|
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 {
|
|
53
|
-
* poolAddress,
|
|
54
|
-
*
|
|
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,
|
|
60
|
-
*
|
|
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) {
|
|
@@ -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 >
|
|
30
|
-
throw new Error(
|
|
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
|
|
63
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
/**
|