@venusprotocol/venus-periphery 1.2.0-slim-dev.4 → 1.2.0-slim-dev.5

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 (24) hide show
  1. package/artifacts/contracts/DeviationSentinel/DeviationSentinel.sol/DeviationSentinel.json +2 -2
  2. package/artifacts/contracts/DeviationSentinel/Oracles/PancakeSwapOracle.sol/PancakeSwapOracle.json +2 -2
  3. package/artifacts/contracts/DeviationSentinel/Oracles/SentinelOracle.sol/SentinelOracle.json +2 -2
  4. package/artifacts/contracts/DeviationSentinel/Oracles/UniswapOracle.sol/UniswapOracle.json +2 -2
  5. package/artifacts/contracts/Interfaces/IComptroller.sol/IComptroller.json +37 -0
  6. package/artifacts/contracts/Interfaces/ICorePoolComptroller.sol/ICorePoolComptroller.json +37 -0
  7. package/artifacts/contracts/Interfaces/IVBNB.sol/IVBNB.json +37 -0
  8. package/artifacts/contracts/Interfaces/IVToken.sol/IVToken.json +37 -0
  9. package/artifacts/contracts/LeverageManager/LeverageStrategiesManager.sol/LeverageStrategiesManager.json +2 -2
  10. package/artifacts/contracts/Libraries/FixedPoint96.sol/FixedPoint96.json +2 -2
  11. package/artifacts/contracts/Libraries/FullMath.sol/FullMath.json +2 -2
  12. package/artifacts/contracts/PositionSwapper/PositionSwapper.sol/PositionSwapper.json +2 -2
  13. package/artifacts/contracts/RelativePositionManager/IPositionAccount.sol/IPositionAccount.json +250 -0
  14. package/artifacts/contracts/RelativePositionManager/IRelativePositionManager.sol/IRelativePositionManager.json +1580 -0
  15. package/artifacts/contracts/RelativePositionManager/PositionAccount.sol/PositionAccount.json +448 -0
  16. package/artifacts/contracts/RelativePositionManager/RelativePositionManager.sol/RelativePositionManager.json +2021 -0
  17. package/artifacts/contracts/SwapHelper/SwapHelper.sol/SwapHelper.json +2 -2
  18. package/artifacts/contracts/SwapRouter/SwapRouter.sol/SwapRouter.json +2 -2
  19. package/artifacts/contracts/pendle-pt-fixed-rate-vault/PendlePTVaultAdapter.sol/PendlePTVaultAdapter.json +2 -2
  20. package/artifacts/contracts/pendle-pt-fixed-rate-vault/test/AggregatorMock.sol/AggregatorMock.json +2 -2
  21. package/artifacts/contracts/test/MockTarget.sol/MockTarget.json +2 -2
  22. package/deployments/bscmainnet_addresses.json +4 -0
  23. package/deployments/bsctestnet_addresses.json +8 -1
  24. package/package.json +1 -1
@@ -0,0 +1,448 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PositionAccount",
4
+ "sourceName": "contracts/RelativePositionManager/PositionAccount.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "contract IComptroller",
10
+ "name": "comptroller_",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "relativePositionManager_",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "leverageManager_",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "uint256",
31
+ "name": "err",
32
+ "type": "uint256"
33
+ }
34
+ ],
35
+ "name": "ExitMarketFailed",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [],
40
+ "name": "InvalidCallsLength",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [],
45
+ "name": "UnauthorizedCaller",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [],
50
+ "name": "ZeroAddress",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "anonymous": false,
55
+ "inputs": [
56
+ {
57
+ "indexed": true,
58
+ "internalType": "address",
59
+ "name": "token",
60
+ "type": "address"
61
+ },
62
+ {
63
+ "indexed": true,
64
+ "internalType": "address",
65
+ "name": "owner",
66
+ "type": "address"
67
+ },
68
+ {
69
+ "indexed": false,
70
+ "internalType": "uint256",
71
+ "name": "amount",
72
+ "type": "uint256"
73
+ }
74
+ ],
75
+ "name": "DustTransferredToOwner",
76
+ "type": "event"
77
+ },
78
+ {
79
+ "anonymous": false,
80
+ "inputs": [
81
+ {
82
+ "indexed": true,
83
+ "internalType": "address",
84
+ "name": "collateralMarket",
85
+ "type": "address"
86
+ },
87
+ {
88
+ "indexed": true,
89
+ "internalType": "address",
90
+ "name": "borrowedMarket",
91
+ "type": "address"
92
+ },
93
+ {
94
+ "indexed": false,
95
+ "internalType": "uint256",
96
+ "name": "collateralAmountSeed",
97
+ "type": "uint256"
98
+ },
99
+ {
100
+ "indexed": false,
101
+ "internalType": "uint256",
102
+ "name": "borrowedAmount",
103
+ "type": "uint256"
104
+ }
105
+ ],
106
+ "name": "EnterLeverageForwarded",
107
+ "type": "event"
108
+ },
109
+ {
110
+ "anonymous": false,
111
+ "inputs": [
112
+ {
113
+ "indexed": true,
114
+ "internalType": "address",
115
+ "name": "collateralMarket",
116
+ "type": "address"
117
+ },
118
+ {
119
+ "indexed": true,
120
+ "internalType": "address",
121
+ "name": "borrowedMarket",
122
+ "type": "address"
123
+ },
124
+ {
125
+ "indexed": false,
126
+ "internalType": "uint256",
127
+ "name": "collateralAmount",
128
+ "type": "uint256"
129
+ },
130
+ {
131
+ "indexed": false,
132
+ "internalType": "uint256",
133
+ "name": "borrowedAmount",
134
+ "type": "uint256"
135
+ }
136
+ ],
137
+ "name": "ExitLeverageForwarded",
138
+ "type": "event"
139
+ },
140
+ {
141
+ "anonymous": false,
142
+ "inputs": [
143
+ {
144
+ "indexed": true,
145
+ "internalType": "address",
146
+ "name": "market",
147
+ "type": "address"
148
+ },
149
+ {
150
+ "indexed": false,
151
+ "internalType": "uint256",
152
+ "name": "amount",
153
+ "type": "uint256"
154
+ }
155
+ ],
156
+ "name": "ExitSingleAssetLeverageForwarded",
157
+ "type": "event"
158
+ },
159
+ {
160
+ "anonymous": false,
161
+ "inputs": [
162
+ {
163
+ "indexed": true,
164
+ "internalType": "address",
165
+ "name": "target",
166
+ "type": "address"
167
+ },
168
+ {
169
+ "indexed": false,
170
+ "internalType": "bytes",
171
+ "name": "data",
172
+ "type": "bytes"
173
+ }
174
+ ],
175
+ "name": "GenericCallExecuted",
176
+ "type": "event"
177
+ },
178
+ {
179
+ "anonymous": false,
180
+ "inputs": [
181
+ {
182
+ "indexed": false,
183
+ "internalType": "uint8",
184
+ "name": "version",
185
+ "type": "uint8"
186
+ }
187
+ ],
188
+ "name": "Initialized",
189
+ "type": "event"
190
+ },
191
+ {
192
+ "anonymous": false,
193
+ "inputs": [
194
+ {
195
+ "indexed": true,
196
+ "internalType": "address",
197
+ "name": "vToken",
198
+ "type": "address"
199
+ }
200
+ ],
201
+ "name": "MarketExited",
202
+ "type": "event"
203
+ },
204
+ {
205
+ "inputs": [],
206
+ "name": "COMPTROLLER",
207
+ "outputs": [
208
+ {
209
+ "internalType": "contract IComptroller",
210
+ "name": "",
211
+ "type": "address"
212
+ }
213
+ ],
214
+ "stateMutability": "view",
215
+ "type": "function"
216
+ },
217
+ {
218
+ "inputs": [],
219
+ "name": "LEVERAGE_MANAGER",
220
+ "outputs": [
221
+ {
222
+ "internalType": "address",
223
+ "name": "",
224
+ "type": "address"
225
+ }
226
+ ],
227
+ "stateMutability": "view",
228
+ "type": "function"
229
+ },
230
+ {
231
+ "inputs": [],
232
+ "name": "RELATIVE_POSITION_MANAGER",
233
+ "outputs": [
234
+ {
235
+ "internalType": "address",
236
+ "name": "",
237
+ "type": "address"
238
+ }
239
+ ],
240
+ "stateMutability": "view",
241
+ "type": "function"
242
+ },
243
+ {
244
+ "inputs": [
245
+ {
246
+ "internalType": "contract IVToken",
247
+ "name": "collateralMarket",
248
+ "type": "address"
249
+ },
250
+ {
251
+ "internalType": "uint256",
252
+ "name": "collateralAmountSeed",
253
+ "type": "uint256"
254
+ },
255
+ {
256
+ "internalType": "contract IVToken",
257
+ "name": "borrowedMarket",
258
+ "type": "address"
259
+ },
260
+ {
261
+ "internalType": "uint256",
262
+ "name": "borrowedAmountToFlashLoan",
263
+ "type": "uint256"
264
+ },
265
+ {
266
+ "internalType": "uint256",
267
+ "name": "minAmountOutAfterSwap",
268
+ "type": "uint256"
269
+ },
270
+ {
271
+ "internalType": "bytes",
272
+ "name": "swapData",
273
+ "type": "bytes"
274
+ }
275
+ ],
276
+ "name": "enterLeverage",
277
+ "outputs": [],
278
+ "stateMutability": "nonpayable",
279
+ "type": "function"
280
+ },
281
+ {
282
+ "inputs": [
283
+ {
284
+ "internalType": "contract IVToken",
285
+ "name": "collateralMarket",
286
+ "type": "address"
287
+ },
288
+ {
289
+ "internalType": "uint256",
290
+ "name": "collateralAmountToRedeemForSwap",
291
+ "type": "uint256"
292
+ },
293
+ {
294
+ "internalType": "contract IVToken",
295
+ "name": "borrowedMarket",
296
+ "type": "address"
297
+ },
298
+ {
299
+ "internalType": "uint256",
300
+ "name": "borrowedAmountToFlashLoan",
301
+ "type": "uint256"
302
+ },
303
+ {
304
+ "internalType": "uint256",
305
+ "name": "minAmountOutAfterSwap",
306
+ "type": "uint256"
307
+ },
308
+ {
309
+ "internalType": "bytes",
310
+ "name": "swapData",
311
+ "type": "bytes"
312
+ }
313
+ ],
314
+ "name": "exitLeverage",
315
+ "outputs": [],
316
+ "stateMutability": "nonpayable",
317
+ "type": "function"
318
+ },
319
+ {
320
+ "inputs": [
321
+ {
322
+ "internalType": "address",
323
+ "name": "vTokenToExit",
324
+ "type": "address"
325
+ }
326
+ ],
327
+ "name": "exitMarket",
328
+ "outputs": [],
329
+ "stateMutability": "nonpayable",
330
+ "type": "function"
331
+ },
332
+ {
333
+ "inputs": [
334
+ {
335
+ "internalType": "contract IVToken",
336
+ "name": "collateralMarket",
337
+ "type": "address"
338
+ },
339
+ {
340
+ "internalType": "uint256",
341
+ "name": "collateralAmountToFlashLoan",
342
+ "type": "uint256"
343
+ }
344
+ ],
345
+ "name": "exitSingleAssetLeverage",
346
+ "outputs": [],
347
+ "stateMutability": "nonpayable",
348
+ "type": "function"
349
+ },
350
+ {
351
+ "inputs": [
352
+ {
353
+ "internalType": "address[]",
354
+ "name": "targets",
355
+ "type": "address[]"
356
+ },
357
+ {
358
+ "internalType": "bytes[]",
359
+ "name": "data",
360
+ "type": "bytes[]"
361
+ }
362
+ ],
363
+ "name": "genericCalls",
364
+ "outputs": [],
365
+ "stateMutability": "nonpayable",
366
+ "type": "function"
367
+ },
368
+ {
369
+ "inputs": [
370
+ {
371
+ "internalType": "address",
372
+ "name": "owner_",
373
+ "type": "address"
374
+ },
375
+ {
376
+ "internalType": "address",
377
+ "name": "longVToken_",
378
+ "type": "address"
379
+ },
380
+ {
381
+ "internalType": "address",
382
+ "name": "shortVToken_",
383
+ "type": "address"
384
+ }
385
+ ],
386
+ "name": "initialize",
387
+ "outputs": [],
388
+ "stateMutability": "nonpayable",
389
+ "type": "function"
390
+ },
391
+ {
392
+ "inputs": [],
393
+ "name": "longVToken",
394
+ "outputs": [
395
+ {
396
+ "internalType": "address",
397
+ "name": "",
398
+ "type": "address"
399
+ }
400
+ ],
401
+ "stateMutability": "view",
402
+ "type": "function"
403
+ },
404
+ {
405
+ "inputs": [],
406
+ "name": "owner",
407
+ "outputs": [
408
+ {
409
+ "internalType": "address",
410
+ "name": "",
411
+ "type": "address"
412
+ }
413
+ ],
414
+ "stateMutability": "view",
415
+ "type": "function"
416
+ },
417
+ {
418
+ "inputs": [],
419
+ "name": "shortVToken",
420
+ "outputs": [
421
+ {
422
+ "internalType": "address",
423
+ "name": "",
424
+ "type": "address"
425
+ }
426
+ ],
427
+ "stateMutability": "view",
428
+ "type": "function"
429
+ },
430
+ {
431
+ "inputs": [
432
+ {
433
+ "internalType": "address",
434
+ "name": "token",
435
+ "type": "address"
436
+ }
437
+ ],
438
+ "name": "transferDustToOwner",
439
+ "outputs": [],
440
+ "stateMutability": "nonpayable",
441
+ "type": "function"
442
+ }
443
+ ],
444
+ "bytecode": "0x60e0346101e457601f61124438819003918201601f19168301916001600160401b038311848410176101e8578084926060946040528339810103126101e45780516001600160a01b03811691908281036101e45761006b6040610064602085016101fc565b93016101fc565b921580156101d3575b80156101c2575b6101b35760805260a05260c0525f5460ff8160081c1661015e5760ff80821603610124575b60405161103390816102118239608051818181610124015281816108e80152610b87015260a05181818160c80152818161023c015281816103c8015281816104f40152818161061f0152818161092601528181610bcd0152610ce0015260c05181818161043f01528181610559015281816105d4015281816109890152610c3f0152f35b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100a0565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b63d92e233d60e01b5f5260045ffd5b506001600160a01b0383161561007b565b506001600160a01b03821615610074565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101e45756fe6080806040526004361015610012575f80fd5b5f905f3560e01c908163184b8b6314610cce575080633a8f8c4314610bb65780635f82c67e14610b715780635fb72b8c14610b485780638da5cb5b14610b1d578063a3b2759814610af4578063c0c53b8b1461080d578063c204371f14610603578063c26f10e9146105be578063c6cd25f6146104d4578063c78befbe146103ae578063d25ecbe9146101e75763ede4edd0146100ad575f80fd5b346101e45760203660031901126101e4576100c6610d0f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101d557604051630ede4edd60e41b81526001600160a01b0391821660048201819052916020908290602490829087907f0000000000000000000000000000000000000000000000000000000000000000165af19081156101ca578391610194575b508061018257507f5be57e0b94c12c812c359f7bf336ea18e0c4a708ecc29b4bab3438025a45c5668280a280f35b63081ab1b160e31b8352600452602482fd5b90506020813d6020116101c2575b816101af60209383610dda565b810103126101be57515f610154565b5f80fd5b3d91506101a2565b6040513d85823e3d90fd5b635c427cd960e01b8252600482fd5b80fd5b50346101e45760403660031901126101e45760043567ffffffffffffffff81116103aa57610219903690600401610da9565b9060243567ffffffffffffffff811161037e5761023a903690600401610da9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361039b5783158015610391575b61038257845b848110610284578580f35b610297610292828787610e71565b610e95565b90866102a4828587610ea9565b6102ad81610eeb565b906102bb6040519283610dda565b808252368184011161037e576001956103759460208361033e947f9bef3e449f25221aa6ab339a3eb184cfc318ea4ac85512f02e6c22b913324eb297838801378501015260409283519161030f8584610dda565b601e83527f416464726573733a206c6f772d6c6576656c2063616c6c206661696c656400006020840152610f07565b5061034d610292858b8b610e71565b61035885888a610ea9565b9490925192839260208452888060a01b0316956020840191610e10565b0390a201610279565b8380fd5b63542f0af560e01b8552600485fd5b5080841415610273565b635c427cd960e01b8552600485fd5b5080fd5b50346101e4576103bd36610d25565b9596959294929392907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104c55760408051838152602081018890529798899890916001600160a01b0387811692908416917ffc624417293fd9bb33cf2ff06969c3598aae02381865f0e5f3c629ca5a85752891a37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031693843b156104c15788968793610494926040519a8b998a9889976363c5f7df60e11b895260048901610e30565b03925af180156104b6576104a55750f35b816104af91610dda565b6101e45780f35b6040513d84823e3d90fd5b8880fd5b635c427cd960e01b8752600487fd5b50346101e45760403660031901126101e4576104ee610d0f565b906024357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101d557819260018060a01b0316807f391ad75115906a1883f5110011fca148eca07250a013243833a9624b4e2d5df46020604051858152a27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156105b9576044849283604051958694859363636692fb60e11b8552600485015260248401525af180156104b6576104a55750f35b505050fd5b50346101e457806003193601126101e4576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101e45760203660031901126101e45761061d610d0f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101d5576040516370a0823160e01b8152306004820152906001600160a01b0316602082602481845afa9182156101ca5783926107d9575b508161068b578280f35b825460405163a9059cbb60e01b602082015260109190911c6001600160a01b0316602482015260448082018490528152610709906106ca606482610dda565b604051906106d9604083610dda565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602083015283610f07565b80519081159182156107b6575b50501561075e57825460405192835260101c6001600160a01b0316917f038f30bd7490e302def5deeeb29932f3812ff8a69063c142ba69a182b52c4a5690602090a35f808280f35b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b819250906020918101031261037e5760200151801515810361037e575f80610716565b9091506020813d602011610805575b816107f560209383610dda565b810103126101be5751905f610681565b3d91506107e8565b50346101e45760603660031901126101e457610827610d0f565b6024356001600160a01b03811690819003610af0576044356001600160a01b038116919082900361037e5783549260ff8460081c161593848095610ae3575b8015610acc575b15610a705760ff198116600117865584610a5f575b506001600160a01b038116158015610a57575b8015610a4f575b610a4057845462010000600160b01b03191660109190911b62010000600160b01b0316178455600180546001600160a01b031990811692909217905560028054909116919091179055817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156103aa5760405163ddbf54fd60e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600482015260016024820152828160448183865af19081156101ca578391610a2b575b5050803b156103aa5760405163ddbf54fd60e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166004820152600160248201529082908290604490829084905af180156104b657610a16575b50506109df5780f35b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b81610a2091610dda565b6103aa57815f6109d6565b81610a3591610dda565b6103aa57815f610971565b63d92e233d60e01b8552600485fd5b50821561089c565b508115610895565b61ffff19166101011785555f610882565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561086d5750600160ff82161461086d565b50600160ff821610610866565b8280fd5b50346101e457806003193601126101e4576002546040516001600160a01b039091168152602090f35b50346101e457806003193601126101e4575460405160109190911c6001600160a01b03168152602090f35b50346101e457806003193601126101e4576001546040516001600160a01b039091168152602090f35b50346101e457806003193601126101e4576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101be57610bc536610d25565b9295929491927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610cbf5760408051848152602081018990526001600160a01b0387811692908416917f816be93a99dd0a1ed728e2f16aa9d75faf55c30a240b5f8917fb6272b891e3c39190a37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031693843b156101be575f968793610c94926040519a8b998a988997633a8f8c4360e01b895260048901610e30565b03925af18015610cb457610ca6575080f35b610cb291505f90610dda565b005b6040513d5f823e3d90fd5b635c427cd960e01b5f5260045ffd5b346101be575f3660031901126101be577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600435906001600160a01b03821682036101be57565b60c06003198201126101be576004356001600160a01b03811681036101be5791602435916044356001600160a01b03811681036101be5791606435916084359160a43567ffffffffffffffff81116101be57826023820112156101be5780600401359267ffffffffffffffff84116101be57602484830101116101be576024019190565b9181601f840112156101be5782359167ffffffffffffffff83116101be576020808501948460051b0101116101be57565b90601f8019910116810190811067ffffffffffffffff821117610dfc57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b92610e6e97959260c0959260018060a01b03168552602085015260018060a01b03166040840152606083015260808201528160a08201520191610e10565b90565b9190811015610e815760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101be5790565b9190811015610e815760051b81013590601e19813603018212156101be57019081359167ffffffffffffffff83116101be5760200182360381136101be579190565b67ffffffffffffffff8111610dfc57601f01601f191660200190565b5f80610e6e949360208151910182855af13d15610f45573d91610f2983610eeb565b92610f376040519485610dda565b83523d5f602085013e610f49565b6060915b91929015610fab5750815115610f5d575090565b3b15610f665790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610fbe5750805190602001fd5b604460209160405192839162461bcd60e51b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fdfea26469706673582212201ad546395cdf66c8ca88657857e3d3d4dff9a7ec9486a5a2775d86f14ad1a4c064736f6c634300081c0033",
445
+ "deployedBytecode": "0x6080806040526004361015610012575f80fd5b5f905f3560e01c908163184b8b6314610cce575080633a8f8c4314610bb65780635f82c67e14610b715780635fb72b8c14610b485780638da5cb5b14610b1d578063a3b2759814610af4578063c0c53b8b1461080d578063c204371f14610603578063c26f10e9146105be578063c6cd25f6146104d4578063c78befbe146103ae578063d25ecbe9146101e75763ede4edd0146100ad575f80fd5b346101e45760203660031901126101e4576100c6610d0f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101d557604051630ede4edd60e41b81526001600160a01b0391821660048201819052916020908290602490829087907f0000000000000000000000000000000000000000000000000000000000000000165af19081156101ca578391610194575b508061018257507f5be57e0b94c12c812c359f7bf336ea18e0c4a708ecc29b4bab3438025a45c5668280a280f35b63081ab1b160e31b8352600452602482fd5b90506020813d6020116101c2575b816101af60209383610dda565b810103126101be57515f610154565b5f80fd5b3d91506101a2565b6040513d85823e3d90fd5b635c427cd960e01b8252600482fd5b80fd5b50346101e45760403660031901126101e45760043567ffffffffffffffff81116103aa57610219903690600401610da9565b9060243567ffffffffffffffff811161037e5761023a903690600401610da9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361039b5783158015610391575b61038257845b848110610284578580f35b610297610292828787610e71565b610e95565b90866102a4828587610ea9565b6102ad81610eeb565b906102bb6040519283610dda565b808252368184011161037e576001956103759460208361033e947f9bef3e449f25221aa6ab339a3eb184cfc318ea4ac85512f02e6c22b913324eb297838801378501015260409283519161030f8584610dda565b601e83527f416464726573733a206c6f772d6c6576656c2063616c6c206661696c656400006020840152610f07565b5061034d610292858b8b610e71565b61035885888a610ea9565b9490925192839260208452888060a01b0316956020840191610e10565b0390a201610279565b8380fd5b63542f0af560e01b8552600485fd5b5080841415610273565b635c427cd960e01b8552600485fd5b5080fd5b50346101e4576103bd36610d25565b9596959294929392907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104c55760408051838152602081018890529798899890916001600160a01b0387811692908416917ffc624417293fd9bb33cf2ff06969c3598aae02381865f0e5f3c629ca5a85752891a37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031693843b156104c15788968793610494926040519a8b998a9889976363c5f7df60e11b895260048901610e30565b03925af180156104b6576104a55750f35b816104af91610dda565b6101e45780f35b6040513d84823e3d90fd5b8880fd5b635c427cd960e01b8752600487fd5b50346101e45760403660031901126101e4576104ee610d0f565b906024357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101d557819260018060a01b0316807f391ad75115906a1883f5110011fca148eca07250a013243833a9624b4e2d5df46020604051858152a27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156105b9576044849283604051958694859363636692fb60e11b8552600485015260248401525af180156104b6576104a55750f35b505050fd5b50346101e457806003193601126101e4576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101e45760203660031901126101e45761061d610d0f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101d5576040516370a0823160e01b8152306004820152906001600160a01b0316602082602481845afa9182156101ca5783926107d9575b508161068b578280f35b825460405163a9059cbb60e01b602082015260109190911c6001600160a01b0316602482015260448082018490528152610709906106ca606482610dda565b604051906106d9604083610dda565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602083015283610f07565b80519081159182156107b6575b50501561075e57825460405192835260101c6001600160a01b0316917f038f30bd7490e302def5deeeb29932f3812ff8a69063c142ba69a182b52c4a5690602090a35f808280f35b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b819250906020918101031261037e5760200151801515810361037e575f80610716565b9091506020813d602011610805575b816107f560209383610dda565b810103126101be5751905f610681565b3d91506107e8565b50346101e45760603660031901126101e457610827610d0f565b6024356001600160a01b03811690819003610af0576044356001600160a01b038116919082900361037e5783549260ff8460081c161593848095610ae3575b8015610acc575b15610a705760ff198116600117865584610a5f575b506001600160a01b038116158015610a57575b8015610a4f575b610a4057845462010000600160b01b03191660109190911b62010000600160b01b0316178455600180546001600160a01b031990811692909217905560028054909116919091179055817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156103aa5760405163ddbf54fd60e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600482015260016024820152828160448183865af19081156101ca578391610a2b575b5050803b156103aa5760405163ddbf54fd60e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166004820152600160248201529082908290604490829084905af180156104b657610a16575b50506109df5780f35b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b81610a2091610dda565b6103aa57815f6109d6565b81610a3591610dda565b6103aa57815f610971565b63d92e233d60e01b8552600485fd5b50821561089c565b508115610895565b61ffff19166101011785555f610882565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561086d5750600160ff82161461086d565b50600160ff821610610866565b8280fd5b50346101e457806003193601126101e4576002546040516001600160a01b039091168152602090f35b50346101e457806003193601126101e4575460405160109190911c6001600160a01b03168152602090f35b50346101e457806003193601126101e4576001546040516001600160a01b039091168152602090f35b50346101e457806003193601126101e4576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101be57610bc536610d25565b9295929491927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610cbf5760408051848152602081018990526001600160a01b0387811692908416917f816be93a99dd0a1ed728e2f16aa9d75faf55c30a240b5f8917fb6272b891e3c39190a37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031693843b156101be575f968793610c94926040519a8b998a988997633a8f8c4360e01b895260048901610e30565b03925af18015610cb457610ca6575080f35b610cb291505f90610dda565b005b6040513d5f823e3d90fd5b635c427cd960e01b5f5260045ffd5b346101be575f3660031901126101be577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600435906001600160a01b03821682036101be57565b60c06003198201126101be576004356001600160a01b03811681036101be5791602435916044356001600160a01b03811681036101be5791606435916084359160a43567ffffffffffffffff81116101be57826023820112156101be5780600401359267ffffffffffffffff84116101be57602484830101116101be576024019190565b9181601f840112156101be5782359167ffffffffffffffff83116101be576020808501948460051b0101116101be57565b90601f8019910116810190811067ffffffffffffffff821117610dfc57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b92610e6e97959260c0959260018060a01b03168552602085015260018060a01b03166040840152606083015260808201528160a08201520191610e10565b90565b9190811015610e815760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b03811681036101be5790565b9190811015610e815760051b81013590601e19813603018212156101be57019081359167ffffffffffffffff83116101be5760200182360381136101be579190565b67ffffffffffffffff8111610dfc57601f01601f191660200190565b5f80610e6e949360208151910182855af13d15610f45573d91610f2983610eeb565b92610f376040519485610dda565b83523d5f602085013e610f49565b6060915b91929015610fab5750815115610f5d575090565b3b15610f665790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610fbe5750805190602001fd5b604460209160405192839162461bcd60e51b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fdfea26469706673582212201ad546395cdf66c8ca88657857e3d3d4dff9a7ec9486a5a2775d86f14ad1a4c064736f6c634300081c0033",
446
+ "linkReferences": {},
447
+ "deployedLinkReferences": {}
448
+ }