@pendle/core-v2 1.4.0-testnet → 1.4.2-testnet

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 (62) 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/IPLiquidityMigrator.sol/IPLiquidityMigrator.dbg.json +4 -0
  8. package/build/artifacts/contracts/interfaces/IPLiquidityMigrator.sol/IPLiquidityMigrator.json +655 -0
  9. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +4 -0
  10. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.json +747 -0
  11. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  12. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  13. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  14. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  15. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  16. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  17. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  18. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  19. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  20. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  21. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  22. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  23. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  24. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  25. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  26. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  27. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  28. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  29. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  30. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  31. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  32. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  33. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  34. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  35. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  36. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +4 -0
  37. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +891 -0
  38. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  39. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  40. package/contracts/interfaces/IPRouterHelper.sol +168 -0
  41. package/contracts/router/PendleRouterHelper.sol +98 -55
  42. package/contracts/router/base/ActionBaseMintRedeem.sol +5 -4
  43. package/deployments/43113-core.json +1 -1
  44. package/package.json +1 -1
  45. package/typechain-types/IPRouterHelper.ts +638 -0
  46. package/typechain-types/PendleRouterHelper.ts +270 -171
  47. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  48. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  49. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  50. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  51. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  52. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  53. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  54. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  55. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  56. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  57. package/typechain-types/factories/IPRouterHelper__factory.ts +763 -0
  58. package/typechain-types/factories/PendleRouterHelper__factory.ts +159 -47
  59. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  60. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  61. package/typechain-types/hardhat.d.ts +9 -0
  62. package/typechain-types/index.ts +2 -0
@@ -0,0 +1,891 @@
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
+ "components": [
419
+ {
420
+ "internalType": "address",
421
+ "name": "tokenOut",
422
+ "type": "address"
423
+ },
424
+ {
425
+ "internalType": "uint256",
426
+ "name": "minTokenOut",
427
+ "type": "uint256"
428
+ },
429
+ {
430
+ "internalType": "address",
431
+ "name": "tokenRedeemSy",
432
+ "type": "address"
433
+ },
434
+ {
435
+ "internalType": "address",
436
+ "name": "bulk",
437
+ "type": "address"
438
+ },
439
+ {
440
+ "internalType": "address",
441
+ "name": "pendleSwap",
442
+ "type": "address"
443
+ },
444
+ {
445
+ "components": [
446
+ {
447
+ "internalType": "enum SwapType",
448
+ "name": "swapType",
449
+ "type": "uint8"
450
+ },
451
+ {
452
+ "internalType": "address",
453
+ "name": "extRouter",
454
+ "type": "address"
455
+ },
456
+ {
457
+ "internalType": "bytes",
458
+ "name": "extCalldata",
459
+ "type": "bytes"
460
+ },
461
+ {
462
+ "internalType": "bool",
463
+ "name": "needScale",
464
+ "type": "bool"
465
+ }
466
+ ],
467
+ "internalType": "struct SwapData",
468
+ "name": "swapData",
469
+ "type": "tuple"
470
+ }
471
+ ],
472
+ "internalType": "struct TokenOutput",
473
+ "name": "output",
474
+ "type": "tuple"
475
+ }
476
+ ],
477
+ "internalType": "struct IPRouterHelper.RemoveLiquiditySingleTokenStruct",
478
+ "name": "fromMarket",
479
+ "type": "tuple"
480
+ },
481
+ {
482
+ "components": [
483
+ {
484
+ "internalType": "address",
485
+ "name": "market",
486
+ "type": "address"
487
+ },
488
+ {
489
+ "internalType": "uint256",
490
+ "name": "minLpOut",
491
+ "type": "uint256"
492
+ },
493
+ {
494
+ "internalType": "uint256",
495
+ "name": "minYtOut",
496
+ "type": "uint256"
497
+ },
498
+ {
499
+ "internalType": "address",
500
+ "name": "bulk",
501
+ "type": "address"
502
+ }
503
+ ],
504
+ "internalType": "struct IPRouterHelper.AddLiquiditySingleTokenKeepYtStruct",
505
+ "name": "toMarket",
506
+ "type": "tuple"
507
+ }
508
+ ],
509
+ "name": "transferLiquidityDifferentSyKeepYt",
510
+ "outputs": [
511
+ {
512
+ "internalType": "uint256",
513
+ "name": "netLpOut",
514
+ "type": "uint256"
515
+ },
516
+ {
517
+ "internalType": "uint256",
518
+ "name": "netYtOut",
519
+ "type": "uint256"
520
+ },
521
+ {
522
+ "internalType": "uint256",
523
+ "name": "netTokenZapIn",
524
+ "type": "uint256"
525
+ },
526
+ {
527
+ "internalType": "uint256",
528
+ "name": "netSyFeeOfRemove",
529
+ "type": "uint256"
530
+ }
531
+ ],
532
+ "stateMutability": "nonpayable",
533
+ "type": "function"
534
+ },
535
+ {
536
+ "inputs": [
537
+ {
538
+ "components": [
539
+ {
540
+ "internalType": "address",
541
+ "name": "market",
542
+ "type": "address"
543
+ },
544
+ {
545
+ "internalType": "uint256",
546
+ "name": "netLpToRemove",
547
+ "type": "uint256"
548
+ },
549
+ {
550
+ "internalType": "bool",
551
+ "name": "doRedeemRewards",
552
+ "type": "bool"
553
+ },
554
+ {
555
+ "components": [
556
+ {
557
+ "internalType": "address",
558
+ "name": "tokenOut",
559
+ "type": "address"
560
+ },
561
+ {
562
+ "internalType": "uint256",
563
+ "name": "minTokenOut",
564
+ "type": "uint256"
565
+ },
566
+ {
567
+ "internalType": "address",
568
+ "name": "tokenRedeemSy",
569
+ "type": "address"
570
+ },
571
+ {
572
+ "internalType": "address",
573
+ "name": "bulk",
574
+ "type": "address"
575
+ },
576
+ {
577
+ "internalType": "address",
578
+ "name": "pendleSwap",
579
+ "type": "address"
580
+ },
581
+ {
582
+ "components": [
583
+ {
584
+ "internalType": "enum SwapType",
585
+ "name": "swapType",
586
+ "type": "uint8"
587
+ },
588
+ {
589
+ "internalType": "address",
590
+ "name": "extRouter",
591
+ "type": "address"
592
+ },
593
+ {
594
+ "internalType": "bytes",
595
+ "name": "extCalldata",
596
+ "type": "bytes"
597
+ },
598
+ {
599
+ "internalType": "bool",
600
+ "name": "needScale",
601
+ "type": "bool"
602
+ }
603
+ ],
604
+ "internalType": "struct SwapData",
605
+ "name": "swapData",
606
+ "type": "tuple"
607
+ }
608
+ ],
609
+ "internalType": "struct TokenOutput",
610
+ "name": "output",
611
+ "type": "tuple"
612
+ }
613
+ ],
614
+ "internalType": "struct IPRouterHelper.RemoveLiquiditySingleTokenStruct",
615
+ "name": "fromMarket",
616
+ "type": "tuple"
617
+ },
618
+ {
619
+ "components": [
620
+ {
621
+ "internalType": "address",
622
+ "name": "market",
623
+ "type": "address"
624
+ },
625
+ {
626
+ "internalType": "uint256",
627
+ "name": "minLpOut",
628
+ "type": "uint256"
629
+ },
630
+ {
631
+ "internalType": "uint256",
632
+ "name": "guessNetTokenIn",
633
+ "type": "uint256"
634
+ },
635
+ {
636
+ "components": [
637
+ {
638
+ "internalType": "uint256",
639
+ "name": "guessMin",
640
+ "type": "uint256"
641
+ },
642
+ {
643
+ "internalType": "uint256",
644
+ "name": "guessMax",
645
+ "type": "uint256"
646
+ },
647
+ {
648
+ "internalType": "uint256",
649
+ "name": "guessOffchain",
650
+ "type": "uint256"
651
+ },
652
+ {
653
+ "internalType": "uint256",
654
+ "name": "maxIteration",
655
+ "type": "uint256"
656
+ },
657
+ {
658
+ "internalType": "uint256",
659
+ "name": "eps",
660
+ "type": "uint256"
661
+ }
662
+ ],
663
+ "internalType": "struct ApproxParams",
664
+ "name": "guessPtReceivedFromSy",
665
+ "type": "tuple"
666
+ },
667
+ {
668
+ "internalType": "address",
669
+ "name": "bulk",
670
+ "type": "address"
671
+ }
672
+ ],
673
+ "internalType": "struct IPRouterHelper.AddLiquiditySingleTokenStruct",
674
+ "name": "toMarket",
675
+ "type": "tuple"
676
+ }
677
+ ],
678
+ "name": "transferLiquidityDifferentSyNormal",
679
+ "outputs": [
680
+ {
681
+ "internalType": "uint256",
682
+ "name": "netLpOut",
683
+ "type": "uint256"
684
+ },
685
+ {
686
+ "internalType": "uint256",
687
+ "name": "netTokenZapIn",
688
+ "type": "uint256"
689
+ },
690
+ {
691
+ "internalType": "uint256",
692
+ "name": "netSyFeeOfRemove",
693
+ "type": "uint256"
694
+ },
695
+ {
696
+ "internalType": "uint256",
697
+ "name": "netSyFeeOfAdd",
698
+ "type": "uint256"
699
+ }
700
+ ],
701
+ "stateMutability": "nonpayable",
702
+ "type": "function"
703
+ },
704
+ {
705
+ "inputs": [
706
+ {
707
+ "components": [
708
+ {
709
+ "internalType": "address",
710
+ "name": "market",
711
+ "type": "address"
712
+ },
713
+ {
714
+ "internalType": "uint256",
715
+ "name": "netLpToRemove",
716
+ "type": "uint256"
717
+ },
718
+ {
719
+ "internalType": "bool",
720
+ "name": "doRedeemRewards",
721
+ "type": "bool"
722
+ }
723
+ ],
724
+ "internalType": "struct IPRouterHelper.RemoveLiquiditySingleSyStruct",
725
+ "name": "fromMarket",
726
+ "type": "tuple"
727
+ },
728
+ {
729
+ "components": [
730
+ {
731
+ "internalType": "address",
732
+ "name": "market",
733
+ "type": "address"
734
+ },
735
+ {
736
+ "internalType": "uint256",
737
+ "name": "minLpOut",
738
+ "type": "uint256"
739
+ },
740
+ {
741
+ "internalType": "uint256",
742
+ "name": "minYtOut",
743
+ "type": "uint256"
744
+ }
745
+ ],
746
+ "internalType": "struct IPRouterHelper.AddLiquiditySingleSyKeepYtStruct",
747
+ "name": "toMarket",
748
+ "type": "tuple"
749
+ }
750
+ ],
751
+ "name": "transferLiquiditySameSyKeepYt",
752
+ "outputs": [
753
+ {
754
+ "internalType": "uint256",
755
+ "name": "netLpOut",
756
+ "type": "uint256"
757
+ },
758
+ {
759
+ "internalType": "uint256",
760
+ "name": "netYtOut",
761
+ "type": "uint256"
762
+ },
763
+ {
764
+ "internalType": "uint256",
765
+ "name": "netSyZapIn",
766
+ "type": "uint256"
767
+ },
768
+ {
769
+ "internalType": "uint256",
770
+ "name": "netSyFeeOfRemove",
771
+ "type": "uint256"
772
+ }
773
+ ],
774
+ "stateMutability": "nonpayable",
775
+ "type": "function"
776
+ },
777
+ {
778
+ "inputs": [
779
+ {
780
+ "components": [
781
+ {
782
+ "internalType": "address",
783
+ "name": "market",
784
+ "type": "address"
785
+ },
786
+ {
787
+ "internalType": "uint256",
788
+ "name": "netLpToRemove",
789
+ "type": "uint256"
790
+ },
791
+ {
792
+ "internalType": "bool",
793
+ "name": "doRedeemRewards",
794
+ "type": "bool"
795
+ }
796
+ ],
797
+ "internalType": "struct IPRouterHelper.RemoveLiquiditySingleSyStruct",
798
+ "name": "fromMarket",
799
+ "type": "tuple"
800
+ },
801
+ {
802
+ "components": [
803
+ {
804
+ "internalType": "address",
805
+ "name": "market",
806
+ "type": "address"
807
+ },
808
+ {
809
+ "internalType": "uint256",
810
+ "name": "minLpOut",
811
+ "type": "uint256"
812
+ },
813
+ {
814
+ "internalType": "uint256",
815
+ "name": "guessNetSyIn",
816
+ "type": "uint256"
817
+ },
818
+ {
819
+ "components": [
820
+ {
821
+ "internalType": "uint256",
822
+ "name": "guessMin",
823
+ "type": "uint256"
824
+ },
825
+ {
826
+ "internalType": "uint256",
827
+ "name": "guessMax",
828
+ "type": "uint256"
829
+ },
830
+ {
831
+ "internalType": "uint256",
832
+ "name": "guessOffchain",
833
+ "type": "uint256"
834
+ },
835
+ {
836
+ "internalType": "uint256",
837
+ "name": "maxIteration",
838
+ "type": "uint256"
839
+ },
840
+ {
841
+ "internalType": "uint256",
842
+ "name": "eps",
843
+ "type": "uint256"
844
+ }
845
+ ],
846
+ "internalType": "struct ApproxParams",
847
+ "name": "guessPtReceivedFromSy",
848
+ "type": "tuple"
849
+ }
850
+ ],
851
+ "internalType": "struct IPRouterHelper.AddLiquiditySingleSyStruct",
852
+ "name": "toMarket",
853
+ "type": "tuple"
854
+ }
855
+ ],
856
+ "name": "transferLiquiditySameSyNormal",
857
+ "outputs": [
858
+ {
859
+ "internalType": "uint256",
860
+ "name": "netLpOut",
861
+ "type": "uint256"
862
+ },
863
+ {
864
+ "internalType": "uint256",
865
+ "name": "netSyZapIn",
866
+ "type": "uint256"
867
+ },
868
+ {
869
+ "internalType": "uint256",
870
+ "name": "netSyFeeOfRemove",
871
+ "type": "uint256"
872
+ },
873
+ {
874
+ "internalType": "uint256",
875
+ "name": "netSyFeeOfAdd",
876
+ "type": "uint256"
877
+ }
878
+ ],
879
+ "stateMutability": "nonpayable",
880
+ "type": "function"
881
+ },
882
+ {
883
+ "stateMutability": "payable",
884
+ "type": "receive"
885
+ }
886
+ ],
887
+ "bytecode": "0x60c06040523480156200001157600080fd5b5060405162002180380380620021808339810160408190526200003491620000f2565b6001600160a01b0382166080526200004e81600162000063565b6001600160a01b031660a05250620001519050565b604051634a83e9cd60e11b8152600481018290526000906001600160a01b03841690639507d39a90602401602060405180830381865afa158015620000ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d2919062000131565b9392505050565b6001600160a01b0381168114620000ef57600080fd5b50565b600080604083850312156200010657600080fd5b82516200011381620000d9565b60208401519092506200012681620000d9565b809150509250929050565b6000602082840312156200014457600080fd5b8151620000d281620000d9565b60805160a051611f9a620001e66000396000818161010c0152818161020a015281816102610152818161062d01526106550152600081816082015281816102a1015281816104230152818161045101528181610680015281816106ae0152818161093001528181610b5a01528181610b8801528181610cc001528181610cee01528181610ea30152610ed10152611f9a6000f3fe6080604052600436106100645760003560e01c806332fe7b261461007057806365debe5f146100ba578063ad5c4648146100fa578063af0b53311461012e578063b558229a14610156578063b8a3339c14610176578063c7f363711461019657600080fd5b3661006b57005b600080fd5b34801561007c57600080fd5b506100a47f000000000000000000000000000000000000000000000000000000000000000081565b6040516100b1919061162d565b60405180910390f35b3480156100c657600080fd5b506100da6100d5366004611659565b6101b6565b6040805194855260208501939093529183015260608201526080016100b1565b34801561010657600080fd5b506100a47f000000000000000000000000000000000000000000000000000000000000000081565b61014161013c3660046116bf565b6101fd565b604080519283526020830191909152016100b1565b34801561016257600080fd5b506100da61017136600461174d565b61036f565b34801561018257600080fd5b506100da61019136600461178f565b61039b565b3480156101a257600080fd5b506100da6101b13660046117ea565b6103d4565b6000806000806101c5866103f2565b90925090506101ef856101db6060890189611816565b6101e9906020810190611836565b8461061a565b909790965091945092509050565b6000806001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166102376020850185611836565b6001600160a01b03161461024a57600080fd5b61025a60003385602001356107cc565b61028a60007f0000000000000000000000000000000000000000000000000000000000000000856020013561083d565b604051636fde40a760e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063dfbc814e906102de908a908a908a908a908a90600401611a00565b60408051808303816000875af11580156102fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103209190611a3a565b60405191935091506000906001600160a01b038816903390600080516020611f458339815191529061035d90839060208a01359089908990611a5e565b60405180910390a49550959350505050565b60008060008061037e86610903565b909350915061038d8584610ade565b909793965091945090925050565b6000806000806103aa866103f2565b909350915061038d856103c06060890189611816565b6103ce906020810190611836565b85610ca5565b6000806000806103e386610903565b90925090506101ef8583610e27565b6000806104116104056020850185611836565b33308660200135610ff0565b6104476104216020850185611836565b7f0000000000000000000000000000000000000000000000000000000000000000611011565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663690807ad306104846020870187611836565b60208701356104966060890189611816565b6040518563ffffffff1660e01b81526004016104b59493929190611a84565b60408051808303816000875af11580156104d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f79190611a3a565b909250905061050c6060840160408501611ac1565b156105925761051e6020840184611836565b6001600160a01b0316639262187b336040518263ffffffff1660e01b8152600401610549919061162d565b6000604051808303816000875af1158015610568573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105909190810190611b24565b505b61059f6060840184611816565b6105ad906020810190611836565b6001600160a01b03166105c36020850185611836565b6001600160a01b0316336001600160a01b03167f3fff08e8137afe866dce7ced13ddc12d684db61b80b0ac5cb9e54961c9dd8a213387602001358760405161060d93929190611bc9565b60405180910390a4915091565b6000806001600160a01b03841661067a577f0000000000000000000000000000000000000000000000000000000000000000935061067a60007f00000000000000000000000000000000000000000000000000000000000000008561083d565b6106a4847f0000000000000000000000000000000000000000000000000000000000000000611011565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663dfbc814e336106e16020890189611836565b886020013589604001356107088a8a8d60600160208101906107039190611836565b6110d5565b6040518663ffffffff1660e01b8152600401610728959493929190611cd4565b60408051808303816000875af1158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190611a3a565b90925090506001600160a01b0384166107866020870187611836565b6001600160a01b0316336001600160a01b0316600080516020611f45833981519152338787876040516107bc9493929190611a5e565b60405180910390a4935093915050565b6001600160a01b0383166108225780341461081d5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064015b60405180910390fd5b505050565b801561081d5761081d6001600160a01b038416833084611152565b6001600160a01b0383166108a457816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561088657600080fd5b505af115801561089a573d6000803e3d6000fd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d90602401600060405180830381600087803b1580156108e657600080fd5b505af11580156108fa573d6000803e3d6000fd5b50505050505050565b6000806109166104056020850185611836565b6109266104216020850185611836565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663178d29d3306109636020870187611836565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152602086013560448201526000606482015260840160408051808303816000875af11580156109c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e49190611a3a565b90925090506109f96060840160408501611ac1565b15610a7f57610a0b6020840184611836565b6001600160a01b0316639262187b336040518263ffffffff1660e01b8152600401610a36919061162d565b6000604051808303816000875af1158015610a55573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a7d9190810190611b24565b505b33610a8d6020850185611836565b6001600160a01b0316336001600160a01b03167fd31f02c44717b409d13b92ec9d2eaf1427fb4e63f85f4777f1458fb8d938776186602001358660405161060d929190918252602082015260400190565b60008080610aef6020860186611836565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b509190611d0e565b50509050610b7e817f0000000000000000000000000000000000000000000000000000000000000000611011565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663409c7a8933610bbb6020890189611836565b878960200135610bd38b6060018c604001358c6111ac565b6040518663ffffffff1660e01b8152600401610bf3959493929190611d8b565b60408051808303816000875af1158015610c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c359190611a3a565b909350915033610c486020870187611836565b6001600160a01b0316336001600160a01b03167fb51950711c9b21dc7888d41f68a19540231ffb5f0d19d8f75cbccaf90ffa7fa58787604051610c95929190918252602082015260400190565b60405180910390a4509250929050565b600080806001600160a01b038516610cba5750825b610ce4857f0000000000000000000000000000000000000000000000000000000000000000611011565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663015491d18233610d2260208b018b611836565b8a60200135610d398c6060018d604001358c6111ac565b610d528c8c8f6101000160208101906107039190611836565b6040518763ffffffff1660e01b8152600401610d72959493929190611dbf565b604080518083038185885af1158015610d8f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610db49190611a3a565b90935091506001600160a01b038516610dd06020880188611836565b6001600160a01b0316336001600160a01b03167ff83776e5b667a2b471f92ddfd482749c61b5328b832d375097638c2c08818f3b338888604051610e1693929190611bc9565b60405180910390a450935093915050565b60008080610e386020860186611836565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e999190611d0e565b50509050610ec7817f0000000000000000000000000000000000000000000000000000000000000000611011565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663844384aa33610f046020890189611836565b604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820188905260208901356064830152880135608482015260a40160408051808303816000875af1158015610f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f909190611a3a565b909350915033610fa36020870187611836565b60408051878152602081018790529081018590526001600160a01b03919091169033907fc8437d84f52d1e20cc82487e336feadb2d39ede00af7711b6a58abf39392328f90606001610c95565b801561100b5761100b6001600160a01b038516848484611152565b50505050565b6001600160a01b038216611023575050565b61103560026001600160601b03611e15565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa15801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b29190611e3b565b10156110d1576110c4828260006112d0565b6110d182826000196112d0565b5050565b6111286040805160c081018252600080825260208083018290528284018290526060808401839052608080850184905285519081018652838152918201839052938101849052928301529060a082015290565b6001600160a01b0380851660408301819052825260208201849052821660608201525b9392505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261100b9085906113da565b6111de6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83604001356000036112505783351580156111fe57506000198460200135145b61123a5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420677565737360981b6044820152606401610814565b61124936859003850185611e54565b905061114b565b6040805160a081019091528084611268858835611ec3565b6112729190611eee565b8152602001848487602001356112889190611ec3565b6112929190611eee565b8152602001846112a6856040890135611ec3565b6112b09190611eee565b815260200185606001358152602001856080013581525090509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169161132c9190611f02565b6000604051808303816000865af19150503d8060008114611369576040519150601f19603f3d011682016040523d82523d6000602084013e61136e565b606091505b50915091508180156113985750805115806113985750808060200190518101906113989190611f14565b6113d35760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610814565b5050505050565b600061142f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114ac9092919063ffffffff16565b80519091501561081d578080602001905181019061144d9190611f14565b61081d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610814565b60606114bb84846000856114c3565b949350505050565b6060824710156115245760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610814565b6001600160a01b0385163b61157b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610814565b600080866001600160a01b031685876040516115979190611f02565b60006040518083038185875af1925050503d80600081146115d4576040519150601f19603f3d011682016040523d82523d6000602084013e6115d9565b606091505b50915091506115e98282866115f4565b979650505050505050565b6060831561160357508161114b565b8251156116135782518084602001fd5b8160405162461bcd60e51b81526004016108149190611f31565b6001600160a01b0391909116815260200190565b60006080828403121561165357600080fd5b50919050565b60008060a0838503121561166c57600080fd5b82356001600160401b0381111561168257600080fd5b61168e85828601611641565b92505061169e8460208501611641565b90509250929050565b6001600160a01b03811681146116bc57600080fd5b50565b600080600080600060a086880312156116d757600080fd5b85356116e2816116a7565b945060208601356116f2816116a7565b9350604086013592506060860135915060808601356001600160401b0381111561171b57600080fd5b860160c0818903121561172d57600080fd5b809150509295509295909350565b60006060828403121561165357600080fd5b60008082840361016081121561176257600080fd5b61176c858561173b565b9250610100605f198201121561178157600080fd5b506060830190509250929050565b6000808284036101408112156117a457600080fd5b83356001600160401b038111156117ba57600080fd5b6117c686828701611641565b935050610120601f19820112156117dc57600080fd5b506020830190509250929050565b60008060c083850312156117fd57600080fd5b611807848461173b565b915061169e846060850161173b565b6000823560be1983360301811261182c57600080fd5b9190910192915050565b60006020828403121561184857600080fd5b813561114b816116a7565b6004811061187157634e487b7160e01b600052602160045260246000fd5b9052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b80151581146116bc57600080fd5b80356118b78161189e565b919050565b60008135600481106118cd57600080fd5b6118d78482611853565b5060208201356118e6816116a7565b6001600160a01b03166020840152604082013536839003601e1901811261190c57600080fd5b82016020810190356001600160401b0381111561192857600080fd5b80360382131561193757600080fd5b6080604086015261194c608086018284611875565b91505061195b606084016118ac565b8015156060860152509392505050565b60008135611978816116a7565b6001600160a01b0390811684526020838101359085015260408301359061199e826116a7565b90811660408501526060830135906119b5826116a7565b90811660608501526080830135906119cc826116a7565b16608084015260a082013536839003607e190181126119ea57600080fd5b60c060a08501526114bb60c085018483016118bc565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906115e99083018461196b565b60008060408385031215611a4d57600080fd5b505080516020909101519092909150565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611ab79083018461196b565b9695505050505050565b600060208284031215611ad357600080fd5b813561114b8161189e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b1c57611b1c611ade565b604052919050565b60006020808385031215611b3757600080fd5b82516001600160401b0380821115611b4e57600080fd5b818501915085601f830112611b6257600080fd5b815181811115611b7457611b74611ade565b8060051b9150611b85848301611af4565b8181529183018401918481019088841115611b9f57600080fd5b938501935b83851015611bbd57845182529385019390850190611ba4565b98975050505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b83811015611c05578181015183820152602001611bed565b50506000910152565b60008151808452611c26816020860160208601611bea565b601f01601f19169290920160200192915050565b600060018060a01b038083511684526020830151602085015280604084015116604085015280606084015116606085015280608084015116608085015260a083015160c060a0860152611c9160c086018251611853565b8160208201511660e0860152604081015191506080610100860152611cba610140860183611c0e565b915060608101511515610120860152508091505092915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906115e990830184611c3a565b600080600060608486031215611d2357600080fd5b8351611d2e816116a7565b6020850151909350611d3f816116a7565b6040850151909250611d50816116a7565b809150509250925092565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b6001600160a01b0386811682528516602082015260408101849052606081018390526101208101611ab76080830184611d5b565b6001600160a01b03868116825285166020820152604081018490526000610120611dec6060840186611d5b565b80610100840152611bbd81840185611c3a565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680611e2f57611e2f611dff565b92169190910492915050565b600060208284031215611e4d57600080fd5b5051919050565b600060a08284031215611e6657600080fd5b60405160a081016001600160401b0381118282101715611e8857611e88611ade565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b8082028115828204841417611ee857634e487b7160e01b600052601160045260246000fd5b92915050565b600082611efd57611efd611dff565b500490565b6000825161182c818460208701611bea565b600060208284031215611f2657600080fd5b815161114b8161189e565b60208152600061114b6020830184611c0e56fe43eb84d5f21c53e2b7be07b8fc06cbbb55af094a111c91c7ddc6513fed4d0352a2646970667358221220a576dca3b25e1655bf65fb95cc3e6167a2a45436594d8dd05ad4a6b554afbb4464736f6c63430008110033",
888
+ "deployedBytecode": "0x6080604052600436106100645760003560e01c806332fe7b261461007057806365debe5f146100ba578063ad5c4648146100fa578063af0b53311461012e578063b558229a14610156578063b8a3339c14610176578063c7f363711461019657600080fd5b3661006b57005b600080fd5b34801561007c57600080fd5b506100a47f000000000000000000000000000000000000000000000000000000000000000081565b6040516100b1919061162d565b60405180910390f35b3480156100c657600080fd5b506100da6100d5366004611659565b6101b6565b6040805194855260208501939093529183015260608201526080016100b1565b34801561010657600080fd5b506100a47f000000000000000000000000000000000000000000000000000000000000000081565b61014161013c3660046116bf565b6101fd565b604080519283526020830191909152016100b1565b34801561016257600080fd5b506100da61017136600461174d565b61036f565b34801561018257600080fd5b506100da61019136600461178f565b61039b565b3480156101a257600080fd5b506100da6101b13660046117ea565b6103d4565b6000806000806101c5866103f2565b90925090506101ef856101db6060890189611816565b6101e9906020810190611836565b8461061a565b909790965091945092509050565b6000806001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166102376020850185611836565b6001600160a01b03161461024a57600080fd5b61025a60003385602001356107cc565b61028a60007f0000000000000000000000000000000000000000000000000000000000000000856020013561083d565b604051636fde40a760e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063dfbc814e906102de908a908a908a908a908a90600401611a00565b60408051808303816000875af11580156102fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103209190611a3a565b60405191935091506000906001600160a01b038816903390600080516020611f458339815191529061035d90839060208a01359089908990611a5e565b60405180910390a49550959350505050565b60008060008061037e86610903565b909350915061038d8584610ade565b909793965091945090925050565b6000806000806103aa866103f2565b909350915061038d856103c06060890189611816565b6103ce906020810190611836565b85610ca5565b6000806000806103e386610903565b90925090506101ef8583610e27565b6000806104116104056020850185611836565b33308660200135610ff0565b6104476104216020850185611836565b7f0000000000000000000000000000000000000000000000000000000000000000611011565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663690807ad306104846020870187611836565b60208701356104966060890189611816565b6040518563ffffffff1660e01b81526004016104b59493929190611a84565b60408051808303816000875af11580156104d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f79190611a3a565b909250905061050c6060840160408501611ac1565b156105925761051e6020840184611836565b6001600160a01b0316639262187b336040518263ffffffff1660e01b8152600401610549919061162d565b6000604051808303816000875af1158015610568573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105909190810190611b24565b505b61059f6060840184611816565b6105ad906020810190611836565b6001600160a01b03166105c36020850185611836565b6001600160a01b0316336001600160a01b03167f3fff08e8137afe866dce7ced13ddc12d684db61b80b0ac5cb9e54961c9dd8a213387602001358760405161060d93929190611bc9565b60405180910390a4915091565b6000806001600160a01b03841661067a577f0000000000000000000000000000000000000000000000000000000000000000935061067a60007f00000000000000000000000000000000000000000000000000000000000000008561083d565b6106a4847f0000000000000000000000000000000000000000000000000000000000000000611011565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663dfbc814e336106e16020890189611836565b886020013589604001356107088a8a8d60600160208101906107039190611836565b6110d5565b6040518663ffffffff1660e01b8152600401610728959493929190611cd4565b60408051808303816000875af1158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190611a3a565b90925090506001600160a01b0384166107866020870187611836565b6001600160a01b0316336001600160a01b0316600080516020611f45833981519152338787876040516107bc9493929190611a5e565b60405180910390a4935093915050565b6001600160a01b0383166108225780341461081d5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064015b60405180910390fd5b505050565b801561081d5761081d6001600160a01b038416833084611152565b6001600160a01b0383166108a457816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561088657600080fd5b505af115801561089a573d6000803e3d6000fd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d90602401600060405180830381600087803b1580156108e657600080fd5b505af11580156108fa573d6000803e3d6000fd5b50505050505050565b6000806109166104056020850185611836565b6109266104216020850185611836565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663178d29d3306109636020870187611836565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152602086013560448201526000606482015260840160408051808303816000875af11580156109c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e49190611a3a565b90925090506109f96060840160408501611ac1565b15610a7f57610a0b6020840184611836565b6001600160a01b0316639262187b336040518263ffffffff1660e01b8152600401610a36919061162d565b6000604051808303816000875af1158015610a55573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a7d9190810190611b24565b505b33610a8d6020850185611836565b6001600160a01b0316336001600160a01b03167fd31f02c44717b409d13b92ec9d2eaf1427fb4e63f85f4777f1458fb8d938776186602001358660405161060d929190918252602082015260400190565b60008080610aef6020860186611836565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b509190611d0e565b50509050610b7e817f0000000000000000000000000000000000000000000000000000000000000000611011565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663409c7a8933610bbb6020890189611836565b878960200135610bd38b6060018c604001358c6111ac565b6040518663ffffffff1660e01b8152600401610bf3959493929190611d8b565b60408051808303816000875af1158015610c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c359190611a3a565b909350915033610c486020870187611836565b6001600160a01b0316336001600160a01b03167fb51950711c9b21dc7888d41f68a19540231ffb5f0d19d8f75cbccaf90ffa7fa58787604051610c95929190918252602082015260400190565b60405180910390a4509250929050565b600080806001600160a01b038516610cba5750825b610ce4857f0000000000000000000000000000000000000000000000000000000000000000611011565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663015491d18233610d2260208b018b611836565b8a60200135610d398c6060018d604001358c6111ac565b610d528c8c8f6101000160208101906107039190611836565b6040518763ffffffff1660e01b8152600401610d72959493929190611dbf565b604080518083038185885af1158015610d8f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610db49190611a3a565b90935091506001600160a01b038516610dd06020880188611836565b6001600160a01b0316336001600160a01b03167ff83776e5b667a2b471f92ddfd482749c61b5328b832d375097638c2c08818f3b338888604051610e1693929190611bc9565b60405180910390a450935093915050565b60008080610e386020860186611836565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e999190611d0e565b50509050610ec7817f0000000000000000000000000000000000000000000000000000000000000000611011565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663844384aa33610f046020890189611836565b604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820188905260208901356064830152880135608482015260a40160408051808303816000875af1158015610f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f909190611a3a565b909350915033610fa36020870187611836565b60408051878152602081018790529081018590526001600160a01b03919091169033907fc8437d84f52d1e20cc82487e336feadb2d39ede00af7711b6a58abf39392328f90606001610c95565b801561100b5761100b6001600160a01b038516848484611152565b50505050565b6001600160a01b038216611023575050565b61103560026001600160601b03611e15565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa15801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b29190611e3b565b10156110d1576110c4828260006112d0565b6110d182826000196112d0565b5050565b6111286040805160c081018252600080825260208083018290528284018290526060808401839052608080850184905285519081018652838152918201839052938101849052928301529060a082015290565b6001600160a01b0380851660408301819052825260208201849052821660608201525b9392505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261100b9085906113da565b6111de6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83604001356000036112505783351580156111fe57506000198460200135145b61123a5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420677565737360981b6044820152606401610814565b61124936859003850185611e54565b905061114b565b6040805160a081019091528084611268858835611ec3565b6112729190611eee565b8152602001848487602001356112889190611ec3565b6112929190611eee565b8152602001846112a6856040890135611ec3565b6112b09190611eee565b815260200185606001358152602001856080013581525090509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169161132c9190611f02565b6000604051808303816000865af19150503d8060008114611369576040519150601f19603f3d011682016040523d82523d6000602084013e61136e565b606091505b50915091508180156113985750805115806113985750808060200190518101906113989190611f14565b6113d35760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610814565b5050505050565b600061142f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114ac9092919063ffffffff16565b80519091501561081d578080602001905181019061144d9190611f14565b61081d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610814565b60606114bb84846000856114c3565b949350505050565b6060824710156115245760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610814565b6001600160a01b0385163b61157b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610814565b600080866001600160a01b031685876040516115979190611f02565b60006040518083038185875af1925050503d80600081146115d4576040519150601f19603f3d011682016040523d82523d6000602084013e6115d9565b606091505b50915091506115e98282866115f4565b979650505050505050565b6060831561160357508161114b565b8251156116135782518084602001fd5b8160405162461bcd60e51b81526004016108149190611f31565b6001600160a01b0391909116815260200190565b60006080828403121561165357600080fd5b50919050565b60008060a0838503121561166c57600080fd5b82356001600160401b0381111561168257600080fd5b61168e85828601611641565b92505061169e8460208501611641565b90509250929050565b6001600160a01b03811681146116bc57600080fd5b50565b600080600080600060a086880312156116d757600080fd5b85356116e2816116a7565b945060208601356116f2816116a7565b9350604086013592506060860135915060808601356001600160401b0381111561171b57600080fd5b860160c0818903121561172d57600080fd5b809150509295509295909350565b60006060828403121561165357600080fd5b60008082840361016081121561176257600080fd5b61176c858561173b565b9250610100605f198201121561178157600080fd5b506060830190509250929050565b6000808284036101408112156117a457600080fd5b83356001600160401b038111156117ba57600080fd5b6117c686828701611641565b935050610120601f19820112156117dc57600080fd5b506020830190509250929050565b60008060c083850312156117fd57600080fd5b611807848461173b565b915061169e846060850161173b565b6000823560be1983360301811261182c57600080fd5b9190910192915050565b60006020828403121561184857600080fd5b813561114b816116a7565b6004811061187157634e487b7160e01b600052602160045260246000fd5b9052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b80151581146116bc57600080fd5b80356118b78161189e565b919050565b60008135600481106118cd57600080fd5b6118d78482611853565b5060208201356118e6816116a7565b6001600160a01b03166020840152604082013536839003601e1901811261190c57600080fd5b82016020810190356001600160401b0381111561192857600080fd5b80360382131561193757600080fd5b6080604086015261194c608086018284611875565b91505061195b606084016118ac565b8015156060860152509392505050565b60008135611978816116a7565b6001600160a01b0390811684526020838101359085015260408301359061199e826116a7565b90811660408501526060830135906119b5826116a7565b90811660608501526080830135906119cc826116a7565b16608084015260a082013536839003607e190181126119ea57600080fd5b60c060a08501526114bb60c085018483016118bc565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906115e99083018461196b565b60008060408385031215611a4d57600080fd5b505080516020909101519092909150565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611ab79083018461196b565b9695505050505050565b600060208284031215611ad357600080fd5b813561114b8161189e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b1c57611b1c611ade565b604052919050565b60006020808385031215611b3757600080fd5b82516001600160401b0380821115611b4e57600080fd5b818501915085601f830112611b6257600080fd5b815181811115611b7457611b74611ade565b8060051b9150611b85848301611af4565b8181529183018401918481019088841115611b9f57600080fd5b938501935b83851015611bbd57845182529385019390850190611ba4565b98975050505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b83811015611c05578181015183820152602001611bed565b50506000910152565b60008151808452611c26816020860160208601611bea565b601f01601f19169290920160200192915050565b600060018060a01b038083511684526020830151602085015280604084015116604085015280606084015116606085015280608084015116608085015260a083015160c060a0860152611c9160c086018251611853565b8160208201511660e0860152604081015191506080610100860152611cba610140860183611c0e565b915060608101511515610120860152508091505092915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906115e990830184611c3a565b600080600060608486031215611d2357600080fd5b8351611d2e816116a7565b6020850151909350611d3f816116a7565b6040850151909250611d50816116a7565b809150509250925092565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b6001600160a01b0386811682528516602082015260408101849052606081018390526101208101611ab76080830184611d5b565b6001600160a01b03868116825285166020820152604081018490526000610120611dec6060840186611d5b565b80610100840152611bbd81840185611c3a565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680611e2f57611e2f611dff565b92169190910492915050565b600060208284031215611e4d57600080fd5b5051919050565b600060a08284031215611e6657600080fd5b60405160a081016001600160401b0381118282101715611e8857611e88611ade565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b8082028115828204841417611ee857634e487b7160e01b600052601160045260246000fd5b92915050565b600082611efd57611efd611dff565b500490565b6000825161182c818460208701611bea565b600060208284031215611f2657600080fd5b815161114b8161189e565b60208152600061114b6020830184611c0e56fe43eb84d5f21c53e2b7be07b8fc06cbbb55af094a111c91c7ddc6513fed4d0352a2646970667358221220a576dca3b25e1655bf65fb95cc3e6167a2a45436594d8dd05ad4a6b554afbb4464736f6c63430008110033",
889
+ "linkReferences": {},
890
+ "deployedLinkReferences": {}
891
+ }