@gooddollar/goodprotocol 1.0.31-beta.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -0
- package/artifacts/abis/AaveMock.min.json +1 -1
- package/artifacts/abis/AaveStakingFactory.min.json +1 -1
- package/artifacts/abis/AdminWallet.min.json +1 -1
- package/artifacts/abis/AdminWalletFuse.min.json +1 -0
- package/artifacts/abis/BuyAndBridgeHelper.min.json +1 -0
- package/artifacts/abis/ClaimersDistribution.min.json +1 -1
- package/artifacts/abis/CompoundStakingFactory.min.json +1 -1
- package/artifacts/abis/CompoundVotingMachine.min.json +1 -1
- package/artifacts/abis/DAIMock.min.json +1 -1
- package/artifacts/abis/DAOUpgradeableContract.min.json +1 -1
- package/artifacts/abis/DecimalsMock.min.json +1 -1
- package/artifacts/abis/DistributionHelper.min.json +1 -1
- package/artifacts/abis/DistributionHelperTest.min.json +1 -1
- package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -1
- package/artifacts/abis/DonationsStaking.min.json +1 -1
- package/artifacts/abis/ERC20Permit.min.json +1 -0
- package/artifacts/abis/ERC20PresetMinterPauserUpgradeable.min.json +1 -0
- package/artifacts/abis/ERC677.min.json +1 -0
- package/artifacts/abis/ERC677Receiver.min.json +1 -0
- package/artifacts/abis/ExchangeHelper.min.json +1 -1
- package/artifacts/abis/Faucet.min.json +1 -0
- package/artifacts/abis/FeesFormulaMock.min.json +1 -0
- package/artifacts/abis/FuseFaucet.min.json +1 -1
- package/artifacts/abis/FuseFaucetV2.min.json +1 -0
- package/artifacts/abis/FuseStakingV3.min.json +1 -1
- package/artifacts/abis/GReputation.min.json +1 -1
- package/artifacts/abis/GoodAaveStaking.min.json +1 -1
- package/artifacts/abis/GoodAaveStakingV2.min.json +1 -1
- package/artifacts/abis/GoodCompoundStaking.min.json +1 -1
- package/artifacts/abis/GoodCompoundStakingTest.min.json +1 -1
- package/artifacts/abis/GoodCompoundStakingV2.min.json +1 -1
- package/artifacts/abis/GoodDollar.min.json +1 -0
- package/artifacts/abis/GoodDollarMintBurnWrapper.min.json +1 -1
- package/artifacts/abis/GoodDollarStaking.min.json +1 -1
- package/artifacts/abis/GoodDollarStakingMock.min.json +1 -1
- package/artifacts/abis/GoodFundManager.min.json +1 -1
- package/artifacts/abis/GoodFundManagerTest.min.json +1 -1
- package/artifacts/abis/GoodMarketMaker.min.json +1 -1
- package/artifacts/abis/GoodReserveCDai.min.json +1 -1
- package/artifacts/abis/GovernanceStaking.min.json +1 -1
- package/artifacts/abis/IFeesFormula.min.json +1 -0
- package/artifacts/abis/IGoodDollar.min.json +1 -1
- package/artifacts/abis/IGoodDollarCustom.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/IStakingUpgrade.min.json +1 -0
- package/artifacts/abis/ISuperGoodDollar.min.json +1 -0
- package/artifacts/abis/IdentityMock.min.json +1 -0
- package/artifacts/abis/IdentityV2.min.json +1 -0
- package/artifacts/abis/InvitesFuseV2.min.json +1 -0
- package/artifacts/abis/InvitesV1.min.json +1 -1
- package/artifacts/abis/InvitesV2.min.json +1 -0
- package/artifacts/abis/LendingPoolMock.min.json +1 -1
- package/artifacts/abis/NameService.min.json +1 -1
- package/artifacts/abis/PayableMock.min.json +1 -0
- package/artifacts/abis/Proxy.min.json +1 -0
- package/artifacts/abis/Reputation.min.json +1 -1
- package/artifacts/abis/SelfApprove.min.json +1 -0
- package/artifacts/abis/SimpleStaking.min.json +1 -1
- package/artifacts/abis/SimpleStakingV2.min.json +1 -1
- package/artifacts/abis/SixteenDecimalsTokenMock.min.json +1 -1
- package/artifacts/abis/StakersDistribution.min.json +1 -1
- package/artifacts/abis/SuperGoodDollar.min.json +1 -0
- package/artifacts/abis/SuperToken.min.json +1 -0
- package/artifacts/abis/SuperfluidToken.min.json +1 -0
- package/artifacts/abis/TwentyDecimalsTokenMock.min.json +1 -1
- package/artifacts/abis/UBIScheme.min.json +1 -1
- package/artifacts/abis/USDCMock.min.json +1 -1
- package/artifacts/abis/UUPSProxiable.min.json +1 -0
- package/artifacts/abis/UUPSProxy.min.json +1 -0
- package/artifacts/abis/UUPSUtils.min.json +1 -0
- package/artifacts/abis/UpgradableMock.min.json +1 -1
- package/artifacts/abis/UpgradableMock2.min.json +1 -1
- package/artifacts/abis/UpgradableMock3.min.json +1 -1
- package/artifacts/abis/UpgradableMock4.min.json +1 -1
- package/artifacts/abis/cBATMock.min.json +1 -1
- package/artifacts/abis/cDAILowWorthMock.min.json +1 -1
- package/artifacts/abis/cDAIMock.min.json +1 -1
- package/artifacts/abis/cDAINonMintableMock.min.json +1 -1
- package/artifacts/abis/cDecimalsMock.min.json +1 -1
- package/artifacts/abis/cSDTMock.min.json +1 -1
- package/artifacts/abis/cUSDCMock.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/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/IFirstClaimPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodDollar.json +184 -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 +70 -0
- package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
- package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +300 -0
- package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
- 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/fuseFaucet/Faucet.sol/Faucet.dbg.json +4 -0
- package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +736 -0
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +15 -2
- package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +4 -0
- package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.json +480 -0
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +28 -2
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +28 -2
- package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
- package/artifacts/contracts/governance/GReputation.sol/GReputation.json +78 -3
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +71 -2
- 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/IStakingUpgrade.dbg.json +4 -0
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.json +35 -0
- package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
- package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +31 -5
- 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 +28 -2
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +28 -2
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +4 -0
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +1081 -0
- package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +4 -0
- package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.json +505 -0
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +15 -2
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +4 -0
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +635 -0
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.json +18 -5
- package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.json +2 -2
- package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.json +2 -2
- package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.json +2 -2
- package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.json +18 -5
- package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.json +2 -2
- package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.json +18 -5
- package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +2 -2
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +28 -2
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +28 -2
- package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.json +2 -2
- package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +4 -0
- package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.json +69 -0
- package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.json +2 -2
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +22 -9
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +95 -2
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +28 -2
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +4 -0
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +277 -0
- package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.json +2 -2
- package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.json +18 -5
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +2 -2
- package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
- 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/PayableMock.sol/PayableMock.dbg.json +4 -0
- package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.json +18 -0
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.json +18 -5
- package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
- package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +2 -2
- 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/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.json +18 -5
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +28 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +28 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +28 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +28 -2
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.json +18 -5
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.json +18 -5
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.json +18 -5
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.json +18 -5
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.json +18 -5
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.json +18 -5
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.json +18 -5
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.json +18 -5
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +28 -2
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +28 -2
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +28 -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 +31 -5
- 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 +32 -6
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +15 -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 +28 -2
- package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.json +16 -3
- package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.json +16 -3
- 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 +3 -3
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +20 -7
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +20 -7
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +4 -4
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +22 -9
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +22 -9
- package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
- package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +2 -2
- package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
- package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +4 -0
- package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.json +768 -0
- package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +4 -0
- package/artifacts/contracts/token/ERC677.sol/ERC677.json +66 -0
- package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +4 -0
- package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.json +40 -0
- package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +4 -0
- package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.json +45 -0
- package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +4 -0
- package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +1206 -0
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.json +99 -0
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.json +34 -0
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.json +355 -0
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.json +2132 -0
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +2627 -0
- package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.json +1759 -0
- package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.json +682 -0
- package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.json +89 -0
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.json +19 -0
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +32 -0
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +10 -0
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +41 -22
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +94 -48
- package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +4 -0
- package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.json +830 -0
- package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
- package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.json +2 -2
- package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
- package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
- package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +4 -0
- package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +184 -0
- 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 +28 -2
- package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
- package/artifacts/contracts/utils/DSMath.sol/DSMath.json +2 -2
- package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
- package/artifacts/contracts/utils/DataTypes.sol/DataTypes.json +2 -2
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +35 -2
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +2 -2
- package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
- package/artifacts/contracts/utils/MultiCall.sol/Multicall.json +2 -2
- package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
- package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +2 -2
- package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
- package/artifacts/contracts/utils/NameService.sol/NameService.json +28 -2
- 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/ERC1967Proxy.json +2 -2
- package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
- package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
- 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 +57 -3
- package/contracts/fuseFaucet/Faucet.sol +258 -0
- package/contracts/fuseFaucet/FuseFaucet.sol +1 -2
- package/contracts/fuseFaucet/FuseFaucetV2.sol +256 -0
- package/contracts/governance/GReputation.sol +104 -16
- package/contracts/governance/GoodDollarStaking.sol +139 -53
- package/contracts/governance/GovernanceStaking.sol +2 -2
- package/contracts/identity/IdentityV2.sol +559 -0
- package/contracts/invite/InvitesFuseV2.sol +337 -0
- package/contracts/invite/InvitesV1.sol +6 -24
- package/contracts/invite/InvitesV2.sol +345 -0
- package/contracts/mocks/AaveMock.sol +1 -1
- package/contracts/mocks/DAIMock.sol +1 -1
- package/contracts/mocks/DecimalsMock.sol +1 -1
- package/contracts/mocks/FeesFormularMock.sol +21 -0
- package/contracts/mocks/GoodDollarStakingMock.sol +16 -0
- package/contracts/mocks/GoodFundManagerTest.sol +1 -1
- package/contracts/mocks/IdentityMock.sol +58 -0
- package/contracts/mocks/LendingPoolMock.sol +1 -1
- package/contracts/mocks/PayableMock.sol +3 -0
- package/contracts/mocks/SixteenDecimalsTokenMock.sol +1 -6
- package/contracts/mocks/TwentyDecimalsTokenMock.sol +1 -6
- package/contracts/mocks/UpgradableMocks.sol +5 -3
- package/contracts/mocks/UsdcMock.sol +1 -6
- package/contracts/mocks/cBATMock.sol +7 -12
- package/contracts/mocks/cDAILowWorthMock.sol +8 -12
- package/contracts/mocks/cDAIMock.sol +1 -1
- package/contracts/mocks/cDAINonMintableMock.sol +7 -12
- package/contracts/mocks/cDecimalsMock.sol +1 -1
- package/contracts/mocks/cSDTMock.sol +3 -3
- package/contracts/mocks/cUSDCMock.sol +5 -5
- package/contracts/reserve/DistributionHelper.sol +1 -1
- package/contracts/reserve/GoodReserveCDai.sol +1 -1
- package/contracts/token/ERC20PresetMinterPauserUpgradeable.sol +140 -0
- package/contracts/token/ERC677.sol +74 -0
- package/contracts/token/FeesFormula.sol +10 -0
- package/contracts/token/GoodDollar.sol +243 -0
- package/contracts/token/superfluid/ERC20Permit.sol +101 -0
- package/contracts/token/superfluid/ISuperGoodDollar.sol +84 -0
- package/contracts/token/superfluid/SuperGoodDollar.sol +401 -0
- package/contracts/token/superfluid/SuperToken.sol +714 -0
- package/contracts/token/superfluid/SuperfluidToken.sol +403 -0
- package/contracts/token/superfluid/UUPSProxiable.sol +55 -0
- package/contracts/token/superfluid/UUPSProxy.sol +153 -0
- package/contracts/ubi/UBIScheme.sol +88 -68
- package/contracts/utils/AdminWallet.sol +42 -11
- package/contracts/utils/AdminWalletFuse.sol +271 -0
- package/contracts/utils/BuyAndBridgeHelper.sol +108 -0
- package/contracts/utils/GoodDollarMintBurnWrapper.sol +19 -1
- package/contracts/utils/ProxyFactory1967.sol +1 -1
- package/hardhat.config.ts +29 -6
- package/package.json +11 -7
- package/releases/deploy-settings.json +58 -4
- package/releases/deployment.json +65 -231
- package/scripts/deployFullDAO.ts +39 -19
- package/scripts/gdx/gdxAirdropCalculation.ts +10 -11
- package/scripts/governance/airdropCalculationRecover.ts +43 -33
- package/scripts/governance/airdropCalculationSorted.ts +438 -0
- package/scripts/governance/goodCheckpointSorted.ts +377 -0
- package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +100 -0
- package/scripts/multichain-deploy/{basicdao-deploy.ts → 1_basicdao-deploy.ts} +123 -93
- package/scripts/multichain-deploy/2_helpers-deploy.ts +151 -0
- package/scripts/multichain-deploy/{gdSavings-deploy.ts → 3_gdSavings-deploy.ts} +106 -76
- package/scripts/multichain-deploy/4_ubi-deploy.ts +147 -0
- package/scripts/multichain-deploy/5_gov-deploy.ts +147 -0
- package/scripts/multichain-deploy/fulldeploy.sh +26 -0
- package/scripts/multichain-deploy/helpers.ts +149 -111
- package/scripts/multichain-deploy/verifyEtherscan.ts +197 -0
- package/scripts/test/localOldDaoDeploy.ts +10 -3
- package/scripts/upgradeToV3/v3-fix.ts +120 -0
- package/scripts/upgradeToV3/v3-upgrade.ts +219 -0
- package/scripts/upgrades/celo-defi-ubi-deploy.ts +165 -0
- package/scripts/upgrades/identity-upgrade.ts +109 -0
- package/scripts/upgrades/transferDaoToGuardians.ts +80 -0
- package/test/faucet/Faucet.test.ts +157 -0
- package/test/{FuseFaucet.test.ts → faucet/FuseFaucet.test.ts} +26 -31
- package/test/governance/ClaimersDistribution.test.ts +58 -6
- package/test/governance/CompoundVotingMachine.castvote.test.ts +3 -3
- package/test/governance/CompoundVotingMachine.crossblockchain.ts +3 -2
- package/test/governance/CompoundVotingMachine.daoscheme.ts +8 -10
- package/test/governance/CompoundVotingMachine.delegate.test.ts +4 -5
- package/test/governance/CompoundVotingMachine.guardian.test.ts +5 -11
- package/test/governance/CompoundVotingMachine.propose.test.ts +3 -2
- package/test/governance/CompoundVotingMachine.state.test.ts +3 -2
- package/test/governance/GReputation.test.ts +78 -32
- package/test/governance/GReputation.v2merkle.test.ts +186 -0
- package/test/governance/GoodDollarStaking.gd.test.ts +83 -1
- package/test/governance/GoodDollarStaking.good.test.ts +2 -1
- package/test/governance/GovernanceStaking.test.ts +4 -4
- package/test/governance/Reputation.test.ts +2 -1
- package/test/governance/StakersDistribution.test.ts +26 -13
- package/test/helpers.ts +145 -52
- package/test/identity/IdentityV2.test.ts +539 -0
- package/test/{InvitesV1.test.ts → invite/InvitesV1.test.ts} +10 -5
- package/test/invite/InvitesV2.test.ts +328 -0
- package/test/reserve/DistributionHelper.test.ts +2 -1
- package/test/reserve/GoodMarketMaker.test.ts +20 -19
- package/test/reserve/GoodReserveCDai.cap.test.ts +8 -1
- package/test/reserve/GoodReserveCDai.distribution.test.ts +2 -1
- package/test/reserve/GoodReserveCDai.gdx.test.ts +2 -2
- package/test/reserve/GoodReserveCDai.pause.test.ts +2 -1
- package/test/reserve/GoodReserveCDai.test.ts +14 -38
- package/test/reserve/GoodReserveCDai.uniswap.test.ts +21 -19
- package/test/staking/CompoundStakingFactory.test.ts +8 -5
- package/test/staking/DifferentStakingTokens.test.ts +3 -2
- package/test/staking/DonationsStaking.test.ts +33 -24
- package/test/staking/FuseStaking.test.ts +9 -9
- package/test/staking/GoodAaveStakingFactory.test.ts +36 -31
- package/test/staking/SimpleDAIStaking.test.ts +13 -19
- package/test/staking/StakingRewards.test.ts +19 -16
- package/test/staking/StakingRewardsFixedAPY.test.ts +2 -1
- package/test/staking/SwapHelper.test.ts +20 -17
- package/test/staking/UsdcAaveStaking.test.ts +36 -33
- package/test/token/GoodDollar.test.ts +445 -0
- package/test/token/SuperGoodDollar.test.ts +422 -0
- package/test/ubi/UBIScheme.e2e.test.ts +6 -5
- package/test/ubi/UBIScheme.test.ts +37 -36
- package/test/ubi/UBISchemeCycle.test.ts +11 -8
- package/test/utils/AdminWallet.test.ts +34 -11
- package/test/utils/BuyAndBridgeHelper.test.ts +249 -0
- package/test/utils/DAOUpgradeableContract.test.ts +3 -2
- package/test/utils/GoodDollarMintBurnWrapper.test.ts +3 -2
- package/test/utils/NameService.test.ts +37 -21
- package/test/utils/ProtocolUpgrade.test.ts +1 -1
- package/test/utils/ProxyFactory.test.ts +12 -10
- package/truffle-config.js +18 -18
- package/types/AaveMock.ts +24 -15
- package/types/AccessControlEnumerableUpgradeable.ts +9 -0
- package/types/AccessControlUpgradeable.ts +9 -0
- package/types/AdminWallet.ts +149 -110
- package/types/AdminWalletFuse.ts +1268 -0
- package/types/BuyAndBridgeHelper.ts +279 -0
- package/types/CBATMock.ts +24 -15
- package/types/CDAILowWorthMock.ts +24 -15
- package/types/CDAIMock.ts +24 -15
- package/types/CDAINonMintableMock.ts +24 -15
- package/types/CDecimalsMock.ts +24 -15
- package/types/CSDTMock.ts +24 -15
- package/types/CUSDCMock.ts +24 -15
- package/types/ClaimersDistribution.ts +28 -0
- package/types/CompoundVotingMachine.ts +28 -0
- package/types/ContextUpgradeable.ts +77 -0
- package/types/DAIMock.ts +24 -15
- package/types/DAOUpgradeableContract.ts +28 -0
- package/types/DecimalsMock.ts +24 -15
- package/types/DistributionHelper.ts +28 -0
- package/types/DistributionHelperTest.ts +28 -0
- package/types/DistributionHelperTestHelper.ts +28 -0
- package/types/DonationsStaking.ts +28 -0
- package/types/EIP712Upgradeable.ts +77 -0
- package/types/ERC165Upgradeable.ts +13 -2
- package/types/ERC1967UpgradeUpgradeable.ts +9 -0
- package/types/ERC20BurnableUpgradeable.ts +24 -15
- package/types/ERC20PausableUpgradeable.ts +24 -15
- package/types/ERC20Permit.ts +186 -0
- package/types/ERC20PermitUpgradeable.ts +531 -0
- package/types/ERC20PresetMinterPauserUpgradeable.ts +129 -16
- package/types/ERC20Upgradeable.ts +24 -15
- package/types/ERC20WithTokenInfo.ts +339 -0
- package/types/ERC677.ts +131 -0
- package/types/ERC677Receiver.ts +115 -0
- package/types/EventsEmitter.ts +88 -0
- package/types/ExchangeHelper.ts +28 -0
- package/types/Faucet.ts +1107 -0
- package/types/FeesFormulaMock.ts +130 -0
- package/types/FuseFaucet.ts +9 -0
- package/types/FuseFaucetV2.ts +729 -0
- package/types/FuseStakingV3.ts +9 -0
- package/types/GReputation.ts +103 -4
- package/types/GoodAaveStaking.ts +24 -15
- package/types/GoodAaveStakingV2.ts +24 -15
- package/types/GoodCompoundStaking.ts +24 -15
- package/types/GoodCompoundStakingTest.ts +24 -15
- package/types/GoodCompoundStakingV2.ts +24 -15
- package/types/GoodDollar.ts +1733 -0
- package/types/GoodDollarMintBurnWrapper.ts +55 -0
- package/types/GoodDollarStaking.ts +92 -0
- package/types/GoodDollarStakingMock.ts +131 -0
- package/types/GoodFundManager.ts +28 -0
- package/types/GoodFundManagerTest.ts +28 -0
- package/types/GoodMarketMaker.ts +28 -0
- package/types/GoodReserveCDai.ts +43 -15
- package/types/GovernanceStaking.ts +43 -15
- package/types/IERC1271Upgradeable.ts +109 -0
- package/types/IERC1820Registry.ts +398 -0
- package/types/IERC1822ProxiableUpgradeable.ts +90 -0
- package/types/IERC20MetadataUpgradeable.ts +15 -15
- package/types/IERC20Permit.ts +175 -0
- package/types/IERC20PermitUpgradeable.ts +176 -0
- package/types/IERC20Upgradeable.ts +15 -15
- package/types/IERC777.ts +586 -0
- package/types/IERC777Recipient.ts +130 -0
- package/types/IERC777Sender.ts +130 -0
- package/types/IFeesFormula.ts +111 -0
- package/types/IGoodDollar.ts +304 -7
- package/types/IGoodDollarCustom.ts +618 -0
- package/types/IGovernanceStaking.ts +98 -0
- package/types/IIdentity.ts +106 -0
- package/types/IIdentityV2.ts +557 -0
- package/types/IStakingUpgrade.ts +110 -0
- package/types/ISuperAgreement.ts +151 -0
- package/types/ISuperApp.ts +410 -0
- package/types/ISuperGoodDollar.ts +3029 -0
- package/types/ISuperToken.ts +2326 -0
- package/types/ISuperTokenFactory.ts +415 -0
- package/types/ISuperfluid.ts +1565 -0
- package/types/ISuperfluidGovernance.ts +455 -0
- package/types/ISuperfluidToken.ts +951 -0
- package/types/IdentityMock.ts +493 -0
- package/types/IdentityV2.ts +1743 -0
- package/types/Initializable.ts +77 -0
- package/types/InvitesFuseV2.ts +806 -0
- package/types/InvitesV1.ts +9 -0
- package/types/InvitesV2.ts +1010 -0
- package/types/LendingPoolMock.ts +24 -15
- package/types/NameService.ts +28 -0
- package/types/OwnableUpgradeable.ts +9 -0
- package/types/PausableUpgradeable.ts +9 -0
- package/types/PayableMock.ts +92 -0
- package/types/ReentrancyGuardUpgradeable.ts +78 -0
- package/types/Reputation.ts +28 -0
- package/types/SelfApprove.ts +115 -0
- package/types/SimpleStaking.ts +24 -15
- package/types/SimpleStakingV2.ts +24 -15
- package/types/SixteenDecimalsTokenMock.ts +24 -15
- package/types/StakersDistribution.ts +28 -0
- package/types/SuperGoodDollar.ts +3662 -0
- package/types/SuperToken.ts +2434 -0
- package/types/SuperfluidToken.ts +951 -0
- package/types/TokenInfo.ts +109 -0
- package/types/TwentyDecimalsTokenMock.ts +24 -15
- package/types/UBIScheme.ts +47 -40
- package/types/USDCMock.ts +24 -15
- package/types/UUPSProxiable.ts +183 -0
- package/types/UUPSProxy.ts +105 -0
- package/types/UUPSUpgradeable.ts +28 -0
- package/types/UpgradableMock.ts +28 -0
- package/types/UpgradableMock2.ts +28 -0
- package/types/UpgradableMock3.ts +28 -0
- package/types/UpgradableMock4.ts +28 -0
- package/types/factories/AaveMock__factory.ts +17 -4
- package/types/factories/AaveStakingFactory__factory.ts +1 -1
- package/types/factories/AaveUSDMockOracle__factory.ts +1 -1
- package/types/factories/AccessControlEnumerableUpgradeable__factory.ts +13 -0
- package/types/factories/AccessControlUpgradeable__factory.ts +13 -0
- package/types/factories/AdminWalletFuse__factory.ts +881 -0
- package/types/factories/AdminWallet__factory.ts +93 -47
- package/types/factories/BancorFormula__factory.ts +1 -1
- package/types/factories/BaseShareFieldV2__factory.ts +1 -1
- package/types/factories/BaseShareField__factory.ts +1 -1
- package/types/factories/BatUSDMockOracle__factory.ts +1 -1
- package/types/factories/BuyAndBridgeHelper__factory.ts +237 -0
- package/types/factories/CBATMock__factory.ts +17 -4
- package/types/factories/CDAILowWorthMock__factory.ts +17 -4
- package/types/factories/CDAIMock__factory.ts +17 -4
- package/types/factories/CDAINonMintableMock__factory.ts +17 -4
- package/types/factories/CDecimalsMock__factory.ts +17 -4
- package/types/factories/CSDTMock__factory.ts +17 -4
- package/types/factories/CUSDCMock__factory.ts +17 -4
- package/types/factories/ClaimersDistribution__factory.ts +27 -1
- package/types/factories/CompUSDMockOracle__factory.ts +1 -1
- package/types/factories/CompoundStakingFactory__factory.ts +1 -1
- package/types/factories/CompoundVotingMachine__factory.ts +27 -1
- package/types/factories/ContextUpgradeable__factory.ts +39 -0
- package/types/factories/DAIMock__factory.ts +17 -4
- package/types/factories/DAOContract__factory.ts +1 -1
- package/types/factories/DAOUpgradeableContract__factory.ts +27 -1
- package/types/factories/DaiEthPriceMockOracle__factory.ts +1 -1
- package/types/factories/DecimalsMock__factory.ts +17 -4
- package/types/factories/DistributionBridgeMock__factory.ts +1 -1
- package/types/factories/DistributionHelperTestHelper__factory.ts +27 -1
- package/types/factories/DistributionHelperTest__factory.ts +27 -1
- package/types/factories/DistributionHelper__factory.ts +27 -1
- package/types/factories/DonationsStaking__factory.ts +27 -1
- package/types/factories/EIP712Upgradeable__factory.ts +39 -0
- package/types/factories/ERC165Upgradeable__factory.ts +13 -0
- package/types/factories/ERC1967Proxy__factory.ts +1 -1
- package/types/factories/ERC1967UpgradeUpgradeable__factory.ts +13 -0
- package/types/factories/ERC20BurnableUpgradeable__factory.ts +16 -3
- package/types/factories/ERC20PausableUpgradeable__factory.ts +16 -3
- package/types/factories/ERC20PermitUpgradeable__factory.ts +388 -0
- package/types/factories/ERC20Permit__factory.ts +111 -0
- package/types/factories/ERC20PresetMinterPauserUpgradeable__factory.ts +99 -5
- package/types/factories/ERC20Upgradeable__factory.ts +17 -4
- package/types/factories/ERC20WithTokenInfo__factory.ts +248 -0
- package/types/factories/ERC677Receiver__factory.ts +55 -0
- package/types/factories/ERC677__factory.ts +75 -0
- package/types/factories/EthUSDMockOracle__factory.ts +1 -1
- package/types/factories/EventsEmitter__factory.ts +84 -0
- package/types/factories/ExchangeHelper__factory.ts +27 -1
- package/types/factories/Faucet__factory.ts +781 -0
- package/types/factories/FeesFormulaMock__factory.ts +132 -0
- package/types/factories/FuseFaucetV2__factory.ts +528 -0
- package/types/factories/FuseFaucet__factory.ts +14 -1
- package/types/factories/FuseStakingV3__factory.ts +14 -1
- package/types/factories/GReputation__factory.ts +77 -2
- package/types/factories/GasPriceMockOracle__factory.ts +1 -1
- package/types/factories/GoodAaveStakingV2__factory.ts +17 -4
- package/types/factories/GoodAaveStaking__factory.ts +17 -4
- package/types/factories/GoodCompoundStakingTest__factory.ts +17 -4
- package/types/factories/GoodCompoundStakingV2__factory.ts +17 -4
- package/types/factories/GoodCompoundStaking__factory.ts +17 -4
- package/types/factories/GoodDollarMintBurnWrapper__factory.ts +34 -1
- package/types/factories/GoodDollarStakingMock__factory.ts +94 -1
- package/types/factories/GoodDollarStaking__factory.ts +70 -1
- package/types/factories/GoodDollar__factory.ts +1254 -0
- package/types/factories/GoodFundManagerTest__factory.ts +27 -1
- package/types/factories/GoodFundManager__factory.ts +27 -1
- package/types/factories/GoodMarketMaker__factory.ts +27 -1
- package/types/factories/GoodReserveCDai__factory.ts +30 -4
- package/types/factories/GovernanceStaking__factory.ts +30 -4
- package/types/factories/IERC1271Upgradeable__factory.ts +50 -0
- package/types/factories/IERC1820Registry__factory.ts +239 -0
- package/types/factories/IERC1822ProxiableUpgradeable__factory.ts +43 -0
- package/types/factories/IERC20MetadataUpgradeable__factory.ts +3 -3
- package/types/factories/IERC20PermitUpgradeable__factory.ts +105 -0
- package/types/factories/IERC20Permit__factory.ts +98 -0
- package/types/factories/IERC20Upgradeable__factory.ts +3 -3
- package/types/factories/IERC777Recipient__factory.ts +64 -0
- package/types/factories/IERC777Sender__factory.ts +61 -0
- package/types/factories/IERC777__factory.ts +414 -0
- package/types/factories/IFeesFormula__factory.ts +57 -0
- package/types/factories/IGoodDollarCustom__factory.ts +370 -0
- package/types/factories/IGoodDollar__factory.ts +184 -0
- package/types/factories/IGovernanceStaking__factory.ts +39 -0
- package/types/factories/IIdentityV2__factory.ts +312 -0
- package/types/factories/IIdentity__factory.ts +70 -0
- package/types/factories/IStakingUpgrade__factory.ts +50 -0
- package/types/factories/ISuperAgreement__factory.ts +78 -0
- package/types/factories/ISuperApp__factory.ts +272 -0
- package/types/factories/ISuperGoodDollar__factory.ts +2147 -0
- package/types/factories/ISuperTokenFactory__factory.ts +271 -0
- package/types/factories/ISuperToken__factory.ts +1682 -0
- package/types/factories/ISuperfluidGovernance__factory.ts +264 -0
- package/types/factories/ISuperfluidToken__factory.ts +697 -0
- package/types/factories/ISuperfluid__factory.ts +1143 -0
- package/types/factories/IdentityMock__factory.ts +327 -0
- package/types/factories/IdentityV2__factory.ts +1129 -0
- package/types/factories/IncentiveControllerMock__factory.ts +1 -1
- package/types/factories/Initializable__factory.ts +36 -0
- package/types/factories/InvitesFuseV2__factory.ts +553 -0
- package/types/factories/InvitesV1__factory.ts +14 -1
- package/types/factories/InvitesV2__factory.ts +683 -0
- package/types/factories/LendingPoolMock__factory.ts +17 -4
- package/types/factories/Multicall__factory.ts +1 -1
- package/types/factories/MultichainBridgeHelper__factory.ts +1 -1
- package/types/factories/MultichainRouterMock__factory.ts +1 -1
- package/types/factories/NameService__factory.ts +27 -1
- package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
- package/types/factories/OverMintTester__factory.ts +1 -1
- package/types/factories/OwnableUpgradeable__factory.ts +13 -0
- package/types/factories/PausableUpgradeable__factory.ts +13 -0
- package/types/factories/PayableMock__factory.ts +66 -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/ProxyFactory1967__factory.ts +1 -1
- package/types/factories/ReentrancyGuardUpgradeable__factory.ts +43 -0
- package/types/factories/ReputationTestHelper__factory.ts +1 -1
- package/types/factories/Reputation__factory.ts +27 -1
- package/types/factories/SelfApprove__factory.ts +46 -0
- package/types/factories/SimpleStakingV2__factory.ts +16 -3
- package/types/factories/SimpleStaking__factory.ts +16 -3
- package/types/factories/SixteenDecimalsTokenMock__factory.ts +17 -4
- package/types/factories/StakersDistribution__factory.ts +27 -1
- package/types/factories/StakingMockFixedAPY__factory.ts +1 -1
- package/types/factories/SuperGoodDollar__factory.ts +2680 -0
- package/types/factories/SuperToken__factory.ts +1809 -0
- package/types/factories/SuperfluidToken__factory.ts +697 -0
- package/types/factories/SwapHelperTest__factory.ts +1 -1
- package/types/factories/TokenInfo__factory.ts +62 -0
- package/types/factories/TwentyDecimalsTokenMock__factory.ts +17 -4
- package/types/factories/UBIScheme__factory.ts +40 -21
- package/types/factories/USDCMock__factory.ts +17 -4
- package/types/factories/UUPSProxiable__factory.ts +101 -0
- package/types/factories/UUPSProxy__factory.ts +80 -0
- package/types/factories/UUPSUpgradeable__factory.ts +26 -0
- package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
- package/types/factories/UpgradableMock2__factory.ts +27 -1
- package/types/factories/UpgradableMock3__factory.ts +27 -1
- package/types/factories/UpgradableMock4__factory.ts +27 -1
- package/types/factories/UpgradableMock__factory.ts +27 -1
- package/types/hardhat.d.ts +459 -0
- package/types/index.ts +98 -0
- package/yarn.lock +1251 -306
- package/scripts/multichain-deploy/nonubiDistribution-deploy.ts +0 -170
|
@@ -8,6 +8,8 @@ import "../utils/NameService.sol";
|
|
|
8
8
|
import "../Interfaces.sol";
|
|
9
9
|
import "../governance/ClaimersDistribution.sol";
|
|
10
10
|
|
|
11
|
+
// import "hardhat/console.sol";
|
|
12
|
+
|
|
11
13
|
/* @title Dynamic amount-per-day UBI scheme allowing claim once a day
|
|
12
14
|
*/
|
|
13
15
|
contract UBIScheme is DAOUpgradeableContract {
|
|
@@ -71,7 +73,8 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
71
73
|
//dont use first claim, and give ubi as usual
|
|
72
74
|
bool public useFirstClaimPool;
|
|
73
75
|
|
|
74
|
-
|
|
76
|
+
//minimum amount of users to divide the pool for, renamed from defaultDailyUbi
|
|
77
|
+
uint256 public minActiveUsers;
|
|
75
78
|
|
|
76
79
|
// A pool of GD to give to activated users,
|
|
77
80
|
// since they will enter the UBI pool
|
|
@@ -99,14 +102,14 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
99
102
|
// Total claims per user stat
|
|
100
103
|
mapping(address => uint256) public totalClaimsPerUser;
|
|
101
104
|
|
|
105
|
+
bool public paused;
|
|
106
|
+
|
|
102
107
|
// Emits when a withdraw has been succeded
|
|
103
108
|
event WithdrawFromDao(uint256 prevBalance, uint256 newBalance);
|
|
104
109
|
|
|
105
110
|
// Emits when a user is activated
|
|
106
111
|
event ActivatedUser(address indexed account);
|
|
107
112
|
|
|
108
|
-
bool public paused;
|
|
109
|
-
|
|
110
113
|
// Emits when a fish has been succeded
|
|
111
114
|
event InactiveUserFished(
|
|
112
115
|
address indexed caller,
|
|
@@ -154,11 +157,11 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
154
157
|
firstClaimPool = _firstClaimPool;
|
|
155
158
|
shouldWithdrawFromDAO = false;
|
|
156
159
|
cycleLength = 90; //90 days
|
|
157
|
-
iterationGasLimit =
|
|
160
|
+
iterationGasLimit = 185000; //token transfer cost under superfluid
|
|
158
161
|
periodStart = (block.timestamp / (1 days)) * 1 days + 12 hours; //set start time to GMT noon
|
|
159
162
|
startOfCycle = periodStart;
|
|
160
|
-
useFirstClaimPool =
|
|
161
|
-
|
|
163
|
+
useFirstClaimPool = address(_firstClaimPool) != address(0);
|
|
164
|
+
minActiveUsers = 1000;
|
|
162
165
|
}
|
|
163
166
|
|
|
164
167
|
function setUseFirstClaimPool(bool _use) public {
|
|
@@ -268,8 +271,10 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
268
271
|
currentDayInCycle() >= currentCycleLength || shouldStartEarlyCycle
|
|
269
272
|
) //start of cycle or first time
|
|
270
273
|
{
|
|
271
|
-
if (shouldWithdrawFromDAO)
|
|
272
|
-
|
|
274
|
+
if (shouldWithdrawFromDAO) {
|
|
275
|
+
_withdrawFromDao();
|
|
276
|
+
currentBalance = token.balanceOf(address(this));
|
|
277
|
+
}
|
|
273
278
|
dailyCyclePool = currentBalance / cycleLength;
|
|
274
279
|
currentCycleLength = cycleLength;
|
|
275
280
|
startOfCycle = (block.timestamp / (1 hours)) * 1 hours; //start at a round hour
|
|
@@ -285,17 +290,20 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
285
290
|
Funds storage funds = dailyUBIHistory[currentDay];
|
|
286
291
|
funds.hasWithdrawn = shouldWithdrawFromDAO;
|
|
287
292
|
funds.openAmount = currentBalance;
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
}
|
|
293
|
+
dailyUbi = dailyCyclePool / max(activeUsersCount, minActiveUsers);
|
|
294
|
+
//update minActiveUsers as claimers grow
|
|
295
|
+
minActiveUsers = max(activeUsersCount / 2, minActiveUsers);
|
|
296
|
+
|
|
293
297
|
emit UBICalculated(currentDay, dailyUbi, block.number);
|
|
294
298
|
}
|
|
295
299
|
|
|
296
300
|
return dailyUbi;
|
|
297
301
|
}
|
|
298
302
|
|
|
303
|
+
function max(uint256 a, uint256 b) private pure returns (uint256) {
|
|
304
|
+
return a >= b ? a : b;
|
|
305
|
+
}
|
|
306
|
+
|
|
299
307
|
/**
|
|
300
308
|
*@dev Sets the currentDay variable to amount of days
|
|
301
309
|
* since start of contract.
|
|
@@ -356,12 +364,14 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
356
364
|
* and emits an event in case of claimed.
|
|
357
365
|
* In case that `isFirstTime` is true, it awards the user.
|
|
358
366
|
* @param _account the account which recieves the funds
|
|
367
|
+
* @param _target the recipient of funds
|
|
359
368
|
* @param _amount the amount to transfer
|
|
360
369
|
* @param _isClaimed true for claimed
|
|
361
370
|
* @param _isFirstTime true for new user or fished user
|
|
362
371
|
*/
|
|
363
372
|
function _transferTokens(
|
|
364
373
|
address _account,
|
|
374
|
+
address _target,
|
|
365
375
|
uint256 _amount,
|
|
366
376
|
bool _isClaimed,
|
|
367
377
|
bool _isFirstTime
|
|
@@ -377,7 +387,7 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
377
387
|
|
|
378
388
|
// awards a new user or a fished user
|
|
379
389
|
if (_isFirstTime) {
|
|
380
|
-
uint256 awardAmount = firstClaimPool.awardUser(
|
|
390
|
+
uint256 awardAmount = firstClaimPool.awardUser(_target);
|
|
381
391
|
claimDay[currentDay].claimAmount += awardAmount;
|
|
382
392
|
emit UBIClaimed(_account, awardAmount);
|
|
383
393
|
} else {
|
|
@@ -386,7 +396,7 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
386
396
|
emit UBIClaimed(_account, _amount);
|
|
387
397
|
}
|
|
388
398
|
IGoodDollar token = nativeToken();
|
|
389
|
-
require(token.transfer(
|
|
399
|
+
require(token.transfer(_target, _amount), "claim transfer failed");
|
|
390
400
|
}
|
|
391
401
|
}
|
|
392
402
|
|
|
@@ -403,11 +413,9 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
403
413
|
{
|
|
404
414
|
_dailyCyclePool = currentBalance / cycleLength;
|
|
405
415
|
}
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
_dailyUbi = defaultDailyUbi;
|
|
410
|
-
}
|
|
416
|
+
|
|
417
|
+
_dailyUbi = _dailyCyclePool / max(activeUsersCount, minActiveUsers);
|
|
418
|
+
|
|
411
419
|
return _dailyUbi;
|
|
412
420
|
}
|
|
413
421
|
|
|
@@ -447,9 +455,10 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
447
455
|
* calculats the amount the account can claims, and transfers the amount to the account.
|
|
448
456
|
* Emits the address of account and amount claimed.
|
|
449
457
|
* @param _account The claimer account
|
|
458
|
+
* @param _target recipient of funds
|
|
450
459
|
* @return A bool indicating if UBI was claimed
|
|
451
460
|
*/
|
|
452
|
-
function _claim(address _account) internal returns (bool) {
|
|
461
|
+
function _claim(address _account, address _target) internal returns (bool) {
|
|
453
462
|
// calculats the formula up today ie on day 0 there are no active users, on day 1 any user
|
|
454
463
|
// (new or active) will trigger the calculation with the active users count of the day before
|
|
455
464
|
// and so on. the new or inactive users that will become active today, will not take into account
|
|
@@ -462,16 +471,16 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
462
471
|
!fishedUsersAddresses[_account] &&
|
|
463
472
|
!hasClaimed(_account)
|
|
464
473
|
) {
|
|
465
|
-
_transferTokens(_account, newDistribution, true, false);
|
|
474
|
+
_transferTokens(_account, _target, newDistribution, true, false);
|
|
466
475
|
return true;
|
|
467
476
|
} else if (!isNotNewUser(_account) || fishedUsersAddresses[_account]) {
|
|
468
477
|
// a unregistered or fished user
|
|
469
478
|
activeUsersCount += 1;
|
|
470
479
|
fishedUsersAddresses[_account] = false;
|
|
471
480
|
if (useFirstClaimPool) {
|
|
472
|
-
_transferTokens(_account, 0, false, true);
|
|
481
|
+
_transferTokens(_account, _target, 0, false, true);
|
|
473
482
|
} else {
|
|
474
|
-
_transferTokens(_account, newDistribution, true, false);
|
|
483
|
+
_transferTokens(_account, _target, newDistribution, true, false);
|
|
475
484
|
}
|
|
476
485
|
emit ActivatedUser(_account);
|
|
477
486
|
return true;
|
|
@@ -486,18 +495,39 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
486
495
|
* @return A bool indicating if UBI was claimed
|
|
487
496
|
*/
|
|
488
497
|
function claim() public requireStarted returns (bool) {
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
);
|
|
493
|
-
bool didClaim = _claim(msg.sender);
|
|
498
|
+
address whitelistedRoot = IIdentityV2(nameService.getAddress("IDENTITY"))
|
|
499
|
+
.getWhitelistedRoot(msg.sender);
|
|
500
|
+
require(whitelistedRoot != address(0), "UBIScheme: not whitelisted");
|
|
501
|
+
bool didClaim = _claim(whitelistedRoot, msg.sender);
|
|
494
502
|
address claimerDistribution = nameService.getAddress("GDAO_CLAIMERS");
|
|
495
503
|
if (didClaim && claimerDistribution != address(0)) {
|
|
496
|
-
ClaimersDistribution(claimerDistribution).updateClaim(
|
|
504
|
+
ClaimersDistribution(claimerDistribution).updateClaim(whitelistedRoot);
|
|
497
505
|
}
|
|
498
506
|
return didClaim;
|
|
499
507
|
}
|
|
500
508
|
|
|
509
|
+
function _canFish(address _account) internal view returns (bool) {
|
|
510
|
+
return
|
|
511
|
+
isNotNewUser(_account) &&
|
|
512
|
+
!isActiveUser(_account) &&
|
|
513
|
+
!fishedUsersAddresses[_account];
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
function _fish(address _account, bool _withTransfer) internal returns (bool) {
|
|
517
|
+
fishedUsersAddresses[_account] = true; // marking the account as fished so it won't refish
|
|
518
|
+
|
|
519
|
+
// making sure that the calculation will be with the correct number of active users in case
|
|
520
|
+
// that the fisher is the first to make the calculation today
|
|
521
|
+
uint256 newDistribution = distributionFormula();
|
|
522
|
+
if (activeUsersCount > 0) {
|
|
523
|
+
activeUsersCount -= 1;
|
|
524
|
+
}
|
|
525
|
+
if (_withTransfer)
|
|
526
|
+
_transferTokens(msg.sender, msg.sender, newDistribution, false, false);
|
|
527
|
+
emit InactiveUserFished(msg.sender, _account, newDistribution);
|
|
528
|
+
return true;
|
|
529
|
+
}
|
|
530
|
+
|
|
501
531
|
/**
|
|
502
532
|
* @dev In order to update users from active to inactive, we give out incentive to people
|
|
503
533
|
* to update the status of inactive users, this action is called "Fishing". Anyone can
|
|
@@ -511,22 +541,9 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
511
541
|
function fish(address _account) public requireStarted returns (bool) {
|
|
512
542
|
// checking if the account exists. that's been done because that
|
|
513
543
|
// will prevent trying to fish non-existence accounts in the system
|
|
514
|
-
require(
|
|
515
|
-
isNotNewUser(_account) && !isActiveUser(_account),
|
|
516
|
-
"is not an inactive user"
|
|
517
|
-
);
|
|
518
|
-
require(!fishedUsersAddresses[_account], "already fished");
|
|
519
|
-
fishedUsersAddresses[_account] = true; // marking the account as fished so it won't refish
|
|
544
|
+
require(_canFish(_account), "can't fish");
|
|
520
545
|
|
|
521
|
-
|
|
522
|
-
// that the fisher is the first to make the calculation today
|
|
523
|
-
uint256 newDistribution = distributionFormula();
|
|
524
|
-
if (activeUsersCount > 0) {
|
|
525
|
-
activeUsersCount -= 1;
|
|
526
|
-
}
|
|
527
|
-
_transferTokens(msg.sender, newDistribution, false, false);
|
|
528
|
-
emit InactiveUserFished(msg.sender, _account, newDistribution);
|
|
529
|
-
return true;
|
|
546
|
+
return _fish(_account, true);
|
|
530
547
|
}
|
|
531
548
|
|
|
532
549
|
/**
|
|
@@ -540,21 +557,23 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
540
557
|
requireStarted
|
|
541
558
|
returns (uint256)
|
|
542
559
|
{
|
|
543
|
-
|
|
560
|
+
uint256 i;
|
|
561
|
+
uint256 bounty;
|
|
562
|
+
|
|
563
|
+
for (; i < _accounts.length; ++i) {
|
|
544
564
|
if (gasleft() < iterationGasLimit) {
|
|
545
|
-
|
|
546
|
-
return i;
|
|
565
|
+
break;
|
|
547
566
|
}
|
|
548
|
-
if (
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
!fishedUsersAddresses[_accounts[i]]
|
|
552
|
-
) {
|
|
553
|
-
require(fish(_accounts[i]), "fish has failed");
|
|
567
|
+
if (_canFish(_accounts[i])) {
|
|
568
|
+
require(_fish(_accounts[i], false), "fish has failed");
|
|
569
|
+
bounty += dailyUbi;
|
|
554
570
|
}
|
|
555
571
|
}
|
|
556
|
-
|
|
557
|
-
|
|
572
|
+
if (bounty > 0) {
|
|
573
|
+
_transferTokens(msg.sender, msg.sender, bounty, false, false);
|
|
574
|
+
}
|
|
575
|
+
emit TotalFished(i);
|
|
576
|
+
return i;
|
|
558
577
|
}
|
|
559
578
|
|
|
560
579
|
/**
|
|
@@ -572,18 +591,19 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
572
591
|
paused = _pause;
|
|
573
592
|
}
|
|
574
593
|
|
|
575
|
-
function upgrade() public {
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
594
|
+
// function upgrade() public {
|
|
595
|
+
// _onlyAvatar();
|
|
596
|
+
// paused = true;
|
|
597
|
+
// activeUsersCount = 50000; //estimated
|
|
598
|
+
// dailyUbi = 0; //required so distributionformula will trigger
|
|
599
|
+
// cycleLength = 30;
|
|
600
|
+
// currentCycleLength = 0; //this will trigger a new cycle calculation in distribution formula
|
|
601
|
+
// startOfCycle = block.timestamp - 91 days; //this will trigger a new calculation in distributionFormula
|
|
602
|
+
// periodStart = 1646136000;
|
|
603
|
+
// maxDailyUBI = 50000;
|
|
604
|
+
// distributionFormula();
|
|
605
|
+
// emit CycleLengthSet(cycleLength);
|
|
606
|
+
// }
|
|
587
607
|
|
|
588
608
|
function setActiveUserCount(uint256 _activeUserCount) public {
|
|
589
609
|
_onlyAvatar();
|
|
@@ -4,10 +4,10 @@ pragma solidity >=0.8.0;
|
|
|
4
4
|
|
|
5
5
|
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
6
6
|
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
|
|
7
|
-
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
|
|
8
7
|
import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
|
|
9
8
|
|
|
10
9
|
import "../Interfaces.sol";
|
|
10
|
+
import "../utils/NameService.sol";
|
|
11
11
|
|
|
12
12
|
/* @title Admin wallet contract allowing whitelisting and topping up of
|
|
13
13
|
* addresses
|
|
@@ -15,7 +15,6 @@ import "../Interfaces.sol";
|
|
|
15
15
|
contract AdminWallet is
|
|
16
16
|
Initializable,
|
|
17
17
|
UUPSUpgradeable,
|
|
18
|
-
OwnableUpgradeable,
|
|
19
18
|
AccessControlUpgradeable
|
|
20
19
|
{
|
|
21
20
|
bytes32 public constant WALLET_ADMIN_ROLE = keccak256("WALLET_ADMIN_ROLE");
|
|
@@ -28,10 +27,13 @@ contract AdminWallet is
|
|
|
28
27
|
uint256 public toppingTimes;
|
|
29
28
|
uint256 public gasPrice;
|
|
30
29
|
|
|
31
|
-
|
|
30
|
+
NameService public nameService;
|
|
32
31
|
|
|
33
32
|
mapping(uint256 => mapping(address => uint256)) toppings;
|
|
34
33
|
|
|
34
|
+
uint64 public maxDailyNewWallets;
|
|
35
|
+
uint64 public day;
|
|
36
|
+
|
|
35
37
|
event AdminsAdded(address payable[] indexed admins);
|
|
36
38
|
event AdminsRemoved(address[] indexed admins);
|
|
37
39
|
event WalletTopped(address indexed user, uint256 amount);
|
|
@@ -47,17 +49,29 @@ contract AdminWallet is
|
|
|
47
49
|
*/
|
|
48
50
|
function initialize(
|
|
49
51
|
address payable[] memory _admins,
|
|
52
|
+
NameService _ns,
|
|
50
53
|
address _owner,
|
|
51
|
-
|
|
54
|
+
uint256 _gasPrice
|
|
52
55
|
) public initializer {
|
|
53
56
|
__AccessControl_init_unchained();
|
|
54
|
-
__Ownable_init_unchained();
|
|
55
57
|
_setupRole(DEFAULT_ADMIN_ROLE, _owner);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
_setupRole(DEFAULT_ADMIN_ROLE, msg.sender);
|
|
59
|
+
|
|
60
|
+
_setDefaults(600000, 9e6, 3, _gasPrice);
|
|
61
|
+
nameService = _ns;
|
|
58
62
|
if (_admins.length > 0) {
|
|
59
63
|
addAdmins(_admins);
|
|
60
64
|
}
|
|
65
|
+
if (msg.sender != _owner) revokeRole(DEFAULT_ADMIN_ROLE, msg.sender);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
modifier onlyOwner() {
|
|
69
|
+
require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), "not owner");
|
|
70
|
+
_;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function getIdentity() public view returns (IIdentityV2) {
|
|
74
|
+
return IIdentityV2(nameService.getAddress("IDENTITY"));
|
|
61
75
|
}
|
|
62
76
|
|
|
63
77
|
function setDefaults(
|
|
@@ -171,28 +185,45 @@ contract AdminWallet is
|
|
|
171
185
|
onlyAdmin
|
|
172
186
|
reimburseGas
|
|
173
187
|
{
|
|
174
|
-
|
|
188
|
+
getIdentity().addWhitelistedWithDID(_user, _did);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/* @dev Function to add given address to whitelist of identity contract
|
|
192
|
+
* can only be done by admins of wallet and if wallet is an IdentityAdmin
|
|
193
|
+
*/
|
|
194
|
+
function whitelist(
|
|
195
|
+
address _user,
|
|
196
|
+
string memory _did,
|
|
197
|
+
uint256 orgChain,
|
|
198
|
+
uint256 dateAuthenticated
|
|
199
|
+
) public onlyAdmin reimburseGas {
|
|
200
|
+
getIdentity().addWhitelistedWithDIDAndChain(
|
|
201
|
+
_user,
|
|
202
|
+
_did,
|
|
203
|
+
orgChain,
|
|
204
|
+
dateAuthenticated
|
|
205
|
+
);
|
|
175
206
|
}
|
|
176
207
|
|
|
177
208
|
/* @dev Function to remove given address from whitelist of identity contract
|
|
178
209
|
* can only be done by admins of wallet and if wallet is an IdentityAdmin
|
|
179
210
|
*/
|
|
180
211
|
function removeWhitelist(address _user) public onlyAdmin reimburseGas {
|
|
181
|
-
|
|
212
|
+
getIdentity().removeWhitelisted(_user);
|
|
182
213
|
}
|
|
183
214
|
|
|
184
215
|
/* @dev Function to add given address to blacklist of identity contract
|
|
185
216
|
* can only be done by admins of wallet and if wallet is an IdentityAdmin
|
|
186
217
|
*/
|
|
187
218
|
function blacklist(address _user) public onlyAdmin reimburseGas {
|
|
188
|
-
|
|
219
|
+
getIdentity().addBlacklisted(_user);
|
|
189
220
|
}
|
|
190
221
|
|
|
191
222
|
/* @dev Function to remove given address from blacklist of identity contract
|
|
192
223
|
* can only be done by admins of wallet and if wallet is an IdentityAdmin
|
|
193
224
|
*/
|
|
194
225
|
function removeBlacklist(address _user) public onlyAdmin reimburseGas {
|
|
195
|
-
|
|
226
|
+
getIdentity().removeBlacklisted(_user);
|
|
196
227
|
}
|
|
197
228
|
|
|
198
229
|
/* @dev Function to top given address with amount of G$ given in constructor
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity >=0.8.0;
|
|
4
|
+
|
|
5
|
+
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
6
|
+
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
|
|
7
|
+
import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
|
|
8
|
+
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
|
|
9
|
+
|
|
10
|
+
import "../Interfaces.sol";
|
|
11
|
+
import "../utils/NameService.sol";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
@title Admin wallet contract allowing whitelisting and topping up of addresses
|
|
15
|
+
@notice this is for Fuse with OwnableUpgradeable to keep storage layout
|
|
16
|
+
*/
|
|
17
|
+
contract AdminWalletFuse is
|
|
18
|
+
Initializable,
|
|
19
|
+
UUPSUpgradeable,
|
|
20
|
+
OwnableUpgradeable,
|
|
21
|
+
AccessControlUpgradeable
|
|
22
|
+
{
|
|
23
|
+
bytes32 public constant WALLET_ADMIN_ROLE = keccak256("WALLET_ADMIN_ROLE");
|
|
24
|
+
|
|
25
|
+
address payable[] adminlist;
|
|
26
|
+
|
|
27
|
+
uint256 public toppingAmount;
|
|
28
|
+
uint256 public adminToppingAmount;
|
|
29
|
+
|
|
30
|
+
uint256 public toppingTimes;
|
|
31
|
+
uint256 public gasPrice;
|
|
32
|
+
|
|
33
|
+
NameService public nameService;
|
|
34
|
+
|
|
35
|
+
mapping(uint256 => mapping(address => uint256)) toppings;
|
|
36
|
+
|
|
37
|
+
uint64 public maxDailyNewWallets;
|
|
38
|
+
uint64 public day;
|
|
39
|
+
|
|
40
|
+
event AdminsAdded(address payable[] indexed admins);
|
|
41
|
+
event AdminsRemoved(address[] indexed admins);
|
|
42
|
+
event WalletTopped(address indexed user, uint256 amount);
|
|
43
|
+
event GenericCall(
|
|
44
|
+
address indexed _contract,
|
|
45
|
+
bytes _data,
|
|
46
|
+
uint256 _value,
|
|
47
|
+
bool _success
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @dev initialize
|
|
52
|
+
*/
|
|
53
|
+
function initialize(
|
|
54
|
+
address payable[] memory _admins,
|
|
55
|
+
NameService _ns,
|
|
56
|
+
address _owner,
|
|
57
|
+
uint256 _gasPrice
|
|
58
|
+
) public initializer {
|
|
59
|
+
__AccessControl_init_unchained();
|
|
60
|
+
__Ownable_init_unchained();
|
|
61
|
+
|
|
62
|
+
_setupRole(DEFAULT_ADMIN_ROLE, _owner);
|
|
63
|
+
|
|
64
|
+
_setDefaults(600000, 9e6, 3, _gasPrice);
|
|
65
|
+
nameService = _ns;
|
|
66
|
+
if (_admins.length > 0) {
|
|
67
|
+
addAdmins(_admins);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function getIdentity() public view returns (IIdentityV2) {
|
|
72
|
+
return IIdentityV2(nameService.getAddress("IDENTITY"));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function setDefaults(
|
|
76
|
+
uint256 _toppingAmount,
|
|
77
|
+
uint256 _adminToppingAmount,
|
|
78
|
+
uint256 _toppingTimes,
|
|
79
|
+
uint256 _gasPrice
|
|
80
|
+
) external onlyOwner {
|
|
81
|
+
_setDefaults(_toppingAmount, _adminToppingAmount, _toppingTimes, _gasPrice);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function _setDefaults(
|
|
85
|
+
uint256 _toppingAmount,
|
|
86
|
+
uint256 _adminToppingAmount,
|
|
87
|
+
uint256 _toppingTimes,
|
|
88
|
+
uint256 _gasPrice
|
|
89
|
+
) internal {
|
|
90
|
+
gasPrice = _gasPrice;
|
|
91
|
+
toppingAmount = _toppingAmount * _gasPrice;
|
|
92
|
+
adminToppingAmount = _adminToppingAmount * _gasPrice;
|
|
93
|
+
toppingTimes = _toppingTimes;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function _authorizeUpgrade(address newImplementation)
|
|
97
|
+
internal
|
|
98
|
+
override
|
|
99
|
+
onlyOwner
|
|
100
|
+
{}
|
|
101
|
+
|
|
102
|
+
/* @dev Modifier that checks if caller is admin of wallet
|
|
103
|
+
*/
|
|
104
|
+
modifier onlyAdmin() {
|
|
105
|
+
require(isAdmin(msg.sender), "Caller is not admin");
|
|
106
|
+
_;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
modifier reimburseGas() {
|
|
110
|
+
_;
|
|
111
|
+
if (msg.sender.balance <= adminToppingAmount / 2 && isAdmin(msg.sender)) {
|
|
112
|
+
_topWallet(payable(msg.sender));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
receive() external payable {}
|
|
117
|
+
|
|
118
|
+
/* @dev Internal function that sets current day
|
|
119
|
+
*/
|
|
120
|
+
function currentDay() internal view returns (uint256) {
|
|
121
|
+
return (block.timestamp / 1 days);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* @dev Function to add list of addresses to admins
|
|
125
|
+
* can only be called by creator of contract
|
|
126
|
+
* @param _admins the list of addresses to add
|
|
127
|
+
*/
|
|
128
|
+
function addAdmins(address payable[] memory _admins) public onlyOwner {
|
|
129
|
+
for (uint256 i = 0; i < _admins.length; i++) {
|
|
130
|
+
if (isAdmin(_admins[i]) == false) {
|
|
131
|
+
grantRole(WALLET_ADMIN_ROLE, _admins[i]);
|
|
132
|
+
adminlist.push(_admins[i]);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
emit AdminsAdded(_admins);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/* @dev Function to remove list of addresses to admins
|
|
139
|
+
* can only be called by creator of contract
|
|
140
|
+
* @param _admins the list of addresses to remove
|
|
141
|
+
*/
|
|
142
|
+
function removeAdmins(address[] memory _admins) public onlyOwner {
|
|
143
|
+
for (uint256 i = 0; i < _admins.length; i++) {
|
|
144
|
+
revokeRole(WALLET_ADMIN_ROLE, _admins[i]);
|
|
145
|
+
}
|
|
146
|
+
emit AdminsRemoved(_admins);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* @dev top admins
|
|
151
|
+
*/
|
|
152
|
+
function topAdmins(uint256 startIndex, uint256 endIndex) public reimburseGas {
|
|
153
|
+
require(adminlist.length > startIndex, "Admin list is empty");
|
|
154
|
+
for (uint256 i = startIndex; (i < adminlist.length && i < endIndex); i++) {
|
|
155
|
+
if (
|
|
156
|
+
isAdmin(adminlist[i]) && adminlist[i].balance <= adminToppingAmount / 2
|
|
157
|
+
) {
|
|
158
|
+
_topWallet(adminlist[i]);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/* @dev top the first 50 admins
|
|
164
|
+
*/
|
|
165
|
+
function topAdmins(uint256 startIndex) public reimburseGas {
|
|
166
|
+
topAdmins(startIndex, startIndex + 50);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* @dev Function to check if given address is an admin
|
|
171
|
+
* @param _user the address to check
|
|
172
|
+
* @return A bool indicating if user is an admin
|
|
173
|
+
*/
|
|
174
|
+
function isAdmin(address _user) public view returns (bool) {
|
|
175
|
+
return hasRole(WALLET_ADMIN_ROLE, _user);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* @dev Function to add given address to whitelist of identity contract
|
|
179
|
+
* can only be done by admins of wallet and if wallet is an IdentityAdmin
|
|
180
|
+
*/
|
|
181
|
+
function whitelist(address _user, string memory _did)
|
|
182
|
+
public
|
|
183
|
+
onlyAdmin
|
|
184
|
+
reimburseGas
|
|
185
|
+
{
|
|
186
|
+
getIdentity().addWhitelistedWithDID(_user, _did);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/* @dev Function to add given address to whitelist of identity contract
|
|
190
|
+
* can only be done by admins of wallet and if wallet is an IdentityAdmin
|
|
191
|
+
*/
|
|
192
|
+
function whitelist(
|
|
193
|
+
address _user,
|
|
194
|
+
string memory _did,
|
|
195
|
+
uint256 orgChain,
|
|
196
|
+
uint256 dateAuthenticated
|
|
197
|
+
) public onlyAdmin reimburseGas {
|
|
198
|
+
getIdentity().addWhitelistedWithDIDAndChain(
|
|
199
|
+
_user,
|
|
200
|
+
_did,
|
|
201
|
+
orgChain,
|
|
202
|
+
dateAuthenticated
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/* @dev Function to remove given address from whitelist of identity contract
|
|
207
|
+
* can only be done by admins of wallet and if wallet is an IdentityAdmin
|
|
208
|
+
*/
|
|
209
|
+
function removeWhitelist(address _user) public onlyAdmin reimburseGas {
|
|
210
|
+
getIdentity().removeWhitelisted(_user);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/* @dev Function to add given address to blacklist of identity contract
|
|
214
|
+
* can only be done by admins of wallet and if wallet is an IdentityAdmin
|
|
215
|
+
*/
|
|
216
|
+
function blacklist(address _user) public onlyAdmin reimburseGas {
|
|
217
|
+
getIdentity().addBlacklisted(_user);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/* @dev Function to remove given address from blacklist of identity contract
|
|
221
|
+
* can only be done by admins of wallet and if wallet is an IdentityAdmin
|
|
222
|
+
*/
|
|
223
|
+
function removeBlacklist(address _user) public onlyAdmin reimburseGas {
|
|
224
|
+
getIdentity().removeBlacklisted(_user);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/* @dev Function to top given address with amount of G$ given in constructor
|
|
228
|
+
* can only be done by admin the amount of times specified in constructor per day
|
|
229
|
+
* @param _user The address to transfer to
|
|
230
|
+
*/
|
|
231
|
+
function topWallet(address payable _user) public onlyAdmin reimburseGas {
|
|
232
|
+
require(
|
|
233
|
+
toppings[currentDay()][_user] < toppingTimes,
|
|
234
|
+
"User wallet has been topped too many times today"
|
|
235
|
+
);
|
|
236
|
+
if (address(_user).balance >= toppingAmount / 4) return;
|
|
237
|
+
|
|
238
|
+
_topWallet(_user);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
function _topWallet(address payable _wallet) internal {
|
|
242
|
+
toppings[currentDay()][_wallet] += 1;
|
|
243
|
+
uint256 amount = isAdmin(_wallet) ? adminToppingAmount : toppingAmount;
|
|
244
|
+
uint256 toTop = amount - address(_wallet).balance;
|
|
245
|
+
_wallet.transfer(toTop);
|
|
246
|
+
emit WalletTopped(_wallet, toTop);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* @dev perform a generic call to an arbitrary contract
|
|
251
|
+
* @param _contract the contract's address to call
|
|
252
|
+
* @param _data ABI-encoded contract call to call `_contract` address.
|
|
253
|
+
* @param _value value (ETH) to transfer with the transaction
|
|
254
|
+
* @return success success or fail
|
|
255
|
+
* bytes - the return bytes of the called contract's function.
|
|
256
|
+
*/
|
|
257
|
+
function genericCall(
|
|
258
|
+
address _contract,
|
|
259
|
+
bytes memory _data,
|
|
260
|
+
uint256 _value
|
|
261
|
+
)
|
|
262
|
+
public
|
|
263
|
+
onlyAdmin
|
|
264
|
+
reimburseGas
|
|
265
|
+
returns (bool success, bytes memory returnValue)
|
|
266
|
+
{
|
|
267
|
+
// solhint-disable-next-line avoid-call-value
|
|
268
|
+
(success, returnValue) = _contract.call{ value: _value }(_data);
|
|
269
|
+
emit GenericCall(_contract, _data, _value, success);
|
|
270
|
+
}
|
|
271
|
+
}
|