@gooddollar/goodprotocol 1.0.30-beta.2 → 1.0.30-beta.3
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/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/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/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/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/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 +640 -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 +35 -2
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +35 -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 +35 -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 +37 -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 +44 -83
- 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 +2590 -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/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/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/InvitesV1.sol +6 -24
- package/contracts/invite/InvitesV2.sol +338 -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 +5 -1
- package/contracts/reserve/GoodReserveCDai.sol +15 -5
- package/contracts/staking/FuseStakingV3.sol +42 -112
- package/contracts/staking/GoodFundManager.sol +2 -2
- 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 +234 -0
- package/contracts/token/superfluid/ERC20Permit.sol +101 -0
- package/contracts/token/superfluid/ISuperGoodDollar.sol +84 -0
- package/contracts/token/superfluid/SuperGoodDollar.sol +348 -0
- package/contracts/token/superfluid/SuperToken.sol +712 -0
- package/contracts/token/superfluid/SuperfluidToken.sol +402 -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/BuyAndBridgeHelper.sol +108 -0
- package/contracts/utils/GoodDollarMintBurnWrapper.sol +19 -1
- package/hardhat.config.ts +60 -9
- package/package.json +19 -10
- package/releases/deploy-settings.json +47 -3
- package/releases/deployment.json +67 -196
- package/scripts/analytics/activeWalletsStats.ts +4 -0
- package/scripts/analytics/gdinflow.ts +3 -0
- package/scripts/analytics/p2pTxs.ts +582 -0
- package/scripts/analytics/tokenInOutStats.ts +3 -1
- package/scripts/deployFullDAO.ts +39 -19
- package/scripts/deployGnosisSafe.ts +21 -21
- package/scripts/gdx/gdxAirdropCalculation.ts +11 -12
- 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 +152 -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 +205 -7
- package/scripts/multichain-deploy/verifyEtherscan.ts +197 -0
- package/scripts/staking/stakersGdRewardsCalculation.ts +57 -46
- 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-deploy.ts +6 -0
- package/scripts/upgrades/identity-upgrade.ts +153 -0
- package/scripts/{multichain-deploy → upgrades}/nonubiDistribution-deploy.ts +2 -5
- package/scripts/upgrades/transferDaoToGuardians.ts +80 -0
- package/test/faucet/Faucet.test.ts +184 -0
- package/test/{FuseFaucet.test.ts → faucet/FuseFaucet.test.ts} +4 -3
- 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 +499 -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 +11 -13
- package/test/staking/GoodAaveStakingFactory.test.ts +36 -31
- package/test/staking/SimpleDAIStaking.test.ts +13 -19
- package/test/staking/StakingRewards.test.ts +32 -32
- 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 +342 -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 +13 -4
- 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/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 +55 -0
- package/types/DistributionHelperTest.ts +55 -0
- package/types/DistributionHelperTestHelper.ts +55 -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/FuseStakingV3.ts +75 -208
- 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 +55 -21
- 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/InvitesV1.ts +9 -0
- package/types/InvitesV2.ts +1015 -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 +3632 -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/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 +34 -1
- package/types/factories/DistributionHelperTest__factory.ts +34 -1
- package/types/factories/DistributionHelper__factory.ts +34 -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/FuseFaucet__factory.ts +14 -1
- package/types/factories/FuseStakingV3__factory.ts +43 -82
- 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 +36 -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/InvitesV1__factory.ts +14 -1
- package/types/factories/InvitesV2__factory.ts +688 -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 +2643 -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 +432 -0
- package/types/index.ts +92 -0
- package/yarn.lock +2348 -864
|
@@ -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,108 @@
|
|
|
1
|
+
pragma solidity >=0.8.0;
|
|
2
|
+
import "../reserve/ExchangeHelper.sol";
|
|
3
|
+
|
|
4
|
+
contract BuyAndBridgeHelper {
|
|
5
|
+
struct BuyParams {
|
|
6
|
+
address[] buyPath;
|
|
7
|
+
uint256 tokenAmount;
|
|
8
|
+
uint256 minReturn;
|
|
9
|
+
uint256 minDAIAmount;
|
|
10
|
+
address targetAddress;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
uint256 public constant CELO = 42220;
|
|
14
|
+
uint256 public constant FUSE = 122;
|
|
15
|
+
|
|
16
|
+
ExchangeHelper public exHelper;
|
|
17
|
+
|
|
18
|
+
address public gd;
|
|
19
|
+
address public gdx;
|
|
20
|
+
address public fuseBridge;
|
|
21
|
+
IMultichainRouter public multiChainBridge;
|
|
22
|
+
address public anyGoodDollar; //G$ multichain wrapper on ethereum
|
|
23
|
+
|
|
24
|
+
constructor(ExchangeHelper _exh) {
|
|
25
|
+
exHelper = _exh;
|
|
26
|
+
updateAddresses();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function updateAddresses() public {
|
|
30
|
+
fuseBridge = exHelper.nameService().getAddress("BRIDGE_CONTRACT");
|
|
31
|
+
multiChainBridge = IMultichainRouter(
|
|
32
|
+
exHelper.nameService().getAddress("MULTICHAIN_ROUTER")
|
|
33
|
+
);
|
|
34
|
+
anyGoodDollar = exHelper.nameService().getAddress(
|
|
35
|
+
"MULTICHAIN_ANYGOODDOLLAR"
|
|
36
|
+
);
|
|
37
|
+
gd = exHelper.nameService().getAddress("GOODDOLLAR");
|
|
38
|
+
gdx = exHelper.nameService().getAddress("RESERVE");
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function buyAndBridge(BuyParams memory _params, uint256 _toChain)
|
|
42
|
+
public
|
|
43
|
+
payable
|
|
44
|
+
returns (uint256)
|
|
45
|
+
{
|
|
46
|
+
require(_toChain == FUSE || _toChain == CELO, "invalid chainId");
|
|
47
|
+
uint256 valueToSend;
|
|
48
|
+
if (_params.buyPath[0] != address(0)) {
|
|
49
|
+
ERC20(_params.buyPath[0]).approve(address(exHelper), type(uint256).max);
|
|
50
|
+
ERC20(_params.buyPath[0]).transferFrom(
|
|
51
|
+
msg.sender,
|
|
52
|
+
address(this),
|
|
53
|
+
_params.tokenAmount
|
|
54
|
+
);
|
|
55
|
+
} else {
|
|
56
|
+
valueToSend = _params.tokenAmount;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
address recipient = _params.targetAddress == address(0)
|
|
60
|
+
? msg.sender
|
|
61
|
+
: _params.targetAddress;
|
|
62
|
+
|
|
63
|
+
//we send bought G$s here
|
|
64
|
+
uint256 bought = exHelper.buy{ value: valueToSend }(
|
|
65
|
+
_params.buyPath,
|
|
66
|
+
_params.tokenAmount,
|
|
67
|
+
_params.minReturn,
|
|
68
|
+
_params.minDAIAmount,
|
|
69
|
+
address(this)
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
require(bought > 0, "buy failed");
|
|
73
|
+
|
|
74
|
+
address gdx = exHelper.nameService().getAddress("RESERVE");
|
|
75
|
+
//make sure we send GDX we received to buyer
|
|
76
|
+
if (ERC20(gdx).balanceOf(address(this)) >= bought) {
|
|
77
|
+
require(ERC20(gdx).transfer(msg.sender, bought), "gdx");
|
|
78
|
+
}
|
|
79
|
+
bridge(_toChain, recipient, bought);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @notice internal function that takes care of sending the G$s according to the transfer type
|
|
84
|
+
* @param _recipient data about the recipient
|
|
85
|
+
* @param _amount how much to send
|
|
86
|
+
*/
|
|
87
|
+
function bridge(
|
|
88
|
+
uint256 _toChain,
|
|
89
|
+
address _recipient,
|
|
90
|
+
uint256 _amount
|
|
91
|
+
) internal {
|
|
92
|
+
if (_toChain == FUSE) {
|
|
93
|
+
IGoodDollar(gd).transferAndCall(
|
|
94
|
+
fuseBridge,
|
|
95
|
+
_amount,
|
|
96
|
+
abi.encodePacked(_recipient)
|
|
97
|
+
);
|
|
98
|
+
} else if (_toChain == CELO) {
|
|
99
|
+
IGoodDollar(gd).approve(address(multiChainBridge), _amount);
|
|
100
|
+
multiChainBridge.anySwapOutUnderlying(
|
|
101
|
+
anyGoodDollar,
|
|
102
|
+
_recipient,
|
|
103
|
+
_amount,
|
|
104
|
+
_toChain
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -17,7 +17,7 @@ import "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeab
|
|
|
17
17
|
import "@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol";
|
|
18
18
|
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
19
19
|
import "@openzeppelin/contracts/utils/math/Math.sol";
|
|
20
|
-
import "hardhat/console.sol";
|
|
20
|
+
// import "hardhat/console.sol";
|
|
21
21
|
|
|
22
22
|
import "./DAOUpgradeableContract.sol";
|
|
23
23
|
|
|
@@ -625,4 +625,22 @@ contract GoodDollarMintBurnWrapper is
|
|
|
625
625
|
minterSupply[minter].lastDayReset = currentDay;
|
|
626
626
|
}
|
|
627
627
|
}
|
|
628
|
+
|
|
629
|
+
function upgradeSuperGoodDollar() external onlyRole(DEFAULT_ADMIN_ROLE) {
|
|
630
|
+
address _newns = 0x0F5dB7a64A6a64052693676CA898EC7F7A94FF4e;
|
|
631
|
+
_revokeRole(DEFAULT_ADMIN_ROLE, avatar); //old avatar
|
|
632
|
+
setDAO(INameService(_newns)); //changes avatar + nativeToken
|
|
633
|
+
token = address(nativeToken());
|
|
634
|
+
_setupRole(DEFAULT_ADMIN_ROLE, avatar); //new avatar
|
|
635
|
+
updateFrequency = 3 days;
|
|
636
|
+
_setMinterCaps(
|
|
637
|
+
0xf27Ee99622C3C9b264583dACB2cCE056e194494f,
|
|
638
|
+
0,
|
|
639
|
+
0,
|
|
640
|
+
0,
|
|
641
|
+
0,
|
|
642
|
+
300 * 1e6 * 1e18, //300M
|
|
643
|
+
5000 //50%
|
|
644
|
+
);
|
|
645
|
+
}
|
|
628
646
|
}
|