@gooddollar/goodprotocol 1.0.29-beta.0 → 1.0.29-beta.2
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.
- package/artifacts/abis/AdminWallet.min.json +1 -1
- package/artifacts/abis/BulkProof.min.json +1 -1
- package/artifacts/abis/DistributionBridgeMock.min.json +1 -0
- package/artifacts/abis/DistributionHelper.min.json +1 -0
- package/artifacts/abis/DistributionHelperTest.min.json +1 -0
- package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -0
- package/artifacts/abis/ERC20.min.json +1 -1
- package/artifacts/abis/Faucet.min.json +1 -0
- package/artifacts/abis/GoodDollarMintBurnWrapper.min.json +1 -0
- package/artifacts/abis/GoodDollarStaking.min.json +1 -0
- package/artifacts/abis/GoodDollarStakingMock.min.json +1 -0
- package/artifacts/abis/GoodReserveCDai.min.json +1 -1
- package/artifacts/abis/IERC2917.min.json +1 -1
- package/artifacts/abis/IGoodDollar.min.json +1 -1
- package/artifacts/abis/IGoodDollarStakingTest.min.json +1 -0
- package/artifacts/abis/IGovernanceStaking.min.json +1 -0
- package/artifacts/abis/IIdentity.min.json +1 -1
- package/artifacts/abis/IIdentityV2.min.json +1 -0
- package/artifacts/abis/IMultichainRouter.min.json +1 -0
- package/artifacts/abis/IRouter.min.json +1 -0
- package/artifacts/abis/IWrapper.min.json +1 -0
- package/artifacts/abis/IdentityV2.min.json +1 -0
- package/artifacts/abis/InvitesV2.min.json +1 -0
- package/artifacts/abis/Math64x64.min.json +1 -0
- package/artifacts/abis/MultichainBridgeHelper.min.json +1 -0
- package/artifacts/abis/MultichainRouterMock.min.json +1 -0
- package/artifacts/abis/OverMintTester.min.json +1 -1
- package/artifacts/abis/PausableControl.min.json +1 -0
- package/artifacts/abis/RewardsMinter.min.json +1 -0
- package/artifacts/abis/StakingMockFixedAPY.min.json +1 -0
- package/artifacts/abis/StakingRewardsFixedAPY.min.json +1 -0
- package/artifacts/abis/TokenOperation.min.json +1 -0
- package/artifacts/abis/UBIScheme.min.json +1 -1
- package/artifacts/abis/cERC20.min.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ERC20.json +13 -0
- package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IERC2917.json +13 -0
- package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodDollar.json +39 -0
- package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IIdentity.json +51 -0
- package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
- package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +281 -0
- package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +4 -0
- package/artifacts/contracts/Interfaces.sol/IMultichainRouter.json +67 -0
- package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/cERC20.json +13 -0
- package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +4 -0
- package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +684 -0
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +2 -2
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
- package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
- package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +4 -0
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +1335 -0
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +4 -0
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.json +24 -0
- package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +4 -0
- package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.json +35 -0
- package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +2 -2
- package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
- package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
- package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +4 -0
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +1000 -0
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +2 -2
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +4 -0
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +586 -0
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +4 -0
- package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +152 -0
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +4 -0
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +662 -0
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +4 -0
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +680 -0
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +4 -0
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +1335 -0
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
- package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +4 -0
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.json +59 -0
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +4 -0
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +81 -0
- package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +4 -0
- package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.json +49 -0
- package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +4 -4
- package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +4 -0
- package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +682 -0
- package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
- package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +4 -0
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +662 -0
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +75 -35
- package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
- package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
- package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -2
- package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
- package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
- package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
- package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
- package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
- package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
- package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +4 -0
- package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +10 -0
- package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +4 -0
- package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.json +268 -0
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +15 -22
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +76 -56
- package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
- package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
- package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +3 -34
- package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
- package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
- package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
- package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +4 -0
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +1263 -0
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +4 -0
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.json +59 -0
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +4 -0
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.json +69 -0
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +4 -0
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +10 -0
- package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +4 -0
- package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +79 -0
- package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
- package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
- package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
- package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
- package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
- package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
- package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
- package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
- package/contracts/Interfaces.sol +46 -0
- package/contracts/fuseFaucet/Faucet.sol +245 -0
- package/contracts/governance/GoodDollarStaking.sol +524 -0
- package/contracts/governance/MultiBaseGovernanceShareField.sol +1 -0
- package/contracts/identity/IdentityV2.sol +434 -0
- package/contracts/invite/InvitesV2.sol +316 -0
- package/contracts/mocks/DistributionBridgeMock.sol +50 -0
- package/contracts/mocks/DistributionHelperTest.sol +22 -0
- package/contracts/mocks/GoodDollarStakingMock.sol +24 -0
- package/contracts/mocks/MultichainRouterMock.sol +38 -0
- package/contracts/mocks/OverMintTester.sol +39 -25
- package/contracts/mocks/StakingMockFixedAPY.sol +78 -0
- package/contracts/reserve/DistributionHelper.sol +142 -0
- package/contracts/reserve/GoodReserveCDai.sol +95 -41
- package/contracts/staking/utils/Math64X64.sol +268 -0
- package/contracts/staking/utils/StakingRewardsFixedAPY.sol +336 -0
- package/contracts/ubi/UBIScheme.sol +45 -40
- package/contracts/utils/AdminWallet.sol +42 -11
- package/contracts/utils/BulkProof.sol +10 -10
- package/contracts/utils/GoodDollarMintBurnWrapper.sol +638 -0
- package/contracts/utils/MultichainBridgeHelper.sol +39 -0
- package/hardhat.config.ts +21 -5
- package/package.json +9 -5
- package/patches/@openzeppelin+hardhat-upgrades+1.7.0.patch.depracate +67 -0
- package/releases/deploy-settings.json +36 -1
- package/releases/deployment.json +103 -55
- package/releases/olddao.json +1 -1
- package/scripts/analytics/activeUsersCount.ts +65 -0
- package/scripts/analytics/activeWalletsStats.ts +150 -0
- package/scripts/analytics/claimIncidentStats.ts +117 -0
- package/scripts/analytics/faucetStats.ts +103 -0
- package/scripts/analytics/goodHolders.ts +50 -0
- package/scripts/{misc → analytics}/goodgiveback.ts +0 -0
- package/scripts/governance/airdropCalculation.ts +1 -0
- package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +45 -0
- package/scripts/multichain-deploy/{basicdao-deploy.ts → 1_basicdao-deploy.ts} +75 -56
- package/scripts/multichain-deploy/2_helpers-deploy.ts +143 -0
- package/scripts/multichain-deploy/3_gdSavings-deploy.ts +246 -0
- package/scripts/multichain-deploy/4_ubi-deploy.ts +121 -0
- package/scripts/multichain-deploy/5_gov-deploy.ts +123 -0
- package/scripts/multichain-deploy/helpers.ts +72 -8
- package/scripts/multichain-deploy/multichainWrapper-deploy.ts +56 -0
- package/scripts/multichain-deploy/verifyEtherscan.ts +84 -0
- package/scripts/test/localOldDaoDeploy.ts +10 -3
- package/scripts/upgrades/identity-upgrade.ts +153 -0
- package/scripts/upgrades/nonubiDistribution-deploy.ts +167 -0
- package/scripts/voltageswaps.ts +47 -0
- package/test/governance/ClaimersDistribution.test.ts +1 -1
- package/test/governance/GoodDollarStaking.gd.test.ts +559 -0
- package/test/governance/GoodDollarStaking.good.test.ts +998 -0
- package/test/governance/GovernanceStaking.test.ts +43 -0
- package/test/helpers.ts +21 -20
- package/test/reserve/DistributionHelper.test.ts +394 -0
- package/test/reserve/GoodReserveCDai.distribution.test.ts +296 -0
- package/test/reserve/GoodReserveCDai.gdx.test.ts +21 -16
- package/test/reserve/GoodReserveCDai.pause.test.ts +116 -0
- package/test/staking/StakingRewardsFixedAPY.test.ts +900 -0
- package/test/ubi/UBIScheme.test.ts +30 -30
- package/test/ubi/UBISchemeCycle.test.ts +9 -7
- package/test/utils/AdminWallet.test.ts +40 -13
- package/test/utils/GoodDollarMintBurnWrapper.test.ts +796 -0
- package/tsconfig.json +4 -9
- package/types/AccessControl.ts +361 -0
- package/types/AdminWallet.ts +124 -113
- package/types/CERC20.ts +25 -0
- package/types/DistributionBridgeMock.ts +251 -0
- package/types/DistributionHelper.ts +908 -0
- package/types/DistributionHelperTest.ts +909 -0
- package/types/DistributionHelperTestHelper.ts +945 -0
- package/types/ERC165.ts +104 -0
- package/types/ERC20.ts +101 -49
- package/types/Faucet.ts +1014 -0
- package/types/GoodDollarMintBurnWrapper.ts +1806 -0
- package/types/GoodDollarStaking.ts +1889 -0
- package/types/GoodDollarStakingMock.ts +1889 -0
- package/types/GoodReserveCDai.ts +90 -55
- package/types/IAccessControl.ts +306 -0
- package/types/IERC1271.ts +109 -0
- package/types/IERC165.ts +104 -0
- package/types/IERC20.ts +300 -0
- package/types/IERC20Metadata.ts +339 -0
- package/types/IERC2917.ts +25 -0
- package/types/IGoodDollar.ts +54 -0
- package/types/IGoodDollarStakingTest.ts +160 -0
- package/types/{BulkProof.ts → IGovernanceStaking.ts} +15 -28
- package/types/IIdentity.ts +75 -0
- package/types/IIdentityV2.ts +526 -0
- package/types/IMultichainRouter.ts +166 -0
- package/types/IRouter.ts +143 -0
- package/types/IWrapper.ts +143 -0
- package/types/IdentityV2.ts +1612 -0
- package/types/InvitesV2.ts +933 -0
- package/types/MultichainBridgeHelper.ts +170 -0
- package/types/MultichainRouterMock.ts +141 -0
- package/types/Pausable.ts +103 -0
- package/types/PausableControl.ts +125 -0
- package/types/RewardsMinter.ts +107 -0
- package/types/StakingMockFixedAPY.ts +995 -0
- package/types/StakingRewardsFixedAPY.ts +428 -0
- package/types/UBIScheme.ts +19 -40
- package/types/factories/AaveStakingFactory__factory.ts +1 -1
- package/types/factories/AccessControl__factory.ts +227 -0
- package/types/factories/AdminWallet__factory.ts +75 -55
- package/types/factories/BaseShareFieldV2__factory.ts +1 -1
- package/types/factories/BaseShareField__factory.ts +1 -1
- package/types/factories/CERC20__factory.ts +13 -0
- package/types/factories/ClaimersDistribution__factory.ts +1 -1
- package/types/factories/CompoundStakingFactory__factory.ts +1 -1
- package/types/factories/CompoundVotingMachine__factory.ts +1 -1
- package/types/factories/DAOContract__factory.ts +1 -1
- package/types/factories/DAOUpgradeableContract__factory.ts +1 -1
- package/types/factories/DistributionBridgeMock__factory.ts +207 -0
- package/types/factories/DistributionHelperTestHelper__factory.ts +737 -0
- package/types/factories/DistributionHelperTest__factory.ts +717 -0
- package/types/factories/DistributionHelper__factory.ts +713 -0
- package/types/factories/DonationsStaking__factory.ts +1 -1
- package/types/factories/ERC165__factory.ts +39 -0
- package/types/factories/ERC20__factory.ts +13 -0
- package/types/factories/ExchangeHelper__factory.ts +1 -1
- package/types/factories/Faucet__factory.ts +729 -0
- package/types/factories/FuseFaucet__factory.ts +1 -1
- package/types/factories/FuseStakingV3__factory.ts +1 -1
- package/types/factories/GReputation__factory.ts +1 -1
- package/types/factories/GoodAaveStakingV2__factory.ts +1 -1
- package/types/factories/GoodAaveStaking__factory.ts +1 -1
- package/types/factories/GoodCompoundStakingTest__factory.ts +1 -1
- package/types/factories/GoodCompoundStakingV2__factory.ts +1 -1
- package/types/factories/GoodCompoundStaking__factory.ts +1 -1
- package/types/factories/GoodDollarMintBurnWrapper__factory.ts +1318 -0
- package/types/factories/GoodDollarStakingMock__factory.ts +1417 -0
- package/types/factories/GoodDollarStaking__factory.ts +1413 -0
- package/types/factories/GoodFundManagerTest__factory.ts +1 -1
- package/types/factories/GoodFundManager__factory.ts +1 -1
- package/types/factories/GoodMarketMaker__factory.ts +1 -1
- package/types/factories/GoodReserveCDai__factory.ts +74 -34
- package/types/factories/GovernanceStaking__factory.ts +1 -1
- package/types/factories/IAccessControl__factory.ts +198 -0
- package/types/factories/IERC1271__factory.ts +47 -0
- package/types/factories/IERC165__factory.ts +42 -0
- package/types/factories/IERC20Metadata__factory.ts +248 -0
- package/types/factories/IERC20__factory.ts +203 -0
- package/types/factories/IERC2917__factory.ts +13 -0
- package/types/factories/IGoodDollarStakingTest__factory.ts +68 -0
- package/types/factories/IGoodDollar__factory.ts +39 -0
- package/types/factories/IGovernanceStaking__factory.ts +39 -0
- package/types/factories/IIdentityV2__factory.ts +293 -0
- package/types/factories/IIdentity__factory.ts +51 -0
- package/types/factories/IMultichainRouter__factory.ts +82 -0
- package/types/factories/IRouter__factory.ts +71 -0
- package/types/factories/IWrapper__factory.ts +71 -0
- package/types/factories/IdentityV2__factory.ts +1048 -0
- package/types/factories/InvitesV1__factory.ts +1 -1
- package/types/factories/InvitesV2__factory.ts +634 -0
- package/types/factories/MultichainBridgeHelper__factory.ts +134 -0
- package/types/factories/MultichainRouterMock__factory.ts +141 -0
- package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
- package/types/factories/OverMintTester__factory.ts +3 -3
- package/types/factories/PausableControl__factory.ts +84 -0
- package/types/factories/Pausable__factory.ts +62 -0
- package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
- package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
- package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
- package/types/factories/ProtocolUpgrade__factory.ts +1 -1
- package/types/factories/ReputationTestHelper__factory.ts +1 -1
- package/types/factories/Reputation__factory.ts +1 -1
- package/types/factories/RewardsMinter__factory.ts +47 -0
- package/types/factories/StakersDistribution__factory.ts +1 -1
- package/types/factories/StakingMockFixedAPY__factory.ts +745 -0
- package/types/factories/StakingRewardsFixedAPY__factory.ts +287 -0
- package/types/factories/SwapHelperTest__factory.ts +1 -1
- package/types/factories/UBIScheme__factory.ts +14 -21
- package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
- package/types/factories/UpgradableMock2__factory.ts +1 -1
- package/types/factories/UpgradableMock3__factory.ts +1 -1
- package/types/factories/UpgradableMock4__factory.ts +1 -1
- package/types/factories/UpgradableMock__factory.ts +1 -1
- package/types/hardhat.d.ts +279 -9
- package/types/index.ts +62 -4
- package/yarn.lock +184 -108
- package/types/factories/BulkProof__factory.ts +0 -89
|
@@ -127,13 +127,11 @@ describe("UBIScheme", () => {
|
|
|
127
127
|
|
|
128
128
|
it("should return zero entitlement before UBI started", async () => {
|
|
129
129
|
let blockTimestamp = (await ethers.provider.getBlock("latest")).timestamp;
|
|
130
|
-
const timeInDay =
|
|
130
|
+
const timeInDay = blockTimestamp % ONE_DAY;
|
|
131
131
|
// Move to before 12pm of the current day
|
|
132
132
|
if (timeInDay > 12 * ONE_HOUR) {
|
|
133
133
|
blockTimestamp += 12 * ONE_HOUR;
|
|
134
|
-
await ethers.provider.send("evm_setNextBlockTimestamp", [
|
|
135
|
-
blockTimestamp
|
|
136
|
-
]);
|
|
134
|
+
await ethers.provider.send("evm_setNextBlockTimestamp", [blockTimestamp]);
|
|
137
135
|
await ethers.provider.send("evm_mine", []);
|
|
138
136
|
}
|
|
139
137
|
const ubiNew = await deployNewUbi();
|
|
@@ -200,24 +198,26 @@ describe("UBIScheme", () => {
|
|
|
200
198
|
expect(error.message).to.have.string("Only UBIScheme can call this method");
|
|
201
199
|
});
|
|
202
200
|
|
|
203
|
-
it("should estimate next daily UBI to
|
|
201
|
+
it("should estimate next daily UBI to according to min value when no claimers and not using first claim pool", async () => {
|
|
204
202
|
const nextDailyUBIBefore = await ubi.estimateNextDailyUBI();
|
|
205
|
-
const
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
);
|
|
203
|
+
const minActiveUsers = await ubi.minActiveUsers();
|
|
204
|
+
const cycleLength = await ubi.cycleLength();
|
|
205
|
+
const pool = await goodDollar.balanceOf(ubi.address);
|
|
206
|
+
const dailyPool = pool.div(cycleLength);
|
|
207
|
+
const defaultDailyClaim = dailyPool.div(minActiveUsers);
|
|
208
|
+
let encodedCall = ubi.interface.encodeFunctionData("setUseFirstClaimPool", [
|
|
209
|
+
false
|
|
210
|
+
]);
|
|
210
211
|
await genericCall(ubi.address, encodedCall);
|
|
211
212
|
const nextDailyUBIAfter = await ubi.estimateNextDailyUBI();
|
|
212
213
|
|
|
213
214
|
expect(nextDailyUBIBefore.eq(0));
|
|
214
215
|
expect(nextDailyUBIAfter.gt(nextDailyUBIBefore));
|
|
215
|
-
expect(nextDailyUBIAfter.eq(
|
|
216
|
+
expect(nextDailyUBIAfter.eq(defaultDailyClaim));
|
|
216
217
|
|
|
217
|
-
encodedCall = ubi.interface.encodeFunctionData(
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
);
|
|
218
|
+
encodedCall = ubi.interface.encodeFunctionData("setUseFirstClaimPool", [
|
|
219
|
+
true
|
|
220
|
+
]);
|
|
221
221
|
await genericCall(ubi.address, encodedCall);
|
|
222
222
|
});
|
|
223
223
|
|
|
@@ -315,8 +315,8 @@ describe("UBIScheme", () => {
|
|
|
315
315
|
await genericCall(ubi.address, encodedCall); // we should set cyclelength to one cause this tests was implemented according to it
|
|
316
316
|
const currentDay = await ubi.currentDayInCycle().then(_ => _.toNumber());
|
|
317
317
|
await increaseTime(ONE_DAY);
|
|
318
|
-
await goodDollar.mint(avatar, "
|
|
319
|
-
//ubi will have 902GD in pool so daily ubi is now
|
|
318
|
+
await goodDollar.mint(avatar, "300002");
|
|
319
|
+
//ubi will have 902GD in pool so daily ubi is now 300002/1(cycle)/1000(min claimers) = 300
|
|
320
320
|
await ubi.connect(claimer1).claim();
|
|
321
321
|
await increaseTime(ONE_DAY);
|
|
322
322
|
await goodDollar.mint(avatar, "1");
|
|
@@ -326,8 +326,8 @@ describe("UBIScheme", () => {
|
|
|
326
326
|
let avatarBalance = await goodDollar.balanceOf(avatar);
|
|
327
327
|
let claimer1Balance = await goodDollar.balanceOf(claimer1.address);
|
|
328
328
|
expect(avatarBalance.toString()).to.be.equal("0");
|
|
329
|
-
// 300 GD from first day and
|
|
330
|
-
expect(claimer1Balance.toString()).to.be.equal("
|
|
329
|
+
// 300 GD from first day and 299 (30002 - 300 /1 / 1000) from the second day claimed in this test
|
|
330
|
+
expect(claimer1Balance.toString()).to.be.equal("599");
|
|
331
331
|
});
|
|
332
332
|
|
|
333
333
|
it("should return the reward value for entitlement user", async () => {
|
|
@@ -519,11 +519,11 @@ describe("UBIScheme", () => {
|
|
|
519
519
|
});
|
|
520
520
|
|
|
521
521
|
it("distribute formula should return correct value", async () => {
|
|
522
|
-
await goodDollar.mint(avatar, "
|
|
522
|
+
await goodDollar.mint(avatar, "20000");
|
|
523
523
|
await increaseTime(ONE_DAY);
|
|
524
524
|
let ubiBalance = await goodDollar.balanceOf(ubi.address);
|
|
525
525
|
let avatarBalance = await goodDollar.balanceOf(avatar);
|
|
526
|
-
let activeUsersCount = await ubi.activeUsersCount();
|
|
526
|
+
let activeUsersCount = await ubi.minActiveUsers(); // await ubi.activeUsersCount();
|
|
527
527
|
let claimer4BalanceBefore = await goodDollar.balanceOf(claimer2.address);
|
|
528
528
|
await ubi.connect(claimer2).claim();
|
|
529
529
|
let claimer4BalanceAfter = await goodDollar.balanceOf(claimer2.address);
|
|
@@ -539,7 +539,7 @@ describe("UBIScheme", () => {
|
|
|
539
539
|
await increaseTime(ONE_DAY);
|
|
540
540
|
let ubiBalance = await goodDollar.balanceOf(ubi.address);
|
|
541
541
|
let avatarBalance = await goodDollar.balanceOf(avatar);
|
|
542
|
-
let activeUsersCount = await ubi.activeUsersCount();
|
|
542
|
+
let activeUsersCount = await ubi.minActiveUsers(); // await ubi.activeUsersCount();
|
|
543
543
|
let claimer4BalanceBefore = await goodDollar.balanceOf(claimer2.address);
|
|
544
544
|
await ubi.connect(claimer2).claim();
|
|
545
545
|
let claimer4BalanceAfter = await goodDollar.balanceOf(claimer2.address);
|
|
@@ -565,12 +565,12 @@ describe("UBIScheme", () => {
|
|
|
565
565
|
let claimer1Balance1 = await goodDollar.balanceOf(claimer1.address);
|
|
566
566
|
// regular claim
|
|
567
567
|
await ubi.connect(claimer1).claim();
|
|
568
|
-
const ubiGdBalance = await goodDollar.balanceOf(ubi.address);
|
|
569
568
|
let claimer1Balance2 = await goodDollar.balanceOf(claimer1.address);
|
|
570
|
-
|
|
571
|
-
|
|
569
|
+
let dailyCyclePool = await ubi.dailyCyclePool();
|
|
570
|
+
let activeUsersCount = await ubi.minActiveUsers(); // await ubi.activeUsersCount();
|
|
571
|
+
// the dailyCyclePool divided by max(activeUser,minActiveUsers) should give the daily claim (diff between ubipool balances)
|
|
572
572
|
expect(claimer1Balance2.sub(claimer1Balance1).toString()).to.be.equal(
|
|
573
|
-
|
|
573
|
+
dailyCyclePool.div(activeUsersCount)
|
|
574
574
|
);
|
|
575
575
|
});
|
|
576
576
|
|
|
@@ -627,8 +627,8 @@ describe("UBIScheme", () => {
|
|
|
627
627
|
|
|
628
628
|
it("should award first claimer with default value when not using first claim pool", async () => {
|
|
629
629
|
const ubiNew = await deployNewUbi();
|
|
630
|
-
|
|
631
|
-
|
|
630
|
+
await goodDollar.mint(ubiNew.address, 1000);
|
|
631
|
+
const expectedDailyUbi = 1; // 1000 divided by minActiveUsers which is also 1000 by default
|
|
632
632
|
await addWhitelisted(claimer8.address, "claimer8");
|
|
633
633
|
const encodedCall = ubiNew.interface.encodeFunctionData(
|
|
634
634
|
"setUseFirstClaimPool",
|
|
@@ -638,8 +638,8 @@ describe("UBIScheme", () => {
|
|
|
638
638
|
const claimerBalanceBefore = await goodDollar.balanceOf(claimer8.address);
|
|
639
639
|
await (await ubiNew.connect(claimer8).claim()).wait();
|
|
640
640
|
const claimerBalanceAfter = await goodDollar.balanceOf(claimer8.address);
|
|
641
|
-
|
|
641
|
+
|
|
642
642
|
expect(claimerBalanceAfter.gt(claimerBalanceBefore));
|
|
643
|
-
expect(claimerBalanceAfter.sub(claimerBalanceBefore).eq(
|
|
643
|
+
expect(claimerBalanceAfter.sub(claimerBalanceBefore).eq(expectedDailyUbi));
|
|
644
644
|
});
|
|
645
645
|
});
|
|
@@ -125,12 +125,13 @@ describe("UBIScheme cycle", () => {
|
|
|
125
125
|
expect(
|
|
126
126
|
await ubiScheme.currentDayInCycle().then(_ => _.toNumber())
|
|
127
127
|
).to.be.equal(10); //10 days passed total
|
|
128
|
+
|
|
128
129
|
let transaction = await (await ubiScheme.connect(claimer1).claim()).wait(); //claims in new ubi cycle
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
).to.be.equal(
|
|
132
|
-
1000
|
|
133
|
-
);
|
|
130
|
+
let dailyClaimAmount = (await ubiScheme.dailyCyclePool()).div(1000); //initialy we have by default min 1000 active users
|
|
131
|
+
|
|
132
|
+
expect(await goodDollar.balanceOf(claimer1.address)).to.be.equal(
|
|
133
|
+
dailyClaimAmount.add(1000)
|
|
134
|
+
); //intial 10 from first claim pool + daily
|
|
134
135
|
const cycleEvent = transaction.events.find(
|
|
135
136
|
e => e.event === "UBICycleCalculated"
|
|
136
137
|
);
|
|
@@ -140,7 +141,8 @@ describe("UBIScheme cycle", () => {
|
|
|
140
141
|
expect(
|
|
141
142
|
await ubiScheme.currentDayInCycle().then(_ => _.toNumber())
|
|
142
143
|
).to.be.equal(0); //new cycle started
|
|
143
|
-
|
|
144
|
+
//intial balance on cycle start 1000000 - 125(one user that claimed) = 999875, divide by cycle length (8) = 124984
|
|
145
|
+
expect(cycleEvent.args.dailyUBIPool).to.be.equal(124984);
|
|
144
146
|
});
|
|
145
147
|
|
|
146
148
|
it("should calculate cycle early if we can increase current daily pool", async () => {
|
|
@@ -177,7 +179,7 @@ describe("UBIScheme cycle", () => {
|
|
|
177
179
|
//increase ubi pool balance
|
|
178
180
|
let encoded = goodDollar.interface.encodeFunctionData("mint", [
|
|
179
181
|
ubiScheme.address,
|
|
180
|
-
|
|
182
|
+
100
|
|
181
183
|
]);
|
|
182
184
|
await genericCall(goodDollar.address, encoded);
|
|
183
185
|
let balance = await goodDollar.balanceOf(ubiScheme.address);
|
|
@@ -27,8 +27,8 @@ describe("AdminWallet", () => {
|
|
|
27
27
|
|
|
28
28
|
before(async () => {
|
|
29
29
|
signers = await ethers.getSigners();
|
|
30
|
+
founder = signers[0];
|
|
30
31
|
[
|
|
31
|
-
founder,
|
|
32
32
|
whitelisted,
|
|
33
33
|
stranger,
|
|
34
34
|
stranger2,
|
|
@@ -38,17 +38,20 @@ describe("AdminWallet", () => {
|
|
|
38
38
|
admin,
|
|
39
39
|
admin2,
|
|
40
40
|
toWhitelist
|
|
41
|
-
] = signers;
|
|
42
|
-
let { identity: id } = await createDAO();
|
|
43
|
-
identity = await ethers.getContractAt("
|
|
41
|
+
] = signers.slice(10);
|
|
42
|
+
let { identity: id, nameService } = await createDAO();
|
|
43
|
+
identity = await ethers.getContractAt("IdentityV2", id);
|
|
44
44
|
|
|
45
45
|
adminWallet = (await upgrades.deployProxy(
|
|
46
46
|
await ethers.getContractFactory("AdminWallet"),
|
|
47
|
-
[[], signers[0].address,
|
|
47
|
+
[[], nameService.address, signers[0].address, 1e10],
|
|
48
48
|
{ kind: "uups" }
|
|
49
49
|
)) as AdminWallet;
|
|
50
50
|
|
|
51
|
-
identity.
|
|
51
|
+
await identity.grantRole(
|
|
52
|
+
ethers.utils.keccak256(ethers.utils.toUtf8Bytes("identity_admin")),
|
|
53
|
+
adminWallet.address
|
|
54
|
+
);
|
|
52
55
|
|
|
53
56
|
toppingTimes = await adminWallet.toppingTimes();
|
|
54
57
|
toppingAmount = await adminWallet.toppingAmount();
|
|
@@ -87,6 +90,12 @@ describe("AdminWallet", () => {
|
|
|
87
90
|
});
|
|
88
91
|
});
|
|
89
92
|
|
|
93
|
+
it("should have owner", async () => {
|
|
94
|
+
expect(
|
|
95
|
+
await adminWallet.hasRole(ethers.constants.HashZero, signers[0].address)
|
|
96
|
+
).to.eq(true);
|
|
97
|
+
});
|
|
98
|
+
|
|
90
99
|
it("should not top admin list when empty", async () => {
|
|
91
100
|
await expect(adminWallet["topAdmins(uint256)"](0)).revertedWith(
|
|
92
101
|
"Admin list is empty"
|
|
@@ -142,7 +151,10 @@ describe("AdminWallet", () => {
|
|
|
142
151
|
|
|
143
152
|
await adminWallet
|
|
144
153
|
.connect(admin2)
|
|
145
|
-
|
|
154
|
+
["whitelist(address,string)"](
|
|
155
|
+
toWhitelist.address,
|
|
156
|
+
"did:test" + Math.random()
|
|
157
|
+
);
|
|
146
158
|
const newBalance = await ethers.provider.getBalance(admin2.address);
|
|
147
159
|
expect(newBalance).to.be.gte(expectedTopping);
|
|
148
160
|
});
|
|
@@ -154,7 +166,9 @@ describe("AdminWallet", () => {
|
|
|
154
166
|
|
|
155
167
|
it("should allow admin to whitelist and remove whitelist", async () => {
|
|
156
168
|
expect(await identity.isWhitelisted(whitelisted.address)).to.false;
|
|
157
|
-
await adminWallet
|
|
169
|
+
await adminWallet
|
|
170
|
+
.connect(admin)
|
|
171
|
+
["whitelist(address,string)"](whitelisted.address, "did:test");
|
|
158
172
|
|
|
159
173
|
expect(await identity.isWhitelisted(whitelisted.address)).to.true;
|
|
160
174
|
await adminWallet.connect(admin).removeWhitelist(whitelisted.address);
|
|
@@ -164,10 +178,14 @@ describe("AdminWallet", () => {
|
|
|
164
178
|
it("should not allow non-admin to whitelist and remove whitelist", async () => {
|
|
165
179
|
expect(await identity.isWhitelisted(whitelisted.address)).to.false;
|
|
166
180
|
await expect(
|
|
167
|
-
adminWallet
|
|
181
|
+
adminWallet
|
|
182
|
+
.connect(stranger)
|
|
183
|
+
["whitelist(address,string)"](whitelisted.address, "did:test")
|
|
168
184
|
).revertedWith("Caller is not admin");
|
|
169
185
|
expect(await identity.isWhitelisted(whitelisted.address)).to.false;
|
|
170
|
-
await adminWallet
|
|
186
|
+
await adminWallet
|
|
187
|
+
.connect(admin)
|
|
188
|
+
["whitelist(address,string)"](whitelisted.address, "did:test");
|
|
171
189
|
expect(await identity.isWhitelisted(whitelisted.address)).to.true;
|
|
172
190
|
await expect(
|
|
173
191
|
adminWallet.connect(stranger).removeWhitelist(whitelisted.address)
|
|
@@ -245,20 +263,24 @@ describe("AdminWallet", () => {
|
|
|
245
263
|
|
|
246
264
|
it("should whitelist user", async () => {
|
|
247
265
|
expect(await identity.isWhitelisted(stranger2.address)).to.false;
|
|
248
|
-
await adminWallet
|
|
266
|
+
await adminWallet
|
|
267
|
+
.connect(admin2)
|
|
268
|
+
["whitelist(address,string)"](stranger2.address, "did:test3");
|
|
249
269
|
expect(await identity.isWhitelisted(stranger2.address)).to.true;
|
|
250
270
|
});
|
|
251
271
|
|
|
252
272
|
it("should not allow whitelisting with existing did", async () => {
|
|
253
273
|
await expect(
|
|
254
|
-
adminWallet
|
|
274
|
+
adminWallet
|
|
275
|
+
.connect(admin2)
|
|
276
|
+
["whitelist(address,string)"](stranger.address, "did:test")
|
|
255
277
|
).revertedWith("DID already registered");
|
|
256
278
|
});
|
|
257
279
|
|
|
258
280
|
it("should not allow anyone to upgrade", async () => {
|
|
259
281
|
await expect(
|
|
260
282
|
adminWallet.connect(admin2).upgradeTo(adminWallet.address)
|
|
261
|
-
).revertedWith("
|
|
283
|
+
).revertedWith("not owner");
|
|
262
284
|
});
|
|
263
285
|
|
|
264
286
|
it("should allow owner to upgrade", async () => {
|
|
@@ -268,6 +290,11 @@ describe("AdminWallet", () => {
|
|
|
268
290
|
await expect(adminWallet.connect(founder).upgradeTo(newver.address)).not
|
|
269
291
|
.reverted;
|
|
270
292
|
|
|
293
|
+
await upgrades.forceImport(
|
|
294
|
+
adminWallet.address,
|
|
295
|
+
await ethers.getContractFactory("AdminWallet"),
|
|
296
|
+
{ kind: "uups" }
|
|
297
|
+
);
|
|
271
298
|
await expect(
|
|
272
299
|
upgrades.upgradeProxy(
|
|
273
300
|
adminWallet.address,
|