@gooddollar/goodprotocol 1.0.28 → 1.0.29-beta.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 (352) hide show
  1. package/artifacts/abis/BulkProof.min.json +1 -1
  2. package/artifacts/abis/DistributionBridgeMock.min.json +1 -0
  3. package/artifacts/abis/DistributionHelper.min.json +1 -0
  4. package/artifacts/abis/DistributionHelperTest.min.json +1 -0
  5. package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -0
  6. package/artifacts/abis/ERC20.min.json +1 -1
  7. package/artifacts/abis/GoodDollarMintBurnWrapper.min.json +1 -0
  8. package/artifacts/abis/GoodDollarStaking.min.json +1 -0
  9. package/artifacts/abis/GoodDollarStakingMock.min.json +1 -0
  10. package/artifacts/abis/GoodReserveCDai.min.json +1 -1
  11. package/artifacts/abis/IERC2917.min.json +1 -1
  12. package/artifacts/abis/IGoodDollarStakingTest.min.json +1 -0
  13. package/artifacts/abis/IMultichainRouter.min.json +1 -0
  14. package/artifacts/abis/IRouter.min.json +1 -0
  15. package/artifacts/abis/IWrapper.min.json +1 -0
  16. package/artifacts/abis/Math64x64.min.json +1 -0
  17. package/artifacts/abis/MultichainBridgeHelper.min.json +1 -0
  18. package/artifacts/abis/MultichainRouterMock.min.json +1 -0
  19. package/artifacts/abis/OverMintTester.min.json +1 -1
  20. package/artifacts/abis/PausableControl.min.json +1 -0
  21. package/artifacts/abis/RewardsMinter.min.json +1 -0
  22. package/artifacts/abis/StakingMockFixedAPY.min.json +1 -0
  23. package/artifacts/abis/StakingRewardsFixedAPY.min.json +1 -0
  24. package/artifacts/abis/TokenOperation.min.json +1 -0
  25. package/artifacts/abis/cERC20.min.json +1 -1
  26. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  27. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  28. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  29. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  30. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  31. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/ERC20.json +13 -0
  35. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  36. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  37. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  38. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  39. package/artifacts/contracts/Interfaces.sol/IERC2917.json +13 -0
  40. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  41. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  42. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  43. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  44. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  45. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  46. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +4 -0
  47. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.json +67 -0
  48. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  49. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  50. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  51. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  52. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  53. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  54. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  55. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  56. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  57. package/artifacts/contracts/Interfaces.sol/cERC20.json +13 -0
  58. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  59. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +2 -2
  60. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  61. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
  62. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  63. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
  64. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  65. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
  66. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +4 -0
  67. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +1322 -0
  68. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +4 -0
  69. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.json +35 -0
  70. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  71. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +2 -2
  72. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  73. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  74. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
  75. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  76. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
  77. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  78. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +2 -2
  79. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +4 -0
  83. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +152 -0
  84. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +4 -0
  85. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +662 -0
  86. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +4 -0
  87. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +680 -0
  88. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
  90. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +4 -0
  91. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +1322 -0
  92. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  93. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
  94. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  95. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +4 -0
  97. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.json +59 -0
  98. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +4 -0
  99. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +81 -0
  100. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +4 -0
  101. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.json +49 -0
  102. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  103. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +4 -4
  104. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  105. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  106. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  107. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +4 -0
  108. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +682 -0
  109. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  110. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  111. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  112. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  113. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
  114. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  115. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
  116. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  117. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
  118. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  119. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
  120. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  121. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  122. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  123. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  124. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  125. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  126. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  127. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  128. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +4 -0
  129. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +662 -0
  130. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  131. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
  132. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  133. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
  134. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  135. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  136. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +75 -35
  137. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  138. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  139. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  140. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  141. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  142. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
  143. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  144. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -2
  145. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  146. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  147. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  148. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
  149. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  150. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  151. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  152. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  153. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  154. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
  155. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  156. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
  157. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  158. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
  159. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  160. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
  161. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  162. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
  163. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  164. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
  165. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +4 -0
  166. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +10 -0
  167. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +4 -0
  168. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.json +268 -0
  169. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  170. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
  171. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  172. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +2 -2
  173. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  174. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  175. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +3 -34
  176. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  177. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  178. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  179. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
  180. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  181. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  182. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +4 -0
  183. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +1263 -0
  184. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +4 -0
  185. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.json +59 -0
  186. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +4 -0
  187. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.json +69 -0
  188. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +4 -0
  189. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +10 -0
  190. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +4 -0
  191. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +79 -0
  192. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  193. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  194. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  195. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  196. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  197. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  198. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  199. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  200. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  201. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  202. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  203. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  204. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  205. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  206. package/contracts/Interfaces.sol +20 -0
  207. package/contracts/governance/GoodDollarStaking.sol +510 -0
  208. package/contracts/governance/MultiBaseGovernanceShareField.sol +1 -0
  209. package/contracts/mocks/DistributionBridgeMock.sol +50 -0
  210. package/contracts/mocks/DistributionHelperTest.sol +22 -0
  211. package/contracts/mocks/GoodDollarStakingMock.sol +24 -0
  212. package/contracts/mocks/MultichainRouterMock.sol +38 -0
  213. package/contracts/mocks/OverMintTester.sol +39 -25
  214. package/contracts/mocks/StakingMockFixedAPY.sol +78 -0
  215. package/contracts/reserve/DistributionHelper.sol +142 -0
  216. package/contracts/reserve/GoodReserveCDai.sol +95 -41
  217. package/contracts/staking/utils/Math64X64.sol +268 -0
  218. package/contracts/staking/utils/StakingRewardsFixedAPY.sol +336 -0
  219. package/contracts/utils/BulkProof.sol +10 -10
  220. package/contracts/utils/GoodDollarMintBurnWrapper.sol +638 -0
  221. package/contracts/utils/MultichainBridgeHelper.sol +39 -0
  222. package/hardhat.config.ts +5 -3
  223. package/package.json +7 -4
  224. package/patches/@openzeppelin+hardhat-upgrades+1.7.0.patch.depracate +67 -0
  225. package/releases/deployment.json +10 -3
  226. package/releases/olddao.json +1 -1
  227. package/scripts/analytics/activeUsersCount.ts +65 -0
  228. package/scripts/analytics/activeWalletsStats.ts +150 -0
  229. package/scripts/analytics/claimIncidentStats.ts +117 -0
  230. package/scripts/analytics/faucetStats.ts +103 -0
  231. package/scripts/analytics/goodHolders.ts +50 -0
  232. package/scripts/{misc → analytics}/goodgiveback.ts +0 -0
  233. package/scripts/governance/airdropCalculation.ts +1 -0
  234. package/scripts/multichain-deploy/basicdao-deploy.ts +20 -5
  235. package/scripts/multichain-deploy/gdSavings-deploy.ts +232 -0
  236. package/scripts/multichain-deploy/helpers.ts +73 -8
  237. package/scripts/multichain-deploy/multichainWrapper-deploy.ts +56 -0
  238. package/scripts/multichain-deploy/nonubiDistribution-deploy.ts +170 -0
  239. package/scripts/voltageswaps.ts +47 -0
  240. package/test/governance/ClaimersDistribution.test.ts +1 -1
  241. package/test/governance/GoodDollarStaking.gd.test.ts +559 -0
  242. package/test/governance/GoodDollarStaking.good.test.ts +998 -0
  243. package/test/governance/GovernanceStaking.test.ts +43 -0
  244. package/test/helpers.ts +9 -12
  245. package/test/reserve/DistributionHelper.test.ts +394 -0
  246. package/test/reserve/GoodReserveCDai.distribution.test.ts +296 -0
  247. package/test/reserve/GoodReserveCDai.gdx.test.ts +21 -16
  248. package/test/reserve/GoodReserveCDai.pause.test.ts +116 -0
  249. package/test/staking/StakingRewardsFixedAPY.test.ts +900 -0
  250. package/test/utils/AdminWallet.test.ts +35 -6
  251. package/test/utils/GoodDollarMintBurnWrapper.test.ts +796 -0
  252. package/tsconfig.json +4 -9
  253. package/types/AccessControl.ts +361 -0
  254. package/types/CERC20.ts +25 -0
  255. package/types/DistributionBridgeMock.ts +251 -0
  256. package/types/DistributionHelper.ts +908 -0
  257. package/types/DistributionHelperTest.ts +909 -0
  258. package/types/DistributionHelperTestHelper.ts +945 -0
  259. package/types/ERC165.ts +104 -0
  260. package/types/ERC20.ts +101 -49
  261. package/types/GoodDollarMintBurnWrapper.ts +1806 -0
  262. package/types/GoodDollarStaking.ts +1855 -0
  263. package/types/GoodDollarStakingMock.ts +1855 -0
  264. package/types/GoodReserveCDai.ts +90 -55
  265. package/types/IAccessControl.ts +306 -0
  266. package/types/IERC165.ts +104 -0
  267. package/types/IERC20.ts +300 -0
  268. package/types/IERC20Metadata.ts +339 -0
  269. package/types/IERC2917.ts +25 -0
  270. package/types/IGoodDollarStakingTest.ts +160 -0
  271. package/types/IMultichainRouter.ts +166 -0
  272. package/types/IRouter.ts +143 -0
  273. package/types/IWrapper.ts +143 -0
  274. package/types/MultichainBridgeHelper.ts +170 -0
  275. package/types/MultichainRouterMock.ts +141 -0
  276. package/types/Pausable.ts +103 -0
  277. package/types/PausableControl.ts +125 -0
  278. package/types/{BulkProof.ts → RewardsMinter.ts} +24 -28
  279. package/types/StakingMockFixedAPY.ts +995 -0
  280. package/types/StakingRewardsFixedAPY.ts +428 -0
  281. package/types/factories/AaveStakingFactory__factory.ts +1 -1
  282. package/types/factories/AccessControl__factory.ts +227 -0
  283. package/types/factories/AdminWallet__factory.ts +1 -1
  284. package/types/factories/BaseShareFieldV2__factory.ts +1 -1
  285. package/types/factories/BaseShareField__factory.ts +1 -1
  286. package/types/factories/CERC20__factory.ts +13 -0
  287. package/types/factories/ClaimersDistribution__factory.ts +1 -1
  288. package/types/factories/CompoundStakingFactory__factory.ts +1 -1
  289. package/types/factories/CompoundVotingMachine__factory.ts +1 -1
  290. package/types/factories/DAOContract__factory.ts +1 -1
  291. package/types/factories/DAOUpgradeableContract__factory.ts +1 -1
  292. package/types/factories/DistributionBridgeMock__factory.ts +207 -0
  293. package/types/factories/DistributionHelperTestHelper__factory.ts +737 -0
  294. package/types/factories/DistributionHelperTest__factory.ts +717 -0
  295. package/types/factories/DistributionHelper__factory.ts +713 -0
  296. package/types/factories/DonationsStaking__factory.ts +1 -1
  297. package/types/factories/ERC165__factory.ts +39 -0
  298. package/types/factories/ERC20__factory.ts +13 -0
  299. package/types/factories/ExchangeHelper__factory.ts +1 -1
  300. package/types/factories/FuseFaucet__factory.ts +1 -1
  301. package/types/factories/FuseStakingV3__factory.ts +1 -1
  302. package/types/factories/GReputation__factory.ts +1 -1
  303. package/types/factories/GoodAaveStakingV2__factory.ts +1 -1
  304. package/types/factories/GoodAaveStaking__factory.ts +1 -1
  305. package/types/factories/GoodCompoundStakingTest__factory.ts +1 -1
  306. package/types/factories/GoodCompoundStakingV2__factory.ts +1 -1
  307. package/types/factories/GoodCompoundStaking__factory.ts +1 -1
  308. package/types/factories/GoodDollarMintBurnWrapper__factory.ts +1318 -0
  309. package/types/factories/GoodDollarStakingMock__factory.ts +1404 -0
  310. package/types/factories/GoodDollarStaking__factory.ts +1400 -0
  311. package/types/factories/GoodFundManagerTest__factory.ts +1 -1
  312. package/types/factories/GoodFundManager__factory.ts +1 -1
  313. package/types/factories/GoodMarketMaker__factory.ts +1 -1
  314. package/types/factories/GoodReserveCDai__factory.ts +74 -34
  315. package/types/factories/GovernanceStaking__factory.ts +1 -1
  316. package/types/factories/IAccessControl__factory.ts +198 -0
  317. package/types/factories/IERC165__factory.ts +42 -0
  318. package/types/factories/IERC20Metadata__factory.ts +248 -0
  319. package/types/factories/IERC20__factory.ts +203 -0
  320. package/types/factories/IERC2917__factory.ts +13 -0
  321. package/types/factories/IGoodDollarStakingTest__factory.ts +68 -0
  322. package/types/factories/IMultichainRouter__factory.ts +82 -0
  323. package/types/factories/IRouter__factory.ts +71 -0
  324. package/types/factories/IWrapper__factory.ts +71 -0
  325. package/types/factories/InvitesV1__factory.ts +1 -1
  326. package/types/factories/MultichainBridgeHelper__factory.ts +134 -0
  327. package/types/factories/MultichainRouterMock__factory.ts +141 -0
  328. package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
  329. package/types/factories/OverMintTester__factory.ts +3 -3
  330. package/types/factories/PausableControl__factory.ts +84 -0
  331. package/types/factories/Pausable__factory.ts +62 -0
  332. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
  333. package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
  334. package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
  335. package/types/factories/ProtocolUpgrade__factory.ts +1 -1
  336. package/types/factories/ReputationTestHelper__factory.ts +1 -1
  337. package/types/factories/Reputation__factory.ts +1 -1
  338. package/types/factories/RewardsMinter__factory.ts +47 -0
  339. package/types/factories/StakersDistribution__factory.ts +1 -1
  340. package/types/factories/StakingMockFixedAPY__factory.ts +745 -0
  341. package/types/factories/StakingRewardsFixedAPY__factory.ts +287 -0
  342. package/types/factories/SwapHelperTest__factory.ts +1 -1
  343. package/types/factories/UBIScheme__factory.ts +1 -1
  344. package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
  345. package/types/factories/UpgradableMock2__factory.ts +1 -1
  346. package/types/factories/UpgradableMock3__factory.ts +1 -1
  347. package/types/factories/UpgradableMock4__factory.ts +1 -1
  348. package/types/factories/UpgradableMock__factory.ts +1 -1
  349. package/types/hardhat.d.ts +225 -9
  350. package/types/index.ts +50 -4
  351. package/yarn.lock +180 -104
  352. package/types/factories/BulkProof__factory.ts +0 -89
@@ -0,0 +1,682 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "StakingMockFixedAPY",
4
+ "sourceName": "contracts/mocks/StakingMockFixedAPY.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "uint128",
10
+ "name": "_interestRatePerBlock",
11
+ "type": "uint128"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "anonymous": false,
19
+ "inputs": [
20
+ {
21
+ "indexed": true,
22
+ "internalType": "address",
23
+ "name": "owner",
24
+ "type": "address"
25
+ },
26
+ {
27
+ "indexed": true,
28
+ "internalType": "address",
29
+ "name": "spender",
30
+ "type": "address"
31
+ },
32
+ {
33
+ "indexed": false,
34
+ "internalType": "uint256",
35
+ "name": "value",
36
+ "type": "uint256"
37
+ }
38
+ ],
39
+ "name": "Approval",
40
+ "type": "event"
41
+ },
42
+ {
43
+ "anonymous": false,
44
+ "inputs": [
45
+ {
46
+ "indexed": true,
47
+ "internalType": "address",
48
+ "name": "from",
49
+ "type": "address"
50
+ },
51
+ {
52
+ "indexed": true,
53
+ "internalType": "address",
54
+ "name": "to",
55
+ "type": "address"
56
+ },
57
+ {
58
+ "indexed": false,
59
+ "internalType": "uint256",
60
+ "name": "value",
61
+ "type": "uint256"
62
+ }
63
+ ],
64
+ "name": "Transfer",
65
+ "type": "event"
66
+ },
67
+ {
68
+ "inputs": [],
69
+ "name": "PRECISION",
70
+ "outputs": [
71
+ {
72
+ "internalType": "uint128",
73
+ "name": "",
74
+ "type": "uint128"
75
+ }
76
+ ],
77
+ "stateMutability": "view",
78
+ "type": "function"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "SHARE_DECIMALS",
83
+ "outputs": [
84
+ {
85
+ "internalType": "uint128",
86
+ "name": "",
87
+ "type": "uint128"
88
+ }
89
+ ],
90
+ "stateMutability": "view",
91
+ "type": "function"
92
+ },
93
+ {
94
+ "inputs": [],
95
+ "name": "SHARE_PRECISION",
96
+ "outputs": [
97
+ {
98
+ "internalType": "uint128",
99
+ "name": "",
100
+ "type": "uint128"
101
+ }
102
+ ],
103
+ "stateMutability": "view",
104
+ "type": "function"
105
+ },
106
+ {
107
+ "inputs": [
108
+ {
109
+ "internalType": "address",
110
+ "name": "owner",
111
+ "type": "address"
112
+ },
113
+ {
114
+ "internalType": "address",
115
+ "name": "spender",
116
+ "type": "address"
117
+ }
118
+ ],
119
+ "name": "allowance",
120
+ "outputs": [
121
+ {
122
+ "internalType": "uint256",
123
+ "name": "",
124
+ "type": "uint256"
125
+ }
126
+ ],
127
+ "stateMutability": "view",
128
+ "type": "function"
129
+ },
130
+ {
131
+ "inputs": [
132
+ {
133
+ "internalType": "uint256",
134
+ "name": "_amount",
135
+ "type": "uint256"
136
+ }
137
+ ],
138
+ "name": "amountToShares",
139
+ "outputs": [
140
+ {
141
+ "internalType": "uint256",
142
+ "name": "shares",
143
+ "type": "uint256"
144
+ }
145
+ ],
146
+ "stateMutability": "view",
147
+ "type": "function"
148
+ },
149
+ {
150
+ "inputs": [
151
+ {
152
+ "internalType": "address",
153
+ "name": "spender",
154
+ "type": "address"
155
+ },
156
+ {
157
+ "internalType": "uint256",
158
+ "name": "amount",
159
+ "type": "uint256"
160
+ }
161
+ ],
162
+ "name": "approve",
163
+ "outputs": [
164
+ {
165
+ "internalType": "bool",
166
+ "name": "",
167
+ "type": "bool"
168
+ }
169
+ ],
170
+ "stateMutability": "nonpayable",
171
+ "type": "function"
172
+ },
173
+ {
174
+ "inputs": [
175
+ {
176
+ "internalType": "address",
177
+ "name": "account",
178
+ "type": "address"
179
+ }
180
+ ],
181
+ "name": "balanceOf",
182
+ "outputs": [
183
+ {
184
+ "internalType": "uint256",
185
+ "name": "",
186
+ "type": "uint256"
187
+ }
188
+ ],
189
+ "stateMutability": "view",
190
+ "type": "function"
191
+ },
192
+ {
193
+ "inputs": [],
194
+ "name": "compound",
195
+ "outputs": [
196
+ {
197
+ "internalType": "uint256",
198
+ "name": "compoundedSavings",
199
+ "type": "uint256"
200
+ }
201
+ ],
202
+ "stateMutability": "view",
203
+ "type": "function"
204
+ },
205
+ {
206
+ "inputs": [],
207
+ "name": "compoundNextBlock",
208
+ "outputs": [
209
+ {
210
+ "internalType": "uint256",
211
+ "name": "compoundedSavings",
212
+ "type": "uint256"
213
+ }
214
+ ],
215
+ "stateMutability": "view",
216
+ "type": "function"
217
+ },
218
+ {
219
+ "inputs": [],
220
+ "name": "decimals",
221
+ "outputs": [
222
+ {
223
+ "internalType": "uint8",
224
+ "name": "",
225
+ "type": "uint8"
226
+ }
227
+ ],
228
+ "stateMutability": "view",
229
+ "type": "function"
230
+ },
231
+ {
232
+ "inputs": [
233
+ {
234
+ "internalType": "address",
235
+ "name": "spender",
236
+ "type": "address"
237
+ },
238
+ {
239
+ "internalType": "uint256",
240
+ "name": "subtractedValue",
241
+ "type": "uint256"
242
+ }
243
+ ],
244
+ "name": "decreaseAllowance",
245
+ "outputs": [
246
+ {
247
+ "internalType": "bool",
248
+ "name": "",
249
+ "type": "bool"
250
+ }
251
+ ],
252
+ "stateMutability": "nonpayable",
253
+ "type": "function"
254
+ },
255
+ {
256
+ "inputs": [
257
+ {
258
+ "internalType": "address",
259
+ "name": "_account",
260
+ "type": "address"
261
+ }
262
+ ],
263
+ "name": "earned",
264
+ "outputs": [
265
+ {
266
+ "internalType": "uint256",
267
+ "name": "earnedRewards",
268
+ "type": "uint256"
269
+ }
270
+ ],
271
+ "stateMutability": "view",
272
+ "type": "function"
273
+ },
274
+ {
275
+ "inputs": [],
276
+ "name": "getRewardsDebt",
277
+ "outputs": [
278
+ {
279
+ "internalType": "uint256",
280
+ "name": "debt",
281
+ "type": "uint256"
282
+ }
283
+ ],
284
+ "stateMutability": "view",
285
+ "type": "function"
286
+ },
287
+ {
288
+ "inputs": [
289
+ {
290
+ "internalType": "address",
291
+ "name": "_account",
292
+ "type": "address"
293
+ }
294
+ ],
295
+ "name": "getSavings",
296
+ "outputs": [
297
+ {
298
+ "internalType": "uint256",
299
+ "name": "balance",
300
+ "type": "uint256"
301
+ }
302
+ ],
303
+ "stateMutability": "view",
304
+ "type": "function"
305
+ },
306
+ {
307
+ "inputs": [
308
+ {
309
+ "internalType": "address",
310
+ "name": "spender",
311
+ "type": "address"
312
+ },
313
+ {
314
+ "internalType": "uint256",
315
+ "name": "addedValue",
316
+ "type": "uint256"
317
+ }
318
+ ],
319
+ "name": "increaseAllowance",
320
+ "outputs": [
321
+ {
322
+ "internalType": "bool",
323
+ "name": "",
324
+ "type": "bool"
325
+ }
326
+ ],
327
+ "stateMutability": "nonpayable",
328
+ "type": "function"
329
+ },
330
+ {
331
+ "inputs": [],
332
+ "name": "interestRatePerBlockX64",
333
+ "outputs": [
334
+ {
335
+ "internalType": "int128",
336
+ "name": "",
337
+ "type": "int128"
338
+ }
339
+ ],
340
+ "stateMutability": "view",
341
+ "type": "function"
342
+ },
343
+ {
344
+ "inputs": [
345
+ {
346
+ "internalType": "address",
347
+ "name": "_account",
348
+ "type": "address"
349
+ }
350
+ ],
351
+ "name": "lastSharePrice",
352
+ "outputs": [
353
+ {
354
+ "internalType": "uint256",
355
+ "name": "price",
356
+ "type": "uint256"
357
+ }
358
+ ],
359
+ "stateMutability": "view",
360
+ "type": "function"
361
+ },
362
+ {
363
+ "inputs": [],
364
+ "name": "name",
365
+ "outputs": [
366
+ {
367
+ "internalType": "string",
368
+ "name": "",
369
+ "type": "string"
370
+ }
371
+ ],
372
+ "stateMutability": "view",
373
+ "type": "function"
374
+ },
375
+ {
376
+ "inputs": [
377
+ {
378
+ "internalType": "address",
379
+ "name": "_account",
380
+ "type": "address"
381
+ }
382
+ ],
383
+ "name": "principle",
384
+ "outputs": [
385
+ {
386
+ "internalType": "uint256",
387
+ "name": "deposited",
388
+ "type": "uint256"
389
+ }
390
+ ],
391
+ "stateMutability": "view",
392
+ "type": "function"
393
+ },
394
+ {
395
+ "inputs": [
396
+ {
397
+ "internalType": "uint128",
398
+ "name": "_interestRatePerBlock",
399
+ "type": "uint128"
400
+ }
401
+ ],
402
+ "name": "setAPY",
403
+ "outputs": [],
404
+ "stateMutability": "nonpayable",
405
+ "type": "function"
406
+ },
407
+ {
408
+ "inputs": [],
409
+ "name": "sharePrice",
410
+ "outputs": [
411
+ {
412
+ "internalType": "uint256",
413
+ "name": "price",
414
+ "type": "uint256"
415
+ }
416
+ ],
417
+ "stateMutability": "view",
418
+ "type": "function"
419
+ },
420
+ {
421
+ "inputs": [
422
+ {
423
+ "internalType": "address",
424
+ "name": "_account",
425
+ "type": "address"
426
+ }
427
+ ],
428
+ "name": "sharesOf",
429
+ "outputs": [
430
+ {
431
+ "internalType": "uint256",
432
+ "name": "",
433
+ "type": "uint256"
434
+ }
435
+ ],
436
+ "stateMutability": "view",
437
+ "type": "function"
438
+ },
439
+ {
440
+ "inputs": [],
441
+ "name": "sharesSupply",
442
+ "outputs": [
443
+ {
444
+ "internalType": "uint256",
445
+ "name": "",
446
+ "type": "uint256"
447
+ }
448
+ ],
449
+ "stateMutability": "view",
450
+ "type": "function"
451
+ },
452
+ {
453
+ "inputs": [
454
+ {
455
+ "internalType": "address",
456
+ "name": "_from",
457
+ "type": "address"
458
+ },
459
+ {
460
+ "internalType": "uint256",
461
+ "name": "_amount",
462
+ "type": "uint256"
463
+ }
464
+ ],
465
+ "name": "stake",
466
+ "outputs": [],
467
+ "stateMutability": "nonpayable",
468
+ "type": "function"
469
+ },
470
+ {
471
+ "inputs": [
472
+ {
473
+ "internalType": "address",
474
+ "name": "",
475
+ "type": "address"
476
+ }
477
+ ],
478
+ "name": "stakersInfo",
479
+ "outputs": [
480
+ {
481
+ "internalType": "uint128",
482
+ "name": "lastSharePrice",
483
+ "type": "uint128"
484
+ },
485
+ {
486
+ "internalType": "uint128",
487
+ "name": "rewardsPaid",
488
+ "type": "uint128"
489
+ }
490
+ ],
491
+ "stateMutability": "view",
492
+ "type": "function"
493
+ },
494
+ {
495
+ "inputs": [],
496
+ "name": "stats",
497
+ "outputs": [
498
+ {
499
+ "internalType": "uint128",
500
+ "name": "lastUpdateBlock",
501
+ "type": "uint128"
502
+ },
503
+ {
504
+ "internalType": "uint128",
505
+ "name": "totalStaked",
506
+ "type": "uint128"
507
+ },
508
+ {
509
+ "internalType": "uint128",
510
+ "name": "totalRewardsPaid",
511
+ "type": "uint128"
512
+ },
513
+ {
514
+ "internalType": "uint256",
515
+ "name": "savings",
516
+ "type": "uint256"
517
+ }
518
+ ],
519
+ "stateMutability": "view",
520
+ "type": "function"
521
+ },
522
+ {
523
+ "inputs": [],
524
+ "name": "symbol",
525
+ "outputs": [
526
+ {
527
+ "internalType": "string",
528
+ "name": "",
529
+ "type": "string"
530
+ }
531
+ ],
532
+ "stateMutability": "view",
533
+ "type": "function"
534
+ },
535
+ {
536
+ "inputs": [],
537
+ "name": "totalSupply",
538
+ "outputs": [
539
+ {
540
+ "internalType": "uint256",
541
+ "name": "",
542
+ "type": "uint256"
543
+ }
544
+ ],
545
+ "stateMutability": "view",
546
+ "type": "function"
547
+ },
548
+ {
549
+ "inputs": [
550
+ {
551
+ "internalType": "address",
552
+ "name": "to",
553
+ "type": "address"
554
+ },
555
+ {
556
+ "internalType": "uint256",
557
+ "name": "amount",
558
+ "type": "uint256"
559
+ }
560
+ ],
561
+ "name": "transfer",
562
+ "outputs": [
563
+ {
564
+ "internalType": "bool",
565
+ "name": "",
566
+ "type": "bool"
567
+ }
568
+ ],
569
+ "stateMutability": "nonpayable",
570
+ "type": "function"
571
+ },
572
+ {
573
+ "inputs": [
574
+ {
575
+ "internalType": "address",
576
+ "name": "from",
577
+ "type": "address"
578
+ },
579
+ {
580
+ "internalType": "address",
581
+ "name": "to",
582
+ "type": "address"
583
+ },
584
+ {
585
+ "internalType": "uint256",
586
+ "name": "amount",
587
+ "type": "uint256"
588
+ }
589
+ ],
590
+ "name": "transferFrom",
591
+ "outputs": [
592
+ {
593
+ "internalType": "bool",
594
+ "name": "",
595
+ "type": "bool"
596
+ }
597
+ ],
598
+ "stateMutability": "nonpayable",
599
+ "type": "function"
600
+ },
601
+ {
602
+ "inputs": [
603
+ {
604
+ "internalType": "address",
605
+ "name": "_to",
606
+ "type": "address"
607
+ },
608
+ {
609
+ "internalType": "uint256",
610
+ "name": "_amount",
611
+ "type": "uint256"
612
+ }
613
+ ],
614
+ "name": "undoReward",
615
+ "outputs": [],
616
+ "stateMutability": "nonpayable",
617
+ "type": "function"
618
+ },
619
+ {
620
+ "inputs": [
621
+ {
622
+ "internalType": "address",
623
+ "name": "_from",
624
+ "type": "address"
625
+ },
626
+ {
627
+ "internalType": "uint256",
628
+ "name": "_shares",
629
+ "type": "uint256"
630
+ }
631
+ ],
632
+ "name": "withdraw",
633
+ "outputs": [
634
+ {
635
+ "internalType": "uint256",
636
+ "name": "depositComponent",
637
+ "type": "uint256"
638
+ },
639
+ {
640
+ "internalType": "uint256",
641
+ "name": "rewardComponent",
642
+ "type": "uint256"
643
+ }
644
+ ],
645
+ "stateMutability": "nonpayable",
646
+ "type": "function"
647
+ },
648
+ {
649
+ "inputs": [
650
+ {
651
+ "internalType": "address",
652
+ "name": "_from",
653
+ "type": "address"
654
+ },
655
+ {
656
+ "internalType": "uint256",
657
+ "name": "_shares",
658
+ "type": "uint256"
659
+ }
660
+ ],
661
+ "name": "withdrawAndUndo",
662
+ "outputs": [
663
+ {
664
+ "internalType": "uint256",
665
+ "name": "depositComponent",
666
+ "type": "uint256"
667
+ },
668
+ {
669
+ "internalType": "uint256",
670
+ "name": "rewardComponent",
671
+ "type": "uint256"
672
+ }
673
+ ],
674
+ "stateMutability": "nonpayable",
675
+ "type": "function"
676
+ }
677
+ ],
678
+ "bytecode": "0x60806040523480156200001157600080fd5b506040516200268b3803806200268b8339810160408190526200003491620006e7565b604080518082018252600f81526e472420536176696e6773204d6f636b60881b6020808301918252835180850190945260088452671b5bd8dadcdd91c960c21b9084015281519192916200008b9160039162000641565b508051620000a190600490602084019062000641565b505050620000b581620000bc60201b60201c565b50620007a1565b620000c662000111565b620000ee816001600160801b0316670de0b6b3a76400006200013b60201b6200095a1760201c565b600980546001600160801b0319166001600160801b039290921691909117905550565b6200011b6200017f565b600755600580546001600160801b031916436001600160801b0316179055565b6000816200014857600080fd5b60006200015684846200020c565b905060016001607f1b036001600160801b03821611156200017657600080fd5b90505b92915050565b60075460009015806200019c57506005546001600160801b031643145b15620001a9575060075490565b600554600090620001e290620001c9906001600160801b03164362000712565b600954600f0b9062000387602090811b6200099817901c565b90506200020660056002015482600f0b620005d460201b62000bbb1790919060201c565b91505090565b6000816200021957600080fd5b60006001600160c01b038411620002495782604085901b8162000240576200024062000738565b04905062000372565b60c084811c640100000000811062000263576020918201911c5b62010000811062000276576010918201911c5b610100811062000288576008918201911c5b6010811062000299576004918201911c5b60048110620002aa576002918201911c5b60028110620002ba576001820191505b60bf820360018603901c6001018260ff0387901b81620002de57620002de62000738565b0492506001600160801b03831115620002f657600080fd5b608085901c83026001600160801b038616840260c088901c604089901b8281101562000323576001820391505b608084901b929003828110156200033b576001820391505b829003608084901c82146200035457620003546200074e565b88818162000366576200036662000738565b04870196505050505050505b6001600160801b038111156200017657600080fd5b600080600084600f0b128015620003a15750826001166001145b905060008085600f0b12620003b75784620003bc565b846000035b6001600160801b03169050600160801b6801000000000000000082116200045e57603f82901b91505b841562000455576001851615620003fc578102607f1c5b908002607f1c90600285161562000413578102607f1c5b908002607f1c9060048516156200042a578102607f1c5b908002607f1c90600885161562000441578102607f1c5b60049490941c93908002607f1c90620003e5565b60401c6200058a565b603f6c01000000000000000000000000831015620004825760209290921b91601f19015b600160701b8310156200049b5760109290921b91600f19015b600160781b831015620004b45760089290921b91600719015b6001607c1b831015620004cd5760049290921b91600319015b6001607e1b831015620004e65760029290921b91600119015b6001607f1b831015620004ff5760019290921b91600019015b60005b86156200057257604082106200051757600080fd5b60018716156200053f57918302607f1c918101600160801b8311156200053f57600192831c92015b928002607f1c9260019190911b90600160801b84106200056557600193841c9391909101905b600187901c965062000502565b604081106200058057600080fd5b6040039190911c90505b6000836200059957816200059e565b816000035b905060016001607f1b03198112801590620005c0575060016001607f1b038113155b620005ca57600080fd5b9695505050505050565b600081620005e55750600062000179565b600083600f0b1215620005f757600080fd5b600f83900b6001600160801b038316810260401c90608084901c026001600160c01b038111156200062757600080fd5b60401b81198111156200063957600080fd5b019392505050565b8280546200064f9062000764565b90600052602060002090601f016020900481019282620006735760008555620006be565b82601f106200068e57805160ff1916838001178555620006be565b82800160010185558215620006be579182015b82811115620006be578251825591602001919060010190620006a1565b50620006cc929150620006d0565b5090565b5b80821115620006cc5760008155600101620006d1565b600060208284031215620006fa57600080fd5b81516001600160801b03811681146200017657600080fd5b6000828210156200073357634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600181811c908216806200077957607f821691505b602082108114156200079b57634e487b7160e01b600052602260045260246000fd5b50919050565b611eda80620007b16000396000f3fe608060405234801561001057600080fd5b506004361061018a5760003560e01c80628cc2621461018f57806306fdde03146101b5578063095ea7b3146101ca57806317397115146101ed57806318160ddd146102155780631fce37091461021d57806322022a291461023257806323b872dd1461023a578063313ce5671461024d57806336de95f61461025c578063395093511461026f5780634a174a0b14610282578063576ce9fd1461028a5780635fc5e0201461029d57806370a08231146102c45780637282e23b146102d7578063777d6641146102ea578063872697291461030a57806395d89b4114610312578063a457c2d71461031a578063a9059cbb1461032d578063aa32582114610340578063aaf5eb681461029d578063aba78c1614610353578063adc9772e146103a7578063b811540e146103ba578063ceb8b01c146103cd578063d80528ae146103d5578063d853365f14610434578063dd62ed3e1461043d578063f3fef3a314610450578063f5eb42dc14610463578063f69e204614610476575b600080fd5b6101a261019d366004611bca565b61047e565b6040519081526020015b60405180910390f35b6101bd6104f0565b6040516101ac9190611be5565b6101dd6101d8366004611c3a565b610582565b60405190151581526020016101ac565b6102006101fb366004611c3a565b61059c565b604080519283526020830191909152016101ac565b6002546101a2565b61023061022b366004611c64565b6105bf565b005b6101a26105cb565b6101dd610248366004611c8d565b6105db565b604051601281526020016101ac565b6101a261026a366004611bca565b6105ff565b6101dd61027d366004611c3a565b610630565b6101a261066f565b6101a2610298366004611bca565b6106e6565b6102ac670de0b6b3a764000081565b6040516001600160801b0390911681526020016101ac565b6101a26102d2366004611bca565b61070a565b6102306102e5366004611c3a565b610725565b6009546102f790600f0b81565b604051600f9190910b81526020016101ac565b6101a2610742565b6101bd6107a0565b6101dd610328366004611c3a565b6107af565b6101dd61033b366004611c3a565b610846565b6101a261034e366004611bca565b610854565b610387610361366004611bca565b6008602052600090815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016101ac565b6102306103b5366004611c3a565b610870565b6101a26103c8366004611cc9565b61087c565b6101a26108ba565b6005546006546007546103ff926001600160801b0380821693600160801b90920481169291169084565b6040516101ac94939291906001600160801b039485168152928416602084015292166040820152606081019190915260800190565b6102ac61271081565b6101a261044b366004611ce2565b6108fe565b61020061045e366004611c3a565b610929565b6101a2610471366004611bca565b610945565b6101a2610950565b60008061048a83610945565b90506000610496610742565b905060006104a3856106e6565b90508181116104b257806104b4565b815b9050670de0b6b3a76400006104c98483611d2b565b6104d38585611d2b565b6104dd9190611d4a565b6104e79190611d77565b95945050505050565b6060600380546104ff90611d99565b80601f016020809104026020016040519081016040528092919081815260200182805461052b90611d99565b80156105785780601f1061054d57610100808354040283529160200191610578565b820191906000526020600020905b81548152906001019060200180831161055b57829003601f168201915b5050505050905090565b600033610590818585610c23565b60019150505b92915050565b6000806105a98484610929565b90925090506105b88482610725565b9250929050565b6105c881610d47565b50565b60006105d660025490565b905090565b6000336105e9858285610d8d565b6105f4858585610e07565b506001949350505050565b6000670de0b6b3a764000061061383610945565b61061c846106e6565b6106269190611d2b565b6105969190611d77565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190610590908290869061066a908790611dd4565b610c23565b600754600090158061068b57506005546001600160801b031643145b15610697575060075490565b6005546000906106cb906001600160801b03166106b5436001611dd4565b6106bf9190611d4a565b600954600f0b90610998565b6007549091506106e090600f83900b90610bbb565b91505090565b6001600160a01b03166000908152600860205260409020546001600160801b031690565b6001600160a01b031660009081526020819052604090205490565b60006107318383610fc3565b905061073d83826111dc565b505050565b60008061074d6112a9565b90506107576105cb565b1561079857670de0b6b3a764000061076d6105cb565b6107779190611d2b565b610789670de0b6b3a764000083611d2b565b6107939190611d77565b6106e0565b600091505090565b6060600480546104ff90611d99565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156108395760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6105f48286868403610c23565b600033610590818585610e07565b6000670de0b6b3a764000061086883610945565b61061c610742565b600061073183836112ee565b6000610596610889610742565b61271061089e670de0b6b3a764000086611d2b565b6108a89190611d2b565b6108b29190611d77565b612710611515565b6005546000906108e390670de0b6b3a764000090600160801b90046001600160801b0316611dec565b6001600160801b03166108f46112a9565b6105d69190611d4a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000806109368484611538565b90925090506105b884846118e9565b60006105968261070a565b60006105d66112a9565b60008161096657600080fd5b60006109728484611a25565b905060016001607f1b036001600160801b038216111561099157600080fd5b9392505050565b600080600084600f0b1280156109b15750826001166001145b905060008085600f0b126109c557846109ca565b846000035b6001600160801b03169050600160801b600160401b8211610a5f57603f82901b91505b8415610a57576001851615610a02578102607f1c5b908002607f1c906002851615610a18578102607f1c5b908002607f1c906004851615610a2e578102607f1c5b908002607f1c906008851615610a44578102607f1c5b60049490941c93908002607f1c906109ed565b60401c610b75565b603f600160601b831015610a795760209290921b91601f19015b600160701b831015610a915760109290921b91600f19015b600160781b831015610aa95760089290921b91600719015b6001607c1b831015610ac15760049290921b91600319015b6001607e1b831015610ad95760029290921b91600119015b6001607f1b831015610af15760019290921b91600019015b60005b8615610b5e5760408210610b0757600080fd5b6001871615610b2d57918302607f1c918101600160801b831115610b2d57600192831c92015b928002607f1c9260019190911b90600160801b8410610b5257600193841c9391909101905b600187901c9650610af4565b60408110610b6b57600080fd5b6040039190911c90505b600083610b825781610b87565b816000035b905060016001607f1b03198112801590610ba8575060016001607f1b038113155b610bb157600080fd5b9695505050505050565b600081610bca57506000610596565b600083600f0b1215610bdb57600080fd5b600f83900b6001600160801b038316810260401c90608084901c026001600160c01b03811115610c0a57600080fd5b60401b8119811115610c1b57600080fd5b019392505050565b6001600160a01b038316610c855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610830565b6001600160a01b038216610ce65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610830565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b610d4f611b86565b610d6a816001600160801b0316670de0b6b3a764000061095a565b600980546001600160801b0319166001600160801b039290921691909117905550565b6000610d9984846108fe565b90506000198114610e015781811015610df45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610830565b610e018484848403610c23565b50505050565b6001600160a01b038316610e6b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610830565b6001600160a01b038216610ecd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610830565b6001600160a01b03831660009081526020819052604090205481811015610f455760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610830565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610f7c908490611dd4565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611e8583398151915284604051610fb691815260200190565b60405180910390a3610e01565b600081610fd257506000610596565b6000610fdc6105cb565b11610ff257610fed61271083611d2b565b611016565b610ffa610742565b61100c670de0b6b3a764000084611d2b565b6110169190611d77565b6006805491925083916000906110369084906001600160801b0316611e1b565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550670de0b6b3a76400006001600160801b0316826110779190611d2b565b60078054600090611089908490611dd4565b90915550506001600160a01b038316600090815260086020526040902080548391906010906110c9908490600160801b90046001600160801b0316611e1b565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b038516600090815260086020526040902054161590506105965760008161111685610945565b6111209190611dd4565b611132670de0b6b3a764000085611d2b565b61113c9190611d77565b6001600160a01b0385166000908152600860205260409020549091506001600160801b031681101561119a576001600160a01b0384166000908152600860205260409020546111959082906001600160801b0316611d4a565b61119d565b60005b6001600160a01b038516600090815260086020526040902080546001600160801b03929092166001600160801b03199092169190911790555092915050565b6001600160a01b0382166112325760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610830565b80600260008282546112449190611dd4565b90915550506001600160a01b03821660009081526020819052604081208054839290611271908490611dd4565b90915550506040518181526001600160a01b03831690600090600080516020611e858339815191529060200160405180910390a35050565b60075460009015806112c557506005546001600160801b031643145b156112d1575060075490565b6005546000906106cb906106bf906001600160801b031643611d4a565b60006112f8611b86565b600082116113395760405162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b6044820152606401610830565b60006113436105cb565b116113595761135461271083611d2b565b61137d565b611361610742565b611373670de0b6b3a764000084611d2b565b61137d9190611d77565b9050600081116113c95760405162461bcd60e51b81526020600482015260176024820152766d696e207374616b65203120736861726520707269636560481b6044820152606401610830565b6113d283610945565b1561144b57806113e184610945565b6113eb9190611dd4565b6113f3610742565b6113fd9083611d2b565b6001600160a01b0385166000908152600860205260409020546001600160801b031661142886610945565b6114329190611d2b565b61143c9190611dd4565b6114469190611d77565b611468565b8061145e670de0b6b3a764000084611d2b565b6114689190611d77565b6001600160a01b038416600090815260086020526040902080546001600160801b0319166001600160801b039283161790556005805484926010916114b6918591600160801b900416611e43565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550670de0b6b3a76400006001600160801b0316826114f79190611d2b565b60078054600090611509908490611dd4565b90915550909392505050565b60008160016115248286611dd4565b61152e9190611d4a565b6109919190611d77565b600080611543611b86565b600061154e85610945565b90506000841180156115605750808411155b6115995760405162461bcd60e51b815260206004820152600a6024820152696e6f2062616c616e636560b01b6044820152606401610830565b6000670de0b6b3a7640000856115ad610742565b6115b79190611d2b565b6115c19190611d77565b905060006115ce8761047e565b9050818110156115de57806115e0565b815b93508382116115f05760006115fa565b6115fa8483611d4a565b600554909550600160801b90046001600160801b031685111561165c5760055460009061163790600160801b90046001600160801b031687611d4a565b90506116438186611dd4565b600554600160801b90046001600160801b031696509450505b600082116116ac5760405162461bcd60e51b815260206004820152601f60248201527f6d696e207368617265732077697468647261772076616c75653a2031206764006044820152606401610830565b6116be670de0b6b3a764000083611d2b565b600780546000906116d0908490611d4a565b9091555050600580548691906010906116fa908490600160801b90046001600160801b0316611e1b565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555083600560010160008282829054906101000a90046001600160801b03166117459190611e43565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b03891660009081526008602052604090208054879350909160109161179a918591600160801b900416611e43565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506000866117c96105cb565b6117d39190611d4a565b905060008115611814576117ef670de0b6b3a764000083611d2b565b60075461180590670de0b6b3a764000090611d2b565b61180f9190611d77565b611817565b60005b9050600087118061182757508286145b80611830575081155b1561186b576001600160a01b038916600090815260086020526040902080546001600160801b0319166001600160801b0383161790556118dd565b6118758886611d4a565b670de0b6b3a76400006118888886611d4a565b6118929190611d2b565b61189c9190611d77565b6118a69082611d4a565b6001600160a01b038a16600090815260086020526040902080546001600160801b0319166001600160801b03929092169190911790555b50505050509250929050565b6001600160a01b0382166119495760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610830565b6001600160a01b038216600090815260208190526040902054818110156119bd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610830565b6001600160a01b03831660009081526020819052604081208383039055600280548492906119ec908490611d4a565b90915550506040518281526000906001600160a01b03851690600080516020611e858339815191529060200160405180910390a3505050565b600081611a3157600080fd5b60006001600160c01b038411611a5c5782604085901b81611a5457611a54611d61565b049050611b72565b60c084811c600160201b8110611a74576020918201911c5b620100008110611a86576010918201911c5b6101008110611a97576008918201911c5b60108110611aa7576004918201911c5b60048110611ab7576002918201911c5b60028110611ac6576001820191505b60bf820360018603901c6001018260ff0387901b81611ae757611ae7611d61565b0492506001600160801b03831115611afe57600080fd5b608085901c83026001600160801b038616840260c088901c604089901b82811015611b2a576001820391505b608084901b92900382811015611b41576001820391505b829003608084901c8214611b5757611b57611e6e565b888181611b6657611b66611d61565b04870196505050505050505b6001600160801b0381111561099157600080fd5b611b8e6112a9565b600755600580546001600160801b031916436001600160801b0316179055565b80356001600160a01b0381168114611bc557600080fd5b919050565b600060208284031215611bdc57600080fd5b61099182611bae565b600060208083528351808285015260005b81811015611c1257858101830151858201604001528201611bf6565b81811115611c24576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c4d57600080fd5b611c5683611bae565b946020939093013593505050565b600060208284031215611c7657600080fd5b81356001600160801b038116811461099157600080fd5b600080600060608486031215611ca257600080fd5b611cab84611bae565b9250611cb960208501611bae565b9150604084013590509250925092565b600060208284031215611cdb57600080fd5b5035919050565b60008060408385031215611cf557600080fd5b611cfe83611bae565b9150611d0c60208401611bae565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611d4557611d45611d15565b500290565b600082821015611d5c57611d5c611d15565b500390565b634e487b7160e01b600052601260045260246000fd5b600082611d9457634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680611dad57607f821691505b60208210811415611dce57634e487b7160e01b600052602260045260246000fd5b50919050565b60008219821115611de757611de7611d15565b500190565b60006001600160801b0382811684821681151582840482111615611e1257611e12611d15565b02949350505050565b60006001600160801b0383811690831681811015611e3b57611e3b611d15565b039392505050565b60006001600160801b03828116848216808303821115611e6557611e65611d15565b01949350505050565b634e487b7160e01b600052600160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb9a17fe408dfa3b8da7966253183724b0f3bfc509eb7a3f4c1b67b8c9c05a8f64736f6c63430008080033",
679
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061018a5760003560e01c80628cc2621461018f57806306fdde03146101b5578063095ea7b3146101ca57806317397115146101ed57806318160ddd146102155780631fce37091461021d57806322022a291461023257806323b872dd1461023a578063313ce5671461024d57806336de95f61461025c578063395093511461026f5780634a174a0b14610282578063576ce9fd1461028a5780635fc5e0201461029d57806370a08231146102c45780637282e23b146102d7578063777d6641146102ea578063872697291461030a57806395d89b4114610312578063a457c2d71461031a578063a9059cbb1461032d578063aa32582114610340578063aaf5eb681461029d578063aba78c1614610353578063adc9772e146103a7578063b811540e146103ba578063ceb8b01c146103cd578063d80528ae146103d5578063d853365f14610434578063dd62ed3e1461043d578063f3fef3a314610450578063f5eb42dc14610463578063f69e204614610476575b600080fd5b6101a261019d366004611bca565b61047e565b6040519081526020015b60405180910390f35b6101bd6104f0565b6040516101ac9190611be5565b6101dd6101d8366004611c3a565b610582565b60405190151581526020016101ac565b6102006101fb366004611c3a565b61059c565b604080519283526020830191909152016101ac565b6002546101a2565b61023061022b366004611c64565b6105bf565b005b6101a26105cb565b6101dd610248366004611c8d565b6105db565b604051601281526020016101ac565b6101a261026a366004611bca565b6105ff565b6101dd61027d366004611c3a565b610630565b6101a261066f565b6101a2610298366004611bca565b6106e6565b6102ac670de0b6b3a764000081565b6040516001600160801b0390911681526020016101ac565b6101a26102d2366004611bca565b61070a565b6102306102e5366004611c3a565b610725565b6009546102f790600f0b81565b604051600f9190910b81526020016101ac565b6101a2610742565b6101bd6107a0565b6101dd610328366004611c3a565b6107af565b6101dd61033b366004611c3a565b610846565b6101a261034e366004611bca565b610854565b610387610361366004611bca565b6008602052600090815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016101ac565b6102306103b5366004611c3a565b610870565b6101a26103c8366004611cc9565b61087c565b6101a26108ba565b6005546006546007546103ff926001600160801b0380821693600160801b90920481169291169084565b6040516101ac94939291906001600160801b039485168152928416602084015292166040820152606081019190915260800190565b6102ac61271081565b6101a261044b366004611ce2565b6108fe565b61020061045e366004611c3a565b610929565b6101a2610471366004611bca565b610945565b6101a2610950565b60008061048a83610945565b90506000610496610742565b905060006104a3856106e6565b90508181116104b257806104b4565b815b9050670de0b6b3a76400006104c98483611d2b565b6104d38585611d2b565b6104dd9190611d4a565b6104e79190611d77565b95945050505050565b6060600380546104ff90611d99565b80601f016020809104026020016040519081016040528092919081815260200182805461052b90611d99565b80156105785780601f1061054d57610100808354040283529160200191610578565b820191906000526020600020905b81548152906001019060200180831161055b57829003601f168201915b5050505050905090565b600033610590818585610c23565b60019150505b92915050565b6000806105a98484610929565b90925090506105b88482610725565b9250929050565b6105c881610d47565b50565b60006105d660025490565b905090565b6000336105e9858285610d8d565b6105f4858585610e07565b506001949350505050565b6000670de0b6b3a764000061061383610945565b61061c846106e6565b6106269190611d2b565b6105969190611d77565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190610590908290869061066a908790611dd4565b610c23565b600754600090158061068b57506005546001600160801b031643145b15610697575060075490565b6005546000906106cb906001600160801b03166106b5436001611dd4565b6106bf9190611d4a565b600954600f0b90610998565b6007549091506106e090600f83900b90610bbb565b91505090565b6001600160a01b03166000908152600860205260409020546001600160801b031690565b6001600160a01b031660009081526020819052604090205490565b60006107318383610fc3565b905061073d83826111dc565b505050565b60008061074d6112a9565b90506107576105cb565b1561079857670de0b6b3a764000061076d6105cb565b6107779190611d2b565b610789670de0b6b3a764000083611d2b565b6107939190611d77565b6106e0565b600091505090565b6060600480546104ff90611d99565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156108395760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6105f48286868403610c23565b600033610590818585610e07565b6000670de0b6b3a764000061086883610945565b61061c610742565b600061073183836112ee565b6000610596610889610742565b61271061089e670de0b6b3a764000086611d2b565b6108a89190611d2b565b6108b29190611d77565b612710611515565b6005546000906108e390670de0b6b3a764000090600160801b90046001600160801b0316611dec565b6001600160801b03166108f46112a9565b6105d69190611d4a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000806109368484611538565b90925090506105b884846118e9565b60006105968261070a565b60006105d66112a9565b60008161096657600080fd5b60006109728484611a25565b905060016001607f1b036001600160801b038216111561099157600080fd5b9392505050565b600080600084600f0b1280156109b15750826001166001145b905060008085600f0b126109c557846109ca565b846000035b6001600160801b03169050600160801b600160401b8211610a5f57603f82901b91505b8415610a57576001851615610a02578102607f1c5b908002607f1c906002851615610a18578102607f1c5b908002607f1c906004851615610a2e578102607f1c5b908002607f1c906008851615610a44578102607f1c5b60049490941c93908002607f1c906109ed565b60401c610b75565b603f600160601b831015610a795760209290921b91601f19015b600160701b831015610a915760109290921b91600f19015b600160781b831015610aa95760089290921b91600719015b6001607c1b831015610ac15760049290921b91600319015b6001607e1b831015610ad95760029290921b91600119015b6001607f1b831015610af15760019290921b91600019015b60005b8615610b5e5760408210610b0757600080fd5b6001871615610b2d57918302607f1c918101600160801b831115610b2d57600192831c92015b928002607f1c9260019190911b90600160801b8410610b5257600193841c9391909101905b600187901c9650610af4565b60408110610b6b57600080fd5b6040039190911c90505b600083610b825781610b87565b816000035b905060016001607f1b03198112801590610ba8575060016001607f1b038113155b610bb157600080fd5b9695505050505050565b600081610bca57506000610596565b600083600f0b1215610bdb57600080fd5b600f83900b6001600160801b038316810260401c90608084901c026001600160c01b03811115610c0a57600080fd5b60401b8119811115610c1b57600080fd5b019392505050565b6001600160a01b038316610c855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610830565b6001600160a01b038216610ce65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610830565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b610d4f611b86565b610d6a816001600160801b0316670de0b6b3a764000061095a565b600980546001600160801b0319166001600160801b039290921691909117905550565b6000610d9984846108fe565b90506000198114610e015781811015610df45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610830565b610e018484848403610c23565b50505050565b6001600160a01b038316610e6b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610830565b6001600160a01b038216610ecd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610830565b6001600160a01b03831660009081526020819052604090205481811015610f455760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610830565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610f7c908490611dd4565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611e8583398151915284604051610fb691815260200190565b60405180910390a3610e01565b600081610fd257506000610596565b6000610fdc6105cb565b11610ff257610fed61271083611d2b565b611016565b610ffa610742565b61100c670de0b6b3a764000084611d2b565b6110169190611d77565b6006805491925083916000906110369084906001600160801b0316611e1b565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550670de0b6b3a76400006001600160801b0316826110779190611d2b565b60078054600090611089908490611dd4565b90915550506001600160a01b038316600090815260086020526040902080548391906010906110c9908490600160801b90046001600160801b0316611e1b565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b038516600090815260086020526040902054161590506105965760008161111685610945565b6111209190611dd4565b611132670de0b6b3a764000085611d2b565b61113c9190611d77565b6001600160a01b0385166000908152600860205260409020549091506001600160801b031681101561119a576001600160a01b0384166000908152600860205260409020546111959082906001600160801b0316611d4a565b61119d565b60005b6001600160a01b038516600090815260086020526040902080546001600160801b03929092166001600160801b03199092169190911790555092915050565b6001600160a01b0382166112325760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610830565b80600260008282546112449190611dd4565b90915550506001600160a01b03821660009081526020819052604081208054839290611271908490611dd4565b90915550506040518181526001600160a01b03831690600090600080516020611e858339815191529060200160405180910390a35050565b60075460009015806112c557506005546001600160801b031643145b156112d1575060075490565b6005546000906106cb906106bf906001600160801b031643611d4a565b60006112f8611b86565b600082116113395760405162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b6044820152606401610830565b60006113436105cb565b116113595761135461271083611d2b565b61137d565b611361610742565b611373670de0b6b3a764000084611d2b565b61137d9190611d77565b9050600081116113c95760405162461bcd60e51b81526020600482015260176024820152766d696e207374616b65203120736861726520707269636560481b6044820152606401610830565b6113d283610945565b1561144b57806113e184610945565b6113eb9190611dd4565b6113f3610742565b6113fd9083611d2b565b6001600160a01b0385166000908152600860205260409020546001600160801b031661142886610945565b6114329190611d2b565b61143c9190611dd4565b6114469190611d77565b611468565b8061145e670de0b6b3a764000084611d2b565b6114689190611d77565b6001600160a01b038416600090815260086020526040902080546001600160801b0319166001600160801b039283161790556005805484926010916114b6918591600160801b900416611e43565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550670de0b6b3a76400006001600160801b0316826114f79190611d2b565b60078054600090611509908490611dd4565b90915550909392505050565b60008160016115248286611dd4565b61152e9190611d4a565b6109919190611d77565b600080611543611b86565b600061154e85610945565b90506000841180156115605750808411155b6115995760405162461bcd60e51b815260206004820152600a6024820152696e6f2062616c616e636560b01b6044820152606401610830565b6000670de0b6b3a7640000856115ad610742565b6115b79190611d2b565b6115c19190611d77565b905060006115ce8761047e565b9050818110156115de57806115e0565b815b93508382116115f05760006115fa565b6115fa8483611d4a565b600554909550600160801b90046001600160801b031685111561165c5760055460009061163790600160801b90046001600160801b031687611d4a565b90506116438186611dd4565b600554600160801b90046001600160801b031696509450505b600082116116ac5760405162461bcd60e51b815260206004820152601f60248201527f6d696e207368617265732077697468647261772076616c75653a2031206764006044820152606401610830565b6116be670de0b6b3a764000083611d2b565b600780546000906116d0908490611d4a565b9091555050600580548691906010906116fa908490600160801b90046001600160801b0316611e1b565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555083600560010160008282829054906101000a90046001600160801b03166117459190611e43565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b03891660009081526008602052604090208054879350909160109161179a918591600160801b900416611e43565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506000866117c96105cb565b6117d39190611d4a565b905060008115611814576117ef670de0b6b3a764000083611d2b565b60075461180590670de0b6b3a764000090611d2b565b61180f9190611d77565b611817565b60005b9050600087118061182757508286145b80611830575081155b1561186b576001600160a01b038916600090815260086020526040902080546001600160801b0319166001600160801b0383161790556118dd565b6118758886611d4a565b670de0b6b3a76400006118888886611d4a565b6118929190611d2b565b61189c9190611d77565b6118a69082611d4a565b6001600160a01b038a16600090815260086020526040902080546001600160801b0319166001600160801b03929092169190911790555b50505050509250929050565b6001600160a01b0382166119495760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610830565b6001600160a01b038216600090815260208190526040902054818110156119bd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610830565b6001600160a01b03831660009081526020819052604081208383039055600280548492906119ec908490611d4a565b90915550506040518281526000906001600160a01b03851690600080516020611e858339815191529060200160405180910390a3505050565b600081611a3157600080fd5b60006001600160c01b038411611a5c5782604085901b81611a5457611a54611d61565b049050611b72565b60c084811c600160201b8110611a74576020918201911c5b620100008110611a86576010918201911c5b6101008110611a97576008918201911c5b60108110611aa7576004918201911c5b60048110611ab7576002918201911c5b60028110611ac6576001820191505b60bf820360018603901c6001018260ff0387901b81611ae757611ae7611d61565b0492506001600160801b03831115611afe57600080fd5b608085901c83026001600160801b038616840260c088901c604089901b82811015611b2a576001820391505b608084901b92900382811015611b41576001820391505b829003608084901c8214611b5757611b57611e6e565b888181611b6657611b66611d61565b04870196505050505050505b6001600160801b0381111561099157600080fd5b611b8e6112a9565b600755600580546001600160801b031916436001600160801b0316179055565b80356001600160a01b0381168114611bc557600080fd5b919050565b600060208284031215611bdc57600080fd5b61099182611bae565b600060208083528351808285015260005b81811015611c1257858101830151858201604001528201611bf6565b81811115611c24576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c4d57600080fd5b611c5683611bae565b946020939093013593505050565b600060208284031215611c7657600080fd5b81356001600160801b038116811461099157600080fd5b600080600060608486031215611ca257600080fd5b611cab84611bae565b9250611cb960208501611bae565b9150604084013590509250925092565b600060208284031215611cdb57600080fd5b5035919050565b60008060408385031215611cf557600080fd5b611cfe83611bae565b9150611d0c60208401611bae565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611d4557611d45611d15565b500290565b600082821015611d5c57611d5c611d15565b500390565b634e487b7160e01b600052601260045260246000fd5b600082611d9457634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680611dad57607f821691505b60208210811415611dce57634e487b7160e01b600052602260045260246000fd5b50919050565b60008219821115611de757611de7611d15565b500190565b60006001600160801b0382811684821681151582840482111615611e1257611e12611d15565b02949350505050565b60006001600160801b0383811690831681811015611e3b57611e3b611d15565b039392505050565b60006001600160801b03828116848216808303821115611e6557611e65611d15565b01949350505050565b634e487b7160e01b600052600160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb9a17fe408dfa3b8da7966253183724b0f3bfc509eb7a3f4c1b67b8c9c05a8f64736f6c63430008080033",
680
+ "linkReferences": {},
681
+ "deployedLinkReferences": {}
682
+ }