@pendle/core-v2 5.2.1-beta-1 → 5.2.1

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 (211) hide show
  1. package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCBaseSY.sol/PendleLBTCBaseSY.dbg.json +4 -0
  2. package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCBaseSY.sol/PendleLBTCBaseSY.json +1111 -0
  3. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  4. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.json +0 -196
  5. package/build/artifacts/contracts/interfaces/IPActionCallbackV3.sol/IPActionCallbackV3.dbg.json +1 -1
  6. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  7. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  8. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.json +78 -196
  9. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
  10. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.json +0 -196
  11. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  12. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +0 -196
  13. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
  14. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.json +0 -196
  15. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  16. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.json +0 -196
  17. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  18. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.json +0 -196
  19. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  20. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +16 -1188
  21. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
  22. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
  23. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
  24. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
  25. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
  26. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
  27. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.json +0 -196
  28. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.dbg.json +4 -0
  29. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.json +122 -0
  30. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.dbg.json +4 -0
  31. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.json +91 -0
  32. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.dbg.json +4 -0
  33. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.json +262 -0
  34. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitOrderType.dbg.json +1 -1
  35. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
  36. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.json +96 -0
  37. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouterCallback.dbg.json +1 -1
  38. package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.dbg.json +1 -1
  39. package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.json +13 -0
  40. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  41. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +0 -196
  42. package/build/artifacts/contracts/interfaces/Lombard/ILBTCMinterBase.sol/ILBTCMinterBase.dbg.json +4 -0
  43. package/build/artifacts/contracts/interfaces/Lombard/ILBTCMinterBase.sol/ILBTCMinterBase.json +63 -0
  44. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
  45. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.json +2 -2
  46. package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
  47. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
  48. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
  49. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelper.sol/LimitBackendHelper.dbg.json +1 -1
  50. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelper.sol/LimitBackendHelper.json +2 -2
  51. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  52. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
  53. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  54. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  55. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  56. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  57. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  58. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  59. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  60. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  61. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  62. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  63. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  64. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -198
  65. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  66. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  67. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  68. package/build/artifacts/contracts/oracles/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
  69. package/build/artifacts/contracts/oracles/PendlePYLpOracle.sol/PendlePYLpOracle.json +2 -2
  70. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +4 -0
  71. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +226 -0
  72. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +4 -0
  73. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +343 -0
  74. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +4 -0
  75. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +257 -0
  76. package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.dbg.json +1 -1
  77. package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.json +2 -2
  78. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
  79. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.json +2 -2
  80. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
  81. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.json +2 -2
  82. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  83. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -198
  84. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.dbg.json +1 -1
  85. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.json +2 -2
  86. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  87. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +80 -198
  88. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
  89. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -198
  90. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
  91. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -198
  92. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  93. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -198
  94. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  95. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -198
  96. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
  97. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
  98. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  99. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
  100. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  101. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
  102. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
  103. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
  104. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
  105. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  106. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  107. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  108. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  109. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
  110. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
  111. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
  112. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
  113. package/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCBaseSY.sol +121 -0
  114. package/contracts/interfaces/IPActionAddRemoveLiqV3.sol +6 -6
  115. package/contracts/interfaces/IPActionMiscV3.sol +8 -2
  116. package/contracts/interfaces/IPActionSwapPTV3.sol +4 -4
  117. package/contracts/interfaces/IPActionSwapYTV3.sol +4 -4
  118. package/contracts/interfaces/IPAllActionTypeV3.sol +0 -4
  119. package/contracts/interfaces/IPAllActionV3.sol +1 -3
  120. package/contracts/interfaces/IPAllEventsV3.sol +1 -44
  121. package/contracts/interfaces/IPChainlinkOracle.sol +11 -0
  122. package/contracts/interfaces/IPChainlinkOracleFactory.sol +22 -0
  123. package/contracts/interfaces/IPChainlinkOracleWithQuote.sol +8 -0
  124. package/contracts/interfaces/IPLimitRouter.sol +22 -12
  125. package/contracts/interfaces/IPPYLpOracle.sol +3 -4
  126. package/contracts/interfaces/Lombard/ILBTCMinterBase.sol +12 -0
  127. package/contracts/oracles/factory/PendleChainlinkOracle.sol +134 -0
  128. package/contracts/oracles/factory/PendleChainlinkOracleFactory.sol +121 -0
  129. package/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol +50 -0
  130. package/contracts/router/ActionAddRemoveLiqV3.sol +9 -9
  131. package/contracts/router/ActionMiscV3.sol +17 -3
  132. package/contracts/router/ActionSwapPTV3.sol +4 -4
  133. package/contracts/router/ActionSwapYTV3.sol +4 -4
  134. package/contracts/router/base/ActionBase.sol +12 -35
  135. package/contracts/router/base/ActionDelegateBase.sol +1 -1
  136. package/deployments/1-core.json +1 -1
  137. package/deployments/1-markets/MORPHO-PWBTC-JUN2025.json +14 -0
  138. package/deployments/8453-markets/CBETH-BASE-DEC2025.json +14 -0
  139. package/deployments/8453-markets/LBTC-BASE-MAY2025.json +14 -0
  140. package/package.json +1 -1
  141. package/typechain-types/ActionAddRemoveLiqV3.ts +0 -148
  142. package/typechain-types/ActionMiscV3.ts +44 -148
  143. package/typechain-types/ActionSimple.ts +0 -148
  144. package/typechain-types/ActionStorageStatic.ts +0 -148
  145. package/typechain-types/ActionStorageV4.ts +0 -148
  146. package/typechain-types/ActionSwapPTV3.ts +0 -148
  147. package/typechain-types/ActionSwapYTV3.ts +0 -148
  148. package/typechain-types/ILBTCMinterBase.ts +159 -0
  149. package/typechain-types/IPActionAddRemoveLiqV3.ts +0 -148
  150. package/typechain-types/IPActionMiscV3.ts +44 -148
  151. package/typechain-types/IPActionSimple.ts +0 -148
  152. package/typechain-types/IPActionStorageStatic.ts +0 -148
  153. package/typechain-types/IPActionStorageV4.ts +0 -148
  154. package/typechain-types/IPActionSwapPTV3.ts +0 -148
  155. package/typechain-types/IPActionSwapYTV3.ts +0 -148
  156. package/typechain-types/IPAllActionV3.ts +20 -390
  157. package/typechain-types/IPAllEventsV3.ts +0 -148
  158. package/typechain-types/IPLimitRouter.ts +36 -0
  159. package/typechain-types/IPPYLpOracle.ts +21 -0
  160. package/typechain-types/IPRouterStatic.ts +0 -148
  161. package/typechain-types/PendleLBTCBaseSY.ts +1470 -0
  162. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -197
  163. package/typechain-types/factories/ActionCallbackV3__factory.ts +1 -1
  164. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  165. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  166. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  167. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  168. package/typechain-types/factories/ActionMiscV3__factory.ts +79 -197
  169. package/typechain-types/factories/ActionSimple__factory.ts +1 -197
  170. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -197
  171. package/typechain-types/factories/ActionStorageV4__factory.ts +1 -197
  172. package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -197
  173. package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -197
  174. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  175. package/typechain-types/factories/BoringLpGlpOracle__factory.ts +1 -1
  176. package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +1 -1
  177. package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +1 -1
  178. package/typechain-types/factories/ILBTCMinterBase__factory.ts +78 -0
  179. package/typechain-types/factories/IPActionAddRemoveLiqV3__factory.ts +0 -196
  180. package/typechain-types/factories/IPActionMiscV3__factory.ts +78 -196
  181. package/typechain-types/factories/IPActionSimple__factory.ts +0 -196
  182. package/typechain-types/factories/IPActionStorageStatic__factory.ts +0 -196
  183. package/typechain-types/factories/IPActionStorageV4__factory.ts +0 -196
  184. package/typechain-types/factories/IPActionSwapPTV3__factory.ts +0 -196
  185. package/typechain-types/factories/IPActionSwapYTV3__factory.ts +0 -196
  186. package/typechain-types/factories/IPAllActionV3__factory.ts +16 -1188
  187. package/typechain-types/factories/IPAllEventsV3__factory.ts +0 -196
  188. package/typechain-types/factories/IPLimitRouter__factory.ts +96 -0
  189. package/typechain-types/factories/IPPYLpOracle__factory.ts +13 -0
  190. package/typechain-types/factories/IPRouterStatic__factory.ts +0 -196
  191. package/typechain-types/factories/LimitBackendHelper__factory.ts +1 -1
  192. package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +1 -1
  193. package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +1 -49
  194. package/typechain-types/factories/PendleChainlinkOracle__factory.ts +1 -49
  195. package/typechain-types/factories/PendleLBTCBaseSY__factory.ts +1164 -0
  196. package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
  197. package/typechain-types/factories/PendlePYLpOracle__factory.ts +1 -1
  198. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
  199. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  200. package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
  201. package/typechain-types/factories/Reflector__factory.ts +1 -1
  202. package/typechain-types/hardhat.d.ts +72 -0
  203. package/typechain-types/index.ts +16 -0
  204. package/build/artifacts/contracts/interfaces/IPActionSwapLimitV3.sol/IPActionSwapLimitV3.dbg.json +0 -4
  205. package/build/artifacts/contracts/interfaces/IPActionSwapLimitV3.sol/IPActionSwapLimitV3.json +0 -2638
  206. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapLimitV3Events.dbg.json +0 -4
  207. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapLimitV3Events.json +0 -207
  208. package/build/artifacts/contracts/router/ActionSwapLimitV3.sol/ActionSwapLimitV3.dbg.json +0 -4
  209. package/build/artifacts/contracts/router/ActionSwapLimitV3.sol/ActionSwapLimitV3.json +0 -2638
  210. package/contracts/interfaces/IPActionSwapLimitV3.sol +0 -42
  211. package/contracts/router/ActionSwapLimitV3.sol +0 -126
@@ -27,8 +27,8 @@
27
27
  "type": "receive"
28
28
  }
29
29
  ],
30
- "bytecode": "0x608060405234801561001057600080fd5b506117f1806100206000396000f3fe6080604052600436106100225760003560e01c8063ef4093631461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610b05565b610064565b60405161005b9190610bc6565b60405180910390f35b60606000806100738585610103565b91509150600073888888888889758f76e7103c6cbf23abbf58f9466001600160a01b031683836040516100a69190610be0565b60006040518083038185875af1925050503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b5094509050806100fa57835184602001fd5b50505092915050565b60006060816101156004828688610bfc565b61011e91610c26565b9050366000610130866004818a610bfc565b90925090506001600160e01b0319831663092ccd6360e11b148061016457506001600160e01b0319831663640fc23d60e11b145b8061017f57506001600160e01b031983166376a4483f60e11b145b1561020a5760008080808080610197878901896111a5565b9550955095509550955095506101ac8261042e565b9a50888686868686866040516024016101ca96959493929190611501565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061042495505050505050565b63c241e3ab60e01b6001600160e01b03198416016102a25760008080808061023486880188611563565b945094509450945094506102478161042e565b99508785858585856040516024016102639594939291906115d8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529850610424945050505050565b6001600160e01b031983166358bda47560e01b14806102d157506001600160e01b03198316630a94245f60e21b145b806102ec57506001600160e01b03198316637b8b4b9560e01b145b156103325760008080808061030386880188611612565b955095509550509450945087858561031a87610559565b8686866040516024016102639695949392919061168c565b633dde3dab60e11b6001600160e01b03198416016103e057600080808061035b858701876116d3565b94509450509350935086848461037086610559565b6040516001600160a01b03938416602482015292909116604483015260648201526084810184905260a4810183905260c40160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506104249350505050565b60405162461bcd60e51b81526020600482015260146024820152732aa729aaa82827a92a22a22fa9a2a622a1aa27a960611b60448201526064015b60405180910390fd5b5050509250929050565b600080608083015151600381111561044857610448611287565b1415801561046d57506003608083015151600381111561046a5761046a611287565b14155b156104bb578160800151606001516104bb5760405162461bcd60e51b815260206004820152601160248201527014d0d0531157d254d7d491545552549151607a1b604482015260640161041b565b81516104c6906106a7565b602083015281516001600160a01b03166104e257506020015190565b81516001600160a01b031660009081526020819052604090205460ff1661055457815161052f906001600160a01b031673888888888889758f76e7103c6cbf23abbf58f946600019610732565b81516001600160a01b03166000908152602081905260409020805460ff191660011790555b919050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190611724565b50506040516370a0823160e01b81529091506001600160a01b038216906370a08231906105ef903090600401611771565b602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106309190611785565b6001600160a01b03821660009081526020819052604090205490925060ff166106a15761067d6001600160a01b03821673888888888889758f76e7103c6cbf23abbf58f946600019610732565b6001600160a01b0381166000908152602081905260409020805460ff191660011790555b50919050565b60006001600160a01b0382161561072a576040516370a0823160e01b81526001600160a01b038316906370a08231906106e4903090600401611771565b602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611785565b61072c565b475b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261078384826107ec565b6107e657604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526107dc90859061088e565b6107e6848261088e565b50505050565b6000806000846001600160a01b0316846040516108099190610be0565b6000604051808303816000865af19150503d8060008114610846576040519150601f19603f3d011682016040523d82523d6000602084013e61084b565b606091505b5091509150818015610875575080511580610875575080806020019051810190610875919061179e565b8015610885575061088585610968565b95945050505050565b60006108e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166109779092919063ffffffff16565b9050805160001480610904575080806020019051810190610904919061179e565b6109635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161041b565b505050565b6001600160a01b03163b151590565b6060610986848460008561098e565b949350505050565b6060824710156109ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161041b565b600080866001600160a01b03168587604051610a0b9190610be0565b60006040518083038185875af1925050503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091509150610a5e87838387610a69565b979650505050505050565b60608315610ad6578251600003610acf57610a8385610968565b610acf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610986565b6109868383815115610aeb5781518083602001fd5b8060405162461bcd60e51b815260040161041b9190610bc6565b60008060208385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b813581811115610b5257600080fd5b866020828501011115610b6457600080fd5b60209290920196919550909350505050565b60005b83811015610b91578181015183820152602001610b79565b50506000910152565b60008151808452610bb2816020860160208601610b76565b601f01601f19169290920160200192915050565b602081526000610bd96020830184610b9a565b9392505050565b60008251610bf2818460208701610b76565b9190910192915050565b60008085851115610c0c57600080fd5b83861115610c1957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c4e5780818660040360031b1b83161692505b505092915050565b6001600160a01b0381168114610c6b57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610ca657610ca6610c6e565b60405290565b604051608081016001600160401b0381118282101715610ca657610ca6610c6e565b604051606081016001600160401b0381118282101715610ca657610ca6610c6e565b60405161018081016001600160401b0381118282101715610ca657610ca6610c6e565b604051601f8201601f191681016001600160401b0381118282101715610d3b57610d3b610c6e565b604052919050565b600060a08284031215610d5557600080fd5b610d5d610c84565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b803561055481610c56565b60048110610c6b57600080fd5b803561055481610d9c565b600082601f830112610dc557600080fd5b81356001600160401b03811115610dde57610dde610c6e565b610df1601f8201601f1916602001610d13565b818152846020838601011115610e0657600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c6b57600080fd5b600060a08284031215610e4357600080fd5b610e4b610c84565b90508135610e5881610c56565b8152602082810135908201526040820135610e7281610c56565b60408201526060820135610e8581610c56565b606082015260808201356001600160401b0380821115610ea457600080fd5b9083019060808286031215610eb857600080fd5b610ec0610cac565b8235610ecb81610d9c565b81526020830135610edb81610c56565b6020820152604083013582811115610ef257600080fd5b610efe87828601610db4565b60408301525060608301359250610f1483610e23565b606081019290925250608082015292915050565b600082601f830112610f3957600080fd5b813560206001600160401b0380831115610f5557610f55610c6e565b8260051b610f64838201610d13565b9384528581018301938381019088861115610f7e57600080fd5b84880192505b858310156110eb57823584811115610f9b57600080fd5b8801601f196060828c0382011215610fb257600080fd5b610fba610cce565b8783013587811115610fcb57600080fd5b8301610180818e0384011215610fe057600080fd5b610fe8610cf0565b92508881013583526040810135898401526060810135604084015261100f60808201610da9565b606084015261102060a08201610d91565b608084015261103160c08201610d91565b60a084015261104260e08201610d91565b60c0840152610100611055818301610d91565b60e085015261012080830135828601526101409150818301358186015250610160808301358286015261018083013591508982111561109357600080fd5b6110a18f8c84860101610db4565b908501525050908152604082013590868211156110bd57600080fd5b6110cb8c8984860101610db4565b818901526060929092013560408301525082529184019190840190610f84565b98975050505050505050565b600060a0828403121561110957600080fd5b611111610c84565b905061111c82610d91565b81526020828101359082015260408201356001600160401b038082111561114257600080fd5b61114e85838601610f28565b6040840152606084013591508082111561116757600080fd5b61117385838601610f28565b6060840152608084013591508082111561118c57600080fd5b5061119984828501610db4565b60808301525092915050565b60008060008060008061014087890312156111bf57600080fd5b86356111ca81610c56565b955060208701356111da81610c56565b9450604087013593506111f08860608901610d43565b92506101008701356001600160401b038082111561120d57600080fd5b6112198a838b01610e31565b935061012089013591508082111561123057600080fd5b5061123d89828a016110f7565b9150509295509295509295565b6001600160a01b03169052565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b634e487b7160e01b600052602160045260246000fd5b60048110610c6b57634e487b7160e01b600052602160045260246000fd5b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a0608086015280516113038161129d565b60a0860152602081015190911660c08501526040810151608060e086015290611330610120860183610b9a565b915060608101511515610100860152508091505092915050565b6113538161129d565b9052565b600082825180855260208086019550808260051b84010181860160005b8481101561149057601f198684030189528151606081518186528051828701528681015160808181890152604091508183015160a081818b015285850151955060c091506113c4828b018761134a565b91840151945060e0916113d98a84018761124a565b84015194506101006113ed8a82018761124a565b908401519450610120906114038a83018761124a565b918401519450610140916114198a84018761124a565b8401516101608a81019190915290840151610180808b0191909152918401516101a08a01528301516101c0890191909152925061145a6101e0880184610b9a565b9250878401519150868303888801526114738383610b9a565b938101519601959095525098840198925090830190600101611374565b5090979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a060408501526114ce60a0850182611357565b9050606083015184820360608601526114e78282611357565b915050608083015184820360808601526108858282610b9a565b6001600160a01b0387811682528616602082015260408101859052600061014061152e6060840187611257565b80610100840152611541818401866112bb565b9050828103610120840152611556818561149d565b9998505050505050505050565b600080600080600060a0868803121561157b57600080fd5b853561158681610c56565b9450602086013561159681610c56565b9350604086013592506060860135915060808601356001600160401b038111156115bf57600080fd5b6115cb88828901610e31565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090610a5e908301846112bb565b600080600080600080610140878903121561162c57600080fd5b863561163781610c56565b9550602087013561164781610c56565b945060408701359350606087013592506116648860808901610d43565b91506101208701356001600160401b0381111561168057600080fd5b61123d89828a016110f7565b6001600160a01b03878116825286166020820152604081018590526060810184905260006101406116c06080840186611257565b806101208401526115568184018561149d565b600080600080600060a086880312156116eb57600080fd5b85356116f681610c56565b9450602086013561170681610c56565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561173957600080fd5b835161174481610c56565b602085015190935061175581610c56565b604085015190925061176681610c56565b809150509250925092565b6001600160a01b0391909116815260200190565b60006020828403121561179757600080fd5b5051919050565b6000602082840312156117b057600080fd5b8151610bd981610e2356fea26469706673582212207e2c655e8724137acac7b21db01939f28b7d0caa6a58145fb535fd3d47652a4864736f6c63430008170033",
31
- "deployedBytecode": "0x6080604052600436106100225760003560e01c8063ef4093631461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610b05565b610064565b60405161005b9190610bc6565b60405180910390f35b60606000806100738585610103565b91509150600073888888888889758f76e7103c6cbf23abbf58f9466001600160a01b031683836040516100a69190610be0565b60006040518083038185875af1925050503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b5094509050806100fa57835184602001fd5b50505092915050565b60006060816101156004828688610bfc565b61011e91610c26565b9050366000610130866004818a610bfc565b90925090506001600160e01b0319831663092ccd6360e11b148061016457506001600160e01b0319831663640fc23d60e11b145b8061017f57506001600160e01b031983166376a4483f60e11b145b1561020a5760008080808080610197878901896111a5565b9550955095509550955095506101ac8261042e565b9a50888686868686866040516024016101ca96959493929190611501565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061042495505050505050565b63c241e3ab60e01b6001600160e01b03198416016102a25760008080808061023486880188611563565b945094509450945094506102478161042e565b99508785858585856040516024016102639594939291906115d8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529850610424945050505050565b6001600160e01b031983166358bda47560e01b14806102d157506001600160e01b03198316630a94245f60e21b145b806102ec57506001600160e01b03198316637b8b4b9560e01b145b156103325760008080808061030386880188611612565b955095509550509450945087858561031a87610559565b8686866040516024016102639695949392919061168c565b633dde3dab60e11b6001600160e01b03198416016103e057600080808061035b858701876116d3565b94509450509350935086848461037086610559565b6040516001600160a01b03938416602482015292909116604483015260648201526084810184905260a4810183905260c40160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506104249350505050565b60405162461bcd60e51b81526020600482015260146024820152732aa729aaa82827a92a22a22fa9a2a622a1aa27a960611b60448201526064015b60405180910390fd5b5050509250929050565b600080608083015151600381111561044857610448611287565b1415801561046d57506003608083015151600381111561046a5761046a611287565b14155b156104bb578160800151606001516104bb5760405162461bcd60e51b815260206004820152601160248201527014d0d0531157d254d7d491545552549151607a1b604482015260640161041b565b81516104c6906106a7565b602083015281516001600160a01b03166104e257506020015190565b81516001600160a01b031660009081526020819052604090205460ff1661055457815161052f906001600160a01b031673888888888889758f76e7103c6cbf23abbf58f946600019610732565b81516001600160a01b03166000908152602081905260409020805460ff191660011790555b919050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190611724565b50506040516370a0823160e01b81529091506001600160a01b038216906370a08231906105ef903090600401611771565b602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106309190611785565b6001600160a01b03821660009081526020819052604090205490925060ff166106a15761067d6001600160a01b03821673888888888889758f76e7103c6cbf23abbf58f946600019610732565b6001600160a01b0381166000908152602081905260409020805460ff191660011790555b50919050565b60006001600160a01b0382161561072a576040516370a0823160e01b81526001600160a01b038316906370a08231906106e4903090600401611771565b602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611785565b61072c565b475b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261078384826107ec565b6107e657604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526107dc90859061088e565b6107e6848261088e565b50505050565b6000806000846001600160a01b0316846040516108099190610be0565b6000604051808303816000865af19150503d8060008114610846576040519150601f19603f3d011682016040523d82523d6000602084013e61084b565b606091505b5091509150818015610875575080511580610875575080806020019051810190610875919061179e565b8015610885575061088585610968565b95945050505050565b60006108e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166109779092919063ffffffff16565b9050805160001480610904575080806020019051810190610904919061179e565b6109635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161041b565b505050565b6001600160a01b03163b151590565b6060610986848460008561098e565b949350505050565b6060824710156109ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161041b565b600080866001600160a01b03168587604051610a0b9190610be0565b60006040518083038185875af1925050503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091509150610a5e87838387610a69565b979650505050505050565b60608315610ad6578251600003610acf57610a8385610968565b610acf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610986565b6109868383815115610aeb5781518083602001fd5b8060405162461bcd60e51b815260040161041b9190610bc6565b60008060208385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b813581811115610b5257600080fd5b866020828501011115610b6457600080fd5b60209290920196919550909350505050565b60005b83811015610b91578181015183820152602001610b79565b50506000910152565b60008151808452610bb2816020860160208601610b76565b601f01601f19169290920160200192915050565b602081526000610bd96020830184610b9a565b9392505050565b60008251610bf2818460208701610b76565b9190910192915050565b60008085851115610c0c57600080fd5b83861115610c1957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c4e5780818660040360031b1b83161692505b505092915050565b6001600160a01b0381168114610c6b57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610ca657610ca6610c6e565b60405290565b604051608081016001600160401b0381118282101715610ca657610ca6610c6e565b604051606081016001600160401b0381118282101715610ca657610ca6610c6e565b60405161018081016001600160401b0381118282101715610ca657610ca6610c6e565b604051601f8201601f191681016001600160401b0381118282101715610d3b57610d3b610c6e565b604052919050565b600060a08284031215610d5557600080fd5b610d5d610c84565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b803561055481610c56565b60048110610c6b57600080fd5b803561055481610d9c565b600082601f830112610dc557600080fd5b81356001600160401b03811115610dde57610dde610c6e565b610df1601f8201601f1916602001610d13565b818152846020838601011115610e0657600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c6b57600080fd5b600060a08284031215610e4357600080fd5b610e4b610c84565b90508135610e5881610c56565b8152602082810135908201526040820135610e7281610c56565b60408201526060820135610e8581610c56565b606082015260808201356001600160401b0380821115610ea457600080fd5b9083019060808286031215610eb857600080fd5b610ec0610cac565b8235610ecb81610d9c565b81526020830135610edb81610c56565b6020820152604083013582811115610ef257600080fd5b610efe87828601610db4565b60408301525060608301359250610f1483610e23565b606081019290925250608082015292915050565b600082601f830112610f3957600080fd5b813560206001600160401b0380831115610f5557610f55610c6e565b8260051b610f64838201610d13565b9384528581018301938381019088861115610f7e57600080fd5b84880192505b858310156110eb57823584811115610f9b57600080fd5b8801601f196060828c0382011215610fb257600080fd5b610fba610cce565b8783013587811115610fcb57600080fd5b8301610180818e0384011215610fe057600080fd5b610fe8610cf0565b92508881013583526040810135898401526060810135604084015261100f60808201610da9565b606084015261102060a08201610d91565b608084015261103160c08201610d91565b60a084015261104260e08201610d91565b60c0840152610100611055818301610d91565b60e085015261012080830135828601526101409150818301358186015250610160808301358286015261018083013591508982111561109357600080fd5b6110a18f8c84860101610db4565b908501525050908152604082013590868211156110bd57600080fd5b6110cb8c8984860101610db4565b818901526060929092013560408301525082529184019190840190610f84565b98975050505050505050565b600060a0828403121561110957600080fd5b611111610c84565b905061111c82610d91565b81526020828101359082015260408201356001600160401b038082111561114257600080fd5b61114e85838601610f28565b6040840152606084013591508082111561116757600080fd5b61117385838601610f28565b6060840152608084013591508082111561118c57600080fd5b5061119984828501610db4565b60808301525092915050565b60008060008060008061014087890312156111bf57600080fd5b86356111ca81610c56565b955060208701356111da81610c56565b9450604087013593506111f08860608901610d43565b92506101008701356001600160401b038082111561120d57600080fd5b6112198a838b01610e31565b935061012089013591508082111561123057600080fd5b5061123d89828a016110f7565b9150509295509295509295565b6001600160a01b03169052565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b634e487b7160e01b600052602160045260246000fd5b60048110610c6b57634e487b7160e01b600052602160045260246000fd5b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a0608086015280516113038161129d565b60a0860152602081015190911660c08501526040810151608060e086015290611330610120860183610b9a565b915060608101511515610100860152508091505092915050565b6113538161129d565b9052565b600082825180855260208086019550808260051b84010181860160005b8481101561149057601f198684030189528151606081518186528051828701528681015160808181890152604091508183015160a081818b015285850151955060c091506113c4828b018761134a565b91840151945060e0916113d98a84018761124a565b84015194506101006113ed8a82018761124a565b908401519450610120906114038a83018761124a565b918401519450610140916114198a84018761124a565b8401516101608a81019190915290840151610180808b0191909152918401516101a08a01528301516101c0890191909152925061145a6101e0880184610b9a565b9250878401519150868303888801526114738383610b9a565b938101519601959095525098840198925090830190600101611374565b5090979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a060408501526114ce60a0850182611357565b9050606083015184820360608601526114e78282611357565b915050608083015184820360808601526108858282610b9a565b6001600160a01b0387811682528616602082015260408101859052600061014061152e6060840187611257565b80610100840152611541818401866112bb565b9050828103610120840152611556818561149d565b9998505050505050505050565b600080600080600060a0868803121561157b57600080fd5b853561158681610c56565b9450602086013561159681610c56565b9350604086013592506060860135915060808601356001600160401b038111156115bf57600080fd5b6115cb88828901610e31565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090610a5e908301846112bb565b600080600080600080610140878903121561162c57600080fd5b863561163781610c56565b9550602087013561164781610c56565b945060408701359350606087013592506116648860808901610d43565b91506101208701356001600160401b0381111561168057600080fd5b61123d89828a016110f7565b6001600160a01b03878116825286166020820152604081018590526060810184905260006101406116c06080840186611257565b806101208401526115568184018561149d565b600080600080600060a086880312156116eb57600080fd5b85356116f681610c56565b9450602086013561170681610c56565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561173957600080fd5b835161174481610c56565b602085015190935061175581610c56565b604085015190925061176681610c56565b809150509250925092565b6001600160a01b0391909116815260200190565b60006020828403121561179757600080fd5b5051919050565b6000602082840312156117b057600080fd5b8151610bd981610e2356fea26469706673582212207e2c655e8724137acac7b21db01939f28b7d0caa6a58145fb535fd3d47652a4864736f6c63430008170033",
30
+ "bytecode": "0x608060405234801561001057600080fd5b506117f1806100206000396000f3fe6080604052600436106100225760003560e01c8063ef4093631461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610b05565b610064565b60405161005b9190610bc6565b60405180910390f35b60606000806100738585610103565b91509150600073888888888889758f76e7103c6cbf23abbf58f9466001600160a01b031683836040516100a69190610be0565b60006040518083038185875af1925050503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b5094509050806100fa57835184602001fd5b50505092915050565b60006060816101156004828688610bfc565b61011e91610c26565b9050366000610130866004818a610bfc565b90925090506001600160e01b0319831663092ccd6360e11b148061016457506001600160e01b0319831663640fc23d60e11b145b8061017f57506001600160e01b031983166376a4483f60e11b145b1561020a5760008080808080610197878901896111a5565b9550955095509550955095506101ac8261042e565b9a50888686868686866040516024016101ca96959493929190611501565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061042495505050505050565b63c241e3ab60e01b6001600160e01b03198416016102a25760008080808061023486880188611563565b945094509450945094506102478161042e565b99508785858585856040516024016102639594939291906115d8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529850610424945050505050565b6001600160e01b031983166358bda47560e01b14806102d157506001600160e01b03198316630a94245f60e21b145b806102ec57506001600160e01b03198316637b8b4b9560e01b145b156103325760008080808061030386880188611612565b955095509550509450945087858561031a87610559565b8686866040516024016102639695949392919061168c565b633dde3dab60e11b6001600160e01b03198416016103e057600080808061035b858701876116d3565b94509450509350935086848461037086610559565b6040516001600160a01b03938416602482015292909116604483015260648201526084810184905260a4810183905260c40160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506104249350505050565b60405162461bcd60e51b81526020600482015260146024820152732aa729aaa82827a92a22a22fa9a2a622a1aa27a960611b60448201526064015b60405180910390fd5b5050509250929050565b600080608083015151600381111561044857610448611287565b1415801561046d57506003608083015151600381111561046a5761046a611287565b14155b156104bb578160800151606001516104bb5760405162461bcd60e51b815260206004820152601160248201527014d0d0531157d254d7d491545552549151607a1b604482015260640161041b565b81516104c6906106a7565b602083015281516001600160a01b03166104e257506020015190565b81516001600160a01b031660009081526020819052604090205460ff1661055457815161052f906001600160a01b031673888888888889758f76e7103c6cbf23abbf58f946600019610732565b81516001600160a01b03166000908152602081905260409020805460ff191660011790555b919050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190611724565b50506040516370a0823160e01b81529091506001600160a01b038216906370a08231906105ef903090600401611771565b602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106309190611785565b6001600160a01b03821660009081526020819052604090205490925060ff166106a15761067d6001600160a01b03821673888888888889758f76e7103c6cbf23abbf58f946600019610732565b6001600160a01b0381166000908152602081905260409020805460ff191660011790555b50919050565b60006001600160a01b0382161561072a576040516370a0823160e01b81526001600160a01b038316906370a08231906106e4903090600401611771565b602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611785565b61072c565b475b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261078384826107ec565b6107e657604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526107dc90859061088e565b6107e6848261088e565b50505050565b6000806000846001600160a01b0316846040516108099190610be0565b6000604051808303816000865af19150503d8060008114610846576040519150601f19603f3d011682016040523d82523d6000602084013e61084b565b606091505b5091509150818015610875575080511580610875575080806020019051810190610875919061179e565b8015610885575061088585610968565b95945050505050565b60006108e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166109779092919063ffffffff16565b9050805160001480610904575080806020019051810190610904919061179e565b6109635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161041b565b505050565b6001600160a01b03163b151590565b6060610986848460008561098e565b949350505050565b6060824710156109ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161041b565b600080866001600160a01b03168587604051610a0b9190610be0565b60006040518083038185875af1925050503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091509150610a5e87838387610a69565b979650505050505050565b60608315610ad6578251600003610acf57610a8385610968565b610acf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610986565b6109868383815115610aeb5781518083602001fd5b8060405162461bcd60e51b815260040161041b9190610bc6565b60008060208385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b813581811115610b5257600080fd5b866020828501011115610b6457600080fd5b60209290920196919550909350505050565b60005b83811015610b91578181015183820152602001610b79565b50506000910152565b60008151808452610bb2816020860160208601610b76565b601f01601f19169290920160200192915050565b602081526000610bd96020830184610b9a565b9392505050565b60008251610bf2818460208701610b76565b9190910192915050565b60008085851115610c0c57600080fd5b83861115610c1957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c4e5780818660040360031b1b83161692505b505092915050565b6001600160a01b0381168114610c6b57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610ca657610ca6610c6e565b60405290565b604051608081016001600160401b0381118282101715610ca657610ca6610c6e565b604051606081016001600160401b0381118282101715610ca657610ca6610c6e565b60405161018081016001600160401b0381118282101715610ca657610ca6610c6e565b604051601f8201601f191681016001600160401b0381118282101715610d3b57610d3b610c6e565b604052919050565b600060a08284031215610d5557600080fd5b610d5d610c84565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b803561055481610c56565b60048110610c6b57600080fd5b803561055481610d9c565b600082601f830112610dc557600080fd5b81356001600160401b03811115610dde57610dde610c6e565b610df1601f8201601f1916602001610d13565b818152846020838601011115610e0657600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c6b57600080fd5b600060a08284031215610e4357600080fd5b610e4b610c84565b90508135610e5881610c56565b8152602082810135908201526040820135610e7281610c56565b60408201526060820135610e8581610c56565b606082015260808201356001600160401b0380821115610ea457600080fd5b9083019060808286031215610eb857600080fd5b610ec0610cac565b8235610ecb81610d9c565b81526020830135610edb81610c56565b6020820152604083013582811115610ef257600080fd5b610efe87828601610db4565b60408301525060608301359250610f1483610e23565b606081019290925250608082015292915050565b600082601f830112610f3957600080fd5b813560206001600160401b0380831115610f5557610f55610c6e565b8260051b610f64838201610d13565b9384528581018301938381019088861115610f7e57600080fd5b84880192505b858310156110eb57823584811115610f9b57600080fd5b8801601f196060828c0382011215610fb257600080fd5b610fba610cce565b8783013587811115610fcb57600080fd5b8301610180818e0384011215610fe057600080fd5b610fe8610cf0565b92508881013583526040810135898401526060810135604084015261100f60808201610da9565b606084015261102060a08201610d91565b608084015261103160c08201610d91565b60a084015261104260e08201610d91565b60c0840152610100611055818301610d91565b60e085015261012080830135828601526101409150818301358186015250610160808301358286015261018083013591508982111561109357600080fd5b6110a18f8c84860101610db4565b908501525050908152604082013590868211156110bd57600080fd5b6110cb8c8984860101610db4565b818901526060929092013560408301525082529184019190840190610f84565b98975050505050505050565b600060a0828403121561110957600080fd5b611111610c84565b905061111c82610d91565b81526020828101359082015260408201356001600160401b038082111561114257600080fd5b61114e85838601610f28565b6040840152606084013591508082111561116757600080fd5b61117385838601610f28565b6060840152608084013591508082111561118c57600080fd5b5061119984828501610db4565b60808301525092915050565b60008060008060008061014087890312156111bf57600080fd5b86356111ca81610c56565b955060208701356111da81610c56565b9450604087013593506111f08860608901610d43565b92506101008701356001600160401b038082111561120d57600080fd5b6112198a838b01610e31565b935061012089013591508082111561123057600080fd5b5061123d89828a016110f7565b9150509295509295509295565b6001600160a01b03169052565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b634e487b7160e01b600052602160045260246000fd5b60048110610c6b57634e487b7160e01b600052602160045260246000fd5b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a0608086015280516113038161129d565b60a0860152602081015190911660c08501526040810151608060e086015290611330610120860183610b9a565b915060608101511515610100860152508091505092915050565b6113538161129d565b9052565b600082825180855260208086019550808260051b84010181860160005b8481101561149057601f198684030189528151606081518186528051828701528681015160808181890152604091508183015160a081818b015285850151955060c091506113c4828b018761134a565b91840151945060e0916113d98a84018761124a565b84015194506101006113ed8a82018761124a565b908401519450610120906114038a83018761124a565b918401519450610140916114198a84018761124a565b8401516101608a81019190915290840151610180808b0191909152918401516101a08a01528301516101c0890191909152925061145a6101e0880184610b9a565b9250878401519150868303888801526114738383610b9a565b938101519601959095525098840198925090830190600101611374565b5090979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a060408501526114ce60a0850182611357565b9050606083015184820360608601526114e78282611357565b915050608083015184820360808601526108858282610b9a565b6001600160a01b0387811682528616602082015260408101859052600061014061152e6060840187611257565b80610100840152611541818401866112bb565b9050828103610120840152611556818561149d565b9998505050505050505050565b600080600080600060a0868803121561157b57600080fd5b853561158681610c56565b9450602086013561159681610c56565b9350604086013592506060860135915060808601356001600160401b038111156115bf57600080fd5b6115cb88828901610e31565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090610a5e908301846112bb565b600080600080600080610140878903121561162c57600080fd5b863561163781610c56565b9550602087013561164781610c56565b945060408701359350606087013592506116648860808901610d43565b91506101208701356001600160401b0381111561168057600080fd5b61123d89828a016110f7565b6001600160a01b03878116825286166020820152604081018590526060810184905260006101406116c06080840186611257565b806101208401526115568184018561149d565b600080600080600060a086880312156116eb57600080fd5b85356116f681610c56565b9450602086013561170681610c56565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561173957600080fd5b835161174481610c56565b602085015190935061175581610c56565b604085015190925061176681610c56565b809150509250925092565b6001600160a01b0391909116815260200190565b60006020828403121561179757600080fd5b5051919050565b6000602082840312156117b057600080fd5b8151610bd981610e2356fea2646970667358221220d1c0afaad9b427e1c68d79b8b3d1f8e6f1a42811779a285dee5cfe04829e44c564736f6c63430008170033",
31
+ "deployedBytecode": "0x6080604052600436106100225760003560e01c8063ef4093631461002e57600080fd5b3661002957005b600080fd5b34801561003a57600080fd5b5061004e610049366004610b05565b610064565b60405161005b9190610bc6565b60405180910390f35b60606000806100738585610103565b91509150600073888888888889758f76e7103c6cbf23abbf58f9466001600160a01b031683836040516100a69190610be0565b60006040518083038185875af1925050503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b5094509050806100fa57835184602001fd5b50505092915050565b60006060816101156004828688610bfc565b61011e91610c26565b9050366000610130866004818a610bfc565b90925090506001600160e01b0319831663092ccd6360e11b148061016457506001600160e01b0319831663640fc23d60e11b145b8061017f57506001600160e01b031983166376a4483f60e11b145b1561020a5760008080808080610197878901896111a5565b9550955095509550955095506101ac8261042e565b9a50888686868686866040516024016101ca96959493929190611501565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152995061042495505050505050565b63c241e3ab60e01b6001600160e01b03198416016102a25760008080808061023486880188611563565b945094509450945094506102478161042e565b99508785858585856040516024016102639594939291906115d8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529850610424945050505050565b6001600160e01b031983166358bda47560e01b14806102d157506001600160e01b03198316630a94245f60e21b145b806102ec57506001600160e01b03198316637b8b4b9560e01b145b156103325760008080808061030386880188611612565b955095509550509450945087858561031a87610559565b8686866040516024016102639695949392919061168c565b633dde3dab60e11b6001600160e01b03198416016103e057600080808061035b858701876116d3565b94509450509350935086848461037086610559565b6040516001600160a01b03938416602482015292909116604483015260648201526084810184905260a4810183905260c40160408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506104249350505050565b60405162461bcd60e51b81526020600482015260146024820152732aa729aaa82827a92a22a22fa9a2a622a1aa27a960611b60448201526064015b60405180910390fd5b5050509250929050565b600080608083015151600381111561044857610448611287565b1415801561046d57506003608083015151600381111561046a5761046a611287565b14155b156104bb578160800151606001516104bb5760405162461bcd60e51b815260206004820152601160248201527014d0d0531157d254d7d491545552549151607a1b604482015260640161041b565b81516104c6906106a7565b602083015281516001600160a01b03166104e257506020015190565b81516001600160a01b031660009081526020819052604090205460ff1661055457815161052f906001600160a01b031673888888888889758f76e7103c6cbf23abbf58f946600019610732565b81516001600160a01b03166000908152602081905260409020805460ff191660011790555b919050565b600080826001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190611724565b50506040516370a0823160e01b81529091506001600160a01b038216906370a08231906105ef903090600401611771565b602060405180830381865afa15801561060c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106309190611785565b6001600160a01b03821660009081526020819052604090205490925060ff166106a15761067d6001600160a01b03821673888888888889758f76e7103c6cbf23abbf58f946600019610732565b6001600160a01b0381166000908152602081905260409020805460ff191660011790555b50919050565b60006001600160a01b0382161561072a576040516370a0823160e01b81526001600160a01b038316906370a08231906106e4903090600401611771565b602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611785565b61072c565b475b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261078384826107ec565b6107e657604080516001600160a01b038516602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526107dc90859061088e565b6107e6848261088e565b50505050565b6000806000846001600160a01b0316846040516108099190610be0565b6000604051808303816000865af19150503d8060008114610846576040519150601f19603f3d011682016040523d82523d6000602084013e61084b565b606091505b5091509150818015610875575080511580610875575080806020019051810190610875919061179e565b8015610885575061088585610968565b95945050505050565b60006108e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166109779092919063ffffffff16565b9050805160001480610904575080806020019051810190610904919061179e565b6109635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161041b565b505050565b6001600160a01b03163b151590565b6060610986848460008561098e565b949350505050565b6060824710156109ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161041b565b600080866001600160a01b03168587604051610a0b9190610be0565b60006040518083038185875af1925050503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091509150610a5e87838387610a69565b979650505050505050565b60608315610ad6578251600003610acf57610a8385610968565b610acf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610986565b6109868383815115610aeb5781518083602001fd5b8060405162461bcd60e51b815260040161041b9190610bc6565b60008060208385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b813581811115610b5257600080fd5b866020828501011115610b6457600080fd5b60209290920196919550909350505050565b60005b83811015610b91578181015183820152602001610b79565b50506000910152565b60008151808452610bb2816020860160208601610b76565b601f01601f19169290920160200192915050565b602081526000610bd96020830184610b9a565b9392505050565b60008251610bf2818460208701610b76565b9190910192915050565b60008085851115610c0c57600080fd5b83861115610c1957600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c4e5780818660040360031b1b83161692505b505092915050565b6001600160a01b0381168114610c6b57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715610ca657610ca6610c6e565b60405290565b604051608081016001600160401b0381118282101715610ca657610ca6610c6e565b604051606081016001600160401b0381118282101715610ca657610ca6610c6e565b60405161018081016001600160401b0381118282101715610ca657610ca6610c6e565b604051601f8201601f191681016001600160401b0381118282101715610d3b57610d3b610c6e565b604052919050565b600060a08284031215610d5557600080fd5b610d5d610c84565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b803561055481610c56565b60048110610c6b57600080fd5b803561055481610d9c565b600082601f830112610dc557600080fd5b81356001600160401b03811115610dde57610dde610c6e565b610df1601f8201601f1916602001610d13565b818152846020838601011115610e0657600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610c6b57600080fd5b600060a08284031215610e4357600080fd5b610e4b610c84565b90508135610e5881610c56565b8152602082810135908201526040820135610e7281610c56565b60408201526060820135610e8581610c56565b606082015260808201356001600160401b0380821115610ea457600080fd5b9083019060808286031215610eb857600080fd5b610ec0610cac565b8235610ecb81610d9c565b81526020830135610edb81610c56565b6020820152604083013582811115610ef257600080fd5b610efe87828601610db4565b60408301525060608301359250610f1483610e23565b606081019290925250608082015292915050565b600082601f830112610f3957600080fd5b813560206001600160401b0380831115610f5557610f55610c6e565b8260051b610f64838201610d13565b9384528581018301938381019088861115610f7e57600080fd5b84880192505b858310156110eb57823584811115610f9b57600080fd5b8801601f196060828c0382011215610fb257600080fd5b610fba610cce565b8783013587811115610fcb57600080fd5b8301610180818e0384011215610fe057600080fd5b610fe8610cf0565b92508881013583526040810135898401526060810135604084015261100f60808201610da9565b606084015261102060a08201610d91565b608084015261103160c08201610d91565b60a084015261104260e08201610d91565b60c0840152610100611055818301610d91565b60e085015261012080830135828601526101409150818301358186015250610160808301358286015261018083013591508982111561109357600080fd5b6110a18f8c84860101610db4565b908501525050908152604082013590868211156110bd57600080fd5b6110cb8c8984860101610db4565b818901526060929092013560408301525082529184019190840190610f84565b98975050505050505050565b600060a0828403121561110957600080fd5b611111610c84565b905061111c82610d91565b81526020828101359082015260408201356001600160401b038082111561114257600080fd5b61114e85838601610f28565b6040840152606084013591508082111561116757600080fd5b61117385838601610f28565b6060840152608084013591508082111561118c57600080fd5b5061119984828501610db4565b60808301525092915050565b60008060008060008061014087890312156111bf57600080fd5b86356111ca81610c56565b955060208701356111da81610c56565b9450604087013593506111f08860608901610d43565b92506101008701356001600160401b038082111561120d57600080fd5b6112198a838b01610e31565b935061012089013591508082111561123057600080fd5b5061123d89828a016110f7565b9150509295509295509295565b6001600160a01b03169052565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b634e487b7160e01b600052602160045260246000fd5b60048110610c6b57634e487b7160e01b600052602160045260246000fd5b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a0608086015280516113038161129d565b60a0860152602081015190911660c08501526040810151608060e086015290611330610120860183610b9a565b915060608101511515610100860152508091505092915050565b6113538161129d565b9052565b600082825180855260208086019550808260051b84010181860160005b8481101561149057601f198684030189528151606081518186528051828701528681015160808181890152604091508183015160a081818b015285850151955060c091506113c4828b018761134a565b91840151945060e0916113d98a84018761124a565b84015194506101006113ed8a82018761124a565b908401519450610120906114038a83018761124a565b918401519450610140916114198a84018761124a565b8401516101608a81019190915290840151610180808b0191909152918401516101a08a01528301516101c0890191909152925061145a6101e0880184610b9a565b9250878401519150868303888801526114738383610b9a565b938101519601959095525098840198925090830190600101611374565b5090979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a060408501526114ce60a0850182611357565b9050606083015184820360608601526114e78282611357565b915050608083015184820360808601526108858282610b9a565b6001600160a01b0387811682528616602082015260408101859052600061014061152e6060840187611257565b80610100840152611541818401866112bb565b9050828103610120840152611556818561149d565b9998505050505050505050565b600080600080600060a0868803121561157b57600080fd5b853561158681610c56565b9450602086013561159681610c56565b9350604086013592506060860135915060808601356001600160401b038111156115bf57600080fd5b6115cb88828901610e31565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090610a5e908301846112bb565b600080600080600080610140878903121561162c57600080fd5b863561163781610c56565b9550602087013561164781610c56565b945060408701359350606087013592506116648860808901610d43565b91506101208701356001600160401b0381111561168057600080fd5b61123d89828a016110f7565b6001600160a01b03878116825286166020820152604081018590526060810184905260006101406116c06080840186611257565b806101208401526115568184018561149d565b600080600080600060a086880312156116eb57600080fd5b85356116f681610c56565b9450602086013561170681610c56565b94979496505050506040830135926060810135926080909101359150565b60008060006060848603121561173957600080fd5b835161174481610c56565b602085015190935061175581610c56565b604085015190925061176681610c56565b809150509250925092565b6001600160a01b0391909116815260200190565b60006020828403121561179757600080fd5b5051919050565b6000602082840312156117b057600080fd5b8151610bd981610e2356fea2646970667358221220d1c0afaad9b427e1c68d79b8b3d1f8e6f1a42811779a285dee5cfe04829e44c564736f6c63430008170033",
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/13d112e4a3b90ce4487299a2047fb557.json"
3
+ "buildInfo": "../../../../build-info/1bffa552d37c21c0199e66410e781db1.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/13d112e4a3b90ce4487299a2047fb557.json"
3
+ "buildInfo": "../../../../build-info/1bffa552d37c21c0199e66410e781db1.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "ActionDelegateBase",
4
4
  "sourceName": "contracts/router/base/ActionDelegateBase.sol",
5
5
  "abi": [],
6
- "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122042ed168550f8e1fcef5669f8bcfe802db7f462fcc8069d4a3dfe7b39e0cca64f64736f6c63430008170033",
7
- "deployedBytecode": "0x6080604052600080fdfea264697066735822122042ed168550f8e1fcef5669f8bcfe802db7f462fcc8069d4a3dfe7b39e0cca64f64736f6c63430008170033",
6
+ "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e904cc61c58e65cab9384adf7ab71026d7295f5e884381e43386d15aeff892b364736f6c63430008170033",
7
+ "deployedBytecode": "0x6080604052600080fdfea2646970667358221220e904cc61c58e65cab9384adf7ab71026d7295f5e884381e43386d15aeff892b364736f6c63430008170033",
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/13d112e4a3b90ce4487299a2047fb557.json"
3
+ "buildInfo": "../../../../build-info/1bffa552d37c21c0199e66410e781db1.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "ApproxStateLib",
4
4
  "sourceName": "contracts/router/math/ApproxStateLib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a91ed61e6bd60d8d378ace72cb6c8b5fa7a257c52ed05d188e286bf62f22e08064736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a91ed61e6bd60d8d378ace72cb6c8b5fa7a257c52ed05d188e286bf62f22e08064736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dd8787953f5d41407b4fc07c51dff5ba86a9d267f2c343d719668f622e5698ac64736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dd8787953f5d41407b4fc07c51dff5ba86a9d267f2c343d719668f622e5698ac64736f6c63430008170033",
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/13d112e4a3b90ce4487299a2047fb557.json"
3
+ "buildInfo": "../../../../build-info/1bffa552d37c21c0199e66410e781db1.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtInLib",
4
4
  "sourceName": "contracts/router/math/MarketApproxLib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c80a7424792103bafda835dd60365a4be3f9e49bb42b8dc0c3a531552fe4cfc064736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c80a7424792103bafda835dd60365a4be3f9e49bb42b8dc0c3a531552fe4cfc064736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122082f3c9a438558cdbff296f11727b014de2c9450183450e107fb3400755c2407664736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122082f3c9a438558cdbff296f11727b014de2c9450183450e107fb3400755c2407664736f6c63430008170033",
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/13d112e4a3b90ce4487299a2047fb557.json"
3
+ "buildInfo": "../../../../build-info/1bffa552d37c21c0199e66410e781db1.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtOutLib",
4
4
  "sourceName": "contracts/router/math/MarketApproxLib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d6fb3f6e5c5f02354dcb8aa59c3bfbd9be88dfe0276d7aafae1b38123773b61864736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d6fb3f6e5c5f02354dcb8aa59c3bfbd9be88dfe0276d7aafae1b38123773b61864736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203ef74022f162d5ffc28e4fcb8928b0bd4750226801d7e5809b8953f15a3ca6a764736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203ef74022f162d5ffc28e4fcb8928b0bd4750226801d7e5809b8953f15a3ca6a764736f6c63430008170033",
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/13d112e4a3b90ce4487299a2047fb557.json"
3
+ "buildInfo": "../../../../build-info/1bffa552d37c21c0199e66410e781db1.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtInLibOnchain",
4
4
  "sourceName": "contracts/router/math/MarketApproxLibOnchain.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206efea1b650e3d5c880c4a0b754674290c78b67122ce1eb6e9b1bbc0da8a6caf164736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206efea1b650e3d5c880c4a0b754674290c78b67122ce1eb6e9b1bbc0da8a6caf164736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f0f8c14eb68b51c9c48787b6dd1072f2f450b86634247d92f266d6bcd213279264736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f0f8c14eb68b51c9c48787b6dd1072f2f450b86634247d92f266d6bcd213279264736f6c63430008170033",
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/13d112e4a3b90ce4487299a2047fb557.json"
3
+ "buildInfo": "../../../../build-info/1bffa552d37c21c0199e66410e781db1.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "MarketApproxPtOutLibOnchain",
4
4
  "sourceName": "contracts/router/math/MarketApproxLibOnchain.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220857b8274959234e480c193471964a5577ad1e01d3960316c781a9cfd4f164e1564736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220857b8274959234e480c193471964a5577ad1e01d3960316c781a9cfd4f164e1564736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122032f5e398472a056fe1581e551ae93de1759bece44637ab20df72628ae07f6ed064736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122032f5e398472a056fe1581e551ae93de1759bece44637ab20df72628ae07f6ed064736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -0,0 +1,121 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../SYBaseUpg.sol";
5
+ import "../../../../interfaces/IPTokenWithSupplyCap.sol";
6
+ import "../../../../interfaces/IPExchangeRateOracle.sol";
7
+ import "../../../../interfaces/Lombard/ILBTCMinterBase.sol";
8
+
9
+ contract PendleLBTCBaseSY is SYBaseUpg, IPTokenWithSupplyCap {
10
+ event SetNewExchangeRateOracle(address oracle);
11
+
12
+ address public exchangeRateOracle;
13
+
14
+ // solhint-disable immutable-vars-naming
15
+ // solhint-disable const-name-snakecase
16
+ address public constant CBBTC = 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf;
17
+ address public constant LBTC = 0xecAc9C5F704e954931349Da37F60E39f515c11c1;
18
+ address public constant MINTER = 0x92c01FC0F59857c6E920EdFf1139904b2Bb74c7c;
19
+ uint256 public constant MINTER_MAX_COMISSION = 10000;
20
+
21
+ constructor() SYBaseUpg(LBTC) {}
22
+
23
+ function initialize(address _initialOracle) external initializer {
24
+ __SYBaseUpg_init("SY Lombard LBTC", "SY-LBTC");
25
+ _safeApproveInf(CBBTC, MINTER);
26
+ _setExchangeRateOracle(_initialOracle);
27
+ }
28
+
29
+ /*///////////////////////////////////////////////////////////////
30
+ DEPOSIT/REDEEM USING BASE TOKENS
31
+ //////////////////////////////////////////////////////////////*/
32
+
33
+ function _deposit(
34
+ address tokenIn,
35
+ uint256 amountDeposited
36
+ ) internal virtual override returns (uint256 /*amountSharesOut*/) {
37
+ if (tokenIn == LBTC) return amountDeposited;
38
+
39
+ uint256 preBalance = _selfBalance(LBTC);
40
+ ILBTCMinterBase(MINTER).swapCBBTCToLBTC(amountDeposited);
41
+ return _selfBalance(LBTC) - preBalance;
42
+ }
43
+
44
+ function _redeem(
45
+ address receiver,
46
+ address /*tokenOut*/,
47
+ uint256 amountSharesToRedeem
48
+ ) internal override returns (uint256) {
49
+ _transferOut(LBTC, receiver, amountSharesToRedeem);
50
+ return amountSharesToRedeem;
51
+ }
52
+
53
+ /*///////////////////////////////////////////////////////////////
54
+ EXCHANGE-RATE
55
+ //////////////////////////////////////////////////////////////*/
56
+
57
+ function exchangeRate() public view virtual override returns (uint256) {
58
+ return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
59
+ }
60
+
61
+ function setExchangeRateOracle(address newOracle) external virtual onlyOwner {
62
+ _setExchangeRateOracle(newOracle);
63
+ }
64
+
65
+ function _setExchangeRateOracle(address newOracle) internal virtual {
66
+ exchangeRateOracle = newOracle;
67
+ emit SetNewExchangeRateOracle(newOracle);
68
+ }
69
+
70
+ function _previewDeposit(
71
+ address tokenIn,
72
+ uint256 amountTokenToDeposit
73
+ ) internal view override returns (uint256 /*amountSharesOut*/) {
74
+ if (tokenIn == LBTC) return amountTokenToDeposit;
75
+
76
+ uint256 feeRate = ILBTCMinterBase(MINTER).relativeFee();
77
+ uint256 feeAmount = PMath.rawDivUp(amountTokenToDeposit * feeRate, MINTER_MAX_COMISSION);
78
+ return amountTokenToDeposit - feeAmount;
79
+ }
80
+
81
+ /*///////////////////////////////////////////////////////////////
82
+ MISC FUNCTIONS FOR METADATA
83
+ //////////////////////////////////////////////////////////////*/
84
+
85
+ function _previewRedeem(
86
+ address /*tokenOut*/,
87
+ uint256 amountSharesToRedeem
88
+ ) internal pure override returns (uint256 /*amountTokenOut*/) {
89
+ return amountSharesToRedeem;
90
+ }
91
+
92
+ function getTokensIn() public pure override returns (address[] memory res) {
93
+ return ArrayLib.create(CBBTC, LBTC);
94
+ }
95
+
96
+ function getTokensOut() public pure override returns (address[] memory res) {
97
+ return ArrayLib.create(LBTC);
98
+ }
99
+
100
+ function isValidTokenIn(address token) public pure override returns (bool) {
101
+ return token == CBBTC || token == LBTC;
102
+ }
103
+
104
+ function isValidTokenOut(address token) public pure override returns (bool) {
105
+ return token == LBTC;
106
+ }
107
+
108
+ function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
109
+ return (AssetType.TOKEN, CBBTC, IERC20Metadata(CBBTC).decimals());
110
+ }
111
+
112
+ function getAbsoluteTotalSupply() external view returns (uint256) {
113
+ // to be upgraded by Lombard to expose totalStake variable
114
+ // this function fails/be inaccurate when stakeLimit is lowered to be smaller than remaining stake
115
+ return ILBTCMinterBase(MINTER).stakeLimit() - ILBTCMinterBase(MINTER).remainingStake();
116
+ }
117
+
118
+ function getAbsoluteSupplyCap() external view returns (uint256) {
119
+ return ILBTCMinterBase(MINTER).stakeLimit();
120
+ }
121
+ }
@@ -29,7 +29,7 @@ interface IPActionAddRemoveLiqV3 is IPAllEventsV3 {
29
29
  uint256 netPtIn,
30
30
  uint256 minLpOut,
31
31
  ApproxParams calldata guessPtSwapToSy,
32
- LimitOrderData memory limit
32
+ LimitOrderData calldata limit
33
33
  ) external returns (uint256 netLpOut, uint256 netSyFee);
34
34
 
35
35
  function addLiquiditySingleToken(
@@ -38,7 +38,7 @@ interface IPActionAddRemoveLiqV3 is IPAllEventsV3 {
38
38
  uint256 minLpOut,
39
39
  ApproxParams calldata guessPtReceivedFromSy,
40
40
  TokenInput calldata input,
41
- LimitOrderData memory limit
41
+ LimitOrderData calldata limit
42
42
  ) external payable returns (uint256 netLpOut, uint256 netSyFee, uint256 netSyInterm);
43
43
 
44
44
  function addLiquiditySingleSy(
@@ -47,7 +47,7 @@ interface IPActionAddRemoveLiqV3 is IPAllEventsV3 {
47
47
  uint256 netSyIn,
48
48
  uint256 minLpOut,
49
49
  ApproxParams calldata guessPtReceivedFromSy,
50
- LimitOrderData memory limit
50
+ LimitOrderData calldata limit
51
51
  ) external returns (uint256 netLpOut, uint256 netSyFee);
52
52
 
53
53
  function addLiquiditySingleTokenKeepYt(
@@ -88,7 +88,7 @@ interface IPActionAddRemoveLiqV3 is IPAllEventsV3 {
88
88
  uint256 netLpToRemove,
89
89
  uint256 minPtOut,
90
90
  ApproxParams calldata guessPtReceivedFromSy,
91
- LimitOrderData memory limit
91
+ LimitOrderData calldata limit
92
92
  ) external returns (uint256 netPtOut, uint256 netSyFee);
93
93
 
94
94
  function removeLiquiditySingleToken(
@@ -96,7 +96,7 @@ interface IPActionAddRemoveLiqV3 is IPAllEventsV3 {
96
96
  address market,
97
97
  uint256 netLpToRemove,
98
98
  TokenOutput calldata output,
99
- LimitOrderData memory limit
99
+ LimitOrderData calldata limit
100
100
  ) external returns (uint256 netTokenOut, uint256 netSyFee, uint256 netSyInterm);
101
101
 
102
102
  function removeLiquiditySingleSy(
@@ -104,6 +104,6 @@ interface IPActionAddRemoveLiqV3 is IPAllEventsV3 {
104
104
  address market,
105
105
  uint256 netLpToRemove,
106
106
  uint256 minSyOut,
107
- LimitOrderData memory limit
107
+ LimitOrderData calldata limit
108
108
  ) external returns (uint256 netSyOut, uint256 netSyFee);
109
109
  }
@@ -82,6 +82,12 @@ interface IPActionMiscV3 is IPAllEventsV3 {
82
82
  uint256[] calldata netSwaps
83
83
  ) external payable returns (uint256[] memory netOutFromSwaps);
84
84
 
85
+ function swapTokenToToken(
86
+ address receiver,
87
+ uint256 minTokenOut,
88
+ TokenInput calldata inp
89
+ ) external payable returns (uint256 netTokenOut);
90
+
85
91
  function swapTokenToTokenViaSy(
86
92
  address receiver,
87
93
  address SY,
@@ -97,7 +103,7 @@ interface IPActionMiscV3 is IPAllEventsV3 {
97
103
  uint256 netYtIn,
98
104
  uint256 netLpIn,
99
105
  TokenOutput calldata output,
100
- LimitOrderData memory limit
106
+ LimitOrderData calldata limit
101
107
  ) external returns (uint256 netTokenOut, ExitPreExpReturnParams memory params);
102
108
 
103
109
  function exitPreExpToSy(
@@ -107,7 +113,7 @@ interface IPActionMiscV3 is IPAllEventsV3 {
107
113
  uint256 netYtIn,
108
114
  uint256 netLpIn,
109
115
  uint256 minSyOut,
110
- LimitOrderData memory limit
116
+ LimitOrderData calldata limit
111
117
  ) external returns (ExitPreExpReturnParams memory params);
112
118
 
113
119
  function exitPostExpToToken(
@@ -13,7 +13,7 @@ interface IPActionSwapPTV3 is IPAllEventsV3 {
13
13
  uint256 minPtOut,
14
14
  ApproxParams calldata guessPtOut,
15
15
  TokenInput calldata input,
16
- LimitOrderData memory limit
16
+ LimitOrderData calldata limit
17
17
  ) external payable returns (uint256 netPtOut, uint256 netSyFee, uint256 netSyInterm);
18
18
 
19
19
  function swapExactSyForPt(
@@ -22,7 +22,7 @@ interface IPActionSwapPTV3 is IPAllEventsV3 {
22
22
  uint256 exactSyIn,
23
23
  uint256 minPtOut,
24
24
  ApproxParams calldata guessPtOut,
25
- LimitOrderData memory limit
25
+ LimitOrderData calldata limit
26
26
  ) external returns (uint256 netPtOut, uint256 netSyFee);
27
27
 
28
28
  function swapExactPtForToken(
@@ -30,7 +30,7 @@ interface IPActionSwapPTV3 is IPAllEventsV3 {
30
30
  address market,
31
31
  uint256 exactPtIn,
32
32
  TokenOutput calldata output,
33
- LimitOrderData memory limit
33
+ LimitOrderData calldata limit
34
34
  ) external returns (uint256 netTokenOut, uint256 netSyFee, uint256 netSyInterm);
35
35
 
36
36
  function swapExactPtForSy(
@@ -38,6 +38,6 @@ interface IPActionSwapPTV3 is IPAllEventsV3 {
38
38
  address market,
39
39
  uint256 exactPtIn,
40
40
  uint256 minSyOut,
41
- LimitOrderData memory limit
41
+ LimitOrderData calldata limit
42
42
  ) external returns (uint256 netSyOut, uint256 netSyFee);
43
43
  }
@@ -13,7 +13,7 @@ interface IPActionSwapYTV3 is IPAllEventsV3 {
13
13
  uint256 minYtOut,
14
14
  ApproxParams calldata guessYtOut,
15
15
  TokenInput calldata input,
16
- LimitOrderData memory limit
16
+ LimitOrderData calldata limit
17
17
  ) external payable returns (uint256 netYtOut, uint256 netSyFee, uint256 netSyInterm);
18
18
 
19
19
  function swapExactSyForYt(
@@ -22,7 +22,7 @@ interface IPActionSwapYTV3 is IPAllEventsV3 {
22
22
  uint256 exactSyIn,
23
23
  uint256 minYtOut,
24
24
  ApproxParams calldata guessYtOut,
25
- LimitOrderData memory limit
25
+ LimitOrderData calldata limit
26
26
  ) external returns (uint256 netYtOut, uint256 netSyFee);
27
27
 
28
28
  function swapExactYtForToken(
@@ -30,7 +30,7 @@ interface IPActionSwapYTV3 is IPAllEventsV3 {
30
30
  address market,
31
31
  uint256 exactYtIn,
32
32
  TokenOutput calldata output,
33
- LimitOrderData memory limit
33
+ LimitOrderData calldata limit
34
34
  ) external returns (uint256 netTokenOut, uint256 netSyFee, uint256 netSyInterm);
35
35
 
36
36
  function swapExactYtForSy(
@@ -38,7 +38,7 @@ interface IPActionSwapYTV3 is IPAllEventsV3 {
38
38
  address market,
39
39
  uint256 exactYtIn,
40
40
  uint256 minSyOut,
41
- LimitOrderData memory limit
41
+ LimitOrderData calldata limit
42
42
  ) external returns (uint256 netSyOut, uint256 netSyFee);
43
43
 
44
44
  function swapExactPtForYt(
@@ -104,10 +104,6 @@ struct LimitOrderData {
104
104
  bytes optData;
105
105
  }
106
106
 
107
- struct LimitOrder_OptData_V1 {
108
- uint256 netOffchain;
109
- }
110
-
111
107
  struct ApproxParams {
112
108
  uint256 guessMin;
113
109
  uint256 guessMax;
@@ -9,7 +9,6 @@ import "./IPActionMiscV3.sol";
9
9
  import "./IPActionCallbackV3.sol";
10
10
  import "./IPActionStorageV4.sol";
11
11
  import "./IPActionSimple.sol";
12
- import "./IPActionSwapLimitV3.sol";
13
12
 
14
13
  interface IPAllActionV3 is
15
14
  IPActionAddRemoveLiqV3,
@@ -18,6 +17,5 @@ interface IPAllActionV3 is
18
17
  IPActionMiscV3,
19
18
  IPActionCallbackV3,
20
19
  IPActionStorageV4,
21
- IPActionSimple,
22
- IPActionSwapLimitV3
20
+ IPActionSimple
23
21
  {}
@@ -265,53 +265,10 @@ interface IPActionStorageEvents {
265
265
  event SelectorToFacetSet(bytes4 indexed selector, address indexed facet);
266
266
  }
267
267
 
268
- interface IPActionSwapLimitV3Events {
269
- event SwapMaxPtForTokenLimitOnly(
270
- address indexed caller,
271
- address indexed market,
272
- address indexed token,
273
- address receiver,
274
- uint256 maxPtIn,
275
- uint256 netTokenOut,
276
- uint256 netSyInterm,
277
- uint256 netPtReturned
278
- );
279
-
280
- event SwapMaxPtForSyLimitOnly(
281
- address indexed caller,
282
- address indexed market,
283
- address indexed receiver,
284
- uint256 maxPtIn,
285
- uint256 netSyOut,
286
- uint256 netPtReturned
287
- );
288
-
289
- event SwapMaxTokenForYtLimitOnly(
290
- address indexed caller,
291
- address indexed market,
292
- address indexed token,
293
- address receiver,
294
- uint256 maxTokenIn,
295
- uint256 netYtOut,
296
- uint256 netSyInterm,
297
- uint256 netSyReturned
298
- );
299
-
300
- event SwapMaxSyForYtLimitOnly(
301
- address indexed caller,
302
- address indexed market,
303
- address indexed receiver,
304
- uint256 maxSyIn,
305
- uint256 netYtOut,
306
- uint256 netSyReturned
307
- );
308
- }
309
-
310
268
  interface IPAllEventsV3 is
311
269
  IPActionAddRemoveLiqV3Events,
312
270
  IPActionSwapPTV3Events,
313
271
  IPActionSwapYTV3Events,
314
272
  IPActionMiscV3Events,
315
- IPActionStorageEvents,
316
- IPActionSwapLimitV3Events
273
+ IPActionStorageEvents
317
274
  {}
@@ -0,0 +1,11 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";
5
+
6
+ enum PendleOracleType {
7
+ PT_TO_SY,
8
+ PT_TO_ASSET
9
+ }
10
+
11
+ interface IPChainlinkOracle is AggregatorV3Interface {}