@pendle/core-v2 6.9.0 → 6.10.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 (110) hide show
  1. package/build/artifacts/contracts/interfaces/IPPTLooper.sol/IPPTLooper.dbg.json +1 -1
  2. package/build/artifacts/contracts/interfaces/IPPTLooper.sol/IPPTLooper.json +244 -249
  3. package/build/artifacts/contracts/interfaces/IPPTLooper.sol/IPPTLooperEIP712Types.dbg.json +1 -1
  4. package/build/artifacts/contracts/pt-looping/PTLooperBase.sol/PTLooperBase.dbg.json +1 -1
  5. package/build/artifacts/contracts/pt-looping/PTLooperBase.sol/PTLooperBase.json +244 -249
  6. package/build/artifacts/contracts/pt-looping/PTLooperEIP712TypesEncodeDataLib.sol/PTLooperEIP712TypesEncodeDataLib.dbg.json +1 -1
  7. package/build/artifacts/contracts/pt-looping/PTLooperEIP712TypesEncodeDataLib.sol/PTLooperEIP712TypesEncodeDataLib.json +2 -2
  8. package/build/artifacts/contracts/pt-looping/PendlePTLooper.sol/PendlePTLooper.dbg.json +1 -1
  9. package/build/artifacts/contracts/pt-looping/PendlePTLooper.sol/PendlePTLooper.json +246 -251
  10. package/build/artifacts/contracts/pt-looping/money-market/BaseMoneyMarket.sol/BaseMoneyMarket.dbg.json +1 -1
  11. package/build/artifacts/contracts/pt-looping/money-market/BaseMoneyMarketView.sol/BaseMoneyMarketView.dbg.json +1 -1
  12. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarket.sol/AaveMoneyMarket.dbg.json +1 -1
  13. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarket.sol/AaveMoneyMarket.json +2 -2
  14. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarketView.sol/AaveMoneyMarketView.dbg.json +1 -1
  15. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave/AaveMoneyMarketView.sol/AaveMoneyMarketView.json +2 -2
  16. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MMPayloadLib.sol/AaveV4MMPayloadLib.dbg.json +4 -0
  17. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MMPayloadLib.sol/AaveV4MMPayloadLib.json +10 -0
  18. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MoneyMarket.sol/AaveV4MoneyMarket.dbg.json +4 -0
  19. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MoneyMarket.sol/AaveV4MoneyMarket.json +615 -0
  20. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MoneyMarketView.sol/AaveV4MoneyMarketView.dbg.json +4 -0
  21. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MoneyMarketView.sol/AaveV4MoneyMarketView.json +280 -0
  22. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/IAaveOracle.sol/IAaveOracle.dbg.json +4 -0
  23. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/IAaveOracle.sol/IAaveOracle.json +30 -0
  24. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/IHubBase.sol/IHubBase.dbg.json +4 -0
  25. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/IHubBase.sol/IHubBase.json +322 -0
  26. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/ISpoke.sol/ISpoke.dbg.json +4 -0
  27. package/build/artifacts/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/ISpoke.sol/ISpoke.json +398 -0
  28. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/EulerMMPayloadLib.sol/EulerMMPayloadLib.dbg.json +4 -0
  29. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/EulerMMPayloadLib.sol/EulerMMPayloadLib.json +10 -0
  30. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarket.sol/EulerMoneyMarket.dbg.json +4 -0
  31. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarket.sol/EulerMoneyMarket.json +651 -0
  32. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarketView.sol/EulerMoneyMarketView.dbg.json +4 -0
  33. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarketView.sol/EulerMoneyMarketView.json +298 -0
  34. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEthereumVaultConnector.sol/IEVC.dbg.json +4 -0
  35. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEthereumVaultConnector.sol/IEVC.json +959 -0
  36. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerFactory.sol/IEulerFactory.dbg.json +4 -0
  37. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerFactory.sol/IEulerFactory.json +30 -0
  38. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerPriceOracle.sol/IEulerPriceOracle.dbg.json +4 -0
  39. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerPriceOracle.sol/IEulerPriceOracle.json +53 -0
  40. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerVault.sol/AmountCapLib.dbg.json +4 -0
  41. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerVault.sol/AmountCapLib.json +10 -0
  42. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerVault.sol/IEulerVault.dbg.json +4 -0
  43. package/build/artifacts/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerVault.sol/IEulerVault.json +933 -0
  44. package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarket.sol/MorphoBlueMoneyMarket.dbg.json +1 -1
  45. package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarket.sol/MorphoBlueMoneyMarket.json +2 -2
  46. package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarketView.sol/MorphoBlueMoneyMarketView.dbg.json +1 -1
  47. package/build/artifacts/contracts/pt-looping/money-market/implementations/morpho/MorphoBlueMoneyMarketView.sol/MorphoBlueMoneyMarketView.json +2 -2
  48. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.dbg.json +1 -1
  49. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/OKXScaleHelper.dbg.json +1 -1
  50. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
  51. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
  52. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  53. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
  54. package/contracts/interfaces/IPPTLooper.sol +2 -4
  55. package/contracts/pt-looping/PTLooperEIP712TypesEncodeDataLib.sol +6 -6
  56. package/contracts/pt-looping/PendlePTLooper.sol +4 -2
  57. package/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MMPayloadLib.sol +20 -0
  58. package/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MoneyMarket.sol +85 -0
  59. package/contracts/pt-looping/money-market/implementations/aave-v4/AaveV4MoneyMarketView.sol +180 -0
  60. package/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/IAaveOracle.sol +12 -0
  61. package/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/IHubBase.sol +72 -0
  62. package/contracts/pt-looping/money-market/implementations/aave-v4/dependencies/ISpoke.sol +88 -0
  63. package/contracts/pt-looping/money-market/implementations/euler/EulerMMPayloadLib.sol +25 -0
  64. package/contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarket.sol +104 -0
  65. package/contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarketView.sol +105 -0
  66. package/contracts/pt-looping/money-market/implementations/euler/dependencies/IEthereumVaultConnector.sol +432 -0
  67. package/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerFactory.sol +10 -0
  68. package/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerPriceOracle.sol +26 -0
  69. package/contracts/pt-looping/money-market/implementations/euler/dependencies/IEulerVault.sol +149 -0
  70. package/contracts/router/swap-aggregator/OKXScaleHelper.sol +3 -0
  71. package/deployments/143-core.json +4 -1
  72. package/deployments/42161-core.json +4 -1
  73. package/deployments/4663-core.json +48 -0
  74. package/deployments/4663-offchain-helper.json +12 -0
  75. package/package.json +1 -1
  76. package/typechain-types/AaveV4MoneyMarket.ts +573 -0
  77. package/typechain-types/AaveV4MoneyMarketView.ts +362 -0
  78. package/typechain-types/EulerMoneyMarket.ts +599 -0
  79. package/typechain-types/EulerMoneyMarketView.ts +375 -0
  80. package/typechain-types/IAaveOracle.ts +17 -149
  81. package/typechain-types/IEVC.ts +1647 -0
  82. package/typechain-types/IEulerFactory.ts +94 -0
  83. package/typechain-types/IEulerPriceOracle.ts +123 -0
  84. package/typechain-types/IEulerVault.ts +1298 -0
  85. package/typechain-types/IHubBase.ts +452 -0
  86. package/typechain-types/IPPTLooper.ts +68 -68
  87. package/typechain-types/ISpoke.ts +577 -0
  88. package/typechain-types/PTLooperBase.ts +68 -68
  89. package/typechain-types/PendlePTLooper.ts +68 -68
  90. package/typechain-types/factories/AaveMoneyMarketView__factory.ts +1 -1
  91. package/typechain-types/factories/AaveMoneyMarket__factory.ts +1 -1
  92. package/typechain-types/factories/AaveV4MoneyMarketView__factory.ts +349 -0
  93. package/typechain-types/factories/AaveV4MoneyMarket__factory.ts +673 -0
  94. package/typechain-types/factories/EulerMoneyMarketView__factory.ts +371 -0
  95. package/typechain-types/factories/EulerMoneyMarket__factory.ts +720 -0
  96. package/typechain-types/factories/IAaveOracle__factory.ts +3 -93
  97. package/typechain-types/factories/IEVC__factory.ts +968 -0
  98. package/typechain-types/factories/IEulerFactory__factory.ts +42 -0
  99. package/typechain-types/factories/IEulerPriceOracle__factory.ts +68 -0
  100. package/typechain-types/factories/IEulerVault__factory.ts +945 -0
  101. package/typechain-types/factories/IHubBase__factory.ts +334 -0
  102. package/typechain-types/factories/IPPTLooper__factory.ts +243 -248
  103. package/typechain-types/factories/ISpoke__factory.ts +407 -0
  104. package/typechain-types/factories/MorphoBlueMoneyMarketView__factory.ts +1 -1
  105. package/typechain-types/factories/MorphoBlueMoneyMarket__factory.ts +1 -1
  106. package/typechain-types/factories/PTLooperBase__factory.ts +243 -248
  107. package/typechain-types/factories/PendlePTLooper__factory.ts +244 -249
  108. package/typechain-types/factories/PendleSwap__factory.ts +1 -1
  109. package/typechain-types/hardhat.d.ts +99 -0
  110. package/typechain-types/index.ts +22 -2
@@ -0,0 +1,651 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "EulerMoneyMarket",
4
+ "sourceName": "contracts/pt-looping/money-market/implementations/euler/EulerMoneyMarket.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "ptLooper",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_evc",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_factory",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "anonymous": false,
29
+ "inputs": [
30
+ {
31
+ "indexed": true,
32
+ "internalType": "contract IPLoopPositionBox",
33
+ "name": "box",
34
+ "type": "address"
35
+ },
36
+ {
37
+ "indexed": true,
38
+ "internalType": "address",
39
+ "name": "asset",
40
+ "type": "address"
41
+ },
42
+ {
43
+ "indexed": false,
44
+ "internalType": "uint256",
45
+ "name": "amount",
46
+ "type": "uint256"
47
+ },
48
+ {
49
+ "indexed": false,
50
+ "internalType": "uint256",
51
+ "name": "balanceBefore",
52
+ "type": "uint256"
53
+ }
54
+ ],
55
+ "name": "Borrowed",
56
+ "type": "event"
57
+ },
58
+ {
59
+ "anonymous": false,
60
+ "inputs": [
61
+ {
62
+ "indexed": true,
63
+ "internalType": "contract IPLoopPositionBox",
64
+ "name": "box",
65
+ "type": "address"
66
+ },
67
+ {
68
+ "indexed": true,
69
+ "internalType": "address",
70
+ "name": "asset",
71
+ "type": "address"
72
+ },
73
+ {
74
+ "indexed": false,
75
+ "internalType": "uint256",
76
+ "name": "amount",
77
+ "type": "uint256"
78
+ },
79
+ {
80
+ "indexed": false,
81
+ "internalType": "uint256",
82
+ "name": "balanceBefore",
83
+ "type": "uint256"
84
+ }
85
+ ],
86
+ "name": "Lent",
87
+ "type": "event"
88
+ },
89
+ {
90
+ "anonymous": false,
91
+ "inputs": [
92
+ {
93
+ "indexed": true,
94
+ "internalType": "contract IPLoopPositionBox",
95
+ "name": "box",
96
+ "type": "address"
97
+ },
98
+ {
99
+ "indexed": true,
100
+ "internalType": "address",
101
+ "name": "asset",
102
+ "type": "address"
103
+ },
104
+ {
105
+ "indexed": false,
106
+ "internalType": "uint256",
107
+ "name": "amount",
108
+ "type": "uint256"
109
+ },
110
+ {
111
+ "indexed": false,
112
+ "internalType": "uint256",
113
+ "name": "balanceBefore",
114
+ "type": "uint256"
115
+ }
116
+ ],
117
+ "name": "Repaid",
118
+ "type": "event"
119
+ },
120
+ {
121
+ "anonymous": false,
122
+ "inputs": [
123
+ {
124
+ "indexed": true,
125
+ "internalType": "address",
126
+ "name": "rewardController",
127
+ "type": "address"
128
+ },
129
+ {
130
+ "indexed": false,
131
+ "internalType": "address[]",
132
+ "name": "rewardTokens",
133
+ "type": "address[]"
134
+ },
135
+ {
136
+ "indexed": false,
137
+ "internalType": "uint256[]",
138
+ "name": "claimedAmount",
139
+ "type": "uint256[]"
140
+ }
141
+ ],
142
+ "name": "RewardsClaimed",
143
+ "type": "event"
144
+ },
145
+ {
146
+ "anonymous": false,
147
+ "inputs": [
148
+ {
149
+ "indexed": true,
150
+ "internalType": "contract IPLoopPositionBox",
151
+ "name": "box",
152
+ "type": "address"
153
+ },
154
+ {
155
+ "indexed": true,
156
+ "internalType": "address",
157
+ "name": "asset",
158
+ "type": "address"
159
+ },
160
+ {
161
+ "indexed": false,
162
+ "internalType": "uint256",
163
+ "name": "amount",
164
+ "type": "uint256"
165
+ },
166
+ {
167
+ "indexed": false,
168
+ "internalType": "uint256",
169
+ "name": "balanceBefore",
170
+ "type": "uint256"
171
+ }
172
+ ],
173
+ "name": "Withdrawn",
174
+ "type": "event"
175
+ },
176
+ {
177
+ "inputs": [],
178
+ "name": "EVC",
179
+ "outputs": [
180
+ {
181
+ "internalType": "contract IEVC",
182
+ "name": "",
183
+ "type": "address"
184
+ }
185
+ ],
186
+ "stateMutability": "view",
187
+ "type": "function"
188
+ },
189
+ {
190
+ "inputs": [],
191
+ "name": "FACTORY",
192
+ "outputs": [
193
+ {
194
+ "internalType": "contract IEulerFactory",
195
+ "name": "",
196
+ "type": "address"
197
+ }
198
+ ],
199
+ "stateMutability": "view",
200
+ "type": "function"
201
+ },
202
+ {
203
+ "inputs": [],
204
+ "name": "POSITION_BOX_FACTORY",
205
+ "outputs": [
206
+ {
207
+ "internalType": "contract IPLoopPositionBoxFactory",
208
+ "name": "",
209
+ "type": "address"
210
+ }
211
+ ],
212
+ "stateMutability": "view",
213
+ "type": "function"
214
+ },
215
+ {
216
+ "inputs": [],
217
+ "name": "PT_LOOPER",
218
+ "outputs": [
219
+ {
220
+ "internalType": "contract IPPTLooper",
221
+ "name": "",
222
+ "type": "address"
223
+ }
224
+ ],
225
+ "stateMutability": "view",
226
+ "type": "function"
227
+ },
228
+ {
229
+ "inputs": [
230
+ {
231
+ "components": [
232
+ {
233
+ "internalType": "contract IPLoopPositionBox",
234
+ "name": "box",
235
+ "type": "address"
236
+ },
237
+ {
238
+ "internalType": "bytes32",
239
+ "name": "mmPayload",
240
+ "type": "bytes32"
241
+ },
242
+ {
243
+ "internalType": "address",
244
+ "name": "collateral",
245
+ "type": "address"
246
+ },
247
+ {
248
+ "internalType": "address",
249
+ "name": "debtAsset",
250
+ "type": "address"
251
+ }
252
+ ],
253
+ "internalType": "struct MarketCtx",
254
+ "name": "ctx",
255
+ "type": "tuple"
256
+ },
257
+ {
258
+ "internalType": "uint256",
259
+ "name": "amount",
260
+ "type": "uint256"
261
+ }
262
+ ],
263
+ "name": "borrow",
264
+ "outputs": [
265
+ {
266
+ "internalType": "uint256",
267
+ "name": "borrowed",
268
+ "type": "uint256"
269
+ },
270
+ {
271
+ "internalType": "uint256",
272
+ "name": "postDebtBalance",
273
+ "type": "uint256"
274
+ }
275
+ ],
276
+ "stateMutability": "nonpayable",
277
+ "type": "function"
278
+ },
279
+ {
280
+ "inputs": [
281
+ {
282
+ "components": [
283
+ {
284
+ "internalType": "contract IPLoopPositionBox",
285
+ "name": "box",
286
+ "type": "address"
287
+ },
288
+ {
289
+ "internalType": "bytes32",
290
+ "name": "mmPayload",
291
+ "type": "bytes32"
292
+ },
293
+ {
294
+ "internalType": "address",
295
+ "name": "collateral",
296
+ "type": "address"
297
+ },
298
+ {
299
+ "internalType": "address",
300
+ "name": "debtAsset",
301
+ "type": "address"
302
+ }
303
+ ],
304
+ "internalType": "struct MarketCtx",
305
+ "name": "ctx",
306
+ "type": "tuple"
307
+ },
308
+ {
309
+ "internalType": "address",
310
+ "name": "extRewardController",
311
+ "type": "address"
312
+ },
313
+ {
314
+ "internalType": "bytes",
315
+ "name": "data",
316
+ "type": "bytes"
317
+ },
318
+ {
319
+ "internalType": "address[]",
320
+ "name": "rewardTokens",
321
+ "type": "address[]"
322
+ }
323
+ ],
324
+ "name": "claimRewards",
325
+ "outputs": [
326
+ {
327
+ "internalType": "uint256[]",
328
+ "name": "claimedAmount",
329
+ "type": "uint256[]"
330
+ }
331
+ ],
332
+ "stateMutability": "nonpayable",
333
+ "type": "function"
334
+ },
335
+ {
336
+ "inputs": [
337
+ {
338
+ "components": [
339
+ {
340
+ "internalType": "contract IPLoopPositionBox",
341
+ "name": "box",
342
+ "type": "address"
343
+ },
344
+ {
345
+ "internalType": "bytes32",
346
+ "name": "mmPayload",
347
+ "type": "bytes32"
348
+ },
349
+ {
350
+ "internalType": "address",
351
+ "name": "collateral",
352
+ "type": "address"
353
+ },
354
+ {
355
+ "internalType": "address",
356
+ "name": "debtAsset",
357
+ "type": "address"
358
+ }
359
+ ],
360
+ "internalType": "struct MarketCtx",
361
+ "name": "ctx",
362
+ "type": "tuple"
363
+ }
364
+ ],
365
+ "name": "collateralBalance",
366
+ "outputs": [
367
+ {
368
+ "internalType": "uint256",
369
+ "name": "balance",
370
+ "type": "uint256"
371
+ }
372
+ ],
373
+ "stateMutability": "view",
374
+ "type": "function"
375
+ },
376
+ {
377
+ "inputs": [
378
+ {
379
+ "components": [
380
+ {
381
+ "internalType": "contract IPLoopPositionBox",
382
+ "name": "box",
383
+ "type": "address"
384
+ },
385
+ {
386
+ "internalType": "bytes32",
387
+ "name": "mmPayload",
388
+ "type": "bytes32"
389
+ },
390
+ {
391
+ "internalType": "address",
392
+ "name": "collateral",
393
+ "type": "address"
394
+ },
395
+ {
396
+ "internalType": "address",
397
+ "name": "debtAsset",
398
+ "type": "address"
399
+ }
400
+ ],
401
+ "internalType": "struct MarketCtx",
402
+ "name": "ctx",
403
+ "type": "tuple"
404
+ }
405
+ ],
406
+ "name": "debtBalance",
407
+ "outputs": [
408
+ {
409
+ "internalType": "uint256",
410
+ "name": "balance",
411
+ "type": "uint256"
412
+ }
413
+ ],
414
+ "stateMutability": "view",
415
+ "type": "function"
416
+ },
417
+ {
418
+ "inputs": [
419
+ {
420
+ "components": [
421
+ {
422
+ "internalType": "contract IPLoopPositionBox",
423
+ "name": "box",
424
+ "type": "address"
425
+ },
426
+ {
427
+ "internalType": "bytes32",
428
+ "name": "mmPayload",
429
+ "type": "bytes32"
430
+ },
431
+ {
432
+ "internalType": "address",
433
+ "name": "collateral",
434
+ "type": "address"
435
+ },
436
+ {
437
+ "internalType": "address",
438
+ "name": "debtAsset",
439
+ "type": "address"
440
+ }
441
+ ],
442
+ "internalType": "struct MarketCtx",
443
+ "name": "ctx",
444
+ "type": "tuple"
445
+ }
446
+ ],
447
+ "name": "initialize",
448
+ "outputs": [],
449
+ "stateMutability": "nonpayable",
450
+ "type": "function"
451
+ },
452
+ {
453
+ "inputs": [
454
+ {
455
+ "components": [
456
+ {
457
+ "internalType": "contract IPLoopPositionBox",
458
+ "name": "box",
459
+ "type": "address"
460
+ },
461
+ {
462
+ "internalType": "bytes32",
463
+ "name": "mmPayload",
464
+ "type": "bytes32"
465
+ },
466
+ {
467
+ "internalType": "address",
468
+ "name": "collateral",
469
+ "type": "address"
470
+ },
471
+ {
472
+ "internalType": "address",
473
+ "name": "debtAsset",
474
+ "type": "address"
475
+ }
476
+ ],
477
+ "internalType": "struct MarketCtx",
478
+ "name": "ctx",
479
+ "type": "tuple"
480
+ },
481
+ {
482
+ "internalType": "uint256",
483
+ "name": "amount",
484
+ "type": "uint256"
485
+ }
486
+ ],
487
+ "name": "lend",
488
+ "outputs": [
489
+ {
490
+ "internalType": "uint256",
491
+ "name": "lent",
492
+ "type": "uint256"
493
+ },
494
+ {
495
+ "internalType": "uint256",
496
+ "name": "postCollateralBalance",
497
+ "type": "uint256"
498
+ }
499
+ ],
500
+ "stateMutability": "nonpayable",
501
+ "type": "function"
502
+ },
503
+ {
504
+ "inputs": [
505
+ {
506
+ "components": [
507
+ {
508
+ "internalType": "contract IPLoopPositionBox",
509
+ "name": "box",
510
+ "type": "address"
511
+ },
512
+ {
513
+ "internalType": "bytes32",
514
+ "name": "mmPayload",
515
+ "type": "bytes32"
516
+ },
517
+ {
518
+ "internalType": "address",
519
+ "name": "collateral",
520
+ "type": "address"
521
+ },
522
+ {
523
+ "internalType": "address",
524
+ "name": "debtAsset",
525
+ "type": "address"
526
+ }
527
+ ],
528
+ "internalType": "struct MarketCtx",
529
+ "name": "ctx",
530
+ "type": "tuple"
531
+ }
532
+ ],
533
+ "name": "oraclePtDebtRate",
534
+ "outputs": [
535
+ {
536
+ "internalType": "uint256",
537
+ "name": "",
538
+ "type": "uint256"
539
+ }
540
+ ],
541
+ "stateMutability": "view",
542
+ "type": "function"
543
+ },
544
+ {
545
+ "inputs": [
546
+ {
547
+ "components": [
548
+ {
549
+ "internalType": "contract IPLoopPositionBox",
550
+ "name": "box",
551
+ "type": "address"
552
+ },
553
+ {
554
+ "internalType": "bytes32",
555
+ "name": "mmPayload",
556
+ "type": "bytes32"
557
+ },
558
+ {
559
+ "internalType": "address",
560
+ "name": "collateral",
561
+ "type": "address"
562
+ },
563
+ {
564
+ "internalType": "address",
565
+ "name": "debtAsset",
566
+ "type": "address"
567
+ }
568
+ ],
569
+ "internalType": "struct MarketCtx",
570
+ "name": "ctx",
571
+ "type": "tuple"
572
+ },
573
+ {
574
+ "internalType": "uint256",
575
+ "name": "amount",
576
+ "type": "uint256"
577
+ }
578
+ ],
579
+ "name": "repay",
580
+ "outputs": [
581
+ {
582
+ "internalType": "uint256",
583
+ "name": "repaid",
584
+ "type": "uint256"
585
+ },
586
+ {
587
+ "internalType": "uint256",
588
+ "name": "postDebtBalance",
589
+ "type": "uint256"
590
+ }
591
+ ],
592
+ "stateMutability": "nonpayable",
593
+ "type": "function"
594
+ },
595
+ {
596
+ "inputs": [
597
+ {
598
+ "components": [
599
+ {
600
+ "internalType": "contract IPLoopPositionBox",
601
+ "name": "box",
602
+ "type": "address"
603
+ },
604
+ {
605
+ "internalType": "bytes32",
606
+ "name": "mmPayload",
607
+ "type": "bytes32"
608
+ },
609
+ {
610
+ "internalType": "address",
611
+ "name": "collateral",
612
+ "type": "address"
613
+ },
614
+ {
615
+ "internalType": "address",
616
+ "name": "debtAsset",
617
+ "type": "address"
618
+ }
619
+ ],
620
+ "internalType": "struct MarketCtx",
621
+ "name": "ctx",
622
+ "type": "tuple"
623
+ },
624
+ {
625
+ "internalType": "uint256",
626
+ "name": "amount",
627
+ "type": "uint256"
628
+ }
629
+ ],
630
+ "name": "withdraw",
631
+ "outputs": [
632
+ {
633
+ "internalType": "uint256",
634
+ "name": "withdrawn",
635
+ "type": "uint256"
636
+ },
637
+ {
638
+ "internalType": "uint256",
639
+ "name": "postCollateralBalance",
640
+ "type": "uint256"
641
+ }
642
+ ],
643
+ "stateMutability": "nonpayable",
644
+ "type": "function"
645
+ }
646
+ ],
647
+ "bytecode": "0x610100604052348015610010575f5ffd5b5060405161245c38038061245c83398101604081905261002f916100d3565b6001600160a01b03831660808190526040805163ca6f50fd60e01b8152905185929163ca6f50fd9160048083019260209291908290030181865afa158015610079573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061009d919061011d565b6001600160a01b0390811660a05292831660c052501660e0525061013f565b6001600160a01b03811681146100d0575f5ffd5b50565b5f5f5f606084860312156100e5575f5ffd5b83516100f0816100bc565b6020850151909350610101816100bc565b6040850151909250610112816100bc565b809150509250925092565b5f6020828403121561012d575f5ffd5b8151610138816100bc565b9392505050565b60805160a05160c05160e0516122736101e95f395f81816101490152818161037d0152818161056e0152818161087201528181610df001528181610e330152818161118c015281816112c3015281816114a8015261157901525f81816101a90152818161104f01526110c801525f81816101f0015261024301525f8181610115015281816102a20152818161049a0152818161092501528181610c530152610d2701526122735ff3fe608060405234801561000f575f5ffd5b50600436106100ac575f3560e01c8062f1a3d6146100b05780630a44c195146100c5578063180cad99146100ef5780631a174fc4146101105780632dd31000146101445780633a2e717b1461016b5780639025036a1461017e5780639e4f39c814610191578063a70354a1146101a4578063b3fd98f0146101cb578063ca6f50fd146101eb578063d30cd70814610212578063ec09498514610225575b5f5ffd5b6100c36100be366004611cd6565b610238565b005b6100d86100d3366004611cf0565b610295565b6040516100e6929190611d19565b60405180910390f35b6101026100fd366004611cd6565b610371565b6040519081526020016100e6565b6101377f000000000000000000000000000000000000000000000000000000000000000081565b6040516100e69190611d27565b6101377f000000000000000000000000000000000000000000000000000000000000000081565b6100d8610179366004611cf0565b61048d565b61010261018c366004611cd6565b610562565b61010261019f366004611cd6565b610867565b6101377f000000000000000000000000000000000000000000000000000000000000000081565b6101de6101d9366004611dc3565b610918565b6040516100e69190611eb6565b6101377f000000000000000000000000000000000000000000000000000000000000000081565b6100d8610220366004611cf0565b610c46565b6100d8610233366004611cf0565b610d1a565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102895760405162461bcd60e51b815260040161028090611ec8565b60405180910390fd5b61029281610de5565b50565b5f80336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102df5760405162461bcd60e51b815260040161028090611ec8565b5f6102e985610867565b9050835f036102fc575f9250905061036a565b6103068585611181565b92506103128184611f0f565b915084606001516001600160a01b0316855f01516001600160a01b03167fc14e9e6b4d98a542b05a0f6b64acd5f4cbdb914be88432d87486b664e97071a78584604051610360929190611d19565b60405180910390a3505b9250929050565b5f5f6103b383602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661120f90919063ffffffff16565b6040516370a0823160e01b81529091506001600160a01b038216906307a2d13a9082906370a08231906103ea903090600401611d27565b602060405180830381865afa158015610405573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104299190611f22565b6040518263ffffffff1660e01b815260040161044791815260200190565b602060405180830381865afa158015610462573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104869190611f22565b9392505050565b5f80336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d75760405162461bcd60e51b815260040161028090611ec8565b5f6104e185610867565b90508315806104ee575080155b156104fd575f9250905061036a565b61050885858361128a565b92506105148382611f39565b915084606001516001600160a01b0316855f01516001600160a01b03167fe62a777dbd48d3912f68a1b9445813ee02bc3ac18b97dc129ca462cc77bb641b8584604051610360929190611d19565b5f5f6105a483602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661135690919063ffffffff16565b90505f816001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106079190611f4c565b90505f826001600160a01b0316633e8333646040518163ffffffff1660e01b8152600401602060405180830381865afa158015610646573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066a9190611f4c565b90505f85604001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ad573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d19190611f67565b6106dc90600a61206a565b90505f86606001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561071f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107439190611f67565b61074e90600a61206a565b90505f846001600160a01b031663ae68676c848a60400151876040518463ffffffff1660e01b815260040161078593929190612078565b602060405180830381865afa1580156107a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c49190611f22565b6060890151604051632b9a19db60e21b81529192505f916001600160a01b0388169163ae68676c916107fc9187918a90600401612078565b602060405180830381865afa158015610817573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083b9190611f22565b905061085a61084a8583612097565b6108548585612097565b90611386565b9998505050505050505050565b5f6108a882602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661135690919063ffffffff16565b6001600160a01b031663d283e75f306040518263ffffffff1660e01b81526004016108d39190611d27565b602060405180830381865afa1580156108ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109129190611f22565b92915050565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109625760405162461bcd60e51b815260040161028090611ec8565b81515f816001600160401b0381111561097d5761097d611c01565b6040519080825280602002602001820160405280156109a6578160200160208202803683370190505b5090505f5b828110156109fa576109d58582815181106109c8576109c86120ae565b60200260200101516113b4565b8282815181106109e7576109e76120ae565b60209081029190910101526001016109ab565b505f876001600160a01b03168787604051610a169291906120c2565b5f604051808303815f865af19150503d805f8114610a4f576040519150601f19603f3d011682016040523d82523d5f602084013e610a54565b606091505b5050905080610aa55760405162461bcd60e51b815260206004820181905260248201527f4d6f6e65794d61726b65743a20636c61696d52657761726473206661696c65646044820152606401610280565b5f895f01516001600160a01b031663117803e36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b099190611f4c565b9050836001600160401b03811115610b2357610b23611c01565b604051908082528060200260200182016040528015610b4c578160200160208202803683370190505b5094505f5b84811015610bf557838181518110610b6b57610b6b6120ae565b6020026020010151610b888883815181106109c8576109c86120ae565b610b929190611f39565b868281518110610ba457610ba46120ae565b602002602001018181525050610bed878281518110610bc557610bc56120ae565b602002602001015183888481518110610be057610be06120ae565b60200260200101516113bf565b600101610b51565b50886001600160a01b03167fc53cb8bc1a7200a84d0b66a538905a245c4915aace7f1ce5dc4a0ba107ebc15c8787604051610c319291906120d1565b60405180910390a25050505095945050505050565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c905760405162461bcd60e51b815260040161028090611ec8565b5f610c9a85610371565b9050831580610ca7575080155b15610cb6575f9250905061036a565b610cc0858561149c565b9250610ccc8382611f39565b915084604001516001600160a01b0316855f01516001600160a01b03167f91fb9d98b786c57d74c099ccd2beca1739e9f6a81fb49001ca465c4b7591bbe28584604051610360929190611d19565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d645760405162461bcd60e51b815260040161028090611ec8565b5f610d6e85610371565b9050835f03610d81575f9250905061036a565b610d8b858561155b565b9250610d978184611f0f565b915084604001516001600160a01b0316855f01516001600160a01b03167fb07c18dba66f7fd615f13c777549719e8ea100489339e0fdc30b7076bd77d6048584604051610360929190611d19565b5f610e2682602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661120f90919063ffffffff16565b90505f610e6983602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661135690919063ffffffff16565b905082604001516001600160a01b0316826001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed99190611f4c565b6001600160a01b031614610f435760405162461bcd60e51b815260206004820152602b60248201527f45756c65724d6f6e65794d61726b65743a2062617365207661756c742061737360448201526a0cae840dad2e6dac2e8c6d60ab1b6064820152608401610280565b82606001516001600160a01b0316816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb19190611f4c565b6001600160a01b03161461101c5760405162461bcd60e51b815260206004820152602c60248201527f45756c65724d6f6e65794d61726b65743a2071756f7465207661756c7420617360448201526b0e6cae840dad2e6dac2e8c6d60a31b6064820152608401610280565b61102a836040015183611693565b611038836060015182611693565b604051636a27f72d60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d44fee5a906110869030908690600401612127565b5f604051808303815f87803b15801561109d575f5ffd5b505af11580156110af573d5f5f3e3d5ffd5b50506040516330da145b60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063c368516c91506111019030908590600401612127565b5f604051808303815f87803b158015611118575f5ffd5b505af115801561112a573d5f5f3e3d5ffd5b50505050816001600160a01b03166364b1cdd66040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611166575f5ffd5b505af1158015611178573d5f5f3e3d5ffd5b50505050505050565b5f6111c283602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661135690919063ffffffff16565b8351604051630967fa2960e31b81526001600160a01b039290921691634b3fd148916111f391869190600401612141565b6020604051808303815f875af1158015610462573d5f5f3e3d5ffd5b604051631bc66db160e11b81525f90608083901c906001600160a01b0385169063378cdb6290611243908490600401612158565b602060405180830381865afa15801561125e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112829190611f4c565b949350505050565b5f611295838361174e565b90508015610486576112b08460600151855f01513084611763565b60208401516112e9906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690611356565b6001600160a01b031663acb7081582306040518363ffffffff1660e01b8152600401611316929190612141565b6020604051808303815f875af1158015611332573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112829190611f22565b604051631bc66db160e11b81525f9082906001600160a01b0385169063378cdb6290611243908490600401612158565b5f8061139a670de0b6b3a764000085612097565b90508281816113ab576113ab61216c565b04949350505050565b5f610912308361177e565b8015806113d457506001600160a01b03821630145b156113de57505050565b6001600160a01b038316611483575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611435576040519150601f19603f3d011682016040523d82523d5f602084013e61143a565b606091505b505090508061147d5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610280565b50505050565b6114976001600160a01b038416838361180d565b505050565b5f5f6114de84602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661120f90919063ffffffff16565b8451604051632d182be560e21b81529192506001600160a01b0383169163b460af9491611512918791903090600401612078565b6020604051808303815f875af115801561152e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115529190611f22565b50919392505050565b5f61156e8360400151845f015184611863565b5f6115af84602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661120f90919063ffffffff16565b90505f816001600160a01b0316636e553f6585306040518363ffffffff1660e01b81526004016115e0929190612141565b6020604051808303815f875af11580156115fc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116209190611f22565b6040516303d1689d60e11b8152600481018290529091506001600160a01b038316906307a2d13a90602401602060405180830381865afa158015611666573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061168a9190611f22565b95945050505050565b6001600160a01b0382166116a5575050565b6116b760026001600160601b03612180565b6001600160601b0316826001600160a01b031663dd62ed3e30846040518363ffffffff1660e01b81526004016116ee929190612127565b602060405180830381865afa158015611709573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172d9190611f22565b101561174a5761173e82825f6118ca565b61174a82825f196118ca565b5050565b5f81831061175c5781610486565b5090919050565b801561147d5761147d6001600160a01b0385168484846119d9565b5f6001600160a01b038216156117fe576040516370a0823160e01b81526001600160a01b038316906370a08231906117ba908690600401611d27565b602060405180830381865afa1580156117d5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f99190611f22565b610486565b50506001600160a01b03163190565b6114978363a9059cbb60e01b848460405160240161182c9291906121ba565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611a11565b6001600160a01b0383166118af578034146114975760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610280565b8015611497576114976001600160a01b0384168330846119d9565b5f5f846001600160a01b031663095ea7b360e01b85856040516024016118f19291906121ba565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161192f91906121d3565b5f604051808303815f865af19150503d805f8114611968576040519150601f19603f3d011682016040523d82523d5f602084013e61196d565b606091505b509150915081801561199757508051158061199757508080602001905181019061199791906121e9565b6119d25760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610280565b5050505050565b6040516001600160a01b038085166024830152831660448201526064810182905261147d9085906323b872dd60e01b9060840161182c565b5f611a65826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611ae49092919063ffffffff16565b905080515f1480611a85575080806020019051810190611a8591906121e9565b6114975760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610280565b606061128284845f85855f5f866001600160a01b03168587604051611b0991906121d3565b5f6040518083038185875af1925050503d805f8114611b43576040519150601f19603f3d011682016040523d82523d5f602084013e611b48565b606091505b5091509150611b5987838387611b64565b979650505050505050565b60608315611bd25782515f03611bcb576001600160a01b0385163b611bcb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610280565b5081611282565b6112828383815115611be75781518083602001fd5b8060405162461bcd60e51b81526004016102809190612208565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715611c3d57611c3d611c01565b604052919050565b6001600160a01b0381168114610292575f5ffd5b5f60808284031215611c69575f5ffd5b604051608081016001600160401b0381118282101715611c8b57611c8b611c01565b6040529050808235611c9c81611c45565b8152602083810135908201526040830135611cb681611c45565b60408201526060830135611cc981611c45565b6060919091015292915050565b5f60808284031215611ce6575f5ffd5b6104868383611c59565b5f5f60a08385031215611d01575f5ffd5b611d0b8484611c59565b946080939093013593505050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b5f82601f830112611d4a575f5ffd5b81356001600160401b03811115611d6357611d63611c01565b8060051b611d7360208201611c15565b91825260208185018101929081019086841115611d8e575f5ffd5b6020860192505b83831015611db9578235611da881611c45565b825260209283019290910190611d95565b9695505050505050565b5f5f5f5f5f60e08688031215611dd7575f5ffd5b611de18787611c59565b94506080860135611df181611c45565b935060a08601356001600160401b03811115611e0b575f5ffd5b8601601f81018813611e1b575f5ffd5b80356001600160401b03811115611e30575f5ffd5b886020828401011115611e41575f5ffd5b6020919091019350915060c08601356001600160401b03811115611e63575f5ffd5b611e6f88828901611d3b565b9150509295509295909350565b5f8151808452602084019350602083015f5b82811015611eac578151865260209586019590910190600101611e8e565b5093949350505050565b602081525f6104866020830184611e7c565b602080825260199082015278135bdb995e53585c9ad95d0e881d5b985d5d1a1bdc9a5e9959603a1b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561091257610912611efb565b5f60208284031215611f32575f5ffd5b5051919050565b8181038181111561091257610912611efb565b5f60208284031215611f5c575f5ffd5b815161048681611c45565b5f60208284031215611f77575f5ffd5b815160ff81168114610486575f5ffd5b6001815b6001841115611fc257808504811115611fa657611fa6611efb565b6001841615611fb457908102905b60019390931c928002611f8b565b935093915050565b5f82611fd857506001610912565b81611fe457505f610912565b8160018114611ffa576002811461200457612020565b6001915050610912565b60ff84111561201557612015611efb565b50506001821b610912565b5060208310610133831016604e8410600b8410161715612043575081810a610912565b61204f5f198484611f87565b805f190482111561206257612062611efb565b029392505050565b5f61048660ff841683611fca565b9283526001600160a01b03918216602084015216604082015260600190565b808202811582820484141761091257610912611efb565b634e487b7160e01b5f52603260045260245ffd5b818382375f9101908152919050565b604080825283519082018190525f9060208501906060840190835b818110156121135783516001600160a01b03168352602093840193909201916001016120ec565b50508381036020850152611db98186611e7c565b6001600160a01b0392831681529116602082015260400190565b9182526001600160a01b0316602082015260400190565b6001600160801b0391909116815260200190565b634e487b7160e01b5f52601260045260245ffd5b5f6001600160601b038316806121a457634e487b7160e01b5f52601260045260245ffd5b6001600160601b03929092169190910492915050565b6001600160a01b03929092168252602082015260400190565b5f82518060208501845e5f920191825250919050565b5f602082840312156121f9575f5ffd5b81518015158114610486575f5ffd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fea26469706673582212205f3cbe92bd11389b3f1e5eaf2d0ca2ceef7e954a646653869919e21c2f6cb09a64736f6c634300081e0033",
648
+ "deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100ac575f3560e01c8062f1a3d6146100b05780630a44c195146100c5578063180cad99146100ef5780631a174fc4146101105780632dd31000146101445780633a2e717b1461016b5780639025036a1461017e5780639e4f39c814610191578063a70354a1146101a4578063b3fd98f0146101cb578063ca6f50fd146101eb578063d30cd70814610212578063ec09498514610225575b5f5ffd5b6100c36100be366004611cd6565b610238565b005b6100d86100d3366004611cf0565b610295565b6040516100e6929190611d19565b60405180910390f35b6101026100fd366004611cd6565b610371565b6040519081526020016100e6565b6101377f000000000000000000000000000000000000000000000000000000000000000081565b6040516100e69190611d27565b6101377f000000000000000000000000000000000000000000000000000000000000000081565b6100d8610179366004611cf0565b61048d565b61010261018c366004611cd6565b610562565b61010261019f366004611cd6565b610867565b6101377f000000000000000000000000000000000000000000000000000000000000000081565b6101de6101d9366004611dc3565b610918565b6040516100e69190611eb6565b6101377f000000000000000000000000000000000000000000000000000000000000000081565b6100d8610220366004611cf0565b610c46565b6100d8610233366004611cf0565b610d1a565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102895760405162461bcd60e51b815260040161028090611ec8565b60405180910390fd5b61029281610de5565b50565b5f80336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102df5760405162461bcd60e51b815260040161028090611ec8565b5f6102e985610867565b9050835f036102fc575f9250905061036a565b6103068585611181565b92506103128184611f0f565b915084606001516001600160a01b0316855f01516001600160a01b03167fc14e9e6b4d98a542b05a0f6b64acd5f4cbdb914be88432d87486b664e97071a78584604051610360929190611d19565b60405180910390a3505b9250929050565b5f5f6103b383602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661120f90919063ffffffff16565b6040516370a0823160e01b81529091506001600160a01b038216906307a2d13a9082906370a08231906103ea903090600401611d27565b602060405180830381865afa158015610405573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104299190611f22565b6040518263ffffffff1660e01b815260040161044791815260200190565b602060405180830381865afa158015610462573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104869190611f22565b9392505050565b5f80336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104d75760405162461bcd60e51b815260040161028090611ec8565b5f6104e185610867565b90508315806104ee575080155b156104fd575f9250905061036a565b61050885858361128a565b92506105148382611f39565b915084606001516001600160a01b0316855f01516001600160a01b03167fe62a777dbd48d3912f68a1b9445813ee02bc3ac18b97dc129ca462cc77bb641b8584604051610360929190611d19565b5f5f6105a483602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661135690919063ffffffff16565b90505f816001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105e3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106079190611f4c565b90505f826001600160a01b0316633e8333646040518163ffffffff1660e01b8152600401602060405180830381865afa158015610646573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066a9190611f4c565b90505f85604001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ad573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d19190611f67565b6106dc90600a61206a565b90505f86606001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561071f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107439190611f67565b61074e90600a61206a565b90505f846001600160a01b031663ae68676c848a60400151876040518463ffffffff1660e01b815260040161078593929190612078565b602060405180830381865afa1580156107a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c49190611f22565b6060890151604051632b9a19db60e21b81529192505f916001600160a01b0388169163ae68676c916107fc9187918a90600401612078565b602060405180830381865afa158015610817573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083b9190611f22565b905061085a61084a8583612097565b6108548585612097565b90611386565b9998505050505050505050565b5f6108a882602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661135690919063ffffffff16565b6001600160a01b031663d283e75f306040518263ffffffff1660e01b81526004016108d39190611d27565b602060405180830381865afa1580156108ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109129190611f22565b92915050565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109625760405162461bcd60e51b815260040161028090611ec8565b81515f816001600160401b0381111561097d5761097d611c01565b6040519080825280602002602001820160405280156109a6578160200160208202803683370190505b5090505f5b828110156109fa576109d58582815181106109c8576109c86120ae565b60200260200101516113b4565b8282815181106109e7576109e76120ae565b60209081029190910101526001016109ab565b505f876001600160a01b03168787604051610a169291906120c2565b5f604051808303815f865af19150503d805f8114610a4f576040519150601f19603f3d011682016040523d82523d5f602084013e610a54565b606091505b5050905080610aa55760405162461bcd60e51b815260206004820181905260248201527f4d6f6e65794d61726b65743a20636c61696d52657761726473206661696c65646044820152606401610280565b5f895f01516001600160a01b031663117803e36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b099190611f4c565b9050836001600160401b03811115610b2357610b23611c01565b604051908082528060200260200182016040528015610b4c578160200160208202803683370190505b5094505f5b84811015610bf557838181518110610b6b57610b6b6120ae565b6020026020010151610b888883815181106109c8576109c86120ae565b610b929190611f39565b868281518110610ba457610ba46120ae565b602002602001018181525050610bed878281518110610bc557610bc56120ae565b602002602001015183888481518110610be057610be06120ae565b60200260200101516113bf565b600101610b51565b50886001600160a01b03167fc53cb8bc1a7200a84d0b66a538905a245c4915aace7f1ce5dc4a0ba107ebc15c8787604051610c319291906120d1565b60405180910390a25050505095945050505050565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c905760405162461bcd60e51b815260040161028090611ec8565b5f610c9a85610371565b9050831580610ca7575080155b15610cb6575f9250905061036a565b610cc0858561149c565b9250610ccc8382611f39565b915084604001516001600160a01b0316855f01516001600160a01b03167f91fb9d98b786c57d74c099ccd2beca1739e9f6a81fb49001ca465c4b7591bbe28584604051610360929190611d19565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d645760405162461bcd60e51b815260040161028090611ec8565b5f610d6e85610371565b9050835f03610d81575f9250905061036a565b610d8b858561155b565b9250610d978184611f0f565b915084604001516001600160a01b0316855f01516001600160a01b03167fb07c18dba66f7fd615f13c777549719e8ea100489339e0fdc30b7076bd77d6048584604051610360929190611d19565b5f610e2682602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661120f90919063ffffffff16565b90505f610e6983602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661135690919063ffffffff16565b905082604001516001600160a01b0316826001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed99190611f4c565b6001600160a01b031614610f435760405162461bcd60e51b815260206004820152602b60248201527f45756c65724d6f6e65794d61726b65743a2062617365207661756c742061737360448201526a0cae840dad2e6dac2e8c6d60ab1b6064820152608401610280565b82606001516001600160a01b0316816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb19190611f4c565b6001600160a01b03161461101c5760405162461bcd60e51b815260206004820152602c60248201527f45756c65724d6f6e65794d61726b65743a2071756f7465207661756c7420617360448201526b0e6cae840dad2e6dac2e8c6d60a31b6064820152608401610280565b61102a836040015183611693565b611038836060015182611693565b604051636a27f72d60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d44fee5a906110869030908690600401612127565b5f604051808303815f87803b15801561109d575f5ffd5b505af11580156110af573d5f5f3e3d5ffd5b50506040516330da145b60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063c368516c91506111019030908590600401612127565b5f604051808303815f87803b158015611118575f5ffd5b505af115801561112a573d5f5f3e3d5ffd5b50505050816001600160a01b03166364b1cdd66040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611166575f5ffd5b505af1158015611178573d5f5f3e3d5ffd5b50505050505050565b5f6111c283602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661135690919063ffffffff16565b8351604051630967fa2960e31b81526001600160a01b039290921691634b3fd148916111f391869190600401612141565b6020604051808303815f875af1158015610462573d5f5f3e3d5ffd5b604051631bc66db160e11b81525f90608083901c906001600160a01b0385169063378cdb6290611243908490600401612158565b602060405180830381865afa15801561125e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112829190611f4c565b949350505050565b5f611295838361174e565b90508015610486576112b08460600151855f01513084611763565b60208401516112e9906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690611356565b6001600160a01b031663acb7081582306040518363ffffffff1660e01b8152600401611316929190612141565b6020604051808303815f875af1158015611332573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112829190611f22565b604051631bc66db160e11b81525f9082906001600160a01b0385169063378cdb6290611243908490600401612158565b5f8061139a670de0b6b3a764000085612097565b90508281816113ab576113ab61216c565b04949350505050565b5f610912308361177e565b8015806113d457506001600160a01b03821630145b156113de57505050565b6001600160a01b038316611483575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611435576040519150601f19603f3d011682016040523d82523d5f602084013e61143a565b606091505b505090508061147d5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610280565b50505050565b6114976001600160a01b038416838361180d565b505050565b5f5f6114de84602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661120f90919063ffffffff16565b8451604051632d182be560e21b81529192506001600160a01b0383169163b460af9491611512918791903090600401612078565b6020604051808303815f875af115801561152e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115529190611f22565b50919392505050565b5f61156e8360400151845f015184611863565b5f6115af84602001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661120f90919063ffffffff16565b90505f816001600160a01b0316636e553f6585306040518363ffffffff1660e01b81526004016115e0929190612141565b6020604051808303815f875af11580156115fc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116209190611f22565b6040516303d1689d60e11b8152600481018290529091506001600160a01b038316906307a2d13a90602401602060405180830381865afa158015611666573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061168a9190611f22565b95945050505050565b6001600160a01b0382166116a5575050565b6116b760026001600160601b03612180565b6001600160601b0316826001600160a01b031663dd62ed3e30846040518363ffffffff1660e01b81526004016116ee929190612127565b602060405180830381865afa158015611709573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172d9190611f22565b101561174a5761173e82825f6118ca565b61174a82825f196118ca565b5050565b5f81831061175c5781610486565b5090919050565b801561147d5761147d6001600160a01b0385168484846119d9565b5f6001600160a01b038216156117fe576040516370a0823160e01b81526001600160a01b038316906370a08231906117ba908690600401611d27565b602060405180830381865afa1580156117d5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f99190611f22565b610486565b50506001600160a01b03163190565b6114978363a9059cbb60e01b848460405160240161182c9291906121ba565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611a11565b6001600160a01b0383166118af578034146114975760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610280565b8015611497576114976001600160a01b0384168330846119d9565b5f5f846001600160a01b031663095ea7b360e01b85856040516024016118f19291906121ba565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161192f91906121d3565b5f604051808303815f865af19150503d805f8114611968576040519150601f19603f3d011682016040523d82523d5f602084013e61196d565b606091505b509150915081801561199757508051158061199757508080602001905181019061199791906121e9565b6119d25760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610280565b5050505050565b6040516001600160a01b038085166024830152831660448201526064810182905261147d9085906323b872dd60e01b9060840161182c565b5f611a65826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611ae49092919063ffffffff16565b905080515f1480611a85575080806020019051810190611a8591906121e9565b6114975760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610280565b606061128284845f85855f5f866001600160a01b03168587604051611b0991906121d3565b5f6040518083038185875af1925050503d805f8114611b43576040519150601f19603f3d011682016040523d82523d5f602084013e611b48565b606091505b5091509150611b5987838387611b64565b979650505050505050565b60608315611bd25782515f03611bcb576001600160a01b0385163b611bcb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610280565b5081611282565b6112828383815115611be75781518083602001fd5b8060405162461bcd60e51b81526004016102809190612208565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715611c3d57611c3d611c01565b604052919050565b6001600160a01b0381168114610292575f5ffd5b5f60808284031215611c69575f5ffd5b604051608081016001600160401b0381118282101715611c8b57611c8b611c01565b6040529050808235611c9c81611c45565b8152602083810135908201526040830135611cb681611c45565b60408201526060830135611cc981611c45565b6060919091015292915050565b5f60808284031215611ce6575f5ffd5b6104868383611c59565b5f5f60a08385031215611d01575f5ffd5b611d0b8484611c59565b946080939093013593505050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b5f82601f830112611d4a575f5ffd5b81356001600160401b03811115611d6357611d63611c01565b8060051b611d7360208201611c15565b91825260208185018101929081019086841115611d8e575f5ffd5b6020860192505b83831015611db9578235611da881611c45565b825260209283019290910190611d95565b9695505050505050565b5f5f5f5f5f60e08688031215611dd7575f5ffd5b611de18787611c59565b94506080860135611df181611c45565b935060a08601356001600160401b03811115611e0b575f5ffd5b8601601f81018813611e1b575f5ffd5b80356001600160401b03811115611e30575f5ffd5b886020828401011115611e41575f5ffd5b6020919091019350915060c08601356001600160401b03811115611e63575f5ffd5b611e6f88828901611d3b565b9150509295509295909350565b5f8151808452602084019350602083015f5b82811015611eac578151865260209586019590910190600101611e8e565b5093949350505050565b602081525f6104866020830184611e7c565b602080825260199082015278135bdb995e53585c9ad95d0e881d5b985d5d1a1bdc9a5e9959603a1b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561091257610912611efb565b5f60208284031215611f32575f5ffd5b5051919050565b8181038181111561091257610912611efb565b5f60208284031215611f5c575f5ffd5b815161048681611c45565b5f60208284031215611f77575f5ffd5b815160ff81168114610486575f5ffd5b6001815b6001841115611fc257808504811115611fa657611fa6611efb565b6001841615611fb457908102905b60019390931c928002611f8b565b935093915050565b5f82611fd857506001610912565b81611fe457505f610912565b8160018114611ffa576002811461200457612020565b6001915050610912565b60ff84111561201557612015611efb565b50506001821b610912565b5060208310610133831016604e8410600b8410161715612043575081810a610912565b61204f5f198484611f87565b805f190482111561206257612062611efb565b029392505050565b5f61048660ff841683611fca565b9283526001600160a01b03918216602084015216604082015260600190565b808202811582820484141761091257610912611efb565b634e487b7160e01b5f52603260045260245ffd5b818382375f9101908152919050565b604080825283519082018190525f9060208501906060840190835b818110156121135783516001600160a01b03168352602093840193909201916001016120ec565b50508381036020850152611db98186611e7c565b6001600160a01b0392831681529116602082015260400190565b9182526001600160a01b0316602082015260400190565b6001600160801b0391909116815260200190565b634e487b7160e01b5f52601260045260245ffd5b5f6001600160601b038316806121a457634e487b7160e01b5f52601260045260245ffd5b6001600160601b03929092169190910492915050565b6001600160a01b03929092168252602082015260400190565b5f82518060208501845e5f920191825250919050565b5f602082840312156121f9575f5ffd5b81518015158114610486575f5ffd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fea26469706673582212205f3cbe92bd11389b3f1e5eaf2d0ca2ceef7e954a646653869919e21c2f6cb09a64736f6c634300081e0033",
649
+ "linkReferences": {},
650
+ "deployedLinkReferences": {}
651
+ }