@pendle/core-v2 2.15.0-mainnet → 2.15.2

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 (373) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  12. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  17. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  29. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  35. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  37. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  41. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  43. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  47. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +2 -2
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +2 -2
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +2 -2
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.json +2 -2
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.json +2 -2
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.json +2 -2
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +2 -2
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +2 -2
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +2 -2
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +1 -1
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +2 -2
  100. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  102. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  103. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  104. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  105. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  106. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  107. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  108. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  109. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  110. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  111. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  112. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  113. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  114. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  115. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  116. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  117. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  118. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  119. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  120. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  121. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  122. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  123. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  124. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  125. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  126. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  127. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  128. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.json +2 -2
  129. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  139. package/build/artifacts/contracts/interfaces/Camelot/ICamelotFactory.sol/ICamelotFactory.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTFactory.sol/ICamelotNFTFactory.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTHandler.sol/ICamelotNFTHandler.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPoolFactory.sol/ICamelotNitroPoolFactory.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.dbg.json +1 -1
  146. package/build/artifacts/contracts/interfaces/Camelot/ICamelotRouter.sol/ICamelotRouter.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/Camelot/ICamelotYieldBooster.sol/ICamelotYieldBooster.dbg.json +1 -1
  148. package/build/artifacts/contracts/interfaces/Camelot/IXGrail.sol/IXGrail.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  151. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/Frax/IFrxEthMinter.sol/IFrxEthMinter.dbg.json +1 -1
  156. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
  157. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +1 -1
  158. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
  159. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +1 -1
  160. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  163. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
  170. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
  171. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  172. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  173. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  174. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  175. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  176. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  177. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  178. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  180. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  181. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  182. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  183. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  184. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
  185. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  186. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  187. package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
  188. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  189. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  190. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  191. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  192. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  193. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  194. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  195. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  196. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
  197. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  198. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  199. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  200. package/build/artifacts/contracts/interfaces/IPPtOracle.sol/IPPtOracle.dbg.json +1 -1
  201. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  202. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  203. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  204. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  205. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  206. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  207. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  208. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  209. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  210. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  211. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  212. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  213. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  214. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  215. package/build/artifacts/contracts/interfaces/IStargateLP.sol/IStargateLP.dbg.json +1 -1
  216. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  217. package/build/artifacts/contracts/interfaces/IStargateStaking.sol/IStargateStaking.dbg.json +1 -1
  218. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  219. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  220. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  221. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  222. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  223. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  224. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  225. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  226. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  227. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
  228. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  229. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
  230. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  231. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  232. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  233. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  234. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  235. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  236. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  237. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  238. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  239. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  240. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  241. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  242. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  243. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  244. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  245. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +4 -0
  246. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.json +10 -0
  247. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  248. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
  249. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  250. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
  251. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  252. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
  253. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
  254. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.json +2 -2
  255. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  256. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  257. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  258. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  259. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  260. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  261. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  262. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  263. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  264. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  265. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  266. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  267. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
  268. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  269. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  270. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  271. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  272. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  273. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  274. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  275. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +1 -1
  276. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +1 -1
  277. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  278. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.dbg.json +1 -1
  279. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.dbg.json +1 -1
  280. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
  281. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.dbg.json +1 -1
  282. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.dbg.json +1 -1
  283. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.dbg.json +1 -1
  284. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
  285. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.dbg.json +1 -1
  286. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.dbg.json +1 -1
  287. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
  288. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +1 -1
  289. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.dbg.json +1 -1
  290. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
  291. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.dbg.json +1 -1
  292. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.dbg.json +1 -1
  293. package/contracts/core/libraries/math/Math.sol +1 -1
  294. package/contracts/offchain-helpers/MarketExchangeRateLib.sol +43 -0
  295. package/contracts/oracles/PendleLpOracleLib.sol +90 -0
  296. package/contracts/router/swap-aggregator/{PendleSwapEthereum.sol → PendleSwap.sol} +8 -12
  297. package/contracts/router/swap-aggregator/kyberswap/{arbitrum/IExecutorHelper1.sol → IExecutorHelper.sol} +65 -21
  298. package/contracts/router/swap-aggregator/kyberswap/{arbitrum/IMetaAggregationRouterV2.sol → IMetaAggregationRouterV2.sol} +4 -3
  299. package/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol +235 -0
  300. package/contracts/router/swap-aggregator/kyberswap/{arbitrum/ScaleDataHelperArbitrum.sol → ScalingDataLib.sol} +56 -25
  301. package/deployments/1-core.json +1 -1
  302. package/deployments/42161-core.json +1 -1
  303. package/package.json +1 -1
  304. package/typechain-types/CamelotV1PreviewHelper.ts +471 -0
  305. package/typechain-types/IPVotingEscrowSidechain.ts +155 -0
  306. package/typechain-types/PendleCamelotRewardHelper.ts +347 -0
  307. package/typechain-types/PendleCamelotV1RouterHelper.ts +133 -0
  308. package/typechain-types/PendleCamelotV1SY.ts +1716 -0
  309. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  310. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  311. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  312. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  313. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  314. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  315. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  316. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  317. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  318. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  319. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  320. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  321. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  322. package/typechain-types/factories/CamelotV1PreviewHelper__factory.ts +400 -0
  323. package/typechain-types/factories/CamelotV1VolatilePreview__factory.ts +1 -1
  324. package/typechain-types/factories/IPVotingEscrowSidechain__factory.ts +112 -0
  325. package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
  326. package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
  327. package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
  328. package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
  329. package/typechain-types/factories/PendleCamelotRewardHelper__factory.ts +317 -0
  330. package/typechain-types/factories/PendleCamelotV1RouterHelper__factory.ts +95 -0
  331. package/typechain-types/factories/PendleCamelotV1SY__factory.ts +1448 -0
  332. package/typechain-types/factories/PendleCamelotV1VolatileSY__factory.ts +1 -1
  333. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  334. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  335. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  336. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  337. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  338. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  339. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  340. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  341. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  342. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  343. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  344. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  345. package/typechain-types/factories/PendlePtUsdChainlinkOracle__factory.ts +1 -1
  346. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  347. package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
  348. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  349. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  350. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  351. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
  352. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  353. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  354. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  355. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  356. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  357. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  358. package/typechain-types/factories/SAPE__factory.ts +1 -1
  359. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  360. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  361. package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +0 -39
  362. package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +0 -68
  363. package/contracts/router/swap-aggregator/PendleSwapArbitrum.sol +0 -45
  364. package/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol +0 -10
  365. package/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol +0 -200
  366. package/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol +0 -17
  367. package/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol +0 -191
  368. package/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol +0 -30
  369. package/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol +0 -41
  370. package/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol +0 -201
  371. package/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol +0 -147
  372. /package/contracts/router/swap-aggregator/kyberswap/{arbitrum/IAggregationExecutor.sol → IAggregationExecutor.sol} +0 -0
  373. /package/contracts/router/swap-aggregator/kyberswap/{arbitrum/IHashflow.sol → IHashflow.sol} +0 -0
@@ -1025,8 +1025,8 @@
1025
1025
  "type": "receive"
1026
1026
  }
1027
1027
  ],
1028
- "bytecode": "0x60c06040523480156200001157600080fd5b50604051620024c0380380620024c08339810160408190526200003491620002e8565b6001600160a01b0382166080526200004e81600162000073565b6001600160a01b031660a08190526080516200006b9190620000e9565b5050620003eb565b604051634a83e9cd60e11b8152600481018290526000906001600160a01b03841690639507d39a90602401602060405180830381865afa158015620000bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e2919062000327565b9392505050565b6001600160a01b038216620000fc575050565b6200011060026001600160601b0362000347565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019091906200037c565b1015620001b457620001a582826000620001b8565b620001b48282600019620001b8565b5050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169162000216919062000396565b6000604051808303816000865af19150503d806000811462000255576040519150601f19603f3d011682016040523d82523d6000602084013e6200025a565b606091505b50915091508180156200028857508051158062000288575080806020019051810190620002889190620003c7565b620002c85760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640160405180910390fd5b5050505050565b6001600160a01b0381168114620002e557600080fd5b50565b60008060408385031215620002fc57600080fd5b82516200030981620002cf565b60208401519092506200031c81620002cf565b809150509250929050565b6000602082840312156200033a57600080fd5b8151620000e281620002cf565b60006001600160601b03838116806200037057634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6000602082840312156200038f57600080fd5b5051919050565b6000825160005b81811015620003b957602081860181015185830152016200039d565b506000920191825250919050565b600060208284031215620003da57600080fd5b81518015158114620000e257600080fd5b60805160a051612040620004806000396000818161012201528181610260015281816102b70152818161085e01526108860152600081816098015281816102f701528181610479015281816104a70152818161068f015281816108b1015281816108df01528181610bb001528181610bde01528181610d1601528181610d4401528181610ef90152610f2701526120406000f3fe60806040526004361061007a5760003560e01c806332fe7b261461008657806365debe5f146100d0578063ad5c464814610110578063af0b533114610144578063b558229a1461016c578063b8a3339c1461018c578063c7f36371146101ac578063d64bccb3146101cc578063dcdcc4c2146101ec57600080fd5b3661008157005b600080fd5b34801561009257600080fd5b506100ba7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100c79190611683565b60405180910390f35b3480156100dc57600080fd5b506100f06100eb3660046116af565b61020c565b6040805194855260208501939093529183015260608201526080016100c7565b34801561011c57600080fd5b506100ba7f000000000000000000000000000000000000000000000000000000000000000081565b610157610152366004611715565b610253565b604080519283526020830191909152016100c7565b34801561017857600080fd5b506100f06101873660046117a3565b6103c5565b34801561019857600080fd5b506100f06101a73660046117e5565b6103f1565b3480156101b857600080fd5b506100f06101c7366004611840565b61042a565b3480156101d857600080fd5b506101576101e736600461186c565b610448565b3480156101f857600080fd5b50610157610207366004611888565b610662565b60008060008061021b86610662565b90925090506102458561023160608901896118bc565b61023f9060208101906118dc565b8461084b565b909790965091945092509050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661028d60208501856118dc565b6001600160a01b0316146102a057600080fd5b6102b060003385602001356109fd565b6102e060007f00000000000000000000000000000000000000000000000000000000000000008560200135610a6e565b604051636fde40a760e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063dfbc814e90610334908a908a908a908a908a90600401611aa6565b60408051808303816000875af1158015610352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103769190611ae0565b60405191935091506000906001600160a01b038816903390600080516020611feb833981519152906103b390839060208a01359089908990611b04565b60405180910390a49550959350505050565b6000806000806103d486610448565b90935091506103e38584610b34565b909793965091945090925050565b60008060008061040086610662565b90935091506103e38561041660608901896118bc565b6104249060208101906118dc565b85610cfb565b60008060008061043986610448565b90925090506102458583610e7d565b60008061046761045b60208501856118dc565b33308660200135611046565b61049d61047760208501856118dc565b7f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663178d29d3306104da60208701876118dc565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152602086013560448201526000606482015260840160408051808303816000875af1158015610537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055b9190611ae0565b90925090506105706060840160408501611b2a565b156105f65761058260208401846118dc565b6001600160a01b0316639262187b336040518263ffffffff1660e01b81526004016105ad9190611683565b6000604051808303816000875af11580156105cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105f49190810190611b8d565b505b3361060460208501856118dc565b6001600160a01b0316336001600160a01b03167fd31f02c44717b409d13b92ec9d2eaf1427fb4e63f85f4777f1458fb8d9387761866020013586604051610655929190918252602082015260400190565b60405180910390a4915091565b60008061067561045b60208501856118dc565b61068561047760208501856118dc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663690807ad306106c260208701876118dc565b60208701356106d460608901896118bc565b6040518563ffffffff1660e01b81526004016106f39493929190611c32565b60408051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190611ae0565b909250905061074a6060840160408501611b2a565b156107d05761075c60208401846118dc565b6001600160a01b0316639262187b336040518263ffffffff1660e01b81526004016107879190611683565b6000604051808303816000875af11580156107a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107ce9190810190611b8d565b505b6107dd60608401846118bc565b6107eb9060208101906118dc565b6001600160a01b031661080160208501856118dc565b6001600160a01b0316336001600160a01b03167f3fff08e8137afe866dce7ced13ddc12d684db61b80b0ac5cb9e54961c9dd8a213387602001358760405161065593929190611c6f565b6000806001600160a01b0384166108ab577f000000000000000000000000000000000000000000000000000000000000000093506108ab60007f000000000000000000000000000000000000000000000000000000000000000085610a6e565b6108d5847f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663dfbc814e3361091260208901896118dc565b886020013589604001356109398a8a8d606001602081019061093491906118dc565b61112b565b6040518663ffffffff1660e01b8152600401610959959493929190611d7a565b60408051808303816000875af1158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190611ae0565b90925090506001600160a01b0384166109b760208701876118dc565b6001600160a01b0316336001600160a01b0316600080516020611feb833981519152338787876040516109ed9493929190611b04565b60405180910390a4935093915050565b6001600160a01b038316610a5357803414610a4e5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064015b60405180910390fd5b505050565b8015610a4e57610a4e6001600160a01b0384168330846111a8565b6001600160a01b038316610ad557816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ab757600080fd5b505af1158015610acb573d6000803e3d6000fd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d90602401600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b50505050505050565b60008080610b4560208601866118dc565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba69190611db4565b50509050610bd4817f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663409c7a8933610c1160208901896118dc565b878960200135610c298b6060018c604001358c611202565b6040518663ffffffff1660e01b8152600401610c49959493929190611e31565b60408051808303816000875af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190611ae0565b909350915033610c9e60208701876118dc565b6001600160a01b0316336001600160a01b03167fb51950711c9b21dc7888d41f68a19540231ffb5f0d19d8f75cbccaf90ffa7fa58787604051610ceb929190918252602082015260400190565b60405180910390a4509250929050565b600080806001600160a01b038516610d105750825b610d3a857f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663015491d18233610d7860208b018b6118dc565b8a60200135610d8f8c6060018d604001358c611202565b610da88c8c8f61010001602081019061093491906118dc565b6040518763ffffffff1660e01b8152600401610dc8959493929190611e65565b604080518083038185885af1158015610de5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e0a9190611ae0565b90935091506001600160a01b038516610e2660208801886118dc565b6001600160a01b0316336001600160a01b03167ff83776e5b667a2b471f92ddfd482749c61b5328b832d375097638c2c08818f3b338888604051610e6c93929190611c6f565b60405180910390a450935093915050565b60008080610e8e60208601866118dc565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eef9190611db4565b50509050610f1d817f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663844384aa33610f5a60208901896118dc565b604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820188905260208901356064830152880135608482015260a40160408051808303816000875af1158015610fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe69190611ae0565b909350915033610ff960208701876118dc565b60408051878152602081018790529081018590526001600160a01b03919091169033907fc8437d84f52d1e20cc82487e336feadb2d39ede00af7711b6a58abf39392328f90606001610ceb565b8015611061576110616001600160a01b0385168484846111a8565b50505050565b6001600160a01b038216611079575050565b61108b60026001600160601b03611ebb565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190611ee1565b10156111275761111a82826000611326565b6111278282600019611326565b5050565b61117e6040805160c081018252600080825260208083018290528284018290526060808401839052608080850184905285519081018652838152918201839052938101849052928301529060a082015290565b6001600160a01b0380851660408301819052825260208201849052821660608201525b9392505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611061908590611430565b6112346040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83604001356000036112a657833515801561125457506000198460200135145b6112905760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420677565737360981b6044820152606401610a45565b61129f36859003850185611efa565b90506111a1565b6040805160a0810190915280846112be858835611f69565b6112c89190611f94565b8152602001848487602001356112de9190611f69565b6112e89190611f94565b8152602001846112fc856040890135611f69565b6113069190611f94565b815260200185606001358152602001856080013581525090509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916113829190611fa8565b6000604051808303816000865af19150503d80600081146113bf576040519150601f19603f3d011682016040523d82523d6000602084013e6113c4565b606091505b50915091508180156113ee5750805115806113ee5750808060200190518101906113ee9190611fba565b6114295760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610a45565b5050505050565b6000611485826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115029092919063ffffffff16565b805190915015610a4e57808060200190518101906114a39190611fba565b610a4e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a45565b60606115118484600085611519565b949350505050565b60608247101561157a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a45565b6001600160a01b0385163b6115d15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a45565b600080866001600160a01b031685876040516115ed9190611fa8565b60006040518083038185875af1925050503d806000811461162a576040519150601f19603f3d011682016040523d82523d6000602084013e61162f565b606091505b509150915061163f82828661164a565b979650505050505050565b606083156116595750816111a1565b8251156116695782518084602001fd5b8160405162461bcd60e51b8152600401610a459190611fd7565b6001600160a01b0391909116815260200190565b6000608082840312156116a957600080fd5b50919050565b60008060a083850312156116c257600080fd5b82356001600160401b038111156116d857600080fd5b6116e485828601611697565b9250506116f48460208501611697565b90509250929050565b6001600160a01b038116811461171257600080fd5b50565b600080600080600060a0868803121561172d57600080fd5b8535611738816116fd565b94506020860135611748816116fd565b9350604086013592506060860135915060808601356001600160401b0381111561177157600080fd5b860160c0818903121561178357600080fd5b809150509295509295909350565b6000606082840312156116a957600080fd5b6000808284036101608112156117b857600080fd5b6117c28585611791565b9250610100605f19820112156117d757600080fd5b506060830190509250929050565b6000808284036101408112156117fa57600080fd5b83356001600160401b0381111561181057600080fd5b61181c86828701611697565b935050610120601f198201121561183257600080fd5b506020830190509250929050565b60008060c0838503121561185357600080fd5b61185d8484611791565b91506116f48460608501611791565b60006060828403121561187e57600080fd5b6111a18383611791565b60006020828403121561189a57600080fd5b81356001600160401b038111156118b057600080fd5b61151184828501611697565b6000823560be198336030181126118d257600080fd5b9190910192915050565b6000602082840312156118ee57600080fd5b81356111a1816116fd565b6004811061191757634e487b7160e01b600052602160045260246000fd5b9052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b801515811461171257600080fd5b803561195d81611944565b919050565b600081356004811061197357600080fd5b61197d84826118f9565b50602082013561198c816116fd565b6001600160a01b03166020840152604082013536839003601e190181126119b257600080fd5b82016020810190356001600160401b038111156119ce57600080fd5b8036038213156119dd57600080fd5b608060408601526119f260808601828461191b565b915050611a0160608401611952565b8015156060860152509392505050565b60008135611a1e816116fd565b6001600160a01b03908116845260208381013590850152604083013590611a44826116fd565b9081166040850152606083013590611a5b826116fd565b9081166060850152608083013590611a72826116fd565b16608084015260a082013536839003607e19018112611a9057600080fd5b60c060a085015261151160c08501848301611962565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061163f90830184611a11565b60008060408385031215611af357600080fd5b505080516020909101519092909150565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b600060208284031215611b3c57600080fd5b81356111a181611944565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b8557611b85611b47565b604052919050565b60006020808385031215611ba057600080fd5b82516001600160401b0380821115611bb757600080fd5b818501915085601f830112611bcb57600080fd5b815181811115611bdd57611bdd611b47565b8060051b9150611bee848301611b5d565b8181529183018401918481019088841115611c0857600080fd5b938501935b83851015611c2657845182529385019390850190611c0d565b98975050505050505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611c6590830184611a11565b9695505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b83811015611cab578181015183820152602001611c93565b50506000910152565b60008151808452611ccc816020860160208601611c90565b601f01601f19169290920160200192915050565b600060018060a01b038083511684526020830151602085015280604084015116604085015280606084015116606085015280608084015116608085015260a083015160c060a0860152611d3760c0860182516118f9565b8160208201511660e0860152604081015191506080610100860152611d60610140860183611cb4565b915060608101511515610120860152508091505092915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061163f90830184611ce0565b600080600060608486031215611dc957600080fd5b8351611dd4816116fd565b6020850151909350611de5816116fd565b6040850151909250611df6816116fd565b809150509250925092565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b6001600160a01b0386811682528516602082015260408101849052606081018390526101208101611c656080830184611e01565b6001600160a01b03868116825285166020820152604081018490526000610120611e926060840186611e01565b80610100840152611c2681840185611ce0565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680611ed557611ed5611ea5565b92169190910492915050565b600060208284031215611ef357600080fd5b5051919050565b600060a08284031215611f0c57600080fd5b60405160a081016001600160401b0381118282101715611f2e57611f2e611b47565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b8082028115828204841417611f8e57634e487b7160e01b600052601160045260246000fd5b92915050565b600082611fa357611fa3611ea5565b500490565b600082516118d2818460208701611c90565b600060208284031215611fcc57600080fd5b81516111a181611944565b6020815260006111a16020830184611cb456fe43eb84d5f21c53e2b7be07b8fc06cbbb55af094a111c91c7ddc6513fed4d0352a2646970667358221220b33c978afa5090f4eb5bfcc1b53ee7bfa9a9158b27751d6fd9ee28d08d19d45364736f6c63430008110033",
1029
- "deployedBytecode": "0x60806040526004361061007a5760003560e01c806332fe7b261461008657806365debe5f146100d0578063ad5c464814610110578063af0b533114610144578063b558229a1461016c578063b8a3339c1461018c578063c7f36371146101ac578063d64bccb3146101cc578063dcdcc4c2146101ec57600080fd5b3661008157005b600080fd5b34801561009257600080fd5b506100ba7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100c79190611683565b60405180910390f35b3480156100dc57600080fd5b506100f06100eb3660046116af565b61020c565b6040805194855260208501939093529183015260608201526080016100c7565b34801561011c57600080fd5b506100ba7f000000000000000000000000000000000000000000000000000000000000000081565b610157610152366004611715565b610253565b604080519283526020830191909152016100c7565b34801561017857600080fd5b506100f06101873660046117a3565b6103c5565b34801561019857600080fd5b506100f06101a73660046117e5565b6103f1565b3480156101b857600080fd5b506100f06101c7366004611840565b61042a565b3480156101d857600080fd5b506101576101e736600461186c565b610448565b3480156101f857600080fd5b50610157610207366004611888565b610662565b60008060008061021b86610662565b90925090506102458561023160608901896118bc565b61023f9060208101906118dc565b8461084b565b909790965091945092509050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661028d60208501856118dc565b6001600160a01b0316146102a057600080fd5b6102b060003385602001356109fd565b6102e060007f00000000000000000000000000000000000000000000000000000000000000008560200135610a6e565b604051636fde40a760e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063dfbc814e90610334908a908a908a908a908a90600401611aa6565b60408051808303816000875af1158015610352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103769190611ae0565b60405191935091506000906001600160a01b038816903390600080516020611feb833981519152906103b390839060208a01359089908990611b04565b60405180910390a49550959350505050565b6000806000806103d486610448565b90935091506103e38584610b34565b909793965091945090925050565b60008060008061040086610662565b90935091506103e38561041660608901896118bc565b6104249060208101906118dc565b85610cfb565b60008060008061043986610448565b90925090506102458583610e7d565b60008061046761045b60208501856118dc565b33308660200135611046565b61049d61047760208501856118dc565b7f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663178d29d3306104da60208701876118dc565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152602086013560448201526000606482015260840160408051808303816000875af1158015610537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055b9190611ae0565b90925090506105706060840160408501611b2a565b156105f65761058260208401846118dc565b6001600160a01b0316639262187b336040518263ffffffff1660e01b81526004016105ad9190611683565b6000604051808303816000875af11580156105cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105f49190810190611b8d565b505b3361060460208501856118dc565b6001600160a01b0316336001600160a01b03167fd31f02c44717b409d13b92ec9d2eaf1427fb4e63f85f4777f1458fb8d9387761866020013586604051610655929190918252602082015260400190565b60405180910390a4915091565b60008061067561045b60208501856118dc565b61068561047760208501856118dc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663690807ad306106c260208701876118dc565b60208701356106d460608901896118bc565b6040518563ffffffff1660e01b81526004016106f39493929190611c32565b60408051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190611ae0565b909250905061074a6060840160408501611b2a565b156107d05761075c60208401846118dc565b6001600160a01b0316639262187b336040518263ffffffff1660e01b81526004016107879190611683565b6000604051808303816000875af11580156107a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107ce9190810190611b8d565b505b6107dd60608401846118bc565b6107eb9060208101906118dc565b6001600160a01b031661080160208501856118dc565b6001600160a01b0316336001600160a01b03167f3fff08e8137afe866dce7ced13ddc12d684db61b80b0ac5cb9e54961c9dd8a213387602001358760405161065593929190611c6f565b6000806001600160a01b0384166108ab577f000000000000000000000000000000000000000000000000000000000000000093506108ab60007f000000000000000000000000000000000000000000000000000000000000000085610a6e565b6108d5847f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663dfbc814e3361091260208901896118dc565b886020013589604001356109398a8a8d606001602081019061093491906118dc565b61112b565b6040518663ffffffff1660e01b8152600401610959959493929190611d7a565b60408051808303816000875af1158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190611ae0565b90925090506001600160a01b0384166109b760208701876118dc565b6001600160a01b0316336001600160a01b0316600080516020611feb833981519152338787876040516109ed9493929190611b04565b60405180910390a4935093915050565b6001600160a01b038316610a5357803414610a4e5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064015b60405180910390fd5b505050565b8015610a4e57610a4e6001600160a01b0384168330846111a8565b6001600160a01b038316610ad557816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ab757600080fd5b505af1158015610acb573d6000803e3d6000fd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d90602401600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b50505050505050565b60008080610b4560208601866118dc565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba69190611db4565b50509050610bd4817f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663409c7a8933610c1160208901896118dc565b878960200135610c298b6060018c604001358c611202565b6040518663ffffffff1660e01b8152600401610c49959493929190611e31565b60408051808303816000875af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190611ae0565b909350915033610c9e60208701876118dc565b6001600160a01b0316336001600160a01b03167fb51950711c9b21dc7888d41f68a19540231ffb5f0d19d8f75cbccaf90ffa7fa58787604051610ceb929190918252602082015260400190565b60405180910390a4509250929050565b600080806001600160a01b038516610d105750825b610d3a857f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663015491d18233610d7860208b018b6118dc565b8a60200135610d8f8c6060018d604001358c611202565b610da88c8c8f61010001602081019061093491906118dc565b6040518763ffffffff1660e01b8152600401610dc8959493929190611e65565b604080518083038185885af1158015610de5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e0a9190611ae0565b90935091506001600160a01b038516610e2660208801886118dc565b6001600160a01b0316336001600160a01b03167ff83776e5b667a2b471f92ddfd482749c61b5328b832d375097638c2c08818f3b338888604051610e6c93929190611c6f565b60405180910390a450935093915050565b60008080610e8e60208601866118dc565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eef9190611db4565b50509050610f1d817f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663844384aa33610f5a60208901896118dc565b604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820188905260208901356064830152880135608482015260a40160408051808303816000875af1158015610fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe69190611ae0565b909350915033610ff960208701876118dc565b60408051878152602081018790529081018590526001600160a01b03919091169033907fc8437d84f52d1e20cc82487e336feadb2d39ede00af7711b6a58abf39392328f90606001610ceb565b8015611061576110616001600160a01b0385168484846111a8565b50505050565b6001600160a01b038216611079575050565b61108b60026001600160601b03611ebb565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190611ee1565b10156111275761111a82826000611326565b6111278282600019611326565b5050565b61117e6040805160c081018252600080825260208083018290528284018290526060808401839052608080850184905285519081018652838152918201839052938101849052928301529060a082015290565b6001600160a01b0380851660408301819052825260208201849052821660608201525b9392505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611061908590611430565b6112346040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83604001356000036112a657833515801561125457506000198460200135145b6112905760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420677565737360981b6044820152606401610a45565b61129f36859003850185611efa565b90506111a1565b6040805160a0810190915280846112be858835611f69565b6112c89190611f94565b8152602001848487602001356112de9190611f69565b6112e89190611f94565b8152602001846112fc856040890135611f69565b6113069190611f94565b815260200185606001358152602001856080013581525090509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916113829190611fa8565b6000604051808303816000865af19150503d80600081146113bf576040519150601f19603f3d011682016040523d82523d6000602084013e6113c4565b606091505b50915091508180156113ee5750805115806113ee5750808060200190518101906113ee9190611fba565b6114295760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610a45565b5050505050565b6000611485826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115029092919063ffffffff16565b805190915015610a4e57808060200190518101906114a39190611fba565b610a4e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a45565b60606115118484600085611519565b949350505050565b60608247101561157a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a45565b6001600160a01b0385163b6115d15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a45565b600080866001600160a01b031685876040516115ed9190611fa8565b60006040518083038185875af1925050503d806000811461162a576040519150601f19603f3d011682016040523d82523d6000602084013e61162f565b606091505b509150915061163f82828661164a565b979650505050505050565b606083156116595750816111a1565b8251156116695782518084602001fd5b8160405162461bcd60e51b8152600401610a459190611fd7565b6001600160a01b0391909116815260200190565b6000608082840312156116a957600080fd5b50919050565b60008060a083850312156116c257600080fd5b82356001600160401b038111156116d857600080fd5b6116e485828601611697565b9250506116f48460208501611697565b90509250929050565b6001600160a01b038116811461171257600080fd5b50565b600080600080600060a0868803121561172d57600080fd5b8535611738816116fd565b94506020860135611748816116fd565b9350604086013592506060860135915060808601356001600160401b0381111561177157600080fd5b860160c0818903121561178357600080fd5b809150509295509295909350565b6000606082840312156116a957600080fd5b6000808284036101608112156117b857600080fd5b6117c28585611791565b9250610100605f19820112156117d757600080fd5b506060830190509250929050565b6000808284036101408112156117fa57600080fd5b83356001600160401b0381111561181057600080fd5b61181c86828701611697565b935050610120601f198201121561183257600080fd5b506020830190509250929050565b60008060c0838503121561185357600080fd5b61185d8484611791565b91506116f48460608501611791565b60006060828403121561187e57600080fd5b6111a18383611791565b60006020828403121561189a57600080fd5b81356001600160401b038111156118b057600080fd5b61151184828501611697565b6000823560be198336030181126118d257600080fd5b9190910192915050565b6000602082840312156118ee57600080fd5b81356111a1816116fd565b6004811061191757634e487b7160e01b600052602160045260246000fd5b9052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b801515811461171257600080fd5b803561195d81611944565b919050565b600081356004811061197357600080fd5b61197d84826118f9565b50602082013561198c816116fd565b6001600160a01b03166020840152604082013536839003601e190181126119b257600080fd5b82016020810190356001600160401b038111156119ce57600080fd5b8036038213156119dd57600080fd5b608060408601526119f260808601828461191b565b915050611a0160608401611952565b8015156060860152509392505050565b60008135611a1e816116fd565b6001600160a01b03908116845260208381013590850152604083013590611a44826116fd565b9081166040850152606083013590611a5b826116fd565b9081166060850152608083013590611a72826116fd565b16608084015260a082013536839003607e19018112611a9057600080fd5b60c060a085015261151160c08501848301611962565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061163f90830184611a11565b60008060408385031215611af357600080fd5b505080516020909101519092909150565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b600060208284031215611b3c57600080fd5b81356111a181611944565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b8557611b85611b47565b604052919050565b60006020808385031215611ba057600080fd5b82516001600160401b0380821115611bb757600080fd5b818501915085601f830112611bcb57600080fd5b815181811115611bdd57611bdd611b47565b8060051b9150611bee848301611b5d565b8181529183018401918481019088841115611c0857600080fd5b938501935b83851015611c2657845182529385019390850190611c0d565b98975050505050505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611c6590830184611a11565b9695505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b83811015611cab578181015183820152602001611c93565b50506000910152565b60008151808452611ccc816020860160208601611c90565b601f01601f19169290920160200192915050565b600060018060a01b038083511684526020830151602085015280604084015116604085015280606084015116606085015280608084015116608085015260a083015160c060a0860152611d3760c0860182516118f9565b8160208201511660e0860152604081015191506080610100860152611d60610140860183611cb4565b915060608101511515610120860152508091505092915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061163f90830184611ce0565b600080600060608486031215611dc957600080fd5b8351611dd4816116fd565b6020850151909350611de5816116fd565b6040850151909250611df6816116fd565b809150509250925092565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b6001600160a01b0386811682528516602082015260408101849052606081018390526101208101611c656080830184611e01565b6001600160a01b03868116825285166020820152604081018490526000610120611e926060840186611e01565b80610100840152611c2681840185611ce0565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680611ed557611ed5611ea5565b92169190910492915050565b600060208284031215611ef357600080fd5b5051919050565b600060a08284031215611f0c57600080fd5b60405160a081016001600160401b0381118282101715611f2e57611f2e611b47565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b8082028115828204841417611f8e57634e487b7160e01b600052601160045260246000fd5b92915050565b600082611fa357611fa3611ea5565b500490565b600082516118d2818460208701611c90565b600060208284031215611fcc57600080fd5b81516111a181611944565b6020815260006111a16020830184611cb456fe43eb84d5f21c53e2b7be07b8fc06cbbb55af094a111c91c7ddc6513fed4d0352a2646970667358221220b33c978afa5090f4eb5bfcc1b53ee7bfa9a9158b27751d6fd9ee28d08d19d45364736f6c63430008110033",
1028
+ "bytecode": "0x60c06040523480156200001157600080fd5b50604051620024c0380380620024c08339810160408190526200003491620002e8565b6001600160a01b0382166080526200004e81600162000073565b6001600160a01b031660a08190526080516200006b9190620000e9565b5050620003eb565b604051634a83e9cd60e11b8152600481018290526000906001600160a01b03841690639507d39a90602401602060405180830381865afa158015620000bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e2919062000327565b9392505050565b6001600160a01b038216620000fc575050565b6200011060026001600160601b0362000347565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019091906200037c565b1015620001b457620001a582826000620001b8565b620001b48282600019620001b8565b5050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915160009283929087169162000216919062000396565b6000604051808303816000865af19150503d806000811462000255576040519150601f19603f3d011682016040523d82523d6000602084013e6200025a565b606091505b50915091508180156200028857508051158062000288575080806020019051810190620002889190620003c7565b620002c85760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640160405180910390fd5b5050505050565b6001600160a01b0381168114620002e557600080fd5b50565b60008060408385031215620002fc57600080fd5b82516200030981620002cf565b60208401519092506200031c81620002cf565b809150509250929050565b6000602082840312156200033a57600080fd5b8151620000e281620002cf565b60006001600160601b03838116806200037057634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6000602082840312156200038f57600080fd5b5051919050565b6000825160005b81811015620003b957602081860181015185830152016200039d565b506000920191825250919050565b600060208284031215620003da57600080fd5b81518015158114620000e257600080fd5b60805160a051612040620004806000396000818161012201528181610260015281816102b70152818161085e01526108860152600081816098015281816102f701528181610479015281816104a70152818161068f015281816108b1015281816108df01528181610bb001528181610bde01528181610d1601528181610d4401528181610ef90152610f2701526120406000f3fe60806040526004361061007a5760003560e01c806332fe7b261461008657806365debe5f146100d0578063ad5c464814610110578063af0b533114610144578063b558229a1461016c578063b8a3339c1461018c578063c7f36371146101ac578063d64bccb3146101cc578063dcdcc4c2146101ec57600080fd5b3661008157005b600080fd5b34801561009257600080fd5b506100ba7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100c79190611683565b60405180910390f35b3480156100dc57600080fd5b506100f06100eb3660046116af565b61020c565b6040805194855260208501939093529183015260608201526080016100c7565b34801561011c57600080fd5b506100ba7f000000000000000000000000000000000000000000000000000000000000000081565b610157610152366004611715565b610253565b604080519283526020830191909152016100c7565b34801561017857600080fd5b506100f06101873660046117a3565b6103c5565b34801561019857600080fd5b506100f06101a73660046117e5565b6103f1565b3480156101b857600080fd5b506100f06101c7366004611840565b61042a565b3480156101d857600080fd5b506101576101e736600461186c565b610448565b3480156101f857600080fd5b50610157610207366004611888565b610662565b60008060008061021b86610662565b90925090506102458561023160608901896118bc565b61023f9060208101906118dc565b8461084b565b909790965091945092509050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661028d60208501856118dc565b6001600160a01b0316146102a057600080fd5b6102b060003385602001356109fd565b6102e060007f00000000000000000000000000000000000000000000000000000000000000008560200135610a6e565b604051636fde40a760e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063dfbc814e90610334908a908a908a908a908a90600401611aa6565b60408051808303816000875af1158015610352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103769190611ae0565b60405191935091506000906001600160a01b038816903390600080516020611feb833981519152906103b390839060208a01359089908990611b04565b60405180910390a49550959350505050565b6000806000806103d486610448565b90935091506103e38584610b34565b909793965091945090925050565b60008060008061040086610662565b90935091506103e38561041660608901896118bc565b6104249060208101906118dc565b85610cfb565b60008060008061043986610448565b90925090506102458583610e7d565b60008061046761045b60208501856118dc565b33308660200135611046565b61049d61047760208501856118dc565b7f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663178d29d3306104da60208701876118dc565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152602086013560448201526000606482015260840160408051808303816000875af1158015610537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055b9190611ae0565b90925090506105706060840160408501611b2a565b156105f65761058260208401846118dc565b6001600160a01b0316639262187b336040518263ffffffff1660e01b81526004016105ad9190611683565b6000604051808303816000875af11580156105cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105f49190810190611b8d565b505b3361060460208501856118dc565b6001600160a01b0316336001600160a01b03167fd31f02c44717b409d13b92ec9d2eaf1427fb4e63f85f4777f1458fb8d9387761866020013586604051610655929190918252602082015260400190565b60405180910390a4915091565b60008061067561045b60208501856118dc565b61068561047760208501856118dc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663690807ad306106c260208701876118dc565b60208701356106d460608901896118bc565b6040518563ffffffff1660e01b81526004016106f39493929190611c32565b60408051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190611ae0565b909250905061074a6060840160408501611b2a565b156107d05761075c60208401846118dc565b6001600160a01b0316639262187b336040518263ffffffff1660e01b81526004016107879190611683565b6000604051808303816000875af11580156107a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107ce9190810190611b8d565b505b6107dd60608401846118bc565b6107eb9060208101906118dc565b6001600160a01b031661080160208501856118dc565b6001600160a01b0316336001600160a01b03167f3fff08e8137afe866dce7ced13ddc12d684db61b80b0ac5cb9e54961c9dd8a213387602001358760405161065593929190611c6f565b6000806001600160a01b0384166108ab577f000000000000000000000000000000000000000000000000000000000000000093506108ab60007f000000000000000000000000000000000000000000000000000000000000000085610a6e565b6108d5847f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663dfbc814e3361091260208901896118dc565b886020013589604001356109398a8a8d606001602081019061093491906118dc565b61112b565b6040518663ffffffff1660e01b8152600401610959959493929190611d7a565b60408051808303816000875af1158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190611ae0565b90925090506001600160a01b0384166109b760208701876118dc565b6001600160a01b0316336001600160a01b0316600080516020611feb833981519152338787876040516109ed9493929190611b04565b60405180910390a4935093915050565b6001600160a01b038316610a5357803414610a4e5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064015b60405180910390fd5b505050565b8015610a4e57610a4e6001600160a01b0384168330846111a8565b6001600160a01b038316610ad557816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ab757600080fd5b505af1158015610acb573d6000803e3d6000fd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d90602401600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b50505050505050565b60008080610b4560208601866118dc565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba69190611db4565b50509050610bd4817f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663409c7a8933610c1160208901896118dc565b878960200135610c298b6060018c604001358c611202565b6040518663ffffffff1660e01b8152600401610c49959493929190611e31565b60408051808303816000875af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190611ae0565b909350915033610c9e60208701876118dc565b6001600160a01b0316336001600160a01b03167fb51950711c9b21dc7888d41f68a19540231ffb5f0d19d8f75cbccaf90ffa7fa58787604051610ceb929190918252602082015260400190565b60405180910390a4509250929050565b600080806001600160a01b038516610d105750825b610d3a857f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663015491d18233610d7860208b018b6118dc565b8a60200135610d8f8c6060018d604001358c611202565b610da88c8c8f61010001602081019061093491906118dc565b6040518763ffffffff1660e01b8152600401610dc8959493929190611e65565b604080518083038185885af1158015610de5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e0a9190611ae0565b90935091506001600160a01b038516610e2660208801886118dc565b6001600160a01b0316336001600160a01b03167ff83776e5b667a2b471f92ddfd482749c61b5328b832d375097638c2c08818f3b338888604051610e6c93929190611c6f565b60405180910390a450935093915050565b60008080610e8e60208601866118dc565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eef9190611db4565b50509050610f1d817f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663844384aa33610f5a60208901896118dc565b604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820188905260208901356064830152880135608482015260a40160408051808303816000875af1158015610fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe69190611ae0565b909350915033610ff960208701876118dc565b60408051878152602081018790529081018590526001600160a01b03919091169033907fc8437d84f52d1e20cc82487e336feadb2d39ede00af7711b6a58abf39392328f90606001610ceb565b8015611061576110616001600160a01b0385168484846111a8565b50505050565b6001600160a01b038216611079575050565b61108b60026001600160601b03611ebb565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190611ee1565b10156111275761111a82826000611326565b6111278282600019611326565b5050565b61117e6040805160c081018252600080825260208083018290528284018290526060808401839052608080850184905285519081018652838152918201839052938101849052928301529060a082015290565b6001600160a01b0380851660408301819052825260208201849052821660608201525b9392505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611061908590611430565b6112346040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83604001356000036112a657833515801561125457506000198460200135145b6112905760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420677565737360981b6044820152606401610a45565b61129f36859003850185611efa565b90506111a1565b6040805160a0810190915280846112be858835611f69565b6112c89190611f94565b8152602001848487602001356112de9190611f69565b6112e89190611f94565b8152602001846112fc856040890135611f69565b6113069190611f94565b815260200185606001358152602001856080013581525090509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916113829190611fa8565b6000604051808303816000865af19150503d80600081146113bf576040519150601f19603f3d011682016040523d82523d6000602084013e6113c4565b606091505b50915091508180156113ee5750805115806113ee5750808060200190518101906113ee9190611fba565b6114295760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610a45565b5050505050565b6000611485826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115029092919063ffffffff16565b805190915015610a4e57808060200190518101906114a39190611fba565b610a4e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a45565b60606115118484600085611519565b949350505050565b60608247101561157a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a45565b6001600160a01b0385163b6115d15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a45565b600080866001600160a01b031685876040516115ed9190611fa8565b60006040518083038185875af1925050503d806000811461162a576040519150601f19603f3d011682016040523d82523d6000602084013e61162f565b606091505b509150915061163f82828661164a565b979650505050505050565b606083156116595750816111a1565b8251156116695782518084602001fd5b8160405162461bcd60e51b8152600401610a459190611fd7565b6001600160a01b0391909116815260200190565b6000608082840312156116a957600080fd5b50919050565b60008060a083850312156116c257600080fd5b82356001600160401b038111156116d857600080fd5b6116e485828601611697565b9250506116f48460208501611697565b90509250929050565b6001600160a01b038116811461171257600080fd5b50565b600080600080600060a0868803121561172d57600080fd5b8535611738816116fd565b94506020860135611748816116fd565b9350604086013592506060860135915060808601356001600160401b0381111561177157600080fd5b860160c0818903121561178357600080fd5b809150509295509295909350565b6000606082840312156116a957600080fd5b6000808284036101608112156117b857600080fd5b6117c28585611791565b9250610100605f19820112156117d757600080fd5b506060830190509250929050565b6000808284036101408112156117fa57600080fd5b83356001600160401b0381111561181057600080fd5b61181c86828701611697565b935050610120601f198201121561183257600080fd5b506020830190509250929050565b60008060c0838503121561185357600080fd5b61185d8484611791565b91506116f48460608501611791565b60006060828403121561187e57600080fd5b6111a18383611791565b60006020828403121561189a57600080fd5b81356001600160401b038111156118b057600080fd5b61151184828501611697565b6000823560be198336030181126118d257600080fd5b9190910192915050565b6000602082840312156118ee57600080fd5b81356111a1816116fd565b6004811061191757634e487b7160e01b600052602160045260246000fd5b9052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b801515811461171257600080fd5b803561195d81611944565b919050565b600081356004811061197357600080fd5b61197d84826118f9565b50602082013561198c816116fd565b6001600160a01b03166020840152604082013536839003601e190181126119b257600080fd5b82016020810190356001600160401b038111156119ce57600080fd5b8036038213156119dd57600080fd5b608060408601526119f260808601828461191b565b915050611a0160608401611952565b8015156060860152509392505050565b60008135611a1e816116fd565b6001600160a01b03908116845260208381013590850152604083013590611a44826116fd565b9081166040850152606083013590611a5b826116fd565b9081166060850152608083013590611a72826116fd565b16608084015260a082013536839003607e19018112611a9057600080fd5b60c060a085015261151160c08501848301611962565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061163f90830184611a11565b60008060408385031215611af357600080fd5b505080516020909101519092909150565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b600060208284031215611b3c57600080fd5b81356111a181611944565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b8557611b85611b47565b604052919050565b60006020808385031215611ba057600080fd5b82516001600160401b0380821115611bb757600080fd5b818501915085601f830112611bcb57600080fd5b815181811115611bdd57611bdd611b47565b8060051b9150611bee848301611b5d565b8181529183018401918481019088841115611c0857600080fd5b938501935b83851015611c2657845182529385019390850190611c0d565b98975050505050505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611c6590830184611a11565b9695505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b83811015611cab578181015183820152602001611c93565b50506000910152565b60008151808452611ccc816020860160208601611c90565b601f01601f19169290920160200192915050565b600060018060a01b038083511684526020830151602085015280604084015116604085015280606084015116606085015280608084015116608085015260a083015160c060a0860152611d3760c0860182516118f9565b8160208201511660e0860152604081015191506080610100860152611d60610140860183611cb4565b915060608101511515610120860152508091505092915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061163f90830184611ce0565b600080600060608486031215611dc957600080fd5b8351611dd4816116fd565b6020850151909350611de5816116fd565b6040850151909250611df6816116fd565b809150509250925092565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b6001600160a01b0386811682528516602082015260408101849052606081018390526101208101611c656080830184611e01565b6001600160a01b03868116825285166020820152604081018490526000610120611e926060840186611e01565b80610100840152611c2681840185611ce0565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680611ed557611ed5611ea5565b92169190910492915050565b600060208284031215611ef357600080fd5b5051919050565b600060a08284031215611f0c57600080fd5b60405160a081016001600160401b0381118282101715611f2e57611f2e611b47565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b8082028115828204841417611f8e57634e487b7160e01b600052601160045260246000fd5b92915050565b600082611fa357611fa3611ea5565b500490565b600082516118d2818460208701611c90565b600060208284031215611fcc57600080fd5b81516111a181611944565b6020815260006111a16020830184611cb456fe43eb84d5f21c53e2b7be07b8fc06cbbb55af094a111c91c7ddc6513fed4d0352a264697066735822122001dcc40fe76be0624192c37abbf0749296c4d9c78b015adb588c55319a8d431064736f6c63430008110033",
1029
+ "deployedBytecode": "0x60806040526004361061007a5760003560e01c806332fe7b261461008657806365debe5f146100d0578063ad5c464814610110578063af0b533114610144578063b558229a1461016c578063b8a3339c1461018c578063c7f36371146101ac578063d64bccb3146101cc578063dcdcc4c2146101ec57600080fd5b3661008157005b600080fd5b34801561009257600080fd5b506100ba7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100c79190611683565b60405180910390f35b3480156100dc57600080fd5b506100f06100eb3660046116af565b61020c565b6040805194855260208501939093529183015260608201526080016100c7565b34801561011c57600080fd5b506100ba7f000000000000000000000000000000000000000000000000000000000000000081565b610157610152366004611715565b610253565b604080519283526020830191909152016100c7565b34801561017857600080fd5b506100f06101873660046117a3565b6103c5565b34801561019857600080fd5b506100f06101a73660046117e5565b6103f1565b3480156101b857600080fd5b506100f06101c7366004611840565b61042a565b3480156101d857600080fd5b506101576101e736600461186c565b610448565b3480156101f857600080fd5b50610157610207366004611888565b610662565b60008060008061021b86610662565b90925090506102458561023160608901896118bc565b61023f9060208101906118dc565b8461084b565b909790965091945092509050565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661028d60208501856118dc565b6001600160a01b0316146102a057600080fd5b6102b060003385602001356109fd565b6102e060007f00000000000000000000000000000000000000000000000000000000000000008560200135610a6e565b604051636fde40a760e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063dfbc814e90610334908a908a908a908a908a90600401611aa6565b60408051808303816000875af1158015610352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103769190611ae0565b60405191935091506000906001600160a01b038816903390600080516020611feb833981519152906103b390839060208a01359089908990611b04565b60405180910390a49550959350505050565b6000806000806103d486610448565b90935091506103e38584610b34565b909793965091945090925050565b60008060008061040086610662565b90935091506103e38561041660608901896118bc565b6104249060208101906118dc565b85610cfb565b60008060008061043986610448565b90925090506102458583610e7d565b60008061046761045b60208501856118dc565b33308660200135611046565b61049d61047760208501856118dc565b7f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663178d29d3306104da60208701876118dc565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152602086013560448201526000606482015260840160408051808303816000875af1158015610537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055b9190611ae0565b90925090506105706060840160408501611b2a565b156105f65761058260208401846118dc565b6001600160a01b0316639262187b336040518263ffffffff1660e01b81526004016105ad9190611683565b6000604051808303816000875af11580156105cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105f49190810190611b8d565b505b3361060460208501856118dc565b6001600160a01b0316336001600160a01b03167fd31f02c44717b409d13b92ec9d2eaf1427fb4e63f85f4777f1458fb8d9387761866020013586604051610655929190918252602082015260400190565b60405180910390a4915091565b60008061067561045b60208501856118dc565b61068561047760208501856118dc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663690807ad306106c260208701876118dc565b60208701356106d460608901896118bc565b6040518563ffffffff1660e01b81526004016106f39493929190611c32565b60408051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190611ae0565b909250905061074a6060840160408501611b2a565b156107d05761075c60208401846118dc565b6001600160a01b0316639262187b336040518263ffffffff1660e01b81526004016107879190611683565b6000604051808303816000875af11580156107a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107ce9190810190611b8d565b505b6107dd60608401846118bc565b6107eb9060208101906118dc565b6001600160a01b031661080160208501856118dc565b6001600160a01b0316336001600160a01b03167f3fff08e8137afe866dce7ced13ddc12d684db61b80b0ac5cb9e54961c9dd8a213387602001358760405161065593929190611c6f565b6000806001600160a01b0384166108ab577f000000000000000000000000000000000000000000000000000000000000000093506108ab60007f000000000000000000000000000000000000000000000000000000000000000085610a6e565b6108d5847f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663dfbc814e3361091260208901896118dc565b886020013589604001356109398a8a8d606001602081019061093491906118dc565b61112b565b6040518663ffffffff1660e01b8152600401610959959493929190611d7a565b60408051808303816000875af1158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190611ae0565b90925090506001600160a01b0384166109b760208701876118dc565b6001600160a01b0316336001600160a01b0316600080516020611feb833981519152338787876040516109ed9493929190611b04565b60405180910390a4935093915050565b6001600160a01b038316610a5357803414610a4e5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b60448201526064015b60405180910390fd5b505050565b8015610a4e57610a4e6001600160a01b0384168330846111a8565b6001600160a01b038316610ad557816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ab757600080fd5b505af1158015610acb573d6000803e3d6000fd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d90602401600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b50505050505050565b60008080610b4560208601866118dc565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba69190611db4565b50509050610bd4817f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663409c7a8933610c1160208901896118dc565b878960200135610c298b6060018c604001358c611202565b6040518663ffffffff1660e01b8152600401610c49959493929190611e31565b60408051808303816000875af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190611ae0565b909350915033610c9e60208701876118dc565b6001600160a01b0316336001600160a01b03167fb51950711c9b21dc7888d41f68a19540231ffb5f0d19d8f75cbccaf90ffa7fa58787604051610ceb929190918252602082015260400190565b60405180910390a4509250929050565b600080806001600160a01b038516610d105750825b610d3a857f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663015491d18233610d7860208b018b6118dc565b8a60200135610d8f8c6060018d604001358c611202565b610da88c8c8f61010001602081019061093491906118dc565b6040518763ffffffff1660e01b8152600401610dc8959493929190611e65565b604080518083038185885af1158015610de5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e0a9190611ae0565b90935091506001600160a01b038516610e2660208801886118dc565b6001600160a01b0316336001600160a01b03167ff83776e5b667a2b471f92ddfd482749c61b5328b832d375097638c2c08818f3b338888604051610e6c93929190611c6f565b60405180910390a450935093915050565b60008080610e8e60208601866118dc565b6001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eef9190611db4565b50509050610f1d817f0000000000000000000000000000000000000000000000000000000000000000611067565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663844384aa33610f5a60208901896118dc565b604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820188905260208901356064830152880135608482015260a40160408051808303816000875af1158015610fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe69190611ae0565b909350915033610ff960208701876118dc565b60408051878152602081018790529081018590526001600160a01b03919091169033907fc8437d84f52d1e20cc82487e336feadb2d39ede00af7711b6a58abf39392328f90606001610ceb565b8015611061576110616001600160a01b0385168484846111a8565b50505050565b6001600160a01b038216611079575050565b61108b60026001600160601b03611ebb565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190611ee1565b10156111275761111a82826000611326565b6111278282600019611326565b5050565b61117e6040805160c081018252600080825260208083018290528284018290526060808401839052608080850184905285519081018652838152918201839052938101849052928301529060a082015290565b6001600160a01b0380851660408301819052825260208201849052821660608201525b9392505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611061908590611430565b6112346040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b83604001356000036112a657833515801561125457506000198460200135145b6112905760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420677565737360981b6044820152606401610a45565b61129f36859003850185611efa565b90506111a1565b6040805160a0810190915280846112be858835611f69565b6112c89190611f94565b8152602001848487602001356112de9190611f69565b6112e89190611f94565b8152602001846112fc856040890135611f69565b6113069190611f94565b815260200185606001358152602001856080013581525090509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916113829190611fa8565b6000604051808303816000865af19150503d80600081146113bf576040519150601f19603f3d011682016040523d82523d6000602084013e6113c4565b606091505b50915091508180156113ee5750805115806113ee5750808060200190518101906113ee9190611fba565b6114295760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610a45565b5050505050565b6000611485826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115029092919063ffffffff16565b805190915015610a4e57808060200190518101906114a39190611fba565b610a4e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a45565b60606115118484600085611519565b949350505050565b60608247101561157a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a45565b6001600160a01b0385163b6115d15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a45565b600080866001600160a01b031685876040516115ed9190611fa8565b60006040518083038185875af1925050503d806000811461162a576040519150601f19603f3d011682016040523d82523d6000602084013e61162f565b606091505b509150915061163f82828661164a565b979650505050505050565b606083156116595750816111a1565b8251156116695782518084602001fd5b8160405162461bcd60e51b8152600401610a459190611fd7565b6001600160a01b0391909116815260200190565b6000608082840312156116a957600080fd5b50919050565b60008060a083850312156116c257600080fd5b82356001600160401b038111156116d857600080fd5b6116e485828601611697565b9250506116f48460208501611697565b90509250929050565b6001600160a01b038116811461171257600080fd5b50565b600080600080600060a0868803121561172d57600080fd5b8535611738816116fd565b94506020860135611748816116fd565b9350604086013592506060860135915060808601356001600160401b0381111561177157600080fd5b860160c0818903121561178357600080fd5b809150509295509295909350565b6000606082840312156116a957600080fd5b6000808284036101608112156117b857600080fd5b6117c28585611791565b9250610100605f19820112156117d757600080fd5b506060830190509250929050565b6000808284036101408112156117fa57600080fd5b83356001600160401b0381111561181057600080fd5b61181c86828701611697565b935050610120601f198201121561183257600080fd5b506020830190509250929050565b60008060c0838503121561185357600080fd5b61185d8484611791565b91506116f48460608501611791565b60006060828403121561187e57600080fd5b6111a18383611791565b60006020828403121561189a57600080fd5b81356001600160401b038111156118b057600080fd5b61151184828501611697565b6000823560be198336030181126118d257600080fd5b9190910192915050565b6000602082840312156118ee57600080fd5b81356111a1816116fd565b6004811061191757634e487b7160e01b600052602160045260246000fd5b9052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b801515811461171257600080fd5b803561195d81611944565b919050565b600081356004811061197357600080fd5b61197d84826118f9565b50602082013561198c816116fd565b6001600160a01b03166020840152604082013536839003601e190181126119b257600080fd5b82016020810190356001600160401b038111156119ce57600080fd5b8036038213156119dd57600080fd5b608060408601526119f260808601828461191b565b915050611a0160608401611952565b8015156060860152509392505050565b60008135611a1e816116fd565b6001600160a01b03908116845260208381013590850152604083013590611a44826116fd565b9081166040850152606083013590611a5b826116fd565b9081166060850152608083013590611a72826116fd565b16608084015260a082013536839003607e19018112611a9057600080fd5b60c060a085015261151160c08501848301611962565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061163f90830184611a11565b60008060408385031215611af357600080fd5b505080516020909101519092909150565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b600060208284031215611b3c57600080fd5b81356111a181611944565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b8557611b85611b47565b604052919050565b60006020808385031215611ba057600080fd5b82516001600160401b0380821115611bb757600080fd5b818501915085601f830112611bcb57600080fd5b815181811115611bdd57611bdd611b47565b8060051b9150611bee848301611b5d565b8181529183018401918481019088841115611c0857600080fd5b938501935b83851015611c2657845182529385019390850190611c0d565b98975050505050505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611c6590830184611a11565b9695505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b83811015611cab578181015183820152602001611c93565b50506000910152565b60008151808452611ccc816020860160208601611c90565b601f01601f19169290920160200192915050565b600060018060a01b038083511684526020830151602085015280604084015116604085015280606084015116606085015280608084015116608085015260a083015160c060a0860152611d3760c0860182516118f9565b8160208201511660e0860152604081015191506080610100860152611d60610140860183611cb4565b915060608101511515610120860152508091505092915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061163f90830184611ce0565b600080600060608486031215611dc957600080fd5b8351611dd4816116fd565b6020850151909350611de5816116fd565b6040850151909250611df6816116fd565b809150509250925092565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b6001600160a01b0386811682528516602082015260408101849052606081018390526101208101611c656080830184611e01565b6001600160a01b03868116825285166020820152604081018490526000610120611e926060840186611e01565b80610100840152611c2681840185611ce0565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b0383811680611ed557611ed5611ea5565b92169190910492915050565b600060208284031215611ef357600080fd5b5051919050565b600060a08284031215611f0c57600080fd5b60405160a081016001600160401b0381118282101715611f2e57611f2e611b47565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b8082028115828204841417611f8e57634e487b7160e01b600052601160045260246000fd5b92915050565b600082611fa357611fa3611ea5565b500490565b600082516118d2818460208701611c90565b600060208284031215611fcc57600080fd5b81516111a181611944565b6020815260006111a16020830184611cb456fe43eb84d5f21c53e2b7be07b8fc06cbbb55af094a111c91c7ddc6513fed4d0352a264697066735822122001dcc40fe76be0624192c37abbf0749296c4d9c78b015adb588c55319a8d431064736f6c63430008110033",
1030
1030
  "linkReferences": {},
1031
1031
  "deployedLinkReferences": {}
1032
1032
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../build-info/8d793b8d572bfc7c163e73559cd4ad23.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../build-info/8d793b8d572bfc7c163e73559cd4ad23.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../build-info/c241f2a04c60db6b1c0a20698e80fcbd.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../build-info/8d793b8d572bfc7c163e73559cd4ad23.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtInLib",
4
4
  "sourceName": "contracts/router/base/MarketApproxLib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a7aaf7fec42f8d6702a0d35c7cea3e5dc139baa7e77a324c2830fbd4f00bb2fd64736f6c63430008110033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a7aaf7fec42f8d6702a0d35c7cea3e5dc139baa7e77a324c2830fbd4f00bb2fd64736f6c63430008110033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d9c9f3307a2b93694a607478da8e1c814560f2a142958505f9ef0375f01a781764736f6c63430008110033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d9c9f3307a2b93694a607478da8e1c814560f2a142958505f9ef0375f01a781764736f6c63430008110033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../build-info/8d793b8d572bfc7c163e73559cd4ad23.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtOutLib",
4
4
  "sourceName": "contracts/router/base/MarketApproxLib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f3d7c3fb46505ed25b542653151682a6b78f8e7a959cfd27013d08ede3d10ff64736f6c63430008110033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f3d7c3fb46505ed25b542653151682a6b78f8e7a959cfd27013d08ede3d10ff64736f6c63430008110033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ee432d301e62898c967b50ec81328ef080a36afe72d1d4ab57afefe9a9a23ca364736f6c63430008110033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ee432d301e62898c967b50ec81328ef080a36afe72d1d4ab57afefe9a9a23ca364736f6c63430008110033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../build-info/c241f2a04c60db6b1c0a20698e80fcbd.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../build-info/c241f2a04c60db6b1c0a20698e80fcbd.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../build-info/c241f2a04c60db6b1c0a20698e80fcbd.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../../build-info/f6093fa8726df7ffaf1a3d9e9330894a.json"
3
+ "buildInfo": "../../../../../../build-info/9185209af761a5bdb8b0d916c080079d.json"
4
4
  }
@@ -12,7 +12,7 @@
12
12
  // You should have received a copy of the GNU General Public License
13
13
  // along with this program. If not, see <http://www.gnu.org/licenses/>.
14
14
 
15
- pragma solidity 0.8.17;
15
+ pragma solidity ^0.8.17;
16
16
 
17
17
  /* solhint-disable private-vars-leading-underscore, reason-string */
18
18
 
@@ -0,0 +1,43 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../core/Market/MarketMathCore.sol";
5
+ import "../interfaces/IPMarket.sol";
6
+
7
+ library MarketExchangeRateLib {
8
+ using Math for int256;
9
+ using MarketMathCore for MarketState;
10
+ using MarketMathCore for MarketPreCompute;
11
+
12
+ function getMarketExchangeRate(address market) internal view returns (uint256) {
13
+ MarketState memory state = IPMarket(market).readState(address(0));
14
+ MarketPreCompute memory comp = state.getMarketPreCompute(
15
+ _getPYIndexCurrent(market),
16
+ block.timestamp
17
+ );
18
+
19
+ return
20
+ MarketMathCore
21
+ ._getExchangeRate(
22
+ state.totalPt,
23
+ comp.totalAsset,
24
+ comp.rateScalar,
25
+ comp.rateAnchor,
26
+ 0
27
+ )
28
+ .Uint();
29
+ }
30
+
31
+ function _getPYIndexCurrent(address market) private view returns (PYIndex) {
32
+ (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
33
+ uint256 ytIndex = YT.pyIndexStored();
34
+ uint256 pyIndexCurrent;
35
+ if (YT.doCacheIndexSameBlock() && YT.pyIndexLastUpdatedBlock() == block.number) {
36
+ pyIndexCurrent = ytIndex;
37
+ } else {
38
+ uint256 syIndex = SY.exchangeRate();
39
+ pyIndexCurrent = Math.max(syIndex, ytIndex);
40
+ }
41
+ return PYIndex.wrap(pyIndexCurrent);
42
+ }
43
+ }
@@ -0,0 +1,90 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "./PendlePtOracleLib.sol";
5
+
6
+ // Reference: https://file.notion.so/f/s/15d1406b-0d81-41a4-8ac3-9b56e30fdf50/LP_Oracle_Doc.pdf?id=201fc56f-959b-4836-9511-73852e166816&table=block&spaceId=33abd05a-56a2-4ce6-8673-929c5984a0fd&expirationTimestamp=1683863581610&signature=IY3jlxvXkWRJZhsccYpQdQaKlm1_NUIb1ypDmuaR7hI&downloadName=LP_Oracle_Doc.pdf
7
+
8
+ library PendleLpOracleLib {
9
+ using PendlePtOracleLib for IPMarket;
10
+ using PYIndexLib for PYIndex;
11
+ using Math for uint256;
12
+ using Math for int256;
13
+ using MarketMathCore for MarketState;
14
+
15
+ /**
16
+ * This function returns the approximated twap rate LP/Asset on market
17
+ * @param market market to get rate from
18
+ * @param duration twap duration
19
+ *
20
+ */
21
+ function getLpToAssetRate(
22
+ IPMarket market,
23
+ uint32 duration
24
+ ) internal view returns (uint256 lpToAssetRate) {
25
+ MarketState memory state = market.readState(address(0));
26
+ MarketPreCompute memory comp = _getMarketPreCompute(market, state);
27
+
28
+ int256 totalHypotheticalAsset;
29
+ if (state.expiry <= block.timestamp) {
30
+ // 1 PT = 1 Asset post-expiry
31
+ totalHypotheticalAsset = state.totalPt + comp.totalAsset;
32
+ } else {
33
+ (int256 rateOracle, int256 rateHypTrade) = _getPtRates(market, state, duration);
34
+ int256 cParam = LogExpMath.exp(
35
+ comp.rateScalar.mulDown((rateOracle - comp.rateAnchor))
36
+ );
37
+
38
+ int256 tradeSize = (cParam.mulDown(comp.totalAsset) - state.totalPt).divDown(
39
+ Math.IONE + cParam.divDown(rateHypTrade)
40
+ );
41
+
42
+ totalHypotheticalAsset =
43
+ comp.totalAsset -
44
+ tradeSize.divDown(rateHypTrade) +
45
+ (state.totalPt + tradeSize).divDown(rateOracle);
46
+ }
47
+
48
+ lpToAssetRate = _calcLpPrice(totalHypotheticalAsset, state.totalLp).Uint();
49
+ }
50
+
51
+ function _getMarketPreCompute(
52
+ IPMarket market,
53
+ MarketState memory state
54
+ ) private view returns (MarketPreCompute memory) {
55
+ return state.getMarketPreCompute(_getPYIndexCurrent(market), block.timestamp);
56
+ }
57
+
58
+ function _getPYIndexCurrent(IPMarket market) private view returns (PYIndex) {
59
+ (IStandardizedYield SY, , IPYieldToken YT) = market.readTokens();
60
+ uint256 ytIndex = YT.pyIndexStored();
61
+ uint256 pyIndexCurrent;
62
+ if (YT.doCacheIndexSameBlock() && YT.pyIndexLastUpdatedBlock() == block.number) {
63
+ pyIndexCurrent = ytIndex;
64
+ } else {
65
+ uint256 syIndex = SY.exchangeRate();
66
+ pyIndexCurrent = Math.max(syIndex, ytIndex);
67
+ }
68
+ return PYIndex.wrap(pyIndexCurrent);
69
+ }
70
+
71
+ function _getPtRates(
72
+ IPMarket market,
73
+ MarketState memory state,
74
+ uint32 duration
75
+ ) private view returns (int256 rateOracle, int256 rateHypTrade) {
76
+ rateOracle = Math.IONE.divDown(market.getPtToAssetRate(duration).Int());
77
+ int256 rateLastTrade = MarketMathCore._getExchangeRateFromImpliedRate(
78
+ state.lastLnImpliedRate,
79
+ state.expiry - block.timestamp
80
+ );
81
+ rateHypTrade = (rateLastTrade + rateOracle) / 2;
82
+ }
83
+
84
+ function _calcLpPrice(
85
+ int256 totalHypotheticalAsset,
86
+ int256 totalLp
87
+ ) private pure returns (int256) {
88
+ return totalHypotheticalAsset.divDown(totalLp);
89
+ }
90
+ }
@@ -1,22 +1,18 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity 0.8.17;
3
3
 
4
- import "@openzeppelin/contracts/utils/Address.sol";
5
4
  import "../../core/libraries/TokenHelper.sol";
6
- import "../../core/libraries/Errors.sol";
7
5
  import "./IPSwapAggregator.sol";
8
- import "./1inch/OneInchAggregationRouterHelper.sol";
9
- import "./kyberswap/ethereum/KyberHelperEthereum.sol";
6
+ import "./kyberswap/KyberInputScalingHelper.sol";
10
7
 
11
- contract PendleSwapEthereum is
12
- IPSwapAggregator,
13
- TokenHelper,
14
- KyberHelperEthereum,
15
- OneInchAggregationRouterHelper
16
- {
8
+ contract PendleSwap is IPSwapAggregator, TokenHelper, KyberInputScalingHelper {
17
9
  using Address for address;
18
10
 
19
- function swap(address tokenIn, uint256 amountIn, SwapData calldata data) external payable {
11
+ function swap(
12
+ address tokenIn,
13
+ uint256 amountIn,
14
+ SwapData calldata data
15
+ ) external payable {
20
16
  _safeApproveInf(tokenIn, data.extRouter);
21
17
  data.extRouter.functionCallWithValue(
22
18
  data.needScale
@@ -34,7 +30,7 @@ contract PendleSwapEthereum is
34
30
  if (swapType == SwapType.KYBERSWAP) {
35
31
  scaledCallData = _getKyberScaledInputData(rawCallData, amountIn);
36
32
  } else if (swapType == SwapType.ONE_INCH) {
37
- scaledCallData = _get1inchScaledInputData(rawCallData, amountIn);
33
+ revert("not supported");
38
34
  } else {
39
35
  assert(false);
40
36
  }