@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,256 @@
1
+ /**
2
+ * Aave V3 Pool ABI subset — Mantle deployment.
3
+ *
4
+ * Pool: 0x458F293454fE0d67EC0655f3672301301DD51422
5
+ * PoolAddressesProvider: 0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f
6
+ * ProtocolDataProvider: 0x487c5c669D9eee6057C44973207101276cf73b68
7
+ */
8
+ export declare const AAVE_V3_POOL_ABI: readonly [{
9
+ readonly type: "function";
10
+ readonly name: "supply";
11
+ readonly stateMutability: "nonpayable";
12
+ readonly inputs: readonly [{
13
+ readonly name: "asset";
14
+ readonly type: "address";
15
+ }, {
16
+ readonly name: "amount";
17
+ readonly type: "uint256";
18
+ }, {
19
+ readonly name: "onBehalfOf";
20
+ readonly type: "address";
21
+ }, {
22
+ readonly name: "referralCode";
23
+ readonly type: "uint16";
24
+ }];
25
+ readonly outputs: readonly [];
26
+ }, {
27
+ readonly type: "function";
28
+ readonly name: "withdraw";
29
+ readonly stateMutability: "nonpayable";
30
+ readonly inputs: readonly [{
31
+ readonly name: "asset";
32
+ readonly type: "address";
33
+ }, {
34
+ readonly name: "amount";
35
+ readonly type: "uint256";
36
+ }, {
37
+ readonly name: "to";
38
+ readonly type: "address";
39
+ }];
40
+ readonly outputs: readonly [{
41
+ readonly name: "";
42
+ readonly type: "uint256";
43
+ }];
44
+ }, {
45
+ readonly type: "function";
46
+ readonly name: "borrow";
47
+ readonly stateMutability: "nonpayable";
48
+ readonly inputs: readonly [{
49
+ readonly name: "asset";
50
+ readonly type: "address";
51
+ }, {
52
+ readonly name: "amount";
53
+ readonly type: "uint256";
54
+ }, {
55
+ readonly name: "interestRateMode";
56
+ readonly type: "uint256";
57
+ }, {
58
+ readonly name: "referralCode";
59
+ readonly type: "uint16";
60
+ }, {
61
+ readonly name: "onBehalfOf";
62
+ readonly type: "address";
63
+ }];
64
+ readonly outputs: readonly [];
65
+ }, {
66
+ readonly type: "function";
67
+ readonly name: "repay";
68
+ readonly stateMutability: "nonpayable";
69
+ readonly inputs: readonly [{
70
+ readonly name: "asset";
71
+ readonly type: "address";
72
+ }, {
73
+ readonly name: "amount";
74
+ readonly type: "uint256";
75
+ }, {
76
+ readonly name: "interestRateMode";
77
+ readonly type: "uint256";
78
+ }, {
79
+ readonly name: "onBehalfOf";
80
+ readonly type: "address";
81
+ }];
82
+ readonly outputs: readonly [{
83
+ readonly name: "";
84
+ readonly type: "uint256";
85
+ }];
86
+ }, {
87
+ readonly type: "function";
88
+ readonly name: "getConfiguration";
89
+ readonly stateMutability: "view";
90
+ readonly inputs: readonly [{
91
+ readonly name: "asset";
92
+ readonly type: "address";
93
+ }];
94
+ readonly outputs: readonly [{
95
+ readonly name: "configuration";
96
+ readonly type: "uint256";
97
+ }];
98
+ }, {
99
+ readonly type: "function";
100
+ readonly name: "getUserAccountData";
101
+ readonly stateMutability: "view";
102
+ readonly inputs: readonly [{
103
+ readonly name: "user";
104
+ readonly type: "address";
105
+ }];
106
+ readonly outputs: readonly [{
107
+ readonly name: "totalCollateralBase";
108
+ readonly type: "uint256";
109
+ }, {
110
+ readonly name: "totalDebtBase";
111
+ readonly type: "uint256";
112
+ }, {
113
+ readonly name: "availableBorrowsBase";
114
+ readonly type: "uint256";
115
+ }, {
116
+ readonly name: "currentLiquidationThreshold";
117
+ readonly type: "uint256";
118
+ }, {
119
+ readonly name: "ltv";
120
+ readonly type: "uint256";
121
+ }, {
122
+ readonly name: "healthFactor";
123
+ readonly type: "uint256";
124
+ }];
125
+ }, {
126
+ readonly type: "function";
127
+ readonly name: "getReserveData";
128
+ readonly stateMutability: "view";
129
+ readonly inputs: readonly [{
130
+ readonly name: "asset";
131
+ readonly type: "address";
132
+ }];
133
+ readonly outputs: readonly [{
134
+ readonly name: "";
135
+ readonly type: "tuple";
136
+ readonly components: readonly [{
137
+ readonly name: "configuration";
138
+ readonly type: "uint256";
139
+ }, {
140
+ readonly name: "liquidityIndex";
141
+ readonly type: "uint128";
142
+ }, {
143
+ readonly name: "currentLiquidityRate";
144
+ readonly type: "uint128";
145
+ }, {
146
+ readonly name: "variableBorrowIndex";
147
+ readonly type: "uint128";
148
+ }, {
149
+ readonly name: "currentVariableBorrowRate";
150
+ readonly type: "uint128";
151
+ }, {
152
+ readonly name: "currentStableBorrowRate";
153
+ readonly type: "uint128";
154
+ }, {
155
+ readonly name: "lastUpdateTimestamp";
156
+ readonly type: "uint40";
157
+ }, {
158
+ readonly name: "id";
159
+ readonly type: "uint16";
160
+ }, {
161
+ readonly name: "aTokenAddress";
162
+ readonly type: "address";
163
+ }, {
164
+ readonly name: "stableDebtTokenAddress";
165
+ readonly type: "address";
166
+ }, {
167
+ readonly name: "variableDebtTokenAddress";
168
+ readonly type: "address";
169
+ }, {
170
+ readonly name: "interestRateStrategyAddress";
171
+ readonly type: "address";
172
+ }, {
173
+ readonly name: "accruedToTreasury";
174
+ readonly type: "uint128";
175
+ }, {
176
+ readonly name: "unbacked";
177
+ readonly type: "uint128";
178
+ }, {
179
+ readonly name: "isolationModeTotalDebt";
180
+ readonly type: "uint128";
181
+ }];
182
+ }];
183
+ }];
184
+ /**
185
+ * Aave V3 WETH Gateway ABI subset — for native MNT supply/withdraw.
186
+ *
187
+ * WETHGateway: 0x9C6cCAC66b1c9AbA4855e2dD284b9e16e41E06eA
188
+ */
189
+ export declare const AAVE_V3_WETH_GATEWAY_ABI: readonly [{
190
+ readonly type: "function";
191
+ readonly name: "depositETH";
192
+ readonly stateMutability: "payable";
193
+ readonly inputs: readonly [{
194
+ readonly name: "pool";
195
+ readonly type: "address";
196
+ }, {
197
+ readonly name: "onBehalfOf";
198
+ readonly type: "address";
199
+ }, {
200
+ readonly name: "referralCode";
201
+ readonly type: "uint16";
202
+ }];
203
+ readonly outputs: readonly [];
204
+ }, {
205
+ readonly type: "function";
206
+ readonly name: "withdrawETH";
207
+ readonly stateMutability: "nonpayable";
208
+ readonly inputs: readonly [{
209
+ readonly name: "pool";
210
+ readonly type: "address";
211
+ }, {
212
+ readonly name: "amount";
213
+ readonly type: "uint256";
214
+ }, {
215
+ readonly name: "to";
216
+ readonly type: "address";
217
+ }];
218
+ readonly outputs: readonly [];
219
+ }, {
220
+ readonly type: "function";
221
+ readonly name: "repayETH";
222
+ readonly stateMutability: "payable";
223
+ readonly inputs: readonly [{
224
+ readonly name: "pool";
225
+ readonly type: "address";
226
+ }, {
227
+ readonly name: "amount";
228
+ readonly type: "uint256";
229
+ }, {
230
+ readonly name: "interestRateMode";
231
+ readonly type: "uint256";
232
+ }, {
233
+ readonly name: "onBehalfOf";
234
+ readonly type: "address";
235
+ }];
236
+ readonly outputs: readonly [];
237
+ }, {
238
+ readonly type: "function";
239
+ readonly name: "borrowETH";
240
+ readonly stateMutability: "nonpayable";
241
+ readonly inputs: readonly [{
242
+ readonly name: "pool";
243
+ readonly type: "address";
244
+ }, {
245
+ readonly name: "amount";
246
+ readonly type: "uint256";
247
+ }, {
248
+ readonly name: "interestRateMode";
249
+ readonly type: "uint256";
250
+ }, {
251
+ readonly name: "referralCode";
252
+ readonly type: "uint16";
253
+ }];
254
+ readonly outputs: readonly [];
255
+ }];
256
+ //# sourceMappingURL=aave-v3-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aave-v3-pool.d.ts","sourceRoot":"","sources":["../../../src/lib/abis/aave-v3-pool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwGnB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+C3B,CAAC"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Aave V3 Pool ABI subset — Mantle deployment.
3
+ *
4
+ * Pool: 0x458F293454fE0d67EC0655f3672301301DD51422
5
+ * PoolAddressesProvider: 0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f
6
+ * ProtocolDataProvider: 0x487c5c669D9eee6057C44973207101276cf73b68
7
+ */
8
+ export const AAVE_V3_POOL_ABI = [
9
+ // ---- Core user-facing ----
10
+ {
11
+ type: "function",
12
+ name: "supply",
13
+ stateMutability: "nonpayable",
14
+ inputs: [
15
+ { name: "asset", type: "address" },
16
+ { name: "amount", type: "uint256" },
17
+ { name: "onBehalfOf", type: "address" },
18
+ { name: "referralCode", type: "uint16" }
19
+ ],
20
+ outputs: []
21
+ },
22
+ {
23
+ type: "function",
24
+ name: "withdraw",
25
+ stateMutability: "nonpayable",
26
+ inputs: [
27
+ { name: "asset", type: "address" },
28
+ { name: "amount", type: "uint256" },
29
+ { name: "to", type: "address" }
30
+ ],
31
+ outputs: [{ name: "", type: "uint256" }]
32
+ },
33
+ {
34
+ type: "function",
35
+ name: "borrow",
36
+ stateMutability: "nonpayable",
37
+ inputs: [
38
+ { name: "asset", type: "address" },
39
+ { name: "amount", type: "uint256" },
40
+ { name: "interestRateMode", type: "uint256" },
41
+ { name: "referralCode", type: "uint16" },
42
+ { name: "onBehalfOf", type: "address" }
43
+ ],
44
+ outputs: []
45
+ },
46
+ {
47
+ type: "function",
48
+ name: "repay",
49
+ stateMutability: "nonpayable",
50
+ inputs: [
51
+ { name: "asset", type: "address" },
52
+ { name: "amount", type: "uint256" },
53
+ { name: "interestRateMode", type: "uint256" },
54
+ { name: "onBehalfOf", type: "address" }
55
+ ],
56
+ outputs: [{ name: "", type: "uint256" }]
57
+ },
58
+ // ---- Configuration (packed bitmap) ----
59
+ {
60
+ type: "function",
61
+ name: "getConfiguration",
62
+ stateMutability: "view",
63
+ inputs: [{ name: "asset", type: "address" }],
64
+ outputs: [{ name: "configuration", type: "uint256" }]
65
+ },
66
+ // ---- Read helpers (useful for pre-checks) ----
67
+ {
68
+ type: "function",
69
+ name: "getUserAccountData",
70
+ stateMutability: "view",
71
+ inputs: [{ name: "user", type: "address" }],
72
+ outputs: [
73
+ { name: "totalCollateralBase", type: "uint256" },
74
+ { name: "totalDebtBase", type: "uint256" },
75
+ { name: "availableBorrowsBase", type: "uint256" },
76
+ { name: "currentLiquidationThreshold", type: "uint256" },
77
+ { name: "ltv", type: "uint256" },
78
+ { name: "healthFactor", type: "uint256" }
79
+ ]
80
+ },
81
+ {
82
+ type: "function",
83
+ name: "getReserveData",
84
+ stateMutability: "view",
85
+ inputs: [{ name: "asset", type: "address" }],
86
+ outputs: [
87
+ {
88
+ name: "",
89
+ type: "tuple",
90
+ components: [
91
+ { name: "configuration", type: "uint256" },
92
+ { name: "liquidityIndex", type: "uint128" },
93
+ { name: "currentLiquidityRate", type: "uint128" },
94
+ { name: "variableBorrowIndex", type: "uint128" },
95
+ { name: "currentVariableBorrowRate", type: "uint128" },
96
+ { name: "currentStableBorrowRate", type: "uint128" },
97
+ { name: "lastUpdateTimestamp", type: "uint40" },
98
+ { name: "id", type: "uint16" },
99
+ { name: "aTokenAddress", type: "address" },
100
+ { name: "stableDebtTokenAddress", type: "address" },
101
+ { name: "variableDebtTokenAddress", type: "address" },
102
+ { name: "interestRateStrategyAddress", type: "address" },
103
+ { name: "accruedToTreasury", type: "uint128" },
104
+ { name: "unbacked", type: "uint128" },
105
+ { name: "isolationModeTotalDebt", type: "uint128" }
106
+ ]
107
+ }
108
+ ]
109
+ }
110
+ ];
111
+ /**
112
+ * Aave V3 WETH Gateway ABI subset — for native MNT supply/withdraw.
113
+ *
114
+ * WETHGateway: 0x9C6cCAC66b1c9AbA4855e2dD284b9e16e41E06eA
115
+ */
116
+ export const AAVE_V3_WETH_GATEWAY_ABI = [
117
+ {
118
+ type: "function",
119
+ name: "depositETH",
120
+ stateMutability: "payable",
121
+ inputs: [
122
+ { name: "pool", type: "address" },
123
+ { name: "onBehalfOf", type: "address" },
124
+ { name: "referralCode", type: "uint16" }
125
+ ],
126
+ outputs: []
127
+ },
128
+ {
129
+ type: "function",
130
+ name: "withdrawETH",
131
+ stateMutability: "nonpayable",
132
+ inputs: [
133
+ { name: "pool", type: "address" },
134
+ { name: "amount", type: "uint256" },
135
+ { name: "to", type: "address" }
136
+ ],
137
+ outputs: []
138
+ },
139
+ {
140
+ type: "function",
141
+ name: "repayETH",
142
+ stateMutability: "payable",
143
+ inputs: [
144
+ { name: "pool", type: "address" },
145
+ { name: "amount", type: "uint256" },
146
+ { name: "interestRateMode", type: "uint256" },
147
+ { name: "onBehalfOf", type: "address" }
148
+ ],
149
+ outputs: []
150
+ },
151
+ {
152
+ type: "function",
153
+ name: "borrowETH",
154
+ stateMutability: "nonpayable",
155
+ inputs: [
156
+ { name: "pool", type: "address" },
157
+ { name: "amount", type: "uint256" },
158
+ { name: "interestRateMode", type: "uint256" },
159
+ { name: "referralCode", type: "uint16" }
160
+ ],
161
+ outputs: []
162
+ }
163
+ ];
164
+ //# sourceMappingURL=aave-v3-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aave-v3-pool.js","sourceRoot":"","sources":["../../../src/lib/abis/aave-v3-pool.ts"],"names":[],"mappings":"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"}