@gooddollar/goodprotocol 1.0.30 → 2.0.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 (741) hide show
  1. package/README.md +25 -0
  2. package/artifacts/abis/AaveMock.min.json +1 -1
  3. package/artifacts/abis/AaveStakingFactory.min.json +1 -1
  4. package/artifacts/abis/AdminWallet.min.json +1 -1
  5. package/artifacts/abis/AdminWalletFuse.min.json +1 -0
  6. package/artifacts/abis/BuyAndBridgeHelper.min.json +1 -0
  7. package/artifacts/abis/ClaimersDistribution.min.json +1 -1
  8. package/artifacts/abis/CompoundStakingFactory.min.json +1 -1
  9. package/artifacts/abis/CompoundVotingMachine.min.json +1 -1
  10. package/artifacts/abis/DAIMock.min.json +1 -1
  11. package/artifacts/abis/DAOUpgradeableContract.min.json +1 -1
  12. package/artifacts/abis/DecimalsMock.min.json +1 -1
  13. package/artifacts/abis/DistributionHelper.min.json +1 -1
  14. package/artifacts/abis/DistributionHelperTest.min.json +1 -1
  15. package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -1
  16. package/artifacts/abis/DonationsStaking.min.json +1 -1
  17. package/artifacts/abis/ERC20Permit.min.json +1 -0
  18. package/artifacts/abis/ERC20PresetMinterPauserUpgradeable.min.json +1 -0
  19. package/artifacts/abis/ERC677.min.json +1 -0
  20. package/artifacts/abis/ERC677Receiver.min.json +1 -0
  21. package/artifacts/abis/ExchangeHelper.min.json +1 -1
  22. package/artifacts/abis/Faucet.min.json +1 -0
  23. package/artifacts/abis/FeesFormulaMock.min.json +1 -0
  24. package/artifacts/abis/FuseFaucet.min.json +1 -1
  25. package/artifacts/abis/FuseFaucetV2.min.json +1 -0
  26. package/artifacts/abis/FuseStakingV3.min.json +1 -1
  27. package/artifacts/abis/GReputation.min.json +1 -1
  28. package/artifacts/abis/GoodAaveStaking.min.json +1 -1
  29. package/artifacts/abis/GoodAaveStakingV2.min.json +1 -1
  30. package/artifacts/abis/GoodCompoundStaking.min.json +1 -1
  31. package/artifacts/abis/GoodCompoundStakingTest.min.json +1 -1
  32. package/artifacts/abis/GoodCompoundStakingV2.min.json +1 -1
  33. package/artifacts/abis/GoodDollar.min.json +1 -0
  34. package/artifacts/abis/GoodDollarMintBurnWrapper.min.json +1 -1
  35. package/artifacts/abis/GoodDollarStaking.min.json +1 -1
  36. package/artifacts/abis/GoodDollarStakingMock.min.json +1 -1
  37. package/artifacts/abis/GoodFundManager.min.json +1 -1
  38. package/artifacts/abis/GoodFundManagerTest.min.json +1 -1
  39. package/artifacts/abis/GoodMarketMaker.min.json +1 -1
  40. package/artifacts/abis/GoodReserveCDai.min.json +1 -1
  41. package/artifacts/abis/GovernanceStaking.min.json +1 -1
  42. package/artifacts/abis/IFeesFormula.min.json +1 -0
  43. package/artifacts/abis/IGoodDollar.min.json +1 -1
  44. package/artifacts/abis/IGoodDollarCustom.min.json +1 -0
  45. package/artifacts/abis/IGovernanceStaking.min.json +1 -0
  46. package/artifacts/abis/IIdentity.min.json +1 -1
  47. package/artifacts/abis/IIdentityV2.min.json +1 -0
  48. package/artifacts/abis/IStakingUpgrade.min.json +1 -0
  49. package/artifacts/abis/ISuperGoodDollar.min.json +1 -0
  50. package/artifacts/abis/IdentityMock.min.json +1 -0
  51. package/artifacts/abis/IdentityV2.min.json +1 -0
  52. package/artifacts/abis/InvitesFuseV2.min.json +1 -0
  53. package/artifacts/abis/InvitesV1.min.json +1 -1
  54. package/artifacts/abis/InvitesV2.min.json +1 -0
  55. package/artifacts/abis/LendingPoolMock.min.json +1 -1
  56. package/artifacts/abis/NameService.min.json +1 -1
  57. package/artifacts/abis/PayableMock.min.json +1 -0
  58. package/artifacts/abis/Proxy.min.json +1 -0
  59. package/artifacts/abis/Reputation.min.json +1 -1
  60. package/artifacts/abis/SelfApprove.min.json +1 -0
  61. package/artifacts/abis/SimpleStaking.min.json +1 -1
  62. package/artifacts/abis/SimpleStakingV2.min.json +1 -1
  63. package/artifacts/abis/SixteenDecimalsTokenMock.min.json +1 -1
  64. package/artifacts/abis/StakersDistribution.min.json +1 -1
  65. package/artifacts/abis/SuperGoodDollar.min.json +1 -0
  66. package/artifacts/abis/SuperToken.min.json +1 -0
  67. package/artifacts/abis/SuperfluidToken.min.json +1 -0
  68. package/artifacts/abis/TwentyDecimalsTokenMock.min.json +1 -1
  69. package/artifacts/abis/UBIScheme.min.json +1 -1
  70. package/artifacts/abis/USDCMock.min.json +1 -1
  71. package/artifacts/abis/UUPSProxiable.min.json +1 -0
  72. package/artifacts/abis/UUPSProxy.min.json +1 -0
  73. package/artifacts/abis/UUPSUtils.min.json +1 -0
  74. package/artifacts/abis/UpgradableMock.min.json +1 -1
  75. package/artifacts/abis/UpgradableMock2.min.json +1 -1
  76. package/artifacts/abis/UpgradableMock3.min.json +1 -1
  77. package/artifacts/abis/UpgradableMock4.min.json +1 -1
  78. package/artifacts/abis/cBATMock.min.json +1 -1
  79. package/artifacts/abis/cDAILowWorthMock.min.json +1 -1
  80. package/artifacts/abis/cDAIMock.min.json +1 -1
  81. package/artifacts/abis/cDAINonMintableMock.min.json +1 -1
  82. package/artifacts/abis/cDecimalsMock.min.json +1 -1
  83. package/artifacts/abis/cSDTMock.min.json +1 -1
  84. package/artifacts/abis/cUSDCMock.min.json +1 -1
  85. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  86. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  87. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  88. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  89. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  90. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  91. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  92. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  93. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  94. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  95. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  96. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  97. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  98. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  99. package/artifacts/contracts/Interfaces.sol/IGoodDollar.json +184 -0
  100. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  101. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  102. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  103. package/artifacts/contracts/Interfaces.sol/IIdentity.json +70 -0
  104. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
  105. package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +300 -0
  106. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  107. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  108. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  109. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  110. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  111. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  112. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  113. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  114. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  115. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  116. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  117. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +4 -0
  118. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +736 -0
  119. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  120. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +15 -2
  121. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +4 -0
  122. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.json +480 -0
  123. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  124. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +28 -2
  125. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  126. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +28 -2
  127. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  128. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +78 -3
  129. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  130. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +71 -2
  131. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +4 -0
  132. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.json +24 -0
  133. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +4 -0
  134. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.json +35 -0
  135. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  136. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  137. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +31 -5
  138. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  139. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  140. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +28 -2
  141. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  142. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +28 -2
  143. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +4 -0
  144. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +1081 -0
  145. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +4 -0
  146. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.json +505 -0
  147. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  148. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +15 -2
  149. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +4 -0
  150. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +635 -0
  151. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  152. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.json +18 -5
  153. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  154. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.json +2 -2
  155. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  156. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.json +2 -2
  157. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  158. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.json +2 -2
  159. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  160. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.json +18 -5
  161. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  162. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.json +2 -2
  163. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  164. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.json +18 -5
  165. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  166. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +2 -2
  167. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  168. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +28 -2
  169. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  170. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +28 -2
  171. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  172. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.json +2 -2
  173. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +4 -0
  174. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.json +69 -0
  175. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  176. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.json +2 -2
  177. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  178. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +22 -9
  179. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  180. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +95 -2
  181. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  182. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +28 -2
  183. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +4 -0
  184. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +277 -0
  185. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  186. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.json +2 -2
  187. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  188. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.json +18 -5
  189. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  190. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  191. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +2 -2
  192. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  193. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  194. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
  195. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  196. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  197. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +4 -0
  198. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.json +18 -0
  199. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  200. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.json +18 -5
  201. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  202. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +2 -2
  203. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  204. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  205. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  206. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.json +18 -5
  207. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  208. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +28 -2
  209. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  210. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +28 -2
  211. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  212. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +28 -2
  213. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  214. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +28 -2
  215. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  216. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.json +18 -5
  217. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  218. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.json +18 -5
  219. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  220. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.json +18 -5
  221. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  222. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.json +18 -5
  223. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  224. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.json +18 -5
  225. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  226. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.json +18 -5
  227. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  228. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.json +18 -5
  229. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  230. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.json +18 -5
  231. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  232. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +28 -2
  233. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  234. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +28 -2
  235. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  236. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +28 -2
  237. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  238. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  239. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +31 -5
  240. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  241. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  242. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  243. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  244. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  245. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +32 -6
  246. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  247. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +44 -83
  248. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  249. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  250. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  251. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +28 -2
  252. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  253. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.json +16 -3
  254. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  255. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.json +16 -3
  256. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  257. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  258. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  259. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +3 -3
  260. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  261. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +20 -7
  262. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  263. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +20 -7
  264. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  265. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +4 -4
  266. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +22 -9
  268. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  269. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +22 -9
  270. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  271. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +2 -2
  272. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  273. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +4 -0
  274. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.json +768 -0
  275. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +4 -0
  276. package/artifacts/contracts/token/ERC677.sol/ERC677.json +66 -0
  277. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +4 -0
  278. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.json +40 -0
  279. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +4 -0
  280. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.json +45 -0
  281. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +4 -0
  282. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +1206 -0
  283. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +4 -0
  284. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.json +99 -0
  285. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +4 -0
  286. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.json +34 -0
  287. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +4 -0
  288. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.json +355 -0
  289. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +4 -0
  290. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.json +2132 -0
  291. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +4 -0
  292. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +2627 -0
  293. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +4 -0
  294. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.json +1759 -0
  295. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +4 -0
  296. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.json +682 -0
  297. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +4 -0
  298. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.json +89 -0
  299. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +4 -0
  300. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.json +19 -0
  301. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +4 -0
  302. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +32 -0
  303. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +4 -0
  304. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +10 -0
  305. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  306. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +41 -22
  307. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  308. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +94 -48
  309. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +4 -0
  310. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.json +830 -0
  311. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  312. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.json +2 -2
  313. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  314. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
  315. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +4 -0
  316. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +184 -0
  317. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  318. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  319. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  320. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +28 -2
  321. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  322. package/artifacts/contracts/utils/DSMath.sol/DSMath.json +2 -2
  323. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  324. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.json +2 -2
  325. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  326. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +35 -2
  327. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  328. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  329. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  330. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +2 -2
  331. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  332. package/artifacts/contracts/utils/MultiCall.sol/Multicall.json +2 -2
  333. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  334. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +2 -2
  335. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  336. package/artifacts/contracts/utils/NameService.sol/NameService.json +28 -2
  337. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  338. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  339. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  340. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  341. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  342. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  343. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  344. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  345. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  346. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  347. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  348. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  349. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
  350. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  351. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  352. package/contracts/Interfaces.sol +57 -3
  353. package/contracts/fuseFaucet/Faucet.sol +258 -0
  354. package/contracts/fuseFaucet/FuseFaucet.sol +1 -2
  355. package/contracts/fuseFaucet/FuseFaucetV2.sol +256 -0
  356. package/contracts/governance/GReputation.sol +104 -16
  357. package/contracts/governance/GoodDollarStaking.sol +139 -53
  358. package/contracts/governance/GovernanceStaking.sol +2 -2
  359. package/contracts/identity/IdentityV2.sol +559 -0
  360. package/contracts/invite/InvitesFuseV2.sol +337 -0
  361. package/contracts/invite/InvitesV1.sol +6 -24
  362. package/contracts/invite/InvitesV2.sol +345 -0
  363. package/contracts/mocks/AaveMock.sol +1 -1
  364. package/contracts/mocks/DAIMock.sol +1 -1
  365. package/contracts/mocks/DecimalsMock.sol +1 -1
  366. package/contracts/mocks/FeesFormularMock.sol +21 -0
  367. package/contracts/mocks/GoodDollarStakingMock.sol +16 -0
  368. package/contracts/mocks/GoodFundManagerTest.sol +1 -1
  369. package/contracts/mocks/IdentityMock.sol +58 -0
  370. package/contracts/mocks/LendingPoolMock.sol +1 -1
  371. package/contracts/mocks/PayableMock.sol +3 -0
  372. package/contracts/mocks/SixteenDecimalsTokenMock.sol +1 -6
  373. package/contracts/mocks/TwentyDecimalsTokenMock.sol +1 -6
  374. package/contracts/mocks/UpgradableMocks.sol +5 -3
  375. package/contracts/mocks/UsdcMock.sol +1 -6
  376. package/contracts/mocks/cBATMock.sol +7 -12
  377. package/contracts/mocks/cDAILowWorthMock.sol +8 -12
  378. package/contracts/mocks/cDAIMock.sol +1 -1
  379. package/contracts/mocks/cDAINonMintableMock.sol +7 -12
  380. package/contracts/mocks/cDecimalsMock.sol +1 -1
  381. package/contracts/mocks/cSDTMock.sol +3 -3
  382. package/contracts/mocks/cUSDCMock.sol +5 -5
  383. package/contracts/reserve/DistributionHelper.sol +1 -1
  384. package/contracts/reserve/GoodReserveCDai.sol +1 -1
  385. package/contracts/staking/FuseStakingV3.sol +42 -112
  386. package/contracts/staking/GoodFundManager.sol +2 -2
  387. package/contracts/token/ERC20PresetMinterPauserUpgradeable.sol +140 -0
  388. package/contracts/token/ERC677.sol +74 -0
  389. package/contracts/token/FeesFormula.sol +10 -0
  390. package/contracts/token/GoodDollar.sol +243 -0
  391. package/contracts/token/superfluid/ERC20Permit.sol +101 -0
  392. package/contracts/token/superfluid/ISuperGoodDollar.sol +84 -0
  393. package/contracts/token/superfluid/SuperGoodDollar.sol +401 -0
  394. package/contracts/token/superfluid/SuperToken.sol +714 -0
  395. package/contracts/token/superfluid/SuperfluidToken.sol +403 -0
  396. package/contracts/token/superfluid/UUPSProxiable.sol +55 -0
  397. package/contracts/token/superfluid/UUPSProxy.sol +153 -0
  398. package/contracts/ubi/UBIScheme.sol +88 -68
  399. package/contracts/utils/AdminWallet.sol +42 -11
  400. package/contracts/utils/AdminWalletFuse.sol +271 -0
  401. package/contracts/utils/BuyAndBridgeHelper.sol +108 -0
  402. package/contracts/utils/GoodDollarMintBurnWrapper.sol +19 -1
  403. package/contracts/utils/ProxyFactory1967.sol +1 -1
  404. package/hardhat.config.ts +33 -7
  405. package/package.json +11 -7
  406. package/releases/deploy-settings.json +58 -4
  407. package/releases/deployment.json +65 -231
  408. package/scripts/deployFullDAO.ts +39 -19
  409. package/scripts/gdx/gdxAirdropCalculation.ts +10 -11
  410. package/scripts/governance/airdropCalculationRecover.ts +43 -33
  411. package/scripts/governance/airdropCalculationSorted.ts +438 -0
  412. package/scripts/governance/goodCheckpointSorted.ts +377 -0
  413. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +100 -0
  414. package/scripts/multichain-deploy/{basicdao-deploy.ts → 1_basicdao-deploy.ts} +123 -93
  415. package/scripts/multichain-deploy/2_helpers-deploy.ts +151 -0
  416. package/scripts/multichain-deploy/{gdSavings-deploy.ts → 3_gdSavings-deploy.ts} +106 -76
  417. package/scripts/multichain-deploy/4_ubi-deploy.ts +147 -0
  418. package/scripts/multichain-deploy/5_gov-deploy.ts +147 -0
  419. package/scripts/multichain-deploy/fulldeploy.sh +26 -0
  420. package/scripts/multichain-deploy/helpers.ts +149 -111
  421. package/scripts/multichain-deploy/v3-fix.ts +120 -0
  422. package/scripts/multichain-deploy/verifyEtherscan.ts +197 -0
  423. package/scripts/test/localOldDaoDeploy.ts +10 -3
  424. package/scripts/upgradeToV3/v3-fix.ts +120 -0
  425. package/scripts/upgradeToV3/v3-upgrade.ts +219 -0
  426. package/scripts/upgrades/celo-defi-ubi-deploy.ts +165 -0
  427. package/scripts/upgrades/identity-upgrade.ts +109 -0
  428. package/scripts/upgrades/transferDaoToGuardians.ts +80 -0
  429. package/test/faucet/Faucet.test.ts +157 -0
  430. package/test/{FuseFaucet.test.ts → faucet/FuseFaucet.test.ts} +26 -31
  431. package/test/governance/ClaimersDistribution.test.ts +58 -6
  432. package/test/governance/CompoundVotingMachine.castvote.test.ts +3 -3
  433. package/test/governance/CompoundVotingMachine.crossblockchain.ts +3 -2
  434. package/test/governance/CompoundVotingMachine.daoscheme.ts +8 -10
  435. package/test/governance/CompoundVotingMachine.delegate.test.ts +4 -5
  436. package/test/governance/CompoundVotingMachine.guardian.test.ts +5 -11
  437. package/test/governance/CompoundVotingMachine.propose.test.ts +3 -2
  438. package/test/governance/CompoundVotingMachine.state.test.ts +3 -2
  439. package/test/governance/GReputation.test.ts +78 -32
  440. package/test/governance/GReputation.v2merkle.test.ts +186 -0
  441. package/test/governance/GoodDollarStaking.gd.test.ts +83 -1
  442. package/test/governance/GoodDollarStaking.good.test.ts +2 -1
  443. package/test/governance/GovernanceStaking.test.ts +4 -4
  444. package/test/governance/Reputation.test.ts +2 -1
  445. package/test/governance/StakersDistribution.test.ts +26 -13
  446. package/test/helpers.ts +145 -52
  447. package/test/identity/IdentityV2.test.ts +539 -0
  448. package/test/{InvitesV1.test.ts → invite/InvitesV1.test.ts} +10 -5
  449. package/test/invite/InvitesV2.test.ts +328 -0
  450. package/test/reserve/DistributionHelper.test.ts +2 -1
  451. package/test/reserve/GoodMarketMaker.test.ts +20 -19
  452. package/test/reserve/GoodReserveCDai.cap.test.ts +8 -1
  453. package/test/reserve/GoodReserveCDai.distribution.test.ts +2 -1
  454. package/test/reserve/GoodReserveCDai.gdx.test.ts +2 -2
  455. package/test/reserve/GoodReserveCDai.pause.test.ts +2 -1
  456. package/test/reserve/GoodReserveCDai.test.ts +14 -38
  457. package/test/reserve/GoodReserveCDai.uniswap.test.ts +21 -19
  458. package/test/staking/CompoundStakingFactory.test.ts +8 -5
  459. package/test/staking/DifferentStakingTokens.test.ts +3 -2
  460. package/test/staking/DonationsStaking.test.ts +33 -24
  461. package/test/staking/FuseStaking.test.ts +11 -13
  462. package/test/staking/GoodAaveStakingFactory.test.ts +36 -31
  463. package/test/staking/SimpleDAIStaking.test.ts +13 -19
  464. package/test/staking/StakingRewards.test.ts +32 -32
  465. package/test/staking/StakingRewardsFixedAPY.test.ts +2 -1
  466. package/test/staking/SwapHelper.test.ts +20 -17
  467. package/test/staking/UsdcAaveStaking.test.ts +36 -33
  468. package/test/token/GoodDollar.test.ts +445 -0
  469. package/test/token/SuperGoodDollar.test.ts +422 -0
  470. package/test/ubi/UBIScheme.e2e.test.ts +6 -5
  471. package/test/ubi/UBIScheme.test.ts +37 -36
  472. package/test/ubi/UBISchemeCycle.test.ts +11 -8
  473. package/test/utils/AdminWallet.test.ts +34 -11
  474. package/test/utils/BuyAndBridgeHelper.test.ts +249 -0
  475. package/test/utils/DAOUpgradeableContract.test.ts +3 -2
  476. package/test/utils/GoodDollarMintBurnWrapper.test.ts +3 -2
  477. package/test/utils/NameService.test.ts +37 -21
  478. package/test/utils/ProtocolUpgrade.test.ts +1 -1
  479. package/test/utils/ProxyFactory.test.ts +12 -10
  480. package/truffle-config.js +18 -18
  481. package/types/AaveMock.ts +24 -15
  482. package/types/AccessControlEnumerableUpgradeable.ts +9 -0
  483. package/types/AccessControlUpgradeable.ts +9 -0
  484. package/types/AdminWallet.ts +149 -110
  485. package/types/AdminWalletFuse.ts +1268 -0
  486. package/types/BuyAndBridgeHelper.ts +279 -0
  487. package/types/CBATMock.ts +24 -15
  488. package/types/CDAILowWorthMock.ts +24 -15
  489. package/types/CDAIMock.ts +24 -15
  490. package/types/CDAINonMintableMock.ts +24 -15
  491. package/types/CDecimalsMock.ts +24 -15
  492. package/types/CSDTMock.ts +24 -15
  493. package/types/CUSDCMock.ts +24 -15
  494. package/types/ClaimersDistribution.ts +28 -0
  495. package/types/CompoundVotingMachine.ts +28 -0
  496. package/types/ContextUpgradeable.ts +77 -0
  497. package/types/DAIMock.ts +24 -15
  498. package/types/DAOUpgradeableContract.ts +28 -0
  499. package/types/DecimalsMock.ts +24 -15
  500. package/types/DistributionHelper.ts +28 -0
  501. package/types/DistributionHelperTest.ts +28 -0
  502. package/types/DistributionHelperTestHelper.ts +28 -0
  503. package/types/DonationsStaking.ts +28 -0
  504. package/types/EIP712Upgradeable.ts +77 -0
  505. package/types/ERC165Upgradeable.ts +13 -2
  506. package/types/ERC1967UpgradeUpgradeable.ts +9 -0
  507. package/types/ERC20BurnableUpgradeable.ts +24 -15
  508. package/types/ERC20PausableUpgradeable.ts +24 -15
  509. package/types/ERC20Permit.ts +186 -0
  510. package/types/ERC20PermitUpgradeable.ts +531 -0
  511. package/types/ERC20PresetMinterPauserUpgradeable.ts +129 -16
  512. package/types/ERC20Upgradeable.ts +24 -15
  513. package/types/ERC20WithTokenInfo.ts +339 -0
  514. package/types/ERC677.ts +131 -0
  515. package/types/ERC677Receiver.ts +115 -0
  516. package/types/EventsEmitter.ts +88 -0
  517. package/types/ExchangeHelper.ts +28 -0
  518. package/types/Faucet.ts +1107 -0
  519. package/types/FeesFormulaMock.ts +130 -0
  520. package/types/FuseFaucet.ts +9 -0
  521. package/types/FuseFaucetV2.ts +729 -0
  522. package/types/FuseStakingV3.ts +75 -208
  523. package/types/GReputation.ts +103 -4
  524. package/types/GoodAaveStaking.ts +24 -15
  525. package/types/GoodAaveStakingV2.ts +24 -15
  526. package/types/GoodCompoundStaking.ts +24 -15
  527. package/types/GoodCompoundStakingTest.ts +24 -15
  528. package/types/GoodCompoundStakingV2.ts +24 -15
  529. package/types/GoodDollar.ts +1733 -0
  530. package/types/GoodDollarMintBurnWrapper.ts +55 -0
  531. package/types/GoodDollarStaking.ts +92 -0
  532. package/types/GoodDollarStakingMock.ts +131 -0
  533. package/types/GoodFundManager.ts +28 -0
  534. package/types/GoodFundManagerTest.ts +28 -0
  535. package/types/GoodMarketMaker.ts +28 -0
  536. package/types/GoodReserveCDai.ts +43 -15
  537. package/types/GovernanceStaking.ts +43 -15
  538. package/types/IERC1271Upgradeable.ts +109 -0
  539. package/types/IERC1820Registry.ts +398 -0
  540. package/types/IERC1822ProxiableUpgradeable.ts +90 -0
  541. package/types/IERC20MetadataUpgradeable.ts +15 -15
  542. package/types/IERC20Permit.ts +175 -0
  543. package/types/IERC20PermitUpgradeable.ts +176 -0
  544. package/types/IERC20Upgradeable.ts +15 -15
  545. package/types/IERC777.ts +586 -0
  546. package/types/IERC777Recipient.ts +130 -0
  547. package/types/IERC777Sender.ts +130 -0
  548. package/types/IFeesFormula.ts +111 -0
  549. package/types/IGoodDollar.ts +304 -7
  550. package/types/IGoodDollarCustom.ts +618 -0
  551. package/types/IGovernanceStaking.ts +98 -0
  552. package/types/IIdentity.ts +106 -0
  553. package/types/IIdentityV2.ts +557 -0
  554. package/types/IStakingUpgrade.ts +110 -0
  555. package/types/ISuperAgreement.ts +151 -0
  556. package/types/ISuperApp.ts +410 -0
  557. package/types/ISuperGoodDollar.ts +3029 -0
  558. package/types/ISuperToken.ts +2326 -0
  559. package/types/ISuperTokenFactory.ts +415 -0
  560. package/types/ISuperfluid.ts +1565 -0
  561. package/types/ISuperfluidGovernance.ts +455 -0
  562. package/types/ISuperfluidToken.ts +951 -0
  563. package/types/IdentityMock.ts +493 -0
  564. package/types/IdentityV2.ts +1743 -0
  565. package/types/Initializable.ts +77 -0
  566. package/types/InvitesFuseV2.ts +806 -0
  567. package/types/InvitesV1.ts +9 -0
  568. package/types/InvitesV2.ts +1010 -0
  569. package/types/LendingPoolMock.ts +24 -15
  570. package/types/NameService.ts +28 -0
  571. package/types/OwnableUpgradeable.ts +9 -0
  572. package/types/PausableUpgradeable.ts +9 -0
  573. package/types/PayableMock.ts +92 -0
  574. package/types/ReentrancyGuardUpgradeable.ts +78 -0
  575. package/types/Reputation.ts +28 -0
  576. package/types/SelfApprove.ts +115 -0
  577. package/types/SimpleStaking.ts +24 -15
  578. package/types/SimpleStakingV2.ts +24 -15
  579. package/types/SixteenDecimalsTokenMock.ts +24 -15
  580. package/types/StakersDistribution.ts +28 -0
  581. package/types/SuperGoodDollar.ts +3662 -0
  582. package/types/SuperToken.ts +2434 -0
  583. package/types/SuperfluidToken.ts +951 -0
  584. package/types/TokenInfo.ts +109 -0
  585. package/types/TwentyDecimalsTokenMock.ts +24 -15
  586. package/types/UBIScheme.ts +47 -40
  587. package/types/USDCMock.ts +24 -15
  588. package/types/UUPSProxiable.ts +183 -0
  589. package/types/UUPSProxy.ts +105 -0
  590. package/types/UUPSUpgradeable.ts +28 -0
  591. package/types/UpgradableMock.ts +28 -0
  592. package/types/UpgradableMock2.ts +28 -0
  593. package/types/UpgradableMock3.ts +28 -0
  594. package/types/UpgradableMock4.ts +28 -0
  595. package/types/factories/AaveMock__factory.ts +17 -4
  596. package/types/factories/AaveStakingFactory__factory.ts +1 -1
  597. package/types/factories/AaveUSDMockOracle__factory.ts +1 -1
  598. package/types/factories/AccessControlEnumerableUpgradeable__factory.ts +13 -0
  599. package/types/factories/AccessControlUpgradeable__factory.ts +13 -0
  600. package/types/factories/AdminWalletFuse__factory.ts +881 -0
  601. package/types/factories/AdminWallet__factory.ts +93 -47
  602. package/types/factories/BancorFormula__factory.ts +1 -1
  603. package/types/factories/BaseShareFieldV2__factory.ts +1 -1
  604. package/types/factories/BaseShareField__factory.ts +1 -1
  605. package/types/factories/BatUSDMockOracle__factory.ts +1 -1
  606. package/types/factories/BuyAndBridgeHelper__factory.ts +237 -0
  607. package/types/factories/CBATMock__factory.ts +17 -4
  608. package/types/factories/CDAILowWorthMock__factory.ts +17 -4
  609. package/types/factories/CDAIMock__factory.ts +17 -4
  610. package/types/factories/CDAINonMintableMock__factory.ts +17 -4
  611. package/types/factories/CDecimalsMock__factory.ts +17 -4
  612. package/types/factories/CSDTMock__factory.ts +17 -4
  613. package/types/factories/CUSDCMock__factory.ts +17 -4
  614. package/types/factories/ClaimersDistribution__factory.ts +27 -1
  615. package/types/factories/CompUSDMockOracle__factory.ts +1 -1
  616. package/types/factories/CompoundStakingFactory__factory.ts +1 -1
  617. package/types/factories/CompoundVotingMachine__factory.ts +27 -1
  618. package/types/factories/ContextUpgradeable__factory.ts +39 -0
  619. package/types/factories/DAIMock__factory.ts +17 -4
  620. package/types/factories/DAOContract__factory.ts +1 -1
  621. package/types/factories/DAOUpgradeableContract__factory.ts +27 -1
  622. package/types/factories/DaiEthPriceMockOracle__factory.ts +1 -1
  623. package/types/factories/DecimalsMock__factory.ts +17 -4
  624. package/types/factories/DistributionBridgeMock__factory.ts +1 -1
  625. package/types/factories/DistributionHelperTestHelper__factory.ts +27 -1
  626. package/types/factories/DistributionHelperTest__factory.ts +27 -1
  627. package/types/factories/DistributionHelper__factory.ts +27 -1
  628. package/types/factories/DonationsStaking__factory.ts +27 -1
  629. package/types/factories/EIP712Upgradeable__factory.ts +39 -0
  630. package/types/factories/ERC165Upgradeable__factory.ts +13 -0
  631. package/types/factories/ERC1967Proxy__factory.ts +1 -1
  632. package/types/factories/ERC1967UpgradeUpgradeable__factory.ts +13 -0
  633. package/types/factories/ERC20BurnableUpgradeable__factory.ts +16 -3
  634. package/types/factories/ERC20PausableUpgradeable__factory.ts +16 -3
  635. package/types/factories/ERC20PermitUpgradeable__factory.ts +388 -0
  636. package/types/factories/ERC20Permit__factory.ts +111 -0
  637. package/types/factories/ERC20PresetMinterPauserUpgradeable__factory.ts +99 -5
  638. package/types/factories/ERC20Upgradeable__factory.ts +17 -4
  639. package/types/factories/ERC20WithTokenInfo__factory.ts +248 -0
  640. package/types/factories/ERC677Receiver__factory.ts +55 -0
  641. package/types/factories/ERC677__factory.ts +75 -0
  642. package/types/factories/EthUSDMockOracle__factory.ts +1 -1
  643. package/types/factories/EventsEmitter__factory.ts +84 -0
  644. package/types/factories/ExchangeHelper__factory.ts +27 -1
  645. package/types/factories/Faucet__factory.ts +781 -0
  646. package/types/factories/FeesFormulaMock__factory.ts +132 -0
  647. package/types/factories/FuseFaucetV2__factory.ts +528 -0
  648. package/types/factories/FuseFaucet__factory.ts +14 -1
  649. package/types/factories/FuseStakingV3__factory.ts +43 -82
  650. package/types/factories/GReputation__factory.ts +77 -2
  651. package/types/factories/GasPriceMockOracle__factory.ts +1 -1
  652. package/types/factories/GoodAaveStakingV2__factory.ts +17 -4
  653. package/types/factories/GoodAaveStaking__factory.ts +17 -4
  654. package/types/factories/GoodCompoundStakingTest__factory.ts +17 -4
  655. package/types/factories/GoodCompoundStakingV2__factory.ts +17 -4
  656. package/types/factories/GoodCompoundStaking__factory.ts +17 -4
  657. package/types/factories/GoodDollarMintBurnWrapper__factory.ts +34 -1
  658. package/types/factories/GoodDollarStakingMock__factory.ts +94 -1
  659. package/types/factories/GoodDollarStaking__factory.ts +70 -1
  660. package/types/factories/GoodDollar__factory.ts +1254 -0
  661. package/types/factories/GoodFundManagerTest__factory.ts +27 -1
  662. package/types/factories/GoodFundManager__factory.ts +27 -1
  663. package/types/factories/GoodMarketMaker__factory.ts +27 -1
  664. package/types/factories/GoodReserveCDai__factory.ts +30 -4
  665. package/types/factories/GovernanceStaking__factory.ts +30 -4
  666. package/types/factories/IERC1271Upgradeable__factory.ts +50 -0
  667. package/types/factories/IERC1820Registry__factory.ts +239 -0
  668. package/types/factories/IERC1822ProxiableUpgradeable__factory.ts +43 -0
  669. package/types/factories/IERC20MetadataUpgradeable__factory.ts +3 -3
  670. package/types/factories/IERC20PermitUpgradeable__factory.ts +105 -0
  671. package/types/factories/IERC20Permit__factory.ts +98 -0
  672. package/types/factories/IERC20Upgradeable__factory.ts +3 -3
  673. package/types/factories/IERC777Recipient__factory.ts +64 -0
  674. package/types/factories/IERC777Sender__factory.ts +61 -0
  675. package/types/factories/IERC777__factory.ts +414 -0
  676. package/types/factories/IFeesFormula__factory.ts +57 -0
  677. package/types/factories/IGoodDollarCustom__factory.ts +370 -0
  678. package/types/factories/IGoodDollar__factory.ts +184 -0
  679. package/types/factories/IGovernanceStaking__factory.ts +39 -0
  680. package/types/factories/IIdentityV2__factory.ts +312 -0
  681. package/types/factories/IIdentity__factory.ts +70 -0
  682. package/types/factories/IStakingUpgrade__factory.ts +50 -0
  683. package/types/factories/ISuperAgreement__factory.ts +78 -0
  684. package/types/factories/ISuperApp__factory.ts +272 -0
  685. package/types/factories/ISuperGoodDollar__factory.ts +2147 -0
  686. package/types/factories/ISuperTokenFactory__factory.ts +271 -0
  687. package/types/factories/ISuperToken__factory.ts +1682 -0
  688. package/types/factories/ISuperfluidGovernance__factory.ts +264 -0
  689. package/types/factories/ISuperfluidToken__factory.ts +697 -0
  690. package/types/factories/ISuperfluid__factory.ts +1143 -0
  691. package/types/factories/IdentityMock__factory.ts +327 -0
  692. package/types/factories/IdentityV2__factory.ts +1129 -0
  693. package/types/factories/IncentiveControllerMock__factory.ts +1 -1
  694. package/types/factories/Initializable__factory.ts +36 -0
  695. package/types/factories/InvitesFuseV2__factory.ts +553 -0
  696. package/types/factories/InvitesV1__factory.ts +14 -1
  697. package/types/factories/InvitesV2__factory.ts +683 -0
  698. package/types/factories/LendingPoolMock__factory.ts +17 -4
  699. package/types/factories/Multicall__factory.ts +1 -1
  700. package/types/factories/MultichainBridgeHelper__factory.ts +1 -1
  701. package/types/factories/MultichainRouterMock__factory.ts +1 -1
  702. package/types/factories/NameService__factory.ts +27 -1
  703. package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
  704. package/types/factories/OverMintTester__factory.ts +1 -1
  705. package/types/factories/OwnableUpgradeable__factory.ts +13 -0
  706. package/types/factories/PausableUpgradeable__factory.ts +13 -0
  707. package/types/factories/PayableMock__factory.ts +66 -0
  708. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
  709. package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
  710. package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
  711. package/types/factories/ProtocolUpgrade__factory.ts +1 -1
  712. package/types/factories/ProxyFactory1967__factory.ts +1 -1
  713. package/types/factories/ReentrancyGuardUpgradeable__factory.ts +43 -0
  714. package/types/factories/ReputationTestHelper__factory.ts +1 -1
  715. package/types/factories/Reputation__factory.ts +27 -1
  716. package/types/factories/SelfApprove__factory.ts +46 -0
  717. package/types/factories/SimpleStakingV2__factory.ts +16 -3
  718. package/types/factories/SimpleStaking__factory.ts +16 -3
  719. package/types/factories/SixteenDecimalsTokenMock__factory.ts +17 -4
  720. package/types/factories/StakersDistribution__factory.ts +27 -1
  721. package/types/factories/StakingMockFixedAPY__factory.ts +1 -1
  722. package/types/factories/SuperGoodDollar__factory.ts +2680 -0
  723. package/types/factories/SuperToken__factory.ts +1809 -0
  724. package/types/factories/SuperfluidToken__factory.ts +697 -0
  725. package/types/factories/SwapHelperTest__factory.ts +1 -1
  726. package/types/factories/TokenInfo__factory.ts +62 -0
  727. package/types/factories/TwentyDecimalsTokenMock__factory.ts +17 -4
  728. package/types/factories/UBIScheme__factory.ts +40 -21
  729. package/types/factories/USDCMock__factory.ts +17 -4
  730. package/types/factories/UUPSProxiable__factory.ts +101 -0
  731. package/types/factories/UUPSProxy__factory.ts +80 -0
  732. package/types/factories/UUPSUpgradeable__factory.ts +26 -0
  733. package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
  734. package/types/factories/UpgradableMock2__factory.ts +27 -1
  735. package/types/factories/UpgradableMock3__factory.ts +27 -1
  736. package/types/factories/UpgradableMock4__factory.ts +27 -1
  737. package/types/factories/UpgradableMock__factory.ts +27 -1
  738. package/types/hardhat.d.ts +459 -0
  739. package/types/index.ts +98 -0
  740. package/yarn.lock +1251 -306
  741. package/scripts/multichain-deploy/nonubiDistribution-deploy.ts +0 -170
@@ -14,7 +14,7 @@ contract cDAINonMintableMock is DSMath, ERC20PresetMinterPauserUpgradeable {
14
14
 
15
15
  uint256 exchangeRate = uint256(100e28).div(99);
16
16
 
17
- constructor(ERC20PresetMinterPauserUpgradeable _dai) {
17
+ constructor(ERC20PresetMinterPauserUpgradeable _dai) initializer {
18
18
  __ERC20PresetMinterPauser_init("Compound DAI", "cDAI");
19
19
  dai = _dai;
20
20
  }
@@ -22,19 +22,15 @@ contract cDAINonMintableMock is DSMath, ERC20PresetMinterPauserUpgradeable {
22
22
  function mint(uint256 daiAmount) public returns (uint256) {
23
23
  dai.transferFrom(msg.sender, address(this), daiAmount);
24
24
  //mul by 1e10 to match to precision of 1e28 of the exchange rate
25
- _mint(
26
- msg.sender,
27
- rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19)
28
- ); //div to reduce precision from RAY 1e27 to 1e8 precision of cDAI
25
+ _mint(msg.sender, rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19)); //div to reduce precision from RAY 1e27 to 1e8 precision of cDAI
29
26
  return 1;
30
27
  }
31
28
 
32
29
  function redeem(uint256 cdaiAmount) public returns (uint256) {
33
- uint256 daiAmount =
34
- rmul(
35
- cdaiAmount * 1e10, //bring cdai 8 decimals to rdai precision
36
- exchangeRateStored().div(10)
37
- );
30
+ uint256 daiAmount = rmul(
31
+ cdaiAmount * 1e10, //bring cdai 8 decimals to rdai precision
32
+ exchangeRateStored().div(10)
33
+ );
38
34
  //div to reduce precision from 1e28 of exchange rate to 1e27 that DSMath works on
39
35
  // uint256 daiAmount = cdaiAmount.mul(100).div(99);
40
36
  _burn(msg.sender, cdaiAmount);
@@ -43,8 +39,7 @@ contract cDAINonMintableMock is DSMath, ERC20PresetMinterPauserUpgradeable {
43
39
  }
44
40
 
45
41
  function redeemUnderlying(uint256 daiAmount) public returns (uint256) {
46
- uint256 cdaiAmount =
47
- rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19);
42
+ uint256 cdaiAmount = rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19);
48
43
  _burn(msg.sender, cdaiAmount);
49
44
  dai.transfer(msg.sender, daiAmount);
50
45
  return 0;
@@ -15,7 +15,7 @@ contract cDecimalsMock is DSMath, ERC20PresetMinterPauserUpgradeable {
15
15
  uint256 exchangeRate = 20000000000000000; // initial exchange rate 0.02 from original cToken
16
16
  uint256 mantissa = 18;
17
17
 
18
- constructor(ERC20PresetMinterPauserUpgradeable _edt) {
18
+ constructor(ERC20PresetMinterPauserUpgradeable _edt) initializer {
19
19
  __ERC20PresetMinterPauser_init("Compound EDT", "cEDT");
20
20
  edt = _edt;
21
21
  mantissa = 18 + _edt.decimals() - 8;
@@ -14,7 +14,7 @@ contract cSDTMock is DSMath, ERC20PresetMinterPauserUpgradeable {
14
14
  uint256 exchangeRate = 2000000000000000000000000; // initial exchange rate 0.02 from original cToken
15
15
  uint256 mantissa = 26;
16
16
 
17
- constructor(ERC20PresetMinterPauserUpgradeable _edt) {
17
+ constructor(ERC20PresetMinterPauserUpgradeable _edt) initializer {
18
18
  __ERC20PresetMinterPauser_init("Compound SDT", "cSDT");
19
19
  edt = _edt;
20
20
  }
@@ -38,8 +38,8 @@ contract cSDTMock is DSMath, ERC20PresetMinterPauserUpgradeable {
38
38
  }
39
39
 
40
40
  function redeemUnderlying(uint256 edtAmount) public returns (uint256) {
41
- uint256 cEdtAmount =
42
- ((edtAmount / 1e8) * (10**mantissa)) / exchangeRateStored(); // based on https://compound.finance/docs#protocol-math
41
+ uint256 cEdtAmount = ((edtAmount / 1e8) * (10**mantissa)) /
42
+ exchangeRateStored(); // based on https://compound.finance/docs#protocol-math
43
43
  _burn(msg.sender, cEdtAmount);
44
44
  edt.transfer(msg.sender, edtAmount);
45
45
  return 0;
@@ -15,7 +15,7 @@ contract cUSDCMock is DSMath, ERC20PresetMinterPauserUpgradeable {
15
15
  uint256 exchangeRate = 200000000000000; // initial exchange rate 0.02 from original cToken
16
16
  uint256 mantissa = 16;
17
17
 
18
- constructor(ERC20PresetMinterPauserUpgradeable _usdc) {
18
+ constructor(ERC20PresetMinterPauserUpgradeable _usdc) initializer {
19
19
  __ERC20PresetMinterPauser_init("Compound USDC", "cUSDC");
20
20
  usdc = _usdc;
21
21
  }
@@ -31,8 +31,8 @@ contract cUSDCMock is DSMath, ERC20PresetMinterPauserUpgradeable {
31
31
  }
32
32
 
33
33
  function redeem(uint256 cUsdcAmount) public returns (uint256) {
34
- uint256 usdcAmount =
35
- ((cUsdcAmount / 1e2) * exchangeRateStored()) / 10**mantissa; // based on https://compound.finance/docs#protocol-math
34
+ uint256 usdcAmount = ((cUsdcAmount / 1e2) * exchangeRateStored()) /
35
+ 10**mantissa; // based on https://compound.finance/docs#protocol-math
36
36
 
37
37
  _burn(msg.sender, cUsdcAmount);
38
38
  usdc.transfer(msg.sender, usdcAmount);
@@ -40,8 +40,8 @@ contract cUSDCMock is DSMath, ERC20PresetMinterPauserUpgradeable {
40
40
  }
41
41
 
42
42
  function redeemUnderlying(uint256 usdcAmount) public returns (uint256) {
43
- uint256 cUsdcAmount =
44
- (usdcAmount * 1e2 * (10**mantissa)) / exchangeRateStored(); // based on https://compound.finance/docs#protocol-math
43
+ uint256 cUsdcAmount = (usdcAmount * 1e2 * (10**mantissa)) /
44
+ exchangeRateStored(); // based on https://compound.finance/docs#protocol-math
45
45
  _burn(msg.sender, cUsdcAmount);
46
46
  usdc.transfer(msg.sender, usdcAmount);
47
47
  return 0;
@@ -8,7 +8,7 @@ import "@openzeppelin/contracts/utils/math/Math.sol";
8
8
 
9
9
  import "../utils/DAOUpgradeableContract.sol";
10
10
 
11
- import "hardhat/console.sol";
11
+ // import "hardhat/console.sol";
12
12
 
13
13
  /***
14
14
  * @dev DistributionHelper receives funds and distributes them to recipients
@@ -13,7 +13,7 @@ import "../Interfaces.sol";
13
13
  import "./GoodMarketMaker.sol";
14
14
  import "./DistributionHelper.sol";
15
15
 
16
- import "hardhat/console.sol";
16
+ // import "hardhat/console.sol";
17
17
 
18
18
  interface ContributionCalc {
19
19
  function calculateContribution(
@@ -98,12 +98,27 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
98
98
  /**
99
99
  * @dev initialize
100
100
  */
101
- function initialize() public initializer {
101
+ function initialize(address _uniswap, address _gd) public initializer {
102
102
  __Ownable_init_unchained();
103
- consensus = IConsensus(
104
- address(0x3014ca10b91cb3D0AD85fEf7A3Cb95BCAc9c0f79)
105
- );
103
+ consensus = IConsensus(address(0x3014ca10b91cb3D0AD85fEf7A3Cb95BCAc9c0f79));
106
104
  validators.push(address(0xcb876A393F05a6677a8a029f1C6D7603B416C0A6));
105
+ stakeBackRatio = 33333; //%33
106
+ communityPoolRatio = 33333; //%33
107
+ maxSlippageRatio = 3000; //3%
108
+ keeperFeeRatio = 30; //0.03%
109
+ RATIO_BASE = 100000; //100%
110
+ uniswap = Uniswap(
111
+ _uniswap == address(0)
112
+ ? 0xE3F85aAd0c8DD7337427B9dF5d0fB741d65EEEB5
113
+ : _uniswap
114
+ );
115
+
116
+ GD = IGoodDollar(_gd);
117
+ uniswapFactory = UniswapFactory(uniswap.factory());
118
+ uniswapPair = UniswapPair(uniswapFactory.getPair(uniswap.WETH(), _gd));
119
+ pegSwap = PegSwap(0xdfE016328E7BcD6FA06614fE3AF3877E931F7e0a);
120
+ USDC = address(0x620fd5fa44BE6af63715Ef4E65DDFA0387aD13F5);
121
+ fUSD = address(0x249BE57637D8B013Ad64785404b24aeBaE9B098B);
107
122
  }
108
123
 
109
124
  modifier notPaused() {
@@ -116,79 +131,13 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
116
131
  _;
117
132
  }
118
133
 
119
- function upgrade0() external {
120
- if (RATIO_BASE == 0) {
121
- stakeBackRatio = 33333; //%33
122
- communityPoolRatio = 33333; //%33
123
- maxSlippageRatio = 3000; //3%
124
- keeperFeeRatio = 30; //0.03%
125
- RATIO_BASE = 100000; //100%
126
- }
127
- }
128
-
129
- function upgrade1(
130
- address _gd,
131
- address _ubischeme,
132
- address _uniswap
133
- ) external {
134
- if (address(uniswapPair) == address(0)) {
135
- uniswap = Uniswap(
136
- _uniswap == address(0)
137
- ? 0xFB76e9E7d88E308aB530330eD90e84a952570319
138
- : _uniswap
139
- );
140
- GD = IGoodDollar(_gd);
141
- ubischeme = UBIScheme(_ubischeme);
142
-
143
- uniswapFactory = UniswapFactory(uniswap.factory());
144
- uniswapPair = UniswapPair(
145
- uniswapFactory.getPair(uniswap.WETH(), _gd)
146
- );
147
- }
148
- }
149
-
150
- function upgrade2() external {
151
- if (USDC == address(0)) {
152
- USDC = address(0x620fd5fa44BE6af63715Ef4E65DDFA0387aD13F5);
153
- fUSD = address(0x249BE57637D8B013Ad64785404b24aeBaE9B098B);
154
- }
155
- }
156
-
157
- function upgrade3() external {
158
- if (guardian == address(0)) {
159
- paused = true;
160
- guardian = address(0x5128E3C1f8846724cc1007Af9b4189713922E4BB);
161
- }
162
- }
163
-
164
- function upgrade4() external {
165
- if (address(pegSwap) == address(0)) {
166
- pegSwap = PegSwap(0xdfE016328E7BcD6FA06614fE3AF3877E931F7e0a);
167
- paused = false;
168
- }
169
- }
170
-
171
- function upgrade5() external {
134
+ function approve() external {
172
135
  cERC20(fUSD).approve(address(pegSwap), type(uint256).max);
173
136
  cERC20(USDC).approve(address(uniswap), type(uint256).max);
174
137
  }
175
138
 
176
- function upgrade6() external {
177
- //switch to voltage
178
- uniswap = Uniswap(0xE3F85aAd0c8DD7337427B9dF5d0fB741d65EEEB5);
179
- uniswapFactory = UniswapFactory(uniswap.factory());
180
- uniswapPair = UniswapPair(
181
- uniswapFactory.getPair(uniswap.WETH(), address(GD))
182
- );
183
- }
184
-
185
- function setContracts(address _gd, address _ubischeme) public onlyOwner {
186
- if (_gd != address(0)) {
187
- GD = IGoodDollar(_gd);
188
- }
189
- if (_ubischeme != address(0)) {
190
- ubischeme = UBIScheme(_ubischeme);
191
- }
139
+ function setUBIScheme(address _ubischeme) public onlyOwner {
140
+ ubischeme = UBIScheme(_ubischeme);
192
141
  }
193
142
 
194
143
  function stake() public payable returns (bool) {
@@ -230,17 +179,15 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
230
179
 
231
180
  function withdrawAll() public onlyGuardian {
232
181
  for (uint256 i = 0; i < validators.length; i++) {
233
- uint256 cur = consensus.delegatedAmount(
234
- address(this),
235
- validators[i]
236
- );
182
+ uint256 cur = consensus.delegatedAmount(address(this), validators[i]);
237
183
  if (cur == 0) continue;
238
184
  undelegateWithCatch(validators[i], cur);
239
185
  }
240
186
  uint256 effectiveBalance = balance(); //use only undelegated funds
241
187
  pendingFuseEarnings = 0;
242
188
  if (effectiveBalance > 0) {
243
- msg.sender.call{ value: effectiveBalance }("");
189
+ (bool ok, ) = msg.sender.call{ value: effectiveBalance }("");
190
+ require(ok, "transfer failed");
244
191
  }
245
192
  }
246
193
 
@@ -254,10 +201,7 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
254
201
  );
255
202
  uint256 perValidator = _value.div(validators.length);
256
203
  for (uint256 i = 0; i < validators.length; i++) {
257
- uint256 cur = consensus.delegatedAmount(
258
- address(this),
259
- validators[i]
260
- );
204
+ uint256 cur = consensus.delegatedAmount(address(this), validators[i]);
261
205
  if (cur == 0) continue;
262
206
  if (cur <= perValidator) {
263
207
  undelegateWithCatch(validators[i], cur);
@@ -296,10 +240,7 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
296
240
  uint256 perValidator = (totalDelegated() + _value) / validators.length;
297
241
  uint256 left = _value;
298
242
  for (uint256 i = 0; i < validators.length && left > 0; i++) {
299
- uint256 cur = consensus.delegatedAmount(
300
- address(this),
301
- validators[i]
302
- );
243
+ uint256 cur = consensus.delegatedAmount(address(this), validators[i]);
303
244
 
304
245
  if (cur < perValidator) {
305
246
  uint256 toDelegate = perValidator.sub(cur);
@@ -319,20 +260,14 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
319
260
  function totalDelegated() public view returns (uint256) {
320
261
  uint256 total = 0;
321
262
  for (uint256 i = 0; i < validators.length; i++) {
322
- uint256 cur = consensus.delegatedAmount(
323
- address(this),
324
- validators[i]
325
- );
263
+ uint256 cur = consensus.delegatedAmount(address(this), validators[i]);
326
264
  total += cur;
327
265
  }
328
266
  return total;
329
267
  }
330
268
 
331
269
  function removeValidator(address _validator) public onlyOwner {
332
- uint256 delegated = consensus.delegatedAmount(
333
- address(this),
334
- _validator
335
- );
270
+ uint256 delegated = consensus.delegatedAmount(address(this), _validator);
336
271
  if (delegated > 0) {
337
272
  uint256 prevBalance = balance();
338
273
  undelegateWithCatch(_validator, delegated);
@@ -356,18 +291,13 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
356
291
 
357
292
  function collectUBIInterest() public notPaused {
358
293
  uint256 curDay = ubischeme.currentDay();
359
- require(
360
- curDay != lastDayCollected,
361
- "can collect only once in a ubi cycle"
362
- );
294
+ require(curDay != lastDayCollected, "can collect only once in a ubi cycle");
363
295
 
364
296
  uint256 earnings = balance() - pendingFuseEarnings;
365
297
  require(pendingFuseEarnings + earnings > 0, "no earnings to collect");
366
298
 
367
299
  lastDayCollected = curDay;
368
- uint256 fuseUBI = earnings.mul(RATIO_BASE - stakeBackRatio).div(
369
- RATIO_BASE
370
- );
300
+ uint256 fuseUBI = earnings.mul(RATIO_BASE - stakeBackRatio).div(RATIO_BASE);
371
301
  uint256 stakeBack = earnings - fuseUBI;
372
302
 
373
303
  uint256[] memory fuseswapResult = _buyGD(fuseUBI + pendingFuseEarnings); //buy GD with X% of earnings
@@ -378,9 +308,9 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
378
308
  uint256 keeperFee = gdBought.mul(keeperFeeRatio).div(RATIO_BASE);
379
309
  if (keeperFee > 0) GD.transfer(msg.sender, keeperFee);
380
310
  gdBought -= keeperFee;
381
- uint256 communityPoolContribution = gdBought
382
- .mul(communityPoolRatio)
383
- .div(RATIO_BASE); //subtract fee // * ommunityPoolRatio // = G$ after fee * communityPoolRatio%
311
+ uint256 communityPoolContribution = gdBought.mul(communityPoolRatio).div(
312
+ RATIO_BASE
313
+ ); //subtract fee // * ommunityPoolRatio // = G$ after fee * communityPoolRatio%
384
314
 
385
315
  uint256 ubiAfterFeeAndPool = gdBought.sub(communityPoolContribution);
386
316
 
@@ -407,13 +337,10 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
407
337
  function _buyGD(uint256 _value) internal returns (uint256[] memory) {
408
338
  //buy from uniwasp
409
339
  require(_value > 0, "buy value should be > 0");
410
- (uint256 maxFuse, uint256 fuseGDOut) = calcMaxFuseWithPriceImpact(
340
+ (uint256 maxFuse, uint256 fuseGDOut) = calcMaxFuseWithPriceImpact(_value);
341
+ (uint256 maxFuseUSDC, uint256 usdcGDOut) = calcMaxFuseUSDCWithPriceImpact(
411
342
  _value
412
343
  );
413
- (
414
- uint256 maxFuseUSDC,
415
- uint256 usdcGDOut
416
- ) = calcMaxFuseUSDCWithPriceImpact(_value);
417
344
  address[] memory path;
418
345
  if (maxFuse >= maxFuseUSDC) {
419
346
  path = new address[](2);
@@ -471,9 +398,12 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
471
398
  address[] memory path = new address[](2);
472
399
  path[1] = fUSD;
473
400
  path[0] = uniswap.WETH();
474
- uint256[] memory result = uniswap.swapExactETHForTokens{
475
- value: maxFuse
476
- }((tokenOut * 95) / 100, path, address(this), block.timestamp);
401
+ uint256[] memory result = uniswap.swapExactETHForTokens{ value: maxFuse }(
402
+ (tokenOut * 95) / 100,
403
+ path,
404
+ address(this),
405
+ block.timestamp
406
+ );
477
407
 
478
408
  pegSwap.swap(result[1], fUSD, USDC);
479
409
  usedFuse = result[0];
@@ -194,10 +194,10 @@ contract GoodFundManager is DAOUpgradeableContract, DSMath {
194
194
  }
195
195
  }
196
196
 
197
- if (exist && (_isBlackListed || _rewardsPerBlock == 0)) {
197
+ if (exist && _isBlackListed) {
198
198
  activeContracts[i] = activeContracts[activeContracts.length - 1];
199
199
  activeContracts.pop();
200
- } else if (!exist && !(_isBlackListed || _rewardsPerBlock == 0)) {
200
+ } else if (!exist && !_isBlackListed) {
201
201
  activeContracts.push(_stakingAddress);
202
202
  }
203
203
  emit StakingRewardSet(
@@ -0,0 +1,140 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // we use a custom file and not openzeppelin directly since the DAOStack Controller expects `mint` to return bool
3
+ // we also add the erc20 permit
4
+
5
+ pragma solidity ^0.8.0;
6
+
7
+ import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20PermitUpgradeable.sol";
8
+ import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol";
9
+ import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PausableUpgradeable.sol";
10
+ import "@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol";
11
+ import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
12
+ import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
13
+
14
+ /**
15
+ * @dev {ERC20} token, including:
16
+ *
17
+ * - ability for holders to burn (destroy) their tokens
18
+ * - a minter role that allows for token minting (creation)
19
+ * - a pauser role that allows to stop all token transfers
20
+ *
21
+ * This contract uses {AccessControl} to lock permissioned functions using the
22
+ * different roles - head to its documentation for details.
23
+ *
24
+ * The account that deploys the contract will be granted the minter and pauser
25
+ * roles, as well as the default admin role, which will let it grant both minter
26
+ * and pauser roles to other accounts.
27
+ */
28
+ contract ERC20PresetMinterPauserUpgradeable is
29
+ Initializable,
30
+ ContextUpgradeable,
31
+ AccessControlEnumerableUpgradeable,
32
+ ERC20PermitUpgradeable,
33
+ ERC20BurnableUpgradeable,
34
+ ERC20PausableUpgradeable
35
+ {
36
+ function initialize(string memory name, string memory symbol)
37
+ public
38
+ virtual
39
+ initializer
40
+ {
41
+ __ERC20PresetMinterPauser_init(name, symbol);
42
+ }
43
+
44
+ bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
45
+ bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
46
+
47
+ /**
48
+ * @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE` and `PAUSER_ROLE` to the
49
+ * account that deploys the contract.
50
+ *
51
+ * See {ERC20-constructor}.
52
+ */
53
+ function __ERC20PresetMinterPauser_init(
54
+ string memory name,
55
+ string memory symbol
56
+ ) internal initializer {
57
+ __Context_init_unchained();
58
+ __ERC165_init_unchained();
59
+ __AccessControl_init_unchained();
60
+ __AccessControlEnumerable_init_unchained();
61
+ __ERC20_init_unchained(name, symbol);
62
+ __ERC20Burnable_init_unchained();
63
+ __Pausable_init_unchained();
64
+ __ERC20Pausable_init_unchained();
65
+ __ERC20PresetMinterPauser_init_unchained(name, symbol);
66
+ __ERC20Permit_init_unchained(name);
67
+ }
68
+
69
+ function __ERC20PresetMinterPauser_init_unchained(
70
+ string memory name,
71
+ string memory symbol
72
+ ) internal initializer {
73
+ _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());
74
+
75
+ _setupRole(MINTER_ROLE, _msgSender());
76
+ _setupRole(PAUSER_ROLE, _msgSender());
77
+ }
78
+
79
+ /**
80
+ * @dev Creates `amount` new tokens for `to`.
81
+ *
82
+ * See {ERC20-_mint}.
83
+ *
84
+ * Requirements:
85
+ *
86
+ * - the caller must have the `MINTER_ROLE`.
87
+ */
88
+ function mint(address to, uint256 amount) public virtual returns (bool) {
89
+ require(
90
+ hasRole(MINTER_ROLE, _msgSender()),
91
+ "ERC20PresetMinterPauser: must have minter role to mint"
92
+ );
93
+ _mint(to, amount);
94
+ return true;
95
+ }
96
+
97
+ /**
98
+ * @dev Pauses all token transfers.
99
+ *
100
+ * See {ERC20Pausable} and {Pausable-_pause}.
101
+ *
102
+ * Requirements:
103
+ *
104
+ * - the caller must have the `PAUSER_ROLE`.
105
+ */
106
+ function pause() public virtual {
107
+ require(
108
+ hasRole(PAUSER_ROLE, _msgSender()),
109
+ "ERC20PresetMinterPauser: must have pauser role to pause"
110
+ );
111
+ _pause();
112
+ }
113
+
114
+ /**
115
+ * @dev Unpauses all token transfers.
116
+ *
117
+ * See {ERC20Pausable} and {Pausable-_unpause}.
118
+ *
119
+ * Requirements:
120
+ *
121
+ * - the caller must have the `PAUSER_ROLE`.
122
+ */
123
+ function unpause() public virtual {
124
+ require(
125
+ hasRole(PAUSER_ROLE, _msgSender()),
126
+ "ERC20PresetMinterPauser: must have pauser role to unpause"
127
+ );
128
+ _unpause();
129
+ }
130
+
131
+ function _beforeTokenTransfer(
132
+ address from,
133
+ address to,
134
+ uint256 amount
135
+ ) internal virtual override(ERC20Upgradeable, ERC20PausableUpgradeable) {
136
+ super._beforeTokenTransfer(from, to, amount);
137
+ }
138
+
139
+ uint256[50] private __gap;
140
+ }
@@ -0,0 +1,74 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity >=0.8;
4
+
5
+ /* @title ERC677Receiver interface
6
+ */
7
+ interface ERC677Receiver {
8
+ function onTokenTransfer(
9
+ address _from,
10
+ uint256 _value,
11
+ bytes calldata _data
12
+ ) external returns (bool);
13
+ }
14
+
15
+ abstract contract ERC677 {
16
+ event Transfer(
17
+ address indexed from,
18
+ address indexed to,
19
+ uint256 value,
20
+ bytes data
21
+ );
22
+
23
+ function transfer(address to, uint256 value) public virtual returns (bool);
24
+
25
+ /**
26
+ * @dev transfer token to a contract address with additional data if the recipient is a contact.
27
+ * @param _to The address to transfer to.
28
+ * @param _value The amount to be transferred.
29
+ * @param _data The extra data to be passed to the receiving contract.
30
+ * @return true if transfer is successful
31
+ */
32
+ function _transferAndCall(
33
+ address _to,
34
+ uint256 _value,
35
+ bytes memory _data
36
+ ) internal returns (bool) {
37
+ bool res = transfer(_to, _value);
38
+ emit Transfer(msg.sender, _to, _value, _data);
39
+
40
+ if (isContract(_to)) {
41
+ require(contractFallback(_to, _value, _data), "Contract fallback failed");
42
+ }
43
+ return res;
44
+ }
45
+
46
+ /* @dev Contract fallback function. Is called if transferAndCall is called
47
+ * to a contract
48
+ */
49
+ function contractFallback(
50
+ address _to,
51
+ uint256 _value,
52
+ bytes memory _data
53
+ ) internal virtual returns (bool) {
54
+ ERC677Receiver receiver = ERC677Receiver(_to);
55
+ require(
56
+ receiver.onTokenTransfer(msg.sender, _value, _data),
57
+ "Contract Fallback failed"
58
+ );
59
+ return true;
60
+ }
61
+
62
+ /* @dev Function to check if given address is a contract
63
+ * @param _addr Address to check
64
+ * @return true if given address is a contract
65
+ */
66
+
67
+ function isContract(address _addr) internal view returns (bool) {
68
+ uint256 length;
69
+ assembly {
70
+ length := extcodesize(_addr)
71
+ }
72
+ return length > 0;
73
+ }
74
+ }
@@ -0,0 +1,10 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity >=0.8;
3
+
4
+ interface IFeesFormula {
5
+ function getTxFees(
6
+ uint256 value,
7
+ address sender,
8
+ address recipient
9
+ ) external view returns (uint256 fee, bool senderPays);
10
+ }