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,516 @@
1
+ {
2
+ "contractName": "CStorage",
3
+ "abi": [
4
+ {
5
+ "constant": true,
6
+ "inputs": [],
7
+ "name": "borrowable0",
8
+ "outputs": [
9
+ {
10
+ "internalType": "address",
11
+ "name": "",
12
+ "type": "address"
13
+ }
14
+ ],
15
+ "payable": false,
16
+ "stateMutability": "view",
17
+ "type": "function"
18
+ },
19
+ {
20
+ "constant": true,
21
+ "inputs": [],
22
+ "name": "borrowable1",
23
+ "outputs": [
24
+ {
25
+ "internalType": "address",
26
+ "name": "",
27
+ "type": "address"
28
+ }
29
+ ],
30
+ "payable": false,
31
+ "stateMutability": "view",
32
+ "type": "function"
33
+ },
34
+ {
35
+ "constant": true,
36
+ "inputs": [],
37
+ "name": "liquidationIncentive",
38
+ "outputs": [
39
+ {
40
+ "internalType": "uint256",
41
+ "name": "",
42
+ "type": "uint256"
43
+ }
44
+ ],
45
+ "payable": false,
46
+ "stateMutability": "view",
47
+ "type": "function"
48
+ },
49
+ {
50
+ "constant": true,
51
+ "inputs": [],
52
+ "name": "safetyMarginSqrt",
53
+ "outputs": [
54
+ {
55
+ "internalType": "uint256",
56
+ "name": "",
57
+ "type": "uint256"
58
+ }
59
+ ],
60
+ "payable": false,
61
+ "stateMutability": "view",
62
+ "type": "function"
63
+ },
64
+ {
65
+ "constant": true,
66
+ "inputs": [],
67
+ "name": "simpleUniswapOracle",
68
+ "outputs": [
69
+ {
70
+ "internalType": "address",
71
+ "name": "",
72
+ "type": "address"
73
+ }
74
+ ],
75
+ "payable": false,
76
+ "stateMutability": "view",
77
+ "type": "function"
78
+ }
79
+ ],
80
+ "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"borrowable0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"borrowable1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"liquidationIncentive\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"safetyMarginSqrt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"simpleUniswapOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/simor/Desktop/impermax-x-uniswapv2-periphery/test/Contracts/imx-univ2-core/CStorage.sol\":\"CStorage\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/simor/Desktop/impermax-x-uniswapv2-periphery/test/Contracts/imx-univ2-core/CStorage.sol\":{\"keccak256\":\"0xf1b7007b9ff996614c737f039c5ce3b2d578eeb690b1cd47baa51ad847f3c0a5\",\"urls\":[\"bzz-raw://4060bc1bd96534b571168ff813d1af019da19af01ad685f2eb611af15eed4e6d\",\"dweb:/ipfs/QmYDQ9rXk6gZh1ADVsaTKyR8Do6gsyTXqhqd7CnFDoSotS\"]}},\"version\":1}",
81
+ "bytecode": "0x60806040526715f155637eba0c00600355670e6ed27d6668000060045534801561002857600080fd5b50610228806100386000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632fa5ae1b1461005c578063356c571f146100a65780637c6674b5146100c45780638c765e941461010e578063daf888181461012c575b600080fd5b610064610176565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100ae61019b565b6040518082815260200191505060405180910390f35b6100cc6101a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101166101c7565b6040518082815260200191505060405180910390f35b6101346101cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea265627a7a7231582016369d9b1731ffdd0667dfc159e7d2530ae264fa1af0eac8743dd55f49c504b564736f6c63430005100032",
82
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80632fa5ae1b1461005c578063356c571f146100a65780637c6674b5146100c45780638c765e941461010e578063daf888181461012c575b600080fd5b610064610176565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100ae61019b565b6040518082815260200191505060405180910390f35b6100cc6101a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101166101c7565b6040518082815260200191505060405180910390f35b6101346101cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea265627a7a7231582016369d9b1731ffdd0667dfc159e7d2530ae264fa1af0eac8743dd55f49c504b564736f6c63430005100032",
83
+ "sourceMap": "30:240:12:-;;;181:13;150:44;;254:7;219:42;;30:240;8:9:-1;5:2;;;30:1;27;20:12;5:2;30:240:12;;;;;;;",
84
+ "deployedSourceMap": "30:240:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30:240:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;150:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;112:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;219:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;82:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;52;;;;;;;;;;;;;:::o;150:44::-;;;;:::o;112:34::-;;;;;;;;;;;;;:::o;219:42::-;;;;:::o;82:26::-;;;;;;;;;;;;;:::o",
85
+ "source": "pragma solidity =0.5.16;\r\n\r\n\r\ncontract CStorage {\r\n\taddress public borrowable0;\r\n\taddress public borrowable1;\r\n\taddress public simpleUniswapOracle;\r\n\tuint public safetyMarginSqrt = 1.58113883e18; //safetyMargin: 250%\r\n\tuint public liquidationIncentive = 1.04e18; //4%\r\n}",
86
+ "sourcePath": "C:\\Users\\simor\\Desktop\\impermax-x-uniswapv2-periphery\\test\\Contracts\\imx-univ2-core\\CStorage.sol",
87
+ "ast": {
88
+ "absolutePath": "/C/Users/simor/Desktop/impermax-x-uniswapv2-periphery/test/Contracts/imx-univ2-core/CStorage.sol",
89
+ "exportedSymbols": {
90
+ "CStorage": [
91
+ 2656
92
+ ]
93
+ },
94
+ "id": 2657,
95
+ "nodeType": "SourceUnit",
96
+ "nodes": [
97
+ {
98
+ "id": 2643,
99
+ "literals": [
100
+ "solidity",
101
+ "=",
102
+ "0.5",
103
+ ".16"
104
+ ],
105
+ "nodeType": "PragmaDirective",
106
+ "src": "0:24:12"
107
+ },
108
+ {
109
+ "baseContracts": [],
110
+ "contractDependencies": [],
111
+ "contractKind": "contract",
112
+ "documentation": null,
113
+ "fullyImplemented": true,
114
+ "id": 2656,
115
+ "linearizedBaseContracts": [
116
+ 2656
117
+ ],
118
+ "name": "CStorage",
119
+ "nodeType": "ContractDefinition",
120
+ "nodes": [
121
+ {
122
+ "constant": false,
123
+ "id": 2645,
124
+ "name": "borrowable0",
125
+ "nodeType": "VariableDeclaration",
126
+ "scope": 2656,
127
+ "src": "52:26:12",
128
+ "stateVariable": true,
129
+ "storageLocation": "default",
130
+ "typeDescriptions": {
131
+ "typeIdentifier": "t_address",
132
+ "typeString": "address"
133
+ },
134
+ "typeName": {
135
+ "id": 2644,
136
+ "name": "address",
137
+ "nodeType": "ElementaryTypeName",
138
+ "src": "52:7:12",
139
+ "stateMutability": "nonpayable",
140
+ "typeDescriptions": {
141
+ "typeIdentifier": "t_address",
142
+ "typeString": "address"
143
+ }
144
+ },
145
+ "value": null,
146
+ "visibility": "public"
147
+ },
148
+ {
149
+ "constant": false,
150
+ "id": 2647,
151
+ "name": "borrowable1",
152
+ "nodeType": "VariableDeclaration",
153
+ "scope": 2656,
154
+ "src": "82:26:12",
155
+ "stateVariable": true,
156
+ "storageLocation": "default",
157
+ "typeDescriptions": {
158
+ "typeIdentifier": "t_address",
159
+ "typeString": "address"
160
+ },
161
+ "typeName": {
162
+ "id": 2646,
163
+ "name": "address",
164
+ "nodeType": "ElementaryTypeName",
165
+ "src": "82:7:12",
166
+ "stateMutability": "nonpayable",
167
+ "typeDescriptions": {
168
+ "typeIdentifier": "t_address",
169
+ "typeString": "address"
170
+ }
171
+ },
172
+ "value": null,
173
+ "visibility": "public"
174
+ },
175
+ {
176
+ "constant": false,
177
+ "id": 2649,
178
+ "name": "simpleUniswapOracle",
179
+ "nodeType": "VariableDeclaration",
180
+ "scope": 2656,
181
+ "src": "112:34:12",
182
+ "stateVariable": true,
183
+ "storageLocation": "default",
184
+ "typeDescriptions": {
185
+ "typeIdentifier": "t_address",
186
+ "typeString": "address"
187
+ },
188
+ "typeName": {
189
+ "id": 2648,
190
+ "name": "address",
191
+ "nodeType": "ElementaryTypeName",
192
+ "src": "112:7:12",
193
+ "stateMutability": "nonpayable",
194
+ "typeDescriptions": {
195
+ "typeIdentifier": "t_address",
196
+ "typeString": "address"
197
+ }
198
+ },
199
+ "value": null,
200
+ "visibility": "public"
201
+ },
202
+ {
203
+ "constant": false,
204
+ "id": 2652,
205
+ "name": "safetyMarginSqrt",
206
+ "nodeType": "VariableDeclaration",
207
+ "scope": 2656,
208
+ "src": "150:44:12",
209
+ "stateVariable": true,
210
+ "storageLocation": "default",
211
+ "typeDescriptions": {
212
+ "typeIdentifier": "t_uint256",
213
+ "typeString": "uint256"
214
+ },
215
+ "typeName": {
216
+ "id": 2650,
217
+ "name": "uint",
218
+ "nodeType": "ElementaryTypeName",
219
+ "src": "150:4:12",
220
+ "typeDescriptions": {
221
+ "typeIdentifier": "t_uint256",
222
+ "typeString": "uint256"
223
+ }
224
+ },
225
+ "value": {
226
+ "argumentTypes": null,
227
+ "hexValue": "312e3538313133383833653138",
228
+ "id": 2651,
229
+ "isConstant": false,
230
+ "isLValue": false,
231
+ "isPure": true,
232
+ "kind": "number",
233
+ "lValueRequested": false,
234
+ "nodeType": "Literal",
235
+ "src": "181:13:12",
236
+ "subdenomination": null,
237
+ "typeDescriptions": {
238
+ "typeIdentifier": "t_rational_1581138830000000000_by_1",
239
+ "typeString": "int_const 1581138830000000000"
240
+ },
241
+ "value": "1.58113883e18"
242
+ },
243
+ "visibility": "public"
244
+ },
245
+ {
246
+ "constant": false,
247
+ "id": 2655,
248
+ "name": "liquidationIncentive",
249
+ "nodeType": "VariableDeclaration",
250
+ "scope": 2656,
251
+ "src": "219:42:12",
252
+ "stateVariable": true,
253
+ "storageLocation": "default",
254
+ "typeDescriptions": {
255
+ "typeIdentifier": "t_uint256",
256
+ "typeString": "uint256"
257
+ },
258
+ "typeName": {
259
+ "id": 2653,
260
+ "name": "uint",
261
+ "nodeType": "ElementaryTypeName",
262
+ "src": "219:4:12",
263
+ "typeDescriptions": {
264
+ "typeIdentifier": "t_uint256",
265
+ "typeString": "uint256"
266
+ }
267
+ },
268
+ "value": {
269
+ "argumentTypes": null,
270
+ "hexValue": "312e3034653138",
271
+ "id": 2654,
272
+ "isConstant": false,
273
+ "isLValue": false,
274
+ "isPure": true,
275
+ "kind": "number",
276
+ "lValueRequested": false,
277
+ "nodeType": "Literal",
278
+ "src": "254:7:12",
279
+ "subdenomination": null,
280
+ "typeDescriptions": {
281
+ "typeIdentifier": "t_rational_1040000000000000000_by_1",
282
+ "typeString": "int_const 1040000000000000000"
283
+ },
284
+ "value": "1.04e18"
285
+ },
286
+ "visibility": "public"
287
+ }
288
+ ],
289
+ "scope": 2657,
290
+ "src": "30:240:12"
291
+ }
292
+ ],
293
+ "src": "0:270:12"
294
+ },
295
+ "legacyAST": {
296
+ "absolutePath": "/C/Users/simor/Desktop/impermax-x-uniswapv2-periphery/test/Contracts/imx-univ2-core/CStorage.sol",
297
+ "exportedSymbols": {
298
+ "CStorage": [
299
+ 2656
300
+ ]
301
+ },
302
+ "id": 2657,
303
+ "nodeType": "SourceUnit",
304
+ "nodes": [
305
+ {
306
+ "id": 2643,
307
+ "literals": [
308
+ "solidity",
309
+ "=",
310
+ "0.5",
311
+ ".16"
312
+ ],
313
+ "nodeType": "PragmaDirective",
314
+ "src": "0:24:12"
315
+ },
316
+ {
317
+ "baseContracts": [],
318
+ "contractDependencies": [],
319
+ "contractKind": "contract",
320
+ "documentation": null,
321
+ "fullyImplemented": true,
322
+ "id": 2656,
323
+ "linearizedBaseContracts": [
324
+ 2656
325
+ ],
326
+ "name": "CStorage",
327
+ "nodeType": "ContractDefinition",
328
+ "nodes": [
329
+ {
330
+ "constant": false,
331
+ "id": 2645,
332
+ "name": "borrowable0",
333
+ "nodeType": "VariableDeclaration",
334
+ "scope": 2656,
335
+ "src": "52:26:12",
336
+ "stateVariable": true,
337
+ "storageLocation": "default",
338
+ "typeDescriptions": {
339
+ "typeIdentifier": "t_address",
340
+ "typeString": "address"
341
+ },
342
+ "typeName": {
343
+ "id": 2644,
344
+ "name": "address",
345
+ "nodeType": "ElementaryTypeName",
346
+ "src": "52:7:12",
347
+ "stateMutability": "nonpayable",
348
+ "typeDescriptions": {
349
+ "typeIdentifier": "t_address",
350
+ "typeString": "address"
351
+ }
352
+ },
353
+ "value": null,
354
+ "visibility": "public"
355
+ },
356
+ {
357
+ "constant": false,
358
+ "id": 2647,
359
+ "name": "borrowable1",
360
+ "nodeType": "VariableDeclaration",
361
+ "scope": 2656,
362
+ "src": "82:26:12",
363
+ "stateVariable": true,
364
+ "storageLocation": "default",
365
+ "typeDescriptions": {
366
+ "typeIdentifier": "t_address",
367
+ "typeString": "address"
368
+ },
369
+ "typeName": {
370
+ "id": 2646,
371
+ "name": "address",
372
+ "nodeType": "ElementaryTypeName",
373
+ "src": "82:7:12",
374
+ "stateMutability": "nonpayable",
375
+ "typeDescriptions": {
376
+ "typeIdentifier": "t_address",
377
+ "typeString": "address"
378
+ }
379
+ },
380
+ "value": null,
381
+ "visibility": "public"
382
+ },
383
+ {
384
+ "constant": false,
385
+ "id": 2649,
386
+ "name": "simpleUniswapOracle",
387
+ "nodeType": "VariableDeclaration",
388
+ "scope": 2656,
389
+ "src": "112:34:12",
390
+ "stateVariable": true,
391
+ "storageLocation": "default",
392
+ "typeDescriptions": {
393
+ "typeIdentifier": "t_address",
394
+ "typeString": "address"
395
+ },
396
+ "typeName": {
397
+ "id": 2648,
398
+ "name": "address",
399
+ "nodeType": "ElementaryTypeName",
400
+ "src": "112:7:12",
401
+ "stateMutability": "nonpayable",
402
+ "typeDescriptions": {
403
+ "typeIdentifier": "t_address",
404
+ "typeString": "address"
405
+ }
406
+ },
407
+ "value": null,
408
+ "visibility": "public"
409
+ },
410
+ {
411
+ "constant": false,
412
+ "id": 2652,
413
+ "name": "safetyMarginSqrt",
414
+ "nodeType": "VariableDeclaration",
415
+ "scope": 2656,
416
+ "src": "150:44:12",
417
+ "stateVariable": true,
418
+ "storageLocation": "default",
419
+ "typeDescriptions": {
420
+ "typeIdentifier": "t_uint256",
421
+ "typeString": "uint256"
422
+ },
423
+ "typeName": {
424
+ "id": 2650,
425
+ "name": "uint",
426
+ "nodeType": "ElementaryTypeName",
427
+ "src": "150:4:12",
428
+ "typeDescriptions": {
429
+ "typeIdentifier": "t_uint256",
430
+ "typeString": "uint256"
431
+ }
432
+ },
433
+ "value": {
434
+ "argumentTypes": null,
435
+ "hexValue": "312e3538313133383833653138",
436
+ "id": 2651,
437
+ "isConstant": false,
438
+ "isLValue": false,
439
+ "isPure": true,
440
+ "kind": "number",
441
+ "lValueRequested": false,
442
+ "nodeType": "Literal",
443
+ "src": "181:13:12",
444
+ "subdenomination": null,
445
+ "typeDescriptions": {
446
+ "typeIdentifier": "t_rational_1581138830000000000_by_1",
447
+ "typeString": "int_const 1581138830000000000"
448
+ },
449
+ "value": "1.58113883e18"
450
+ },
451
+ "visibility": "public"
452
+ },
453
+ {
454
+ "constant": false,
455
+ "id": 2655,
456
+ "name": "liquidationIncentive",
457
+ "nodeType": "VariableDeclaration",
458
+ "scope": 2656,
459
+ "src": "219:42:12",
460
+ "stateVariable": true,
461
+ "storageLocation": "default",
462
+ "typeDescriptions": {
463
+ "typeIdentifier": "t_uint256",
464
+ "typeString": "uint256"
465
+ },
466
+ "typeName": {
467
+ "id": 2653,
468
+ "name": "uint",
469
+ "nodeType": "ElementaryTypeName",
470
+ "src": "219:4:12",
471
+ "typeDescriptions": {
472
+ "typeIdentifier": "t_uint256",
473
+ "typeString": "uint256"
474
+ }
475
+ },
476
+ "value": {
477
+ "argumentTypes": null,
478
+ "hexValue": "312e3034653138",
479
+ "id": 2654,
480
+ "isConstant": false,
481
+ "isLValue": false,
482
+ "isPure": true,
483
+ "kind": "number",
484
+ "lValueRequested": false,
485
+ "nodeType": "Literal",
486
+ "src": "254:7:12",
487
+ "subdenomination": null,
488
+ "typeDescriptions": {
489
+ "typeIdentifier": "t_rational_1040000000000000000_by_1",
490
+ "typeString": "int_const 1040000000000000000"
491
+ },
492
+ "value": "1.04e18"
493
+ },
494
+ "visibility": "public"
495
+ }
496
+ ],
497
+ "scope": 2657,
498
+ "src": "30:240:12"
499
+ }
500
+ ],
501
+ "src": "0:270:12"
502
+ },
503
+ "compiler": {
504
+ "name": "solc",
505
+ "version": "0.5.16+commit.9c3226ce.Emscripten.clang"
506
+ },
507
+ "networks": {},
508
+ "schemaVersion": "3.3.2",
509
+ "updatedAt": "2021-01-07T23:07:24.755Z",
510
+ "devdoc": {
511
+ "methods": {}
512
+ },
513
+ "userdoc": {
514
+ "methods": {}
515
+ }
516
+ }