@pendle/core-v2 0.17.0-daily → 0.17.0-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 (95) hide show
  1. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  4. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  11. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  13. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  16. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  21. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  23. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.json +2 -2
  25. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +40 -2
  27. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  28. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  29. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  30. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  31. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  32. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  33. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  34. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.json +38 -0
  35. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  36. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  37. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  38. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  39. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  40. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -2
  41. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  42. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +60 -136
  43. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  44. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  45. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  46. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
  47. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  48. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  49. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  50. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  51. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
  52. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +2 -2
  53. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  54. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  55. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  56. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  57. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  58. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  59. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  60. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  61. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  62. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +1 -1
  63. package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +1 -1
  64. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +2 -2
  65. package/contracts/LiquidityMining/libraries/WeekMath.sol +1 -1
  66. package/contracts/core/BulkSeller/BulkSeller.sol +10 -0
  67. package/contracts/interfaces/IPBulkSeller.sol +4 -0
  68. package/contracts/offchain-helpers/RouterStatic.sol +3 -41
  69. package/contracts/router/base/MarketApproxLib.sol +3 -9
  70. package/deployments/43113-core.json +11 -12
  71. package/deployments/43113-markets/USDC-FEB-2ND.json +10 -0
  72. package/deployments/43113-markets/WETH-FEB-2ND.json +4 -4
  73. package/package.json +3 -3
  74. package/typechain-types/BulkSeller.ts +68 -0
  75. package/typechain-types/IPBulkSeller.ts +68 -0
  76. package/typechain-types/RouterStatic.ts +5 -63
  77. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  78. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  79. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  80. package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
  81. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  82. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  83. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  84. package/typechain-types/factories/BulkSeller__factory.ts +39 -1
  85. package/typechain-types/factories/IPBulkSeller__factory.ts +38 -0
  86. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -1
  87. package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +1 -1
  88. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  89. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  90. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  91. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  92. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  93. package/typechain-types/factories/RouterStatic__factory.ts +1 -77
  94. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  95. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
@@ -49,7 +49,7 @@ abstract contract VotingControllerStorageUpg is IPVotingController {
49
49
  }
50
50
 
51
51
  uint128 public constant MAX_LOCK_TIME = 104 weeks;
52
- uint128 public constant WEEK = 1 days;
52
+ uint128 public constant WEEK = 1 weeks;
53
53
  uint128 public constant GOVERNANCE_PENDLE_VOTE = 10**24;
54
54
 
55
55
  IPVeToken public immutable vePendle;
@@ -25,9 +25,9 @@ abstract contract VotingEscrowTokenBase is IPVeToken {
25
25
  using VeBalanceLib for VeBalance;
26
26
  using VeBalanceLib for LockedPosition;
27
27
 
28
- uint128 public constant WEEK = 1 days;
28
+ uint128 public constant WEEK = 1 weeks;
29
29
  uint128 public constant MAX_LOCK_TIME = 104 weeks;
30
- uint128 public constant MIN_LOCK_TIME = 1 days;
30
+ uint128 public constant MIN_LOCK_TIME = 1 weeks;
31
31
 
32
32
  VeBalance internal _totalSupply;
33
33
 
@@ -3,7 +3,7 @@
3
3
  pragma solidity 0.8.17;
4
4
 
5
5
  library WeekMath {
6
- uint128 internal constant WEEK = 1 days;
6
+ uint128 internal constant WEEK = 7 days;
7
7
 
8
8
  function getWeekStartTimestamp(uint128 timestamp) internal pure returns (uint128) {
9
9
  return (timestamp / WEEK) * WEEK;
@@ -120,6 +120,16 @@ contract BulkSeller is IPBulkSeller, Initializable, TokenHelper, ReentrancyGuard
120
120
  emit SwapExactSyForToken(receiver, exactSyIn, netTokenOut);
121
121
  }
122
122
 
123
+ function calcSwapExactTokenForSy(uint256 netTokenIn) external view returns (uint256 netSyOut) {
124
+ assert(_storage.rateTokenToSy != 0);
125
+ netSyOut = netTokenIn.mulDown(_storage.rateTokenToSy);
126
+ }
127
+
128
+ function calcSwapExactSyForToken(uint256 netSyIn) external view returns (uint256 netTokenOut) {
129
+ assert(_storage.rateSyToToken != 0);
130
+ netTokenOut = netSyIn.mulDown(_storage.rateSyToToken);
131
+ }
132
+
123
133
  function readState() public view returns (BulkSellerState memory state) {
124
134
  BulkSellerStorage storage s = _storage;
125
135
 
@@ -16,6 +16,10 @@ interface IPBulkSeller {
16
16
  uint256 minSyOut
17
17
  ) external returns (uint256 netSyOut);
18
18
 
19
+ function calcSwapExactTokenForSy(uint256 netTokenIn) external view returns (uint256 netSyOut);
20
+
21
+ function calcSwapExactSyForToken(uint256 netSyIn) external view returns (uint256 netTokenOut);
22
+
19
23
  function SY() external view returns (address);
20
24
 
21
25
  function token() external view returns (address);
@@ -20,10 +20,9 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
20
20
  using Math for uint256;
21
21
  using VeBalanceLib for VeBalance;
22
22
  using VeBalanceLib for LockedPosition;
23
- using BulkSellerMathCore for BulkSellerState;
24
23
 
25
24
  uint128 public constant MAX_LOCK_TIME = 104 weeks;
26
- uint128 public constant MIN_LOCK_TIME = 1 days;
25
+ uint128 public constant MIN_LOCK_TIME = 1 weeks;
27
26
 
28
27
  struct TokenAmount {
29
28
  address token;
@@ -734,8 +733,7 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
734
733
  address bulk
735
734
  ) public view returns (uint256 amountSy) {
736
735
  if (bulk != address(0)) {
737
- BulkSellerState memory state = IPBulkSeller(bulk).readState();
738
- return state.calcSwapExactTokenForSy(amountToken);
736
+ return IPBulkSeller(bulk).calcSwapExactTokenForSy(amountToken);
739
737
  } else {
740
738
  return SY.previewDeposit(baseToken, amountToken);
741
739
  }
@@ -748,8 +746,7 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
748
746
  address bulk
749
747
  ) public view returns (uint256 amountBaseToken) {
750
748
  if (bulk != address(0)) {
751
- BulkSellerState memory state = IPBulkSeller(bulk).readState();
752
- return state.calcSwapExactSyForToken(amountSy);
749
+ return IPBulkSeller(bulk).calcSwapExactSyForToken(amountSy);
753
750
  } else {
754
751
  return SY.previewRedeem(baseToken, amountSy);
755
752
  }
@@ -861,39 +858,4 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
861
858
  }
862
859
  }
863
860
  }
864
-
865
- function getBulkSellerInfo(
866
- address token,
867
- address SY,
868
- uint256 netTokenIn,
869
- uint256 netSyIn
870
- )
871
- external
872
- view
873
- returns (
874
- address bulk,
875
- uint256 totalToken,
876
- uint256 totalSy
877
- )
878
- {
879
- bulk = IPBulkSellerFactory(bulkFactory).get(token, SY);
880
- if (bulk != address(0)) {
881
- BulkSellerState memory state = IPBulkSeller(bulk).readState();
882
- if (state.rateTokenToSy != 0 || state.rateSyToToken != 0) {
883
- totalToken = state.totalToken;
884
- totalSy = state.totalSy;
885
- }
886
-
887
- uint256 postFeeRateTokenToSy = state.rateTokenToSy.mulDown(Math.ONE - state.feeRate);
888
- uint256 postFeeRateSyToToken = state.rateSyToToken.mulDown(Math.ONE - state.feeRate);
889
- if (
890
- netTokenIn.mulDown(postFeeRateTokenToSy) > state.totalSy ||
891
- netSyIn.mulDown(postFeeRateSyToToken) > state.totalToken
892
- ) {
893
- bulk = address(0);
894
- totalToken = 0;
895
- totalSy = 0;
896
- }
897
- }
898
- }
899
861
  }
@@ -24,8 +24,7 @@ struct ApproxParams {
24
24
 
25
25
  /// for guessOffchain, this is to provide a shortcut to guessing. The offchain SDK can precalculate the exact result
26
26
  /// before the tx is sent. When the tx reaches the contract, the guessOffchain will be checked first, and if it satisfies the
27
- /// approximation, it will be used (and save all the guessing). It's expected that this shortcut will be used in most cases
28
- /// except in cases that there is a trade in the same market right before the tx
27
+ /// approximation, it will be used (and save all the guessing).
29
28
  }
30
29
 
31
30
  library MarketApproxPtInLib {
@@ -156,7 +155,7 @@ library MarketApproxPtInLib {
156
155
  bool isAnswerAccepted = Math.isASmallerApproxB(guess, maxPtPayable, p.eps);
157
156
  if (isAnswerAccepted) return (guess, netSyFee);
158
157
  } else {
159
- p.guessMax = guess - 1;
158
+ p.guessMax = guess;
160
159
  }
161
160
  }
162
161
  revert Errors.ApproxFail();
@@ -725,12 +724,7 @@ library MarketApproxPtOutLib {
725
724
  res.guessMax = Math.min(_approx.guessMax, maxGuessMax);
726
725
 
727
726
  if (res.guessMin > res.guessMax)
728
- revert Errors.ApproxBinarySearchInputInvalid(
729
- _approx.guessMin,
730
- _approx.guessMax,
731
- minGuessMin,
732
- maxGuessMax
733
- );
727
+ revert Errors.ApproxBinarySearchInputInvalid(_approx.guessMin, _approx.guessMax, minGuessMin, maxGuessMax);
734
728
 
735
729
  res.guessOffchain = _approx.guessOffchain;
736
730
  res.maxIteration = _approx.maxIteration;
@@ -5,18 +5,17 @@
5
5
  "treasury": "0x243b7CFD29AcAF9cDe98C1958902FAA3B1F095D5",
6
6
  "governance": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
7
7
  "pendle": "0x808507121b80c02388fad14726482e061b8da827",
8
- "lzEndpoint": "0x93f54D755A063cE7bB9e6Ac47Eccc8e33411d706",
9
- "wrappedNative": "0xe43a7aD7C09d8fAE3ADe7361f0b847b23adD5094"
8
+ "lzEndpoint": "0x93f54D755A063cE7bB9e6Ac47Eccc8e33411d706"
10
9
  },
11
- "splitter": "0x4B3B9f8f65E1c3fde4073874c2C93a1760F11035",
10
+ "splitter": "0x718Bfb977A2f327edC41bf8e615f1206a57F9Eea",
12
11
  "PENDLE": "0x808507121b80c02388fad14726482e061b8da827",
13
- "yieldContractFactory": "0xD3DC187247539380C3AAbFdb2D09c341910fFE83",
14
- "marketFactory": "0x74D8b7eC36C0ff4157bD359B6D3Ab82a5d741B8E",
15
- "bulkSellerFactory": "0x640bDc3daF9cFDb33CC67e46180A4E6c0495D0f4",
16
- "router": "0x5334471de92CDBeB4245d3a3B1aF93b4DfDa8cC9",
17
- "routerStatic": "0xd1dCaC6f75361A7C734863BC17B126EcB873192C",
18
- "vePendle": "0x2d7e1Ab594E218eBd473bBE3aF57fAD5541F10f9",
19
- "senderEndpoint": "0x33D7a94070A697E5CAe134A409ef42cfDba4F3b1",
20
- "votingController": "0xdc8D6a5Db65287af491199244459e5C57d62f3f8",
21
- "gaugeController": "0xd7D67E0b7DcF4665222809868512cAf6ac99C736"
12
+ "yieldContractFactory": "0x56966bbe5FdC4e76febb7eb3a5E892d9c39De46c",
13
+ "marketFactory": "0x59cD89c89dF47BA43B134F55D2E734E03aC62871",
14
+ "bulkSellerFactory": "0x5e2e7Dd7364cB8b73d69A50276B7cAC5aD165420",
15
+ "router": "0xf637E80aEF8ed8d257d189967ADeE5C6b18Ea776",
16
+ "routerStatic": "0x81EAcd9D16CbA337ec35F0960468C49AD3c0Ea91",
17
+ "vePendle": "0x8B859D03A23Cf74f973657C8594B071dE3Bc17c4",
18
+ "senderEndpoint": "0x49eb5784b9D2360e123Acb8366C01A5469960D68",
19
+ "votingController": "0xb8Dec786A995376BDb0aeAF0D5ce9A27577495ca",
20
+ "gaugeController": "0xC66Bd01662E1Ab9FF0BeAd18E8b2e187ab4FaA1B"
22
21
  }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "SY Benqi USDC",
3
+ "SY": "0x18a23e0a9Bf35EE15603FF38441A72D15D35B487",
4
+ "YT": "0x1E07Ba35866C98C60c046544b3635F63dE7FBfF2",
5
+ "PT": "0x27fb9d4E67E4850f605775B9E12a833c5d3D8DaD",
6
+ "market": "0xce7Bd6374032DbDd735F24b96a6B50f4F67fFfa3",
7
+ "expiry": 1675382400,
8
+ "scalarRoot": "62000000000000000000",
9
+ "initAnchor": "1012600000000000000"
10
+ }
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "SY Benqi WETH",
3
- "SY": "0x5C90c945C0f7Ad4D8C3d1746185262bB9499eCF0",
4
- "YT": "0xe85DFab309ED388d75E4C3665a77C73C6C0BA630",
5
- "PT": "0x27DaeA7A12A9499F8065631756FEE5A9ACbd105a",
6
- "market": "0x096206b71CA3610724F780B9af6c2D47938A345C",
3
+ "SY": "0xD1CE136Ab1A2f684e03F09A27028264d6233f70c",
4
+ "YT": "0x4981dC960318d7B340FE8193b97FD51db752e9Ee",
5
+ "PT": "0xBc89b4DEdB90223BFabde42c1A15489f3623465d",
6
+ "market": "0x19e6b9102966C55a9318379BC443fF5D0a97E4dE",
7
7
  "expiry": 1675382400,
8
8
  "scalarRoot": "62000000000000000000",
9
9
  "initAnchor": "1012600000000000000"
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.17.0-daily",
5
+ "version": "0.17.0-testnet",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -44,7 +44,7 @@
44
44
  },
45
45
  "packageManager": "yarn@3.2.2",
46
46
  "dependencies": {
47
- "@openzeppelin/contracts": "4.7.3",
48
- "@openzeppelin/contracts-upgradeable": "4.7.3"
47
+ "@openzeppelin/contracts": "^4.7.3",
48
+ "@openzeppelin/contracts-upgradeable": "^4.7.3"
49
49
  }
50
50
  }
@@ -50,6 +50,8 @@ export interface BulkSellerInterface extends utils.Interface {
50
50
  functions: {
51
51
  "SY()": FunctionFragment;
52
52
  "_storage()": FunctionFragment;
53
+ "calcSwapExactSyForToken(uint256)": FunctionFragment;
54
+ "calcSwapExactTokenForSy(uint256)": FunctionFragment;
53
55
  "decreaseReserve(uint256,uint256)": FunctionFragment;
54
56
  "factory()": FunctionFragment;
55
57
  "feeRate()": FunctionFragment;
@@ -66,6 +68,14 @@ export interface BulkSellerInterface extends utils.Interface {
66
68
 
67
69
  encodeFunctionData(functionFragment: "SY", values?: undefined): string;
68
70
  encodeFunctionData(functionFragment: "_storage", values?: undefined): string;
71
+ encodeFunctionData(
72
+ functionFragment: "calcSwapExactSyForToken",
73
+ values: [BigNumberish]
74
+ ): string;
75
+ encodeFunctionData(
76
+ functionFragment: "calcSwapExactTokenForSy",
77
+ values: [BigNumberish]
78
+ ): string;
69
79
  encodeFunctionData(
70
80
  functionFragment: "decreaseReserve",
71
81
  values: [BigNumberish, BigNumberish]
@@ -105,6 +115,14 @@ export interface BulkSellerInterface extends utils.Interface {
105
115
 
106
116
  decodeFunctionResult(functionFragment: "SY", data: BytesLike): Result;
107
117
  decodeFunctionResult(functionFragment: "_storage", data: BytesLike): Result;
118
+ decodeFunctionResult(
119
+ functionFragment: "calcSwapExactSyForToken",
120
+ data: BytesLike
121
+ ): Result;
122
+ decodeFunctionResult(
123
+ functionFragment: "calcSwapExactTokenForSy",
124
+ data: BytesLike
125
+ ): Result;
108
126
  decodeFunctionResult(
109
127
  functionFragment: "decreaseReserve",
110
128
  data: BytesLike
@@ -264,6 +282,16 @@ export interface BulkSeller extends BaseContract {
264
282
  }
265
283
  >;
266
284
 
285
+ calcSwapExactSyForToken(
286
+ netSyIn: BigNumberish,
287
+ overrides?: CallOverrides
288
+ ): Promise<[BigNumber] & { netTokenOut: BigNumber }>;
289
+
290
+ calcSwapExactTokenForSy(
291
+ netTokenIn: BigNumberish,
292
+ overrides?: CallOverrides
293
+ ): Promise<[BigNumber] & { netSyOut: BigNumber }>;
294
+
267
295
  decreaseReserve(
268
296
  netTokenOut: BigNumberish,
269
297
  netSyOut: BigNumberish,
@@ -341,6 +369,16 @@ export interface BulkSeller extends BaseContract {
341
369
  }
342
370
  >;
343
371
 
372
+ calcSwapExactSyForToken(
373
+ netSyIn: BigNumberish,
374
+ overrides?: CallOverrides
375
+ ): Promise<BigNumber>;
376
+
377
+ calcSwapExactTokenForSy(
378
+ netTokenIn: BigNumberish,
379
+ overrides?: CallOverrides
380
+ ): Promise<BigNumber>;
381
+
344
382
  decreaseReserve(
345
383
  netTokenOut: BigNumberish,
346
384
  netSyOut: BigNumberish,
@@ -414,6 +452,16 @@ export interface BulkSeller extends BaseContract {
414
452
  }
415
453
  >;
416
454
 
455
+ calcSwapExactSyForToken(
456
+ netSyIn: BigNumberish,
457
+ overrides?: CallOverrides
458
+ ): Promise<BigNumber>;
459
+
460
+ calcSwapExactTokenForSy(
461
+ netTokenIn: BigNumberish,
462
+ overrides?: CallOverrides
463
+ ): Promise<BigNumber>;
464
+
417
465
  decreaseReserve(
418
466
  netTokenOut: BigNumberish,
419
467
  netSyOut: BigNumberish,
@@ -563,6 +611,16 @@ export interface BulkSeller extends BaseContract {
563
611
 
564
612
  _storage(overrides?: CallOverrides): Promise<BigNumber>;
565
613
 
614
+ calcSwapExactSyForToken(
615
+ netSyIn: BigNumberish,
616
+ overrides?: CallOverrides
617
+ ): Promise<BigNumber>;
618
+
619
+ calcSwapExactTokenForSy(
620
+ netTokenIn: BigNumberish,
621
+ overrides?: CallOverrides
622
+ ): Promise<BigNumber>;
623
+
566
624
  decreaseReserve(
567
625
  netTokenOut: BigNumberish,
568
626
  netSyOut: BigNumberish,
@@ -628,6 +686,16 @@ export interface BulkSeller extends BaseContract {
628
686
 
629
687
  _storage(overrides?: CallOverrides): Promise<PopulatedTransaction>;
630
688
 
689
+ calcSwapExactSyForToken(
690
+ netSyIn: BigNumberish,
691
+ overrides?: CallOverrides
692
+ ): Promise<PopulatedTransaction>;
693
+
694
+ calcSwapExactTokenForSy(
695
+ netTokenIn: BigNumberish,
696
+ overrides?: CallOverrides
697
+ ): Promise<PopulatedTransaction>;
698
+
631
699
  decreaseReserve(
632
700
  netTokenOut: BigNumberish,
633
701
  netSyOut: BigNumberish,
@@ -48,6 +48,8 @@ export interface IPBulkSellerInterface extends utils.Interface {
48
48
  contractName: "IPBulkSeller";
49
49
  functions: {
50
50
  "SY()": FunctionFragment;
51
+ "calcSwapExactSyForToken(uint256)": FunctionFragment;
52
+ "calcSwapExactTokenForSy(uint256)": FunctionFragment;
51
53
  "readState()": FunctionFragment;
52
54
  "swapExactSyForToken(address,uint256,uint256)": FunctionFragment;
53
55
  "swapExactTokenForSy(address,uint256,uint256)": FunctionFragment;
@@ -55,6 +57,14 @@ export interface IPBulkSellerInterface extends utils.Interface {
55
57
  };
56
58
 
57
59
  encodeFunctionData(functionFragment: "SY", values?: undefined): string;
60
+ encodeFunctionData(
61
+ functionFragment: "calcSwapExactSyForToken",
62
+ values: [BigNumberish]
63
+ ): string;
64
+ encodeFunctionData(
65
+ functionFragment: "calcSwapExactTokenForSy",
66
+ values: [BigNumberish]
67
+ ): string;
58
68
  encodeFunctionData(functionFragment: "readState", values?: undefined): string;
59
69
  encodeFunctionData(
60
70
  functionFragment: "swapExactSyForToken",
@@ -67,6 +77,14 @@ export interface IPBulkSellerInterface extends utils.Interface {
67
77
  encodeFunctionData(functionFragment: "token", values?: undefined): string;
68
78
 
69
79
  decodeFunctionResult(functionFragment: "SY", data: BytesLike): Result;
80
+ decodeFunctionResult(
81
+ functionFragment: "calcSwapExactSyForToken",
82
+ data: BytesLike
83
+ ): Result;
84
+ decodeFunctionResult(
85
+ functionFragment: "calcSwapExactTokenForSy",
86
+ data: BytesLike
87
+ ): Result;
70
88
  decodeFunctionResult(functionFragment: "readState", data: BytesLike): Result;
71
89
  decodeFunctionResult(
72
90
  functionFragment: "swapExactSyForToken",
@@ -111,6 +129,16 @@ export interface IPBulkSeller extends BaseContract {
111
129
  functions: {
112
130
  SY(overrides?: CallOverrides): Promise<[string]>;
113
131
 
132
+ calcSwapExactSyForToken(
133
+ netSyIn: BigNumberish,
134
+ overrides?: CallOverrides
135
+ ): Promise<[BigNumber] & { netTokenOut: BigNumber }>;
136
+
137
+ calcSwapExactTokenForSy(
138
+ netTokenIn: BigNumberish,
139
+ overrides?: CallOverrides
140
+ ): Promise<[BigNumber] & { netSyOut: BigNumber }>;
141
+
114
142
  readState(
115
143
  overrides?: CallOverrides
116
144
  ): Promise<[BulkSellerStateStructOutput]>;
@@ -134,6 +162,16 @@ export interface IPBulkSeller extends BaseContract {
134
162
 
135
163
  SY(overrides?: CallOverrides): Promise<string>;
136
164
 
165
+ calcSwapExactSyForToken(
166
+ netSyIn: BigNumberish,
167
+ overrides?: CallOverrides
168
+ ): Promise<BigNumber>;
169
+
170
+ calcSwapExactTokenForSy(
171
+ netTokenIn: BigNumberish,
172
+ overrides?: CallOverrides
173
+ ): Promise<BigNumber>;
174
+
137
175
  readState(overrides?: CallOverrides): Promise<BulkSellerStateStructOutput>;
138
176
 
139
177
  swapExactSyForToken(
@@ -155,6 +193,16 @@ export interface IPBulkSeller extends BaseContract {
155
193
  callStatic: {
156
194
  SY(overrides?: CallOverrides): Promise<string>;
157
195
 
196
+ calcSwapExactSyForToken(
197
+ netSyIn: BigNumberish,
198
+ overrides?: CallOverrides
199
+ ): Promise<BigNumber>;
200
+
201
+ calcSwapExactTokenForSy(
202
+ netTokenIn: BigNumberish,
203
+ overrides?: CallOverrides
204
+ ): Promise<BigNumber>;
205
+
158
206
  readState(overrides?: CallOverrides): Promise<BulkSellerStateStructOutput>;
159
207
 
160
208
  swapExactSyForToken(
@@ -179,6 +227,16 @@ export interface IPBulkSeller extends BaseContract {
179
227
  estimateGas: {
180
228
  SY(overrides?: CallOverrides): Promise<BigNumber>;
181
229
 
230
+ calcSwapExactSyForToken(
231
+ netSyIn: BigNumberish,
232
+ overrides?: CallOverrides
233
+ ): Promise<BigNumber>;
234
+
235
+ calcSwapExactTokenForSy(
236
+ netTokenIn: BigNumberish,
237
+ overrides?: CallOverrides
238
+ ): Promise<BigNumber>;
239
+
182
240
  readState(overrides?: CallOverrides): Promise<BigNumber>;
183
241
 
184
242
  swapExactSyForToken(
@@ -201,6 +259,16 @@ export interface IPBulkSeller extends BaseContract {
201
259
  populateTransaction: {
202
260
  SY(overrides?: CallOverrides): Promise<PopulatedTransaction>;
203
261
 
262
+ calcSwapExactSyForToken(
263
+ netSyIn: BigNumberish,
264
+ overrides?: CallOverrides
265
+ ): Promise<PopulatedTransaction>;
266
+
267
+ calcSwapExactTokenForSy(
268
+ netTokenIn: BigNumberish,
269
+ overrides?: CallOverrides
270
+ ): Promise<PopulatedTransaction>;
271
+
204
272
  readState(overrides?: CallOverrides): Promise<PopulatedTransaction>;
205
273
 
206
274
  swapExactSyForToken(
@@ -814,7 +814,7 @@ export interface RouterStatic extends BaseContract {
814
814
  overrides?: CallOverrides
815
815
  ): Promise<[BigNumber] & { netTokenIn: BigNumber }>;
816
816
 
817
- "getBulkSellerInfo(address,address)"(
817
+ getBulkSellerInfo(
818
818
  token: string,
819
819
  SY: string,
820
820
  overrides?: CallOverrides
@@ -826,20 +826,6 @@ export interface RouterStatic extends BaseContract {
826
826
  }
827
827
  >;
828
828
 
829
- "getBulkSellerInfo(address,address,uint256,uint256)"(
830
- token: string,
831
- SY: string,
832
- netTokenIn: BigNumberish,
833
- netSyIn: BigNumberish,
834
- overrides?: CallOverrides
835
- ): Promise<
836
- [string, BigNumber, BigNumber] & {
837
- bulk: string;
838
- totalToken: BigNumber;
839
- totalSy: BigNumber;
840
- }
841
- >;
842
-
843
829
  getDefaultApproxParams(
844
830
  overrides?: CallOverrides
845
831
  ): Promise<[ApproxParamsStructOutput]>;
@@ -1237,7 +1223,7 @@ export interface RouterStatic extends BaseContract {
1237
1223
  overrides?: CallOverrides
1238
1224
  ): Promise<BigNumber>;
1239
1225
 
1240
- "getBulkSellerInfo(address,address)"(
1226
+ getBulkSellerInfo(
1241
1227
  token: string,
1242
1228
  SY: string,
1243
1229
  overrides?: CallOverrides
@@ -1249,20 +1235,6 @@ export interface RouterStatic extends BaseContract {
1249
1235
  }
1250
1236
  >;
1251
1237
 
1252
- "getBulkSellerInfo(address,address,uint256,uint256)"(
1253
- token: string,
1254
- SY: string,
1255
- netTokenIn: BigNumberish,
1256
- netSyIn: BigNumberish,
1257
- overrides?: CallOverrides
1258
- ): Promise<
1259
- [string, BigNumber, BigNumber] & {
1260
- bulk: string;
1261
- totalToken: BigNumber;
1262
- totalSy: BigNumber;
1263
- }
1264
- >;
1265
-
1266
1238
  getDefaultApproxParams(
1267
1239
  overrides?: CallOverrides
1268
1240
  ): Promise<ApproxParamsStructOutput>;
@@ -1663,7 +1635,7 @@ export interface RouterStatic extends BaseContract {
1663
1635
  overrides?: CallOverrides
1664
1636
  ): Promise<BigNumber>;
1665
1637
 
1666
- "getBulkSellerInfo(address,address)"(
1638
+ getBulkSellerInfo(
1667
1639
  token: string,
1668
1640
  SY: string,
1669
1641
  overrides?: CallOverrides
@@ -1675,20 +1647,6 @@ export interface RouterStatic extends BaseContract {
1675
1647
  }
1676
1648
  >;
1677
1649
 
1678
- "getBulkSellerInfo(address,address,uint256,uint256)"(
1679
- token: string,
1680
- SY: string,
1681
- netTokenIn: BigNumberish,
1682
- netSyIn: BigNumberish,
1683
- overrides?: CallOverrides
1684
- ): Promise<
1685
- [string, BigNumber, BigNumber] & {
1686
- bulk: string;
1687
- totalToken: BigNumber;
1688
- totalSy: BigNumber;
1689
- }
1690
- >;
1691
-
1692
1650
  getDefaultApproxParams(
1693
1651
  overrides?: CallOverrides
1694
1652
  ): Promise<ApproxParamsStructOutput>;
@@ -2204,20 +2162,12 @@ export interface RouterStatic extends BaseContract {
2204
2162
  overrides?: CallOverrides
2205
2163
  ): Promise<BigNumber>;
2206
2164
 
2207
- "getBulkSellerInfo(address,address)"(
2165
+ getBulkSellerInfo(
2208
2166
  token: string,
2209
2167
  SY: string,
2210
2168
  overrides?: CallOverrides
2211
2169
  ): Promise<BigNumber>;
2212
2170
 
2213
- "getBulkSellerInfo(address,address,uint256,uint256)"(
2214
- token: string,
2215
- SY: string,
2216
- netTokenIn: BigNumberish,
2217
- netSyIn: BigNumberish,
2218
- overrides?: CallOverrides
2219
- ): Promise<BigNumber>;
2220
-
2221
2171
  getDefaultApproxParams(overrides?: CallOverrides): Promise<BigNumber>;
2222
2172
 
2223
2173
  getExchangeRate(
@@ -2566,20 +2516,12 @@ export interface RouterStatic extends BaseContract {
2566
2516
  overrides?: CallOverrides
2567
2517
  ): Promise<PopulatedTransaction>;
2568
2518
 
2569
- "getBulkSellerInfo(address,address)"(
2519
+ getBulkSellerInfo(
2570
2520
  token: string,
2571
2521
  SY: string,
2572
2522
  overrides?: CallOverrides
2573
2523
  ): Promise<PopulatedTransaction>;
2574
2524
 
2575
- "getBulkSellerInfo(address,address,uint256,uint256)"(
2576
- token: string,
2577
- SY: string,
2578
- netTokenIn: BigNumberish,
2579
- netSyIn: BigNumberish,
2580
- overrides?: CallOverrides
2581
- ): Promise<PopulatedTransaction>;
2582
-
2583
2525
  getDefaultApproxParams(
2584
2526
  overrides?: CallOverrides
2585
2527
  ): Promise<PopulatedTransaction>;