@pendle/core-v2 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/contracts/SuperComposableYield/ISuperComposableYield.sol +14 -0
  2. package/contracts/SuperComposableYield/implementations/SCYBase.sol +21 -1
  3. package/contracts/core/router/base/PendleRouterSCYAndForgeBaseUpg.sol +3 -3
  4. package/package.json +1 -1
  5. package/typechain-types/ISuperComposableYield.ts +97 -2
  6. package/typechain-types/PendleAaveV3SCY.ts +97 -2
  7. package/typechain-types/PendleBenQiErc20SCY.ts +97 -2
  8. package/typechain-types/PendleBtrflyScy.ts +97 -2
  9. package/typechain-types/PendleYearnVaultScy.ts +97 -2
  10. package/typechain-types/SCYBase.ts +97 -2
  11. package/typechain-types/SCYBaseWithRewards.ts +97 -2
  12. package/typechain-types/factories/ISuperComposableYield__factory.ts +68 -0
  13. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +69 -1
  14. package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +69 -1
  15. package/typechain-types/factories/PendleBtrflyScy__factory.ts +69 -1
  16. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  17. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  18. package/typechain-types/factories/PendleRouterCoreUpg__factory.ts +1 -1
  19. package/typechain-types/factories/PendleRouterProxy__factory.ts +1 -1
  20. package/typechain-types/factories/PendleRouterStaticUpg__factory.ts +1 -1
  21. package/typechain-types/factories/PendleRouterYTUpg__factory.ts +1 -1
  22. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +69 -1
  23. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  24. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  25. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +68 -0
  26. package/typechain-types/factories/SCYBase__factory.ts +68 -0
@@ -25,15 +25,29 @@ pragma solidity 0.8.9;
25
25
  import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
26
26
 
27
27
  interface ISuperComposableYield is IERC20Metadata {
28
+ function mintNoPull(
29
+ address receiver,
30
+ address baseTokenIn,
31
+ uint256 minAmountScyOut
32
+ ) external returns (uint256 amountScyOut);
33
+
34
+ function redeemNoPull(
35
+ address receiver,
36
+ address baseTokenOut,
37
+ uint256 minAmountBaseOut
38
+ ) external returns (uint256 amountBaseOut);
39
+
28
40
  function mint(
29
41
  address receiver,
30
42
  address baseTokenIn,
43
+ uint256 amountBaseToPull,
31
44
  uint256 minAmountScyOut
32
45
  ) external returns (uint256 amountScyOut);
33
46
 
34
47
  function redeem(
35
48
  address receiver,
36
49
  address baseTokenOut,
50
+ uint256 amountScyToPull,
37
51
  uint256 minAmountBaseOut
38
52
  ) external returns (uint256 amountBaseOut);
39
53
 
@@ -37,6 +37,26 @@ abstract contract SCYBase is ERC20, ISuperComposableYield {
37
37
  //////////////////////////////////////////////////////////////*/
38
38
 
39
39
  function mint(
40
+ address receiver,
41
+ address baseTokenIn,
42
+ uint256 amountBaseToPull,
43
+ uint256 minAmountScyOut
44
+ ) external returns (uint256 amountScyOut) {
45
+ IERC20(baseTokenIn).safeTransferFrom(msg.sender, address(this), amountBaseToPull);
46
+ amountScyOut = mintNoPull(receiver, baseTokenIn, minAmountScyOut);
47
+ }
48
+
49
+ function redeem(
50
+ address receiver,
51
+ address baseTokenOut,
52
+ uint256 amountScyToPull,
53
+ uint256 minAmountBaseOut
54
+ ) external returns (uint256 amountBaseOut) {
55
+ transferFrom(msg.sender, address(this), amountScyToPull);
56
+ amountBaseOut = redeemNoPull(receiver, baseTokenOut, minAmountBaseOut);
57
+ }
58
+
59
+ function mintNoPull(
40
60
  address receiver,
41
61
  address baseTokenIn,
42
62
  uint256 minAmountScyOut
@@ -52,7 +72,7 @@ abstract contract SCYBase is ERC20, ISuperComposableYield {
52
72
  _mint(receiver, amountScyOut);
53
73
  }
54
74
 
55
- function redeem(
75
+ function redeemNoPull(
56
76
  address receiver,
57
77
  address baseTokenOut,
58
78
  uint256 minAmountBaseOut
@@ -44,7 +44,7 @@ abstract contract PendleRouterSCYAndForgeBaseUpg is PendleJoeSwapHelperUpg {
44
44
  }
45
45
 
46
46
  address baseToken = path[path.length - 1];
47
- netScyOut = ISuperComposableYield(SCY).mint(receiver, baseToken, minScyOut);
47
+ netScyOut = ISuperComposableYield(SCY).mintNoPull(receiver, baseToken, minScyOut);
48
48
  }
49
49
 
50
50
  /**
@@ -72,13 +72,13 @@ abstract contract PendleRouterSCYAndForgeBaseUpg is PendleJoeSwapHelperUpg {
72
72
 
73
73
  address baseToken = path[0];
74
74
  if (path.length == 1) {
75
- netRawTokenOut = ISuperComposableYield(SCY).redeem(
75
+ netRawTokenOut = ISuperComposableYield(SCY).redeemNoPull(
76
76
  receiver,
77
77
  baseToken,
78
78
  minRawTokenOut
79
79
  );
80
80
  } else {
81
- uint256 netBaseTokenOut = ISuperComposableYield(SCY).redeem(
81
+ uint256 netBaseTokenOut = ISuperComposableYield(SCY).redeemNoPull(
82
82
  _getFirstPair(path),
83
83
  baseToken,
84
84
  1
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pendle/core-v2",
3
3
  "description": "Core smart contracts of Pendle Protocol.",
4
4
  "license": "BUSL-1.1",
5
- "version": "0.3.0",
5
+ "version": "0.4.0",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -33,9 +33,11 @@ export interface ISuperComposableYieldInterface extends utils.Interface {
33
33
  "getBaseTokens()": FunctionFragment;
34
34
  "getRewardTokens()": FunctionFragment;
35
35
  "isValidBaseToken(address)": FunctionFragment;
36
- "mint(address,address,uint256)": FunctionFragment;
36
+ "mint(address,address,uint256,uint256)": FunctionFragment;
37
+ "mintNoPull(address,address,uint256)": FunctionFragment;
37
38
  "name()": FunctionFragment;
38
- "redeem(address,address,uint256)": FunctionFragment;
39
+ "redeem(address,address,uint256,uint256)": FunctionFragment;
40
+ "redeemNoPull(address,address,uint256)": FunctionFragment;
39
41
  "redeemReward(address)": FunctionFragment;
40
42
  "scyIndexCurrent()": FunctionFragment;
41
43
  "scyIndexStored()": FunctionFragment;
@@ -75,11 +77,19 @@ export interface ISuperComposableYieldInterface extends utils.Interface {
75
77
  ): string;
76
78
  encodeFunctionData(
77
79
  functionFragment: "mint",
80
+ values: [string, string, BigNumberish, BigNumberish]
81
+ ): string;
82
+ encodeFunctionData(
83
+ functionFragment: "mintNoPull",
78
84
  values: [string, string, BigNumberish]
79
85
  ): string;
80
86
  encodeFunctionData(functionFragment: "name", values?: undefined): string;
81
87
  encodeFunctionData(
82
88
  functionFragment: "redeem",
89
+ values: [string, string, BigNumberish, BigNumberish]
90
+ ): string;
91
+ encodeFunctionData(
92
+ functionFragment: "redeemNoPull",
83
93
  values: [string, string, BigNumberish]
84
94
  ): string;
85
95
  encodeFunctionData(
@@ -137,8 +147,13 @@ export interface ISuperComposableYieldInterface extends utils.Interface {
137
147
  data: BytesLike
138
148
  ): Result;
139
149
  decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result;
150
+ decodeFunctionResult(functionFragment: "mintNoPull", data: BytesLike): Result;
140
151
  decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
141
152
  decodeFunctionResult(functionFragment: "redeem", data: BytesLike): Result;
153
+ decodeFunctionResult(
154
+ functionFragment: "redeemNoPull",
155
+ data: BytesLike
156
+ ): Result;
142
157
  decodeFunctionResult(
143
158
  functionFragment: "redeemReward",
144
159
  data: BytesLike
@@ -249,6 +264,14 @@ export interface ISuperComposableYield extends BaseContract {
249
264
  ): Promise<[boolean]>;
250
265
 
251
266
  mint(
267
+ receiver: string,
268
+ baseTokenIn: string,
269
+ amountBaseToPull: BigNumberish,
270
+ minAmountScyOut: BigNumberish,
271
+ overrides?: Overrides & { from?: string | Promise<string> }
272
+ ): Promise<ContractTransaction>;
273
+
274
+ mintNoPull(
252
275
  receiver: string,
253
276
  baseTokenIn: string,
254
277
  minAmountScyOut: BigNumberish,
@@ -258,6 +281,14 @@ export interface ISuperComposableYield extends BaseContract {
258
281
  name(overrides?: CallOverrides): Promise<[string]>;
259
282
 
260
283
  redeem(
284
+ receiver: string,
285
+ baseTokenOut: string,
286
+ amountScyToPull: BigNumberish,
287
+ minAmountBaseOut: BigNumberish,
288
+ overrides?: Overrides & { from?: string | Promise<string> }
289
+ ): Promise<ContractTransaction>;
290
+
291
+ redeemNoPull(
261
292
  receiver: string,
262
293
  baseTokenOut: string,
263
294
  minAmountBaseOut: BigNumberish,
@@ -327,6 +358,14 @@ export interface ISuperComposableYield extends BaseContract {
327
358
  isValidBaseToken(token: string, overrides?: CallOverrides): Promise<boolean>;
328
359
 
329
360
  mint(
361
+ receiver: string,
362
+ baseTokenIn: string,
363
+ amountBaseToPull: BigNumberish,
364
+ minAmountScyOut: BigNumberish,
365
+ overrides?: Overrides & { from?: string | Promise<string> }
366
+ ): Promise<ContractTransaction>;
367
+
368
+ mintNoPull(
330
369
  receiver: string,
331
370
  baseTokenIn: string,
332
371
  minAmountScyOut: BigNumberish,
@@ -336,6 +375,14 @@ export interface ISuperComposableYield extends BaseContract {
336
375
  name(overrides?: CallOverrides): Promise<string>;
337
376
 
338
377
  redeem(
378
+ receiver: string,
379
+ baseTokenOut: string,
380
+ amountScyToPull: BigNumberish,
381
+ minAmountBaseOut: BigNumberish,
382
+ overrides?: Overrides & { from?: string | Promise<string> }
383
+ ): Promise<ContractTransaction>;
384
+
385
+ redeemNoPull(
339
386
  receiver: string,
340
387
  baseTokenOut: string,
341
388
  minAmountBaseOut: BigNumberish,
@@ -408,6 +455,14 @@ export interface ISuperComposableYield extends BaseContract {
408
455
  ): Promise<boolean>;
409
456
 
410
457
  mint(
458
+ receiver: string,
459
+ baseTokenIn: string,
460
+ amountBaseToPull: BigNumberish,
461
+ minAmountScyOut: BigNumberish,
462
+ overrides?: CallOverrides
463
+ ): Promise<BigNumber>;
464
+
465
+ mintNoPull(
411
466
  receiver: string,
412
467
  baseTokenIn: string,
413
468
  minAmountScyOut: BigNumberish,
@@ -417,6 +472,14 @@ export interface ISuperComposableYield extends BaseContract {
417
472
  name(overrides?: CallOverrides): Promise<string>;
418
473
 
419
474
  redeem(
475
+ receiver: string,
476
+ baseTokenOut: string,
477
+ amountScyToPull: BigNumberish,
478
+ minAmountBaseOut: BigNumberish,
479
+ overrides?: CallOverrides
480
+ ): Promise<BigNumber>;
481
+
482
+ redeemNoPull(
420
483
  receiver: string,
421
484
  baseTokenOut: string,
422
485
  minAmountBaseOut: BigNumberish,
@@ -504,6 +567,14 @@ export interface ISuperComposableYield extends BaseContract {
504
567
  ): Promise<BigNumber>;
505
568
 
506
569
  mint(
570
+ receiver: string,
571
+ baseTokenIn: string,
572
+ amountBaseToPull: BigNumberish,
573
+ minAmountScyOut: BigNumberish,
574
+ overrides?: Overrides & { from?: string | Promise<string> }
575
+ ): Promise<BigNumber>;
576
+
577
+ mintNoPull(
507
578
  receiver: string,
508
579
  baseTokenIn: string,
509
580
  minAmountScyOut: BigNumberish,
@@ -513,6 +584,14 @@ export interface ISuperComposableYield extends BaseContract {
513
584
  name(overrides?: CallOverrides): Promise<BigNumber>;
514
585
 
515
586
  redeem(
587
+ receiver: string,
588
+ baseTokenOut: string,
589
+ amountScyToPull: BigNumberish,
590
+ minAmountBaseOut: BigNumberish,
591
+ overrides?: Overrides & { from?: string | Promise<string> }
592
+ ): Promise<BigNumber>;
593
+
594
+ redeemNoPull(
516
595
  receiver: string,
517
596
  baseTokenOut: string,
518
597
  minAmountBaseOut: BigNumberish,
@@ -589,6 +668,14 @@ export interface ISuperComposableYield extends BaseContract {
589
668
  ): Promise<PopulatedTransaction>;
590
669
 
591
670
  mint(
671
+ receiver: string,
672
+ baseTokenIn: string,
673
+ amountBaseToPull: BigNumberish,
674
+ minAmountScyOut: BigNumberish,
675
+ overrides?: Overrides & { from?: string | Promise<string> }
676
+ ): Promise<PopulatedTransaction>;
677
+
678
+ mintNoPull(
592
679
  receiver: string,
593
680
  baseTokenIn: string,
594
681
  minAmountScyOut: BigNumberish,
@@ -598,6 +685,14 @@ export interface ISuperComposableYield extends BaseContract {
598
685
  name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
599
686
 
600
687
  redeem(
688
+ receiver: string,
689
+ baseTokenOut: string,
690
+ amountScyToPull: BigNumberish,
691
+ minAmountBaseOut: BigNumberish,
692
+ overrides?: Overrides & { from?: string | Promise<string> }
693
+ ): Promise<PopulatedTransaction>;
694
+
695
+ redeemNoPull(
601
696
  receiver: string,
602
697
  baseTokenOut: string,
603
698
  minAmountBaseOut: BigNumberish,
@@ -38,10 +38,12 @@ export interface PendleAaveV3SCYInterface extends utils.Interface {
38
38
  "increaseAllowance(address,uint256)": FunctionFragment;
39
39
  "isValidBaseToken(address)": FunctionFragment;
40
40
  "lastScyIndex()": FunctionFragment;
41
- "mint(address,address,uint256)": FunctionFragment;
41
+ "mint(address,address,uint256,uint256)": FunctionFragment;
42
+ "mintNoPull(address,address,uint256)": FunctionFragment;
42
43
  "name()": FunctionFragment;
43
44
  "pool()": FunctionFragment;
44
- "redeem(address,address,uint256)": FunctionFragment;
45
+ "redeem(address,address,uint256,uint256)": FunctionFragment;
46
+ "redeemNoPull(address,address,uint256)": FunctionFragment;
45
47
  "redeemReward(address)": FunctionFragment;
46
48
  "rewardsController()": FunctionFragment;
47
49
  "scyIndexCurrent()": FunctionFragment;
@@ -101,12 +103,20 @@ export interface PendleAaveV3SCYInterface extends utils.Interface {
101
103
  ): string;
102
104
  encodeFunctionData(
103
105
  functionFragment: "mint",
106
+ values: [string, string, BigNumberish, BigNumberish]
107
+ ): string;
108
+ encodeFunctionData(
109
+ functionFragment: "mintNoPull",
104
110
  values: [string, string, BigNumberish]
105
111
  ): string;
106
112
  encodeFunctionData(functionFragment: "name", values?: undefined): string;
107
113
  encodeFunctionData(functionFragment: "pool", values?: undefined): string;
108
114
  encodeFunctionData(
109
115
  functionFragment: "redeem",
116
+ values: [string, string, BigNumberish, BigNumberish]
117
+ ): string;
118
+ encodeFunctionData(
119
+ functionFragment: "redeemNoPull",
110
120
  values: [string, string, BigNumberish]
111
121
  ): string;
112
122
  encodeFunctionData(
@@ -193,9 +203,14 @@ export interface PendleAaveV3SCYInterface extends utils.Interface {
193
203
  data: BytesLike
194
204
  ): Result;
195
205
  decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result;
206
+ decodeFunctionResult(functionFragment: "mintNoPull", data: BytesLike): Result;
196
207
  decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
197
208
  decodeFunctionResult(functionFragment: "pool", data: BytesLike): Result;
198
209
  decodeFunctionResult(functionFragment: "redeem", data: BytesLike): Result;
210
+ decodeFunctionResult(
211
+ functionFragment: "redeemNoPull",
212
+ data: BytesLike
213
+ ): Result;
199
214
  decodeFunctionResult(
200
215
  functionFragment: "redeemReward",
201
216
  data: BytesLike
@@ -339,6 +354,14 @@ export interface PendleAaveV3SCY extends BaseContract {
339
354
  lastScyIndex(overrides?: CallOverrides): Promise<[BigNumber]>;
340
355
 
341
356
  mint(
357
+ receiver: string,
358
+ baseTokenIn: string,
359
+ amountBaseToPull: BigNumberish,
360
+ minAmountScyOut: BigNumberish,
361
+ overrides?: Overrides & { from?: string | Promise<string> }
362
+ ): Promise<ContractTransaction>;
363
+
364
+ mintNoPull(
342
365
  receiver: string,
343
366
  baseTokenIn: string,
344
367
  minAmountScyOut: BigNumberish,
@@ -350,6 +373,14 @@ export interface PendleAaveV3SCY extends BaseContract {
350
373
  pool(overrides?: CallOverrides): Promise<[string]>;
351
374
 
352
375
  redeem(
376
+ receiver: string,
377
+ baseTokenOut: string,
378
+ amountScyToPull: BigNumberish,
379
+ minAmountBaseOut: BigNumberish,
380
+ overrides?: Overrides & { from?: string | Promise<string> }
381
+ ): Promise<ContractTransaction>;
382
+
383
+ redeemNoPull(
353
384
  receiver: string,
354
385
  baseTokenOut: string,
355
386
  minAmountBaseOut: BigNumberish,
@@ -459,6 +490,14 @@ export interface PendleAaveV3SCY extends BaseContract {
459
490
  lastScyIndex(overrides?: CallOverrides): Promise<BigNumber>;
460
491
 
461
492
  mint(
493
+ receiver: string,
494
+ baseTokenIn: string,
495
+ amountBaseToPull: BigNumberish,
496
+ minAmountScyOut: BigNumberish,
497
+ overrides?: Overrides & { from?: string | Promise<string> }
498
+ ): Promise<ContractTransaction>;
499
+
500
+ mintNoPull(
462
501
  receiver: string,
463
502
  baseTokenIn: string,
464
503
  minAmountScyOut: BigNumberish,
@@ -470,6 +509,14 @@ export interface PendleAaveV3SCY extends BaseContract {
470
509
  pool(overrides?: CallOverrides): Promise<string>;
471
510
 
472
511
  redeem(
512
+ receiver: string,
513
+ baseTokenOut: string,
514
+ amountScyToPull: BigNumberish,
515
+ minAmountBaseOut: BigNumberish,
516
+ overrides?: Overrides & { from?: string | Promise<string> }
517
+ ): Promise<ContractTransaction>;
518
+
519
+ redeemNoPull(
473
520
  receiver: string,
474
521
  baseTokenOut: string,
475
522
  minAmountBaseOut: BigNumberish,
@@ -577,6 +624,14 @@ export interface PendleAaveV3SCY extends BaseContract {
577
624
  lastScyIndex(overrides?: CallOverrides): Promise<BigNumber>;
578
625
 
579
626
  mint(
627
+ receiver: string,
628
+ baseTokenIn: string,
629
+ amountBaseToPull: BigNumberish,
630
+ minAmountScyOut: BigNumberish,
631
+ overrides?: CallOverrides
632
+ ): Promise<BigNumber>;
633
+
634
+ mintNoPull(
580
635
  receiver: string,
581
636
  baseTokenIn: string,
582
637
  minAmountScyOut: BigNumberish,
@@ -588,6 +643,14 @@ export interface PendleAaveV3SCY extends BaseContract {
588
643
  pool(overrides?: CallOverrides): Promise<string>;
589
644
 
590
645
  redeem(
646
+ receiver: string,
647
+ baseTokenOut: string,
648
+ amountScyToPull: BigNumberish,
649
+ minAmountBaseOut: BigNumberish,
650
+ overrides?: CallOverrides
651
+ ): Promise<BigNumber>;
652
+
653
+ redeemNoPull(
591
654
  receiver: string,
592
655
  baseTokenOut: string,
593
656
  minAmountBaseOut: BigNumberish,
@@ -708,6 +771,14 @@ export interface PendleAaveV3SCY extends BaseContract {
708
771
  lastScyIndex(overrides?: CallOverrides): Promise<BigNumber>;
709
772
 
710
773
  mint(
774
+ receiver: string,
775
+ baseTokenIn: string,
776
+ amountBaseToPull: BigNumberish,
777
+ minAmountScyOut: BigNumberish,
778
+ overrides?: Overrides & { from?: string | Promise<string> }
779
+ ): Promise<BigNumber>;
780
+
781
+ mintNoPull(
711
782
  receiver: string,
712
783
  baseTokenIn: string,
713
784
  minAmountScyOut: BigNumberish,
@@ -719,6 +790,14 @@ export interface PendleAaveV3SCY extends BaseContract {
719
790
  pool(overrides?: CallOverrides): Promise<BigNumber>;
720
791
 
721
792
  redeem(
793
+ receiver: string,
794
+ baseTokenOut: string,
795
+ amountScyToPull: BigNumberish,
796
+ minAmountBaseOut: BigNumberish,
797
+ overrides?: Overrides & { from?: string | Promise<string> }
798
+ ): Promise<BigNumber>;
799
+
800
+ redeemNoPull(
722
801
  receiver: string,
723
802
  baseTokenOut: string,
724
803
  minAmountBaseOut: BigNumberish,
@@ -826,6 +905,14 @@ export interface PendleAaveV3SCY extends BaseContract {
826
905
  lastScyIndex(overrides?: CallOverrides): Promise<PopulatedTransaction>;
827
906
 
828
907
  mint(
908
+ receiver: string,
909
+ baseTokenIn: string,
910
+ amountBaseToPull: BigNumberish,
911
+ minAmountScyOut: BigNumberish,
912
+ overrides?: Overrides & { from?: string | Promise<string> }
913
+ ): Promise<PopulatedTransaction>;
914
+
915
+ mintNoPull(
829
916
  receiver: string,
830
917
  baseTokenIn: string,
831
918
  minAmountScyOut: BigNumberish,
@@ -837,6 +924,14 @@ export interface PendleAaveV3SCY extends BaseContract {
837
924
  pool(overrides?: CallOverrides): Promise<PopulatedTransaction>;
838
925
 
839
926
  redeem(
927
+ receiver: string,
928
+ baseTokenOut: string,
929
+ amountScyToPull: BigNumberish,
930
+ minAmountBaseOut: BigNumberish,
931
+ overrides?: Overrides & { from?: string | Promise<string> }
932
+ ): Promise<PopulatedTransaction>;
933
+
934
+ redeemNoPull(
840
935
  receiver: string,
841
936
  baseTokenOut: string,
842
937
  minAmountBaseOut: BigNumberish,
@@ -40,10 +40,12 @@ export interface PendleBenQiErc20SCYInterface extends utils.Interface {
40
40
  "increaseAllowance(address,uint256)": FunctionFragment;
41
41
  "isValidBaseToken(address)": FunctionFragment;
42
42
  "lastScyIndex()": FunctionFragment;
43
- "mint(address,address,uint256)": FunctionFragment;
43
+ "mint(address,address,uint256,uint256)": FunctionFragment;
44
+ "mintNoPull(address,address,uint256)": FunctionFragment;
44
45
  "name()": FunctionFragment;
45
46
  "qiToken()": FunctionFragment;
46
- "redeem(address,address,uint256)": FunctionFragment;
47
+ "redeem(address,address,uint256,uint256)": FunctionFragment;
48
+ "redeemNoPull(address,address,uint256)": FunctionFragment;
47
49
  "redeemReward(address)": FunctionFragment;
48
50
  "scyIndexCurrent()": FunctionFragment;
49
51
  "scyIndexStored()": FunctionFragment;
@@ -107,12 +109,20 @@ export interface PendleBenQiErc20SCYInterface extends utils.Interface {
107
109
  ): string;
108
110
  encodeFunctionData(
109
111
  functionFragment: "mint",
112
+ values: [string, string, BigNumberish, BigNumberish]
113
+ ): string;
114
+ encodeFunctionData(
115
+ functionFragment: "mintNoPull",
110
116
  values: [string, string, BigNumberish]
111
117
  ): string;
112
118
  encodeFunctionData(functionFragment: "name", values?: undefined): string;
113
119
  encodeFunctionData(functionFragment: "qiToken", values?: undefined): string;
114
120
  encodeFunctionData(
115
121
  functionFragment: "redeem",
122
+ values: [string, string, BigNumberish, BigNumberish]
123
+ ): string;
124
+ encodeFunctionData(
125
+ functionFragment: "redeemNoPull",
116
126
  values: [string, string, BigNumberish]
117
127
  ): string;
118
128
  encodeFunctionData(
@@ -200,9 +210,14 @@ export interface PendleBenQiErc20SCYInterface extends utils.Interface {
200
210
  data: BytesLike
201
211
  ): Result;
202
212
  decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result;
213
+ decodeFunctionResult(functionFragment: "mintNoPull", data: BytesLike): Result;
203
214
  decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
204
215
  decodeFunctionResult(functionFragment: "qiToken", data: BytesLike): Result;
205
216
  decodeFunctionResult(functionFragment: "redeem", data: BytesLike): Result;
217
+ decodeFunctionResult(
218
+ functionFragment: "redeemNoPull",
219
+ data: BytesLike
220
+ ): Result;
206
221
  decodeFunctionResult(
207
222
  functionFragment: "redeemReward",
208
223
  data: BytesLike
@@ -346,6 +361,14 @@ export interface PendleBenQiErc20SCY extends BaseContract {
346
361
  lastScyIndex(overrides?: CallOverrides): Promise<[BigNumber]>;
347
362
 
348
363
  mint(
364
+ receiver: string,
365
+ baseTokenIn: string,
366
+ amountBaseToPull: BigNumberish,
367
+ minAmountScyOut: BigNumberish,
368
+ overrides?: Overrides & { from?: string | Promise<string> }
369
+ ): Promise<ContractTransaction>;
370
+
371
+ mintNoPull(
349
372
  receiver: string,
350
373
  baseTokenIn: string,
351
374
  minAmountScyOut: BigNumberish,
@@ -357,6 +380,14 @@ export interface PendleBenQiErc20SCY extends BaseContract {
357
380
  qiToken(overrides?: CallOverrides): Promise<[string]>;
358
381
 
359
382
  redeem(
383
+ receiver: string,
384
+ baseTokenOut: string,
385
+ amountScyToPull: BigNumberish,
386
+ minAmountBaseOut: BigNumberish,
387
+ overrides?: Overrides & { from?: string | Promise<string> }
388
+ ): Promise<ContractTransaction>;
389
+
390
+ redeemNoPull(
360
391
  receiver: string,
361
392
  baseTokenOut: string,
362
393
  minAmountBaseOut: BigNumberish,
@@ -468,6 +499,14 @@ export interface PendleBenQiErc20SCY extends BaseContract {
468
499
  lastScyIndex(overrides?: CallOverrides): Promise<BigNumber>;
469
500
 
470
501
  mint(
502
+ receiver: string,
503
+ baseTokenIn: string,
504
+ amountBaseToPull: BigNumberish,
505
+ minAmountScyOut: BigNumberish,
506
+ overrides?: Overrides & { from?: string | Promise<string> }
507
+ ): Promise<ContractTransaction>;
508
+
509
+ mintNoPull(
471
510
  receiver: string,
472
511
  baseTokenIn: string,
473
512
  minAmountScyOut: BigNumberish,
@@ -479,6 +518,14 @@ export interface PendleBenQiErc20SCY extends BaseContract {
479
518
  qiToken(overrides?: CallOverrides): Promise<string>;
480
519
 
481
520
  redeem(
521
+ receiver: string,
522
+ baseTokenOut: string,
523
+ amountScyToPull: BigNumberish,
524
+ minAmountBaseOut: BigNumberish,
525
+ overrides?: Overrides & { from?: string | Promise<string> }
526
+ ): Promise<ContractTransaction>;
527
+
528
+ redeemNoPull(
482
529
  receiver: string,
483
530
  baseTokenOut: string,
484
531
  minAmountBaseOut: BigNumberish,
@@ -588,6 +635,14 @@ export interface PendleBenQiErc20SCY extends BaseContract {
588
635
  lastScyIndex(overrides?: CallOverrides): Promise<BigNumber>;
589
636
 
590
637
  mint(
638
+ receiver: string,
639
+ baseTokenIn: string,
640
+ amountBaseToPull: BigNumberish,
641
+ minAmountScyOut: BigNumberish,
642
+ overrides?: CallOverrides
643
+ ): Promise<BigNumber>;
644
+
645
+ mintNoPull(
591
646
  receiver: string,
592
647
  baseTokenIn: string,
593
648
  minAmountScyOut: BigNumberish,
@@ -599,6 +654,14 @@ export interface PendleBenQiErc20SCY extends BaseContract {
599
654
  qiToken(overrides?: CallOverrides): Promise<string>;
600
655
 
601
656
  redeem(
657
+ receiver: string,
658
+ baseTokenOut: string,
659
+ amountScyToPull: BigNumberish,
660
+ minAmountBaseOut: BigNumberish,
661
+ overrides?: CallOverrides
662
+ ): Promise<BigNumber>;
663
+
664
+ redeemNoPull(
602
665
  receiver: string,
603
666
  baseTokenOut: string,
604
667
  minAmountBaseOut: BigNumberish,
@@ -721,6 +784,14 @@ export interface PendleBenQiErc20SCY extends BaseContract {
721
784
  lastScyIndex(overrides?: CallOverrides): Promise<BigNumber>;
722
785
 
723
786
  mint(
787
+ receiver: string,
788
+ baseTokenIn: string,
789
+ amountBaseToPull: BigNumberish,
790
+ minAmountScyOut: BigNumberish,
791
+ overrides?: Overrides & { from?: string | Promise<string> }
792
+ ): Promise<BigNumber>;
793
+
794
+ mintNoPull(
724
795
  receiver: string,
725
796
  baseTokenIn: string,
726
797
  minAmountScyOut: BigNumberish,
@@ -732,6 +803,14 @@ export interface PendleBenQiErc20SCY extends BaseContract {
732
803
  qiToken(overrides?: CallOverrides): Promise<BigNumber>;
733
804
 
734
805
  redeem(
806
+ receiver: string,
807
+ baseTokenOut: string,
808
+ amountScyToPull: BigNumberish,
809
+ minAmountBaseOut: BigNumberish,
810
+ overrides?: Overrides & { from?: string | Promise<string> }
811
+ ): Promise<BigNumber>;
812
+
813
+ redeemNoPull(
735
814
  receiver: string,
736
815
  baseTokenOut: string,
737
816
  minAmountBaseOut: BigNumberish,
@@ -841,6 +920,14 @@ export interface PendleBenQiErc20SCY extends BaseContract {
841
920
  lastScyIndex(overrides?: CallOverrides): Promise<PopulatedTransaction>;
842
921
 
843
922
  mint(
923
+ receiver: string,
924
+ baseTokenIn: string,
925
+ amountBaseToPull: BigNumberish,
926
+ minAmountScyOut: BigNumberish,
927
+ overrides?: Overrides & { from?: string | Promise<string> }
928
+ ): Promise<PopulatedTransaction>;
929
+
930
+ mintNoPull(
844
931
  receiver: string,
845
932
  baseTokenIn: string,
846
933
  minAmountScyOut: BigNumberish,
@@ -852,6 +939,14 @@ export interface PendleBenQiErc20SCY extends BaseContract {
852
939
  qiToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
853
940
 
854
941
  redeem(
942
+ receiver: string,
943
+ baseTokenOut: string,
944
+ amountScyToPull: BigNumberish,
945
+ minAmountBaseOut: BigNumberish,
946
+ overrides?: Overrides & { from?: string | Promise<string> }
947
+ ): Promise<PopulatedTransaction>;
948
+
949
+ redeemNoPull(
855
950
  receiver: string,
856
951
  baseTokenOut: string,
857
952
  minAmountBaseOut: BigNumberish,