@pendle/core-v2 5.1.1-beta-2 → 5.1.2-beta-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 (280) hide show
  1. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +67 -23
  3. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +19 -6
  5. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/SYBaseWithoutPermitUpg.dbg.json +4 -0
  6. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/{SYBaseUpg.json → SYBaseWithoutPermitUpg.json} +1 -1
  7. package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol/PendleStkGHOSY.dbg.json +4 -0
  8. package/build/artifacts/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol/PendleStkGHOSY.json +1160 -0
  9. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDEMantleSY.sol/PendleSUSDEMantleSY.dbg.json +1 -1
  10. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDEMantleSY.sol/PendleSUSDEMantleSY.json +2 -2
  11. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleUSDEL2SY.sol/PendleUSDEL2SY.dbg.json +1 -1
  12. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleUSDEL2SY.sol/PendleUSDEL2SY.json +2 -2
  13. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol/PendleEBTCSY.dbg.json +1 -1
  14. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol/PendleEBTCSY.json +2 -2
  15. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEEigenSYUpg.sol/PendleEEigenSYUpg.dbg.json +1 -1
  16. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEEigenSYUpg.sol/PendleEEigenSYUpg.json +2 -2
  17. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthkSY.sol/PendleWEEthkSY.dbg.json +1 -1
  18. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthkSY.sol/PendleWEEthkSY.json +2 -2
  19. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthsSY.sol/PendleWEEthsSY.dbg.json +1 -1
  20. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthsSY.sol/PendleWEEthsSY.json +2 -2
  21. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  22. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  23. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol/PendleCMETHSY.dbg.json +4 -0
  24. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol/PendleCMETHSY.json +1049 -0
  25. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20SYUpg.sol/PendleERC20SYUpg.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20SYUpg.sol/PendleERC20SYUpg.json +2 -2
  27. package/build/artifacts/contracts/core/StandardizedYield/implementations/Silo/PendleSiloWithIncentiveNonBorrowableSY.sol/PendleSiloWithIncentiveNonBorrowableSY.dbg.json +4 -0
  28. package/build/artifacts/contracts/core/StandardizedYield/implementations/Silo/PendleSiloWithIncentiveNonBorrowableSY.sol/PendleSiloWithIncentiveNonBorrowableSY.json +1222 -0
  29. package/build/artifacts/contracts/interfaces/AaveV3/IAaveStkGHO.sol/IAaveStkGHO.dbg.json +4 -0
  30. package/build/artifacts/contracts/interfaces/AaveV3/IAaveStkGHO.sol/IAaveStkGHO.json +116 -0
  31. package/build/artifacts/contracts/interfaces/Angle/IAngleDistributor.sol/IAngleDistributor.dbg.json +4 -0
  32. package/build/artifacts/contracts/interfaces/Angle/IAngleDistributor.sol/IAngleDistributor.json +39 -0
  33. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  34. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.json +196 -0
  35. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  36. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  37. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +66 -0
  38. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  39. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.json +196 -78
  40. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
  41. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.json +196 -0
  42. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  43. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +196 -0
  44. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
  45. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.json +196 -0
  46. package/build/artifacts/contracts/interfaces/IPActionSwapLimitV3.sol/IPActionSwapLimitV3.dbg.json +4 -0
  47. package/build/artifacts/contracts/interfaces/IPActionSwapLimitV3.sol/IPActionSwapLimitV3.json +2638 -0
  48. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  49. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.json +196 -0
  50. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  51. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.json +196 -0
  52. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  53. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +1220 -48
  54. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
  55. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
  56. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
  57. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapLimitV3Events.dbg.json +4 -0
  58. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapLimitV3Events.json +207 -0
  59. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
  60. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
  61. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
  62. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.json +196 -0
  63. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  64. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +262 -0
  65. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  66. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
  67. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
  68. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.json +27 -2
  69. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  70. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  71. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  72. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  73. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  74. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  75. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  76. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +68 -2
  77. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  78. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  79. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  80. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +198 -2
  81. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  82. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  83. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  84. package/build/artifacts/contracts/oracles/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +1 -1
  85. package/build/artifacts/contracts/oracles/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +1 -1
  86. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  87. package/build/artifacts/contracts/oracles/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
  88. package/build/artifacts/contracts/oracles/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +1 -1
  89. package/build/artifacts/contracts/oracles/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.dbg.json +1 -1
  90. package/build/artifacts/contracts/oracles/PendleSparkLinearDiscountOracle.sol/PTExpiry.dbg.json +1 -1
  91. package/build/artifacts/contracts/oracles/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.dbg.json +1 -1
  92. package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.dbg.json +1 -1
  93. package/build/artifacts/contracts/oracles/samples/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  94. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
  95. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
  96. package/build/artifacts/contracts/oracles/samples/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  97. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  98. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +198 -2
  99. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  100. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +198 -80
  101. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
  102. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +198 -2
  103. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
  104. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +198 -2
  105. package/build/artifacts/contracts/router/ActionSwapLimitV3.sol/ActionSwapLimitV3.dbg.json +4 -0
  106. package/build/artifacts/contracts/router/ActionSwapLimitV3.sol/ActionSwapLimitV3.json +2638 -0
  107. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  108. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +198 -2
  109. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  110. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +198 -2
  111. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
  112. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
  113. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  114. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
  115. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  116. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
  117. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
  118. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
  119. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
  120. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  121. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  122. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  123. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  124. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
  125. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
  126. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
  127. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
  128. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  129. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
  130. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  131. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
  132. package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +27 -6
  133. package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +3 -2
  134. package/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol +1 -1
  135. package/contracts/core/StandardizedYield/implementations/AaveV3/PendleStkGHOSY.sol +130 -0
  136. package/contracts/core/StandardizedYield/implementations/EtherFi/PendleEEigenSYUpg.sol +6 -2
  137. package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +1 -2
  138. package/contracts/core/StandardizedYield/implementations/Mantle/PendleCMETHSY.sol +82 -0
  139. package/contracts/core/StandardizedYield/implementations/PendleERC20SYUpg.sol +6 -1
  140. package/contracts/core/StandardizedYield/implementations/Silo/PendleSiloWithIncentiveNonBorrowableSY.sol +154 -0
  141. package/contracts/interfaces/AaveV3/IAaveStkGHO.sol +17 -0
  142. package/contracts/interfaces/Angle/IAngleDistributor.sol +12 -0
  143. package/contracts/interfaces/IPActionAddRemoveLiqV3.sol +6 -6
  144. package/contracts/interfaces/IPActionMarketCoreStatic.sol +4 -0
  145. package/contracts/interfaces/IPActionMiscV3.sol +2 -8
  146. package/contracts/interfaces/IPActionSwapLimitV3.sol +42 -0
  147. package/contracts/interfaces/IPActionSwapPTV3.sol +4 -4
  148. package/contracts/interfaces/IPActionSwapYTV3.sol +4 -4
  149. package/contracts/interfaces/IPAllActionTypeV3.sol +4 -0
  150. package/contracts/interfaces/IPAllActionV3.sol +3 -1
  151. package/contracts/interfaces/IPAllEventsV3.sol +44 -1
  152. package/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol +5 -0
  153. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +1 -1
  154. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +1 -1
  155. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +10 -4
  156. package/contracts/router/ActionAddRemoveLiqV3.sol +9 -9
  157. package/contracts/router/ActionMiscV3.sol +3 -17
  158. package/contracts/router/ActionSwapLimitV3.sol +126 -0
  159. package/contracts/router/ActionSwapPTV3.sol +4 -4
  160. package/contracts/router/ActionSwapYTV3.sol +4 -4
  161. package/contracts/router/base/ActionBase.sol +35 -12
  162. package/contracts/router/base/ActionDelegateBase.sol +1 -1
  163. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +1 -1
  164. package/contracts/router/swap-aggregator/PendleSwap.sol +0 -43
  165. package/deployments/1-core.json +1 -1
  166. package/deployments/1-markets/RSETH-MAINNET-JUN2025.json +14 -0
  167. package/deployments/1-markets/STKGHO-MAINNET-APR2025.json +14 -0
  168. package/deployments/1-markets/WEETH-MAINNET-JUN2025.json +14 -0
  169. package/deployments/10-core.json +1 -1
  170. package/deployments/42161-core.json +1 -1
  171. package/deployments/42161-markets/DOLOMITE-USDC-ARBITRUM-JUN2025.json +14 -0
  172. package/deployments/42161-markets/DOLOMITE-WBTC-ARBITRUM-JUN2025.json +14 -0
  173. package/deployments/42161-markets/RSETH-ARBITRUM-JUN2025.json +14 -0
  174. package/deployments/42161-markets/SPSILO-ARBITRUM-MAR2025.json +14 -0
  175. package/deployments/42161-markets/WEETH-ARBITRUM-JUN2025.json +14 -0
  176. package/deployments/5000-core.json +1 -1
  177. package/deployments/5000-markets/CMETH-MANTLE-FEB2025.json +14 -0
  178. package/deployments/56-core.json +2 -2
  179. package/deployments/56-markets/VENUS-BNB-BSC-JUN2025.json +14 -0
  180. package/package.json +1 -1
  181. package/typechain-types/ActionAddRemoveLiqV3.ts +148 -0
  182. package/typechain-types/ActionMarketCoreStatic.ts +68 -0
  183. package/typechain-types/ActionMiscV3.ts +148 -44
  184. package/typechain-types/ActionSimple.ts +148 -0
  185. package/typechain-types/ActionStorageStatic.ts +148 -0
  186. package/typechain-types/ActionStorageV4.ts +148 -0
  187. package/typechain-types/ActionSwapLimitV3.ts +1667 -0
  188. package/typechain-types/ActionSwapPTV3.ts +148 -0
  189. package/typechain-types/ActionSwapYTV3.ts +148 -0
  190. package/typechain-types/IAaveStkGHO.ts +269 -0
  191. package/typechain-types/IAngleDistributor.ts +117 -0
  192. package/typechain-types/IPActionAddRemoveLiqV3.ts +148 -0
  193. package/typechain-types/IPActionMarketCoreStatic.ts +68 -0
  194. package/typechain-types/IPActionMiscV3.ts +148 -44
  195. package/typechain-types/IPActionSimple.ts +148 -0
  196. package/typechain-types/IPActionStorageStatic.ts +148 -0
  197. package/typechain-types/IPActionStorageV4.ts +148 -0
  198. package/typechain-types/IPActionSwapLimitV3.ts +1667 -0
  199. package/typechain-types/IPActionSwapLimitV3Events.ts +207 -0
  200. package/typechain-types/IPActionSwapPTV3.ts +148 -0
  201. package/typechain-types/IPActionSwapYTV3.ts +148 -0
  202. package/typechain-types/IPAllActionV3.ts +390 -20
  203. package/typechain-types/IPAllEventsV3.ts +148 -0
  204. package/typechain-types/IPChainlinkOracle.ts +221 -0
  205. package/typechain-types/IPChainlinkOracleFactory.ts +123 -0
  206. package/typechain-types/IPChainlinkOracleWithQuote.ts +404 -0
  207. package/typechain-types/IPRouterStatic.ts +182 -0
  208. package/typechain-types/PendleCMETHSY.ts +1349 -0
  209. package/typechain-types/PendleChainlinkOracle.ts +299 -0
  210. package/typechain-types/PendleChainlinkOracleBase.ts +299 -0
  211. package/typechain-types/PendleChainlinkOracleFactory.ts +389 -0
  212. package/typechain-types/PendleChainlinkOracleWithQuote.ts +335 -0
  213. package/typechain-types/PendleSiloWithIncentiveNonBorrowableSY.ts +1543 -0
  214. package/typechain-types/PendleStkGHOSY.ts +1522 -0
  215. package/typechain-types/PendleVotingControllerUpg.ts +135 -43
  216. package/typechain-types/SYBaseWithoutPermitUpg.ts +1101 -0
  217. package/typechain-types/VotingControllerStorageUpg.ts +34 -15
  218. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +197 -1
  219. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  220. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  221. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +67 -1
  222. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  223. package/typechain-types/factories/ActionMiscV3__factory.ts +197 -79
  224. package/typechain-types/factories/ActionSimple__factory.ts +197 -1
  225. package/typechain-types/factories/ActionStorageStatic__factory.ts +197 -1
  226. package/typechain-types/factories/ActionStorageV4__factory.ts +197 -1
  227. package/typechain-types/factories/ActionSwapLimitV3__factory.ts +2691 -0
  228. package/typechain-types/factories/ActionSwapPTV3__factory.ts +197 -1
  229. package/typechain-types/factories/ActionSwapYTV3__factory.ts +197 -1
  230. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  231. package/typechain-types/factories/IAaveStkGHO__factory.ts +128 -0
  232. package/typechain-types/factories/IAngleDistributor__factory.ts +54 -0
  233. package/typechain-types/factories/IPActionAddRemoveLiqV3__factory.ts +196 -0
  234. package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +66 -0
  235. package/typechain-types/factories/IPActionMiscV3__factory.ts +196 -78
  236. package/typechain-types/factories/IPActionSimple__factory.ts +196 -0
  237. package/typechain-types/factories/IPActionStorageStatic__factory.ts +196 -0
  238. package/typechain-types/factories/IPActionStorageV4__factory.ts +196 -0
  239. package/typechain-types/factories/IPActionSwapLimitV3Events__factory.ts +226 -0
  240. package/typechain-types/factories/IPActionSwapLimitV3__factory.ts +2653 -0
  241. package/typechain-types/factories/IPActionSwapPTV3__factory.ts +196 -0
  242. package/typechain-types/factories/IPActionSwapYTV3__factory.ts +196 -0
  243. package/typechain-types/factories/IPAllActionV3__factory.ts +1220 -48
  244. package/typechain-types/factories/IPAllEventsV3__factory.ts +196 -0
  245. package/typechain-types/factories/IPChainlinkOracleFactory__factory.ts +110 -0
  246. package/typechain-types/factories/IPChainlinkOracleWithQuote__factory.ts +281 -0
  247. package/typechain-types/factories/IPChainlinkOracle__factory.ts +137 -0
  248. package/typechain-types/factories/IPRouterStatic__factory.ts +262 -0
  249. package/typechain-types/factories/PendleCMETHSY__factory.ts +1099 -0
  250. package/typechain-types/factories/PendleChainlinkOracleBase__factory.ts +272 -0
  251. package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +362 -0
  252. package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +394 -0
  253. package/typechain-types/factories/PendleChainlinkOracle__factory.ts +354 -0
  254. package/typechain-types/factories/PendleEBTCSY__factory.ts +1 -1
  255. package/typechain-types/factories/PendleEEigenSYUpg__factory.ts +1 -1
  256. package/typechain-types/factories/PendleERC20SYUpg__factory.ts +1 -1
  257. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  258. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
  259. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  260. package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
  261. package/typechain-types/factories/PendleSUSDEMantleSY__factory.ts +1 -1
  262. package/typechain-types/factories/PendleSiloWithIncentiveNonBorrowableSY__factory.ts +1317 -0
  263. package/typechain-types/factories/PendleStkGHOSY__factory.ts +1213 -0
  264. package/typechain-types/factories/PendleSwap__factory.ts +1 -1
  265. package/typechain-types/factories/PendleUSDEL2SY__factory.ts +1 -1
  266. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +66 -22
  267. package/typechain-types/factories/PendleWEEthkSY__factory.ts +1 -1
  268. package/typechain-types/factories/PendleWEEthsSY__factory.ts +1 -1
  269. package/typechain-types/factories/Reflector__factory.ts +1 -1
  270. package/typechain-types/factories/SDKErrorsDirectory__factory.ts +26 -1
  271. package/typechain-types/factories/SYBaseWithoutPermitUpg__factory.ts +871 -0
  272. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +19 -6
  273. package/typechain-types/hardhat.d.ts +76 -13
  274. package/typechain-types/index.ts +18 -2
  275. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithoutPermitUpg.sol/SYBaseUpg.dbg.json +0 -4
  276. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +0 -4
  277. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +0 -10
  278. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +0 -4
  279. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.json +0 -82
  280. package/contracts/offchain-helpers/MarketExchangeRateLib.sol +0 -32
@@ -27,8 +27,8 @@
27
27
  "type": "receive"
28
28
  }
29
29
  ],
30
- "bytecode": "0x608060405234801561001057600080fd5b506117f1806100206000396000f3fe6080604052600436106100225760003560e01c8063ef4093631461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610b05565b610064565b60405161005b9190610bc6565b60405180910390f35b60606000806100738585610103565b91509150600073888888888889758f76e7103c6cbf23abbf58f9466001600160a01b031683836040516100a69190610be0565b60006040518083038185875af1925050503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b5094509050806100fa57835184602001fd5b50505092915050565b60006060816101156004828688610bfc565b61011e91610c26565b9050366000610130866004818a610bfc565b90925090506001600160e01b0319831663092ccd6360e11b148061016457506001600160e01b0319831663640fc23d60e11b145b8061017f57506001600160e01b031983166376a4483f60e11b145b1561020a5760008080808080610197878901896111a5565b9550955095509550955095506101ac8261042e565b9a50888686868686866040516024016101ca96959493929190611501565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061042495505050505050565b63c241e3ab60e01b6001600160e01b03198416016102a25760008080808061023486880188611563565b945094509450945094506102478161042e565b99508785858585856040516024016102639594939291906115d8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529850610424945050505050565b6001600160e01b031983166358bda47560e01b14806102d157506001600160e01b03198316630a94245f60e21b145b806102ec57506001600160e01b03198316637b8b4b9560e01b145b156103325760008080808061030386880188611612565b955095509550509450945087858561031a87610559565b8686866040516024016102639695949392919061168c565b633dde3dab60e11b6001600160e01b03198416016103e057600080808061035b858701876116d3565b94509450509350935086848461037086610559565b6040516001600160a01b03938416602482015292909116604483015260648201526084810184905260a4810183905260c40160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506104249350505050565b60405162461bcd60e51b81526020600482015260146024820152732aa729aaa82827a92a22a22fa9a2a622a1aa27a960611b60448201526064015b60405180910390fd5b5050509250929050565b600080608083015151600381111561044857610448611287565b1415801561046d57506003608083015151600381111561046a5761046a611287565b14155b156104bb578160800151606001516104bb5760405162461bcd60e51b815260206004820152601160248201527014d0d0531157d254d7d491545552549151607a1b604482015260640161041b565b81516104c6906106a7565b602083015281516001600160a01b03166104e257506020015190565b81516001600160a01b031660009081526020819052604090205460ff1661055457815161052f906001600160a01b031673888888888889758f76e7103c6cbf23abbf58f946600019610732565b81516001600160a01b03166000908152602081905260409020805460ff191660011790555b919050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190611724565b50506040516370a0823160e01b81529091506001600160a01b038216906370a08231906105ef903090600401611771565b602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106309190611785565b6001600160a01b03821660009081526020819052604090205490925060ff166106a15761067d6001600160a01b03821673888888888889758f76e7103c6cbf23abbf58f946600019610732565b6001600160a01b0381166000908152602081905260409020805460ff191660011790555b50919050565b60006001600160a01b0382161561072a576040516370a0823160e01b81526001600160a01b038316906370a08231906106e4903090600401611771565b602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611785565b61072c565b475b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261078384826107ec565b6107e657604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526107dc90859061088e565b6107e6848261088e565b50505050565b6000806000846001600160a01b0316846040516108099190610be0565b6000604051808303816000865af19150503d8060008114610846576040519150601f19603f3d011682016040523d82523d6000602084013e61084b565b606091505b5091509150818015610875575080511580610875575080806020019051810190610875919061179e565b8015610885575061088585610968565b95945050505050565b60006108e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166109779092919063ffffffff16565b9050805160001480610904575080806020019051810190610904919061179e565b6109635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161041b565b505050565b6001600160a01b03163b151590565b6060610986848460008561098e565b949350505050565b6060824710156109ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161041b565b600080866001600160a01b03168587604051610a0b9190610be0565b60006040518083038185875af1925050503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091509150610a5e87838387610a69565b979650505050505050565b60608315610ad6578251600003610acf57610a8385610968565b610acf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610986565b6109868383815115610aeb5781518083602001fd5b8060405162461bcd60e51b815260040161041b9190610bc6565b60008060208385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b813581811115610b5257600080fd5b866020828501011115610b6457600080fd5b60209290920196919550909350505050565b60005b83811015610b91578181015183820152602001610b79565b50506000910152565b60008151808452610bb2816020860160208601610b76565b601f01601f19169290920160200192915050565b602081526000610bd96020830184610b9a565b9392505050565b60008251610bf2818460208701610b76565b9190910192915050565b60008085851115610c0c57600080fd5b83861115610c1957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c4e5780818660040360031b1b83161692505b505092915050565b6001600160a01b0381168114610c6b57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610ca657610ca6610c6e565b60405290565b604051608081016001600160401b0381118282101715610ca657610ca6610c6e565b604051606081016001600160401b0381118282101715610ca657610ca6610c6e565b60405161018081016001600160401b0381118282101715610ca657610ca6610c6e565b604051601f8201601f191681016001600160401b0381118282101715610d3b57610d3b610c6e565b604052919050565b600060a08284031215610d5557600080fd5b610d5d610c84565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b803561055481610c56565b60048110610c6b57600080fd5b803561055481610d9c565b600082601f830112610dc557600080fd5b81356001600160401b03811115610dde57610dde610c6e565b610df1601f8201601f1916602001610d13565b818152846020838601011115610e0657600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c6b57600080fd5b600060a08284031215610e4357600080fd5b610e4b610c84565b90508135610e5881610c56565b8152602082810135908201526040820135610e7281610c56565b60408201526060820135610e8581610c56565b606082015260808201356001600160401b0380821115610ea457600080fd5b9083019060808286031215610eb857600080fd5b610ec0610cac565b8235610ecb81610d9c565b81526020830135610edb81610c56565b6020820152604083013582811115610ef257600080fd5b610efe87828601610db4565b60408301525060608301359250610f1483610e23565b606081019290925250608082015292915050565b600082601f830112610f3957600080fd5b813560206001600160401b0380831115610f5557610f55610c6e565b8260051b610f64838201610d13565b9384528581018301938381019088861115610f7e57600080fd5b84880192505b858310156110eb57823584811115610f9b57600080fd5b8801601f196060828c0382011215610fb257600080fd5b610fba610cce565b8783013587811115610fcb57600080fd5b8301610180818e0384011215610fe057600080fd5b610fe8610cf0565b92508881013583526040810135898401526060810135604084015261100f60808201610da9565b606084015261102060a08201610d91565b608084015261103160c08201610d91565b60a084015261104260e08201610d91565b60c0840152610100611055818301610d91565b60e085015261012080830135828601526101409150818301358186015250610160808301358286015261018083013591508982111561109357600080fd5b6110a18f8c84860101610db4565b908501525050908152604082013590868211156110bd57600080fd5b6110cb8c8984860101610db4565b818901526060929092013560408301525082529184019190840190610f84565b98975050505050505050565b600060a0828403121561110957600080fd5b611111610c84565b905061111c82610d91565b81526020828101359082015260408201356001600160401b038082111561114257600080fd5b61114e85838601610f28565b6040840152606084013591508082111561116757600080fd5b61117385838601610f28565b6060840152608084013591508082111561118c57600080fd5b5061119984828501610db4565b60808301525092915050565b60008060008060008061014087890312156111bf57600080fd5b86356111ca81610c56565b955060208701356111da81610c56565b9450604087013593506111f08860608901610d43565b92506101008701356001600160401b038082111561120d57600080fd5b6112198a838b01610e31565b935061012089013591508082111561123057600080fd5b5061123d89828a016110f7565b9150509295509295509295565b6001600160a01b03169052565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b634e487b7160e01b600052602160045260246000fd5b60048110610c6b57634e487b7160e01b600052602160045260246000fd5b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a0608086015280516113038161129d565b60a0860152602081015190911660c08501526040810151608060e086015290611330610120860183610b9a565b915060608101511515610100860152508091505092915050565b6113538161129d565b9052565b600082825180855260208086019550808260051b84010181860160005b8481101561149057601f198684030189528151606081518186528051828701528681015160808181890152604091508183015160a081818b015285850151955060c091506113c4828b018761134a565b91840151945060e0916113d98a84018761124a565b84015194506101006113ed8a82018761124a565b908401519450610120906114038a83018761124a565b918401519450610140916114198a84018761124a565b8401516101608a81019190915290840151610180808b0191909152918401516101a08a01528301516101c0890191909152925061145a6101e0880184610b9a565b9250878401519150868303888801526114738383610b9a565b938101519601959095525098840198925090830190600101611374565b5090979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a060408501526114ce60a0850182611357565b9050606083015184820360608601526114e78282611357565b915050608083015184820360808601526108858282610b9a565b6001600160a01b0387811682528616602082015260408101859052600061014061152e6060840187611257565b80610100840152611541818401866112bb565b9050828103610120840152611556818561149d565b9998505050505050505050565b600080600080600060a0868803121561157b57600080fd5b853561158681610c56565b9450602086013561159681610c56565b9350604086013592506060860135915060808601356001600160401b038111156115bf57600080fd5b6115cb88828901610e31565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090610a5e908301846112bb565b600080600080600080610140878903121561162c57600080fd5b863561163781610c56565b9550602087013561164781610c56565b945060408701359350606087013592506116648860808901610d43565b91506101208701356001600160401b0381111561168057600080fd5b61123d89828a016110f7565b6001600160a01b03878116825286166020820152604081018590526060810184905260006101406116c06080840186611257565b806101208401526115568184018561149d565b600080600080600060a086880312156116eb57600080fd5b85356116f681610c56565b9450602086013561170681610c56565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561173957600080fd5b835161174481610c56565b602085015190935061175581610c56565b604085015190925061176681610c56565b809150509250925092565b6001600160a01b0391909116815260200190565b60006020828403121561179757600080fd5b5051919050565b6000602082840312156117b057600080fd5b8151610bd981610e2356fea2646970667358221220043b3449b0eaa15c8ce5f935f0304d7dd84f71277ef239c6f04dc988d8d5129e64736f6c63430008170033",
31
- "deployedBytecode": "0x6080604052600436106100225760003560e01c8063ef4093631461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610b05565b610064565b60405161005b9190610bc6565b60405180910390f35b60606000806100738585610103565b91509150600073888888888889758f76e7103c6cbf23abbf58f9466001600160a01b031683836040516100a69190610be0565b60006040518083038185875af1925050503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b5094509050806100fa57835184602001fd5b50505092915050565b60006060816101156004828688610bfc565b61011e91610c26565b9050366000610130866004818a610bfc565b90925090506001600160e01b0319831663092ccd6360e11b148061016457506001600160e01b0319831663640fc23d60e11b145b8061017f57506001600160e01b031983166376a4483f60e11b145b1561020a5760008080808080610197878901896111a5565b9550955095509550955095506101ac8261042e565b9a50888686868686866040516024016101ca96959493929190611501565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061042495505050505050565b63c241e3ab60e01b6001600160e01b03198416016102a25760008080808061023486880188611563565b945094509450945094506102478161042e565b99508785858585856040516024016102639594939291906115d8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529850610424945050505050565b6001600160e01b031983166358bda47560e01b14806102d157506001600160e01b03198316630a94245f60e21b145b806102ec57506001600160e01b03198316637b8b4b9560e01b145b156103325760008080808061030386880188611612565b955095509550509450945087858561031a87610559565b8686866040516024016102639695949392919061168c565b633dde3dab60e11b6001600160e01b03198416016103e057600080808061035b858701876116d3565b94509450509350935086848461037086610559565b6040516001600160a01b03938416602482015292909116604483015260648201526084810184905260a4810183905260c40160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506104249350505050565b60405162461bcd60e51b81526020600482015260146024820152732aa729aaa82827a92a22a22fa9a2a622a1aa27a960611b60448201526064015b60405180910390fd5b5050509250929050565b600080608083015151600381111561044857610448611287565b1415801561046d57506003608083015151600381111561046a5761046a611287565b14155b156104bb578160800151606001516104bb5760405162461bcd60e51b815260206004820152601160248201527014d0d0531157d254d7d491545552549151607a1b604482015260640161041b565b81516104c6906106a7565b602083015281516001600160a01b03166104e257506020015190565b81516001600160a01b031660009081526020819052604090205460ff1661055457815161052f906001600160a01b031673888888888889758f76e7103c6cbf23abbf58f946600019610732565b81516001600160a01b03166000908152602081905260409020805460ff191660011790555b919050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190611724565b50506040516370a0823160e01b81529091506001600160a01b038216906370a08231906105ef903090600401611771565b602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106309190611785565b6001600160a01b03821660009081526020819052604090205490925060ff166106a15761067d6001600160a01b03821673888888888889758f76e7103c6cbf23abbf58f946600019610732565b6001600160a01b0381166000908152602081905260409020805460ff191660011790555b50919050565b60006001600160a01b0382161561072a576040516370a0823160e01b81526001600160a01b038316906370a08231906106e4903090600401611771565b602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611785565b61072c565b475b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261078384826107ec565b6107e657604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526107dc90859061088e565b6107e6848261088e565b50505050565b6000806000846001600160a01b0316846040516108099190610be0565b6000604051808303816000865af19150503d8060008114610846576040519150601f19603f3d011682016040523d82523d6000602084013e61084b565b606091505b5091509150818015610875575080511580610875575080806020019051810190610875919061179e565b8015610885575061088585610968565b95945050505050565b60006108e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166109779092919063ffffffff16565b9050805160001480610904575080806020019051810190610904919061179e565b6109635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161041b565b505050565b6001600160a01b03163b151590565b6060610986848460008561098e565b949350505050565b6060824710156109ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161041b565b600080866001600160a01b03168587604051610a0b9190610be0565b60006040518083038185875af1925050503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091509150610a5e87838387610a69565b979650505050505050565b60608315610ad6578251600003610acf57610a8385610968565b610acf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610986565b6109868383815115610aeb5781518083602001fd5b8060405162461bcd60e51b815260040161041b9190610bc6565b60008060208385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b813581811115610b5257600080fd5b866020828501011115610b6457600080fd5b60209290920196919550909350505050565b60005b83811015610b91578181015183820152602001610b79565b50506000910152565b60008151808452610bb2816020860160208601610b76565b601f01601f19169290920160200192915050565b602081526000610bd96020830184610b9a565b9392505050565b60008251610bf2818460208701610b76565b9190910192915050565b60008085851115610c0c57600080fd5b83861115610c1957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c4e5780818660040360031b1b83161692505b505092915050565b6001600160a01b0381168114610c6b57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610ca657610ca6610c6e565b60405290565b604051608081016001600160401b0381118282101715610ca657610ca6610c6e565b604051606081016001600160401b0381118282101715610ca657610ca6610c6e565b60405161018081016001600160401b0381118282101715610ca657610ca6610c6e565b604051601f8201601f191681016001600160401b0381118282101715610d3b57610d3b610c6e565b604052919050565b600060a08284031215610d5557600080fd5b610d5d610c84565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b803561055481610c56565b60048110610c6b57600080fd5b803561055481610d9c565b600082601f830112610dc557600080fd5b81356001600160401b03811115610dde57610dde610c6e565b610df1601f8201601f1916602001610d13565b818152846020838601011115610e0657600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c6b57600080fd5b600060a08284031215610e4357600080fd5b610e4b610c84565b90508135610e5881610c56565b8152602082810135908201526040820135610e7281610c56565b60408201526060820135610e8581610c56565b606082015260808201356001600160401b0380821115610ea457600080fd5b9083019060808286031215610eb857600080fd5b610ec0610cac565b8235610ecb81610d9c565b81526020830135610edb81610c56565b6020820152604083013582811115610ef257600080fd5b610efe87828601610db4565b60408301525060608301359250610f1483610e23565b606081019290925250608082015292915050565b600082601f830112610f3957600080fd5b813560206001600160401b0380831115610f5557610f55610c6e565b8260051b610f64838201610d13565b9384528581018301938381019088861115610f7e57600080fd5b84880192505b858310156110eb57823584811115610f9b57600080fd5b8801601f196060828c0382011215610fb257600080fd5b610fba610cce565b8783013587811115610fcb57600080fd5b8301610180818e0384011215610fe057600080fd5b610fe8610cf0565b92508881013583526040810135898401526060810135604084015261100f60808201610da9565b606084015261102060a08201610d91565b608084015261103160c08201610d91565b60a084015261104260e08201610d91565b60c0840152610100611055818301610d91565b60e085015261012080830135828601526101409150818301358186015250610160808301358286015261018083013591508982111561109357600080fd5b6110a18f8c84860101610db4565b908501525050908152604082013590868211156110bd57600080fd5b6110cb8c8984860101610db4565b818901526060929092013560408301525082529184019190840190610f84565b98975050505050505050565b600060a0828403121561110957600080fd5b611111610c84565b905061111c82610d91565b81526020828101359082015260408201356001600160401b038082111561114257600080fd5b61114e85838601610f28565b6040840152606084013591508082111561116757600080fd5b61117385838601610f28565b6060840152608084013591508082111561118c57600080fd5b5061119984828501610db4565b60808301525092915050565b60008060008060008061014087890312156111bf57600080fd5b86356111ca81610c56565b955060208701356111da81610c56565b9450604087013593506111f08860608901610d43565b92506101008701356001600160401b038082111561120d57600080fd5b6112198a838b01610e31565b935061012089013591508082111561123057600080fd5b5061123d89828a016110f7565b9150509295509295509295565b6001600160a01b03169052565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b634e487b7160e01b600052602160045260246000fd5b60048110610c6b57634e487b7160e01b600052602160045260246000fd5b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a0608086015280516113038161129d565b60a0860152602081015190911660c08501526040810151608060e086015290611330610120860183610b9a565b915060608101511515610100860152508091505092915050565b6113538161129d565b9052565b600082825180855260208086019550808260051b84010181860160005b8481101561149057601f198684030189528151606081518186528051828701528681015160808181890152604091508183015160a081818b015285850151955060c091506113c4828b018761134a565b91840151945060e0916113d98a84018761124a565b84015194506101006113ed8a82018761124a565b908401519450610120906114038a83018761124a565b918401519450610140916114198a84018761124a565b8401516101608a81019190915290840151610180808b0191909152918401516101a08a01528301516101c0890191909152925061145a6101e0880184610b9a565b9250878401519150868303888801526114738383610b9a565b938101519601959095525098840198925090830190600101611374565b5090979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a060408501526114ce60a0850182611357565b9050606083015184820360608601526114e78282611357565b915050608083015184820360808601526108858282610b9a565b6001600160a01b0387811682528616602082015260408101859052600061014061152e6060840187611257565b80610100840152611541818401866112bb565b9050828103610120840152611556818561149d565b9998505050505050505050565b600080600080600060a0868803121561157b57600080fd5b853561158681610c56565b9450602086013561159681610c56565b9350604086013592506060860135915060808601356001600160401b038111156115bf57600080fd5b6115cb88828901610e31565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090610a5e908301846112bb565b600080600080600080610140878903121561162c57600080fd5b863561163781610c56565b9550602087013561164781610c56565b945060408701359350606087013592506116648860808901610d43565b91506101208701356001600160401b0381111561168057600080fd5b61123d89828a016110f7565b6001600160a01b03878116825286166020820152604081018590526060810184905260006101406116c06080840186611257565b806101208401526115568184018561149d565b600080600080600060a086880312156116eb57600080fd5b85356116f681610c56565b9450602086013561170681610c56565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561173957600080fd5b835161174481610c56565b602085015190935061175581610c56565b604085015190925061176681610c56565b809150509250925092565b6001600160a01b0391909116815260200190565b60006020828403121561179757600080fd5b5051919050565b6000602082840312156117b057600080fd5b8151610bd981610e2356fea2646970667358221220043b3449b0eaa15c8ce5f935f0304d7dd84f71277ef239c6f04dc988d8d5129e64736f6c63430008170033",
30
+ "bytecode": "0x608060405234801561001057600080fd5b506117f1806100206000396000f3fe6080604052600436106100225760003560e01c8063ef4093631461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610b05565b610064565b60405161005b9190610bc6565b60405180910390f35b60606000806100738585610103565b91509150600073888888888889758f76e7103c6cbf23abbf58f9466001600160a01b031683836040516100a69190610be0565b60006040518083038185875af1925050503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b5094509050806100fa57835184602001fd5b50505092915050565b60006060816101156004828688610bfc565b61011e91610c26565b9050366000610130866004818a610bfc565b90925090506001600160e01b0319831663092ccd6360e11b148061016457506001600160e01b0319831663640fc23d60e11b145b8061017f57506001600160e01b031983166376a4483f60e11b145b1561020a5760008080808080610197878901896111a5565b9550955095509550955095506101ac8261042e565b9a50888686868686866040516024016101ca96959493929190611501565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061042495505050505050565b63c241e3ab60e01b6001600160e01b03198416016102a25760008080808061023486880188611563565b945094509450945094506102478161042e565b99508785858585856040516024016102639594939291906115d8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529850610424945050505050565b6001600160e01b031983166358bda47560e01b14806102d157506001600160e01b03198316630a94245f60e21b145b806102ec57506001600160e01b03198316637b8b4b9560e01b145b156103325760008080808061030386880188611612565b955095509550509450945087858561031a87610559565b8686866040516024016102639695949392919061168c565b633dde3dab60e11b6001600160e01b03198416016103e057600080808061035b858701876116d3565b94509450509350935086848461037086610559565b6040516001600160a01b03938416602482015292909116604483015260648201526084810184905260a4810183905260c40160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506104249350505050565b60405162461bcd60e51b81526020600482015260146024820152732aa729aaa82827a92a22a22fa9a2a622a1aa27a960611b60448201526064015b60405180910390fd5b5050509250929050565b600080608083015151600381111561044857610448611287565b1415801561046d57506003608083015151600381111561046a5761046a611287565b14155b156104bb578160800151606001516104bb5760405162461bcd60e51b815260206004820152601160248201527014d0d0531157d254d7d491545552549151607a1b604482015260640161041b565b81516104c6906106a7565b602083015281516001600160a01b03166104e257506020015190565b81516001600160a01b031660009081526020819052604090205460ff1661055457815161052f906001600160a01b031673888888888889758f76e7103c6cbf23abbf58f946600019610732565b81516001600160a01b03166000908152602081905260409020805460ff191660011790555b919050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190611724565b50506040516370a0823160e01b81529091506001600160a01b038216906370a08231906105ef903090600401611771565b602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106309190611785565b6001600160a01b03821660009081526020819052604090205490925060ff166106a15761067d6001600160a01b03821673888888888889758f76e7103c6cbf23abbf58f946600019610732565b6001600160a01b0381166000908152602081905260409020805460ff191660011790555b50919050565b60006001600160a01b0382161561072a576040516370a0823160e01b81526001600160a01b038316906370a08231906106e4903090600401611771565b602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611785565b61072c565b475b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261078384826107ec565b6107e657604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526107dc90859061088e565b6107e6848261088e565b50505050565b6000806000846001600160a01b0316846040516108099190610be0565b6000604051808303816000865af19150503d8060008114610846576040519150601f19603f3d011682016040523d82523d6000602084013e61084b565b606091505b5091509150818015610875575080511580610875575080806020019051810190610875919061179e565b8015610885575061088585610968565b95945050505050565b60006108e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166109779092919063ffffffff16565b9050805160001480610904575080806020019051810190610904919061179e565b6109635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161041b565b505050565b6001600160a01b03163b151590565b6060610986848460008561098e565b949350505050565b6060824710156109ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161041b565b600080866001600160a01b03168587604051610a0b9190610be0565b60006040518083038185875af1925050503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091509150610a5e87838387610a69565b979650505050505050565b60608315610ad6578251600003610acf57610a8385610968565b610acf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610986565b6109868383815115610aeb5781518083602001fd5b8060405162461bcd60e51b815260040161041b9190610bc6565b60008060208385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b813581811115610b5257600080fd5b866020828501011115610b6457600080fd5b60209290920196919550909350505050565b60005b83811015610b91578181015183820152602001610b79565b50506000910152565b60008151808452610bb2816020860160208601610b76565b601f01601f19169290920160200192915050565b602081526000610bd96020830184610b9a565b9392505050565b60008251610bf2818460208701610b76565b9190910192915050565b60008085851115610c0c57600080fd5b83861115610c1957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c4e5780818660040360031b1b83161692505b505092915050565b6001600160a01b0381168114610c6b57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610ca657610ca6610c6e565b60405290565b604051608081016001600160401b0381118282101715610ca657610ca6610c6e565b604051606081016001600160401b0381118282101715610ca657610ca6610c6e565b60405161018081016001600160401b0381118282101715610ca657610ca6610c6e565b604051601f8201601f191681016001600160401b0381118282101715610d3b57610d3b610c6e565b604052919050565b600060a08284031215610d5557600080fd5b610d5d610c84565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b803561055481610c56565b60048110610c6b57600080fd5b803561055481610d9c565b600082601f830112610dc557600080fd5b81356001600160401b03811115610dde57610dde610c6e565b610df1601f8201601f1916602001610d13565b818152846020838601011115610e0657600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c6b57600080fd5b600060a08284031215610e4357600080fd5b610e4b610c84565b90508135610e5881610c56565b8152602082810135908201526040820135610e7281610c56565b60408201526060820135610e8581610c56565b606082015260808201356001600160401b0380821115610ea457600080fd5b9083019060808286031215610eb857600080fd5b610ec0610cac565b8235610ecb81610d9c565b81526020830135610edb81610c56565b6020820152604083013582811115610ef257600080fd5b610efe87828601610db4565b60408301525060608301359250610f1483610e23565b606081019290925250608082015292915050565b600082601f830112610f3957600080fd5b813560206001600160401b0380831115610f5557610f55610c6e565b8260051b610f64838201610d13565b9384528581018301938381019088861115610f7e57600080fd5b84880192505b858310156110eb57823584811115610f9b57600080fd5b8801601f196060828c0382011215610fb257600080fd5b610fba610cce565b8783013587811115610fcb57600080fd5b8301610180818e0384011215610fe057600080fd5b610fe8610cf0565b92508881013583526040810135898401526060810135604084015261100f60808201610da9565b606084015261102060a08201610d91565b608084015261103160c08201610d91565b60a084015261104260e08201610d91565b60c0840152610100611055818301610d91565b60e085015261012080830135828601526101409150818301358186015250610160808301358286015261018083013591508982111561109357600080fd5b6110a18f8c84860101610db4565b908501525050908152604082013590868211156110bd57600080fd5b6110cb8c8984860101610db4565b818901526060929092013560408301525082529184019190840190610f84565b98975050505050505050565b600060a0828403121561110957600080fd5b611111610c84565b905061111c82610d91565b81526020828101359082015260408201356001600160401b038082111561114257600080fd5b61114e85838601610f28565b6040840152606084013591508082111561116757600080fd5b61117385838601610f28565b6060840152608084013591508082111561118c57600080fd5b5061119984828501610db4565b60808301525092915050565b60008060008060008061014087890312156111bf57600080fd5b86356111ca81610c56565b955060208701356111da81610c56565b9450604087013593506111f08860608901610d43565b92506101008701356001600160401b038082111561120d57600080fd5b6112198a838b01610e31565b935061012089013591508082111561123057600080fd5b5061123d89828a016110f7565b9150509295509295509295565b6001600160a01b03169052565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b634e487b7160e01b600052602160045260246000fd5b60048110610c6b57634e487b7160e01b600052602160045260246000fd5b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a0608086015280516113038161129d565b60a0860152602081015190911660c08501526040810151608060e086015290611330610120860183610b9a565b915060608101511515610100860152508091505092915050565b6113538161129d565b9052565b600082825180855260208086019550808260051b84010181860160005b8481101561149057601f198684030189528151606081518186528051828701528681015160808181890152604091508183015160a081818b015285850151955060c091506113c4828b018761134a565b91840151945060e0916113d98a84018761124a565b84015194506101006113ed8a82018761124a565b908401519450610120906114038a83018761124a565b918401519450610140916114198a84018761124a565b8401516101608a81019190915290840151610180808b0191909152918401516101a08a01528301516101c0890191909152925061145a6101e0880184610b9a565b9250878401519150868303888801526114738383610b9a565b938101519601959095525098840198925090830190600101611374565b5090979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a060408501526114ce60a0850182611357565b9050606083015184820360608601526114e78282611357565b915050608083015184820360808601526108858282610b9a565b6001600160a01b0387811682528616602082015260408101859052600061014061152e6060840187611257565b80610100840152611541818401866112bb565b9050828103610120840152611556818561149d565b9998505050505050505050565b600080600080600060a0868803121561157b57600080fd5b853561158681610c56565b9450602086013561159681610c56565b9350604086013592506060860135915060808601356001600160401b038111156115bf57600080fd5b6115cb88828901610e31565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090610a5e908301846112bb565b600080600080600080610140878903121561162c57600080fd5b863561163781610c56565b9550602087013561164781610c56565b945060408701359350606087013592506116648860808901610d43565b91506101208701356001600160401b0381111561168057600080fd5b61123d89828a016110f7565b6001600160a01b03878116825286166020820152604081018590526060810184905260006101406116c06080840186611257565b806101208401526115568184018561149d565b600080600080600060a086880312156116eb57600080fd5b85356116f681610c56565b9450602086013561170681610c56565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561173957600080fd5b835161174481610c56565b602085015190935061175581610c56565b604085015190925061176681610c56565b809150509250925092565b6001600160a01b0391909116815260200190565b60006020828403121561179757600080fd5b5051919050565b6000602082840312156117b057600080fd5b8151610bd981610e2356fea26469706673582212209184841fe6d61348545a20a6b0dabb54e282e6b6d573c9cc8cb840bd9dba148d64736f6c63430008170033",
31
+ "deployedBytecode": "0x6080604052600436106100225760003560e01c8063ef4093631461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610b05565b610064565b60405161005b9190610bc6565b60405180910390f35b60606000806100738585610103565b91509150600073888888888889758f76e7103c6cbf23abbf58f9466001600160a01b031683836040516100a69190610be0565b60006040518083038185875af1925050503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b5094509050806100fa57835184602001fd5b50505092915050565b60006060816101156004828688610bfc565b61011e91610c26565b9050366000610130866004818a610bfc565b90925090506001600160e01b0319831663092ccd6360e11b148061016457506001600160e01b0319831663640fc23d60e11b145b8061017f57506001600160e01b031983166376a4483f60e11b145b1561020a5760008080808080610197878901896111a5565b9550955095509550955095506101ac8261042e565b9a50888686868686866040516024016101ca96959493929190611501565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061042495505050505050565b63c241e3ab60e01b6001600160e01b03198416016102a25760008080808061023486880188611563565b945094509450945094506102478161042e565b99508785858585856040516024016102639594939291906115d8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529850610424945050505050565b6001600160e01b031983166358bda47560e01b14806102d157506001600160e01b03198316630a94245f60e21b145b806102ec57506001600160e01b03198316637b8b4b9560e01b145b156103325760008080808061030386880188611612565b955095509550509450945087858561031a87610559565b8686866040516024016102639695949392919061168c565b633dde3dab60e11b6001600160e01b03198416016103e057600080808061035b858701876116d3565b94509450509350935086848461037086610559565b6040516001600160a01b03938416602482015292909116604483015260648201526084810184905260a4810183905260c40160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506104249350505050565b60405162461bcd60e51b81526020600482015260146024820152732aa729aaa82827a92a22a22fa9a2a622a1aa27a960611b60448201526064015b60405180910390fd5b5050509250929050565b600080608083015151600381111561044857610448611287565b1415801561046d57506003608083015151600381111561046a5761046a611287565b14155b156104bb578160800151606001516104bb5760405162461bcd60e51b815260206004820152601160248201527014d0d0531157d254d7d491545552549151607a1b604482015260640161041b565b81516104c6906106a7565b602083015281516001600160a01b03166104e257506020015190565b81516001600160a01b031660009081526020819052604090205460ff1661055457815161052f906001600160a01b031673888888888889758f76e7103c6cbf23abbf58f946600019610732565b81516001600160a01b03166000908152602081905260409020805460ff191660011790555b919050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190611724565b50506040516370a0823160e01b81529091506001600160a01b038216906370a08231906105ef903090600401611771565b602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106309190611785565b6001600160a01b03821660009081526020819052604090205490925060ff166106a15761067d6001600160a01b03821673888888888889758f76e7103c6cbf23abbf58f946600019610732565b6001600160a01b0381166000908152602081905260409020805460ff191660011790555b50919050565b60006001600160a01b0382161561072a576040516370a0823160e01b81526001600160a01b038316906370a08231906106e4903090600401611771565b602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611785565b61072c565b475b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261078384826107ec565b6107e657604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526107dc90859061088e565b6107e6848261088e565b50505050565b6000806000846001600160a01b0316846040516108099190610be0565b6000604051808303816000865af19150503d8060008114610846576040519150601f19603f3d011682016040523d82523d6000602084013e61084b565b606091505b5091509150818015610875575080511580610875575080806020019051810190610875919061179e565b8015610885575061088585610968565b95945050505050565b60006108e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166109779092919063ffffffff16565b9050805160001480610904575080806020019051810190610904919061179e565b6109635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161041b565b505050565b6001600160a01b03163b151590565b6060610986848460008561098e565b949350505050565b6060824710156109ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161041b565b600080866001600160a01b03168587604051610a0b9190610be0565b60006040518083038185875af1925050503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091509150610a5e87838387610a69565b979650505050505050565b60608315610ad6578251600003610acf57610a8385610968565b610acf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610986565b6109868383815115610aeb5781518083602001fd5b8060405162461bcd60e51b815260040161041b9190610bc6565b60008060208385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b813581811115610b5257600080fd5b866020828501011115610b6457600080fd5b60209290920196919550909350505050565b60005b83811015610b91578181015183820152602001610b79565b50506000910152565b60008151808452610bb2816020860160208601610b76565b601f01601f19169290920160200192915050565b602081526000610bd96020830184610b9a565b9392505050565b60008251610bf2818460208701610b76565b9190910192915050565b60008085851115610c0c57600080fd5b83861115610c1957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c4e5780818660040360031b1b83161692505b505092915050565b6001600160a01b0381168114610c6b57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610ca657610ca6610c6e565b60405290565b604051608081016001600160401b0381118282101715610ca657610ca6610c6e565b604051606081016001600160401b0381118282101715610ca657610ca6610c6e565b60405161018081016001600160401b0381118282101715610ca657610ca6610c6e565b604051601f8201601f191681016001600160401b0381118282101715610d3b57610d3b610c6e565b604052919050565b600060a08284031215610d5557600080fd5b610d5d610c84565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b803561055481610c56565b60048110610c6b57600080fd5b803561055481610d9c565b600082601f830112610dc557600080fd5b81356001600160401b03811115610dde57610dde610c6e565b610df1601f8201601f1916602001610d13565b818152846020838601011115610e0657600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c6b57600080fd5b600060a08284031215610e4357600080fd5b610e4b610c84565b90508135610e5881610c56565b8152602082810135908201526040820135610e7281610c56565b60408201526060820135610e8581610c56565b606082015260808201356001600160401b0380821115610ea457600080fd5b9083019060808286031215610eb857600080fd5b610ec0610cac565b8235610ecb81610d9c565b81526020830135610edb81610c56565b6020820152604083013582811115610ef257600080fd5b610efe87828601610db4565b60408301525060608301359250610f1483610e23565b606081019290925250608082015292915050565b600082601f830112610f3957600080fd5b813560206001600160401b0380831115610f5557610f55610c6e565b8260051b610f64838201610d13565b9384528581018301938381019088861115610f7e57600080fd5b84880192505b858310156110eb57823584811115610f9b57600080fd5b8801601f196060828c0382011215610fb257600080fd5b610fba610cce565b8783013587811115610fcb57600080fd5b8301610180818e0384011215610fe057600080fd5b610fe8610cf0565b92508881013583526040810135898401526060810135604084015261100f60808201610da9565b606084015261102060a08201610d91565b608084015261103160c08201610d91565b60a084015261104260e08201610d91565b60c0840152610100611055818301610d91565b60e085015261012080830135828601526101409150818301358186015250610160808301358286015261018083013591508982111561109357600080fd5b6110a18f8c84860101610db4565b908501525050908152604082013590868211156110bd57600080fd5b6110cb8c8984860101610db4565b818901526060929092013560408301525082529184019190840190610f84565b98975050505050505050565b600060a0828403121561110957600080fd5b611111610c84565b905061111c82610d91565b81526020828101359082015260408201356001600160401b038082111561114257600080fd5b61114e85838601610f28565b6040840152606084013591508082111561116757600080fd5b61117385838601610f28565b6060840152608084013591508082111561118c57600080fd5b5061119984828501610db4565b60808301525092915050565b60008060008060008061014087890312156111bf57600080fd5b86356111ca81610c56565b955060208701356111da81610c56565b9450604087013593506111f08860608901610d43565b92506101008701356001600160401b038082111561120d57600080fd5b6112198a838b01610e31565b935061012089013591508082111561123057600080fd5b5061123d89828a016110f7565b9150509295509295509295565b6001600160a01b03169052565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b634e487b7160e01b600052602160045260246000fd5b60048110610c6b57634e487b7160e01b600052602160045260246000fd5b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a0608086015280516113038161129d565b60a0860152602081015190911660c08501526040810151608060e086015290611330610120860183610b9a565b915060608101511515610100860152508091505092915050565b6113538161129d565b9052565b600082825180855260208086019550808260051b84010181860160005b8481101561149057601f198684030189528151606081518186528051828701528681015160808181890152604091508183015160a081818b015285850151955060c091506113c4828b018761134a565b91840151945060e0916113d98a84018761124a565b84015194506101006113ed8a82018761124a565b908401519450610120906114038a83018761124a565b918401519450610140916114198a84018761124a565b8401516101608a81019190915290840151610180808b0191909152918401516101a08a01528301516101c0890191909152925061145a6101e0880184610b9a565b9250878401519150868303888801526114738383610b9a565b938101519601959095525098840198925090830190600101611374565b5090979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a060408501526114ce60a0850182611357565b9050606083015184820360608601526114e78282611357565b915050608083015184820360808601526108858282610b9a565b6001600160a01b0387811682528616602082015260408101859052600061014061152e6060840187611257565b80610100840152611541818401866112bb565b9050828103610120840152611556818561149d565b9998505050505050505050565b600080600080600060a0868803121561157b57600080fd5b853561158681610c56565b9450602086013561159681610c56565b9350604086013592506060860135915060808601356001600160401b038111156115bf57600080fd5b6115cb88828901610e31565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090610a5e908301846112bb565b600080600080600080610140878903121561162c57600080fd5b863561163781610c56565b9550602087013561164781610c56565b945060408701359350606087013592506116648860808901610d43565b91506101208701356001600160401b0381111561168057600080fd5b61123d89828a016110f7565b6001600160a01b03878116825286166020820152604081018590526060810184905260006101406116c06080840186611257565b806101208401526115568184018561149d565b600080600080600060a086880312156116eb57600080fd5b85356116f681610c56565b9450602086013561170681610c56565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561173957600080fd5b835161174481610c56565b602085015190935061175581610c56565b604085015190925061176681610c56565b809150509250925092565b6001600160a01b0391909116815260200190565b60006020828403121561179757600080fd5b5051919050565b6000602082840312156117b057600080fd5b8151610bd981610e2356fea26469706673582212209184841fe6d61348545a20a6b0dabb54e282e6b6d573c9cc8cb840bd9dba148d64736f6c63430008170033",
32
32
  "linkReferences": {},
33
33
  "deployedLinkReferences": {}
34
34
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/c7efa78060003679bd030c20f2172637.json"
3
+ "buildInfo": "../../../../build-info/3b7a234161ce73ad61f4518d84308ba8.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/c7efa78060003679bd030c20f2172637.json"
3
+ "buildInfo": "../../../../build-info/3b7a234161ce73ad61f4518d84308ba8.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "ActionDelegateBase",
4
4
  "sourceName": "contracts/router/base/ActionDelegateBase.sol",
5
5
  "abi": [],
6
- "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220b99a1a6bb8bff35d0c8cdeb828269fe543300aa2cabb51006d3b58a1eb81350c64736f6c63430008170033",
7
- "deployedBytecode": "0x6080604052600080fdfea2646970667358221220b99a1a6bb8bff35d0c8cdeb828269fe543300aa2cabb51006d3b58a1eb81350c64736f6c63430008170033",
6
+ "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220ca7a5cd8c1a76173e90834c1766e4f1f9b1355f1f197d5d47f352d32e39e3c2a64736f6c63430008170033",
7
+ "deployedBytecode": "0x6080604052600080fdfea2646970667358221220ca7a5cd8c1a76173e90834c1766e4f1f9b1355f1f197d5d47f352d32e39e3c2a64736f6c63430008170033",
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/c7efa78060003679bd030c20f2172637.json"
3
+ "buildInfo": "../../../../build-info/3b7a234161ce73ad61f4518d84308ba8.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "ApproxStateLib",
4
4
  "sourceName": "contracts/router/math/ApproxStateLib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f29b40377df90b6d60a15b93a3438759c2c5e27eb44c83afe7b2bff3ca7ccef764736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f29b40377df90b6d60a15b93a3438759c2c5e27eb44c83afe7b2bff3ca7ccef764736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c813472bf7bce8d4b563a8bb302a99c393fbcc3d826e72d1bbd3fdd8cdfa4a9f64736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c813472bf7bce8d4b563a8bb302a99c393fbcc3d826e72d1bbd3fdd8cdfa4a9f64736f6c63430008170033",
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/c7efa78060003679bd030c20f2172637.json"
3
+ "buildInfo": "../../../../build-info/3b7a234161ce73ad61f4518d84308ba8.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtInLib",
4
4
  "sourceName": "contracts/router/math/MarketApproxLib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220da643b87add84288dd162c91139bbf95d5c78614cb732d014f02ce9aa45d5c3e64736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220da643b87add84288dd162c91139bbf95d5c78614cb732d014f02ce9aa45d5c3e64736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122003e077c4a59f330d1390af649f9bc06221681e0a8e1ea7761659a75e59cd316464736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122003e077c4a59f330d1390af649f9bc06221681e0a8e1ea7761659a75e59cd316464736f6c63430008170033",
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/c7efa78060003679bd030c20f2172637.json"
3
+ "buildInfo": "../../../../build-info/3b7a234161ce73ad61f4518d84308ba8.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtOutLib",
4
4
  "sourceName": "contracts/router/math/MarketApproxLib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bad487affab4f61235828e7014031ed28eb28c5b903f205ac723bb86e05a774f64736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bad487affab4f61235828e7014031ed28eb28c5b903f205ac723bb86e05a774f64736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220af0185d0ee58a1668cebb763a728b13b05b9496bbdac63e34a97ee51f4ba509f64736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220af0185d0ee58a1668cebb763a728b13b05b9496bbdac63e34a97ee51f4ba509f64736f6c63430008170033",
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/c7efa78060003679bd030c20f2172637.json"
3
+ "buildInfo": "../../../../build-info/3b7a234161ce73ad61f4518d84308ba8.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtInLibOnchain",
4
4
  "sourceName": "contracts/router/math/MarketApproxLibOnchain.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203b20c166ed1d83e9b81522eaf007a930cdfbea7e52288ad671dc0e00a7ffa02264736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203b20c166ed1d83e9b81522eaf007a930cdfbea7e52288ad671dc0e00a7ffa02264736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207325e8142f393e6fe2c151403c25ace8a26d3580e3e52dabbdf233bc4113d38964736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207325e8142f393e6fe2c151403c25ace8a26d3580e3e52dabbdf233bc4113d38964736f6c63430008170033",
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/c7efa78060003679bd030c20f2172637.json"
3
+ "buildInfo": "../../../../build-info/3b7a234161ce73ad61f4518d84308ba8.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtOutLibOnchain",
4
4
  "sourceName": "contracts/router/math/MarketApproxLibOnchain.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208b269dddddd7f28fc58e7af7f2d7a3609150935bffb207cc78c9bdbc85c8ff3164736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208b269dddddd7f28fc58e7af7f2d7a3609150935bffb207cc78c9bdbc85c8ff3164736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220769e57620e3a820aebe84b015db136afe0adc34556ccbd11701a7616e4cad17264736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220769e57620e3a820aebe84b015db136afe0adc34556ccbd11701a7616e4cad17264736f6c63430008170033",
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/c7efa78060003679bd030c20f2172637.json"
3
+ "buildInfo": "../../../../build-info/55426231cb822bd68c85fd894c8c529d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/c7efa78060003679bd030c20f2172637.json"
3
+ "buildInfo": "../../../../build-info/55426231cb822bd68c85fd894c8c529d.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/c7efa78060003679bd030c20f2172637.json"
3
+ "buildInfo": "../../../../build-info/55426231cb822bd68c85fd894c8c529d.json"
4
4
  }
@@ -66,8 +66,8 @@
66
66
  "type": "receive"
67
67
  }
68
68
  ],
69
- "bytecode": "0x60a0604052732f577a41bec1be1152aeea12e73b7391d15f655d60805234801561002857600080fd5b50608051610dda61004a600039600081816060015261026f0152610dda6000f3fe60806040526004361061002d5760003560e01c80632bdb823c146100395780638930af571461004e57600080fd5b3661003457005b600080fd5b61004c610047366004610759565b61009e565b005b34801561005a57600080fd5b506100827f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100b7836100b260408401602085016107b8565b610176565b6101706100ca60808301606084016107ea565b610115576100db6040830183610807565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061013892505050565b6101386101256020840184610854565b6101326040850185610807565b8661023a565b6001600160a01b0385161561014e576000610150565b835b61016060408501602086016107b8565b6001600160a01b03169190610384565b50505050565b6001600160a01b038216610188575050565b61019a60026001600160601b0361088b565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156101f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021791906108b1565b101561023657610229828260006103aa565b61023682826000196103aa565b5050565b60606001856003811115610250576102506108ca565b036103495760405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906102a8908890889088906004016108e0565b600060405180830381865afa1580156102c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102ed91908101906109d2565b92509050806103435760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b5061037c565b600285600381111561035d5761035d6108ca565b036103745761036d8484846104b4565b905061037c565b61037c610a63565b949350505050565b606061037c848484604051806060016040528060298152602001610d7c602991396105c8565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916104069190610a79565b6000604051808303816000865af19150503d8060008114610443576040519150601f19603f3d011682016040523d82523d6000602084013e610448565b606091505b50915091508180156104725750805115806104725750808060200190518101906104729190610a95565b6104ad5760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161033a565b5050505050565b606060006104c56004828688610ab2565b6104ce91610adc565b90503660006104e0866004818a610ab2565b90925090506001600160e01b03198316630ed8d73960e21b1461050557610505610a63565b600080808061051685870187610b81565b935093509350935083602001518985608001516105339190610c67565b61053d9190610c92565b6080850152602084015160a0850151610557908b90610c67565b6105619190610c92565b60a0850152602084018990526040518790610586908690869086908690602401610cd2565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529750505050505050509392505050565b6060824710156106295760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161033a565b600080866001600160a01b031685876040516106459190610a79565b60006040518083038185875af1925050503d8060008114610682576040519150601f19603f3d011682016040523d82523d6000602084013e610687565b606091505b5091509150610698878383876106a3565b979650505050505050565b6060831561071257825160000361070b576001600160a01b0385163b61070b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161033a565b508161037c565b61037c83838151156107275781518083602001fd5b8060405162461bcd60e51b815260040161033a9190610d68565b6001600160a01b038116811461075657600080fd5b50565b60008060006060848603121561076e57600080fd5b833561077981610741565b92506020840135915060408401356001600160401b0381111561079b57600080fd5b8401608081870312156107ad57600080fd5b809150509250925092565b6000602082840312156107ca57600080fd5b81356107d581610741565b9392505050565b801515811461075657600080fd5b6000602082840312156107fc57600080fd5b81356107d5816107dc565b6000808335601e1984360301811261081e57600080fd5b8301803591506001600160401b0382111561083857600080fd5b60200191503681900382131561084d57600080fd5b9250929050565b60006020828403121561086657600080fd5b8135600481106107d557600080fd5b634e487b7160e01b600052601260045260246000fd5b60006001600160601b03838116806108a5576108a5610875565b92169190910492915050565b6000602082840312156108c357600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561095157610951610919565b60405290565b604051601f8201601f191681016001600160401b038111828210171561097f5761097f610919565b604052919050565b60006001600160401b038211156109a0576109a0610919565b50601f01601f191660200190565b60005b838110156109c95781810151838201526020016109b1565b50506000910152565b600080604083850312156109e557600080fd5b82516109f0816107dc565b60208401519092506001600160401b03811115610a0c57600080fd5b8301601f81018513610a1d57600080fd5b8051610a30610a2b82610987565b610957565b818152866020838501011115610a4557600080fd5b610a568260208301602086016109ae565b8093505050509250929050565b634e487b7160e01b600052600160045260246000fd5b60008251610a8b8184602087016109ae565b9190910192915050565b600060208284031215610aa757600080fd5b81516107d5816107dc565b60008085851115610ac257600080fd5b83861115610acf57600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610b045780818660040360031b1b83161692505b505092915050565b600082601f830112610b1d57600080fd5b8135610b2b610a2b82610987565b818152846020838601011115610b4057600080fd5b816020850160208301376000918101602001919091529392505050565b8035610b6881610741565b919050565b803563ffffffff81168114610b6857600080fd5b600080600080848603610140811215610b9957600080fd5b60e0811215610ba757600080fd5b50610bb061092f565b8535610bbb81610741565b8152602086810135908201526040860135610bd581610741565b60408201526060860135610be881610741565b806060830152506080860135608082015260a086013560a082015260c0860135610c1181610741565b60c0820152935060e08501356001600160401b03811115610c3157600080fd5b610c3d87828801610b0c565b935050610c4d6101008601610b5d565b9150610c5c6101208601610b6d565b905092959194509250565b8082028115828204841417610c8c57634e487b7160e01b600052601160045260246000fd5b92915050565b600082610ca157610ca1610875565b500490565b60008151808452610cbe8160208601602086016109ae565b601f01601f19169290920160200192915050565b600061014060018060a01b03808851168452602088015160208501528060408901511660408501528060608901511660608501526080880151608085015260a088015160a08501528060c08901511660c0850152508060e0840152610d3981840187610ca6565b915050610d526101008301856001600160a01b03169052565b63ffffffff831661012083015295945050505050565b6020815260006107d56020830184610ca656fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220a43fc64cc90b430839015393e15266d14960934e135f73b94b55c3a8c9fb5ec864736f6c63430008170033",
70
- "deployedBytecode": "0x60806040526004361061002d5760003560e01c80632bdb823c146100395780638930af571461004e57600080fd5b3661003457005b600080fd5b61004c610047366004610759565b61009e565b005b34801561005a57600080fd5b506100827f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100b7836100b260408401602085016107b8565b610176565b6101706100ca60808301606084016107ea565b610115576100db6040830183610807565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061013892505050565b6101386101256020840184610854565b6101326040850185610807565b8661023a565b6001600160a01b0385161561014e576000610150565b835b61016060408501602086016107b8565b6001600160a01b03169190610384565b50505050565b6001600160a01b038216610188575050565b61019a60026001600160601b0361088b565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156101f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021791906108b1565b101561023657610229828260006103aa565b61023682826000196103aa565b5050565b60606001856003811115610250576102506108ca565b036103495760405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906102a8908890889088906004016108e0565b600060405180830381865afa1580156102c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102ed91908101906109d2565b92509050806103435760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b5061037c565b600285600381111561035d5761035d6108ca565b036103745761036d8484846104b4565b905061037c565b61037c610a63565b949350505050565b606061037c848484604051806060016040528060298152602001610d7c602991396105c8565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916104069190610a79565b6000604051808303816000865af19150503d8060008114610443576040519150601f19603f3d011682016040523d82523d6000602084013e610448565b606091505b50915091508180156104725750805115806104725750808060200190518101906104729190610a95565b6104ad5760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161033a565b5050505050565b606060006104c56004828688610ab2565b6104ce91610adc565b90503660006104e0866004818a610ab2565b90925090506001600160e01b03198316630ed8d73960e21b1461050557610505610a63565b600080808061051685870187610b81565b935093509350935083602001518985608001516105339190610c67565b61053d9190610c92565b6080850152602084015160a0850151610557908b90610c67565b6105619190610c92565b60a0850152602084018990526040518790610586908690869086908690602401610cd2565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529750505050505050509392505050565b6060824710156106295760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161033a565b600080866001600160a01b031685876040516106459190610a79565b60006040518083038185875af1925050503d8060008114610682576040519150601f19603f3d011682016040523d82523d6000602084013e610687565b606091505b5091509150610698878383876106a3565b979650505050505050565b6060831561071257825160000361070b576001600160a01b0385163b61070b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161033a565b508161037c565b61037c83838151156107275781518083602001fd5b8060405162461bcd60e51b815260040161033a9190610d68565b6001600160a01b038116811461075657600080fd5b50565b60008060006060848603121561076e57600080fd5b833561077981610741565b92506020840135915060408401356001600160401b0381111561079b57600080fd5b8401608081870312156107ad57600080fd5b809150509250925092565b6000602082840312156107ca57600080fd5b81356107d581610741565b9392505050565b801515811461075657600080fd5b6000602082840312156107fc57600080fd5b81356107d5816107dc565b6000808335601e1984360301811261081e57600080fd5b8301803591506001600160401b0382111561083857600080fd5b60200191503681900382131561084d57600080fd5b9250929050565b60006020828403121561086657600080fd5b8135600481106107d557600080fd5b634e487b7160e01b600052601260045260246000fd5b60006001600160601b03838116806108a5576108a5610875565b92169190910492915050565b6000602082840312156108c357600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561095157610951610919565b60405290565b604051601f8201601f191681016001600160401b038111828210171561097f5761097f610919565b604052919050565b60006001600160401b038211156109a0576109a0610919565b50601f01601f191660200190565b60005b838110156109c95781810151838201526020016109b1565b50506000910152565b600080604083850312156109e557600080fd5b82516109f0816107dc565b60208401519092506001600160401b03811115610a0c57600080fd5b8301601f81018513610a1d57600080fd5b8051610a30610a2b82610987565b610957565b818152866020838501011115610a4557600080fd5b610a568260208301602086016109ae565b8093505050509250929050565b634e487b7160e01b600052600160045260246000fd5b60008251610a8b8184602087016109ae565b9190910192915050565b600060208284031215610aa757600080fd5b81516107d5816107dc565b60008085851115610ac257600080fd5b83861115610acf57600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610b045780818660040360031b1b83161692505b505092915050565b600082601f830112610b1d57600080fd5b8135610b2b610a2b82610987565b818152846020838601011115610b4057600080fd5b816020850160208301376000918101602001919091529392505050565b8035610b6881610741565b919050565b803563ffffffff81168114610b6857600080fd5b600080600080848603610140811215610b9957600080fd5b60e0811215610ba757600080fd5b50610bb061092f565b8535610bbb81610741565b8152602086810135908201526040860135610bd581610741565b60408201526060860135610be881610741565b806060830152506080860135608082015260a086013560a082015260c0860135610c1181610741565b60c0820152935060e08501356001600160401b03811115610c3157600080fd5b610c3d87828801610b0c565b935050610c4d6101008601610b5d565b9150610c5c6101208601610b6d565b905092959194509250565b8082028115828204841417610c8c57634e487b7160e01b600052601160045260246000fd5b92915050565b600082610ca157610ca1610875565b500490565b60008151808452610cbe8160208601602086016109ae565b601f01601f19169290920160200192915050565b600061014060018060a01b03808851168452602088015160208501528060408901511660408501528060608901511660608501526080880151608085015260a088015160a08501528060c08901511660c0850152508060e0840152610d3981840187610ca6565b915050610d526101008301856001600160a01b03169052565b63ffffffff831661012083015295945050505050565b6020815260006107d56020830184610ca656fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220a43fc64cc90b430839015393e15266d14960934e135f73b94b55c3a8c9fb5ec864736f6c63430008170033",
69
+ "bytecode": "0x60a0604052732f577a41bec1be1152aeea12e73b7391d15f655d60805234801561002857600080fd5b506080516109b261004a600039600081816060015261026f01526109b26000f3fe60806040526004361061002d5760003560e01c80632bdb823c146100395780638930af571461004e57600080fd5b3661003457005b600080fd5b61004c61004736600461061e565b61009e565b005b34801561005a57600080fd5b506100827f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100b7836100b2604084016020850161067b565b610176565b6101706100ca60808301606084016106ae565b610115576100db60408301836106cb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061013892505050565b6101386101256020840184610718565b61013260408501856106cb565b8661023a565b6001600160a01b0385161561014e576000610150565b835b610160604085016020860161067b565b6001600160a01b03169190610359565b50505050565b6001600160a01b038216610188575050565b61019a60026001600160601b03610739565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156101f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610217919061076d565b1015610236576102298282600061037f565b610236828260001961037f565b5050565b6060600185600381111561025057610250610786565b036103495760405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906102a89088908890889060040161079c565b600060405180830381865afa1580156102c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102ed919081019061080f565b92509050806103435760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b50610351565b6103516108d1565b949350505050565b606061035184848460405180606001604052806029815260200161095460299139610489565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916103db91906108e7565b6000604051808303816000865af19150503d8060008114610418576040519150601f19603f3d011682016040523d82523d6000602084013e61041d565b606091505b50915091508180156104475750805115806104475750808060200190518101906104479190610903565b6104825760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161033a565b5050505050565b6060824710156104ea5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161033a565b600080866001600160a01b0316858760405161050691906108e7565b60006040518083038185875af1925050503d8060008114610543576040519150601f19603f3d011682016040523d82523d6000602084013e610548565b606091505b509150915061055987838387610564565b979650505050505050565b606083156105d35782516000036105cc576001600160a01b0385163b6105cc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161033a565b5081610351565b61035183838151156105e85781518083602001fd5b8060405162461bcd60e51b815260040161033a9190610920565b80356001600160a01b038116811461061957600080fd5b919050565b60008060006060848603121561063357600080fd5b61063c84610602565b92506020840135915060408401356001600160401b0381111561065e57600080fd5b84016080818703121561067057600080fd5b809150509250925092565b60006020828403121561068d57600080fd5b61069682610602565b9392505050565b80151581146106ab57600080fd5b50565b6000602082840312156106c057600080fd5b81356106968161069d565b6000808335601e198436030181126106e257600080fd5b8301803591506001600160401b038211156106fc57600080fd5b60200191503681900382131561071157600080fd5b9250929050565b60006020828403121561072a57600080fd5b81356004811061069657600080fd5b60006001600160601b038381168061076157634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006020828403121561077f57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156108065781810151838201526020016107ee565b50506000910152565b6000806040838503121561082257600080fd5b825161082d8161069d565b60208401519092506001600160401b038082111561084a57600080fd5b818501915085601f83011261085e57600080fd5b815181811115610870576108706107d5565b604051601f8201601f19908116603f01168101908382118183101715610898576108986107d5565b816040528281528860208487010111156108b157600080fd5b6108c28360208301602088016107eb565b80955050505050509250929050565b634e487b7160e01b600052600160045260246000fd5b600082516108f98184602087016107eb565b9190910192915050565b60006020828403121561091557600080fd5b81516106968161069d565b602081526000825180602084015261093f8160408501602087016107eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212206591470c2f8d6c170503826a8e695308f346c84d36432f84e1b82ac848722c1364736f6c63430008170033",
70
+ "deployedBytecode": "0x60806040526004361061002d5760003560e01c80632bdb823c146100395780638930af571461004e57600080fd5b3661003457005b600080fd5b61004c61004736600461061e565b61009e565b005b34801561005a57600080fd5b506100827f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100b7836100b2604084016020850161067b565b610176565b6101706100ca60808301606084016106ae565b610115576100db60408301836106cb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061013892505050565b6101386101256020840184610718565b61013260408501856106cb565b8661023a565b6001600160a01b0385161561014e576000610150565b835b610160604085016020860161067b565b6001600160a01b03169190610359565b50505050565b6001600160a01b038216610188575050565b61019a60026001600160601b03610739565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156101f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610217919061076d565b1015610236576102298282600061037f565b610236828260001961037f565b5050565b6060600185600381111561025057610250610786565b036103495760405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906102a89088908890889060040161079c565b600060405180830381865afa1580156102c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102ed919081019061080f565b92509050806103435760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b50610351565b6103516108d1565b949350505050565b606061035184848460405180606001604052806029815260200161095460299139610489565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916103db91906108e7565b6000604051808303816000865af19150503d8060008114610418576040519150601f19603f3d011682016040523d82523d6000602084013e61041d565b606091505b50915091508180156104475750805115806104475750808060200190518101906104479190610903565b6104825760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161033a565b5050505050565b6060824710156104ea5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161033a565b600080866001600160a01b0316858760405161050691906108e7565b60006040518083038185875af1925050503d8060008114610543576040519150601f19603f3d011682016040523d82523d6000602084013e610548565b606091505b509150915061055987838387610564565b979650505050505050565b606083156105d35782516000036105cc576001600160a01b0385163b6105cc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161033a565b5081610351565b61035183838151156105e85781518083602001fd5b8060405162461bcd60e51b815260040161033a9190610920565b80356001600160a01b038116811461061957600080fd5b919050565b60008060006060848603121561063357600080fd5b61063c84610602565b92506020840135915060408401356001600160401b0381111561065e57600080fd5b84016080818703121561067057600080fd5b809150509250925092565b60006020828403121561068d57600080fd5b61069682610602565b9392505050565b80151581146106ab57600080fd5b50565b6000602082840312156106c057600080fd5b81356106968161069d565b6000808335601e198436030181126106e257600080fd5b8301803591506001600160401b038211156106fc57600080fd5b60200191503681900382131561071157600080fd5b9250929050565b60006020828403121561072a57600080fd5b81356004811061069657600080fd5b60006001600160601b038381168061076157634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006020828403121561077f57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156108065781810151838201526020016107ee565b50506000910152565b6000806040838503121561082257600080fd5b825161082d8161069d565b60208401519092506001600160401b038082111561084a57600080fd5b818501915085601f83011261085e57600080fd5b815181811115610870576108706107d5565b604051601f8201601f19908116603f01168101908382118183101715610898576108986107d5565b816040528281528860208487010111156108b157600080fd5b6108c28360208301602088016107eb565b80955050505050509250929050565b634e487b7160e01b600052600160045260246000fd5b600082516108f98184602087016107eb565b9190910192915050565b60006020828403121561091557600080fd5b81516106968161069d565b602081526000825180602084015261093f8160408501602087016107eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212206591470c2f8d6c170503826a8e695308f346c84d36432f84e1b82ac848722c1364736f6c63430008170033",
71
71
  "linkReferences": {},
72
72
  "deployedLinkReferences": {}
73
73
  }
@@ -150,8 +150,13 @@ contract PendleVotingControllerUpg is PendleMsgSenderAppUpg, VotingControllerSto
150
150
  GOVERNANCE-ONLY FUNCTIONS
151
151
  //////////////////////////////////////////////////////////////*/
152
152
 
153
- modifier onlyHelperAndOwner() {
154
- require(msg.sender == ownerHelper || msg.sender == owner, "not allowed");
153
+ modifier onlyAddPoolHelperAndOwner() {
154
+ require(msg.sender == addPoolHelper || msg.sender == owner, "add pool not allowed");
155
+ _;
156
+ }
157
+
158
+ modifier onlyRemovePoolHelperAndOwner() {
159
+ require(msg.sender == removePoolHelper || msg.sender == owner, "remove pool not allowed");
155
160
  _;
156
161
  }
157
162
 
@@ -162,7 +167,7 @@ contract PendleVotingControllerUpg is PendleMsgSenderAppUpg, VotingControllerSto
162
167
  * - `pool` must not have been added before (even if has been removed).
163
168
  * - `chainId` must be valid.
164
169
  */
165
- function addPool(uint64 chainId, address pool) external onlyHelperAndOwner {
170
+ function addPool(uint64 chainId, address pool) external onlyAddPoolHelperAndOwner {
166
171
  if (_isPoolActive(pool)) revert Errors.VCPoolAlreadyActive(pool);
167
172
  if (allRemovedPools.contains(pool)) revert Errors.VCPoolAlreadyAddAndRemoved(pool);
168
173
 
@@ -170,13 +175,25 @@ contract PendleVotingControllerUpg is PendleMsgSenderAppUpg, VotingControllerSto
170
175
  emit AddPool(chainId, pool);
171
176
  }
172
177
 
178
+ function addMultiPools(uint64[] memory chainIds, address[] memory pools) external onlyAddPoolHelperAndOwner {
179
+ if (chainIds.length != pools.length) revert Errors.ArrayLengthMismatch();
180
+ for (uint256 i = 0; i < chainIds.length; ++i) {
181
+ (uint64 chainId, address pool) = (chainIds[i], pools[i]);
182
+ if (_isPoolActive(pool)) revert Errors.VCPoolAlreadyActive(pool);
183
+ if (allRemovedPools.contains(pool)) revert Errors.VCPoolAlreadyAddAndRemoved(pool);
184
+
185
+ _addPool(chainId, pool);
186
+ emit AddPool(chainId, pool);
187
+ }
188
+ }
189
+
173
190
  /**
174
191
  * @notice remove a pool from voting. Can only be done by governance
175
192
  * @custom:gov NOTE TO GOV:
176
193
  * - Previous week's results should have been broadcasted prior to calling this function.
177
194
  * - `pool` must be currently active.
178
195
  */
179
- function removePool(address pool) external onlyOwner {
196
+ function removePool(address pool) external onlyRemovePoolHelperAndOwner {
180
197
  if (!_isPoolActive(pool)) revert Errors.VCInactivePool(pool);
181
198
 
182
199
  uint64 chainId = poolData[pool].chainId;
@@ -263,8 +280,12 @@ contract PendleVotingControllerUpg is PendleMsgSenderAppUpg, VotingControllerSto
263
280
  }
264
281
  }
265
282
 
266
- function setOwnerHelper(address _helper) public onlyOwner {
267
- ownerHelper = _helper;
283
+ function setAddPoolHelper(address _helper) public onlyOwner {
284
+ addPoolHelper = _helper;
285
+ }
286
+
287
+ function setRemovePoolHelper(address _helper) public onlyOwner {
288
+ removePoolHelper = _helper;
268
289
  }
269
290
 
270
291
  //solhint-disable-next-line
@@ -73,9 +73,10 @@ abstract contract VotingControllerStorageUpg is IPVotingController {
73
73
  // [user][pool] => checkpoint
74
74
  mapping(address => mapping(address => Checkpoints.History)) internal __dep_userPoolHistory;
75
75
 
76
- address public ownerHelper;
76
+ address public addPoolHelper;
77
+ address public removePoolHelper;
77
78
 
78
- uint256[99] private __gap;
79
+ uint256[98] private __gap;
79
80
 
80
81
  constructor(address _vePendle) {
81
82
  vePendle = IPVeToken(_vePendle);
@@ -12,7 +12,7 @@ import "../libraries/Errors.sol";
12
12
  import "../libraries/BoringOwnableUpgradeable.sol";
13
13
  import "@openzeppelin/contracts/security/Pausable.sol";
14
14
 
15
- abstract contract SYBaseUpg is IStandardizedYield, PendleERC20Upg, TokenHelper, BoringOwnableUpgradeable, Pausable {
15
+ abstract contract SYBaseWithoutPermitUpg is IStandardizedYield, PendleERC20Upg, TokenHelper, BoringOwnableUpgradeable, Pausable {
16
16
  using PMath for uint256;
17
17
 
18
18
  address public immutable yieldToken;
@@ -0,0 +1,130 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../SYBaseWithRewardsUpg.sol";
5
+ import "../../../../interfaces/AaveV3/IAaveStkGHO.sol";
6
+ import "../../../../interfaces/Angle/IAngleDistributor.sol";
7
+
8
+ contract PendleStkGHOSY is SYBaseWithRewardsUpg {
9
+ using PMath for uint256;
10
+
11
+ event ClaimedOffchainGHO(uint256 amountClaimed);
12
+
13
+ address public constant ANGLE_DISTRIBUTOR = 0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae;
14
+ address public constant STKGHO = 0x1a88Df1cFe15Af22B3c4c783D4e6F7F9e0C1885d;
15
+ address public constant GHO = 0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f;
16
+ address public constant AAVE = 0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9;
17
+ bytes32 public constant ZERO_REWARD_ERROR = 0x33d2eb294587ef7b32eb48e48695ebfec45a9c8922ec7d1c444cfad1fb208e8d;
18
+
19
+ constructor() SYBaseUpg(STKGHO) {}
20
+
21
+ function initialize() external initializer {
22
+ __SYBaseUpg_init("SY stk GHO", "SY-stkGHO");
23
+ _safeApproveInf(GHO, STKGHO);
24
+ }
25
+
26
+ function _deposit(address tokenIn, uint256 amountDeposited) internal virtual override returns (uint256) {
27
+ if (tokenIn == STKGHO) {
28
+ return amountDeposited;
29
+ }
30
+
31
+ uint256 preBalance = _selfBalance(STKGHO);
32
+ IAaveStkGHO(STKGHO).stake(address(this), amountDeposited);
33
+ return _selfBalance(STKGHO) - preBalance;
34
+ }
35
+
36
+ function _redeem(
37
+ address receiver,
38
+ address /*tokenOut*/,
39
+ uint256 amountSharesToRedeem
40
+ ) internal virtual override returns (uint256) {
41
+ _transferOut(STKGHO, receiver, amountSharesToRedeem);
42
+ return amountSharesToRedeem;
43
+ }
44
+
45
+ /*///////////////////////////////////////////////////////////////
46
+ EXCHANGE-RATE
47
+ //////////////////////////////////////////////////////////////*/
48
+
49
+ function exchangeRate() public view virtual override returns (uint256) {
50
+ return PMath.ONE.divDown(IAaveStkGHO(STKGHO).getExchangeRate());
51
+ }
52
+
53
+ /*///////////////////////////////////////////////////////////////
54
+ REWARDS-RELATED
55
+ //////////////////////////////////////////////////////////////*/
56
+
57
+ /**
58
+ * @dev See {IStandardizedYield-getRewardTokens}
59
+ */
60
+ function _getRewardTokens() internal pure override returns (address[] memory) {
61
+ return ArrayLib.create(AAVE);
62
+ }
63
+
64
+ function _redeemExternalReward() internal override {
65
+ try IAaveStkGHO(STKGHO).claimRewards(address(this), type(uint256).max) {} catch Error(
66
+ string memory errorString
67
+ ) {
68
+ // StkGHO claim reverts when claimable amount = 0, meaning two sy transfers in diff block/same timestamp would revert.
69
+ // This is expected to not happen at all on ETH mainnet but just to be sure.
70
+ if (keccak256(abi.encodePacked(errorString)) != ZERO_REWARD_ERROR) {
71
+ revert(errorString);
72
+ }
73
+ }
74
+ }
75
+
76
+ function claimOffchainGHORewards(
77
+ address[] calldata users,
78
+ address[] calldata tokens,
79
+ uint256[] calldata amounts,
80
+ bytes32[][] calldata proofs
81
+ ) external onlyOwner {
82
+ uint256 preBalance = _selfBalance(GHO);
83
+ IAngleDistributor(ANGLE_DISTRIBUTOR).claim(users, tokens, amounts, proofs);
84
+ uint256 amountClaimed = _selfBalance(GHO) - preBalance;
85
+
86
+ if (amountClaimed > 0) {
87
+ _transferOut(GHO, msg.sender, amountClaimed);
88
+ emit ClaimedOffchainGHO(amountClaimed);
89
+ }
90
+ }
91
+
92
+ /*///////////////////////////////////////////////////////////////
93
+ MISC FUNCTIONS FOR METADATA
94
+ //////////////////////////////////////////////////////////////*/
95
+
96
+ function _previewDeposit(
97
+ address tokenIn,
98
+ uint256 amountTokenToDeposit
99
+ ) internal view override returns (uint256 amountSharesOut) {
100
+ if (tokenIn == STKGHO) return amountTokenToDeposit;
101
+ return IAaveStkGHO(STKGHO).previewStake(amountTokenToDeposit);
102
+ }
103
+
104
+ function _previewRedeem(
105
+ address /*tokenOut*/,
106
+ uint256 amountSharesToRedeem
107
+ ) internal view override returns (uint256 amountTokenOut) {
108
+ return amountSharesToRedeem;
109
+ }
110
+
111
+ function getTokensIn() public view virtual override returns (address[] memory) {
112
+ return ArrayLib.create(GHO, STKGHO);
113
+ }
114
+
115
+ function getTokensOut() public view virtual override returns (address[] memory) {
116
+ return ArrayLib.create(STKGHO);
117
+ }
118
+
119
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
120
+ return token == GHO || token == STKGHO;
121
+ }
122
+
123
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
124
+ return token == STKGHO;
125
+ }
126
+
127
+ function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
128
+ return (AssetType.TOKEN, GHO, IERC20Metadata(GHO).decimals());
129
+ }
130
+ }
@@ -56,12 +56,16 @@ contract PendleEEigenSYUpg is PendleERC20SYUpg {
56
56
 
57
57
  /// =================================================================
58
58
 
59
-
60
59
  function exchangeRate() public view virtual override returns (uint256) {
61
60
  return IVedaAccountant(vedaAccountant).getRateInQuoteSafe(EIGEN);
62
61
  }
63
62
 
64
- function assetInfo() external override view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
63
+ function assetInfo()
64
+ external
65
+ view
66
+ override
67
+ returns (AssetType assetType, address assetAddress, uint8 assetDecimals)
68
+ {
65
69
  return (AssetType.TOKEN, EIGEN, IERC20Metadata(EIGEN).decimals());
66
70
  }
67
71
  }
@@ -15,7 +15,7 @@ contract PendleGlpSY is SYBaseWithRewardsUpg, GLPPreviewHelper {
15
15
  address public immutable stakedGlp;
16
16
  address public immutable rewardRouter;
17
17
  address public immutable glpRouter;
18
- address public immutable glpManager;
18
+ address public immutable glpManager = 0x3963FfC9dff443c2A94f21b129D429891E32ec18;
19
19
  address public immutable weth;
20
20
 
21
21
  constructor(
@@ -31,7 +31,6 @@ contract PendleGlpSY is SYBaseWithRewardsUpg, GLPPreviewHelper {
31
31
  stakedGlp = _stakedGlp;
32
32
  rewardRouter = _rewardRouter;
33
33
  glpRouter = _glpRouter;
34
- glpManager = IRewardRouterV2(glpRouter).glpManager();
35
34
  weth = IRewardRouterV2(glpRouter).weth();
36
35
  }
37
36