impermax-sdk 1.0.0

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 (103) hide show
  1. package/.idea/impermax-sdk.iml +12 -0
  2. package/.idea/misc.xml +6 -0
  3. package/.idea/modules.xml +8 -0
  4. package/.idea/workspace.xml +642 -0
  5. package/abis/ImpermaxABI.ts +3 -0
  6. package/abis/contracts/BAllowance.json +4735 -0
  7. package/abis/contracts/BDeployer.json +1195 -0
  8. package/abis/contracts/BInterestRateModel.json +10796 -0
  9. package/abis/contracts/BSetter.json +6219 -0
  10. package/abis/contracts/BStorage.json +2613 -0
  11. package/abis/contracts/Borrowable.json +19937 -0
  12. package/abis/contracts/CDeployer.json +1104 -0
  13. package/abis/contracts/CSetter.json +5094 -0
  14. package/abis/contracts/CStorage.json +516 -0
  15. package/abis/contracts/ClaimAggregator.json +2015 -0
  16. package/abis/contracts/Collateral.json +21615 -0
  17. package/abis/contracts/ERC20.json +819 -0
  18. package/abis/contracts/Factory.json +21986 -0
  19. package/abis/contracts/FarmingPool.json +8601 -0
  20. package/abis/contracts/IBDeployer.json +351 -0
  21. package/abis/contracts/IBorrowTracker.json +346 -0
  22. package/abis/contracts/IBorrowable.json +13207 -0
  23. package/abis/contracts/ICDeployer.json +294 -0
  24. package/abis/contracts/IClaimable.json +406 -0
  25. package/abis/contracts/ICollateral.json +8952 -0
  26. package/abis/contracts/IERC20.json +2376 -0
  27. package/abis/contracts/IFactory.json +3660 -0
  28. package/abis/contracts/IFarmingPool.json +3584 -0
  29. package/abis/contracts/IImpermaxCallee.json +679 -0
  30. package/abis/contracts/IMerkleDistributor.json +1134 -0
  31. package/abis/contracts/IPoolToken.json +5343 -0
  32. package/abis/contracts/IRouter01.json +6891 -0
  33. package/abis/contracts/IRouter02.json +7283 -0
  34. package/abis/contracts/ISimpleUniswapOracle.json +1469 -0
  35. package/abis/contracts/IStakedLPToken.json +7309 -0
  36. package/abis/contracts/IStakingRewards.json +1036 -0
  37. package/abis/contracts/IUniswapV2Callee.json +403 -0
  38. package/abis/contracts/IUniswapV2ERC20.json +3155 -0
  39. package/abis/contracts/IUniswapV2Factory.json +1690 -0
  40. package/abis/contracts/IUniswapV2Pair.json +6761 -0
  41. package/abis/contracts/IWETH.json +561 -0
  42. package/abis/contracts/ImpermaxChef.json +20945 -0
  43. package/abis/contracts/ImpermaxERC20.json +12095 -0
  44. package/abis/contracts/Math.json +1966 -0
  45. package/abis/contracts/MockERC20.json +8884 -0
  46. package/abis/contracts/PoolToken.json +10784 -0
  47. package/abis/contracts/Router01.json +43963 -0
  48. package/abis/contracts/SafeMath.json +6828 -0
  49. package/abis/contracts/SimpleUniswapOracle.json +9640 -0
  50. package/abis/contracts/TransferHelper.json +4875 -0
  51. package/abis/contracts/UQ112x112.json +1201 -0
  52. package/abis/contracts/UniswapV2ERC20.json +10969 -0
  53. package/abis/contracts/UniswapV2Factory.json +5521 -0
  54. package/abis/contracts/UniswapV2Library.json +13789 -0
  55. package/abis/contracts/UniswapV2Pair.json +30782 -0
  56. package/abis/contracts/WETH9.json +6613 -0
  57. package/config/amms.ts +199 -0
  58. package/config/contracts/claim-aggregators.ts +16 -0
  59. package/config/contracts/impermax-chef.ts +16 -0
  60. package/config/contracts/imxes.ts +16 -0
  61. package/config/contracts/merkle-distributors.ts +13 -0
  62. package/config/contracts/routers.ts +36 -0
  63. package/config/contracts/simple-uniswap-oracles.ts +33 -0
  64. package/config/contracts/weths.ts +18 -0
  65. package/config/debank-ids.ts +15 -0
  66. package/config/endpoints/merkle-distributors.ts +13 -0
  67. package/config/eth.ts +32 -0
  68. package/config/factories.ts +26 -0
  69. package/config/farms.ts +119 -0
  70. package/config/general.ts +8 -0
  71. package/config/subgraphs.ts +69 -0
  72. package/config/types.ts +81 -0
  73. package/impermax-router/Account.ts +123 -0
  74. package/impermax-router/AccountBorrowable.ts +110 -0
  75. package/impermax-router/AccountCollateral.ts +40 -0
  76. package/impermax-router/AccountLendingPool.ts +231 -0
  77. package/impermax-router/AccountPoolToken.ts +76 -0
  78. package/impermax-router/Borrowable.ts +86 -0
  79. package/impermax-router/Collateral.ts +26 -0
  80. package/impermax-router/ContractsHelper.ts +64 -0
  81. package/impermax-router/ImpermaxFactory.ts +47 -0
  82. package/impermax-router/Interactions.ts +94 -0
  83. package/impermax-router/InteractionsLendingPool.ts +129 -0
  84. package/impermax-router/InteractionsPoolToken.ts +187 -0
  85. package/impermax-router/LendingPool.ts +256 -0
  86. package/impermax-router/PoolToken.ts +112 -0
  87. package/impermax-router/index.ts +49 -0
  88. package/impermax-router/interfaces.ts +233 -0
  89. package/index.ts +5 -0
  90. package/package.json +23 -0
  91. package/subgraph/Account.ts +93 -0
  92. package/subgraph/AccountLendingPool.ts +60 -0
  93. package/subgraph/AccountPoolToken.ts +60 -0
  94. package/subgraph/LendingPool.ts +179 -0
  95. package/subgraph/PoolToken.ts +381 -0
  96. package/subgraph/PriceHelper.ts +150 -0
  97. package/subgraph/SolidexHelper.ts +54 -0
  98. package/subgraph/index.ts +166 -0
  99. package/subgraph/initializer.ts +509 -0
  100. package/subgraph/query.ts +224 -0
  101. package/tsconfig.json +16 -0
  102. package/utils/ether-utils.ts +22 -0
  103. package/utils/index.ts +12 -0
@@ -0,0 +1,679 @@
1
+ {
2
+ "contractName": "IImpermaxCallee",
3
+ "abi": [
4
+ {
5
+ "inputs": [
6
+ {
7
+ "internalType": "address",
8
+ "name": "sender",
9
+ "type": "address"
10
+ },
11
+ {
12
+ "internalType": "address",
13
+ "name": "borrower",
14
+ "type": "address"
15
+ },
16
+ {
17
+ "internalType": "uint256",
18
+ "name": "borrowAmount",
19
+ "type": "uint256"
20
+ },
21
+ {
22
+ "internalType": "bytes",
23
+ "name": "data",
24
+ "type": "bytes"
25
+ }
26
+ ],
27
+ "name": "impermaxBorrow",
28
+ "outputs": [],
29
+ "stateMutability": "nonpayable",
30
+ "type": "function"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "address",
36
+ "name": "sender",
37
+ "type": "address"
38
+ },
39
+ {
40
+ "internalType": "uint256",
41
+ "name": "redeemAmount",
42
+ "type": "uint256"
43
+ },
44
+ {
45
+ "internalType": "bytes",
46
+ "name": "data",
47
+ "type": "bytes"
48
+ }
49
+ ],
50
+ "name": "impermaxRedeem",
51
+ "outputs": [],
52
+ "stateMutability": "nonpayable",
53
+ "type": "function"
54
+ }
55
+ ],
56
+ "metadata": "{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"borrowAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"impermaxBorrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"redeemAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"impermaxRedeem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/simor/Desktop/impermax-x-uniswapv2-periphery/contracts/interfaces/IImpermaxCallee.sol\":\"IImpermaxCallee\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/simor/Desktop/impermax-x-uniswapv2-periphery/contracts/interfaces/IImpermaxCallee.sol\":{\"keccak256\":\"0x8a34b6c59347d7246d45561ea6de67b7627bee144045fce316f3225e36a2165a\",\"urls\":[\"bzz-raw://22293bc770da410f1b534be76073f28f64ab62aeba8cae7225fc2058ab2356b1\",\"dweb:/ipfs/QmUmYVC4hUgqL8YGvVbTnFGzk4QbXw7zCGeA5EkuAEJtFN\"]}},\"version\":1}",
57
+ "bytecode": "0x",
58
+ "deployedBytecode": "0x",
59
+ "immutableReferences": {},
60
+ "sourceMap": "",
61
+ "deployedSourceMap": "",
62
+ "source": "pragma solidity >=0.5.0;\r\n\r\ninterface IImpermaxCallee {\r\n function impermaxBorrow(address sender, address borrower, uint borrowAmount, bytes calldata data) external;\r\n function impermaxRedeem(address sender, uint redeemAmount, bytes calldata data) external;\r\n}",
63
+ "sourcePath": "C:\\Users\\simor\\Desktop\\impermax-x-uniswapv2-periphery\\contracts\\interfaces\\IImpermaxCallee.sol",
64
+ "ast": {
65
+ "absolutePath": "/C/Users/simor/Desktop/impermax-x-uniswapv2-periphery/contracts/interfaces/IImpermaxCallee.sol",
66
+ "exportedSymbols": {
67
+ "IImpermaxCallee": [
68
+ 2449
69
+ ]
70
+ },
71
+ "id": 2450,
72
+ "nodeType": "SourceUnit",
73
+ "nodes": [
74
+ {
75
+ "id": 2428,
76
+ "literals": [
77
+ "solidity",
78
+ ">=",
79
+ "0.5",
80
+ ".0"
81
+ ],
82
+ "nodeType": "PragmaDirective",
83
+ "src": "0:24:4"
84
+ },
85
+ {
86
+ "abstract": false,
87
+ "baseContracts": [],
88
+ "contractDependencies": [],
89
+ "contractKind": "interface",
90
+ "documentation": null,
91
+ "fullyImplemented": false,
92
+ "id": 2449,
93
+ "linearizedBaseContracts": [
94
+ 2449
95
+ ],
96
+ "name": "IImpermaxCallee",
97
+ "nodeType": "ContractDefinition",
98
+ "nodes": [
99
+ {
100
+ "body": null,
101
+ "documentation": null,
102
+ "functionSelector": "876d9d9e",
103
+ "id": 2439,
104
+ "implemented": false,
105
+ "kind": "function",
106
+ "modifiers": [],
107
+ "name": "impermaxBorrow",
108
+ "nodeType": "FunctionDefinition",
109
+ "overrides": null,
110
+ "parameters": {
111
+ "id": 2437,
112
+ "nodeType": "ParameterList",
113
+ "parameters": [
114
+ {
115
+ "constant": false,
116
+ "id": 2430,
117
+ "mutability": "mutable",
118
+ "name": "sender",
119
+ "nodeType": "VariableDeclaration",
120
+ "overrides": null,
121
+ "scope": 2439,
122
+ "src": "85:14:4",
123
+ "stateVariable": false,
124
+ "storageLocation": "default",
125
+ "typeDescriptions": {
126
+ "typeIdentifier": "t_address",
127
+ "typeString": "address"
128
+ },
129
+ "typeName": {
130
+ "id": 2429,
131
+ "name": "address",
132
+ "nodeType": "ElementaryTypeName",
133
+ "src": "85:7:4",
134
+ "stateMutability": "nonpayable",
135
+ "typeDescriptions": {
136
+ "typeIdentifier": "t_address",
137
+ "typeString": "address"
138
+ }
139
+ },
140
+ "value": null,
141
+ "visibility": "internal"
142
+ },
143
+ {
144
+ "constant": false,
145
+ "id": 2432,
146
+ "mutability": "mutable",
147
+ "name": "borrower",
148
+ "nodeType": "VariableDeclaration",
149
+ "overrides": null,
150
+ "scope": 2439,
151
+ "src": "101:16:4",
152
+ "stateVariable": false,
153
+ "storageLocation": "default",
154
+ "typeDescriptions": {
155
+ "typeIdentifier": "t_address",
156
+ "typeString": "address"
157
+ },
158
+ "typeName": {
159
+ "id": 2431,
160
+ "name": "address",
161
+ "nodeType": "ElementaryTypeName",
162
+ "src": "101:7:4",
163
+ "stateMutability": "nonpayable",
164
+ "typeDescriptions": {
165
+ "typeIdentifier": "t_address",
166
+ "typeString": "address"
167
+ }
168
+ },
169
+ "value": null,
170
+ "visibility": "internal"
171
+ },
172
+ {
173
+ "constant": false,
174
+ "id": 2434,
175
+ "mutability": "mutable",
176
+ "name": "borrowAmount",
177
+ "nodeType": "VariableDeclaration",
178
+ "overrides": null,
179
+ "scope": 2439,
180
+ "src": "119:17:4",
181
+ "stateVariable": false,
182
+ "storageLocation": "default",
183
+ "typeDescriptions": {
184
+ "typeIdentifier": "t_uint256",
185
+ "typeString": "uint256"
186
+ },
187
+ "typeName": {
188
+ "id": 2433,
189
+ "name": "uint",
190
+ "nodeType": "ElementaryTypeName",
191
+ "src": "119:4:4",
192
+ "typeDescriptions": {
193
+ "typeIdentifier": "t_uint256",
194
+ "typeString": "uint256"
195
+ }
196
+ },
197
+ "value": null,
198
+ "visibility": "internal"
199
+ },
200
+ {
201
+ "constant": false,
202
+ "id": 2436,
203
+ "mutability": "mutable",
204
+ "name": "data",
205
+ "nodeType": "VariableDeclaration",
206
+ "overrides": null,
207
+ "scope": 2439,
208
+ "src": "138:19:4",
209
+ "stateVariable": false,
210
+ "storageLocation": "calldata",
211
+ "typeDescriptions": {
212
+ "typeIdentifier": "t_bytes_calldata_ptr",
213
+ "typeString": "bytes"
214
+ },
215
+ "typeName": {
216
+ "id": 2435,
217
+ "name": "bytes",
218
+ "nodeType": "ElementaryTypeName",
219
+ "src": "138:5:4",
220
+ "typeDescriptions": {
221
+ "typeIdentifier": "t_bytes_storage_ptr",
222
+ "typeString": "bytes"
223
+ }
224
+ },
225
+ "value": null,
226
+ "visibility": "internal"
227
+ }
228
+ ],
229
+ "src": "84:74:4"
230
+ },
231
+ "returnParameters": {
232
+ "id": 2438,
233
+ "nodeType": "ParameterList",
234
+ "parameters": [],
235
+ "src": "167:0:4"
236
+ },
237
+ "scope": 2449,
238
+ "src": "61:107:4",
239
+ "stateMutability": "nonpayable",
240
+ "virtual": false,
241
+ "visibility": "external"
242
+ },
243
+ {
244
+ "body": null,
245
+ "documentation": null,
246
+ "functionSelector": "acb86cbb",
247
+ "id": 2448,
248
+ "implemented": false,
249
+ "kind": "function",
250
+ "modifiers": [],
251
+ "name": "impermaxRedeem",
252
+ "nodeType": "FunctionDefinition",
253
+ "overrides": null,
254
+ "parameters": {
255
+ "id": 2446,
256
+ "nodeType": "ParameterList",
257
+ "parameters": [
258
+ {
259
+ "constant": false,
260
+ "id": 2441,
261
+ "mutability": "mutable",
262
+ "name": "sender",
263
+ "nodeType": "VariableDeclaration",
264
+ "overrides": null,
265
+ "scope": 2448,
266
+ "src": "198:14:4",
267
+ "stateVariable": false,
268
+ "storageLocation": "default",
269
+ "typeDescriptions": {
270
+ "typeIdentifier": "t_address",
271
+ "typeString": "address"
272
+ },
273
+ "typeName": {
274
+ "id": 2440,
275
+ "name": "address",
276
+ "nodeType": "ElementaryTypeName",
277
+ "src": "198:7:4",
278
+ "stateMutability": "nonpayable",
279
+ "typeDescriptions": {
280
+ "typeIdentifier": "t_address",
281
+ "typeString": "address"
282
+ }
283
+ },
284
+ "value": null,
285
+ "visibility": "internal"
286
+ },
287
+ {
288
+ "constant": false,
289
+ "id": 2443,
290
+ "mutability": "mutable",
291
+ "name": "redeemAmount",
292
+ "nodeType": "VariableDeclaration",
293
+ "overrides": null,
294
+ "scope": 2448,
295
+ "src": "214:17:4",
296
+ "stateVariable": false,
297
+ "storageLocation": "default",
298
+ "typeDescriptions": {
299
+ "typeIdentifier": "t_uint256",
300
+ "typeString": "uint256"
301
+ },
302
+ "typeName": {
303
+ "id": 2442,
304
+ "name": "uint",
305
+ "nodeType": "ElementaryTypeName",
306
+ "src": "214:4:4",
307
+ "typeDescriptions": {
308
+ "typeIdentifier": "t_uint256",
309
+ "typeString": "uint256"
310
+ }
311
+ },
312
+ "value": null,
313
+ "visibility": "internal"
314
+ },
315
+ {
316
+ "constant": false,
317
+ "id": 2445,
318
+ "mutability": "mutable",
319
+ "name": "data",
320
+ "nodeType": "VariableDeclaration",
321
+ "overrides": null,
322
+ "scope": 2448,
323
+ "src": "233:19:4",
324
+ "stateVariable": false,
325
+ "storageLocation": "calldata",
326
+ "typeDescriptions": {
327
+ "typeIdentifier": "t_bytes_calldata_ptr",
328
+ "typeString": "bytes"
329
+ },
330
+ "typeName": {
331
+ "id": 2444,
332
+ "name": "bytes",
333
+ "nodeType": "ElementaryTypeName",
334
+ "src": "233:5:4",
335
+ "typeDescriptions": {
336
+ "typeIdentifier": "t_bytes_storage_ptr",
337
+ "typeString": "bytes"
338
+ }
339
+ },
340
+ "value": null,
341
+ "visibility": "internal"
342
+ }
343
+ ],
344
+ "src": "197:56:4"
345
+ },
346
+ "returnParameters": {
347
+ "id": 2447,
348
+ "nodeType": "ParameterList",
349
+ "parameters": [],
350
+ "src": "262:0:4"
351
+ },
352
+ "scope": 2449,
353
+ "src": "174:89:4",
354
+ "stateMutability": "nonpayable",
355
+ "virtual": false,
356
+ "visibility": "external"
357
+ }
358
+ ],
359
+ "scope": 2450,
360
+ "src": "28:238:4"
361
+ }
362
+ ],
363
+ "src": "0:266:4"
364
+ },
365
+ "legacyAST": {
366
+ "absolutePath": "/C/Users/simor/Desktop/impermax-x-uniswapv2-periphery/contracts/interfaces/IImpermaxCallee.sol",
367
+ "exportedSymbols": {
368
+ "IImpermaxCallee": [
369
+ 2449
370
+ ]
371
+ },
372
+ "id": 2450,
373
+ "nodeType": "SourceUnit",
374
+ "nodes": [
375
+ {
376
+ "id": 2428,
377
+ "literals": [
378
+ "solidity",
379
+ ">=",
380
+ "0.5",
381
+ ".0"
382
+ ],
383
+ "nodeType": "PragmaDirective",
384
+ "src": "0:24:4"
385
+ },
386
+ {
387
+ "abstract": false,
388
+ "baseContracts": [],
389
+ "contractDependencies": [],
390
+ "contractKind": "interface",
391
+ "documentation": null,
392
+ "fullyImplemented": false,
393
+ "id": 2449,
394
+ "linearizedBaseContracts": [
395
+ 2449
396
+ ],
397
+ "name": "IImpermaxCallee",
398
+ "nodeType": "ContractDefinition",
399
+ "nodes": [
400
+ {
401
+ "body": null,
402
+ "documentation": null,
403
+ "functionSelector": "876d9d9e",
404
+ "id": 2439,
405
+ "implemented": false,
406
+ "kind": "function",
407
+ "modifiers": [],
408
+ "name": "impermaxBorrow",
409
+ "nodeType": "FunctionDefinition",
410
+ "overrides": null,
411
+ "parameters": {
412
+ "id": 2437,
413
+ "nodeType": "ParameterList",
414
+ "parameters": [
415
+ {
416
+ "constant": false,
417
+ "id": 2430,
418
+ "mutability": "mutable",
419
+ "name": "sender",
420
+ "nodeType": "VariableDeclaration",
421
+ "overrides": null,
422
+ "scope": 2439,
423
+ "src": "85:14:4",
424
+ "stateVariable": false,
425
+ "storageLocation": "default",
426
+ "typeDescriptions": {
427
+ "typeIdentifier": "t_address",
428
+ "typeString": "address"
429
+ },
430
+ "typeName": {
431
+ "id": 2429,
432
+ "name": "address",
433
+ "nodeType": "ElementaryTypeName",
434
+ "src": "85:7:4",
435
+ "stateMutability": "nonpayable",
436
+ "typeDescriptions": {
437
+ "typeIdentifier": "t_address",
438
+ "typeString": "address"
439
+ }
440
+ },
441
+ "value": null,
442
+ "visibility": "internal"
443
+ },
444
+ {
445
+ "constant": false,
446
+ "id": 2432,
447
+ "mutability": "mutable",
448
+ "name": "borrower",
449
+ "nodeType": "VariableDeclaration",
450
+ "overrides": null,
451
+ "scope": 2439,
452
+ "src": "101:16:4",
453
+ "stateVariable": false,
454
+ "storageLocation": "default",
455
+ "typeDescriptions": {
456
+ "typeIdentifier": "t_address",
457
+ "typeString": "address"
458
+ },
459
+ "typeName": {
460
+ "id": 2431,
461
+ "name": "address",
462
+ "nodeType": "ElementaryTypeName",
463
+ "src": "101:7:4",
464
+ "stateMutability": "nonpayable",
465
+ "typeDescriptions": {
466
+ "typeIdentifier": "t_address",
467
+ "typeString": "address"
468
+ }
469
+ },
470
+ "value": null,
471
+ "visibility": "internal"
472
+ },
473
+ {
474
+ "constant": false,
475
+ "id": 2434,
476
+ "mutability": "mutable",
477
+ "name": "borrowAmount",
478
+ "nodeType": "VariableDeclaration",
479
+ "overrides": null,
480
+ "scope": 2439,
481
+ "src": "119:17:4",
482
+ "stateVariable": false,
483
+ "storageLocation": "default",
484
+ "typeDescriptions": {
485
+ "typeIdentifier": "t_uint256",
486
+ "typeString": "uint256"
487
+ },
488
+ "typeName": {
489
+ "id": 2433,
490
+ "name": "uint",
491
+ "nodeType": "ElementaryTypeName",
492
+ "src": "119:4:4",
493
+ "typeDescriptions": {
494
+ "typeIdentifier": "t_uint256",
495
+ "typeString": "uint256"
496
+ }
497
+ },
498
+ "value": null,
499
+ "visibility": "internal"
500
+ },
501
+ {
502
+ "constant": false,
503
+ "id": 2436,
504
+ "mutability": "mutable",
505
+ "name": "data",
506
+ "nodeType": "VariableDeclaration",
507
+ "overrides": null,
508
+ "scope": 2439,
509
+ "src": "138:19:4",
510
+ "stateVariable": false,
511
+ "storageLocation": "calldata",
512
+ "typeDescriptions": {
513
+ "typeIdentifier": "t_bytes_calldata_ptr",
514
+ "typeString": "bytes"
515
+ },
516
+ "typeName": {
517
+ "id": 2435,
518
+ "name": "bytes",
519
+ "nodeType": "ElementaryTypeName",
520
+ "src": "138:5:4",
521
+ "typeDescriptions": {
522
+ "typeIdentifier": "t_bytes_storage_ptr",
523
+ "typeString": "bytes"
524
+ }
525
+ },
526
+ "value": null,
527
+ "visibility": "internal"
528
+ }
529
+ ],
530
+ "src": "84:74:4"
531
+ },
532
+ "returnParameters": {
533
+ "id": 2438,
534
+ "nodeType": "ParameterList",
535
+ "parameters": [],
536
+ "src": "167:0:4"
537
+ },
538
+ "scope": 2449,
539
+ "src": "61:107:4",
540
+ "stateMutability": "nonpayable",
541
+ "virtual": false,
542
+ "visibility": "external"
543
+ },
544
+ {
545
+ "body": null,
546
+ "documentation": null,
547
+ "functionSelector": "acb86cbb",
548
+ "id": 2448,
549
+ "implemented": false,
550
+ "kind": "function",
551
+ "modifiers": [],
552
+ "name": "impermaxRedeem",
553
+ "nodeType": "FunctionDefinition",
554
+ "overrides": null,
555
+ "parameters": {
556
+ "id": 2446,
557
+ "nodeType": "ParameterList",
558
+ "parameters": [
559
+ {
560
+ "constant": false,
561
+ "id": 2441,
562
+ "mutability": "mutable",
563
+ "name": "sender",
564
+ "nodeType": "VariableDeclaration",
565
+ "overrides": null,
566
+ "scope": 2448,
567
+ "src": "198:14:4",
568
+ "stateVariable": false,
569
+ "storageLocation": "default",
570
+ "typeDescriptions": {
571
+ "typeIdentifier": "t_address",
572
+ "typeString": "address"
573
+ },
574
+ "typeName": {
575
+ "id": 2440,
576
+ "name": "address",
577
+ "nodeType": "ElementaryTypeName",
578
+ "src": "198:7:4",
579
+ "stateMutability": "nonpayable",
580
+ "typeDescriptions": {
581
+ "typeIdentifier": "t_address",
582
+ "typeString": "address"
583
+ }
584
+ },
585
+ "value": null,
586
+ "visibility": "internal"
587
+ },
588
+ {
589
+ "constant": false,
590
+ "id": 2443,
591
+ "mutability": "mutable",
592
+ "name": "redeemAmount",
593
+ "nodeType": "VariableDeclaration",
594
+ "overrides": null,
595
+ "scope": 2448,
596
+ "src": "214:17:4",
597
+ "stateVariable": false,
598
+ "storageLocation": "default",
599
+ "typeDescriptions": {
600
+ "typeIdentifier": "t_uint256",
601
+ "typeString": "uint256"
602
+ },
603
+ "typeName": {
604
+ "id": 2442,
605
+ "name": "uint",
606
+ "nodeType": "ElementaryTypeName",
607
+ "src": "214:4:4",
608
+ "typeDescriptions": {
609
+ "typeIdentifier": "t_uint256",
610
+ "typeString": "uint256"
611
+ }
612
+ },
613
+ "value": null,
614
+ "visibility": "internal"
615
+ },
616
+ {
617
+ "constant": false,
618
+ "id": 2445,
619
+ "mutability": "mutable",
620
+ "name": "data",
621
+ "nodeType": "VariableDeclaration",
622
+ "overrides": null,
623
+ "scope": 2448,
624
+ "src": "233:19:4",
625
+ "stateVariable": false,
626
+ "storageLocation": "calldata",
627
+ "typeDescriptions": {
628
+ "typeIdentifier": "t_bytes_calldata_ptr",
629
+ "typeString": "bytes"
630
+ },
631
+ "typeName": {
632
+ "id": 2444,
633
+ "name": "bytes",
634
+ "nodeType": "ElementaryTypeName",
635
+ "src": "233:5:4",
636
+ "typeDescriptions": {
637
+ "typeIdentifier": "t_bytes_storage_ptr",
638
+ "typeString": "bytes"
639
+ }
640
+ },
641
+ "value": null,
642
+ "visibility": "internal"
643
+ }
644
+ ],
645
+ "src": "197:56:4"
646
+ },
647
+ "returnParameters": {
648
+ "id": 2447,
649
+ "nodeType": "ParameterList",
650
+ "parameters": [],
651
+ "src": "262:0:4"
652
+ },
653
+ "scope": 2449,
654
+ "src": "174:89:4",
655
+ "stateMutability": "nonpayable",
656
+ "virtual": false,
657
+ "visibility": "external"
658
+ }
659
+ ],
660
+ "scope": 2450,
661
+ "src": "28:238:4"
662
+ }
663
+ ],
664
+ "src": "0:266:4"
665
+ },
666
+ "compiler": {
667
+ "name": "solc",
668
+ "version": "0.6.6+commit.6c089d02.Emscripten.clang"
669
+ },
670
+ "networks": {},
671
+ "schemaVersion": "3.3.2",
672
+ "updatedAt": "2021-01-09T21:16:28.580Z",
673
+ "devdoc": {
674
+ "methods": {}
675
+ },
676
+ "userdoc": {
677
+ "methods": {}
678
+ }
679
+ }