@gooddollar/goodprotocol 2.0.5-beta.0 → 2.0.5-beta.10

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 (334) hide show
  1. package/artifacts/abis/Faucet.min.json +1 -1
  2. package/artifacts/abis/FuseFaucetV2.min.json +1 -1
  3. package/artifacts/abis/IFirstClaimPool.min.json +1 -1
  4. package/artifacts/abis/IdentityFix.min.json +1 -0
  5. package/artifacts/abis/IdentityV2.min.json +1 -1
  6. package/artifacts/abis/InvitesFuseV2.min.json +1 -1
  7. package/artifacts/abis/OneTimePaymentsV2.min.json +1 -0
  8. package/artifacts/abis/UBISchemeV2.min.json +1 -0
  9. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  10. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  11. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  12. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  13. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  14. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  15. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  16. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.json +7 -0
  23. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  35. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  36. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  37. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  38. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  39. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  40. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +29 -10
  41. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  42. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +2 -2
  43. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  44. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.json +28 -2
  45. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
  47. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  48. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
  49. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  50. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
  51. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  52. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +2 -2
  53. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
  54. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
  55. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  56. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  57. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +2 -2
  58. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  59. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  60. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
  61. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  62. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
  63. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  64. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +20 -2
  65. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  66. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.json +15 -2
  67. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  68. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +2 -2
  69. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  70. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +2 -2
  71. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  72. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  73. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  74. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  75. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  76. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  77. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  79. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +2 -2
  80. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +2 -2
  82. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  83. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +2 -2
  84. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  85. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  87. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  88. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
  89. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +2 -2
  91. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  92. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
  93. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
  94. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +2 -2
  95. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  97. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  98. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  99. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +2 -2
  100. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  101. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  102. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
  103. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  104. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  105. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  106. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  107. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  108. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  109. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  110. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  111. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  112. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
  113. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  114. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
  115. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  116. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
  117. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  118. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
  119. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  120. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  121. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  122. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  123. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  124. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  125. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  126. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  127. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  128. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +2 -2
  129. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  130. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
  131. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  132. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
  133. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  134. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  135. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +2 -2
  136. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  137. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  138. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  139. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  140. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  141. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
  142. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  143. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -2
  144. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  145. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  146. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  147. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
  148. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  149. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  150. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  151. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  152. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  153. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
  154. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  155. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
  156. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  157. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
  158. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  159. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
  160. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  161. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
  162. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  163. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
  164. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  165. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  166. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  167. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  168. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  169. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +1 -1
  170. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  171. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +2 -2
  172. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  173. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  174. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  175. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  176. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  177. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +2 -2
  178. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  179. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  180. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  181. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  182. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  183. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
  184. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  185. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +2 -2
  186. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  187. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
  188. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +4 -0
  189. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.json +789 -0
  190. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  191. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +2 -2
  192. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  193. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.json +2 -2
  194. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  195. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  196. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
  197. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  198. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +2 -2
  199. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  200. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  201. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  202. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
  203. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  204. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  205. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  206. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +2 -2
  207. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  208. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  209. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  210. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +2 -2
  211. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +4 -0
  212. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.json +60 -0
  213. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  214. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  215. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +2 -2
  216. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  217. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  218. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.json +2 -2
  219. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +4 -0
  220. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.json +316 -0
  221. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  222. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  223. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  224. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  225. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  226. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  227. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  228. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  229. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  230. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  231. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  232. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  233. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  234. package/contracts/Interfaces.sol +46 -61
  235. package/contracts/fuseFaucet/Faucet.sol +22 -26
  236. package/contracts/fuseFaucet/FuseFaucetV2.sol +16 -9
  237. package/contracts/identity/IdentityV2.sol +52 -61
  238. package/contracts/invite/InvitesFuseV2.sol +21 -25
  239. package/contracts/invite/InvitesV2.sol +20 -30
  240. package/contracts/token/superfluid/SuperGoodDollar.sol +16 -22
  241. package/contracts/token/superfluid/UUPSProxy.sol +1 -1
  242. package/contracts/ubi/UBISchemeV2.sol +470 -0
  243. package/contracts/utils/IdentityFix.sol +31 -0
  244. package/contracts/utils/OneTimePaymentsV2.sol +172 -0
  245. package/hardhat.config.ts +11 -1
  246. package/package.json +11 -9
  247. package/releases/deploy-settings.json +6 -0
  248. package/releases/deployment.json +22 -4
  249. package/scripts/analytics/activeUsersCount.ts +56 -18
  250. package/scripts/analytics/whitelistsyncIssue.ts +87 -0
  251. package/scripts/multichain-deploy/1_basicdao-deploy.ts +34 -94
  252. package/scripts/multichain-deploy/2b_otp-deploy.ts +4 -4
  253. package/scripts/multichain-deploy/helpers.ts +25 -12
  254. package/scripts/proposals/gip-14_1.ts +251 -0
  255. package/scripts/proposals/gips-14_1.md +29 -0
  256. package/test/faucet/Faucet.test.ts +166 -130
  257. package/truffle-config.js +6 -0
  258. package/types/Faucet.ts +60 -29
  259. package/types/FuseFaucetV2.ts +50 -0
  260. package/types/IFirstClaimPool.ts +21 -0
  261. package/types/IdentityFix.ts +141 -0
  262. package/types/IdentityV2.ts +39 -0
  263. package/types/InvitesFuseV2.ts +28 -0
  264. package/types/OneTimePaymentsV2.ts +456 -0
  265. package/types/UBISchemeV2.ts +1192 -0
  266. package/types/factories/AaveStakingFactory__factory.ts +1 -1
  267. package/types/factories/AdminWalletFuse__factory.ts +1 -1
  268. package/types/factories/AdminWallet__factory.ts +1 -1
  269. package/types/factories/BaseShareFieldV2__factory.ts +1 -1
  270. package/types/factories/BaseShareField__factory.ts +1 -1
  271. package/types/factories/BuyAndBridgeHelper__factory.ts +1 -1
  272. package/types/factories/ClaimersDistribution__factory.ts +1 -1
  273. package/types/factories/CompoundStakingFactory__factory.ts +1 -1
  274. package/types/factories/CompoundVotingMachine__factory.ts +1 -1
  275. package/types/factories/DAOContract__factory.ts +1 -1
  276. package/types/factories/DAOUpgradeableContract__factory.ts +1 -1
  277. package/types/factories/DistributionBridgeMock__factory.ts +1 -1
  278. package/types/factories/DistributionHelperTestHelper__factory.ts +1 -1
  279. package/types/factories/DistributionHelperTest__factory.ts +1 -1
  280. package/types/factories/DistributionHelper__factory.ts +1 -1
  281. package/types/factories/DonationsStaking__factory.ts +1 -1
  282. package/types/factories/ExchangeHelper__factory.ts +1 -1
  283. package/types/factories/Faucet__factory.ts +28 -9
  284. package/types/factories/FuseFaucetV2__factory.ts +27 -1
  285. package/types/factories/FuseFaucet__factory.ts +1 -1
  286. package/types/factories/FuseStakingV3__factory.ts +1 -1
  287. package/types/factories/GReputation__factory.ts +1 -1
  288. package/types/factories/GoodAaveStakingV2__factory.ts +1 -1
  289. package/types/factories/GoodAaveStaking__factory.ts +1 -1
  290. package/types/factories/GoodCompoundStakingTest__factory.ts +1 -1
  291. package/types/factories/GoodCompoundStakingV2__factory.ts +1 -1
  292. package/types/factories/GoodCompoundStaking__factory.ts +1 -1
  293. package/types/factories/GoodDollarMintBurnWrapper__factory.ts +1 -1
  294. package/types/factories/GoodDollarStakingMock__factory.ts +1 -1
  295. package/types/factories/GoodDollarStaking__factory.ts +1 -1
  296. package/types/factories/GoodDollar__factory.ts +1 -1
  297. package/types/factories/GoodFundManagerTest__factory.ts +1 -1
  298. package/types/factories/GoodFundManager__factory.ts +1 -1
  299. package/types/factories/GoodMarketMaker__factory.ts +1 -1
  300. package/types/factories/GoodReserveCDai__factory.ts +1 -1
  301. package/types/factories/GovernanceStaking__factory.ts +1 -1
  302. package/types/factories/IFirstClaimPool__factory.ts +7 -0
  303. package/types/factories/IdentityFix__factory.ts +110 -0
  304. package/types/factories/IdentityMock__factory.ts +1 -1
  305. package/types/factories/IdentityV2__factory.ts +19 -1
  306. package/types/factories/InvitesFuseV2__factory.ts +14 -1
  307. package/types/factories/InvitesV1__factory.ts +1 -1
  308. package/types/factories/InvitesV2__factory.ts +1 -1
  309. package/types/factories/MultichainBridgeHelper__factory.ts +1 -1
  310. package/types/factories/MultichainRouterMock__factory.ts +1 -1
  311. package/types/factories/OneTimePaymentsV2__factory.ts +369 -0
  312. package/types/factories/OneTimePayments__factory.ts +1 -1
  313. package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
  314. package/types/factories/OverMintTester__factory.ts +1 -1
  315. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
  316. package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
  317. package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
  318. package/types/factories/ProtocolUpgrade__factory.ts +1 -1
  319. package/types/factories/ReputationTestHelper__factory.ts +1 -1
  320. package/types/factories/Reputation__factory.ts +1 -1
  321. package/types/factories/StakersDistribution__factory.ts +1 -1
  322. package/types/factories/SuperGoodDollar__factory.ts +1 -1
  323. package/types/factories/SwapHelperTest__factory.ts +1 -1
  324. package/types/factories/UBISchemeV2__factory.ts +837 -0
  325. package/types/factories/UBIScheme__factory.ts +1 -1
  326. package/types/factories/UUPSProxy__factory.ts +1 -1
  327. package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
  328. package/types/factories/UpgradableMock2__factory.ts +1 -1
  329. package/types/factories/UpgradableMock3__factory.ts +1 -1
  330. package/types/factories/UpgradableMock4__factory.ts +1 -1
  331. package/types/factories/UpgradableMock__factory.ts +1 -1
  332. package/types/hardhat.d.ts +27 -0
  333. package/types/index.ts +6 -0
  334. package/yarn.lock +22499 -20151
@@ -1,158 +1,194 @@
1
1
  import hre, { ethers, upgrades } from "hardhat";
2
2
  import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
3
3
  import { expect } from "chai";
4
- import { Faucet, IGoodDollar, IIdentity } from "../../types";
4
+ import { Faucet, FuseFaucetV2, IGoodDollar, IIdentity } from "../../types";
5
5
  import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/dist/src/signer-with-address";
6
6
  import { createDAO } from "../helpers";
7
7
 
8
8
  const BN = ethers.BigNumber;
9
-
10
- describe("Faucet", () => {
11
- let faucet: Faucet, founder: SignerWithAddress;
12
- let user1 = ethers.Wallet.createRandom().connect(ethers.provider);
13
- let user2 = ethers.Wallet.createRandom().connect(ethers.provider);
14
- let signers;
15
-
16
- let avatar, gd: IGoodDollar, Controller, id: IIdentity;
17
-
18
- before(async () => {
19
- [founder, ...signers] = await ethers.getSigners();
20
-
21
- const FuseFaucetF = await ethers.getContractFactory("Faucet");
22
-
23
- let { daoCreator, controller, avatar: av, gd: gooddollar, identity, nameService } = await loadFixture(createDAO);
24
-
25
- Controller = controller;
26
- avatar = av;
27
-
28
- // await daoCreator.setSchemes(
29
- // avatar,
30
- // [identity],
31
- // [ethers.constants.HashZero],
32
- // ["0x0000001F"],
33
- // ""
34
- // );
35
- //NameService _ns,
36
- // uint64 _gasPrice,
37
- // address relayer,
38
- // address owner
39
- faucet = (await upgrades.deployProxy(
40
- FuseFaucetF,
41
- [nameService.address, 1e10, signers[0].address, founder.address],
42
- {
43
- kind: "uups"
44
- }
45
- )) as Faucet;
46
-
47
- gd = (await ethers.getContractAt("IGoodDollar", gooddollar, founder)) as IGoodDollar;
48
- id = (await ethers.getContractAt("IIdentity", identity, founder)) as IIdentity;
49
-
50
- await founder.sendTransaction({
51
- value: ethers.utils.parseEther("1"),
52
- to: faucet.address
9
+ ["FuseFaucetV2", "Faucet"].forEach(factory => {
10
+ describe(factory, () => {
11
+ let faucet: FuseFaucetV2 | Faucet, founder: SignerWithAddress, fuseFaucet: FuseFaucetV2, faucets;
12
+ let user1 = ethers.Wallet.createRandom().connect(ethers.provider);
13
+ let user2 = ethers.Wallet.createRandom().connect(ethers.provider);
14
+ let signers;
15
+
16
+ let avatar, gd: IGoodDollar, Controller, id: IIdentity;
17
+
18
+ const cleanFixture = async () => {};
19
+ before(async () => {
20
+ [founder, ...signers] = await ethers.getSigners();
21
+
22
+ const FuseFaucetF = await ethers.getContractFactory(factory);
23
+
24
+ let { daoCreator, controller, avatar: av, gd: gooddollar, identity, nameService } = await loadFixture(createDAO);
25
+
26
+ Controller = controller;
27
+ avatar = av;
28
+
29
+ // await daoCreator.setSchemes(
30
+ // avatar,
31
+ // [identity],
32
+ // [ethers.constants.HashZero],
33
+ // ["0x0000001F"],
34
+ // ""
35
+ // );
36
+
37
+ // faucet = (await upgrades.deployProxy(
38
+ // FuseFaucetF,
39
+ // [nameService.address, 1e10, signers[0].address, founder.address],
40
+ // {
41
+ // kind: "uups"
42
+ // }
43
+ // )) as Faucet;
44
+
45
+ faucet = (await upgrades.deployProxy(
46
+ await ethers.getContractFactory("FuseFaucetV2"),
47
+ [nameService.address, 1e10, signers[0].address, 1000000],
48
+ {
49
+ kind: "transparent"
50
+ }
51
+ )) as FuseFaucetV2;
52
+
53
+ gd = (await ethers.getContractAt("IGoodDollar", gooddollar, founder)) as IGoodDollar;
54
+ id = (await ethers.getContractAt("IIdentity", identity, founder)) as IIdentity;
55
+
56
+ await founder.sendTransaction({
57
+ value: ethers.utils.parseEther("1"),
58
+ to: faucet.address
59
+ });
60
+ faucets = [fuseFaucet, faucet];
61
+ await loadFixture(cleanFixture);
53
62
  });
54
- });
55
63
 
56
- it("should have balance", async () => {
57
- const balance = await ethers.provider.getBalance(faucet.address);
58
- expect(balance).to.equal(ethers.utils.parseEther("1"));
59
- });
60
-
61
- it("should not unauthorized to top new user", async () => {
62
- expect(await faucet.canTop(user1.address)).to.true;
63
- await expect(faucet.topWallet(user1.address)).revertedWith("not authorized");
64
- });
64
+ it("should have balance", async () => {
65
+ const balance = await ethers.provider.getBalance(faucet.address);
66
+ expect(balance).to.equal(ethers.utils.parseEther("1"));
67
+ });
65
68
 
66
- it("should let new user top once", async () => {
67
- expect(await faucet.canTop(user1.address)).to.true;
68
- const tx = await (await faucet.connect(signers[0]).topWallet(user1.address)).wait();
69
- const balance = await ethers.provider.getBalance(user1.address);
70
- expect(balance).to.equal(await faucet.getToppingAmount());
71
- });
69
+ it("should not unauthorized to top new user", async () => {
70
+ expect(await faucet.canTop(user1.address)).to.true;
71
+ await expect(faucet.topWallet(user1.address)).revertedWith("not authorized");
72
+ });
72
73
 
73
- it("should not let new user top more than once", async () => {
74
- await user1.sendTransaction({
75
- to: ethers.constants.AddressZero,
76
- value: ethers.utils.parseUnits("400000", "gwei")
74
+ it("should let new user top once", async () => {
75
+ expect(await faucet.canTop(user1.address)).to.true;
76
+ const tx = await (await faucet.connect(signers[0]).topWallet(user1.address)).wait();
77
+ const balance = await ethers.provider.getBalance(user1.address);
78
+ expect(balance).to.equal(await faucet.getToppingAmount());
77
79
  });
78
- expect(await faucet.canTop(user1.address)).to.false;
79
- await expect(faucet.connect(signers[0]).topWallet(user1.address)).to.revertedWith(
80
- "User not whitelisted or not first time"
81
- );
82
- });
83
80
 
84
- it("should not refund gas when reverted", async () => {
85
- const balance = await ethers.provider.getBalance(founder.address);
86
- const faucetBalance = await ethers.provider.getBalance(faucet.address);
87
- expect(await faucet.canTop(user1.address)).to.false;
88
- await expect(faucet.topWallet(user1.address)).to.revertedWith("User not whitelisted or not first time");
89
- const balanceAfter = await ethers.provider.getBalance(founder.address);
90
- const faucetBalanceAfter = await ethers.provider.getBalance(faucet.address);
91
- expect(faucetBalanceAfter).to.eq(faucetBalance);
92
- expect(balanceAfter).to.lt(balance);
93
- });
81
+ it("should not let new user top more than once", async () => {
82
+ await user1.sendTransaction({
83
+ to: ethers.constants.AddressZero,
84
+ value: ethers.utils.parseUnits("400000", "gwei")
85
+ });
86
+ expect(await faucet.canTop(user1.address)).to.false;
87
+ await expect(faucet.connect(signers[0]).topWallet(user1.address)).to.revertedWith(
88
+ "User not whitelisted or not first time"
89
+ );
90
+ });
94
91
 
95
- it("should let user top again once identified", async () => {
96
- await id.addWhitelistedWithDID(user1.address, "did:1");
97
- expect(await faucet.canTop(user1.address)).to.true;
98
- const tx = await (await faucet.topWallet(user1.address)).wait();
99
- console.log(tx.gasUsed.toString());
100
- const balance = await ethers.provider.getBalance(user1.address);
101
- expect(balance).to.equal(await faucet.getToppingAmount());
102
- });
92
+ it("should not refund gas when reverted", async () => {
93
+ const balance = await ethers.provider.getBalance(founder.address);
94
+ const faucetBalance = await ethers.provider.getBalance(faucet.address);
95
+ expect(await faucet.canTop(user1.address)).to.false;
96
+ await expect(faucet.topWallet(user1.address)).to.revertedWith("User not whitelisted or not first time");
97
+ const balanceAfter = await ethers.provider.getBalance(founder.address);
98
+ const faucetBalanceAfter = await ethers.provider.getBalance(faucet.address);
99
+ expect(faucetBalanceAfter).to.eq(faucetBalance);
100
+ expect(balanceAfter).to.lt(balance);
101
+ });
103
102
 
104
- it("should not let identified user top over daily limit", async () => {
105
- await user1.sendTransaction({
106
- to: ethers.constants.AddressZero,
107
- value: ethers.utils.parseUnits("400000", "gwei")
103
+ it("should let user top again once identified", async () => {
104
+ await user1.sendTransaction({
105
+ to: ethers.constants.AddressZero,
106
+ value: (await ethers.provider.getBalance(user1.address)).sub(ethers.utils.parseUnits("100000", "gwei"))
107
+ });
108
+ await id.addWhitelistedWithDID(user1.address, "did:1");
109
+ expect(await faucet.canTop(user1.address)).to.true;
110
+ const tx = await (await faucet.topWallet(user1.address)).wait();
111
+ console.log(tx.gasUsed.toString());
112
+ const balance = await ethers.provider.getBalance(user1.address);
113
+ expect(balance).to.equal(await faucet.getToppingAmount());
108
114
  });
109
- const tx = await (await faucet.topWallet(user1.address)).wait();
110
- await user1.sendTransaction({
111
- to: ethers.constants.AddressZero,
112
- value: ethers.utils.parseUnits("400000", "gwei")
115
+
116
+ it("should not let identified user top over daily limit", async () => {
117
+ await user1.sendTransaction({
118
+ to: ethers.constants.AddressZero,
119
+ value: (await ethers.provider.getBalance(user1.address)).sub(ethers.utils.parseUnits("100000", "gwei"))
120
+ });
121
+ const tx = await (await faucet.topWallet(user1.address)).wait();
122
+ await user1.sendTransaction({
123
+ to: ethers.constants.AddressZero,
124
+ value: ethers.utils.parseUnits("400000", "gwei")
125
+ });
126
+ expect(await faucet.canTop(user1.address)).to.false;
127
+ await expect(faucet.topWallet(user1.address)).to.revertedWith("max daily toppings");
113
128
  });
114
- expect(await faucet.canTop(user1.address)).to.false;
115
- await expect(faucet.topWallet(user1.address)).to.revertedWith("max daily toppings");
116
- });
117
129
 
118
- // it("should not top if wallet not half empty", async () => {
119
- // expect(await faucet.canTop(founder.address)).to.false;
120
- // await expect(faucet.topWallet(founder.address)).to.revertedWith(
121
- // "User balance above minimum"
122
- // );
123
- // });
124
-
125
- it("should not let user top over weekly limit", async () => {
126
- const toppingAmount = await faucet.getToppingAmount();
127
- for (let i = 0; i < 5; i++) {
128
- await ethers.provider.send("evm_increaseTime", [60 * 60 * 24]);
129
- await (await faucet.topWallet(user1.address)).wait();
130
+ // it("should not top if wallet not half empty", async () => {
131
+ // expect(await faucet.canTop(founder.address)).to.false;
132
+ // await expect(faucet.topWallet(founder.address)).to.revertedWith(
133
+ // "User balance above minimum"
134
+ // );
135
+ // });
136
+
137
+ it("should not let user top over weekly limit", async () => {
138
+ const toppingAmount = await faucet.getToppingAmount();
130
139
  await user1.sendTransaction({
131
140
  to: ethers.constants.AddressZero,
132
141
  value: toppingAmount.mul(80).div(100)
133
142
  });
134
- }
135
- await ethers.provider.send("evm_increaseTime", [60 * 60 * 24]);
143
+ for (let i = 0; i < 2; i++) {
144
+ await ethers.provider.send("evm_increaseTime", [60 * 60 * 24]);
145
+ await (await faucet.topWallet(user1.address)).wait();
146
+ await user1.sendTransaction({
147
+ to: ethers.constants.AddressZero,
148
+ value: toppingAmount.mul(80).div(100)
149
+ });
150
+ console.log(toppingAmount.toString(), { i });
151
+ }
152
+ // await ethers.provider.send("evm_increaseTime", [60 * 60 * 24]);
136
153
 
137
- expect(await faucet.canTop(user1.address)).to.false;
138
- await expect(faucet.topWallet(user1.address)).to.revertedWith(
139
- "User wallet has been topped too many times this week"
140
- );
154
+ await expect(faucet.topWallet(user1.address)).to.revertedWith(
155
+ "User wallet has been topped too many times this week"
156
+ );
157
+ expect(await faucet.canTop(user1.address)).to.false;
141
158
 
142
- //should be able to top again after some days passed
143
- await ethers.provider.send("evm_increaseTime", [60 * 60 * 24 * 3]);
144
- await ethers.provider.send("evm_mine", []);
159
+ //should be able to top again after some days passed
160
+ await ethers.provider.send("evm_increaseTime", [60 * 60 * 24 * 5]);
161
+ await ethers.provider.send("evm_mine", []);
145
162
 
146
- expect(await faucet.canTop(user1.address)).to.true;
147
- });
163
+ expect(await faucet.canTop(user1.address)).to.true;
164
+ });
165
+
166
+ it("should not top below minTopping", async () => {
167
+ await id.addWhitelistedWithDID(user2.address, "did:2");
148
168
 
149
- it("should reimburse gas costs", async () => {
150
- const balance = await ethers.provider.getBalance(founder.address);
151
- const tx = await (await faucet.connect(signers[0]).topWallet(user2.address, { gasPrice: 1e9 })).wait();
152
- // const gasCosts = tx.gasUsed.mul(1e9);
153
- // const afterRefund = gasCosts.sub(await faucet["gasRefund()"]());
154
- const balanceAfter = await ethers.provider.getBalance(founder.address);
155
- const diff = balance.sub(balanceAfter).toNumber();
156
- expect(diff).to.lt(10000);
169
+ const toppingAmount = await faucet.getToppingAmount();
170
+ console.log(toppingAmount.toString(), "topping amount");
171
+ const minTopping = await faucet.minTopping();
172
+ const balance = await ethers.provider.getBalance(founder.address);
173
+ await founder.sendTransaction({ to: user2.address, value: toppingAmount.mul(100 - minTopping + 1).div(100) });
174
+
175
+ expect(await faucet.canTop(user2.address)).to.be.false;
176
+ await expect(faucet.topWallet(user2.address)).to.revertedWith("low toTop");
177
+ await user2.sendTransaction({ to: founder.address, value: toppingAmount.mul(2).div(100) });
178
+ expect(await faucet.canTop(user2.address)).to.be.true;
179
+ await expect(faucet.topWallet(user2.address)).not.reverted;
180
+ });
181
+
182
+ it("should reimburse gas costs", async () => {
183
+ const tempUser = ethers.Wallet.createRandom().connect(ethers.provider);
184
+
185
+ const balance = await ethers.provider.getBalance(founder.address);
186
+ const tx = await (await faucet.connect(signers[0]).topWallet(tempUser.address, { gasPrice: 1e9 })).wait();
187
+ // const gasCosts = tx.gasUsed.mul(1e9);
188
+ // const afterRefund = gasCosts.sub(await faucet["gasRefund()"]());
189
+ const balanceAfter = await ethers.provider.getBalance(founder.address);
190
+ const diff = balance.sub(balanceAfter).toNumber();
191
+ expect(diff).to.lt(10000);
192
+ });
157
193
  });
158
194
  });
package/truffle-config.js CHANGED
@@ -74,6 +74,12 @@ module.exports = {
74
74
  timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50)
75
75
  skipDryRun: true // Skip dry run before migrations? (default: false for public nets )
76
76
  },
77
+ goerli: {
78
+ provider: () => new Web3.providers.HttpProvider(`https://rpc.ankr.io/eth_goerli`),
79
+ network_id: 5, // Ropsten's id
80
+ gas: 3000000, // Ropsten has a lower block limit than mainnet
81
+ skipDryRun: true // Skip dry run before migrations? (default: false for public nets )
82
+ },
77
83
  fuse: {
78
84
  provider: () => new Web3.providers.HttpProvider(`https://rpc.fuse.io`),
79
85
  network_id: 122, // Ropsten's id
package/types/Faucet.ts CHANGED
@@ -45,7 +45,8 @@ export interface FaucetInterface extends ethers.utils.Interface {
45
45
  "maxDailyNewWallets()": FunctionFragment;
46
46
  "maxDailyToppings()": FunctionFragment;
47
47
  "maxPerWeekMultiplier()": FunctionFragment;
48
- "maxSwapAmount()": FunctionFragment;
48
+ "maxSwapAmount_unused()": FunctionFragment;
49
+ "minTopping()": FunctionFragment;
49
50
  "nameService()": FunctionFragment;
50
51
  "notFirstTime(address)": FunctionFragment;
51
52
  "onTokenTransfer(address,uint256,bytes)": FunctionFragment;
@@ -55,11 +56,11 @@ export interface FaucetInterface extends ethers.utils.Interface {
55
56
  "revokeRole(bytes32,address)": FunctionFragment;
56
57
  "setGasPrice(uint64)": FunctionFragment;
57
58
  "setGasTopping(uint256)": FunctionFragment;
59
+ "setMinTopping(uint8)": FunctionFragment;
58
60
  "startTime()": FunctionFragment;
59
61
  "supportsInterface(bytes4)": FunctionFragment;
60
62
  "topWallet(address)": FunctionFragment;
61
63
  "toppings(uint256,address)": FunctionFragment;
62
- "upgrade()": FunctionFragment;
63
64
  "upgradeTo(address)": FunctionFragment;
64
65
  "upgradeToAndCall(address,bytes)": FunctionFragment;
65
66
  "version()": FunctionFragment;
@@ -130,7 +131,11 @@ export interface FaucetInterface extends ethers.utils.Interface {
130
131
  values?: undefined
131
132
  ): string;
132
133
  encodeFunctionData(
133
- functionFragment: "maxSwapAmount",
134
+ functionFragment: "maxSwapAmount_unused",
135
+ values?: undefined
136
+ ): string;
137
+ encodeFunctionData(
138
+ functionFragment: "minTopping",
134
139
  values?: undefined
135
140
  ): string;
136
141
  encodeFunctionData(
@@ -169,6 +174,10 @@ export interface FaucetInterface extends ethers.utils.Interface {
169
174
  functionFragment: "setGasTopping",
170
175
  values: [BigNumberish]
171
176
  ): string;
177
+ encodeFunctionData(
178
+ functionFragment: "setMinTopping",
179
+ values: [BigNumberish]
180
+ ): string;
172
181
  encodeFunctionData(functionFragment: "startTime", values?: undefined): string;
173
182
  encodeFunctionData(
174
183
  functionFragment: "supportsInterface",
@@ -179,7 +188,6 @@ export interface FaucetInterface extends ethers.utils.Interface {
179
188
  functionFragment: "toppings",
180
189
  values: [BigNumberish, string]
181
190
  ): string;
182
- encodeFunctionData(functionFragment: "upgrade", values?: undefined): string;
183
191
  encodeFunctionData(functionFragment: "upgradeTo", values: [string]): string;
184
192
  encodeFunctionData(
185
193
  functionFragment: "upgradeToAndCall",
@@ -237,9 +245,10 @@ export interface FaucetInterface extends ethers.utils.Interface {
237
245
  data: BytesLike
238
246
  ): Result;
239
247
  decodeFunctionResult(
240
- functionFragment: "maxSwapAmount",
248
+ functionFragment: "maxSwapAmount_unused",
241
249
  data: BytesLike
242
250
  ): Result;
251
+ decodeFunctionResult(functionFragment: "minTopping", data: BytesLike): Result;
243
252
  decodeFunctionResult(
244
253
  functionFragment: "nameService",
245
254
  data: BytesLike
@@ -273,6 +282,10 @@ export interface FaucetInterface extends ethers.utils.Interface {
273
282
  functionFragment: "setGasTopping",
274
283
  data: BytesLike
275
284
  ): Result;
285
+ decodeFunctionResult(
286
+ functionFragment: "setMinTopping",
287
+ data: BytesLike
288
+ ): Result;
276
289
  decodeFunctionResult(functionFragment: "startTime", data: BytesLike): Result;
277
290
  decodeFunctionResult(
278
291
  functionFragment: "supportsInterface",
@@ -280,7 +293,6 @@ export interface FaucetInterface extends ethers.utils.Interface {
280
293
  ): Result;
281
294
  decodeFunctionResult(functionFragment: "topWallet", data: BytesLike): Result;
282
295
  decodeFunctionResult(functionFragment: "toppings", data: BytesLike): Result;
283
- decodeFunctionResult(functionFragment: "upgrade", data: BytesLike): Result;
284
296
  decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result;
285
297
  decodeFunctionResult(
286
298
  functionFragment: "upgradeToAndCall",
@@ -440,7 +452,9 @@ export interface Faucet extends BaseContract {
440
452
 
441
453
  maxPerWeekMultiplier(overrides?: CallOverrides): Promise<[number]>;
442
454
 
443
- maxSwapAmount(overrides?: CallOverrides): Promise<[number]>;
455
+ maxSwapAmount_unused(overrides?: CallOverrides): Promise<[number]>;
456
+
457
+ minTopping(overrides?: CallOverrides): Promise<[number]>;
444
458
 
445
459
  nameService(overrides?: CallOverrides): Promise<[string]>;
446
460
 
@@ -479,6 +493,11 @@ export interface Faucet extends BaseContract {
479
493
  overrides?: Overrides & { from?: string | Promise<string> }
480
494
  ): Promise<ContractTransaction>;
481
495
 
496
+ setMinTopping(
497
+ _minTop: BigNumberish,
498
+ overrides?: Overrides & { from?: string | Promise<string> }
499
+ ): Promise<ContractTransaction>;
500
+
482
501
  startTime(overrides?: CallOverrides): Promise<[BigNumber]>;
483
502
 
484
503
  supportsInterface(
@@ -497,10 +516,6 @@ export interface Faucet extends BaseContract {
497
516
  overrides?: CallOverrides
498
517
  ): Promise<[BigNumber]>;
499
518
 
500
- upgrade(
501
- overrides?: Overrides & { from?: string | Promise<string> }
502
- ): Promise<ContractTransaction>;
503
-
504
519
  upgradeTo(
505
520
  newImplementation: string,
506
521
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -575,7 +590,9 @@ export interface Faucet extends BaseContract {
575
590
 
576
591
  maxPerWeekMultiplier(overrides?: CallOverrides): Promise<number>;
577
592
 
578
- maxSwapAmount(overrides?: CallOverrides): Promise<number>;
593
+ maxSwapAmount_unused(overrides?: CallOverrides): Promise<number>;
594
+
595
+ minTopping(overrides?: CallOverrides): Promise<number>;
579
596
 
580
597
  nameService(overrides?: CallOverrides): Promise<string>;
581
598
 
@@ -614,6 +631,11 @@ export interface Faucet extends BaseContract {
614
631
  overrides?: Overrides & { from?: string | Promise<string> }
615
632
  ): Promise<ContractTransaction>;
616
633
 
634
+ setMinTopping(
635
+ _minTop: BigNumberish,
636
+ overrides?: Overrides & { from?: string | Promise<string> }
637
+ ): Promise<ContractTransaction>;
638
+
617
639
  startTime(overrides?: CallOverrides): Promise<BigNumber>;
618
640
 
619
641
  supportsInterface(
@@ -632,10 +654,6 @@ export interface Faucet extends BaseContract {
632
654
  overrides?: CallOverrides
633
655
  ): Promise<BigNumber>;
634
656
 
635
- upgrade(
636
- overrides?: Overrides & { from?: string | Promise<string> }
637
- ): Promise<ContractTransaction>;
638
-
639
657
  upgradeTo(
640
658
  newImplementation: string,
641
659
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -710,7 +728,9 @@ export interface Faucet extends BaseContract {
710
728
 
711
729
  maxPerWeekMultiplier(overrides?: CallOverrides): Promise<number>;
712
730
 
713
- maxSwapAmount(overrides?: CallOverrides): Promise<number>;
731
+ maxSwapAmount_unused(overrides?: CallOverrides): Promise<number>;
732
+
733
+ minTopping(overrides?: CallOverrides): Promise<number>;
714
734
 
715
735
  nameService(overrides?: CallOverrides): Promise<string>;
716
736
 
@@ -746,6 +766,11 @@ export interface Faucet extends BaseContract {
746
766
  overrides?: CallOverrides
747
767
  ): Promise<void>;
748
768
 
769
+ setMinTopping(
770
+ _minTop: BigNumberish,
771
+ overrides?: CallOverrides
772
+ ): Promise<void>;
773
+
749
774
  startTime(overrides?: CallOverrides): Promise<BigNumber>;
750
775
 
751
776
  supportsInterface(
@@ -761,8 +786,6 @@ export interface Faucet extends BaseContract {
761
786
  overrides?: CallOverrides
762
787
  ): Promise<BigNumber>;
763
788
 
764
- upgrade(overrides?: CallOverrides): Promise<void>;
765
-
766
789
  upgradeTo(
767
790
  newImplementation: string,
768
791
  overrides?: CallOverrides
@@ -909,7 +932,9 @@ export interface Faucet extends BaseContract {
909
932
 
910
933
  maxPerWeekMultiplier(overrides?: CallOverrides): Promise<BigNumber>;
911
934
 
912
- maxSwapAmount(overrides?: CallOverrides): Promise<BigNumber>;
935
+ maxSwapAmount_unused(overrides?: CallOverrides): Promise<BigNumber>;
936
+
937
+ minTopping(overrides?: CallOverrides): Promise<BigNumber>;
913
938
 
914
939
  nameService(overrides?: CallOverrides): Promise<BigNumber>;
915
940
 
@@ -948,6 +973,11 @@ export interface Faucet extends BaseContract {
948
973
  overrides?: Overrides & { from?: string | Promise<string> }
949
974
  ): Promise<BigNumber>;
950
975
 
976
+ setMinTopping(
977
+ _minTop: BigNumberish,
978
+ overrides?: Overrides & { from?: string | Promise<string> }
979
+ ): Promise<BigNumber>;
980
+
951
981
  startTime(overrides?: CallOverrides): Promise<BigNumber>;
952
982
 
953
983
  supportsInterface(
@@ -966,10 +996,6 @@ export interface Faucet extends BaseContract {
966
996
  overrides?: CallOverrides
967
997
  ): Promise<BigNumber>;
968
998
 
969
- upgrade(
970
- overrides?: Overrides & { from?: string | Promise<string> }
971
- ): Promise<BigNumber>;
972
-
973
999
  upgradeTo(
974
1000
  newImplementation: string,
975
1001
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -1051,7 +1077,11 @@ export interface Faucet extends BaseContract {
1051
1077
  overrides?: CallOverrides
1052
1078
  ): Promise<PopulatedTransaction>;
1053
1079
 
1054
- maxSwapAmount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
1080
+ maxSwapAmount_unused(
1081
+ overrides?: CallOverrides
1082
+ ): Promise<PopulatedTransaction>;
1083
+
1084
+ minTopping(overrides?: CallOverrides): Promise<PopulatedTransaction>;
1055
1085
 
1056
1086
  nameService(overrides?: CallOverrides): Promise<PopulatedTransaction>;
1057
1087
 
@@ -1093,6 +1123,11 @@ export interface Faucet extends BaseContract {
1093
1123
  overrides?: Overrides & { from?: string | Promise<string> }
1094
1124
  ): Promise<PopulatedTransaction>;
1095
1125
 
1126
+ setMinTopping(
1127
+ _minTop: BigNumberish,
1128
+ overrides?: Overrides & { from?: string | Promise<string> }
1129
+ ): Promise<PopulatedTransaction>;
1130
+
1096
1131
  startTime(overrides?: CallOverrides): Promise<PopulatedTransaction>;
1097
1132
 
1098
1133
  supportsInterface(
@@ -1111,10 +1146,6 @@ export interface Faucet extends BaseContract {
1111
1146
  overrides?: CallOverrides
1112
1147
  ): Promise<PopulatedTransaction>;
1113
1148
 
1114
- upgrade(
1115
- overrides?: Overrides & { from?: string | Promise<string> }
1116
- ): Promise<PopulatedTransaction>;
1117
-
1118
1149
  upgradeTo(
1119
1150
  newImplementation: string,
1120
1151
  overrides?: Overrides & { from?: string | Promise<string> }