@0xwh1sker/mantle-core 0.1.3

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 (124) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +36 -0
  3. package/dist/capability-catalog.d.ts +38 -0
  4. package/dist/capability-catalog.d.ts.map +1 -0
  5. package/dist/capability-catalog.js +449 -0
  6. package/dist/capability-catalog.js.map +1 -0
  7. package/dist/config/aave-reserves.d.ts +56 -0
  8. package/dist/config/aave-reserves.d.ts.map +1 -0
  9. package/dist/config/aave-reserves.js +154 -0
  10. package/dist/config/aave-reserves.js.map +1 -0
  11. package/dist/config/chains.d.ts +18 -0
  12. package/dist/config/chains.d.ts.map +1 -0
  13. package/dist/config/chains.js +30 -0
  14. package/dist/config/chains.js.map +1 -0
  15. package/dist/config/dex-pairs.d.ts +92 -0
  16. package/dist/config/dex-pairs.d.ts.map +1 -0
  17. package/dist/config/dex-pairs.js +328 -0
  18. package/dist/config/dex-pairs.js.map +1 -0
  19. package/dist/config/protocols.d.ts +20 -0
  20. package/dist/config/protocols.d.ts.map +1 -0
  21. package/dist/config/protocols.js +112 -0
  22. package/dist/config/protocols.js.map +1 -0
  23. package/dist/config/registry.json +208 -0
  24. package/dist/config/tokens.d.ts +9 -0
  25. package/dist/config/tokens.d.ts.map +1 -0
  26. package/dist/config/tokens.js +167 -0
  27. package/dist/config/tokens.js.map +1 -0
  28. package/dist/errors.d.ts +14 -0
  29. package/dist/errors.d.ts.map +1 -0
  30. package/dist/errors.js +30 -0
  31. package/dist/errors.js.map +1 -0
  32. package/dist/index.d.ts +5 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +5 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/lib/abis/aave-v3-pool.d.ts +256 -0
  37. package/dist/lib/abis/aave-v3-pool.d.ts.map +1 -0
  38. package/dist/lib/abis/aave-v3-pool.js +164 -0
  39. package/dist/lib/abis/aave-v3-pool.js.map +1 -0
  40. package/dist/lib/abis/merchant-moe-lb.d.ts +527 -0
  41. package/dist/lib/abis/merchant-moe-lb.d.ts.map +1 -0
  42. package/dist/lib/abis/merchant-moe-lb.js +330 -0
  43. package/dist/lib/abis/merchant-moe-lb.js.map +1 -0
  44. package/dist/lib/abis/uniswap-v3.d.ts +460 -0
  45. package/dist/lib/abis/uniswap-v3.d.ts.map +1 -0
  46. package/dist/lib/abis/uniswap-v3.js +319 -0
  47. package/dist/lib/abis/uniswap-v3.js.map +1 -0
  48. package/dist/lib/abis/wmnt.d.ts +90 -0
  49. package/dist/lib/abis/wmnt.d.ts.map +1 -0
  50. package/dist/lib/abis/wmnt.js +67 -0
  51. package/dist/lib/abis/wmnt.js.map +1 -0
  52. package/dist/lib/clients.d.ts +5 -0
  53. package/dist/lib/clients.d.ts.map +1 -0
  54. package/dist/lib/clients.js +41 -0
  55. package/dist/lib/clients.js.map +1 -0
  56. package/dist/lib/endpoint-policy.d.ts +19 -0
  57. package/dist/lib/endpoint-policy.d.ts.map +1 -0
  58. package/dist/lib/endpoint-policy.js +158 -0
  59. package/dist/lib/endpoint-policy.js.map +1 -0
  60. package/dist/lib/erc20.d.ts +113 -0
  61. package/dist/lib/erc20.d.ts.map +1 -0
  62. package/dist/lib/erc20.js +79 -0
  63. package/dist/lib/erc20.js.map +1 -0
  64. package/dist/lib/network.d.ts +8 -0
  65. package/dist/lib/network.d.ts.map +1 -0
  66. package/dist/lib/network.js +21 -0
  67. package/dist/lib/network.js.map +1 -0
  68. package/dist/lib/registry.d.ts +26 -0
  69. package/dist/lib/registry.d.ts.map +1 -0
  70. package/dist/lib/registry.js +22 -0
  71. package/dist/lib/registry.js.map +1 -0
  72. package/dist/lib/token-list.d.ts +14 -0
  73. package/dist/lib/token-list.d.ts.map +1 -0
  74. package/dist/lib/token-list.js +42 -0
  75. package/dist/lib/token-list.js.map +1 -0
  76. package/dist/lib/token-registry.d.ts +11 -0
  77. package/dist/lib/token-registry.d.ts.map +1 -0
  78. package/dist/lib/token-registry.js +75 -0
  79. package/dist/lib/token-registry.js.map +1 -0
  80. package/dist/tools/account.d.ts +16 -0
  81. package/dist/tools/account.d.ts.map +1 -0
  82. package/dist/tools/account.js +209 -0
  83. package/dist/tools/account.js.map +1 -0
  84. package/dist/tools/chain.d.ts +15 -0
  85. package/dist/tools/chain.d.ts.map +1 -0
  86. package/dist/tools/chain.js +77 -0
  87. package/dist/tools/chain.js.map +1 -0
  88. package/dist/tools/defi-lp-read.d.ts +14 -0
  89. package/dist/tools/defi-lp-read.d.ts.map +1 -0
  90. package/dist/tools/defi-lp-read.js +1184 -0
  91. package/dist/tools/defi-lp-read.js.map +1 -0
  92. package/dist/tools/defi-read.d.ts +186 -0
  93. package/dist/tools/defi-read.d.ts.map +1 -0
  94. package/dist/tools/defi-read.js +1682 -0
  95. package/dist/tools/defi-read.js.map +1 -0
  96. package/dist/tools/defi-write.d.ts +66 -0
  97. package/dist/tools/defi-write.d.ts.map +1 -0
  98. package/dist/tools/defi-write.js +1888 -0
  99. package/dist/tools/defi-write.js.map +1 -0
  100. package/dist/tools/diagnostics.d.ts +10 -0
  101. package/dist/tools/diagnostics.d.ts.map +1 -0
  102. package/dist/tools/diagnostics.js +143 -0
  103. package/dist/tools/diagnostics.js.map +1 -0
  104. package/dist/tools/index.d.ts +12 -0
  105. package/dist/tools/index.d.ts.map +1 -0
  106. package/dist/tools/index.js +31 -0
  107. package/dist/tools/index.js.map +1 -0
  108. package/dist/tools/indexer.d.ts +17 -0
  109. package/dist/tools/indexer.d.ts.map +1 -0
  110. package/dist/tools/indexer.js +174 -0
  111. package/dist/tools/indexer.js.map +1 -0
  112. package/dist/tools/registry.d.ts +13 -0
  113. package/dist/tools/registry.d.ts.map +1 -0
  114. package/dist/tools/registry.js +161 -0
  115. package/dist/tools/registry.js.map +1 -0
  116. package/dist/tools/token.d.ts +21 -0
  117. package/dist/tools/token.d.ts.map +1 -0
  118. package/dist/tools/token.js +444 -0
  119. package/dist/tools/token.js.map +1 -0
  120. package/dist/types.d.ts +18 -0
  121. package/dist/types.d.ts.map +1 -0
  122. package/dist/types.js +2 -0
  123. package/dist/types.js.map +1 -0
  124. package/package.json +38 -0
@@ -0,0 +1,330 @@
1
+ /**
2
+ * Merchant Moe Liquidity Book V2.2 Router ABI subset.
3
+ *
4
+ * LB Router V2.2: 0x013e138EF6008ae5FDFDE29700e3f2Bc61d21E3a
5
+ * MoeRouter: 0xeaEE7EE68874218c3558b40063c42B82D3E7232a
6
+ *
7
+ * The LB Router supports both swap and liquidity operations.
8
+ * MoeRouter is a simpler V1-style router for swap-only.
9
+ */
10
+ // ---------------------------------------------------------------------------
11
+ // LB Router V2.2 — swap + liquidity
12
+ // ---------------------------------------------------------------------------
13
+ export const LB_ROUTER_ABI = [
14
+ // ---- Swap ----
15
+ {
16
+ type: "function",
17
+ name: "swapExactTokensForTokens",
18
+ stateMutability: "nonpayable",
19
+ inputs: [
20
+ { name: "amountIn", type: "uint256" },
21
+ { name: "amountOutMin", type: "uint256" },
22
+ {
23
+ name: "path",
24
+ type: "tuple",
25
+ components: [
26
+ { name: "pairBinSteps", type: "uint256[]" },
27
+ { name: "versions", type: "uint8[]" },
28
+ { name: "tokenPath", type: "address[]" }
29
+ ]
30
+ },
31
+ { name: "to", type: "address" },
32
+ { name: "deadline", type: "uint256" }
33
+ ],
34
+ outputs: [{ name: "amountOut", type: "uint256" }]
35
+ },
36
+ {
37
+ type: "function",
38
+ name: "swapExactTokensForMNT",
39
+ stateMutability: "nonpayable",
40
+ inputs: [
41
+ { name: "amountIn", type: "uint256" },
42
+ { name: "amountOutMinMNT", type: "uint256" },
43
+ {
44
+ name: "path",
45
+ type: "tuple",
46
+ components: [
47
+ { name: "pairBinSteps", type: "uint256[]" },
48
+ { name: "versions", type: "uint8[]" },
49
+ { name: "tokenPath", type: "address[]" }
50
+ ]
51
+ },
52
+ { name: "to", type: "address" },
53
+ { name: "deadline", type: "uint256" }
54
+ ],
55
+ outputs: [{ name: "amountOut", type: "uint256" }]
56
+ },
57
+ {
58
+ type: "function",
59
+ name: "swapExactMNTForTokens",
60
+ stateMutability: "payable",
61
+ inputs: [
62
+ { name: "amountOutMin", type: "uint256" },
63
+ {
64
+ name: "path",
65
+ type: "tuple",
66
+ components: [
67
+ { name: "pairBinSteps", type: "uint256[]" },
68
+ { name: "versions", type: "uint8[]" },
69
+ { name: "tokenPath", type: "address[]" }
70
+ ]
71
+ },
72
+ { name: "to", type: "address" },
73
+ { name: "deadline", type: "uint256" }
74
+ ],
75
+ outputs: [{ name: "amountOut", type: "uint256" }]
76
+ },
77
+ // ---- Liquidity ----
78
+ {
79
+ type: "function",
80
+ name: "addLiquidity",
81
+ stateMutability: "nonpayable",
82
+ inputs: [
83
+ {
84
+ name: "liquidityParameters",
85
+ type: "tuple",
86
+ components: [
87
+ { name: "tokenX", type: "address" },
88
+ { name: "tokenY", type: "address" },
89
+ { name: "binStep", type: "uint256" },
90
+ { name: "amountX", type: "uint256" },
91
+ { name: "amountY", type: "uint256" },
92
+ { name: "amountXMin", type: "uint256" },
93
+ { name: "amountYMin", type: "uint256" },
94
+ { name: "activeIdDesired", type: "uint256" },
95
+ { name: "idSlippage", type: "uint256" },
96
+ { name: "deltaIds", type: "int256[]" },
97
+ { name: "distributionX", type: "uint256[]" },
98
+ { name: "distributionY", type: "uint256[]" },
99
+ { name: "to", type: "address" },
100
+ { name: "refundTo", type: "address" },
101
+ { name: "deadline", type: "uint256" }
102
+ ]
103
+ }
104
+ ],
105
+ outputs: [
106
+ { name: "amountXAdded", type: "uint256" },
107
+ { name: "amountYAdded", type: "uint256" },
108
+ { name: "amountXLeft", type: "uint256" },
109
+ { name: "amountYLeft", type: "uint256" },
110
+ { name: "depositIds", type: "uint256[]" },
111
+ { name: "liquidityMinted", type: "uint256[]" }
112
+ ]
113
+ },
114
+ {
115
+ type: "function",
116
+ name: "addLiquidityMNT",
117
+ stateMutability: "payable",
118
+ inputs: [
119
+ {
120
+ name: "liquidityParameters",
121
+ type: "tuple",
122
+ components: [
123
+ { name: "tokenX", type: "address" },
124
+ { name: "tokenY", type: "address" },
125
+ { name: "binStep", type: "uint256" },
126
+ { name: "amountX", type: "uint256" },
127
+ { name: "amountY", type: "uint256" },
128
+ { name: "amountXMin", type: "uint256" },
129
+ { name: "amountYMin", type: "uint256" },
130
+ { name: "activeIdDesired", type: "uint256" },
131
+ { name: "idSlippage", type: "uint256" },
132
+ { name: "deltaIds", type: "int256[]" },
133
+ { name: "distributionX", type: "uint256[]" },
134
+ { name: "distributionY", type: "uint256[]" },
135
+ { name: "to", type: "address" },
136
+ { name: "refundTo", type: "address" },
137
+ { name: "deadline", type: "uint256" }
138
+ ]
139
+ }
140
+ ],
141
+ outputs: [
142
+ { name: "amountXAdded", type: "uint256" },
143
+ { name: "amountYAdded", type: "uint256" },
144
+ { name: "amountXLeft", type: "uint256" },
145
+ { name: "amountYLeft", type: "uint256" },
146
+ { name: "depositIds", type: "uint256[]" },
147
+ { name: "liquidityMinted", type: "uint256[]" }
148
+ ]
149
+ },
150
+ {
151
+ type: "function",
152
+ name: "removeLiquidity",
153
+ stateMutability: "nonpayable",
154
+ inputs: [
155
+ { name: "tokenX", type: "address" },
156
+ { name: "tokenY", type: "address" },
157
+ { name: "binStep", type: "uint16" },
158
+ { name: "amountXMin", type: "uint256" },
159
+ { name: "amountYMin", type: "uint256" },
160
+ { name: "ids", type: "uint256[]" },
161
+ { name: "amounts", type: "uint256[]" },
162
+ { name: "to", type: "address" },
163
+ { name: "deadline", type: "uint256" }
164
+ ],
165
+ outputs: [
166
+ { name: "amountX", type: "uint256" },
167
+ { name: "amountY", type: "uint256" }
168
+ ]
169
+ },
170
+ {
171
+ type: "function",
172
+ name: "removeLiquidityMNT",
173
+ stateMutability: "nonpayable",
174
+ inputs: [
175
+ { name: "token", type: "address" },
176
+ { name: "binStep", type: "uint16" },
177
+ { name: "amountTokenMin", type: "uint256" },
178
+ { name: "amountMNTMin", type: "uint256" },
179
+ { name: "ids", type: "uint256[]" },
180
+ { name: "amounts", type: "uint256[]" },
181
+ { name: "to", type: "address" },
182
+ { name: "deadline", type: "uint256" }
183
+ ],
184
+ outputs: [
185
+ { name: "amountToken", type: "uint256" },
186
+ { name: "amountMNT", type: "uint256" }
187
+ ]
188
+ }
189
+ ];
190
+ // ---------------------------------------------------------------------------
191
+ // MoeRouter — V1-style swap only (simpler interface)
192
+ // ---------------------------------------------------------------------------
193
+ export const MOE_ROUTER_ABI = [
194
+ {
195
+ type: "function",
196
+ name: "swapExactTokensForTokens",
197
+ stateMutability: "nonpayable",
198
+ inputs: [
199
+ { name: "amountIn", type: "uint256" },
200
+ { name: "amountOutMin", type: "uint256" },
201
+ { name: "path", type: "address[]" },
202
+ { name: "to", type: "address" },
203
+ { name: "deadline", type: "uint256" }
204
+ ],
205
+ outputs: [{ name: "amounts", type: "uint256[]" }]
206
+ },
207
+ {
208
+ type: "function",
209
+ name: "swapExactMNTForTokens",
210
+ stateMutability: "payable",
211
+ inputs: [
212
+ { name: "amountOutMin", type: "uint256" },
213
+ { name: "path", type: "address[]" },
214
+ { name: "to", type: "address" },
215
+ { name: "deadline", type: "uint256" }
216
+ ],
217
+ outputs: [{ name: "amounts", type: "uint256[]" }]
218
+ },
219
+ {
220
+ type: "function",
221
+ name: "swapExactTokensForMNT",
222
+ stateMutability: "nonpayable",
223
+ inputs: [
224
+ { name: "amountIn", type: "uint256" },
225
+ { name: "amountOutMin", type: "uint256" },
226
+ { name: "path", type: "address[]" },
227
+ { name: "to", type: "address" },
228
+ { name: "deadline", type: "uint256" }
229
+ ],
230
+ outputs: [{ name: "amounts", type: "uint256[]" }]
231
+ },
232
+ {
233
+ type: "function",
234
+ name: "getAmountsOut",
235
+ stateMutability: "view",
236
+ inputs: [
237
+ { name: "amountIn", type: "uint256" },
238
+ { name: "path", type: "address[]" }
239
+ ],
240
+ outputs: [{ name: "amounts", type: "uint256[]" }]
241
+ }
242
+ ];
243
+ // ---------------------------------------------------------------------------
244
+ // LB Pair — on-chain pool state queries
245
+ // ---------------------------------------------------------------------------
246
+ export const LB_PAIR_ABI = [
247
+ {
248
+ type: "function",
249
+ name: "getActiveId",
250
+ stateMutability: "view",
251
+ inputs: [],
252
+ outputs: [{ name: "activeId", type: "uint24" }]
253
+ },
254
+ {
255
+ type: "function",
256
+ name: "getBin",
257
+ stateMutability: "view",
258
+ inputs: [{ name: "id", type: "uint24" }],
259
+ outputs: [
260
+ { name: "binReserveX", type: "uint128" },
261
+ { name: "binReserveY", type: "uint128" }
262
+ ]
263
+ },
264
+ {
265
+ type: "function",
266
+ name: "getTokenX",
267
+ stateMutability: "view",
268
+ inputs: [],
269
+ outputs: [{ name: "", type: "address" }]
270
+ },
271
+ {
272
+ type: "function",
273
+ name: "getTokenY",
274
+ stateMutability: "view",
275
+ inputs: [],
276
+ outputs: [{ name: "", type: "address" }]
277
+ },
278
+ {
279
+ type: "function",
280
+ name: "getBinStep",
281
+ stateMutability: "view",
282
+ inputs: [],
283
+ outputs: [{ name: "", type: "uint16" }]
284
+ },
285
+ {
286
+ type: "function",
287
+ name: "balanceOf",
288
+ stateMutability: "view",
289
+ inputs: [
290
+ { name: "account", type: "address" },
291
+ { name: "id", type: "uint256" }
292
+ ],
293
+ outputs: [{ name: "", type: "uint256" }]
294
+ },
295
+ {
296
+ type: "function",
297
+ name: "totalSupply",
298
+ stateMutability: "view",
299
+ inputs: [{ name: "id", type: "uint256" }],
300
+ outputs: [{ name: "", type: "uint256" }]
301
+ }
302
+ ];
303
+ // ---------------------------------------------------------------------------
304
+ // LB Factory — pair address resolution
305
+ // ---------------------------------------------------------------------------
306
+ export const LB_FACTORY_ABI = [
307
+ {
308
+ type: "function",
309
+ name: "getLBPairInformation",
310
+ stateMutability: "view",
311
+ inputs: [
312
+ { name: "tokenA", type: "address" },
313
+ { name: "tokenB", type: "address" },
314
+ { name: "binStep", type: "uint256" }
315
+ ],
316
+ outputs: [
317
+ {
318
+ name: "info",
319
+ type: "tuple",
320
+ components: [
321
+ { name: "binStep", type: "uint16" },
322
+ { name: "LBPair", type: "address" },
323
+ { name: "createdByOwner", type: "bool" },
324
+ { name: "ignoredForRouting", type: "bool" }
325
+ ]
326
+ }
327
+ ]
328
+ }
329
+ ];
330
+ //# sourceMappingURL=merchant-moe-lb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merchant-moe-lb.js","sourceRoot":"","sources":["../../../src/lib/abis/merchant-moe-lb.ts"],"names":[],"mappings":"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"}