@pendle/core-v2 2.5.0-mainnet → 2.6.0-mainnet

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 (75) hide show
  1. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  2. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  3. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  4. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  5. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  6. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  7. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +4 -0
  8. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.json +888 -0
  9. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  10. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  11. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  12. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  13. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  14. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  15. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  16. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  17. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  18. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  19. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  20. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  21. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  22. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  23. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  24. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  25. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  26. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  27. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  28. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  29. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  30. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  31. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  32. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  33. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  34. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +4 -0
  35. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +1032 -0
  36. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  37. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  38. package/contracts/interfaces/IPRouterHelper.sol +176 -0
  39. package/contracts/router/PendleRouterHelper.sol +359 -0
  40. package/contracts/router/base/ActionBaseMintRedeem.sol +5 -4
  41. package/deployments/1-core.json +1 -1
  42. package/deployments/42161-core.json +1 -1
  43. package/package.json +2 -2
  44. package/typechain-types/AggregatorInterface.ts +233 -0
  45. package/typechain-types/AggregatorV2V3Interface.ts +385 -0
  46. package/typechain-types/AggregatorV3Interface.ts +221 -0
  47. package/typechain-types/IPRouterHelper.ts +84 -12
  48. package/typechain-types/PendlePtAssetOracle.ts +167 -0
  49. package/typechain-types/PendlePtChainlinkOracle.ts +215 -0
  50. package/typechain-types/PendlePtSingleAssetOracle.ts +167 -0
  51. package/typechain-types/PendlePtUSDOracle.ts +215 -0
  52. package/typechain-types/PendleRouterHelper.ts +84 -12
  53. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  54. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  55. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  56. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  57. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  58. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  59. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  60. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  61. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  62. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  63. package/typechain-types/factories/AggregatorInterface__factory.ts +153 -0
  64. package/typechain-types/factories/AggregatorV2V3Interface__factory.ts +268 -0
  65. package/typechain-types/factories/AggregatorV3Interface__factory.ts +141 -0
  66. package/typechain-types/factories/IPRouterHelper__factory.ts +141 -0
  67. package/typechain-types/factories/PendlePtAssetOracle__factory.ts +199 -0
  68. package/typechain-types/factories/PendlePtChainlinkOracle__factory.ts +251 -0
  69. package/typechain-types/factories/PendlePtSingleAssetOracle__factory.ts +203 -0
  70. package/typechain-types/factories/PendlePtUSDOracle__factory.ts +247 -0
  71. package/typechain-types/factories/PendleRouterHelper__factory.ts +142 -1
  72. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  73. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  74. package/typechain-types/hardhat.d.ts +45 -27
  75. package/typechain-types/index.ts +10 -6
@@ -0,0 +1,1032 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PendleRouterHelper",
4
+ "sourceName": "contracts/router/PendleRouterHelper.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_ROUTER",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "contract IAddressProvider",
15
+ "name": "provider",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "anonymous": false,
24
+ "inputs": [
25
+ {
26
+ "indexed": true,
27
+ "internalType": "address",
28
+ "name": "caller",
29
+ "type": "address"
30
+ },
31
+ {
32
+ "indexed": true,
33
+ "internalType": "address",
34
+ "name": "market",
35
+ "type": "address"
36
+ },
37
+ {
38
+ "indexed": true,
39
+ "internalType": "address",
40
+ "name": "receiver",
41
+ "type": "address"
42
+ },
43
+ {
44
+ "indexed": false,
45
+ "internalType": "uint256",
46
+ "name": "netSyIn",
47
+ "type": "uint256"
48
+ },
49
+ {
50
+ "indexed": false,
51
+ "internalType": "uint256",
52
+ "name": "netLpOut",
53
+ "type": "uint256"
54
+ }
55
+ ],
56
+ "name": "AddLiquiditySingleSy",
57
+ "type": "event"
58
+ },
59
+ {
60
+ "anonymous": false,
61
+ "inputs": [
62
+ {
63
+ "indexed": true,
64
+ "internalType": "address",
65
+ "name": "caller",
66
+ "type": "address"
67
+ },
68
+ {
69
+ "indexed": true,
70
+ "internalType": "address",
71
+ "name": "market",
72
+ "type": "address"
73
+ },
74
+ {
75
+ "indexed": true,
76
+ "internalType": "address",
77
+ "name": "receiver",
78
+ "type": "address"
79
+ },
80
+ {
81
+ "indexed": false,
82
+ "internalType": "uint256",
83
+ "name": "netSyIn",
84
+ "type": "uint256"
85
+ },
86
+ {
87
+ "indexed": false,
88
+ "internalType": "uint256",
89
+ "name": "netLpOut",
90
+ "type": "uint256"
91
+ },
92
+ {
93
+ "indexed": false,
94
+ "internalType": "uint256",
95
+ "name": "netYtOut",
96
+ "type": "uint256"
97
+ }
98
+ ],
99
+ "name": "AddLiquiditySingleSyKeepYt",
100
+ "type": "event"
101
+ },
102
+ {
103
+ "anonymous": false,
104
+ "inputs": [
105
+ {
106
+ "indexed": true,
107
+ "internalType": "address",
108
+ "name": "caller",
109
+ "type": "address"
110
+ },
111
+ {
112
+ "indexed": true,
113
+ "internalType": "address",
114
+ "name": "market",
115
+ "type": "address"
116
+ },
117
+ {
118
+ "indexed": true,
119
+ "internalType": "address",
120
+ "name": "token",
121
+ "type": "address"
122
+ },
123
+ {
124
+ "indexed": false,
125
+ "internalType": "address",
126
+ "name": "receiver",
127
+ "type": "address"
128
+ },
129
+ {
130
+ "indexed": false,
131
+ "internalType": "uint256",
132
+ "name": "netTokenIn",
133
+ "type": "uint256"
134
+ },
135
+ {
136
+ "indexed": false,
137
+ "internalType": "uint256",
138
+ "name": "netLpOut",
139
+ "type": "uint256"
140
+ }
141
+ ],
142
+ "name": "AddLiquiditySingleToken",
143
+ "type": "event"
144
+ },
145
+ {
146
+ "anonymous": false,
147
+ "inputs": [
148
+ {
149
+ "indexed": true,
150
+ "internalType": "address",
151
+ "name": "caller",
152
+ "type": "address"
153
+ },
154
+ {
155
+ "indexed": true,
156
+ "internalType": "address",
157
+ "name": "market",
158
+ "type": "address"
159
+ },
160
+ {
161
+ "indexed": true,
162
+ "internalType": "address",
163
+ "name": "token",
164
+ "type": "address"
165
+ },
166
+ {
167
+ "indexed": false,
168
+ "internalType": "address",
169
+ "name": "receiver",
170
+ "type": "address"
171
+ },
172
+ {
173
+ "indexed": false,
174
+ "internalType": "uint256",
175
+ "name": "netTokenIn",
176
+ "type": "uint256"
177
+ },
178
+ {
179
+ "indexed": false,
180
+ "internalType": "uint256",
181
+ "name": "netLpOut",
182
+ "type": "uint256"
183
+ },
184
+ {
185
+ "indexed": false,
186
+ "internalType": "uint256",
187
+ "name": "netYtOut",
188
+ "type": "uint256"
189
+ }
190
+ ],
191
+ "name": "AddLiquiditySingleTokenKeepYt",
192
+ "type": "event"
193
+ },
194
+ {
195
+ "anonymous": false,
196
+ "inputs": [
197
+ {
198
+ "indexed": true,
199
+ "internalType": "address",
200
+ "name": "caller",
201
+ "type": "address"
202
+ },
203
+ {
204
+ "indexed": true,
205
+ "internalType": "address",
206
+ "name": "market",
207
+ "type": "address"
208
+ },
209
+ {
210
+ "indexed": true,
211
+ "internalType": "address",
212
+ "name": "receiver",
213
+ "type": "address"
214
+ },
215
+ {
216
+ "indexed": false,
217
+ "internalType": "uint256",
218
+ "name": "netLpToRemove",
219
+ "type": "uint256"
220
+ },
221
+ {
222
+ "indexed": false,
223
+ "internalType": "uint256",
224
+ "name": "netSyOut",
225
+ "type": "uint256"
226
+ }
227
+ ],
228
+ "name": "RemoveLiquiditySingleSy",
229
+ "type": "event"
230
+ },
231
+ {
232
+ "anonymous": false,
233
+ "inputs": [
234
+ {
235
+ "indexed": true,
236
+ "internalType": "address",
237
+ "name": "caller",
238
+ "type": "address"
239
+ },
240
+ {
241
+ "indexed": true,
242
+ "internalType": "address",
243
+ "name": "market",
244
+ "type": "address"
245
+ },
246
+ {
247
+ "indexed": true,
248
+ "internalType": "address",
249
+ "name": "token",
250
+ "type": "address"
251
+ },
252
+ {
253
+ "indexed": false,
254
+ "internalType": "address",
255
+ "name": "receiver",
256
+ "type": "address"
257
+ },
258
+ {
259
+ "indexed": false,
260
+ "internalType": "uint256",
261
+ "name": "netLpToRemove",
262
+ "type": "uint256"
263
+ },
264
+ {
265
+ "indexed": false,
266
+ "internalType": "uint256",
267
+ "name": "netTokenOut",
268
+ "type": "uint256"
269
+ }
270
+ ],
271
+ "name": "RemoveLiquiditySingleToken",
272
+ "type": "event"
273
+ },
274
+ {
275
+ "inputs": [],
276
+ "name": "ROUTER",
277
+ "outputs": [
278
+ {
279
+ "internalType": "contract IPAllAction",
280
+ "name": "",
281
+ "type": "address"
282
+ }
283
+ ],
284
+ "stateMutability": "view",
285
+ "type": "function"
286
+ },
287
+ {
288
+ "inputs": [],
289
+ "name": "WETH",
290
+ "outputs": [
291
+ {
292
+ "internalType": "address",
293
+ "name": "",
294
+ "type": "address"
295
+ }
296
+ ],
297
+ "stateMutability": "view",
298
+ "type": "function"
299
+ },
300
+ {
301
+ "inputs": [
302
+ {
303
+ "internalType": "address",
304
+ "name": "receiver",
305
+ "type": "address"
306
+ },
307
+ {
308
+ "internalType": "address",
309
+ "name": "market",
310
+ "type": "address"
311
+ },
312
+ {
313
+ "internalType": "uint256",
314
+ "name": "minLpOut",
315
+ "type": "uint256"
316
+ },
317
+ {
318
+ "internalType": "uint256",
319
+ "name": "minYtOut",
320
+ "type": "uint256"
321
+ },
322
+ {
323
+ "components": [
324
+ {
325
+ "internalType": "address",
326
+ "name": "tokenIn",
327
+ "type": "address"
328
+ },
329
+ {
330
+ "internalType": "uint256",
331
+ "name": "netTokenIn",
332
+ "type": "uint256"
333
+ },
334
+ {
335
+ "internalType": "address",
336
+ "name": "tokenMintSy",
337
+ "type": "address"
338
+ },
339
+ {
340
+ "internalType": "address",
341
+ "name": "bulk",
342
+ "type": "address"
343
+ },
344
+ {
345
+ "internalType": "address",
346
+ "name": "pendleSwap",
347
+ "type": "address"
348
+ },
349
+ {
350
+ "components": [
351
+ {
352
+ "internalType": "enum SwapType",
353
+ "name": "swapType",
354
+ "type": "uint8"
355
+ },
356
+ {
357
+ "internalType": "address",
358
+ "name": "extRouter",
359
+ "type": "address"
360
+ },
361
+ {
362
+ "internalType": "bytes",
363
+ "name": "extCalldata",
364
+ "type": "bytes"
365
+ },
366
+ {
367
+ "internalType": "bool",
368
+ "name": "needScale",
369
+ "type": "bool"
370
+ }
371
+ ],
372
+ "internalType": "struct SwapData",
373
+ "name": "swapData",
374
+ "type": "tuple"
375
+ }
376
+ ],
377
+ "internalType": "struct TokenInput",
378
+ "name": "input",
379
+ "type": "tuple"
380
+ }
381
+ ],
382
+ "name": "addLiquiditySingleTokenKeepYtWithEth",
383
+ "outputs": [
384
+ {
385
+ "internalType": "uint256",
386
+ "name": "netLpOut",
387
+ "type": "uint256"
388
+ },
389
+ {
390
+ "internalType": "uint256",
391
+ "name": "netYtOut",
392
+ "type": "uint256"
393
+ }
394
+ ],
395
+ "stateMutability": "payable",
396
+ "type": "function"
397
+ },
398
+ {
399
+ "inputs": [
400
+ {
401
+ "components": [
402
+ {
403
+ "internalType": "address",
404
+ "name": "market",
405
+ "type": "address"
406
+ },
407
+ {
408
+ "internalType": "uint256",
409
+ "name": "netLpToRemove",
410
+ "type": "uint256"
411
+ },
412
+ {
413
+ "internalType": "bool",
414
+ "name": "doRedeemRewards",
415
+ "type": "bool"
416
+ }
417
+ ],
418
+ "internalType": "struct IPRouterHelper.RemoveLiquiditySingleSyStruct",
419
+ "name": "fromMarket",
420
+ "type": "tuple"
421
+ }
422
+ ],
423
+ "name": "removeLiquiditySingleSy",
424
+ "outputs": [
425
+ {
426
+ "internalType": "uint256",
427
+ "name": "netSyOut",
428
+ "type": "uint256"
429
+ },
430
+ {
431
+ "internalType": "uint256",
432
+ "name": "netSyFee",
433
+ "type": "uint256"
434
+ }
435
+ ],
436
+ "stateMutability": "nonpayable",
437
+ "type": "function"
438
+ },
439
+ {
440
+ "inputs": [
441
+ {
442
+ "components": [
443
+ {
444
+ "internalType": "address",
445
+ "name": "market",
446
+ "type": "address"
447
+ },
448
+ {
449
+ "internalType": "uint256",
450
+ "name": "netLpToRemove",
451
+ "type": "uint256"
452
+ },
453
+ {
454
+ "internalType": "bool",
455
+ "name": "doRedeemRewards",
456
+ "type": "bool"
457
+ },
458
+ {
459
+ "components": [
460
+ {
461
+ "internalType": "address",
462
+ "name": "tokenOut",
463
+ "type": "address"
464
+ },
465
+ {
466
+ "internalType": "uint256",
467
+ "name": "minTokenOut",
468
+ "type": "uint256"
469
+ },
470
+ {
471
+ "internalType": "address",
472
+ "name": "tokenRedeemSy",
473
+ "type": "address"
474
+ },
475
+ {
476
+ "internalType": "address",
477
+ "name": "bulk",
478
+ "type": "address"
479
+ },
480
+ {
481
+ "internalType": "address",
482
+ "name": "pendleSwap",
483
+ "type": "address"
484
+ },
485
+ {
486
+ "components": [
487
+ {
488
+ "internalType": "enum SwapType",
489
+ "name": "swapType",
490
+ "type": "uint8"
491
+ },
492
+ {
493
+ "internalType": "address",
494
+ "name": "extRouter",
495
+ "type": "address"
496
+ },
497
+ {
498
+ "internalType": "bytes",
499
+ "name": "extCalldata",
500
+ "type": "bytes"
501
+ },
502
+ {
503
+ "internalType": "bool",
504
+ "name": "needScale",
505
+ "type": "bool"
506
+ }
507
+ ],
508
+ "internalType": "struct SwapData",
509
+ "name": "swapData",
510
+ "type": "tuple"
511
+ }
512
+ ],
513
+ "internalType": "struct TokenOutput",
514
+ "name": "output",
515
+ "type": "tuple"
516
+ }
517
+ ],
518
+ "internalType": "struct IPRouterHelper.RemoveLiquiditySingleTokenStruct",
519
+ "name": "fromMarket",
520
+ "type": "tuple"
521
+ }
522
+ ],
523
+ "name": "removeLiquiditySingleToken",
524
+ "outputs": [
525
+ {
526
+ "internalType": "uint256",
527
+ "name": "netTokenOut",
528
+ "type": "uint256"
529
+ },
530
+ {
531
+ "internalType": "uint256",
532
+ "name": "netSyFee",
533
+ "type": "uint256"
534
+ }
535
+ ],
536
+ "stateMutability": "nonpayable",
537
+ "type": "function"
538
+ },
539
+ {
540
+ "inputs": [
541
+ {
542
+ "components": [
543
+ {
544
+ "internalType": "address",
545
+ "name": "market",
546
+ "type": "address"
547
+ },
548
+ {
549
+ "internalType": "uint256",
550
+ "name": "netLpToRemove",
551
+ "type": "uint256"
552
+ },
553
+ {
554
+ "internalType": "bool",
555
+ "name": "doRedeemRewards",
556
+ "type": "bool"
557
+ },
558
+ {
559
+ "components": [
560
+ {
561
+ "internalType": "address",
562
+ "name": "tokenOut",
563
+ "type": "address"
564
+ },
565
+ {
566
+ "internalType": "uint256",
567
+ "name": "minTokenOut",
568
+ "type": "uint256"
569
+ },
570
+ {
571
+ "internalType": "address",
572
+ "name": "tokenRedeemSy",
573
+ "type": "address"
574
+ },
575
+ {
576
+ "internalType": "address",
577
+ "name": "bulk",
578
+ "type": "address"
579
+ },
580
+ {
581
+ "internalType": "address",
582
+ "name": "pendleSwap",
583
+ "type": "address"
584
+ },
585
+ {
586
+ "components": [
587
+ {
588
+ "internalType": "enum SwapType",
589
+ "name": "swapType",
590
+ "type": "uint8"
591
+ },
592
+ {
593
+ "internalType": "address",
594
+ "name": "extRouter",
595
+ "type": "address"
596
+ },
597
+ {
598
+ "internalType": "bytes",
599
+ "name": "extCalldata",
600
+ "type": "bytes"
601
+ },
602
+ {
603
+ "internalType": "bool",
604
+ "name": "needScale",
605
+ "type": "bool"
606
+ }
607
+ ],
608
+ "internalType": "struct SwapData",
609
+ "name": "swapData",
610
+ "type": "tuple"
611
+ }
612
+ ],
613
+ "internalType": "struct TokenOutput",
614
+ "name": "output",
615
+ "type": "tuple"
616
+ }
617
+ ],
618
+ "internalType": "struct IPRouterHelper.RemoveLiquiditySingleTokenStruct",
619
+ "name": "fromMarket",
620
+ "type": "tuple"
621
+ },
622
+ {
623
+ "components": [
624
+ {
625
+ "internalType": "address",
626
+ "name": "market",
627
+ "type": "address"
628
+ },
629
+ {
630
+ "internalType": "uint256",
631
+ "name": "minLpOut",
632
+ "type": "uint256"
633
+ },
634
+ {
635
+ "internalType": "uint256",
636
+ "name": "minYtOut",
637
+ "type": "uint256"
638
+ },
639
+ {
640
+ "internalType": "address",
641
+ "name": "bulk",
642
+ "type": "address"
643
+ }
644
+ ],
645
+ "internalType": "struct IPRouterHelper.AddLiquiditySingleTokenKeepYtStruct",
646
+ "name": "toMarket",
647
+ "type": "tuple"
648
+ }
649
+ ],
650
+ "name": "transferLiquidityDifferentSyKeepYt",
651
+ "outputs": [
652
+ {
653
+ "internalType": "uint256",
654
+ "name": "netLpOut",
655
+ "type": "uint256"
656
+ },
657
+ {
658
+ "internalType": "uint256",
659
+ "name": "netYtOut",
660
+ "type": "uint256"
661
+ },
662
+ {
663
+ "internalType": "uint256",
664
+ "name": "netTokenZapIn",
665
+ "type": "uint256"
666
+ },
667
+ {
668
+ "internalType": "uint256",
669
+ "name": "netSyFeeOfRemove",
670
+ "type": "uint256"
671
+ }
672
+ ],
673
+ "stateMutability": "nonpayable",
674
+ "type": "function"
675
+ },
676
+ {
677
+ "inputs": [
678
+ {
679
+ "components": [
680
+ {
681
+ "internalType": "address",
682
+ "name": "market",
683
+ "type": "address"
684
+ },
685
+ {
686
+ "internalType": "uint256",
687
+ "name": "netLpToRemove",
688
+ "type": "uint256"
689
+ },
690
+ {
691
+ "internalType": "bool",
692
+ "name": "doRedeemRewards",
693
+ "type": "bool"
694
+ },
695
+ {
696
+ "components": [
697
+ {
698
+ "internalType": "address",
699
+ "name": "tokenOut",
700
+ "type": "address"
701
+ },
702
+ {
703
+ "internalType": "uint256",
704
+ "name": "minTokenOut",
705
+ "type": "uint256"
706
+ },
707
+ {
708
+ "internalType": "address",
709
+ "name": "tokenRedeemSy",
710
+ "type": "address"
711
+ },
712
+ {
713
+ "internalType": "address",
714
+ "name": "bulk",
715
+ "type": "address"
716
+ },
717
+ {
718
+ "internalType": "address",
719
+ "name": "pendleSwap",
720
+ "type": "address"
721
+ },
722
+ {
723
+ "components": [
724
+ {
725
+ "internalType": "enum SwapType",
726
+ "name": "swapType",
727
+ "type": "uint8"
728
+ },
729
+ {
730
+ "internalType": "address",
731
+ "name": "extRouter",
732
+ "type": "address"
733
+ },
734
+ {
735
+ "internalType": "bytes",
736
+ "name": "extCalldata",
737
+ "type": "bytes"
738
+ },
739
+ {
740
+ "internalType": "bool",
741
+ "name": "needScale",
742
+ "type": "bool"
743
+ }
744
+ ],
745
+ "internalType": "struct SwapData",
746
+ "name": "swapData",
747
+ "type": "tuple"
748
+ }
749
+ ],
750
+ "internalType": "struct TokenOutput",
751
+ "name": "output",
752
+ "type": "tuple"
753
+ }
754
+ ],
755
+ "internalType": "struct IPRouterHelper.RemoveLiquiditySingleTokenStruct",
756
+ "name": "fromMarket",
757
+ "type": "tuple"
758
+ },
759
+ {
760
+ "components": [
761
+ {
762
+ "internalType": "address",
763
+ "name": "market",
764
+ "type": "address"
765
+ },
766
+ {
767
+ "internalType": "uint256",
768
+ "name": "minLpOut",
769
+ "type": "uint256"
770
+ },
771
+ {
772
+ "internalType": "uint256",
773
+ "name": "guessNetTokenIn",
774
+ "type": "uint256"
775
+ },
776
+ {
777
+ "components": [
778
+ {
779
+ "internalType": "uint256",
780
+ "name": "guessMin",
781
+ "type": "uint256"
782
+ },
783
+ {
784
+ "internalType": "uint256",
785
+ "name": "guessMax",
786
+ "type": "uint256"
787
+ },
788
+ {
789
+ "internalType": "uint256",
790
+ "name": "guessOffchain",
791
+ "type": "uint256"
792
+ },
793
+ {
794
+ "internalType": "uint256",
795
+ "name": "maxIteration",
796
+ "type": "uint256"
797
+ },
798
+ {
799
+ "internalType": "uint256",
800
+ "name": "eps",
801
+ "type": "uint256"
802
+ }
803
+ ],
804
+ "internalType": "struct ApproxParams",
805
+ "name": "guessPtReceivedFromSy",
806
+ "type": "tuple"
807
+ },
808
+ {
809
+ "internalType": "address",
810
+ "name": "bulk",
811
+ "type": "address"
812
+ }
813
+ ],
814
+ "internalType": "struct IPRouterHelper.AddLiquiditySingleTokenStruct",
815
+ "name": "toMarket",
816
+ "type": "tuple"
817
+ }
818
+ ],
819
+ "name": "transferLiquidityDifferentSyNormal",
820
+ "outputs": [
821
+ {
822
+ "internalType": "uint256",
823
+ "name": "netLpOut",
824
+ "type": "uint256"
825
+ },
826
+ {
827
+ "internalType": "uint256",
828
+ "name": "netTokenZapIn",
829
+ "type": "uint256"
830
+ },
831
+ {
832
+ "internalType": "uint256",
833
+ "name": "netSyFeeOfRemove",
834
+ "type": "uint256"
835
+ },
836
+ {
837
+ "internalType": "uint256",
838
+ "name": "netSyFeeOfAdd",
839
+ "type": "uint256"
840
+ }
841
+ ],
842
+ "stateMutability": "nonpayable",
843
+ "type": "function"
844
+ },
845
+ {
846
+ "inputs": [
847
+ {
848
+ "components": [
849
+ {
850
+ "internalType": "address",
851
+ "name": "market",
852
+ "type": "address"
853
+ },
854
+ {
855
+ "internalType": "uint256",
856
+ "name": "netLpToRemove",
857
+ "type": "uint256"
858
+ },
859
+ {
860
+ "internalType": "bool",
861
+ "name": "doRedeemRewards",
862
+ "type": "bool"
863
+ }
864
+ ],
865
+ "internalType": "struct IPRouterHelper.RemoveLiquiditySingleSyStruct",
866
+ "name": "fromMarket",
867
+ "type": "tuple"
868
+ },
869
+ {
870
+ "components": [
871
+ {
872
+ "internalType": "address",
873
+ "name": "market",
874
+ "type": "address"
875
+ },
876
+ {
877
+ "internalType": "uint256",
878
+ "name": "minLpOut",
879
+ "type": "uint256"
880
+ },
881
+ {
882
+ "internalType": "uint256",
883
+ "name": "minYtOut",
884
+ "type": "uint256"
885
+ }
886
+ ],
887
+ "internalType": "struct IPRouterHelper.AddLiquiditySingleSyKeepYtStruct",
888
+ "name": "toMarket",
889
+ "type": "tuple"
890
+ }
891
+ ],
892
+ "name": "transferLiquiditySameSyKeepYt",
893
+ "outputs": [
894
+ {
895
+ "internalType": "uint256",
896
+ "name": "netLpOut",
897
+ "type": "uint256"
898
+ },
899
+ {
900
+ "internalType": "uint256",
901
+ "name": "netYtOut",
902
+ "type": "uint256"
903
+ },
904
+ {
905
+ "internalType": "uint256",
906
+ "name": "netSyZapIn",
907
+ "type": "uint256"
908
+ },
909
+ {
910
+ "internalType": "uint256",
911
+ "name": "netSyFeeOfRemove",
912
+ "type": "uint256"
913
+ }
914
+ ],
915
+ "stateMutability": "nonpayable",
916
+ "type": "function"
917
+ },
918
+ {
919
+ "inputs": [
920
+ {
921
+ "components": [
922
+ {
923
+ "internalType": "address",
924
+ "name": "market",
925
+ "type": "address"
926
+ },
927
+ {
928
+ "internalType": "uint256",
929
+ "name": "netLpToRemove",
930
+ "type": "uint256"
931
+ },
932
+ {
933
+ "internalType": "bool",
934
+ "name": "doRedeemRewards",
935
+ "type": "bool"
936
+ }
937
+ ],
938
+ "internalType": "struct IPRouterHelper.RemoveLiquiditySingleSyStruct",
939
+ "name": "fromMarket",
940
+ "type": "tuple"
941
+ },
942
+ {
943
+ "components": [
944
+ {
945
+ "internalType": "address",
946
+ "name": "market",
947
+ "type": "address"
948
+ },
949
+ {
950
+ "internalType": "uint256",
951
+ "name": "minLpOut",
952
+ "type": "uint256"
953
+ },
954
+ {
955
+ "internalType": "uint256",
956
+ "name": "guessNetSyIn",
957
+ "type": "uint256"
958
+ },
959
+ {
960
+ "components": [
961
+ {
962
+ "internalType": "uint256",
963
+ "name": "guessMin",
964
+ "type": "uint256"
965
+ },
966
+ {
967
+ "internalType": "uint256",
968
+ "name": "guessMax",
969
+ "type": "uint256"
970
+ },
971
+ {
972
+ "internalType": "uint256",
973
+ "name": "guessOffchain",
974
+ "type": "uint256"
975
+ },
976
+ {
977
+ "internalType": "uint256",
978
+ "name": "maxIteration",
979
+ "type": "uint256"
980
+ },
981
+ {
982
+ "internalType": "uint256",
983
+ "name": "eps",
984
+ "type": "uint256"
985
+ }
986
+ ],
987
+ "internalType": "struct ApproxParams",
988
+ "name": "guessPtReceivedFromSy",
989
+ "type": "tuple"
990
+ }
991
+ ],
992
+ "internalType": "struct IPRouterHelper.AddLiquiditySingleSyStruct",
993
+ "name": "toMarket",
994
+ "type": "tuple"
995
+ }
996
+ ],
997
+ "name": "transferLiquiditySameSyNormal",
998
+ "outputs": [
999
+ {
1000
+ "internalType": "uint256",
1001
+ "name": "netLpOut",
1002
+ "type": "uint256"
1003
+ },
1004
+ {
1005
+ "internalType": "uint256",
1006
+ "name": "netSyZapIn",
1007
+ "type": "uint256"
1008
+ },
1009
+ {
1010
+ "internalType": "uint256",
1011
+ "name": "netSyFeeOfRemove",
1012
+ "type": "uint256"
1013
+ },
1014
+ {
1015
+ "internalType": "uint256",
1016
+ "name": "netSyFeeOfAdd",
1017
+ "type": "uint256"
1018
+ }
1019
+ ],
1020
+ "stateMutability": "nonpayable",
1021
+ "type": "function"
1022
+ },
1023
+ {
1024
+ "stateMutability": "payable",
1025
+ "type": "receive"
1026
+ }
1027
+ ],
1028
+ "bytecode": "0x60c06040523480156200001157600080fd5b50604051620024c0380380620024c08339810160408190526200003491620002e8565b6001600160a01b0382166080526200004e81600162000073565b6001600160a01b031660a08190526080516200006b9190620000e9565b5050620003eb565b604051634a83e9cd60e11b8152600481018290526000906001600160a01b03841690639507d39a90602401602060405180830381865afa158015620000bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e2919062000327565b9392505050565b6001600160a01b038216620000fc575050565b6200011060026001600160601b0362000347565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019091906200037c565b1015620001b457620001a582826000620001b8565b620001b48282600019620001b8565b5050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169162000216919062000396565b6000604051808303816000865af19150503d806000811462000255576040519150601f19603f3d011682016040523d82523d6000602084013e6200025a565b606091505b50915091508180156200028857508051158062000288575080806020019051810190620002889190620003c7565b620002c85760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640160405180910390fd5b5050505050565b6001600160a01b0381168114620002e557600080fd5b50565b60008060408385031215620002fc57600080fd5b82516200030981620002cf565b60208401519092506200031c81620002cf565b809150509250929050565b6000602082840312156200033a57600080fd5b8151620000e281620002cf565b60006001600160601b03838116806200037057634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6000602082840312156200038f57600080fd5b5051919050565b6000825160005b81811015620003b957602081860181015185830152016200039d565b506000920191825250919050565b600060208284031215620003da57600080fd5b81518015158114620000e257600080fd5b60805160a051612040620004806000396000818161012201528181610260015281816102b70152818161085e01526108860152600081816098015281816102f701528181610479015281816104a70152818161068f015281816108b1015281816108df01528181610bb001528181610bde01528181610d1601528181610d4401528181610ef90152610f2701526120406000f3fe60806040526004361061007a5760003560e01c806332fe7b261461008657806365debe5f146100d0578063ad5c464814610110578063af0b533114610144578063b558229a1461016c578063b8a3339c1461018c578063c7f36371146101ac578063d64bccb3146101cc578063dcdcc4c2146101ec57600080fd5b3661008157005b600080fd5b34801561009257600080fd5b506100ba7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100c79190611683565b60405180910390f35b3480156100dc57600080fd5b506100f06100eb3660046116af565b61020c565b6040805194855260208501939093529183015260608201526080016100c7565b34801561011c57600080fd5b506100ba7f000000000000000000000000000000000000000000000000000000000000000081565b610157610152366004611715565b610253565b604080519283526020830191909152016100c7565b34801561017857600080fd5b506100f06101873660046117a3565b6103c5565b34801561019857600080fd5b506100f06101a73660046117e5565b6103f1565b3480156101b857600080fd5b506100f06101c7366004611840565b61042a565b3480156101d857600080fd5b506101576101e736600461186c565b610448565b3480156101f857600080fd5b50610157610207366004611888565b610662565b60008060008061021b86610662565b90925090506102458561023160608901896118bc565b61023f9060208101906118dc565b8461084b565b909790965091945092509050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661028d60208501856118dc565b6001600160a01b0316146102a057600080fd5b6102b060003385602001356109fd565b6102e060007f00000000000000000000000000000000000000000000000000000000000000008560200135610a6e565b604051636fde40a760e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063dfbc814e90610334908a908a908a908a908a90600401611aa6565b60408051808303816000875af1158015610352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103769190611ae0565b60405191935091506000906001600160a01b038816903390600080516020611feb833981519152906103b390839060208a01359089908990611b04565b60405180910390a49550959350505050565b6000806000806103d486610448565b90935091506103e38584610b34565b909793965091945090925050565b60008060008061040086610662565b90935091506103e38561041660608901896118bc565b6104249060208101906118dc565b85610cfb565b60008060008061043986610448565b90925090506102458583610e7d565b60008061046761045b60208501856118dc565b33308660200135611046565b61049d61047760208501856118dc565b7f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663178d29d3306104da60208701876118dc565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152602086013560448201526000606482015260840160408051808303816000875af1158015610537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055b9190611ae0565b90925090506105706060840160408501611b2a565b156105f65761058260208401846118dc565b6001600160a01b0316639262187b336040518263ffffffff1660e01b81526004016105ad9190611683565b6000604051808303816000875af11580156105cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105f49190810190611b8d565b505b3361060460208501856118dc565b6001600160a01b0316336001600160a01b03167fd31f02c44717b409d13b92ec9d2eaf1427fb4e63f85f4777f1458fb8d9387761866020013586604051610655929190918252602082015260400190565b60405180910390a4915091565b60008061067561045b60208501856118dc565b61068561047760208501856118dc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663690807ad306106c260208701876118dc565b60208701356106d460608901896118bc565b6040518563ffffffff1660e01b81526004016106f39493929190611c32565b60408051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190611ae0565b909250905061074a6060840160408501611b2a565b156107d05761075c60208401846118dc565b6001600160a01b0316639262187b336040518263ffffffff1660e01b81526004016107879190611683565b6000604051808303816000875af11580156107a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107ce9190810190611b8d565b505b6107dd60608401846118bc565b6107eb9060208101906118dc565b6001600160a01b031661080160208501856118dc565b6001600160a01b0316336001600160a01b03167f3fff08e8137afe866dce7ced13ddc12d684db61b80b0ac5cb9e54961c9dd8a213387602001358760405161065593929190611c6f565b6000806001600160a01b0384166108ab577f000000000000000000000000000000000000000000000000000000000000000093506108ab60007f000000000000000000000000000000000000000000000000000000000000000085610a6e565b6108d5847f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663dfbc814e3361091260208901896118dc565b886020013589604001356109398a8a8d606001602081019061093491906118dc565b61112b565b6040518663ffffffff1660e01b8152600401610959959493929190611d7a565b60408051808303816000875af1158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190611ae0565b90925090506001600160a01b0384166109b760208701876118dc565b6001600160a01b0316336001600160a01b0316600080516020611feb833981519152338787876040516109ed9493929190611b04565b60405180910390a4935093915050565b6001600160a01b038316610a5357803414610a4e5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064015b60405180910390fd5b505050565b8015610a4e57610a4e6001600160a01b0384168330846111a8565b6001600160a01b038316610ad557816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ab757600080fd5b505af1158015610acb573d6000803e3d6000fd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d90602401600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b50505050505050565b60008080610b4560208601866118dc565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba69190611db4565b50509050610bd4817f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663409c7a8933610c1160208901896118dc565b878960200135610c298b6060018c604001358c611202565b6040518663ffffffff1660e01b8152600401610c49959493929190611e31565b60408051808303816000875af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190611ae0565b909350915033610c9e60208701876118dc565b6001600160a01b0316336001600160a01b03167fb51950711c9b21dc7888d41f68a19540231ffb5f0d19d8f75cbccaf90ffa7fa58787604051610ceb929190918252602082015260400190565b60405180910390a4509250929050565b600080806001600160a01b038516610d105750825b610d3a857f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663015491d18233610d7860208b018b6118dc565b8a60200135610d8f8c6060018d604001358c611202565b610da88c8c8f61010001602081019061093491906118dc565b6040518763ffffffff1660e01b8152600401610dc8959493929190611e65565b604080518083038185885af1158015610de5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e0a9190611ae0565b90935091506001600160a01b038516610e2660208801886118dc565b6001600160a01b0316336001600160a01b03167ff83776e5b667a2b471f92ddfd482749c61b5328b832d375097638c2c08818f3b338888604051610e6c93929190611c6f565b60405180910390a450935093915050565b60008080610e8e60208601866118dc565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eef9190611db4565b50509050610f1d817f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663844384aa33610f5a60208901896118dc565b604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820188905260208901356064830152880135608482015260a40160408051808303816000875af1158015610fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe69190611ae0565b909350915033610ff960208701876118dc565b60408051878152602081018790529081018590526001600160a01b03919091169033907fc8437d84f52d1e20cc82487e336feadb2d39ede00af7711b6a58abf39392328f90606001610ceb565b8015611061576110616001600160a01b0385168484846111a8565b50505050565b6001600160a01b038216611079575050565b61108b60026001600160601b03611ebb565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190611ee1565b10156111275761111a82826000611326565b6111278282600019611326565b5050565b61117e6040805160c081018252600080825260208083018290528284018290526060808401839052608080850184905285519081018652838152918201839052938101849052928301529060a082015290565b6001600160a01b0380851660408301819052825260208201849052821660608201525b9392505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611061908590611430565b6112346040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83604001356000036112a657833515801561125457506000198460200135145b6112905760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420677565737360981b6044820152606401610a45565b61129f36859003850185611efa565b90506111a1565b6040805160a0810190915280846112be858835611f69565b6112c89190611f94565b8152602001848487602001356112de9190611f69565b6112e89190611f94565b8152602001846112fc856040890135611f69565b6113069190611f94565b815260200185606001358152602001856080013581525090509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916113829190611fa8565b6000604051808303816000865af19150503d80600081146113bf576040519150601f19603f3d011682016040523d82523d6000602084013e6113c4565b606091505b50915091508180156113ee5750805115806113ee5750808060200190518101906113ee9190611fba565b6114295760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610a45565b5050505050565b6000611485826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115029092919063ffffffff16565b805190915015610a4e57808060200190518101906114a39190611fba565b610a4e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a45565b60606115118484600085611519565b949350505050565b60608247101561157a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a45565b6001600160a01b0385163b6115d15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a45565b600080866001600160a01b031685876040516115ed9190611fa8565b60006040518083038185875af1925050503d806000811461162a576040519150601f19603f3d011682016040523d82523d6000602084013e61162f565b606091505b509150915061163f82828661164a565b979650505050505050565b606083156116595750816111a1565b8251156116695782518084602001fd5b8160405162461bcd60e51b8152600401610a459190611fd7565b6001600160a01b0391909116815260200190565b6000608082840312156116a957600080fd5b50919050565b60008060a083850312156116c257600080fd5b82356001600160401b038111156116d857600080fd5b6116e485828601611697565b9250506116f48460208501611697565b90509250929050565b6001600160a01b038116811461171257600080fd5b50565b600080600080600060a0868803121561172d57600080fd5b8535611738816116fd565b94506020860135611748816116fd565b9350604086013592506060860135915060808601356001600160401b0381111561177157600080fd5b860160c0818903121561178357600080fd5b809150509295509295909350565b6000606082840312156116a957600080fd5b6000808284036101608112156117b857600080fd5b6117c28585611791565b9250610100605f19820112156117d757600080fd5b506060830190509250929050565b6000808284036101408112156117fa57600080fd5b83356001600160401b0381111561181057600080fd5b61181c86828701611697565b935050610120601f198201121561183257600080fd5b506020830190509250929050565b60008060c0838503121561185357600080fd5b61185d8484611791565b91506116f48460608501611791565b60006060828403121561187e57600080fd5b6111a18383611791565b60006020828403121561189a57600080fd5b81356001600160401b038111156118b057600080fd5b61151184828501611697565b6000823560be198336030181126118d257600080fd5b9190910192915050565b6000602082840312156118ee57600080fd5b81356111a1816116fd565b6004811061191757634e487b7160e01b600052602160045260246000fd5b9052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b801515811461171257600080fd5b803561195d81611944565b919050565b600081356004811061197357600080fd5b61197d84826118f9565b50602082013561198c816116fd565b6001600160a01b03166020840152604082013536839003601e190181126119b257600080fd5b82016020810190356001600160401b038111156119ce57600080fd5b8036038213156119dd57600080fd5b608060408601526119f260808601828461191b565b915050611a0160608401611952565b8015156060860152509392505050565b60008135611a1e816116fd565b6001600160a01b03908116845260208381013590850152604083013590611a44826116fd565b9081166040850152606083013590611a5b826116fd565b9081166060850152608083013590611a72826116fd565b16608084015260a082013536839003607e19018112611a9057600080fd5b60c060a085015261151160c08501848301611962565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061163f90830184611a11565b60008060408385031215611af357600080fd5b505080516020909101519092909150565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b600060208284031215611b3c57600080fd5b81356111a181611944565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b8557611b85611b47565b604052919050565b60006020808385031215611ba057600080fd5b82516001600160401b0380821115611bb757600080fd5b818501915085601f830112611bcb57600080fd5b815181811115611bdd57611bdd611b47565b8060051b9150611bee848301611b5d565b8181529183018401918481019088841115611c0857600080fd5b938501935b83851015611c2657845182529385019390850190611c0d565b98975050505050505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611c6590830184611a11565b9695505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b83811015611cab578181015183820152602001611c93565b50506000910152565b60008151808452611ccc816020860160208601611c90565b601f01601f19169290920160200192915050565b600060018060a01b038083511684526020830151602085015280604084015116604085015280606084015116606085015280608084015116608085015260a083015160c060a0860152611d3760c0860182516118f9565b8160208201511660e0860152604081015191506080610100860152611d60610140860183611cb4565b915060608101511515610120860152508091505092915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061163f90830184611ce0565b600080600060608486031215611dc957600080fd5b8351611dd4816116fd565b6020850151909350611de5816116fd565b6040850151909250611df6816116fd565b809150509250925092565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b6001600160a01b0386811682528516602082015260408101849052606081018390526101208101611c656080830184611e01565b6001600160a01b03868116825285166020820152604081018490526000610120611e926060840186611e01565b80610100840152611c2681840185611ce0565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680611ed557611ed5611ea5565b92169190910492915050565b600060208284031215611ef357600080fd5b5051919050565b600060a08284031215611f0c57600080fd5b60405160a081016001600160401b0381118282101715611f2e57611f2e611b47565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b8082028115828204841417611f8e57634e487b7160e01b600052601160045260246000fd5b92915050565b600082611fa357611fa3611ea5565b500490565b600082516118d2818460208701611c90565b600060208284031215611fcc57600080fd5b81516111a181611944565b6020815260006111a16020830184611cb456fe43eb84d5f21c53e2b7be07b8fc06cbbb55af094a111c91c7ddc6513fed4d0352a264697066735822122052a5d892b8ac9a4926770f745b844f5ff8238a0c9a565373c7e2162248cd898a64736f6c63430008110033",
1029
+ "deployedBytecode": "0x60806040526004361061007a5760003560e01c806332fe7b261461008657806365debe5f146100d0578063ad5c464814610110578063af0b533114610144578063b558229a1461016c578063b8a3339c1461018c578063c7f36371146101ac578063d64bccb3146101cc578063dcdcc4c2146101ec57600080fd5b3661008157005b600080fd5b34801561009257600080fd5b506100ba7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100c79190611683565b60405180910390f35b3480156100dc57600080fd5b506100f06100eb3660046116af565b61020c565b6040805194855260208501939093529183015260608201526080016100c7565b34801561011c57600080fd5b506100ba7f000000000000000000000000000000000000000000000000000000000000000081565b610157610152366004611715565b610253565b604080519283526020830191909152016100c7565b34801561017857600080fd5b506100f06101873660046117a3565b6103c5565b34801561019857600080fd5b506100f06101a73660046117e5565b6103f1565b3480156101b857600080fd5b506100f06101c7366004611840565b61042a565b3480156101d857600080fd5b506101576101e736600461186c565b610448565b3480156101f857600080fd5b50610157610207366004611888565b610662565b60008060008061021b86610662565b90925090506102458561023160608901896118bc565b61023f9060208101906118dc565b8461084b565b909790965091945092509050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661028d60208501856118dc565b6001600160a01b0316146102a057600080fd5b6102b060003385602001356109fd565b6102e060007f00000000000000000000000000000000000000000000000000000000000000008560200135610a6e565b604051636fde40a760e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063dfbc814e90610334908a908a908a908a908a90600401611aa6565b60408051808303816000875af1158015610352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103769190611ae0565b60405191935091506000906001600160a01b038816903390600080516020611feb833981519152906103b390839060208a01359089908990611b04565b60405180910390a49550959350505050565b6000806000806103d486610448565b90935091506103e38584610b34565b909793965091945090925050565b60008060008061040086610662565b90935091506103e38561041660608901896118bc565b6104249060208101906118dc565b85610cfb565b60008060008061043986610448565b90925090506102458583610e7d565b60008061046761045b60208501856118dc565b33308660200135611046565b61049d61047760208501856118dc565b7f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663178d29d3306104da60208701876118dc565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152602086013560448201526000606482015260840160408051808303816000875af1158015610537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055b9190611ae0565b90925090506105706060840160408501611b2a565b156105f65761058260208401846118dc565b6001600160a01b0316639262187b336040518263ffffffff1660e01b81526004016105ad9190611683565b6000604051808303816000875af11580156105cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105f49190810190611b8d565b505b3361060460208501856118dc565b6001600160a01b0316336001600160a01b03167fd31f02c44717b409d13b92ec9d2eaf1427fb4e63f85f4777f1458fb8d9387761866020013586604051610655929190918252602082015260400190565b60405180910390a4915091565b60008061067561045b60208501856118dc565b61068561047760208501856118dc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663690807ad306106c260208701876118dc565b60208701356106d460608901896118bc565b6040518563ffffffff1660e01b81526004016106f39493929190611c32565b60408051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190611ae0565b909250905061074a6060840160408501611b2a565b156107d05761075c60208401846118dc565b6001600160a01b0316639262187b336040518263ffffffff1660e01b81526004016107879190611683565b6000604051808303816000875af11580156107a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107ce9190810190611b8d565b505b6107dd60608401846118bc565b6107eb9060208101906118dc565b6001600160a01b031661080160208501856118dc565b6001600160a01b0316336001600160a01b03167f3fff08e8137afe866dce7ced13ddc12d684db61b80b0ac5cb9e54961c9dd8a213387602001358760405161065593929190611c6f565b6000806001600160a01b0384166108ab577f000000000000000000000000000000000000000000000000000000000000000093506108ab60007f000000000000000000000000000000000000000000000000000000000000000085610a6e565b6108d5847f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663dfbc814e3361091260208901896118dc565b886020013589604001356109398a8a8d606001602081019061093491906118dc565b61112b565b6040518663ffffffff1660e01b8152600401610959959493929190611d7a565b60408051808303816000875af1158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190611ae0565b90925090506001600160a01b0384166109b760208701876118dc565b6001600160a01b0316336001600160a01b0316600080516020611feb833981519152338787876040516109ed9493929190611b04565b60405180910390a4935093915050565b6001600160a01b038316610a5357803414610a4e5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064015b60405180910390fd5b505050565b8015610a4e57610a4e6001600160a01b0384168330846111a8565b6001600160a01b038316610ad557816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ab757600080fd5b505af1158015610acb573d6000803e3d6000fd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d90602401600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b50505050505050565b60008080610b4560208601866118dc565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba69190611db4565b50509050610bd4817f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663409c7a8933610c1160208901896118dc565b878960200135610c298b6060018c604001358c611202565b6040518663ffffffff1660e01b8152600401610c49959493929190611e31565b60408051808303816000875af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190611ae0565b909350915033610c9e60208701876118dc565b6001600160a01b0316336001600160a01b03167fb51950711c9b21dc7888d41f68a19540231ffb5f0d19d8f75cbccaf90ffa7fa58787604051610ceb929190918252602082015260400190565b60405180910390a4509250929050565b600080806001600160a01b038516610d105750825b610d3a857f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663015491d18233610d7860208b018b6118dc565b8a60200135610d8f8c6060018d604001358c611202565b610da88c8c8f61010001602081019061093491906118dc565b6040518763ffffffff1660e01b8152600401610dc8959493929190611e65565b604080518083038185885af1158015610de5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e0a9190611ae0565b90935091506001600160a01b038516610e2660208801886118dc565b6001600160a01b0316336001600160a01b03167ff83776e5b667a2b471f92ddfd482749c61b5328b832d375097638c2c08818f3b338888604051610e6c93929190611c6f565b60405180910390a450935093915050565b60008080610e8e60208601866118dc565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eef9190611db4565b50509050610f1d817f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663844384aa33610f5a60208901896118dc565b604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820188905260208901356064830152880135608482015260a40160408051808303816000875af1158015610fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe69190611ae0565b909350915033610ff960208701876118dc565b60408051878152602081018790529081018590526001600160a01b03919091169033907fc8437d84f52d1e20cc82487e336feadb2d39ede00af7711b6a58abf39392328f90606001610ceb565b8015611061576110616001600160a01b0385168484846111a8565b50505050565b6001600160a01b038216611079575050565b61108b60026001600160601b03611ebb565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190611ee1565b10156111275761111a82826000611326565b6111278282600019611326565b5050565b61117e6040805160c081018252600080825260208083018290528284018290526060808401839052608080850184905285519081018652838152918201839052938101849052928301529060a082015290565b6001600160a01b0380851660408301819052825260208201849052821660608201525b9392505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611061908590611430565b6112346040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83604001356000036112a657833515801561125457506000198460200135145b6112905760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420677565737360981b6044820152606401610a45565b61129f36859003850185611efa565b90506111a1565b6040805160a0810190915280846112be858835611f69565b6112c89190611f94565b8152602001848487602001356112de9190611f69565b6112e89190611f94565b8152602001846112fc856040890135611f69565b6113069190611f94565b815260200185606001358152602001856080013581525090509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916113829190611fa8565b6000604051808303816000865af19150503d80600081146113bf576040519150601f19603f3d011682016040523d82523d6000602084013e6113c4565b606091505b50915091508180156113ee5750805115806113ee5750808060200190518101906113ee9190611fba565b6114295760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610a45565b5050505050565b6000611485826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115029092919063ffffffff16565b805190915015610a4e57808060200190518101906114a39190611fba565b610a4e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a45565b60606115118484600085611519565b949350505050565b60608247101561157a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a45565b6001600160a01b0385163b6115d15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a45565b600080866001600160a01b031685876040516115ed9190611fa8565b60006040518083038185875af1925050503d806000811461162a576040519150601f19603f3d011682016040523d82523d6000602084013e61162f565b606091505b509150915061163f82828661164a565b979650505050505050565b606083156116595750816111a1565b8251156116695782518084602001fd5b8160405162461bcd60e51b8152600401610a459190611fd7565b6001600160a01b0391909116815260200190565b6000608082840312156116a957600080fd5b50919050565b60008060a083850312156116c257600080fd5b82356001600160401b038111156116d857600080fd5b6116e485828601611697565b9250506116f48460208501611697565b90509250929050565b6001600160a01b038116811461171257600080fd5b50565b600080600080600060a0868803121561172d57600080fd5b8535611738816116fd565b94506020860135611748816116fd565b9350604086013592506060860135915060808601356001600160401b0381111561177157600080fd5b860160c0818903121561178357600080fd5b809150509295509295909350565b6000606082840312156116a957600080fd5b6000808284036101608112156117b857600080fd5b6117c28585611791565b9250610100605f19820112156117d757600080fd5b506060830190509250929050565b6000808284036101408112156117fa57600080fd5b83356001600160401b0381111561181057600080fd5b61181c86828701611697565b935050610120601f198201121561183257600080fd5b506020830190509250929050565b60008060c0838503121561185357600080fd5b61185d8484611791565b91506116f48460608501611791565b60006060828403121561187e57600080fd5b6111a18383611791565b60006020828403121561189a57600080fd5b81356001600160401b038111156118b057600080fd5b61151184828501611697565b6000823560be198336030181126118d257600080fd5b9190910192915050565b6000602082840312156118ee57600080fd5b81356111a1816116fd565b6004811061191757634e487b7160e01b600052602160045260246000fd5b9052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b801515811461171257600080fd5b803561195d81611944565b919050565b600081356004811061197357600080fd5b61197d84826118f9565b50602082013561198c816116fd565b6001600160a01b03166020840152604082013536839003601e190181126119b257600080fd5b82016020810190356001600160401b038111156119ce57600080fd5b8036038213156119dd57600080fd5b608060408601526119f260808601828461191b565b915050611a0160608401611952565b8015156060860152509392505050565b60008135611a1e816116fd565b6001600160a01b03908116845260208381013590850152604083013590611a44826116fd565b9081166040850152606083013590611a5b826116fd565b9081166060850152608083013590611a72826116fd565b16608084015260a082013536839003607e19018112611a9057600080fd5b60c060a085015261151160c08501848301611962565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061163f90830184611a11565b60008060408385031215611af357600080fd5b505080516020909101519092909150565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b600060208284031215611b3c57600080fd5b81356111a181611944565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b8557611b85611b47565b604052919050565b60006020808385031215611ba057600080fd5b82516001600160401b0380821115611bb757600080fd5b818501915085601f830112611bcb57600080fd5b815181811115611bdd57611bdd611b47565b8060051b9150611bee848301611b5d565b8181529183018401918481019088841115611c0857600080fd5b938501935b83851015611c2657845182529385019390850190611c0d565b98975050505050505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611c6590830184611a11565b9695505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b83811015611cab578181015183820152602001611c93565b50506000910152565b60008151808452611ccc816020860160208601611c90565b601f01601f19169290920160200192915050565b600060018060a01b038083511684526020830151602085015280604084015116604085015280606084015116606085015280608084015116608085015260a083015160c060a0860152611d3760c0860182516118f9565b8160208201511660e0860152604081015191506080610100860152611d60610140860183611cb4565b915060608101511515610120860152508091505092915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061163f90830184611ce0565b600080600060608486031215611dc957600080fd5b8351611dd4816116fd565b6020850151909350611de5816116fd565b6040850151909250611df6816116fd565b809150509250925092565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b6001600160a01b0386811682528516602082015260408101849052606081018390526101208101611c656080830184611e01565b6001600160a01b03868116825285166020820152604081018490526000610120611e926060840186611e01565b80610100840152611c2681840185611ce0565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680611ed557611ed5611ea5565b92169190910492915050565b600060208284031215611ef357600080fd5b5051919050565b600060a08284031215611f0c57600080fd5b60405160a081016001600160401b0381118282101715611f2e57611f2e611b47565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b8082028115828204841417611f8e57634e487b7160e01b600052601160045260246000fd5b92915050565b600082611fa357611fa3611ea5565b500490565b600082516118d2818460208701611c90565b600060208284031215611fcc57600080fd5b81516111a181611944565b6020815260006111a16020830184611cb456fe43eb84d5f21c53e2b7be07b8fc06cbbb55af094a111c91c7ddc6513fed4d0352a264697066735822122052a5d892b8ac9a4926770f745b844f5ff8238a0c9a565373c7e2162248cd898a64736f6c63430008110033",
1030
+ "linkReferences": {},
1031
+ "deployedLinkReferences": {}
1032
+ }