@gooddollar/goodprotocol 2.0.21 → 2.0.22-beta.0

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 (222) hide show
  1. package/artifacts/abis/ISuperToken.min.json +1 -1
  2. package/artifacts/abis/SuperGoodDollar.min.json +1 -1
  3. package/artifacts/abis/SuperToken.min.json +1 -1
  4. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  5. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  6. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  7. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  8. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  9. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  10. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  11. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  12. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  13. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  14. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  15. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  16. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  33. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  34. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  35. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  36. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  37. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  38. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  39. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  40. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
  41. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
  42. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  43. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  44. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  45. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  46. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  48. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  49. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  50. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  51. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  52. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  53. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  54. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  55. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  56. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  57. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  58. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  59. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  60. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  61. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  62. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  63. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  64. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  65. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  66. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  67. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
  68. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  69. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  70. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  71. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  72. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  73. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  74. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  75. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  76. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  77. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  79. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  83. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  84. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  85. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  87. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  88. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  91. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  92. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  93. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  94. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  95. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  96. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  97. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  98. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  99. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  100. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  101. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  102. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  103. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  104. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  105. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  106. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  107. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  108. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  109. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  110. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  111. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  112. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  113. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  114. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  115. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  116. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  117. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  118. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  119. package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
  120. package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +1 -1
  121. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  122. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  123. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  124. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  125. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +1 -1
  126. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.json +5 -0
  127. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  128. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +25 -2
  129. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  130. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.json +7 -2
  131. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  132. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  133. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  134. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  135. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  136. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  137. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  138. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  139. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  140. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  141. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  142. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  143. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
  144. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
  145. package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
  146. package/artifacts/contracts/utils/BuyGDClone.sol/IQuoterV2.dbg.json +1 -1
  147. package/artifacts/contracts/utils/BuyGDClone.sol/ISwapRouter.dbg.json +1 -1
  148. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  149. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  150. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  151. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  152. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
  153. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  154. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  155. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  156. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  157. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
  158. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  159. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  160. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  161. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  162. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
  163. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  164. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  165. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  166. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  167. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  168. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  169. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  170. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  171. package/contracts/token/superfluid/ISuperToken.sol +1 -0
  172. package/contracts/token/superfluid/SuperGoodDollar.sol +11 -2
  173. package/contracts/token/superfluid/SuperToken.sol +8 -0
  174. package/dist/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +25 -2
  175. package/hardhat.config.ts +1 -1
  176. package/package.json +4 -3
  177. package/scripts/blockchainTestSetup.sh +1 -1
  178. package/test/faucet/Faucet.test.ts +63 -19
  179. package/test/faucet/FuseFaucet.test.ts +43 -14
  180. package/test/governance/ClaimersDistribution.test.ts +3 -3
  181. package/test/governance/CompoundVotingMachine.castvote.test.ts +3 -6
  182. package/test/governance/CompoundVotingMachine.crossblockchain.ts +2 -2
  183. package/test/governance/CompoundVotingMachine.daoscheme.ts +1 -1
  184. package/test/governance/CompoundVotingMachine.guardian.test.ts +4 -4
  185. package/test/governance/CompoundVotingMachine.propose.test.ts +8 -8
  186. package/test/governance/CompoundVotingMachine.state.test.ts +4 -4
  187. package/test/governance/GReputation.test.ts +6 -6
  188. package/test/governance/GoodDollarStaking.gd.test.ts +44 -71
  189. package/test/governance/GoodDollarStaking.good.test.ts +52 -73
  190. package/test/governance/GovernanceStaking.test.ts +1 -1
  191. package/test/governance/Reputation.test.ts +2 -2
  192. package/test/helpers.ts +1 -1
  193. package/test/identity/IdentityV2.test.ts +12 -12
  194. package/test/invite/InvitesV1.test.ts +6 -6
  195. package/test/invite/InvitesV2.test.ts +272 -81
  196. package/test/reserve/DistributionHelper.test.ts +232 -139
  197. package/test/reserve/GoodMarketMaker.test.ts +17 -17
  198. package/test/reserve/GoodReserveCDai.cap.test.ts +4 -4
  199. package/test/reserve/GoodReserveCDai.distribution.test.ts +64 -42
  200. package/test/reserve/GoodReserveCDai.gdx.test.ts +1 -1
  201. package/test/reserve/GoodReserveCDai.pause.test.ts +8 -8
  202. package/test/reserve/GoodReserveCDai.test.ts +307 -101
  203. package/test/reserve/GoodReserveCDai.uniswap.test.ts +1 -1
  204. package/test/staking/DonationsStaking.test.ts +2 -2
  205. package/test/staking/FuseStaking.test.ts +3 -3
  206. package/test/staking/GoodAaveStakingFactory.test.ts +2 -2
  207. package/test/staking/StakingRewards.test.ts +913 -320
  208. package/test/staking/StakingRewardsFixedAPY.test.ts +62 -66
  209. package/test/token/CeloGasToken.test.ts +2 -2
  210. package/test/token/GoodDollar.test.ts +5 -5
  211. package/test/token/SuperGoodDollar.test.ts +17 -13
  212. package/test/ubi/UBIScheme.test.ts +1 -1
  213. package/test/utils/AdminWallet.test.ts +10 -10
  214. package/test/utils/BuyAndBridgeHelper.test.ts +33 -9
  215. package/test/utils/GoodDollarMintBurnWrapper.test.ts +265 -113
  216. package/test/utils/NameService.test.ts +1 -1
  217. package/test/utils/ProxyFactory.test.ts +2 -2
  218. package/types/contracts/token/superfluid/SuperGoodDollar.ts +26 -0
  219. package/types/factories/contracts/token/superfluid/ISuperToken__factory.ts +5 -0
  220. package/types/factories/contracts/token/superfluid/SuperGoodDollar__factory.ts +24 -1
  221. package/types/factories/contracts/token/superfluid/SuperToken__factory.ts +6 -1
  222. package/yarn.lock +635 -253
@@ -1,4 +1,4 @@
1
- import { default as hre, ethers, upgrades, waffle } from "hardhat";
1
+ import { default as hre, ethers, upgrades } from "hardhat";
2
2
  import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
3
3
  import { Contract, Signer } from "ethers";
4
4
  import { expect } from "chai";
@@ -104,10 +104,7 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
104
104
  }
105
105
 
106
106
  const fixture_staked1year = async (wallets, provider) => {
107
- const { staking, goodDollarMintBurnWrapper } = await fixture_ready(
108
- wallets,
109
- provider
110
- );
107
+ const { staking, goodDollarMintBurnWrapper } = await fixture_ready();
111
108
 
112
109
  await stake(staker1, STAKE_AMOUNT, staking);
113
110
  await advanceBlocks(BLOCKS_ONE_YEAR);
@@ -115,20 +112,13 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
115
112
  return { staking, goodDollarMintBurnWrapper };
116
113
  };
117
114
 
118
- const fixture_ready = async (wallets, provider) => {
119
- const f = await ethers.getContractFactory("GoodDollarStakingMock");
120
-
121
- wallets = provider.getWallets();
122
- const staking = (await waffle.deployContract(
123
- wallets[0],
124
- {
125
- abi: JSON.parse(
126
- f.interface.format(FormatTypes.json) as string
127
- ) as any[],
128
- bytecode: f.bytecode
129
- },
130
- [nameService.address, BN.from("1000000007735630000"), 518400 * 12, 30]
131
- )) as GoodDollarStaking;
115
+ const fixture_ready = async () => {
116
+ const staking = (await ethers.deployContract("GoodDollarStakingMock", [
117
+ nameService.address,
118
+ BN.from("1000000007735630000"),
119
+ 518400 * 12,
120
+ 30
121
+ ])) as GoodDollarStaking;
132
122
 
133
123
  await staking.upgrade();
134
124
 
@@ -168,32 +158,17 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
168
158
  return { staking: staking.connect(staker1), goodDollarMintBurnWrapper };
169
159
  };
170
160
 
171
- const fixture_upgradeTest = async (wallets, provider) => {
172
- const f = await ethers.getContractFactory("GoodDollarStaking");
173
- const gf = await ethers.getContractFactory("GovernanceStaking");
174
-
175
- wallets = provider.getWallets();
176
- const staking = (await waffle.deployContract(
177
- wallets[0],
178
- {
179
- abi: JSON.parse(
180
- f.interface.format(FormatTypes.json) as string
181
- ) as any[],
182
- bytecode: f.bytecode
183
- },
184
- [nameService.address, BN.from("1000000007735630000"), 518400 * 12, 30]
185
- )) as GoodDollarStaking;
186
-
187
- const govStaking = (await waffle.deployContract(
188
- wallets[0],
189
- {
190
- abi: JSON.parse(
191
- gf.interface.format(FormatTypes.json) as string
192
- ) as any[],
193
- bytecode: gf.bytecode
194
- },
195
- [nameService.address]
196
- )) as GovernanceStaking;
161
+ const fixture_upgradeTest = async () => {
162
+ const staking = (await ethers.deployContract("GoodDollarStaking", [
163
+ nameService.address,
164
+ BN.from("1000000007735630000"),
165
+ 518400 * 12,
166
+ 30
167
+ ])) as GoodDollarStaking;
168
+
169
+ const govStaking = (await ethers.deployContract("GovernanceStaking", [
170
+ nameService.address
171
+ ])) as GovernanceStaking;
197
172
 
198
173
  await setDAOAddress("GDAO_STAKING", govStaking.address);
199
174
 
@@ -203,7 +178,7 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
203
178
  };
204
179
 
205
180
  it("should update stakingrewardsfixedapy staker info and global stats when staking", async () => {
206
- const { staking } = await waffle.loadFixture(fixture_ready);
181
+ const { staking } = await loadFixture(fixture_ready);
207
182
  const statsBefore = await staking.stats();
208
183
  const PRECISION = await staking.PRECISION();
209
184
 
@@ -229,7 +204,7 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
229
204
  });
230
205
 
231
206
  it("should withdraw only rewards when calling withdrawRewards", async () => {
232
- const { staking } = await waffle.loadFixture(fixture_ready);
207
+ const { staking } = await loadFixture(fixture_ready);
233
208
 
234
209
  // collect 350 earned rewards: 10,000 * 5%APY = 500 total rewards, minus 30% donation
235
210
  await stake(staker1, STAKE_AMOUNT, staking);
@@ -252,7 +227,7 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
252
227
  });
253
228
 
254
229
  it("should withdraw from deposit and undo rewards if unable to mint rewards", async () => {
255
- const { staking, goodDollarMintBurnWrapper } = await waffle.loadFixture(
230
+ const { staking, goodDollarMintBurnWrapper } = await loadFixture(
256
231
  fixture_ready
257
232
  );
258
233
  const PAUSE_ALL_ROLE = await goodDollarMintBurnWrapper.PAUSE_ALL_ROLE();
@@ -287,7 +262,7 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
287
262
  });
288
263
 
289
264
  it("should withdraw rewards after mint rewards is enabled again", async () => {
290
- const { staking, goodDollarMintBurnWrapper } = await waffle.loadFixture(
265
+ const { staking, goodDollarMintBurnWrapper } = await loadFixture(
291
266
  fixture_ready
292
267
  );
293
268
  const PAUSE_ALL_ROLE = await goodDollarMintBurnWrapper.PAUSE_ALL_ROLE();
@@ -326,18 +301,16 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
326
301
  518400 * 12,
327
302
  61
328
303
  )
329
- ).revertedWith("max two");
304
+ ).revertedWith(/max two/);
330
305
  });
331
306
 
332
307
  it("should not perform upgrade when not deadline", async () => {
333
- const { staking } = await waffle.loadFixture(fixture_upgradeTest);
334
- await expect(staking.upgrade()).to.revertedWith("deadline");
308
+ const { staking } = await loadFixture(fixture_upgradeTest);
309
+ await expect(staking.upgrade()).to.revertedWith(/deadline/);
335
310
  });
336
311
 
337
312
  it("should perform upgrade after deadline", async () => {
338
- const { staking, govStaking } = await waffle.loadFixture(
339
- fixture_upgradeTest
340
- );
313
+ const { staking, govStaking } = await loadFixture(fixture_upgradeTest);
341
314
 
342
315
  const gdaoStakingBefore = await nameService.getAddress("GDAO_STAKING");
343
316
 
@@ -362,7 +335,7 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
362
335
  });
363
336
 
364
337
  it("should set APY and change getRewardsPerBlock only by avatar", async () => {
365
- const { staking } = await waffle.loadFixture(fixture_ready);
338
+ const { staking } = await loadFixture(fixture_ready);
366
339
 
367
340
  const [, gdRewardsPerBlockBeforeSet] = await staking.getRewardsPerBlock();
368
341
  expect(gdRewardsPerBlockBeforeSet.add(1)).to.equal(INTEREST_RATE_5APY_X64);
@@ -383,7 +356,7 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
383
356
  });
384
357
 
385
358
  it("should be pausable by avatar", async () => {
386
- const { staking } = await waffle.loadFixture(fixture_ready);
359
+ const { staking } = await loadFixture(fixture_ready);
387
360
 
388
361
  await runAsAvatarOnly(staking, "pause(bool,uint128)", true, "0");
389
362
  expect(await staking.paused()).to.equal(true);
@@ -402,14 +375,14 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
402
375
  });
403
376
 
404
377
  it("should not be able to stake when paused", async () => {
405
- const { staking } = await waffle.loadFixture(fixture_ready);
378
+ const { staking } = await loadFixture(fixture_ready);
406
379
 
407
380
  await runAsAvatarOnly(staking, "pause(bool,uint128)", true, "0");
408
- await expect(stake(staker2, "1000", staking)).to.revertedWith("pause");
381
+ await expect(stake(staker2, "1000", staking)).to.revertedWith(/pause/);
409
382
  });
410
383
 
411
384
  it("should have max yearly apy of 20%", async () => {
412
- const { staking } = await waffle.loadFixture(fixture_ready);
385
+ const { staking } = await loadFixture(fixture_ready);
413
386
 
414
387
  await runAsAvatarOnly(staking, "setGdApy(uint128)", "1000000029000000000");
415
388
 
@@ -424,7 +397,7 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
424
397
  });
425
398
 
426
399
  it("should handle stakingrewardsfixed apy correctly when transfering staking tokens to new staker", async () => {
427
- const { staking } = await waffle.loadFixture(fixture_staked1year);
400
+ const { staking } = await loadFixture(fixture_staked1year);
428
401
 
429
402
  const RECEIVER_STAKE = 10000;
430
403
  const receiver = staker2;
@@ -480,7 +453,7 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
480
453
  });
481
454
 
482
455
  it("should be able to stake using onTokenTransfer", async () => {
483
- const { staking, goodDollarMintBurnWrapper } = await waffle.loadFixture(
456
+ const { staking, goodDollarMintBurnWrapper } = await loadFixture(
484
457
  fixture_ready
485
458
  );
486
459
 
@@ -499,7 +472,7 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
499
472
  });
500
473
 
501
474
  it("should asure getStaked returns correct value", async () => {
502
- const { staking } = await waffle.loadFixture(fixture_ready);
475
+ const { staking } = await loadFixture(fixture_ready);
503
476
 
504
477
  // correct after stake
505
478
  await stake(staker1, STAKE_AMOUNT, staking);
@@ -522,7 +495,7 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
522
495
  });
523
496
 
524
497
  it("it should return getUserPendingReward G$ value equal to earned() rewards after donation", async () => {
525
- const { staking } = await waffle.loadFixture(fixture_ready);
498
+ const { staking } = await loadFixture(fixture_ready);
526
499
  await stake(staker1, STAKE_AMOUNT, staking);
527
500
  await advanceBlocks(BLOCKS_ONE_YEAR);
528
501
 
@@ -537,7 +510,7 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
537
510
  });
538
511
 
539
512
  it("should return G$ totalRewardsPerShare equal sharePrice()", async () => {
540
- const { staking } = await waffle.loadFixture(fixture_ready);
513
+ const { staking } = await loadFixture(fixture_ready);
541
514
  await stake(staker1, STAKE_AMOUNT, staking);
542
515
  await advanceBlocks(BLOCKS_ONE_YEAR);
543
516
  const stats = await staking.stats();
@@ -559,18 +532,18 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
559
532
  });
560
533
 
561
534
  it("it should not upgrade if no balance or target is not approved by dao", async () => {
562
- const { staking } = await waffle.loadFixture(fixture_ready);
535
+ const { staking } = await loadFixture(fixture_ready);
563
536
  await expect(
564
537
  staking.connect(staker1).upgradeTo(signers[10].address)
565
- ).revertedWith("no balance");
538
+ ).revertedWith(/no balance/);
566
539
  await stake(staker1, STAKE_AMOUNT, staking);
567
540
  await expect(
568
541
  staking.connect(staker1).upgradeTo(signers[10].address)
569
- ).revertedWith("not DAO approved");
542
+ ).revertedWith(/not DAO approved/);
570
543
  });
571
544
 
572
545
  it("it should not upgrade if cant mint rewards", async () => {
573
- const { staking, goodDollarMintBurnWrapper } = await waffle.loadFixture(
546
+ const { staking, goodDollarMintBurnWrapper } = await loadFixture(
574
547
  fixture_ready
575
548
  );
576
549
  await stake(staker1, STAKE_AMOUNT, staking);
@@ -600,11 +573,11 @@ describe("GoodDollarStaking - check fixed APY G$ rewards", () => {
600
573
 
601
574
  await expect(
602
575
  staking.connect(staker1).upgradeTo(signers[10].address)
603
- ).revertedWith("unable to mint rewards");
576
+ ).revertedWith(/unable to mint rewards/);
604
577
  });
605
578
 
606
579
  it("it should upgrade and transfer funds to new staking contract", async () => {
607
- const { staking, goodDollarMintBurnWrapper } = await waffle.loadFixture(
580
+ const { staking, goodDollarMintBurnWrapper } = await loadFixture(
608
581
  fixture_ready
609
582
  );
610
583
  await stake(staker1, STAKE_AMOUNT, staking);
@@ -1,4 +1,4 @@
1
- import { default as hre, ethers, waffle } from "hardhat";
1
+ import { default as hre, ethers } from "hardhat";
2
2
  import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
3
3
  import { BigNumber, Contract, Signer } from "ethers";
4
4
  import { expect } from "chai";
@@ -70,40 +70,26 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
70
70
  // await goodReserve.setAddresses();
71
71
  });
72
72
 
73
- const fixture = async (wallets, provider) => {
74
- const f = await ethers.getContractFactory("GoodDollarStakingMock");
75
-
76
- wallets = provider.getWallets();
77
- const staking = (await waffle.deployContract(
78
- wallets[0],
79
- {
80
- abi: JSON.parse(
81
- f.interface.format(FormatTypes.json) as string
82
- ) as any[],
83
- bytecode: f.bytecode
84
- },
85
- [nameService.address, BN.from("1000000007735630000"), 518400 * 12, 30]
86
- )) as GoodDollarStaking;
73
+ const fixture = async () => {
74
+ const staking = (await ethers.deployContract("GoodDollarStakingMock", [
75
+ nameService.address,
76
+ BN.from("1000000007735630000"),
77
+ 518400 * 12,
78
+ 30
79
+ ])) as GoodDollarStaking;
87
80
 
88
81
  await staking.upgrade();
89
82
 
90
83
  return { staking };
91
84
  };
92
85
 
93
- const fixture_ready = async (wallets, provider) => {
94
- const f = await ethers.getContractFactory("GoodDollarStakingMock");
95
-
96
- wallets = provider.getWallets();
97
- const staking = (await waffle.deployContract(
98
- wallets[0],
99
- {
100
- abi: JSON.parse(
101
- f.interface.format(FormatTypes.json) as string
102
- ) as any[],
103
- bytecode: f.bytecode
104
- },
105
- [nameService.address, BN.from("1000000007735630000"), 518400 * 12, 30]
106
- )) as GoodDollarStaking;
86
+ const fixture_ready = async () => {
87
+ const staking = (await ethers.deployContract("GoodDollarStakingMock", [
88
+ nameService.address,
89
+ BN.from("1000000007735630000"),
90
+ 518400 * 12,
91
+ 30
92
+ ])) as GoodDollarStaking;
107
93
 
108
94
  await staking.upgrade();
109
95
 
@@ -112,20 +98,13 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
112
98
  return { staking };
113
99
  };
114
100
 
115
- const fixture_upgradeTest = async (wallets, provider) => {
116
- const f = await ethers.getContractFactory("GoodDollarStaking");
117
-
118
- wallets = provider.getWallets();
119
- const staking = (await waffle.deployContract(
120
- wallets[0],
121
- {
122
- abi: JSON.parse(
123
- f.interface.format(FormatTypes.json) as string
124
- ) as any[],
125
- bytecode: f.bytecode
126
- },
127
- [nameService.address, BN.from("1000000007735630000"), 518400 * 12, 30]
128
- )) as GoodDollarStaking;
101
+ const fixture_upgradeTest = async () => {
102
+ const staking = (await ethers.deployContract("GoodDollarStaking", [
103
+ nameService.address,
104
+ BN.from("1000000007735630000"),
105
+ 518400 * 12,
106
+ 30
107
+ ])) as GoodDollarStaking;
129
108
 
130
109
  //TODO: register as scheme here
131
110
 
@@ -133,7 +112,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
133
112
  };
134
113
 
135
114
  it("Should not revert withdraw but also not mint GOOD reward when staking contract is not minter", async () => {
136
- const { staking } = await waffle.loadFixture(fixture);
115
+ const { staking } = await loadFixture(fixture);
137
116
  await goodDollar.mint(founder.address, "100");
138
117
  await goodDollar.approve(staking.address, "100");
139
118
  await staking.stake("100");
@@ -145,7 +124,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
145
124
  });
146
125
 
147
126
  it("Should be able to mint rewards after set GDAO staking contract", async () => {
148
- const { staking } = await waffle.loadFixture(fixture_ready);
127
+ const { staking } = await loadFixture(fixture_ready);
149
128
 
150
129
  await goodDollar.mint(founder.address, "100");
151
130
  await goodDollar.approve(staking.address, "100");
@@ -162,7 +141,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
162
141
  });
163
142
 
164
143
  it("Avatar should be able to change rewards per block", async () => {
165
- const { staking } = await waffle.loadFixture(fixture_ready);
144
+ const { staking } = await loadFixture(fixture_ready);
166
145
 
167
146
  const ictrl = await ethers.getContractAt(
168
147
  "Controller",
@@ -198,7 +177,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
198
177
  });
199
178
 
200
179
  it("Should be able to withdraw rewards without withdraw stake", async () => {
201
- const { staking } = await waffle.loadFixture(fixture_ready);
180
+ const { staking } = await loadFixture(fixture_ready);
202
181
  const rewardsPerBlock = (await staking.getRewardsPerBlock())[0];
203
182
  await goodDollar.mint(founder.address, "100");
204
183
  await goodDollar.approve(staking.address, "100");
@@ -221,7 +200,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
221
200
  });
222
201
 
223
202
  it("Should be able to withdraw transferred stakes", async () => {
224
- const { staking } = await waffle.loadFixture(fixture_ready);
203
+ const { staking } = await loadFixture(fixture_ready);
225
204
 
226
205
  await goodDollar.mint(staker.address, "100");
227
206
  await goodDollar.connect(staker).approve(staking.address, "100");
@@ -240,7 +219,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
240
219
  });
241
220
 
242
221
  it("should not be able to withdraw after they send their stake to somebody else", async () => {
243
- const { staking } = await waffle.loadFixture(fixture_ready);
222
+ const { staking } = await loadFixture(fixture_ready);
244
223
 
245
224
  await goodDollar.mint(staker.address, "100");
246
225
  await goodDollar.connect(staker).approve(staking.address, "100");
@@ -251,12 +230,12 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
251
230
  .transfer(founder.address, await staking.balanceOf(staker.address));
252
231
 
253
232
  await expect(staking.connect(staker).withdrawStake(1)).revertedWith(
254
- "no balance"
233
+ /no balance/
255
234
  );
256
235
  });
257
236
 
258
237
  it("it should distribute reward with correct precision", async () => {
259
- const { staking } = await waffle.loadFixture(fixture_ready);
238
+ const { staking } = await loadFixture(fixture_ready);
260
239
 
261
240
  const ictrl = await ethers.getContractAt(
262
241
  "Controller",
@@ -290,7 +269,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
290
269
  });
291
270
 
292
271
  it("it should not generate rewards when rewards per block set to 0", async () => {
293
- const { staking } = await waffle.loadFixture(fixture_ready);
272
+ const { staking } = await loadFixture(fixture_ready);
294
273
 
295
274
  const ictrl = await ethers.getContractAt(
296
275
  "Controller",
@@ -321,7 +300,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
321
300
  });
322
301
 
323
302
  it("it should return productivity values correctly", async () => {
324
- const { staking } = await waffle.loadFixture(fixture_ready);
303
+ const { staking } = await loadFixture(fixture_ready);
325
304
  await goodDollar.mint(founder.address, "100");
326
305
  await goodDollar.approve(staking.address, "100");
327
306
  await staking.stake("100");
@@ -336,7 +315,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
336
315
  });
337
316
 
338
317
  it("it should return earned rewards with pending ones properly for a short period", async () => {
339
- const { staking } = await waffle.loadFixture(fixture_ready);
318
+ const { staking } = await loadFixture(fixture_ready);
340
319
  const rewardsPerBlock = (await staking.getRewardsPerBlock())[0];
341
320
  await goodDollar.mint(founder.address, "100");
342
321
  await goodDollar.approve(staking.address, "100");
@@ -354,7 +333,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
354
333
  });
355
334
 
356
335
  it("Accumulated per share has enough precision when reward << totalproductivity", async () => {
357
- const { staking } = await waffle.loadFixture(fixture_ready);
336
+ const { staking } = await loadFixture(fixture_ready);
358
337
 
359
338
  const rewardsPerBlock = (await staking.getRewardsPerBlock())[0];
360
339
  await goodDollar.mint(founder.address, "100000000000000"); // 1 trillion gd stake
@@ -376,7 +355,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
376
355
  });
377
356
 
378
357
  it("user receive fractional gdao properly when his stake << totalProductivity", async () => {
379
- const { staking } = await waffle.loadFixture(fixture_ready);
358
+ const { staking } = await loadFixture(fixture_ready);
380
359
 
381
360
  const rewardsPerBlock = (await staking.getRewardsPerBlock())[0];
382
361
  await goodDollar.mint(founder.address, "800"); // 8gd
@@ -426,7 +405,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
426
405
  });
427
406
 
428
407
  it("it should be able to tranfer tokens when user approve", async () => {
429
- const { staking } = await waffle.loadFixture(fixture_ready);
408
+ const { staking } = await loadFixture(fixture_ready);
430
409
 
431
410
  await goodDollar.mint(founder.address, "100");
432
411
  await goodDollar.approve(staking.address, "100");
@@ -453,7 +432,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
453
432
  });
454
433
 
455
434
  it("it should return staker data", async () => {
456
- const { staking } = await waffle.loadFixture(fixture_ready);
435
+ const { staking } = await loadFixture(fixture_ready);
457
436
 
458
437
  await goodDollar.mint(staker2.address, "200");
459
438
  await goodDollar.connect(staker2).approve(staking.address, "200");
@@ -498,7 +477,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
498
477
  });
499
478
 
500
479
  it("it should return pendingRewards equal zero after withdraw", async () => {
501
- const { staking } = await waffle.loadFixture(fixture_ready);
480
+ const { staking } = await loadFixture(fixture_ready);
502
481
 
503
482
  await goodDollar.mint(staker.address, "200");
504
483
  await goodDollar.connect(staker).approve(staking.address, "200");
@@ -530,7 +509,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
530
509
  });
531
510
 
532
511
  it("it should calculate accumulated rewards per share correctly", async () => {
533
- const { staking } = await waffle.loadFixture(fixture_ready);
512
+ const { staking } = await loadFixture(fixture_ready);
534
513
 
535
514
  await goodDollar.mint(founder.address, "200");
536
515
  await goodDollar.mint(staker.address, "200");
@@ -602,33 +581,33 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
602
581
  });
603
582
 
604
583
  it("Staking tokens should be 18 decimals", async () => {
605
- const { staking } = await waffle.loadFixture(fixture_ready);
584
+ const { staking } = await loadFixture(fixture_ready);
606
585
 
607
586
  const decimals = await staking.decimals();
608
587
  expect(decimals.toString()).to.be.equal("18");
609
588
  });
610
589
 
611
590
  it("Stake amount should be positive", async () => {
612
- const { staking } = await waffle.loadFixture(fixture_ready);
591
+ const { staking } = await loadFixture(fixture_ready);
613
592
 
614
- await expect(staking.stake("0")).revertedWith("Cannot stake 0");
593
+ await expect(staking.stake("0")).revertedWith(/Cannot stake 0/);
615
594
  });
616
595
 
617
596
  it("It should approve stake amount in order to stake", async () => {
618
- const { staking } = await waffle.loadFixture(fixture_ready);
597
+ const { staking } = await loadFixture(fixture_ready);
619
598
 
620
599
  await expect(staking.stake(ethers.utils.parseEther("10000000"))).to
621
600
  .reverted;
622
601
  });
623
602
 
624
603
  it("Withdraw 0 should succeed", async () => {
625
- const { staking } = await waffle.loadFixture(fixture_ready);
604
+ const { staking } = await loadFixture(fixture_ready);
626
605
 
627
606
  await expect(staking.withdrawStake("0")).to.not.reverted;
628
607
  });
629
608
 
630
609
  it("Withdraw uint max should withdraw everything", async () => {
631
- const { staking } = await waffle.loadFixture(fixture_ready);
610
+ const { staking } = await loadFixture(fixture_ready);
632
611
 
633
612
  await goodDollar.mint(staker2.address, "200");
634
613
  await goodDollar.connect(staker2).approve(staking.address, "200");
@@ -645,7 +624,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
645
624
  });
646
625
 
647
626
  it("Should use overriden _transfer that handles productivity when using transferFrom which is defined in super erc20 contract", async () => {
648
- const { staking } = await waffle.loadFixture(fixture_ready);
627
+ const { staking } = await loadFixture(fixture_ready);
649
628
  await expect(
650
629
  staking.transferFrom(
651
630
  founder.address,
@@ -656,7 +635,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
656
635
  });
657
636
 
658
637
  it("it should get rewards for previous stakes when stake new amount of tokens", async () => {
659
- const { staking } = await waffle.loadFixture(fixture_ready);
638
+ const { staking } = await loadFixture(fixture_ready);
660
639
 
661
640
  const rewardsPerBlock = (await staking.getRewardsPerBlock())[0];
662
641
  await goodDollar.mint(founder.address, "200");
@@ -681,7 +660,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
681
660
  });
682
661
 
683
662
  it("it should distribute rewards properly when there are multiple stakers", async () => {
684
- const { staking } = await waffle.loadFixture(fixture_ready);
663
+ const { staking } = await loadFixture(fixture_ready);
685
664
 
686
665
  const rewardsPerBlock = (await staking.getRewardsPerBlock())[0];
687
666
  const stakingAmount = BN.from("100");
@@ -832,7 +811,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
832
811
  });
833
812
 
834
813
  it("it should get staking reward even when stake amount is low", async () => {
835
- const { staking } = await waffle.loadFixture(fixture_ready);
814
+ const { staking } = await loadFixture(fixture_ready);
836
815
 
837
816
  const rewardsPerBlock = (await staking.getRewardsPerBlock())[0];
838
817
  const stakingAmount = BN.from("10000");
@@ -891,7 +870,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
891
870
  });
892
871
 
893
872
  it("it should mint rewards properly when withdrawRewards", async () => {
894
- const { staking } = await waffle.loadFixture(fixture_ready);
873
+ const { staking } = await loadFixture(fixture_ready);
895
874
  await goodDollar.mint(founder.address, "200");
896
875
  const rewardsPerBlock = (await staking.getRewardsPerBlock())[0];
897
876
  await goodDollar.approve(staking.address, "200");
@@ -912,7 +891,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
912
891
  });
913
892
 
914
893
  it("it should not overmint rewards when staker withdraw their rewards", async () => {
915
- const { staking } = await waffle.loadFixture(fixture_ready);
894
+ const { staking } = await loadFixture(fixture_ready);
916
895
 
917
896
  const overmintTesterFactory = await ethers.getContractFactory(
918
897
  "OverMintTester"
@@ -962,7 +941,7 @@ describe("GoodDollarStaking - check GOOD rewards based on GovernanceStaking.test
962
941
  });
963
942
 
964
943
  it("it should accrue previous rewards based on previous monthly rate on monthly rewards rate change to 0", async () => {
965
- const { staking } = await waffle.loadFixture(fixture_ready);
944
+ const { staking } = await loadFixture(fixture_ready);
966
945
 
967
946
  const ictrl = await ethers.getContractAt(
968
947
  "Controller",
@@ -588,7 +588,7 @@ describe("GovernanceStaking - staking with GD and get Rewards in GDAO", () => {
588
588
 
589
589
  it("Withdraw 0 should withdraw everything", async () => {
590
590
  await expect(governanceStaking.withdrawStake("0")).to.revertedWith(
591
- "positive amount"
591
+ /positive amount/
592
592
  );
593
593
  });
594
594
 
@@ -48,8 +48,8 @@ describe("Reputation", () => {
48
48
  await reputation.mint(signers[1].address, 1000);
49
49
 
50
50
  // only the owner can call mint
51
- await expect(reputation.connect(signers[2]).mint(signers[2], 1000)).to
52
- .reverted;
51
+ await expect(reputation.connect(signers[2]).mint(signers[2].address, 1000))
52
+ .to.reverted;
53
53
 
54
54
  let account0Rep = await reputation.balanceOfLocal(signers[0].address);
55
55
  let account1Rep = await reputation.balanceOfLocal(signers[1].address);
package/test/helpers.ts CHANGED
@@ -357,7 +357,7 @@ export const createDAO = async (tokenType: "super" | "regular" = "super") => {
357
357
  const functionName = functionAbi.substring(0, funcNameEnd);
358
358
 
359
359
  await expect(contract[functionAbi](...parameters)).to.revertedWith(
360
- "avatar"
360
+ /avatar/
361
361
  );
362
362
  const encoded = contract.interface.encodeFunctionData(functionName, [
363
363
  ...parameters