@gooddollar/goodprotocol 1.0.19-beta.3 → 1.0.20

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 (414) hide show
  1. package/artifacts/abis/ERC20.min.json +1 -1
  2. package/artifacts/abis/GoodReserveCDai.min.json +1 -1
  3. package/artifacts/abis/IERC2917.min.json +1 -1
  4. package/artifacts/abis/cERC20.min.json +1 -1
  5. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  6. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  7. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  8. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  9. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  10. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  11. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  12. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  13. package/artifacts/contracts/Interfaces.sol/ERC20.json +0 -13
  14. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  15. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  16. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/IERC2917.json +0 -13
  19. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/cERC20.json +0 -13
  35. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  36. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
  37. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  38. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
  39. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  40. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
  41. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  42. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +2 -2
  43. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  44. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  45. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
  46. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
  48. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  49. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  50. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  51. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  52. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
  53. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  54. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
  55. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  56. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  57. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  58. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
  59. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  60. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  61. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  62. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  63. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  64. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  65. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  66. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
  67. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  68. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
  69. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  70. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
  71. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  72. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
  73. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  74. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  75. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  76. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  77. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  79. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  81. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  82. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
  83. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  84. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
  85. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  86. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  87. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +2 -65
  88. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  89. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  90. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  91. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  92. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  93. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
  94. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  95. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
  96. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  97. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  98. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  99. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  100. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  101. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
  102. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  103. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
  104. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  105. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
  106. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  107. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
  108. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  109. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
  110. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  111. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
  112. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  113. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
  114. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  115. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  116. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
  117. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  118. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  119. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  120. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
  121. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  122. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  123. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  124. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  125. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  126. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  127. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  128. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  129. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  130. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  131. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  132. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  133. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  134. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  135. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  136. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  137. package/contracts/Interfaces.sol +0 -12
  138. package/contracts/reserve/GoodReserveCDai.sol +1 -28
  139. package/package.json +3 -2
  140. package/releases/deployment.json +13 -6
  141. package/scripts/multichain-deploy/basicdao-deploy.ts +20 -22
  142. package/scripts/multichain-deploy/helpers.ts +3 -5
  143. package/types/AaveMock.ts +1022 -0
  144. package/types/AaveStakingFactory.ts +290 -0
  145. package/types/AaveUSDMockOracle.ts +89 -0
  146. package/types/AccessControlEnumerableUpgradeable.ts +435 -0
  147. package/types/AccessControlUpgradeable.ts +362 -0
  148. package/types/AggregatorV3Interface.ts +192 -0
  149. package/types/Avatar.ts +121 -0
  150. package/types/BancorFormula.ts +974 -0
  151. package/types/BaseShareField.ts +442 -0
  152. package/types/BaseShareFieldV2.ts +361 -0
  153. package/types/BatUSDMockOracle.ts +89 -0
  154. package/types/BulkProof.ts +111 -0
  155. package/types/CBATMock.ts +1194 -0
  156. package/types/CDAILowWorthMock.ts +1160 -0
  157. package/types/CDAIMock.ts +1210 -0
  158. package/types/CDAINonMintableMock.ts +1160 -0
  159. package/types/CDecimalsMock.ts +1194 -0
  160. package/types/CERC20.ts +527 -0
  161. package/types/CSDTMock.ts +1194 -0
  162. package/types/CUSDCMock.ts +1194 -0
  163. package/types/ClaimersDistribution.ts +606 -0
  164. package/types/CompUSDMockOracle.ts +89 -0
  165. package/types/CompoundStakingFactory.ts +261 -0
  166. package/types/CompoundVotingMachine.ts +1690 -0
  167. package/types/ContributionCalc.ts +164 -0
  168. package/types/Controller.ts +547 -0
  169. package/types/DAIMock.ts +1083 -0
  170. package/types/DAOContract.ts +162 -0
  171. package/types/DAOUpgradeableContract.ts +271 -0
  172. package/types/DaiEthPriceMockOracle.ts +89 -0
  173. package/types/DecimalsMock.ts +1022 -0
  174. package/types/DonationsStaking.ts +777 -0
  175. package/types/ERC165Upgradeable.ts +104 -0
  176. package/types/ERC1967Proxy.ts +147 -0
  177. package/types/ERC1967Upgrade.ts +106 -0
  178. package/types/ERC1967UpgradeUpgradeable.ts +107 -0
  179. package/types/ERC20.ts +365 -0
  180. package/types/ERC20BurnableUpgradeable.ts +479 -0
  181. package/types/ERC20PausableUpgradeable.ts +449 -0
  182. package/types/ERC20PresetMinterPauserUpgradeable.ts +1023 -0
  183. package/types/ERC20Upgradeable.ts +417 -0
  184. package/types/EthUSDMockOracle.ts +138 -0
  185. package/types/ExchangeHelper.ts +522 -0
  186. package/types/GReputation.ts +2020 -0
  187. package/types/GasPriceMockOracle.ts +89 -0
  188. package/types/GlobalConstraintInterface.ts +134 -0
  189. package/types/GoodAaveStaking.ts +1752 -0
  190. package/types/GoodAaveStakingV2.ts +1722 -0
  191. package/types/GoodCompoundStaking.ts +1838 -0
  192. package/types/GoodCompoundStakingTest.ts +1948 -0
  193. package/types/GoodCompoundStakingV2.ts +1636 -0
  194. package/types/GoodFundManager.ts +1098 -0
  195. package/types/GoodFundManagerTest.ts +1137 -0
  196. package/types/GoodMarketMaker.ts +974 -0
  197. package/types/GoodReserveCDai.ts +1938 -0
  198. package/types/GovernanceStaking.ts +1267 -0
  199. package/types/IAaveIncentivesController.ts +155 -0
  200. package/types/IAccessControlEnumerableUpgradeable.ts +380 -0
  201. package/types/IAccessControlUpgradeable.ts +307 -0
  202. package/types/IAdminWallet.ts +171 -0
  203. package/types/IBeacon.ts +89 -0
  204. package/types/IBeaconUpgradeable.ts +89 -0
  205. package/types/IDonationStaking.ts +98 -0
  206. package/types/IERC165Upgradeable.ts +104 -0
  207. package/types/IERC1822Proxiable.ts +89 -0
  208. package/types/IERC20MetadataUpgradeable.ts +340 -0
  209. package/types/IERC20Upgradeable.ts +300 -0
  210. package/types/IERC2917.ts +636 -0
  211. package/types/IFirstClaimPool.ts +115 -0
  212. package/types/IGoodDollar.ts +579 -0
  213. package/types/IGoodStaking.ts +264 -0
  214. package/types/IHasRouter.ts +83 -0
  215. package/types/IIdentity.ts +281 -0
  216. package/types/ILendingPool.ts +241 -0
  217. package/types/INameService.ts +86 -0
  218. package/types/IUBIScheme.ts +121 -0
  219. package/types/IncentiveControllerMock.ts +207 -0
  220. package/types/IntVoteInterface.ts +468 -0
  221. package/types/LendingPoolMock.ts +1250 -0
  222. package/types/MultiBaseGovernanceShareField.ts +411 -0
  223. package/types/Multicall.ts +298 -0
  224. package/types/NameService.ts +358 -0
  225. package/types/OldMarketMaker.ts +113 -0
  226. package/types/OverMintTester.ts +176 -0
  227. package/types/OverMintTesterRegularStake.ts +177 -0
  228. package/types/PausableUpgradeable.ts +103 -0
  229. package/types/ProtocolUpgrade.ts +272 -0
  230. package/types/ProtocolUpgradeFuse.ts +166 -0
  231. package/types/ProtocolUpgradeFuseRecover.ts +167 -0
  232. package/types/ProtocolUpgradeRecover.ts +264 -0
  233. package/types/Proxy.ts +66 -0
  234. package/types/ProxyAdmin.ts +210 -0
  235. package/types/ProxyFactory1967.ts +284 -0
  236. package/types/Reputation.ts +936 -0
  237. package/types/ReputationInterface.ts +261 -0
  238. package/types/ReputationTestHelper.ts +175 -0
  239. package/types/Reserve.ts +112 -0
  240. package/types/SchemeRegistrar.ts +164 -0
  241. package/types/SimpleStaking.ts +1514 -0
  242. package/types/SimpleStakingV2.ts +1418 -0
  243. package/types/SixteenDecimalsTokenMock.ts +1023 -0
  244. package/types/StakersDistribution.ts +921 -0
  245. package/types/Staking.ts +158 -0
  246. package/types/SwapHelperTest.ts +120 -0
  247. package/types/TwentyDecimalsTokenMock.ts +1023 -0
  248. package/types/UBIScheme.ts +1361 -0
  249. package/types/USDCMock.ts +1022 -0
  250. package/types/UUPSUpgradeable.ts +179 -0
  251. package/types/Uniswap.ts +423 -0
  252. package/types/UniswapFactory.ts +106 -0
  253. package/types/UniswapPair.ts +187 -0
  254. package/types/UniswapV2SwapHelper.ts +124 -0
  255. package/types/UpgradableMock.ts +321 -0
  256. package/types/UpgradableMock2.ts +283 -0
  257. package/types/UpgradableMock3.ts +308 -0
  258. package/types/UpgradableMock4.ts +308 -0
  259. package/types/common.ts +44 -0
  260. package/types/factories/AaveMock__factory.ts +727 -0
  261. package/types/factories/AaveStakingFactory__factory.ts +262 -0
  262. package/types/factories/AaveUSDMockOracle__factory.ts +75 -0
  263. package/types/factories/AccessControlEnumerableUpgradeable__factory.ts +279 -0
  264. package/types/factories/AccessControlUpgradeable__factory.ts +234 -0
  265. package/types/factories/AggregatorV3Interface__factory.ts +121 -0
  266. package/types/factories/Avatar__factory.ts +59 -0
  267. package/types/factories/BancorFormula__factory.ts +674 -0
  268. package/types/factories/BaseShareFieldV2__factory.ts +251 -0
  269. package/types/factories/BaseShareField__factory.ts +307 -0
  270. package/types/factories/BatUSDMockOracle__factory.ts +75 -0
  271. package/types/factories/BulkProof__factory.ts +89 -0
  272. package/types/factories/CBATMock__factory.ts +831 -0
  273. package/types/factories/CDAILowWorthMock__factory.ts +821 -0
  274. package/types/factories/CDAIMock__factory.ts +844 -0
  275. package/types/factories/CDAINonMintableMock__factory.ts +821 -0
  276. package/types/factories/CDecimalsMock__factory.ts +831 -0
  277. package/types/factories/CERC20__factory.ts +368 -0
  278. package/types/factories/CSDTMock__factory.ts +831 -0
  279. package/types/factories/CUSDCMock__factory.ts +831 -0
  280. package/types/factories/ClaimersDistribution__factory.ts +404 -0
  281. package/types/factories/CompUSDMockOracle__factory.ts +75 -0
  282. package/types/factories/CompoundStakingFactory__factory.ts +249 -0
  283. package/types/factories/CompoundVotingMachine__factory.ts +1182 -0
  284. package/types/factories/ContributionCalc__factory.ts +83 -0
  285. package/types/factories/Controller__factory.ts +359 -0
  286. package/types/factories/DAIMock__factory.ts +770 -0
  287. package/types/factories/DAOContract__factory.ts +118 -0
  288. package/types/factories/DAOUpgradeableContract__factory.ts +201 -0
  289. package/types/factories/DaiEthPriceMockOracle__factory.ts +79 -0
  290. package/types/factories/DecimalsMock__factory.ts +742 -0
  291. package/types/factories/DonationsStaking__factory.ts +554 -0
  292. package/types/factories/ERC165Upgradeable__factory.ts +45 -0
  293. package/types/factories/ERC1967Proxy__factory.ts +130 -0
  294. package/types/factories/ERC1967UpgradeUpgradeable__factory.ts +75 -0
  295. package/types/factories/ERC1967Upgrade__factory.ts +71 -0
  296. package/types/factories/ERC20BurnableUpgradeable__factory.ts +331 -0
  297. package/types/factories/ERC20PausableUpgradeable__factory.ts +339 -0
  298. package/types/factories/ERC20PresetMinterPauserUpgradeable__factory.ts +733 -0
  299. package/types/factories/ERC20Upgradeable__factory.ts +332 -0
  300. package/types/factories/ERC20__factory.ts +272 -0
  301. package/types/factories/EthUSDMockOracle__factory.ts +108 -0
  302. package/types/factories/ExchangeHelper__factory.ts +401 -0
  303. package/types/factories/GReputation__factory.ts +1415 -0
  304. package/types/factories/GasPriceMockOracle__factory.ts +75 -0
  305. package/types/factories/GlobalConstraintInterface__factory.ts +72 -0
  306. package/types/factories/GoodAaveStakingV2__factory.ts +1227 -0
  307. package/types/factories/GoodAaveStaking__factory.ts +1263 -0
  308. package/types/factories/GoodCompoundStakingTest__factory.ts +1457 -0
  309. package/types/factories/GoodCompoundStakingV2__factory.ts +1169 -0
  310. package/types/factories/GoodCompoundStaking__factory.ts +1303 -0
  311. package/types/factories/GoodFundManagerTest__factory.ts +775 -0
  312. package/types/factories/GoodFundManager__factory.ts +733 -0
  313. package/types/factories/GoodMarketMaker__factory.ts +661 -0
  314. package/types/factories/GoodReserveCDai__factory.ts +1391 -0
  315. package/types/factories/GovernanceStaking__factory.ts +922 -0
  316. package/types/factories/IAaveIncentivesController__factory.ts +83 -0
  317. package/types/factories/IAccessControlEnumerableUpgradeable__factory.ts +247 -0
  318. package/types/factories/IAccessControlUpgradeable__factory.ts +202 -0
  319. package/types/factories/IAdminWallet__factory.ts +75 -0
  320. package/types/factories/IBeaconUpgradeable__factory.ts +39 -0
  321. package/types/factories/IBeacon__factory.ts +36 -0
  322. package/types/factories/IDonationStaking__factory.ts +33 -0
  323. package/types/factories/IERC165Upgradeable__factory.ts +45 -0
  324. package/types/factories/IERC1822Proxiable__factory.ts +39 -0
  325. package/types/factories/IERC20MetadataUpgradeable__factory.ts +252 -0
  326. package/types/factories/IERC20Upgradeable__factory.ts +209 -0
  327. package/types/factories/IERC2917__factory.ts +480 -0
  328. package/types/factories/IFirstClaimPool__factory.ts +58 -0
  329. package/types/factories/IGoodDollar__factory.ts +411 -0
  330. package/types/factories/IGoodStaking__factory.ts +175 -0
  331. package/types/factories/IHasRouter__factory.ts +36 -0
  332. package/types/factories/IIdentity__factory.ts +150 -0
  333. package/types/factories/ILendingPool__factory.ts +168 -0
  334. package/types/factories/INameService__factory.ts +42 -0
  335. package/types/factories/IUBIScheme__factory.ts +68 -0
  336. package/types/factories/IncentiveControllerMock__factory.ts +166 -0
  337. package/types/factories/IntVoteInterface__factory.ts +349 -0
  338. package/types/factories/LendingPoolMock__factory.ts +914 -0
  339. package/types/factories/MultiBaseGovernanceShareField__factory.ts +240 -0
  340. package/types/factories/Multicall__factory.ts +215 -0
  341. package/types/factories/NameService__factory.ts +264 -0
  342. package/types/factories/OldMarketMaker__factory.ts +62 -0
  343. package/types/factories/OverMintTesterRegularStake__factory.ts +156 -0
  344. package/types/factories/OverMintTester__factory.ts +152 -0
  345. package/types/factories/PausableUpgradeable__factory.ts +65 -0
  346. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +146 -0
  347. package/types/factories/ProtocolUpgradeFuse__factory.ts +142 -0
  348. package/types/factories/ProtocolUpgradeRecover__factory.ts +184 -0
  349. package/types/factories/ProtocolUpgrade__factory.ts +207 -0
  350. package/types/factories/ProxyAdmin__factory.ts +105 -0
  351. package/types/factories/ProxyFactory1967__factory.ts +223 -0
  352. package/types/factories/Proxy__factory.ts +28 -0
  353. package/types/factories/ReputationInterface__factory.ts +168 -0
  354. package/types/factories/ReputationTestHelper__factory.ts +141 -0
  355. package/types/factories/Reputation__factory.ts +667 -0
  356. package/types/factories/Reserve__factory.ts +52 -0
  357. package/types/factories/SchemeRegistrar__factory.ts +114 -0
  358. package/types/factories/SimpleStakingV2__factory.ts +986 -0
  359. package/types/factories/SimpleStaking__factory.ts +1045 -0
  360. package/types/factories/SixteenDecimalsTokenMock__factory.ts +734 -0
  361. package/types/factories/StakersDistribution__factory.ts +591 -0
  362. package/types/factories/Staking__factory.ts +74 -0
  363. package/types/factories/SwapHelperTest__factory.ts +96 -0
  364. package/types/factories/TwentyDecimalsTokenMock__factory.ts +734 -0
  365. package/types/factories/UBIScheme__factory.ts +969 -0
  366. package/types/factories/USDCMock__factory.ts +727 -0
  367. package/types/factories/UUPSUpgradeable__factory.ts +102 -0
  368. package/types/factories/UniswapFactory__factory.ts +50 -0
  369. package/types/factories/UniswapPair__factory.ts +117 -0
  370. package/types/factories/UniswapV2SwapHelper__factory.ts +101 -0
  371. package/types/factories/Uniswap__factory.ts +272 -0
  372. package/types/factories/UpgradableMock2__factory.ts +210 -0
  373. package/types/factories/UpgradableMock3__factory.ts +223 -0
  374. package/types/factories/UpgradableMock4__factory.ts +223 -0
  375. package/types/factories/UpgradableMock__factory.ts +236 -0
  376. package/types/hardhat.d.ts +1077 -0
  377. package/types/index.ts +236 -0
  378. package/artifacts/abis/DistributionHelper.min.json +0 -1
  379. package/artifacts/abis/GoodDollarMintBurnWrapper.min.json +0 -1
  380. package/artifacts/abis/GoodDollarStaking.min.json +0 -1
  381. package/artifacts/abis/IMultichainRouter.min.json +0 -1
  382. package/artifacts/abis/IRouter.min.json +0 -1
  383. package/artifacts/abis/Math64x64.min.json +0 -1
  384. package/artifacts/abis/PausableControl.min.json +0 -1
  385. package/artifacts/abis/RewardsMinter.min.json +0 -1
  386. package/artifacts/abis/StakingRewardsFixedAPY.min.json +0 -1
  387. package/artifacts/abis/TokenOperation.min.json +0 -1
  388. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +0 -4
  389. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.json +0 -39
  390. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +0 -4
  391. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +0 -1028
  392. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +0 -4
  393. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.json +0 -35
  394. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +0 -4
  395. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +0 -574
  396. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +0 -4
  397. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +0 -10
  398. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +0 -4
  399. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.json +0 -153
  400. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +0 -4
  401. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +0 -954
  402. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +0 -4
  403. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.json +0 -59
  404. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +0 -4
  405. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.json +0 -69
  406. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +0 -4
  407. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +0 -10
  408. package/contracts/governance/GoodDollarStaking.sol +0 -260
  409. package/contracts/reserve/DistributionHelper.sol +0 -118
  410. package/contracts/staking/utils/Math64X64.sol +0 -268
  411. package/contracts/staking/utils/StakingRewardsFixedAPY.sol +0 -141
  412. package/contracts/utils/GoodDollarMintBurnWrapper.sol +0 -417
  413. package/scripts/multichain-deploy/multichainWrapper-deploy.ts +0 -67
  414. package/scripts/voltageswaps.ts +0 -47
@@ -1,268 +0,0 @@
1
- // SPDX-License-Identifier: BSD-4-Clause
2
- /*
3
- * ABDK Math 64.64 Smart Contract Library. Copyright © 2019 by ABDK Consulting.
4
- * Author: Mikhail Vladimirov <mikhail.vladimirov@gmail.com>
5
- */
6
- pragma solidity ^0.8.0;
7
-
8
- /**
9
- * Smart contract library of mathematical functions operating with signed
10
- * 64.64-bit fixed point numbers. Signed 64.64-bit fixed point number is
11
- * basically a simple fraction whose numerator is signed 128-bit integer and
12
- * denominator is 2^64. As long as denominator is always the same, there is no
13
- * need to store it, thus in Solidity signed 64.64-bit fixed point numbers are
14
- * represented by int128 type holding only the numerator.
15
- */
16
- library Math64x64 {
17
- /*
18
- * Minimum value signed 64.64-bit fixed point number may have.
19
- */
20
- int128 private constant MIN_64x64 = -0x80000000000000000000000000000000;
21
-
22
- /*
23
- * Maximum value signed 64.64-bit fixed point number may have.
24
- */
25
- int128 private constant MAX_64x64 = 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
26
-
27
- /**
28
- * Convert unsigned 256-bit integer number into signed 64.64-bit fixed point
29
- * number. Revert on overflow.
30
- *
31
- * @param x unsigned 256-bit integer number
32
- * @return signed 64.64-bit fixed point number
33
- */
34
- function fromUInt(uint256 x) internal pure returns (int128) {
35
- unchecked {
36
- require(x <= 0x7FFFFFFFFFFFFFFF);
37
- return int128(int256(x << 64));
38
- }
39
- }
40
-
41
- /**
42
- * Convert signed 64.64 fixed point number into unsigned 64-bit integer
43
- * number rounding down. Revert on underflow.
44
- *
45
- * @param x signed 64.64-bit fixed point number
46
- * @return unsigned 64-bit integer number
47
- */
48
- function toUInt(int128 x) internal pure returns (uint64) {
49
- unchecked {
50
- require(x >= 0);
51
- return uint64(uint128(x >> 64));
52
- }
53
- }
54
-
55
- /**
56
- * Calculate x * y rounding down, where x is signed 64.64 fixed point number
57
- * and y is unsigned 256-bit integer number. Revert on overflow.
58
- *
59
- * @param x signed 64.64 fixed point number
60
- * @param y unsigned 256-bit integer number
61
- * @return unsigned 256-bit integer number
62
- */
63
- function mulu(int128 x, uint256 y) internal pure returns (uint256) {
64
- unchecked {
65
- if (y == 0) return 0;
66
-
67
- require(x >= 0);
68
-
69
- uint256 lo = (uint256(int256(x)) *
70
- (y & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)) >> 64;
71
- uint256 hi = uint256(int256(x)) * (y >> 128);
72
-
73
- require(hi <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
74
- hi <<= 64;
75
-
76
- require(
77
- hi <=
78
- 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -
79
- lo
80
- );
81
- return hi + lo;
82
- }
83
- }
84
-
85
- /**
86
- * Calculate x / y rounding towards zero, where x and y are unsigned 256-bit
87
- * integer numbers. Revert on overflow or when y is zero.
88
- *
89
- * @param x unsigned 256-bit integer number
90
- * @param y unsigned 256-bit integer number
91
- * @return signed 64.64-bit fixed point number
92
- */
93
- function divu(uint256 x, uint256 y) internal pure returns (int128) {
94
- unchecked {
95
- require(y != 0);
96
- uint128 result = divuu(x, y);
97
- require(result <= uint128(MAX_64x64));
98
- return int128(result);
99
- }
100
- }
101
-
102
- /**
103
- * Calculate x^y assuming 0^0 is 1, where x is signed 64.64 fixed point number
104
- * and y is unsigned 256-bit integer number. Revert on overflow.
105
- *
106
- * @param x signed 64.64-bit fixed point number
107
- * @param y uint256 value
108
- * @return signed 64.64-bit fixed point number
109
- */
110
- function pow(int128 x, uint256 y) internal pure returns (int128) {
111
- unchecked {
112
- bool negative = x < 0 && y & 1 == 1;
113
-
114
- uint256 absX = uint128(x < 0 ? -x : x);
115
- uint256 absResult;
116
- absResult = 0x100000000000000000000000000000000;
117
-
118
- if (absX <= 0x10000000000000000) {
119
- absX <<= 63;
120
- while (y != 0) {
121
- if (y & 0x1 != 0) {
122
- absResult = (absResult * absX) >> 127;
123
- }
124
- absX = (absX * absX) >> 127;
125
-
126
- if (y & 0x2 != 0) {
127
- absResult = (absResult * absX) >> 127;
128
- }
129
- absX = (absX * absX) >> 127;
130
-
131
- if (y & 0x4 != 0) {
132
- absResult = (absResult * absX) >> 127;
133
- }
134
- absX = (absX * absX) >> 127;
135
-
136
- if (y & 0x8 != 0) {
137
- absResult = (absResult * absX) >> 127;
138
- }
139
- absX = (absX * absX) >> 127;
140
-
141
- y >>= 4;
142
- }
143
-
144
- absResult >>= 64;
145
- } else {
146
- uint256 absXShift = 63;
147
- if (absX < 0x1000000000000000000000000) {
148
- absX <<= 32;
149
- absXShift -= 32;
150
- }
151
- if (absX < 0x10000000000000000000000000000) {
152
- absX <<= 16;
153
- absXShift -= 16;
154
- }
155
- if (absX < 0x1000000000000000000000000000000) {
156
- absX <<= 8;
157
- absXShift -= 8;
158
- }
159
- if (absX < 0x10000000000000000000000000000000) {
160
- absX <<= 4;
161
- absXShift -= 4;
162
- }
163
- if (absX < 0x40000000000000000000000000000000) {
164
- absX <<= 2;
165
- absXShift -= 2;
166
- }
167
- if (absX < 0x80000000000000000000000000000000) {
168
- absX <<= 1;
169
- absXShift -= 1;
170
- }
171
-
172
- uint256 resultShift = 0;
173
- while (y != 0) {
174
- require(absXShift < 64);
175
-
176
- if (y & 0x1 != 0) {
177
- absResult = (absResult * absX) >> 127;
178
- resultShift += absXShift;
179
- if (absResult > 0x100000000000000000000000000000000) {
180
- absResult >>= 1;
181
- resultShift += 1;
182
- }
183
- }
184
- absX = (absX * absX) >> 127;
185
- absXShift <<= 1;
186
- if (absX >= 0x100000000000000000000000000000000) {
187
- absX >>= 1;
188
- absXShift += 1;
189
- }
190
-
191
- y >>= 1;
192
- }
193
-
194
- require(resultShift < 64);
195
- absResult >>= 64 - resultShift;
196
- }
197
- int256 result = negative ? -int256(absResult) : int256(absResult);
198
- require(result >= MIN_64x64 && result <= MAX_64x64);
199
- return int128(result);
200
- }
201
- }
202
-
203
- /**
204
- * Calculate x / y rounding towards zero, where x and y are unsigned 256-bit
205
- * integer numbers. Revert on overflow or when y is zero.
206
- *
207
- * @param x unsigned 256-bit integer number
208
- * @param y unsigned 256-bit integer number
209
- * @return unsigned 64.64-bit fixed point number
210
- */
211
- function divuu(uint256 x, uint256 y) private pure returns (uint128) {
212
- unchecked {
213
- require(y != 0);
214
-
215
- uint256 result;
216
-
217
- if (x <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
218
- result = (x << 64) / y;
219
- else {
220
- uint256 msb = 192;
221
- uint256 xc = x >> 192;
222
- if (xc >= 0x100000000) {
223
- xc >>= 32;
224
- msb += 32;
225
- }
226
- if (xc >= 0x10000) {
227
- xc >>= 16;
228
- msb += 16;
229
- }
230
- if (xc >= 0x100) {
231
- xc >>= 8;
232
- msb += 8;
233
- }
234
- if (xc >= 0x10) {
235
- xc >>= 4;
236
- msb += 4;
237
- }
238
- if (xc >= 0x4) {
239
- xc >>= 2;
240
- msb += 2;
241
- }
242
- if (xc >= 0x2) msb += 1; // No need to shift xc anymore
243
-
244
- result = (x << (255 - msb)) / (((y - 1) >> (msb - 191)) + 1);
245
- require(result <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
246
-
247
- uint256 hi = result * (y >> 128);
248
- uint256 lo = result * (y & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
249
-
250
- uint256 xh = x >> 192;
251
- uint256 xl = x << 64;
252
-
253
- if (xl < lo) xh -= 1;
254
- xl -= lo; // We rely on overflow behavior here
255
- lo = hi << 128;
256
- if (xl < lo) xh -= 1;
257
- xl -= lo; // We rely on overflow behavior here
258
-
259
- assert(xh == hi >> 128);
260
-
261
- result += xl / y;
262
- }
263
-
264
- require(result <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
265
- return uint128(result);
266
- }
267
- }
268
- }
@@ -1,141 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.0;
3
-
4
- import "./Math64X64.sol";
5
-
6
- contract StakingRewardsFixedAPY {
7
- using Math64x64 for int128;
8
-
9
- // the users stake information
10
- struct StakerInfo {
11
- uint128 reward; // the reward amount which should be transfered to the user
12
- uint128 balance; // the amount of user active stake
13
- uint128 rewardPerTokenPaid; // rewards that accounted already so should be substracted
14
- // while calculating rewards of staker
15
- uint128 rewardsMinted;
16
- }
17
-
18
- // the user info sheet
19
- mapping(address => StakerInfo) public stakersInfo;
20
-
21
- // precision constant for math
22
- uint128 public constant PRECISION = 1e18;
23
-
24
- // last block this staking contract was updated and rewards were calculated
25
- uint128 public lastUpdateBlock;
26
-
27
- // the amount of reward per token
28
- uint128 public rewardPerTokenStored;
29
-
30
- // total supply of active stakes
31
- uint128 public totalStaked;
32
- uint256 public principle; //total earning compounding interest;
33
-
34
- // annual percentage yield - rate of return on stake over one year;
35
-
36
- // interest rate per one block in 1e18 precision.
37
- //for example APY=5% then per block = nroot(1+0.05,numberOfBlocksPerYear)
38
- //nroot(1.05,6000000) = 1.000000008131694
39
- //in 1e18 = 1000000008131694000
40
- int128 public interestRatePerBlockX64;
41
-
42
- constructor(uint128 _interestRatePerBlock) {
43
- _setAPY(_interestRatePerBlock);
44
- }
45
-
46
- function _setAPY(uint128 _interestRatePerBlock)
47
- internal
48
- updateReward(address(0))
49
- {
50
- interestRatePerBlockX64 = Math64x64.divu(_interestRatePerBlock, 1e18); //convert to signed int x64
51
- }
52
-
53
- modifier updateReward(address account) {
54
- _updateReward(account);
55
- _;
56
- }
57
-
58
- function _rewardPerToken() internal returns (uint256) {
59
- if (totalStaked == 0) {
60
- return rewardPerTokenStored;
61
- }
62
-
63
- //earned in timespan = interestRatePerBlock^blocksPassed * principle/PRECISION
64
- //earned perToken = earnedInTimeSpan*PRECISION/totalStaked
65
- //PRECISION cancels out
66
- int128 compound = interestRatePerBlockX64.pow(
67
- block.number - lastUpdateBlock
68
- );
69
- uint256 earnedInterest = compound.mulu(principle);
70
- principle += earnedInterest;
71
-
72
- return rewardPerTokenStored += uint128(earnedInterest / totalStaked); //principle is already in PRECISION
73
- }
74
-
75
- /**
76
- * @dev The function allows anyone to calculate the exact amount of reward
77
- * earned.
78
- * @param account A staker address
79
- */
80
- function earned(address account) public returns (uint256) {
81
- return
82
- (stakersInfo[account].balance *
83
- (_rewardPerToken() - stakersInfo[account].rewardPerTokenPaid)) /
84
- PRECISION;
85
- }
86
-
87
- // this function updates the reward for the specific user
88
- function _updateReward(address _account) internal virtual {
89
- rewardPerTokenStored = uint128(_rewardPerToken());
90
- lastUpdateBlock = uint128(block.number);
91
- if (_account != address(0)) {
92
- stakersInfo[_account].reward += uint128(earned(_account));
93
- stakersInfo[_account].rewardPerTokenPaid = rewardPerTokenStored;
94
- }
95
- }
96
-
97
- function _withdraw(address _from, uint256 _amount)
98
- internal
99
- virtual
100
- updateReward(_from)
101
- {
102
- require(_amount > 0, "Cannot withdraw 0");
103
- totalStaked -= uint128(_amount);
104
- principle -= _amount * PRECISION;
105
- stakersInfo[_from].balance -= uint128(_amount);
106
- }
107
-
108
- function _stake(address _from, uint256 _amount)
109
- internal
110
- virtual
111
- updateReward(_from)
112
- {
113
- require(_amount > 0, "Cannot stake 0");
114
- totalStaked += uint128(_amount);
115
- principle += _amount * PRECISION;
116
-
117
- stakersInfo[_from].balance += uint128(_amount);
118
- }
119
-
120
- function _getReward(address _to)
121
- internal
122
- virtual
123
- updateReward(_to)
124
- returns (uint256 reward)
125
- {
126
- // return and reset the reward if there is any
127
- reward = stakersInfo[_to].reward;
128
- stakersInfo[_to].reward = 0;
129
- stakersInfo[_to].rewardsMinted += uint128(reward);
130
- principle -= reward * PRECISION; //rewards are part of the compounding interest
131
- }
132
-
133
- /**
134
- * @dev keep track of debt to user in case reward minting failed
135
- */
136
- function _undoReward(address _to, uint256 _amount) internal virtual {
137
- stakersInfo[_to].reward += uint128(_amount);
138
- stakersInfo[_to].rewardsMinted -= uint128(_amount);
139
- principle += _amount * PRECISION; //rewards are part of the compounding interest
140
- }
141
- }