@venusprotocol/venus-protocol 3.0.0-dev.13 → 3.0.0-dev.14

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 (201) hide show
  1. package/README.md +46 -139
  2. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +4 -0
  3. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json +183 -0
  4. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  5. package/artifacts/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.dbg.json +1 -1
  6. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  7. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
  8. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/{draft-IERC20Permit.sol → IERC20Permit.sol}/IERC20Permit.json +1 -1
  9. package/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  10. package/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
  11. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  12. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
  13. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  14. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +1 -1
  15. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  16. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  17. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +1 -1
  18. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +1 -1
  19. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +4 -0
  20. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json +233 -0
  21. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +4 -0
  22. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/{draft-IERC20PermitUpgradeable.sol → IERC20PermitUpgradeable.sol}/IERC20PermitUpgradeable.json +1 -1
  23. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +1 -1
  24. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.json +2 -2
  25. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  26. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
  27. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  28. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +4 -0
  29. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.json +181 -0
  30. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +4 -0
  31. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.json +282 -0
  32. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +4 -0
  33. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.json +40 -0
  34. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +4 -0
  35. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.json +30 -0
  36. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +4 -0
  37. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.json +75 -0
  38. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +4 -0
  39. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.json +49 -0
  40. package/artifacts/build-info/ace314491952b59855cb85d2b2f6e8f3.json +1 -0
  41. package/artifacts/contracts/DelegateBorrowers/SwapDebtDelegate.sol/IComptroller.dbg.json +1 -1
  42. package/artifacts/contracts/DelegateBorrowers/SwapDebtDelegate.sol/IPriceOracle.dbg.json +1 -1
  43. package/artifacts/contracts/DelegateBorrowers/SwapDebtDelegate.sol/IVToken.dbg.json +1 -1
  44. package/artifacts/contracts/DelegateBorrowers/SwapDebtDelegate.sol/SwapDebtDelegate.dbg.json +1 -1
  45. package/artifacts/contracts/DelegateBorrowers/SwapDebtDelegate.sol/SwapDebtDelegate.json +2 -2
  46. package/artifacts/contracts/Liquidator/Interfaces.sol/IComptroller.dbg.json +1 -1
  47. package/artifacts/contracts/Liquidator/Interfaces.sol/IVAIController.dbg.json +1 -1
  48. package/artifacts/contracts/Liquidator/Interfaces.sol/IVBNB.dbg.json +1 -1
  49. package/artifacts/contracts/Liquidator/Interfaces.sol/IVBep20.dbg.json +1 -1
  50. package/artifacts/contracts/Liquidator/Interfaces.sol/IVToken.dbg.json +1 -1
  51. package/artifacts/contracts/Liquidator/Liquidator.sol/Liquidator.dbg.json +1 -1
  52. package/artifacts/contracts/Liquidator/Liquidator.sol/Liquidator.json +2 -2
  53. package/artifacts/contracts/PegStability/IVAI.sol/IVAI.dbg.json +4 -0
  54. package/artifacts/contracts/PegStability/IVAI.sol/IVAI.json +95 -0
  55. package/artifacts/contracts/PegStability/PegStability.sol/PegStability.dbg.json +4 -0
  56. package/artifacts/contracts/PegStability/PegStability.sol/PegStability.json +787 -0
  57. package/artifacts/contracts/Swap/IRouterHelper.sol/IRouterHelper.dbg.json +1 -1
  58. package/artifacts/contracts/Swap/RouterHelper.sol/RouterHelper.dbg.json +1 -1
  59. package/artifacts/contracts/Swap/SwapRouter.sol/SwapRouter.dbg.json +1 -1
  60. package/artifacts/contracts/Swap/SwapRouter.sol/SwapRouter.json +2 -2
  61. package/artifacts/contracts/Swap/interfaces/IPancakePair.sol/IPancakePair.dbg.json +1 -1
  62. package/artifacts/contracts/Swap/interfaces/IPancakeSwapV2Factory.sol/IPancakeSwapV2Factory.dbg.json +1 -1
  63. package/artifacts/contracts/Swap/interfaces/IPancakeSwapV2Router.sol/IPancakeSwapV2Router.dbg.json +1 -1
  64. package/artifacts/contracts/Swap/interfaces/IVBNB.sol/IVBNB.dbg.json +1 -1
  65. package/artifacts/contracts/Swap/interfaces/IVtoken.sol/IVToken.dbg.json +1 -1
  66. package/artifacts/contracts/Swap/interfaces/IWBNB.sol/IWBNB.dbg.json +1 -1
  67. package/artifacts/contracts/Swap/interfaces/InterfaceComptroller.sol/InterfaceComptroller.dbg.json +1 -1
  68. package/artifacts/contracts/Swap/lib/PancakeLibrary.sol/PancakeLibrary.dbg.json +1 -1
  69. package/artifacts/contracts/Swap/lib/TransferHelper.sol/TransferHelper.dbg.json +1 -1
  70. package/artifacts/contracts/test/LiquidatorHarness.sol/LiquidatorHarness.dbg.json +1 -1
  71. package/artifacts/contracts/test/LiquidatorHarness.sol/LiquidatorHarness.json +2 -2
  72. package/contracts/PegStability/IVAI.sol +12 -0
  73. package/contracts/PegStability/PegStability.sol +500 -0
  74. package/deployments/bscmainnet/DefaultProxyAdmin.json +257 -0
  75. package/deployments/bscmainnet/PegStability_USDT.json +945 -0
  76. package/deployments/bscmainnet/PegStability_USDT_Implementation.json +1076 -0
  77. package/deployments/bscmainnet/PegStability_USDT_Proxy.json +267 -0
  78. package/deployments/bscmainnet/solcInputs/0e89febeebc7444140de8e67c9067d2c.json +78 -0
  79. package/deployments/bscmainnet/solcInputs/822f68e7114df9df2dc3cc4555bcf616.json +132 -0
  80. package/deployments/bsctestnet/.migrations.json +3 -0
  81. package/deployments/bsctestnet/DefaultProxyAdmin.json +257 -0
  82. package/deployments/bsctestnet/PegStability_USDT.json +945 -0
  83. package/deployments/bsctestnet/PegStability_USDT_Implementation.json +1076 -0
  84. package/deployments/bsctestnet/PegStability_USDT_Proxy.json +267 -0
  85. package/deployments/bsctestnet/solcInputs/0e89febeebc7444140de8e67c9067d2c.json +78 -0
  86. package/deployments/bsctestnet/solcInputs/6f56db373f5e9158556be1af9ccf91fb.json +132 -0
  87. package/deployments/bsctestnet/solcInputs/70d128da5db4d0b45c404d3f3fe2c806.json +69 -0
  88. package/deployments/bsctestnet/solcInputs/76ea5ea1fe9239cc3ffbe46145aeead0.json +69 -0
  89. package/dist/deploy/006-deploy-psm.d.ts +3 -0
  90. package/dist/deploy/006-deploy-psm.js +65 -0
  91. package/dist/deploy/006-update-psm.d.ts +3 -0
  92. package/dist/deploy/006-update-psm.js +29 -0
  93. package/dist/hardhat.config.js +2 -2
  94. package/dist/typechain/@openzeppelin/contracts/access/IAccessControl.d.ts +145 -0
  95. package/dist/typechain/@openzeppelin/contracts/access/IAccessControl.js +3 -0
  96. package/dist/typechain/@openzeppelin/contracts/access/index.d.ts +1 -0
  97. package/dist/typechain/@openzeppelin/contracts/token/ERC20/extensions/{draft-IERC20Permit.sol/IERC20Permit.d.ts → IERC20Permit.d.ts} +1 -1
  98. package/dist/typechain/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.js +3 -0
  99. package/dist/typechain/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +1 -2
  100. package/dist/typechain/@openzeppelin/contracts/token/ERC20/extensions/index.js +0 -1
  101. package/dist/typechain/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.d.ts +166 -0
  102. package/dist/typechain/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/{draft-IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.d.ts → IERC20PermitUpgradeable.d.ts} +1 -1
  103. package/dist/typechain/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.d.ts +2 -2
  104. package/dist/typechain/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.js +0 -1
  105. package/dist/typechain/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.d.ts +172 -0
  106. package/dist/typechain/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.js +3 -0
  107. package/dist/typechain/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.d.ts +205 -0
  108. package/dist/typechain/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.js +3 -0
  109. package/dist/typechain/@venusprotocol/governance-contracts/contracts/Governance/index.d.ts +2 -0
  110. package/dist/typechain/@venusprotocol/index.d.ts +2 -0
  111. package/dist/typechain/@venusprotocol/oracle/contracts/index.d.ts +2 -0
  112. package/dist/typechain/@venusprotocol/oracle/contracts/index.js +3 -0
  113. package/dist/typechain/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.d.ts +46 -0
  114. package/dist/typechain/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.js +3 -0
  115. package/dist/typechain/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.d.ts +42 -0
  116. package/dist/typechain/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.js +3 -0
  117. package/dist/typechain/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.d.ts +82 -0
  118. package/dist/typechain/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.js +3 -0
  119. package/dist/typechain/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.d.ts +58 -0
  120. package/dist/typechain/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.js +3 -0
  121. package/dist/typechain/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/index.d.ts +4 -0
  122. package/dist/typechain/@venusprotocol/oracle/contracts/interfaces/index.d.ts +2 -0
  123. package/dist/typechain/@venusprotocol/oracle/contracts/interfaces/index.js +3 -0
  124. package/dist/typechain/@venusprotocol/oracle/index.d.ts +2 -0
  125. package/dist/typechain/@venusprotocol/oracle/index.js +3 -0
  126. package/dist/typechain/contracts/PegStability/IVAI.d.ts +102 -0
  127. package/dist/typechain/contracts/PegStability/IVAI.js +3 -0
  128. package/dist/typechain/contracts/PegStability/PegStability.d.ts +564 -0
  129. package/dist/typechain/contracts/PegStability/PegStability.js +3 -0
  130. package/dist/typechain/contracts/PegStability/index.d.ts +2 -0
  131. package/dist/typechain/contracts/index.d.ts +2 -0
  132. package/dist/typechain/factories/@openzeppelin/contracts/access/IAccessControl__factory.d.ts +142 -0
  133. package/dist/typechain/factories/@openzeppelin/contracts/access/IAccessControl__factory.js +189 -0
  134. package/dist/typechain/factories/@openzeppelin/contracts/access/index.d.ts +1 -0
  135. package/dist/typechain/factories/@openzeppelin/contracts/access/index.js +3 -1
  136. package/dist/typechain/factories/@openzeppelin/contracts/token/ERC20/extensions/{draft-IERC20Permit.sol/IERC20Permit__factory.d.ts → IERC20Permit__factory.d.ts} +1 -1
  137. package/dist/typechain/factories/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +1 -1
  138. package/dist/typechain/factories/@openzeppelin/contracts/token/ERC20/extensions/index.js +3 -25
  139. package/dist/typechain/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable__factory.d.ts +178 -0
  140. package/dist/typechain/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable__factory.js +239 -0
  141. package/dist/typechain/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/{draft-IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable__factory.d.ts → IERC20PermitUpgradeable__factory.d.ts} +1 -1
  142. package/dist/typechain/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.d.ts +2 -1
  143. package/dist/typechain/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.js +5 -25
  144. package/dist/typechain/factories/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8__factory.d.ts +141 -0
  145. package/dist/typechain/factories/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8__factory.js +187 -0
  146. package/dist/typechain/factories/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8__factory.d.ts +218 -0
  147. package/dist/typechain/factories/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8__factory.js +288 -0
  148. package/dist/typechain/factories/@venusprotocol/governance-contracts/contracts/Governance/index.d.ts +2 -0
  149. package/dist/typechain/factories/@venusprotocol/governance-contracts/contracts/Governance/index.js +5 -1
  150. package/dist/typechain/factories/@venusprotocol/index.d.ts +1 -0
  151. package/dist/typechain/factories/@venusprotocol/index.js +2 -1
  152. package/dist/typechain/factories/@venusprotocol/oracle/contracts/index.d.ts +1 -0
  153. package/dist/typechain/factories/@venusprotocol/oracle/contracts/index.js +30 -0
  154. package/dist/typechain/factories/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface__factory.d.ts +30 -0
  155. package/dist/typechain/factories/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface__factory.js +46 -0
  156. package/dist/typechain/factories/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface__factory.d.ts +22 -0
  157. package/dist/typechain/factories/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface__factory.js +36 -0
  158. package/dist/typechain/factories/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface__factory.d.ts +56 -0
  159. package/dist/typechain/factories/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface__factory.js +81 -0
  160. package/dist/typechain/factories/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface__factory.d.ts +36 -0
  161. package/dist/typechain/factories/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface__factory.js +55 -0
  162. package/dist/typechain/factories/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/index.d.ts +4 -0
  163. package/dist/typechain/factories/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/index.js +14 -0
  164. package/dist/typechain/factories/@venusprotocol/oracle/contracts/interfaces/index.d.ts +1 -0
  165. package/dist/typechain/factories/@venusprotocol/oracle/contracts/interfaces/index.js +30 -0
  166. package/dist/typechain/factories/@venusprotocol/oracle/index.d.ts +1 -0
  167. package/dist/typechain/factories/@venusprotocol/oracle/index.js +30 -0
  168. package/dist/typechain/factories/contracts/DelegateBorrowers/SwapDebtDelegate.sol/SwapDebtDelegate__factory.d.ts +1 -1
  169. package/dist/typechain/factories/contracts/DelegateBorrowers/SwapDebtDelegate.sol/SwapDebtDelegate__factory.js +1 -1
  170. package/dist/typechain/factories/contracts/Liquidator/Liquidator__factory.d.ts +1 -1
  171. package/dist/typechain/factories/contracts/Liquidator/Liquidator__factory.js +1 -1
  172. package/dist/typechain/factories/contracts/PegStability/IVAI__factory.d.ts +72 -0
  173. package/dist/typechain/factories/contracts/PegStability/IVAI__factory.js +101 -0
  174. package/dist/typechain/factories/contracts/PegStability/PegStability__factory.d.ts +625 -0
  175. package/dist/typechain/factories/contracts/PegStability/PegStability__factory.js +816 -0
  176. package/dist/typechain/factories/contracts/PegStability/index.d.ts +2 -0
  177. package/dist/typechain/factories/contracts/PegStability/index.js +10 -0
  178. package/dist/typechain/factories/contracts/Swap/SwapRouter__factory.d.ts +1 -1
  179. package/dist/typechain/factories/contracts/Swap/SwapRouter__factory.js +1 -1
  180. package/dist/typechain/factories/contracts/index.d.ts +1 -0
  181. package/dist/typechain/factories/contracts/index.js +2 -1
  182. package/dist/typechain/factories/contracts/test/LiquidatorHarness__factory.d.ts +1 -1
  183. package/dist/typechain/factories/contracts/test/LiquidatorHarness__factory.js +1 -1
  184. package/dist/typechain/index.d.ts +24 -4
  185. package/dist/typechain/index.js +27 -7
  186. package/package.json +2 -1
  187. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +0 -4
  188. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +0 -4
  189. package/artifacts/build-info/7ba4636f17a9306e510e09b5ee7b87c3.json +0 -1
  190. package/dist/typechain/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts +0 -1
  191. package/dist/typechain/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol/index.d.ts +0 -1
  192. package/dist/typechain/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts +0 -1
  193. package/dist/typechain/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js +0 -8
  194. package/dist/typechain/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol/index.d.ts +0 -1
  195. package/dist/typechain/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol/index.js +0 -8
  196. /package/dist/typechain/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/{draft-IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.js → IERC20MetadataUpgradeable.js} +0 -0
  197. /package/dist/typechain/@openzeppelin/{contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.js → contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.js} +0 -0
  198. /package/dist/typechain/{@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol → @venusprotocol/oracle/contracts/interfaces/OracleInterface.sol}/index.js +0 -0
  199. /package/dist/typechain/{@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol → contracts/PegStability}/index.js +0 -0
  200. /package/dist/typechain/factories/@openzeppelin/contracts/token/ERC20/extensions/{draft-IERC20Permit.sol/IERC20Permit__factory.js → IERC20Permit__factory.js} +0 -0
  201. /package/dist/typechain/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/{draft-IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable__factory.js → IERC20PermitUpgradeable__factory.js} +0 -0
@@ -0,0 +1,787 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PegStability",
4
+ "sourceName": "contracts/PegStability/PegStability.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "stableTokenAddress_",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "vaiAddress_",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "AlreadyPaused",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "AmountTooSmall",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "InvalidFee",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "NotEnoughVAI",
40
+ "type": "error"
41
+ },
42
+ {
43
+ "inputs": [],
44
+ "name": "NotPaused",
45
+ "type": "error"
46
+ },
47
+ {
48
+ "inputs": [],
49
+ "name": "Paused",
50
+ "type": "error"
51
+ },
52
+ {
53
+ "inputs": [],
54
+ "name": "TooManyDecimals",
55
+ "type": "error"
56
+ },
57
+ {
58
+ "inputs": [
59
+ {
60
+ "internalType": "address",
61
+ "name": "sender",
62
+ "type": "address"
63
+ },
64
+ {
65
+ "internalType": "address",
66
+ "name": "calledContract",
67
+ "type": "address"
68
+ },
69
+ {
70
+ "internalType": "string",
71
+ "name": "methodSignature",
72
+ "type": "string"
73
+ }
74
+ ],
75
+ "name": "Unauthorized",
76
+ "type": "error"
77
+ },
78
+ {
79
+ "inputs": [],
80
+ "name": "VAIMintCapReached",
81
+ "type": "error"
82
+ },
83
+ {
84
+ "inputs": [],
85
+ "name": "VAIMintedUnderflow",
86
+ "type": "error"
87
+ },
88
+ {
89
+ "inputs": [],
90
+ "name": "VAITransferFail",
91
+ "type": "error"
92
+ },
93
+ {
94
+ "inputs": [],
95
+ "name": "ZeroAddress",
96
+ "type": "error"
97
+ },
98
+ {
99
+ "inputs": [],
100
+ "name": "ZeroAmount",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "anonymous": false,
105
+ "inputs": [
106
+ {
107
+ "indexed": false,
108
+ "internalType": "uint256",
109
+ "name": "oldFeeIn",
110
+ "type": "uint256"
111
+ },
112
+ {
113
+ "indexed": false,
114
+ "internalType": "uint256",
115
+ "name": "newFeeIn",
116
+ "type": "uint256"
117
+ }
118
+ ],
119
+ "name": "FeeInChanged",
120
+ "type": "event"
121
+ },
122
+ {
123
+ "anonymous": false,
124
+ "inputs": [
125
+ {
126
+ "indexed": false,
127
+ "internalType": "uint256",
128
+ "name": "oldFeeOut",
129
+ "type": "uint256"
130
+ },
131
+ {
132
+ "indexed": false,
133
+ "internalType": "uint256",
134
+ "name": "newFeeOut",
135
+ "type": "uint256"
136
+ }
137
+ ],
138
+ "name": "FeeOutChanged",
139
+ "type": "event"
140
+ },
141
+ {
142
+ "anonymous": false,
143
+ "inputs": [
144
+ {
145
+ "indexed": false,
146
+ "internalType": "uint8",
147
+ "name": "version",
148
+ "type": "uint8"
149
+ }
150
+ ],
151
+ "name": "Initialized",
152
+ "type": "event"
153
+ },
154
+ {
155
+ "anonymous": false,
156
+ "inputs": [
157
+ {
158
+ "indexed": false,
159
+ "internalType": "address",
160
+ "name": "oldAccessControlManager",
161
+ "type": "address"
162
+ },
163
+ {
164
+ "indexed": false,
165
+ "internalType": "address",
166
+ "name": "newAccessControlManager",
167
+ "type": "address"
168
+ }
169
+ ],
170
+ "name": "NewAccessControlManager",
171
+ "type": "event"
172
+ },
173
+ {
174
+ "anonymous": false,
175
+ "inputs": [
176
+ {
177
+ "indexed": true,
178
+ "internalType": "address",
179
+ "name": "oldOracle",
180
+ "type": "address"
181
+ },
182
+ {
183
+ "indexed": true,
184
+ "internalType": "address",
185
+ "name": "newOracle",
186
+ "type": "address"
187
+ }
188
+ ],
189
+ "name": "OracleChanged",
190
+ "type": "event"
191
+ },
192
+ {
193
+ "anonymous": false,
194
+ "inputs": [
195
+ {
196
+ "indexed": true,
197
+ "internalType": "address",
198
+ "name": "previousOwner",
199
+ "type": "address"
200
+ },
201
+ {
202
+ "indexed": true,
203
+ "internalType": "address",
204
+ "name": "newOwner",
205
+ "type": "address"
206
+ }
207
+ ],
208
+ "name": "OwnershipTransferStarted",
209
+ "type": "event"
210
+ },
211
+ {
212
+ "anonymous": false,
213
+ "inputs": [
214
+ {
215
+ "indexed": true,
216
+ "internalType": "address",
217
+ "name": "previousOwner",
218
+ "type": "address"
219
+ },
220
+ {
221
+ "indexed": true,
222
+ "internalType": "address",
223
+ "name": "newOwner",
224
+ "type": "address"
225
+ }
226
+ ],
227
+ "name": "OwnershipTransferred",
228
+ "type": "event"
229
+ },
230
+ {
231
+ "anonymous": false,
232
+ "inputs": [
233
+ {
234
+ "indexed": true,
235
+ "internalType": "address",
236
+ "name": "admin",
237
+ "type": "address"
238
+ }
239
+ ],
240
+ "name": "PSMPaused",
241
+ "type": "event"
242
+ },
243
+ {
244
+ "anonymous": false,
245
+ "inputs": [
246
+ {
247
+ "indexed": true,
248
+ "internalType": "address",
249
+ "name": "admin",
250
+ "type": "address"
251
+ }
252
+ ],
253
+ "name": "PSMResumed",
254
+ "type": "event"
255
+ },
256
+ {
257
+ "anonymous": false,
258
+ "inputs": [
259
+ {
260
+ "indexed": false,
261
+ "internalType": "uint256",
262
+ "name": "stableIn",
263
+ "type": "uint256"
264
+ },
265
+ {
266
+ "indexed": false,
267
+ "internalType": "uint256",
268
+ "name": "vaiOut",
269
+ "type": "uint256"
270
+ },
271
+ {
272
+ "indexed": false,
273
+ "internalType": "uint256",
274
+ "name": "fee",
275
+ "type": "uint256"
276
+ }
277
+ ],
278
+ "name": "StableForVAISwapped",
279
+ "type": "event"
280
+ },
281
+ {
282
+ "anonymous": false,
283
+ "inputs": [
284
+ {
285
+ "indexed": false,
286
+ "internalType": "uint256",
287
+ "name": "vaiBurnt",
288
+ "type": "uint256"
289
+ },
290
+ {
291
+ "indexed": false,
292
+ "internalType": "uint256",
293
+ "name": "stableOut",
294
+ "type": "uint256"
295
+ },
296
+ {
297
+ "indexed": false,
298
+ "internalType": "uint256",
299
+ "name": "vaiFee",
300
+ "type": "uint256"
301
+ }
302
+ ],
303
+ "name": "VAIForStableSwapped",
304
+ "type": "event"
305
+ },
306
+ {
307
+ "anonymous": false,
308
+ "inputs": [
309
+ {
310
+ "indexed": false,
311
+ "internalType": "uint256",
312
+ "name": "oldCap",
313
+ "type": "uint256"
314
+ },
315
+ {
316
+ "indexed": false,
317
+ "internalType": "uint256",
318
+ "name": "newCap",
319
+ "type": "uint256"
320
+ }
321
+ ],
322
+ "name": "VAIMintCapChanged",
323
+ "type": "event"
324
+ },
325
+ {
326
+ "anonymous": false,
327
+ "inputs": [
328
+ {
329
+ "indexed": true,
330
+ "internalType": "address",
331
+ "name": "oldTreasury",
332
+ "type": "address"
333
+ },
334
+ {
335
+ "indexed": true,
336
+ "internalType": "address",
337
+ "name": "newTreasury",
338
+ "type": "address"
339
+ }
340
+ ],
341
+ "name": "VenusTreasuryChanged",
342
+ "type": "event"
343
+ },
344
+ {
345
+ "inputs": [],
346
+ "name": "BASIS_POINTS_DIVISOR",
347
+ "outputs": [
348
+ {
349
+ "internalType": "uint256",
350
+ "name": "",
351
+ "type": "uint256"
352
+ }
353
+ ],
354
+ "stateMutability": "view",
355
+ "type": "function"
356
+ },
357
+ {
358
+ "inputs": [],
359
+ "name": "MANTISSA_ONE",
360
+ "outputs": [
361
+ {
362
+ "internalType": "uint256",
363
+ "name": "",
364
+ "type": "uint256"
365
+ }
366
+ ],
367
+ "stateMutability": "view",
368
+ "type": "function"
369
+ },
370
+ {
371
+ "inputs": [],
372
+ "name": "ONE_DOLLAR",
373
+ "outputs": [
374
+ {
375
+ "internalType": "uint256",
376
+ "name": "",
377
+ "type": "uint256"
378
+ }
379
+ ],
380
+ "stateMutability": "view",
381
+ "type": "function"
382
+ },
383
+ {
384
+ "inputs": [],
385
+ "name": "STABLE_TOKEN_ADDRESS",
386
+ "outputs": [
387
+ {
388
+ "internalType": "address",
389
+ "name": "",
390
+ "type": "address"
391
+ }
392
+ ],
393
+ "stateMutability": "view",
394
+ "type": "function"
395
+ },
396
+ {
397
+ "inputs": [],
398
+ "name": "VAI",
399
+ "outputs": [
400
+ {
401
+ "internalType": "contract IVAI",
402
+ "name": "",
403
+ "type": "address"
404
+ }
405
+ ],
406
+ "stateMutability": "view",
407
+ "type": "function"
408
+ },
409
+ {
410
+ "inputs": [],
411
+ "name": "acceptOwnership",
412
+ "outputs": [],
413
+ "stateMutability": "nonpayable",
414
+ "type": "function"
415
+ },
416
+ {
417
+ "inputs": [],
418
+ "name": "accessControlManager",
419
+ "outputs": [
420
+ {
421
+ "internalType": "contract IAccessControlManagerV8",
422
+ "name": "",
423
+ "type": "address"
424
+ }
425
+ ],
426
+ "stateMutability": "view",
427
+ "type": "function"
428
+ },
429
+ {
430
+ "inputs": [],
431
+ "name": "feeIn",
432
+ "outputs": [
433
+ {
434
+ "internalType": "uint256",
435
+ "name": "",
436
+ "type": "uint256"
437
+ }
438
+ ],
439
+ "stateMutability": "view",
440
+ "type": "function"
441
+ },
442
+ {
443
+ "inputs": [],
444
+ "name": "feeOut",
445
+ "outputs": [
446
+ {
447
+ "internalType": "uint256",
448
+ "name": "",
449
+ "type": "uint256"
450
+ }
451
+ ],
452
+ "stateMutability": "view",
453
+ "type": "function"
454
+ },
455
+ {
456
+ "inputs": [
457
+ {
458
+ "internalType": "address",
459
+ "name": "accessControlManager_",
460
+ "type": "address"
461
+ },
462
+ {
463
+ "internalType": "address",
464
+ "name": "venusTreasury_",
465
+ "type": "address"
466
+ },
467
+ {
468
+ "internalType": "address",
469
+ "name": "oracleAddress_",
470
+ "type": "address"
471
+ },
472
+ {
473
+ "internalType": "uint256",
474
+ "name": "feeIn_",
475
+ "type": "uint256"
476
+ },
477
+ {
478
+ "internalType": "uint256",
479
+ "name": "feeOut_",
480
+ "type": "uint256"
481
+ },
482
+ {
483
+ "internalType": "uint256",
484
+ "name": "vaiMintCap_",
485
+ "type": "uint256"
486
+ }
487
+ ],
488
+ "name": "initialize",
489
+ "outputs": [],
490
+ "stateMutability": "nonpayable",
491
+ "type": "function"
492
+ },
493
+ {
494
+ "inputs": [],
495
+ "name": "isPaused",
496
+ "outputs": [
497
+ {
498
+ "internalType": "bool",
499
+ "name": "",
500
+ "type": "bool"
501
+ }
502
+ ],
503
+ "stateMutability": "view",
504
+ "type": "function"
505
+ },
506
+ {
507
+ "inputs": [],
508
+ "name": "oracle",
509
+ "outputs": [
510
+ {
511
+ "internalType": "contract ResilientOracleInterface",
512
+ "name": "",
513
+ "type": "address"
514
+ }
515
+ ],
516
+ "stateMutability": "view",
517
+ "type": "function"
518
+ },
519
+ {
520
+ "inputs": [],
521
+ "name": "owner",
522
+ "outputs": [
523
+ {
524
+ "internalType": "address",
525
+ "name": "",
526
+ "type": "address"
527
+ }
528
+ ],
529
+ "stateMutability": "view",
530
+ "type": "function"
531
+ },
532
+ {
533
+ "inputs": [],
534
+ "name": "pause",
535
+ "outputs": [],
536
+ "stateMutability": "nonpayable",
537
+ "type": "function"
538
+ },
539
+ {
540
+ "inputs": [],
541
+ "name": "pendingOwner",
542
+ "outputs": [
543
+ {
544
+ "internalType": "address",
545
+ "name": "",
546
+ "type": "address"
547
+ }
548
+ ],
549
+ "stateMutability": "view",
550
+ "type": "function"
551
+ },
552
+ {
553
+ "inputs": [
554
+ {
555
+ "internalType": "uint256",
556
+ "name": "stableTknAmount",
557
+ "type": "uint256"
558
+ }
559
+ ],
560
+ "name": "previewSwapStableForVAI",
561
+ "outputs": [
562
+ {
563
+ "internalType": "uint256",
564
+ "name": "",
565
+ "type": "uint256"
566
+ }
567
+ ],
568
+ "stateMutability": "view",
569
+ "type": "function"
570
+ },
571
+ {
572
+ "inputs": [
573
+ {
574
+ "internalType": "uint256",
575
+ "name": "stableTknAmount",
576
+ "type": "uint256"
577
+ }
578
+ ],
579
+ "name": "previewSwapVAIForStable",
580
+ "outputs": [
581
+ {
582
+ "internalType": "uint256",
583
+ "name": "",
584
+ "type": "uint256"
585
+ }
586
+ ],
587
+ "stateMutability": "view",
588
+ "type": "function"
589
+ },
590
+ {
591
+ "inputs": [],
592
+ "name": "renounceOwnership",
593
+ "outputs": [],
594
+ "stateMutability": "nonpayable",
595
+ "type": "function"
596
+ },
597
+ {
598
+ "inputs": [],
599
+ "name": "resume",
600
+ "outputs": [],
601
+ "stateMutability": "nonpayable",
602
+ "type": "function"
603
+ },
604
+ {
605
+ "inputs": [
606
+ {
607
+ "internalType": "address",
608
+ "name": "accessControlManager_",
609
+ "type": "address"
610
+ }
611
+ ],
612
+ "name": "setAccessControlManager",
613
+ "outputs": [],
614
+ "stateMutability": "nonpayable",
615
+ "type": "function"
616
+ },
617
+ {
618
+ "inputs": [
619
+ {
620
+ "internalType": "uint256",
621
+ "name": "feeIn_",
622
+ "type": "uint256"
623
+ }
624
+ ],
625
+ "name": "setFeeIn",
626
+ "outputs": [],
627
+ "stateMutability": "nonpayable",
628
+ "type": "function"
629
+ },
630
+ {
631
+ "inputs": [
632
+ {
633
+ "internalType": "uint256",
634
+ "name": "feeOut_",
635
+ "type": "uint256"
636
+ }
637
+ ],
638
+ "name": "setFeeOut",
639
+ "outputs": [],
640
+ "stateMutability": "nonpayable",
641
+ "type": "function"
642
+ },
643
+ {
644
+ "inputs": [
645
+ {
646
+ "internalType": "address",
647
+ "name": "oracleAddress_",
648
+ "type": "address"
649
+ }
650
+ ],
651
+ "name": "setOracle",
652
+ "outputs": [],
653
+ "stateMutability": "nonpayable",
654
+ "type": "function"
655
+ },
656
+ {
657
+ "inputs": [
658
+ {
659
+ "internalType": "uint256",
660
+ "name": "vaiMintCap_",
661
+ "type": "uint256"
662
+ }
663
+ ],
664
+ "name": "setVAIMintCap",
665
+ "outputs": [],
666
+ "stateMutability": "nonpayable",
667
+ "type": "function"
668
+ },
669
+ {
670
+ "inputs": [
671
+ {
672
+ "internalType": "address",
673
+ "name": "venusTreasury_",
674
+ "type": "address"
675
+ }
676
+ ],
677
+ "name": "setVenusTreasury",
678
+ "outputs": [],
679
+ "stateMutability": "nonpayable",
680
+ "type": "function"
681
+ },
682
+ {
683
+ "inputs": [
684
+ {
685
+ "internalType": "address",
686
+ "name": "receiver",
687
+ "type": "address"
688
+ },
689
+ {
690
+ "internalType": "uint256",
691
+ "name": "stableTknAmount",
692
+ "type": "uint256"
693
+ }
694
+ ],
695
+ "name": "swapStableForVAI",
696
+ "outputs": [
697
+ {
698
+ "internalType": "uint256",
699
+ "name": "",
700
+ "type": "uint256"
701
+ }
702
+ ],
703
+ "stateMutability": "nonpayable",
704
+ "type": "function"
705
+ },
706
+ {
707
+ "inputs": [
708
+ {
709
+ "internalType": "address",
710
+ "name": "receiver",
711
+ "type": "address"
712
+ },
713
+ {
714
+ "internalType": "uint256",
715
+ "name": "stableTknAmount",
716
+ "type": "uint256"
717
+ }
718
+ ],
719
+ "name": "swapVAIForStable",
720
+ "outputs": [
721
+ {
722
+ "internalType": "uint256",
723
+ "name": "",
724
+ "type": "uint256"
725
+ }
726
+ ],
727
+ "stateMutability": "nonpayable",
728
+ "type": "function"
729
+ },
730
+ {
731
+ "inputs": [
732
+ {
733
+ "internalType": "address",
734
+ "name": "newOwner",
735
+ "type": "address"
736
+ }
737
+ ],
738
+ "name": "transferOwnership",
739
+ "outputs": [],
740
+ "stateMutability": "nonpayable",
741
+ "type": "function"
742
+ },
743
+ {
744
+ "inputs": [],
745
+ "name": "vaiMintCap",
746
+ "outputs": [
747
+ {
748
+ "internalType": "uint256",
749
+ "name": "",
750
+ "type": "uint256"
751
+ }
752
+ ],
753
+ "stateMutability": "view",
754
+ "type": "function"
755
+ },
756
+ {
757
+ "inputs": [],
758
+ "name": "vaiMinted",
759
+ "outputs": [
760
+ {
761
+ "internalType": "uint256",
762
+ "name": "",
763
+ "type": "uint256"
764
+ }
765
+ ],
766
+ "stateMutability": "view",
767
+ "type": "function"
768
+ },
769
+ {
770
+ "inputs": [],
771
+ "name": "venusTreasury",
772
+ "outputs": [
773
+ {
774
+ "internalType": "address",
775
+ "name": "",
776
+ "type": "address"
777
+ }
778
+ ],
779
+ "stateMutability": "view",
780
+ "type": "function"
781
+ }
782
+ ],
783
+ "bytecode": "0x60e06040523480156200001157600080fd5b506040516200235638038062002356833981016040819052620000349162000225565b6200003f826200011c565b6200004a816200011c565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200008b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b191906200025d565b60ff1690506012811115620000d9576040516330e571f960e11b815260040160405180910390fd5b620000e68160246200029f565b620000f390600a620003b8565b6080526001600160a01b0380841660c052821660a0526200011362000147565b505050620003c6565b6001600160a01b038116620001445760405163d92e233d60e01b815260040160405180910390fd5b50565b600054610100900460ff1615620001b45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000206576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146200022057600080fd5b919050565b600080604083850312156200023957600080fd5b620002448362000208565b9150620002546020840162000208565b90509250929050565b6000602082840312156200027057600080fd5b815160ff811681146200028257600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600082821015620002b457620002b462000289565b500390565b600181815b80851115620002fa578160001904821115620002de57620002de62000289565b80851615620002ec57918102915b93841c9390800290620002be565b509250929050565b6000826200031357506001620003b2565b816200032257506000620003b2565b81600181146200033b5760028114620003465762000366565b6001915050620003b2565b60ff8411156200035a576200035a62000289565b50506001821b620003b2565b5060208310610133831016604e8410600b84101617156200038b575081810a620003b2565b620003978383620002b9565b8060001904821115620003ae57620003ae62000289565b0290505b92915050565b600062000282838362000302565b60805160a05160c051611ef0620004666000396000818161033c0152818161051d015281816107d801528181610e9c01528181610f1e01528181610f5e01528181610ff90152611756015260008181610363015281816105bf015281816106bc01528181610767015281816110ec0152611179015260008181610287015281816117eb0152818161181201528181611838015261185f0152611ef06000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80637adbf9731161010f578063b187bd26116100a2578063e2608fba11610071578063e2608fba146103f6578063e30c397814610409578063f23c0f401461041a578063f2fde38b1461042957600080fd5b8063b187bd26146103ab578063b4a0bdf3146103c9578063d97c057d146103da578063dd081268146103e357600080fd5b80638ec2b239116100de5780638ec2b2391461033757806398f44cd11461035e578063a52f540c14610385578063a589e98a1461039857600080fd5b80637adbf973146102f85780637dc0d1d01461030b5780638456cb591461031e5780638da5cb5b1461032657600080fd5b806342e8a97211610187578063715018a611610156578063715018a6146101f2578063728cdbca146102d4578063769a48d9146102e757806379ba5097146102f057600080fd5b806342e8a9721461025c57806355725d411461026f578063572ca9e714610282578063586f9933146102a957600080fd5b80630e32cb86116101c35780630e32cb8614610223578063126082cf14610236578063187e28bd1461023f57806340a1dd461461025257600080fd5b8063046f7da2146101ea5780630696819f146101f45780630d35d2ed14610210575b600080fd5b6101f261043c565b005b6101fd60fe5481565b6040519081526020015b60405180910390f35b6101fd61021e366004611bfb565b6104c1565b6101f2610231366004611c25565b610855565b6101fd61271081565b6101fd61024d366004611c40565b610869565b6101fd6101005481565b6101f261026a366004611c40565b6108c8565b6101f261027d366004611c40565b610963565b6101fd7f000000000000000000000000000000000000000000000000000000000000000081565b60fc546102bc906001600160a01b031681565b6040516001600160a01b039091168152602001610207565b6101f26102e2366004611c59565b6109f7565b6101fd60fd5481565b6101f2610ba7565b6101f2610306366004611c25565b610c1e565b60fb546102bc906001600160a01b031681565b6101f2610cac565b6033546001600160a01b03166102bc565b6102bc7f000000000000000000000000000000000000000000000000000000000000000081565b6102bc7f000000000000000000000000000000000000000000000000000000000000000081565b6101f2610393366004611c25565b610d34565b6101f26103a6366004611c40565b610dcd565b610101546103b99060ff1681565b6040519015158152602001610207565b6097546001600160a01b03166102bc565b6101fd60ff5481565b6101fd6103f1366004611bfb565b610e42565b6101fd610404366004611c40565b61122a565b6065546001600160a01b03166102bc565b6101fd670de0b6b3a764000081565b6101f2610437366004611c25565b611292565b61046560405180604001604052806008815260200167726573756d65282960c01b815250611303565b6101015460ff1661048957604051636cd6020160e01b815260040160405180910390fd5b610101805460ff1916905560405133907f108589e68122bb4da8e5020c44387cab025243d0894392e275459641a90181a290600090a2565b6101015460009060ff16156104e9576040516313d0ff5960e31b815260040160405180910390fd5b6104f16113a1565b6104fa836113fa565b61050382611421565b60fb5460405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301529091169063b62cad6990602401600060405180830381600087803b15801561056a57600080fd5b505af115801561057e573d6000803e3d6000fd5b50505050600061058f836001611442565b9050600061059e826001611471565b90506105aa8183611cce565b6040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a08231906024016020604051808303816000875af1158015610610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106349190611ce6565b1015610656576040516001629d12e360e01b0319815260040160405180910390fd5b8161010054101561067a5760405163a5047e9560e01b815260040160405180910390fd5b61010080548390039055801561074b5760fc546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018390526000917f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064016020604051808303816000875af1158015610705573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107299190611cff565b9050806107495760405163aba1276560e01b815260040160405180910390fd5b505b604051632770a7eb60e21b8152336004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690639dc29fac90604401600060405180830381600087803b1580156107b357600080fd5b505af11580156107c7573d6000803e3d6000fd5b506108019250506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016905086866114f7565b60408051838152602081018690529081018290527f031e3397b091e3298ff850e89e965fe3543a0c64eb93659927433b06545f3f629060600160405180910390a150905061084f600160c955565b92915050565b61085d611566565b610866816115c0565b50565b600061087482611421565b6000610881836001611442565b90506000610890826001611471565b9050816101005410156108b65760405163a5047e9560e01b815260040160405180910390fd5b6108c08183611cce565b949350505050565b6108fb604051806040016040528060128152602001717365744665654f75742875696e743235362960701b815250611303565b612710811061091d576040516358d620b360e01b815260040160405180910390fd5b60fe80549082905560408051828152602081018490527fdc61767cf6b8f2d5ec16cd975db6d3a79fc69dc428b04c93e8db271de5e43b9f91015b60405180910390a15050565b61099560405180604001604052806011815260200170736574466565496e2875696e743235362960781b815250611303565b61271081106109b7576040516358d620b360e01b815260040160405180910390fd5b60fd80549082905560408051828152602081018490527fb76804f9786a4411a614b09a8211b2fd86f1f5b7a5e4410f35aa1578aac64e049101610957565b565b600054610100900460ff1615808015610a175750600054600160ff909116105b80610a315750303b158015610a31575060005460ff166001145b610a995760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610abc576000805461ff0019166101001790555b610ac5876113fa565b610ace866113fa565b610ad7856113fa565b610ae08761167e565b610ae86116b6565b61271084101580610afb57506127108310155b15610b19576040516358d620b360e01b815260040160405180910390fd5b60fd84905560fe83905560ff82905560fc80546001600160a01b038089166001600160a01b03199283161790925560fb8054928816929091169190911790558015610b9e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b60655433906001600160a01b03168114610c155760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610a90565b610866816116e5565b610c51604051806040016040528060128152602001717365744f7261636c6528616464726573732960701b815250611303565b610c5a816113fa565b60fb80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f05cd89403c6bdeac21c2ff33de395121a31fa1bc2bf3adf4825f1f86e79969dd90600090a35050565b610cd4604051806040016040528060078152602001667061757365282960c81b815250611303565b6101015460ff1615610cf957604051631785c68160e01b815260040160405180910390fd5b610101805460ff1916600117905560405133907fb7aabc84a8f1fe9971d4bfffb4bb336af2c63e547360dd116940dc70da8159e190600090a2565b610d726040518060400160405280601981526020017f73657456656e7573547265617375727928616464726573732900000000000000815250611303565b610d7b816113fa565b60fc80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f35655f8f1a1f8b7ff254ff70c675c0a26ddcb3da6cb6decd491ecdee167e220b90600090a35050565b610e04604051806040016040528060168152602001757365745641494d696e744361702875696e743235362960501b815250611303565b60ff80549082905560408051828152602081018490527f0f43249751c1ca8dedff5711840ef91871f6fc2ce9b3891c1f33f4163ba1a9a39101610957565b6101015460009060ff1615610e6a576040516313d0ff5960e31b815260040160405180910390fd5b610e726113a1565b610e7b836113fa565b610e8482611421565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f9190611ce6565b9050610f466001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330866116fe565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610fad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd19190611ce6565b90506000610fdf8383611d21565b60fb5460405163b62cad6960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015292935091169063b62cad6990602401600060405180830381600087803b15801561104857600080fd5b505af115801561105c573d6000803e3d6000fd5b50505050600061106d826000611442565b9050600061107c826000611471565b9050600061108a8284611d21565b905060ff54836101005461109e9190611cce565b11156110bd576040516313d3ad1560e31b815260040160405180910390fd5b6101008054840190556040516340c10f1960e01b81526001600160a01b038a81166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401600060405180830381600087803b15801561113057600080fd5b505af1158015611144573d6000803e3d6000fd5b50505050816000146111d85760fc546040516340c10f1960e01b81526001600160a01b039182166004820152602481018490527f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f1990604401600060405180830381600087803b1580156111bf57600080fd5b505af11580156111d3573d6000803e3d6000fd5b505050505b60408051858152602081018390529081018390527f018e5c6d7bd9e0cafe3512ff02488f4c0ce3524a684e1097aab74666bf4fd00f9060600160405180910390a19550505050505061084f600160c955565b600061123582611421565b6000611242836000611442565b90506000611251826000611471565b9050600061125f8284611d21565b905060ff5483610100546112739190611cce565b11156108c0576040516313d3ad1560e31b815260040160405180910390fd5b61129a611566565b606580546001600160a01b0383166001600160a01b031990911681179091556112cb6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906113369033908690600401611d90565b602060405180830381865afa158015611353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113779190611cff565b90508061139d57333083604051634a3fa29360e01b8152600401610a9093929190611db4565b5050565b600260c954036113f35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a90565b600260c955565b6001600160a01b0381166108665760405163d92e233d60e01b815260040160405180910390fd5b8060000361086657604051631f2a200560e01b815260040160405180910390fd5b6000670de0b6b3a76400006114568361173c565b6114609085611de9565b61146a9190611e08565b9392505050565b6000808083600181111561148757611487611e2a565b03611495575060fd5461149a565b5060fe545b806000036114ac57600091505061084f565b6127106114b98286611de9565b10156114d85760405163617ab12d60e11b815260040160405180910390fd5b6127106114e58286611de9565b6114ef9190611e08565b91505061084f565b6040516001600160a01b03831660248201526044810182905261155a90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611883565b505050565b600160c955565b6033546001600160a01b031633146109f55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a90565b6001600160a01b0381166116245760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b6064820152608401610a90565b609780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610957565b600054610100900460ff166116a55760405162461bcd60e51b8152600401610a9090611e40565b6116ad611958565b61086681611987565b600054610100900460ff166116dd5760405162461bcd60e51b8152600401610a9090611e40565b6109f56119ae565b606580546001600160a01b0319169055610866816119d5565b6040516001600160a01b03808516602483015283166044820152606481018290526117369085906323b872dd60e01b90608401611523565b50505050565b60fb546040516341976e0960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260009283929116906341976e0990602401602060405180830381865afa1580156117aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ce9190611ce6565b905060008360018111156117e4576117e4611e2a565b03611836577f0000000000000000000000000000000000000000000000000000000000000000811061084f577f000000000000000000000000000000000000000000000000000000000000000061146a565b7f0000000000000000000000000000000000000000000000000000000000000000811161084f577f000000000000000000000000000000000000000000000000000000000000000061146a565b60006118d8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611a279092919063ffffffff16565b90508051600014806118f95750808060200190518101906118f99190611cff565b61155a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a90565b600054610100900460ff1661197f5760405162461bcd60e51b8152600401610a9090611e40565b6109f5611a36565b600054610100900460ff1661085d5760405162461bcd60e51b8152600401610a9090611e40565b600054610100900460ff1661155f5760405162461bcd60e51b8152600401610a9090611e40565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606108c08484600085611a66565b600054610100900460ff16611a5d5760405162461bcd60e51b8152600401610a9090611e40565b6109f5336116e5565b606082471015611ac75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a90565b600080866001600160a01b03168587604051611ae39190611e8b565b60006040518083038185875af1925050503d8060008114611b20576040519150601f19603f3d011682016040523d82523d6000602084013e611b25565b606091505b5091509150611b3687838387611b41565b979650505050505050565b60608315611bb0578251600003611ba9576001600160a01b0385163b611ba95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a90565b50816108c0565b6108c08383815115611bc55781518083602001fd5b8060405162461bcd60e51b8152600401610a909190611ea7565b80356001600160a01b0381168114611bf657600080fd5b919050565b60008060408385031215611c0e57600080fd5b611c1783611bdf565b946020939093013593505050565b600060208284031215611c3757600080fd5b61146a82611bdf565b600060208284031215611c5257600080fd5b5035919050565b60008060008060008060c08789031215611c7257600080fd5b611c7b87611bdf565b9550611c8960208801611bdf565b9450611c9760408801611bdf565b9350606087013592506080870135915060a087013590509295509295509295565b634e487b7160e01b600052601160045260246000fd5b60008219821115611ce157611ce1611cb8565b500190565b600060208284031215611cf857600080fd5b5051919050565b600060208284031215611d1157600080fd5b8151801515811461146a57600080fd5b600082821015611d3357611d33611cb8565b500390565b60005b83811015611d53578181015183820152602001611d3b565b838111156117365750506000910152565b60008151808452611d7c816020860160208601611d38565b601f01601f19169290920160200192915050565b6001600160a01b03831681526040602082018190526000906108c090830184611d64565b6001600160a01b03848116825283166020820152606060408201819052600090611de090830184611d64565b95945050505050565b6000816000190483118215151615611e0357611e03611cb8565b500290565b600082611e2557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611e9d818460208701611d38565b9190910192915050565b60208152600061146a6020830184611d6456fea2646970667358221220776bae9a01444556f49e135e272e6d666dc0b437dde23f690af77c95ce44ac9b64736f6c634300080d0033",
784
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80637adbf9731161010f578063b187bd26116100a2578063e2608fba11610071578063e2608fba146103f6578063e30c397814610409578063f23c0f401461041a578063f2fde38b1461042957600080fd5b8063b187bd26146103ab578063b4a0bdf3146103c9578063d97c057d146103da578063dd081268146103e357600080fd5b80638ec2b239116100de5780638ec2b2391461033757806398f44cd11461035e578063a52f540c14610385578063a589e98a1461039857600080fd5b80637adbf973146102f85780637dc0d1d01461030b5780638456cb591461031e5780638da5cb5b1461032657600080fd5b806342e8a97211610187578063715018a611610156578063715018a6146101f2578063728cdbca146102d4578063769a48d9146102e757806379ba5097146102f057600080fd5b806342e8a9721461025c57806355725d411461026f578063572ca9e714610282578063586f9933146102a957600080fd5b80630e32cb86116101c35780630e32cb8614610223578063126082cf14610236578063187e28bd1461023f57806340a1dd461461025257600080fd5b8063046f7da2146101ea5780630696819f146101f45780630d35d2ed14610210575b600080fd5b6101f261043c565b005b6101fd60fe5481565b6040519081526020015b60405180910390f35b6101fd61021e366004611bfb565b6104c1565b6101f2610231366004611c25565b610855565b6101fd61271081565b6101fd61024d366004611c40565b610869565b6101fd6101005481565b6101f261026a366004611c40565b6108c8565b6101f261027d366004611c40565b610963565b6101fd7f000000000000000000000000000000000000000000000000000000000000000081565b60fc546102bc906001600160a01b031681565b6040516001600160a01b039091168152602001610207565b6101f26102e2366004611c59565b6109f7565b6101fd60fd5481565b6101f2610ba7565b6101f2610306366004611c25565b610c1e565b60fb546102bc906001600160a01b031681565b6101f2610cac565b6033546001600160a01b03166102bc565b6102bc7f000000000000000000000000000000000000000000000000000000000000000081565b6102bc7f000000000000000000000000000000000000000000000000000000000000000081565b6101f2610393366004611c25565b610d34565b6101f26103a6366004611c40565b610dcd565b610101546103b99060ff1681565b6040519015158152602001610207565b6097546001600160a01b03166102bc565b6101fd60ff5481565b6101fd6103f1366004611bfb565b610e42565b6101fd610404366004611c40565b61122a565b6065546001600160a01b03166102bc565b6101fd670de0b6b3a764000081565b6101f2610437366004611c25565b611292565b61046560405180604001604052806008815260200167726573756d65282960c01b815250611303565b6101015460ff1661048957604051636cd6020160e01b815260040160405180910390fd5b610101805460ff1916905560405133907f108589e68122bb4da8e5020c44387cab025243d0894392e275459641a90181a290600090a2565b6101015460009060ff16156104e9576040516313d0ff5960e31b815260040160405180910390fd5b6104f16113a1565b6104fa836113fa565b61050382611421565b60fb5460405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301529091169063b62cad6990602401600060405180830381600087803b15801561056a57600080fd5b505af115801561057e573d6000803e3d6000fd5b50505050600061058f836001611442565b9050600061059e826001611471565b90506105aa8183611cce565b6040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a08231906024016020604051808303816000875af1158015610610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106349190611ce6565b1015610656576040516001629d12e360e01b0319815260040160405180910390fd5b8161010054101561067a5760405163a5047e9560e01b815260040160405180910390fd5b61010080548390039055801561074b5760fc546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018390526000917f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064016020604051808303816000875af1158015610705573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107299190611cff565b9050806107495760405163aba1276560e01b815260040160405180910390fd5b505b604051632770a7eb60e21b8152336004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690639dc29fac90604401600060405180830381600087803b1580156107b357600080fd5b505af11580156107c7573d6000803e3d6000fd5b506108019250506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016905086866114f7565b60408051838152602081018690529081018290527f031e3397b091e3298ff850e89e965fe3543a0c64eb93659927433b06545f3f629060600160405180910390a150905061084f600160c955565b92915050565b61085d611566565b610866816115c0565b50565b600061087482611421565b6000610881836001611442565b90506000610890826001611471565b9050816101005410156108b65760405163a5047e9560e01b815260040160405180910390fd5b6108c08183611cce565b949350505050565b6108fb604051806040016040528060128152602001717365744665654f75742875696e743235362960701b815250611303565b612710811061091d576040516358d620b360e01b815260040160405180910390fd5b60fe80549082905560408051828152602081018490527fdc61767cf6b8f2d5ec16cd975db6d3a79fc69dc428b04c93e8db271de5e43b9f91015b60405180910390a15050565b61099560405180604001604052806011815260200170736574466565496e2875696e743235362960781b815250611303565b61271081106109b7576040516358d620b360e01b815260040160405180910390fd5b60fd80549082905560408051828152602081018490527fb76804f9786a4411a614b09a8211b2fd86f1f5b7a5e4410f35aa1578aac64e049101610957565b565b600054610100900460ff1615808015610a175750600054600160ff909116105b80610a315750303b158015610a31575060005460ff166001145b610a995760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610abc576000805461ff0019166101001790555b610ac5876113fa565b610ace866113fa565b610ad7856113fa565b610ae08761167e565b610ae86116b6565b61271084101580610afb57506127108310155b15610b19576040516358d620b360e01b815260040160405180910390fd5b60fd84905560fe83905560ff82905560fc80546001600160a01b038089166001600160a01b03199283161790925560fb8054928816929091169190911790558015610b9e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b60655433906001600160a01b03168114610c155760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610a90565b610866816116e5565b610c51604051806040016040528060128152602001717365744f7261636c6528616464726573732960701b815250611303565b610c5a816113fa565b60fb80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f05cd89403c6bdeac21c2ff33de395121a31fa1bc2bf3adf4825f1f86e79969dd90600090a35050565b610cd4604051806040016040528060078152602001667061757365282960c81b815250611303565b6101015460ff1615610cf957604051631785c68160e01b815260040160405180910390fd5b610101805460ff1916600117905560405133907fb7aabc84a8f1fe9971d4bfffb4bb336af2c63e547360dd116940dc70da8159e190600090a2565b610d726040518060400160405280601981526020017f73657456656e7573547265617375727928616464726573732900000000000000815250611303565b610d7b816113fa565b60fc80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f35655f8f1a1f8b7ff254ff70c675c0a26ddcb3da6cb6decd491ecdee167e220b90600090a35050565b610e04604051806040016040528060168152602001757365745641494d696e744361702875696e743235362960501b815250611303565b60ff80549082905560408051828152602081018490527f0f43249751c1ca8dedff5711840ef91871f6fc2ce9b3891c1f33f4163ba1a9a39101610957565b6101015460009060ff1615610e6a576040516313d0ff5960e31b815260040160405180910390fd5b610e726113a1565b610e7b836113fa565b610e8482611421565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f9190611ce6565b9050610f466001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330866116fe565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610fad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd19190611ce6565b90506000610fdf8383611d21565b60fb5460405163b62cad6960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015292935091169063b62cad6990602401600060405180830381600087803b15801561104857600080fd5b505af115801561105c573d6000803e3d6000fd5b50505050600061106d826000611442565b9050600061107c826000611471565b9050600061108a8284611d21565b905060ff54836101005461109e9190611cce565b11156110bd576040516313d3ad1560e31b815260040160405180910390fd5b6101008054840190556040516340c10f1960e01b81526001600160a01b038a81166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401600060405180830381600087803b15801561113057600080fd5b505af1158015611144573d6000803e3d6000fd5b50505050816000146111d85760fc546040516340c10f1960e01b81526001600160a01b039182166004820152602481018490527f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f1990604401600060405180830381600087803b1580156111bf57600080fd5b505af11580156111d3573d6000803e3d6000fd5b505050505b60408051858152602081018390529081018390527f018e5c6d7bd9e0cafe3512ff02488f4c0ce3524a684e1097aab74666bf4fd00f9060600160405180910390a19550505050505061084f600160c955565b600061123582611421565b6000611242836000611442565b90506000611251826000611471565b9050600061125f8284611d21565b905060ff5483610100546112739190611cce565b11156108c0576040516313d3ad1560e31b815260040160405180910390fd5b61129a611566565b606580546001600160a01b0383166001600160a01b031990911681179091556112cb6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906113369033908690600401611d90565b602060405180830381865afa158015611353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113779190611cff565b90508061139d57333083604051634a3fa29360e01b8152600401610a9093929190611db4565b5050565b600260c954036113f35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a90565b600260c955565b6001600160a01b0381166108665760405163d92e233d60e01b815260040160405180910390fd5b8060000361086657604051631f2a200560e01b815260040160405180910390fd5b6000670de0b6b3a76400006114568361173c565b6114609085611de9565b61146a9190611e08565b9392505050565b6000808083600181111561148757611487611e2a565b03611495575060fd5461149a565b5060fe545b806000036114ac57600091505061084f565b6127106114b98286611de9565b10156114d85760405163617ab12d60e11b815260040160405180910390fd5b6127106114e58286611de9565b6114ef9190611e08565b91505061084f565b6040516001600160a01b03831660248201526044810182905261155a90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611883565b505050565b600160c955565b6033546001600160a01b031633146109f55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a90565b6001600160a01b0381166116245760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b6064820152608401610a90565b609780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610957565b600054610100900460ff166116a55760405162461bcd60e51b8152600401610a9090611e40565b6116ad611958565b61086681611987565b600054610100900460ff166116dd5760405162461bcd60e51b8152600401610a9090611e40565b6109f56119ae565b606580546001600160a01b0319169055610866816119d5565b6040516001600160a01b03808516602483015283166044820152606481018290526117369085906323b872dd60e01b90608401611523565b50505050565b60fb546040516341976e0960e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260009283929116906341976e0990602401602060405180830381865afa1580156117aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ce9190611ce6565b905060008360018111156117e4576117e4611e2a565b03611836577f0000000000000000000000000000000000000000000000000000000000000000811061084f577f000000000000000000000000000000000000000000000000000000000000000061146a565b7f0000000000000000000000000000000000000000000000000000000000000000811161084f577f000000000000000000000000000000000000000000000000000000000000000061146a565b60006118d8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611a279092919063ffffffff16565b90508051600014806118f95750808060200190518101906118f99190611cff565b61155a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a90565b600054610100900460ff1661197f5760405162461bcd60e51b8152600401610a9090611e40565b6109f5611a36565b600054610100900460ff1661085d5760405162461bcd60e51b8152600401610a9090611e40565b600054610100900460ff1661155f5760405162461bcd60e51b8152600401610a9090611e40565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606108c08484600085611a66565b600054610100900460ff16611a5d5760405162461bcd60e51b8152600401610a9090611e40565b6109f5336116e5565b606082471015611ac75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a90565b600080866001600160a01b03168587604051611ae39190611e8b565b60006040518083038185875af1925050503d8060008114611b20576040519150601f19603f3d011682016040523d82523d6000602084013e611b25565b606091505b5091509150611b3687838387611b41565b979650505050505050565b60608315611bb0578251600003611ba9576001600160a01b0385163b611ba95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a90565b50816108c0565b6108c08383815115611bc55781518083602001fd5b8060405162461bcd60e51b8152600401610a909190611ea7565b80356001600160a01b0381168114611bf657600080fd5b919050565b60008060408385031215611c0e57600080fd5b611c1783611bdf565b946020939093013593505050565b600060208284031215611c3757600080fd5b61146a82611bdf565b600060208284031215611c5257600080fd5b5035919050565b60008060008060008060c08789031215611c7257600080fd5b611c7b87611bdf565b9550611c8960208801611bdf565b9450611c9760408801611bdf565b9350606087013592506080870135915060a087013590509295509295509295565b634e487b7160e01b600052601160045260246000fd5b60008219821115611ce157611ce1611cb8565b500190565b600060208284031215611cf857600080fd5b5051919050565b600060208284031215611d1157600080fd5b8151801515811461146a57600080fd5b600082821015611d3357611d33611cb8565b500390565b60005b83811015611d53578181015183820152602001611d3b565b838111156117365750506000910152565b60008151808452611d7c816020860160208601611d38565b601f01601f19169290920160200192915050565b6001600160a01b03831681526040602082018190526000906108c090830184611d64565b6001600160a01b03848116825283166020820152606060408201819052600090611de090830184611d64565b95945050505050565b6000816000190483118215151615611e0357611e03611cb8565b500290565b600082611e2557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611e9d818460208701611d38565b9190910192915050565b60208152600061146a6020830184611d6456fea2646970667358221220776bae9a01444556f49e135e272e6d666dc0b437dde23f690af77c95ce44ac9b64736f6c634300080d0033",
785
+ "linkReferences": {},
786
+ "deployedLinkReferences": {}
787
+ }