@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
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity >=0.8;
|
|
4
|
+
|
|
5
|
+
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
6
|
+
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
|
|
7
|
+
import "../Interfaces.sol";
|
|
8
|
+
import "../utils/NameService.sol";
|
|
9
|
+
import "../utils/DAOUpgradeableContract.sol";
|
|
10
|
+
|
|
11
|
+
// import "hardhat/console.sol";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @title InvitesV1 contract that handles invites with pre allocated bounty pool
|
|
15
|
+
* 1.1 adds invitee bonus
|
|
16
|
+
* 2 uses uups upgradeable - not compatible upgrade for v1
|
|
17
|
+
*/
|
|
18
|
+
contract InvitesV2 is DAOUpgradeableContract {
|
|
19
|
+
struct Stats {
|
|
20
|
+
uint256 totalApprovedInvites;
|
|
21
|
+
uint256 totalBountiesPaid;
|
|
22
|
+
uint256 totalInvited;
|
|
23
|
+
uint256[5] __reserevedSpace;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
struct User {
|
|
27
|
+
address invitedBy;
|
|
28
|
+
bytes32 inviteCode;
|
|
29
|
+
bool bountyPaid;
|
|
30
|
+
address[] invitees;
|
|
31
|
+
address[] pending;
|
|
32
|
+
uint256 level;
|
|
33
|
+
uint256 levelStarted;
|
|
34
|
+
uint256 totalApprovedInvites;
|
|
35
|
+
uint256 totalEarned;
|
|
36
|
+
uint256 joinedAt;
|
|
37
|
+
uint256[5] __reserevedSpace;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
struct Level {
|
|
41
|
+
uint256 toNext;
|
|
42
|
+
uint256 bounty; //in G$ cents ie 2 decimals
|
|
43
|
+
uint256 daysToComplete;
|
|
44
|
+
uint256[5] __reserevedSpace;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
mapping(bytes32 => address) public codeToUser;
|
|
48
|
+
mapping(address => User) public users;
|
|
49
|
+
|
|
50
|
+
mapping(uint256 => Level) public levels;
|
|
51
|
+
|
|
52
|
+
address public owner;
|
|
53
|
+
cERC20 public goodDollar;
|
|
54
|
+
bool public active;
|
|
55
|
+
Stats public stats;
|
|
56
|
+
|
|
57
|
+
bool public levelExpirationEnabled;
|
|
58
|
+
|
|
59
|
+
event InviteeJoined(address indexed inviter, address indexed invitee);
|
|
60
|
+
event InviterBounty(
|
|
61
|
+
address indexed inviter,
|
|
62
|
+
address indexed invitee,
|
|
63
|
+
uint256 bountyPaid,
|
|
64
|
+
uint256 inviterLevel,
|
|
65
|
+
bool earnedLevel
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
modifier ownerOrAvatar() {
|
|
69
|
+
require(
|
|
70
|
+
msg.sender == owner || msg.sender == avatar,
|
|
71
|
+
"Only owner or avatar can perform this action"
|
|
72
|
+
);
|
|
73
|
+
_;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
modifier isActive() {
|
|
77
|
+
require(active, "not active");
|
|
78
|
+
_;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function initialize(
|
|
82
|
+
INameService _ns,
|
|
83
|
+
uint256 _level0Bounty,
|
|
84
|
+
address _owner
|
|
85
|
+
) public initializer {
|
|
86
|
+
__init_invites(_ns, _level0Bounty, _owner);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function __init_invites(
|
|
90
|
+
INameService _ns,
|
|
91
|
+
uint256 _level0Bounty,
|
|
92
|
+
address _owner
|
|
93
|
+
) internal virtual {
|
|
94
|
+
setDAO(_ns);
|
|
95
|
+
owner = _owner;
|
|
96
|
+
active = true;
|
|
97
|
+
Level storage lvl = levels[0];
|
|
98
|
+
lvl.bounty = _level0Bounty;
|
|
99
|
+
goodDollar = cERC20(nameService.getAddress("GOODDOLLAR"));
|
|
100
|
+
levelExpirationEnabled = false;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function _authorizeUpgrade(address newImplementation)
|
|
104
|
+
internal
|
|
105
|
+
override
|
|
106
|
+
ownerOrAvatar
|
|
107
|
+
{}
|
|
108
|
+
|
|
109
|
+
function getIdentity() public view returns (IIdentityV2) {
|
|
110
|
+
return IIdentityV2(nameService.getAddress("IDENTITY"));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function setLevelExpirationEnabled(bool _isEnabled) public ownerOrAvatar {
|
|
114
|
+
levelExpirationEnabled = _isEnabled;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function join(bytes32 _myCode, bytes32 _inviterCode) public isActive {
|
|
118
|
+
require(
|
|
119
|
+
codeToUser[_myCode] == address(0) ||
|
|
120
|
+
codeToUser[_myCode] == msg.sender ||
|
|
121
|
+
address(uint160(uint256(_myCode))) == msg.sender,
|
|
122
|
+
"invite code already in use"
|
|
123
|
+
);
|
|
124
|
+
require(_myCode != _inviterCode, "self invite");
|
|
125
|
+
User storage user = users[msg.sender]; // this is not expensive as user is new
|
|
126
|
+
address inviter = codeToUser[_inviterCode];
|
|
127
|
+
//allow user to set inviter if doesnt have one
|
|
128
|
+
require(
|
|
129
|
+
user.inviteCode == 0x0 ||
|
|
130
|
+
(user.invitedBy == address(0) && inviter != address(0)),
|
|
131
|
+
"user already joined"
|
|
132
|
+
);
|
|
133
|
+
if (user.inviteCode == 0x0) {
|
|
134
|
+
user.inviteCode = _myCode;
|
|
135
|
+
user.levelStarted = block.timestamp;
|
|
136
|
+
user.joinedAt = block.timestamp;
|
|
137
|
+
codeToUser[_myCode] = msg.sender;
|
|
138
|
+
}
|
|
139
|
+
if (inviter != address(0)) {
|
|
140
|
+
require(inviter != msg.sender, "self invite");
|
|
141
|
+
user.invitedBy = inviter;
|
|
142
|
+
users[inviter].invitees.push(msg.sender);
|
|
143
|
+
users[inviter].pending.push(msg.sender);
|
|
144
|
+
stats.totalInvited += 1;
|
|
145
|
+
}
|
|
146
|
+
if (canCollectBountyFor(msg.sender)) {
|
|
147
|
+
_bountyFor(msg.sender, true);
|
|
148
|
+
}
|
|
149
|
+
emit InviteeJoined(inviter, msg.sender);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function _whitelistedOnChainOrDefault(address _invitee)
|
|
153
|
+
internal
|
|
154
|
+
view
|
|
155
|
+
returns (uint256 chainId)
|
|
156
|
+
{
|
|
157
|
+
(bool success, bytes memory result) = address(getIdentity()).staticcall(
|
|
158
|
+
abi.encodeWithSignature("getWhitelistedOnChainId(address)", _invitee)
|
|
159
|
+
);
|
|
160
|
+
if (success == false) {
|
|
161
|
+
return _chainId();
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return abi.decode(result, (uint256));
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function canCollectBountyFor(address _invitee) public view returns (bool) {
|
|
168
|
+
address invitedBy = users[_invitee].invitedBy;
|
|
169
|
+
uint256 daysToComplete = levels[users[invitedBy].level].daysToComplete;
|
|
170
|
+
bool isLevelExpired = levelExpirationEnabled == true &&
|
|
171
|
+
daysToComplete > 0 &&
|
|
172
|
+
daysToComplete <
|
|
173
|
+
(users[_invitee].joinedAt - users[invitedBy].levelStarted) / 1 days;
|
|
174
|
+
|
|
175
|
+
return
|
|
176
|
+
invitedBy != address(0) &&
|
|
177
|
+
!users[_invitee].bountyPaid &&
|
|
178
|
+
getIdentity().isWhitelisted(_invitee) &&
|
|
179
|
+
getIdentity().isWhitelisted(invitedBy) &&
|
|
180
|
+
_whitelistedOnChainOrDefault(_invitee) == _chainId() &&
|
|
181
|
+
isLevelExpired == false;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
function getInvitees(address _inviter)
|
|
185
|
+
public
|
|
186
|
+
view
|
|
187
|
+
returns (address[] memory)
|
|
188
|
+
{
|
|
189
|
+
return users[_inviter].invitees;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
function getPendingInvitees(address _inviter)
|
|
193
|
+
public
|
|
194
|
+
view
|
|
195
|
+
returns (address[] memory)
|
|
196
|
+
{
|
|
197
|
+
address[] memory pending = users[_inviter].pending;
|
|
198
|
+
uint256 cur = 0;
|
|
199
|
+
uint256 total = 0;
|
|
200
|
+
for (uint256 i; i < pending.length; i++) {
|
|
201
|
+
if (!users[pending[i]].bountyPaid) {
|
|
202
|
+
total++;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
address[] memory result = new address[](total);
|
|
207
|
+
|
|
208
|
+
for (uint256 i; i < pending.length; i++) {
|
|
209
|
+
if (!users[pending[i]].bountyPaid) {
|
|
210
|
+
result[cur] = pending[i];
|
|
211
|
+
cur++;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
return result;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
function getPendingBounties(address _inviter) public view returns (uint256) {
|
|
219
|
+
address[] memory pending = users[_inviter].pending;
|
|
220
|
+
uint256 total = 0;
|
|
221
|
+
for (uint256 i; i < pending.length; i++) {
|
|
222
|
+
if (canCollectBountyFor(pending[i])) {
|
|
223
|
+
total++;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return total;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* @dev pay bounty for the inviter of _invitee
|
|
231
|
+
* invitee need to be whitelisted
|
|
232
|
+
*/
|
|
233
|
+
function bountyFor(address _invitee)
|
|
234
|
+
public
|
|
235
|
+
isActive
|
|
236
|
+
returns (uint256 bounty)
|
|
237
|
+
{
|
|
238
|
+
require(canCollectBountyFor(_invitee), "user not elligble for bounty yet");
|
|
239
|
+
return _bountyFor(_invitee, true);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function _bountyFor(address _invitee, bool isSingleBounty)
|
|
243
|
+
internal
|
|
244
|
+
returns (uint256 bounty)
|
|
245
|
+
{
|
|
246
|
+
address invitedBy = users[_invitee].invitedBy;
|
|
247
|
+
uint256 joinedAt = users[_invitee].joinedAt;
|
|
248
|
+
Level memory level = levels[users[invitedBy].level];
|
|
249
|
+
|
|
250
|
+
bool isLevelExpired = level.daysToComplete > 0 &&
|
|
251
|
+
joinedAt > users[invitedBy].levelStarted && //prevent overflow in subtraction
|
|
252
|
+
level.daysToComplete <
|
|
253
|
+
(joinedAt - users[invitedBy].levelStarted) / 1 days; //how long after level started did invitee join
|
|
254
|
+
|
|
255
|
+
users[_invitee].bountyPaid = true;
|
|
256
|
+
users[invitedBy].totalApprovedInvites += 1;
|
|
257
|
+
users[invitedBy].totalEarned += level.bounty;
|
|
258
|
+
stats.totalApprovedInvites += 1;
|
|
259
|
+
stats.totalBountiesPaid += level.bounty;
|
|
260
|
+
|
|
261
|
+
bool earnedLevel = false;
|
|
262
|
+
if (
|
|
263
|
+
level.toNext > 0 &&
|
|
264
|
+
users[invitedBy].totalApprovedInvites >= level.toNext &&
|
|
265
|
+
isLevelExpired == false
|
|
266
|
+
) {
|
|
267
|
+
users[invitedBy].level += 1;
|
|
268
|
+
users[invitedBy].levelStarted = block.timestamp;
|
|
269
|
+
earnedLevel = true;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
if (isSingleBounty) goodDollar.transfer(invitedBy, level.bounty);
|
|
273
|
+
goodDollar.transfer(_invitee, level.bounty / 2); //pay invitee half the bounty
|
|
274
|
+
emit InviterBounty(
|
|
275
|
+
invitedBy,
|
|
276
|
+
_invitee,
|
|
277
|
+
level.bounty,
|
|
278
|
+
users[invitedBy].level,
|
|
279
|
+
earnedLevel
|
|
280
|
+
);
|
|
281
|
+
|
|
282
|
+
return level.bounty;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
@dev collect bounties for invitees by msg.sender that are now whitelisted
|
|
287
|
+
*/
|
|
288
|
+
function collectBounties() public isActive {
|
|
289
|
+
address[] storage pendings = users[msg.sender].pending;
|
|
290
|
+
uint256 totalBounties = 0;
|
|
291
|
+
for (int256 i = int256(pendings.length) - 1; i >= 0; i--) {
|
|
292
|
+
if (gasleft() < 185000) break; // leave enough gas for the token transfer around 150k if we are using supertoken
|
|
293
|
+
address pending = pendings[uint256(i)];
|
|
294
|
+
if (canCollectBountyFor(pending)) {
|
|
295
|
+
totalBounties += _bountyFor(pending, false);
|
|
296
|
+
pendings.pop();
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
if (totalBounties > 0) goodDollar.transfer(msg.sender, totalBounties);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
function setLevel(
|
|
303
|
+
uint256 _lvl,
|
|
304
|
+
uint256 _toNext,
|
|
305
|
+
uint256 _bounty,
|
|
306
|
+
uint256 _daysToComplete
|
|
307
|
+
) public ownerOrAvatar {
|
|
308
|
+
Level storage lvl = levels[_lvl];
|
|
309
|
+
lvl.toNext = _toNext;
|
|
310
|
+
lvl.daysToComplete = _daysToComplete;
|
|
311
|
+
lvl.bounty = _bounty;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
function setActive(bool _active) public ownerOrAvatar {
|
|
315
|
+
active = _active;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
function end() public ownerOrAvatar isActive {
|
|
319
|
+
uint256 gdBalance = goodDollar.balanceOf(address(this));
|
|
320
|
+
goodDollar.transfer(avatar, gdBalance);
|
|
321
|
+
payable(msg.sender).transfer(address(this).balance);
|
|
322
|
+
active = false;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/// @notice helper function to get current chain id
|
|
326
|
+
/// @return chainId id
|
|
327
|
+
function _chainId() internal view returns (uint256 chainId) {
|
|
328
|
+
assembly {
|
|
329
|
+
chainId := chainid()
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* @dev
|
|
335
|
+
* 1.2.0 - final changes before release
|
|
336
|
+
* 1.3.0 - allow to set inviter later
|
|
337
|
+
* 1.4.0 - improve gas for bounty collection
|
|
338
|
+
* 1.5.0 - more gas improvements
|
|
339
|
+
* 2 uses uups upgradeable - not compatible upgrade for v1
|
|
340
|
+
* 2.1 prevent multichain claims
|
|
341
|
+
*/
|
|
342
|
+
function version() public pure returns (string memory) {
|
|
343
|
+
return "2.1";
|
|
344
|
+
}
|
|
345
|
+
}
|
|
@@ -9,7 +9,7 @@ import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol";
|
|
|
9
9
|
contract AaveMock is ERC20PresetMinterPauserUpgradeable {
|
|
10
10
|
using SafeMathUpgradeable for uint256;
|
|
11
11
|
|
|
12
|
-
constructor() {
|
|
12
|
+
constructor() initializer {
|
|
13
13
|
__ERC20PresetMinterPauser_init("AAVE", "Aave");
|
|
14
14
|
}
|
|
15
15
|
|
|
@@ -5,7 +5,7 @@ pragma solidity >=0.8.0;
|
|
|
5
5
|
import "@openzeppelin/contracts-upgradeable/token/ERC20/presets/ERC20PresetMinterPauserUpgradeable.sol";
|
|
6
6
|
|
|
7
7
|
contract DAIMock is ERC20PresetMinterPauserUpgradeable {
|
|
8
|
-
constructor() {
|
|
8
|
+
constructor() initializer {
|
|
9
9
|
__ERC20PresetMinterPauser_init("DAI", "DAI");
|
|
10
10
|
}
|
|
11
11
|
|
|
@@ -9,7 +9,7 @@ import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol";
|
|
|
9
9
|
contract DecimalsMock is ERC20PresetMinterPauserUpgradeable {
|
|
10
10
|
uint8 tokenDecimals;
|
|
11
11
|
|
|
12
|
-
constructor(uint8 decimals) {
|
|
12
|
+
constructor(uint8 decimals) initializer {
|
|
13
13
|
__ERC20PresetMinterPauser_init("Eight Decimals Token", "EDT");
|
|
14
14
|
tokenDecimals = decimals;
|
|
15
15
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity >=0.8;
|
|
3
|
+
|
|
4
|
+
import "../token/FeesFormula.sol";
|
|
5
|
+
|
|
6
|
+
contract FeesFormulaMock is IFeesFormula {
|
|
7
|
+
uint256 public immutable feePerMillion;
|
|
8
|
+
|
|
9
|
+
constructor(uint256 feePerMillion_) {
|
|
10
|
+
require(feePerMillion_ <= 1e6, "fee higher than 100%");
|
|
11
|
+
feePerMillion = feePerMillion_;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function getTxFees(
|
|
15
|
+
uint256 value,
|
|
16
|
+
address sender,
|
|
17
|
+
address recipient
|
|
18
|
+
) external view returns (uint256 fee, bool senderPays) {
|
|
19
|
+
return (value * feePerMillion / 1E6, true);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
pragma solidity >=0.8.0;
|
|
3
3
|
|
|
4
4
|
import "../governance/GoodDollarStaking.sol";
|
|
5
|
+
import "hardhat/console.sol";
|
|
5
6
|
|
|
6
7
|
contract GoodDollarStakingMock is GoodDollarStaking {
|
|
7
8
|
constructor(
|
|
@@ -21,4 +22,19 @@ contract GoodDollarStakingMock is GoodDollarStaking {
|
|
|
21
22
|
function upgrade() external override {
|
|
22
23
|
_setMonthlyRewards(address(this), 2 ether * 1e6); //2M monthly GOOD
|
|
23
24
|
}
|
|
25
|
+
|
|
26
|
+
function upgradeFrom(address staker, uint256 amount)
|
|
27
|
+
external
|
|
28
|
+
returns (uint256 shares)
|
|
29
|
+
{
|
|
30
|
+
console.log(
|
|
31
|
+
"from: %s balance: %s",
|
|
32
|
+
address(msg.sender),
|
|
33
|
+
token.balanceOf(msg.sender)
|
|
34
|
+
);
|
|
35
|
+
require(
|
|
36
|
+
msg.sender == nameService.getAddress("GDAO_STAKING"),
|
|
37
|
+
"not GDAO_STAKING"
|
|
38
|
+
);
|
|
39
|
+
}
|
|
24
40
|
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity >=0.8;
|
|
3
|
+
|
|
4
|
+
import "../Interfaces.sol";
|
|
5
|
+
|
|
6
|
+
contract IdentityMock is IIdentity {
|
|
7
|
+
|
|
8
|
+
address public immutable owner;
|
|
9
|
+
address public immutable daoContract;
|
|
10
|
+
|
|
11
|
+
constructor(address daoContract_) {
|
|
12
|
+
owner = msg.sender;
|
|
13
|
+
daoContract = daoContract_;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function isWhitelisted(address user) external view returns (bool) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function addWhitelistedWithDID(address account, string memory did) external {}
|
|
21
|
+
|
|
22
|
+
function removeWhitelisted(address account) external {}
|
|
23
|
+
|
|
24
|
+
function addBlacklisted(address account) external {}
|
|
25
|
+
|
|
26
|
+
function removeBlacklisted(address account) external {}
|
|
27
|
+
|
|
28
|
+
function isBlacklisted(address user) external view returns (bool) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function addIdentityAdmin(address account) external returns (bool) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function setAvatar(address _avatar) external {}
|
|
37
|
+
|
|
38
|
+
function isIdentityAdmin(address account) external view returns (bool) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// provided by the immutable "owner"
|
|
43
|
+
//function owner() external view returns (address);
|
|
44
|
+
|
|
45
|
+
function removeContract(address account) external {}
|
|
46
|
+
|
|
47
|
+
function isDAOContract(address account) external view returns (bool) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function addrToDID(address account) external view returns (string memory) {
|
|
52
|
+
return "not implemented";
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function didHashToAddress(bytes32 hash) external view returns (address) {
|
|
56
|
+
return address(0); // not implemented
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -9,7 +9,7 @@ pragma solidity >=0.8.0;
|
|
|
9
9
|
contract LendingPoolMock is ERC20PresetMinterPauserUpgradeable {
|
|
10
10
|
address public underlyingAsset;
|
|
11
11
|
|
|
12
|
-
constructor(address _asset) {
|
|
12
|
+
constructor(address _asset) initializer {
|
|
13
13
|
underlyingAsset = _asset;
|
|
14
14
|
__ERC20PresetMinterPauser_init("aUSDC", "aUSDC");
|
|
15
15
|
}
|
|
@@ -9,16 +9,11 @@ import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol";
|
|
|
9
9
|
contract SixteenDecimalsTokenMock is ERC20PresetMinterPauserUpgradeable {
|
|
10
10
|
using SafeMathUpgradeable for uint256;
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
constructor() {
|
|
12
|
+
constructor() initializer {
|
|
15
13
|
__ERC20PresetMinterPauser_init("SixteenDecimalsToken", "SDT");
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
20
16
|
function decimals() public pure override returns (uint8) {
|
|
21
17
|
return 16;
|
|
22
18
|
}
|
|
23
|
-
|
|
24
19
|
}
|
|
@@ -9,16 +9,11 @@ import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol";
|
|
|
9
9
|
contract TwentyDecimalsTokenMock is ERC20PresetMinterPauserUpgradeable {
|
|
10
10
|
using SafeMathUpgradeable for uint256;
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
constructor() {
|
|
12
|
+
constructor() initializer {
|
|
15
13
|
__ERC20PresetMinterPauser_init("TwentyDecimalsToken", "TDT");
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
20
16
|
function decimals() public pure override returns (uint8) {
|
|
21
17
|
return 20;
|
|
22
18
|
}
|
|
23
|
-
|
|
24
19
|
}
|
|
@@ -34,8 +34,9 @@ contract UpgradableMock3 is DAOUpgradeableContract {
|
|
|
34
34
|
function decimals() public pure returns (uint256) {
|
|
35
35
|
return 3;
|
|
36
36
|
}
|
|
37
|
+
|
|
37
38
|
function initialize(INameService _ns) public initializer {
|
|
38
|
-
|
|
39
|
+
setDAO(_ns);
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
|
|
@@ -43,7 +44,8 @@ contract UpgradableMock4 is DAOUpgradeableContract {
|
|
|
43
44
|
function decimals() public pure returns (uint256) {
|
|
44
45
|
return 4;
|
|
45
46
|
}
|
|
47
|
+
|
|
46
48
|
function initialize(INameService _ns) public initializer {
|
|
47
|
-
|
|
49
|
+
setDAO(_ns);
|
|
48
50
|
}
|
|
49
|
-
}
|
|
51
|
+
}
|
|
@@ -9,16 +9,11 @@ import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol";
|
|
|
9
9
|
contract USDCMock is ERC20PresetMinterPauserUpgradeable {
|
|
10
10
|
using SafeMathUpgradeable for uint256;
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
constructor() {
|
|
12
|
+
constructor() initializer {
|
|
15
13
|
__ERC20PresetMinterPauser_init("USDC", "USDC");
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
20
16
|
function decimals() public pure override returns (uint8) {
|
|
21
17
|
return 6;
|
|
22
18
|
}
|
|
23
|
-
|
|
24
19
|
}
|
|
@@ -14,7 +14,7 @@ contract cBATMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
14
14
|
|
|
15
15
|
uint256 exchangeRate = uint256(100e28).div(99);
|
|
16
16
|
|
|
17
|
-
constructor(ERC20PresetMinterPauserUpgradeable _bat) {
|
|
17
|
+
constructor(ERC20PresetMinterPauserUpgradeable _bat) initializer {
|
|
18
18
|
__ERC20PresetMinterPauser_init("Compound BAT", "cBAT");
|
|
19
19
|
bat = _bat;
|
|
20
20
|
}
|
|
@@ -22,19 +22,15 @@ contract cBATMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
22
22
|
function mint(uint256 batAmount) public returns (uint256) {
|
|
23
23
|
bat.transferFrom(msg.sender, address(this), batAmount);
|
|
24
24
|
//mul by 1e10 to match to precision of 1e28 of the exchange rate
|
|
25
|
-
_mint(
|
|
26
|
-
msg.sender,
|
|
27
|
-
rdiv(batAmount * 1e10, exchangeRateStored()).div(1e19)
|
|
28
|
-
); //div to reduce precision from RAY 1e27 to 1e8 precision of cDAI
|
|
25
|
+
_mint(msg.sender, rdiv(batAmount * 1e10, exchangeRateStored()).div(1e19)); //div to reduce precision from RAY 1e27 to 1e8 precision of cDAI
|
|
29
26
|
return 0;
|
|
30
27
|
}
|
|
31
28
|
|
|
32
29
|
function redeem(uint256 cBatAmount) public returns (uint256) {
|
|
33
|
-
uint256 daiAmount =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
);
|
|
30
|
+
uint256 daiAmount = rmul(
|
|
31
|
+
cBatAmount * 1e10, //bring cdai 8 decimals to rdai precision
|
|
32
|
+
exchangeRateStored().div(10)
|
|
33
|
+
);
|
|
38
34
|
//div to reduce precision from 1e28 of exchange rate to 1e27 that DSMath works on
|
|
39
35
|
// uint256 daiAmount = cdaiAmount.mul(100).div(99);
|
|
40
36
|
_burn(msg.sender, cBatAmount);
|
|
@@ -43,8 +39,7 @@ contract cBATMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
43
39
|
}
|
|
44
40
|
|
|
45
41
|
function redeemUnderlying(uint256 batAmount) public returns (uint256) {
|
|
46
|
-
uint256 cdaiAmount =
|
|
47
|
-
rdiv(batAmount * 1e10, exchangeRateStored()).div(1e19);
|
|
42
|
+
uint256 cdaiAmount = rdiv(batAmount * 1e10, exchangeRateStored()).div(1e19);
|
|
48
43
|
_burn(msg.sender, cdaiAmount);
|
|
49
44
|
bat.transfer(msg.sender, batAmount);
|
|
50
45
|
return 0;
|
|
@@ -12,7 +12,7 @@ contract cDAILowWorthMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
12
12
|
using SafeMathUpgradeable for uint256;
|
|
13
13
|
uint256 exchangeRate = uint256(100e28).div(99);
|
|
14
14
|
|
|
15
|
-
constructor(ERC20PresetMinterPauserUpgradeable _dai) {
|
|
15
|
+
constructor(ERC20PresetMinterPauserUpgradeable _dai) initializer {
|
|
16
16
|
__ERC20PresetMinterPauser_init("Compound DAI", "cDAI");
|
|
17
17
|
dai = _dai;
|
|
18
18
|
}
|
|
@@ -20,19 +20,15 @@ contract cDAILowWorthMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
20
20
|
function mint(uint256 daiAmount) public returns (uint256) {
|
|
21
21
|
dai.transferFrom(msg.sender, address(this), daiAmount);
|
|
22
22
|
//mul by 1e10 to match to precision of 1e28 of the exchange rate
|
|
23
|
-
_mint(
|
|
24
|
-
msg.sender,
|
|
25
|
-
rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19)
|
|
26
|
-
); //div to reduce precision from RAY 1e27 to 1e8 precision of cDAI
|
|
23
|
+
_mint(msg.sender, rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19)); //div to reduce precision from RAY 1e27 to 1e8 precision of cDAI
|
|
27
24
|
return 0;
|
|
28
25
|
}
|
|
29
26
|
|
|
30
27
|
function redeem(uint256 cdaiAmount) public returns (uint256) {
|
|
31
|
-
uint256 daiAmount =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
);
|
|
28
|
+
uint256 daiAmount = rmul(
|
|
29
|
+
cdaiAmount * 1e10, //bring cdai 8 decimals to rdai precision
|
|
30
|
+
exchangeRateStored().div(10)
|
|
31
|
+
);
|
|
36
32
|
//div to reduce precision from 1e28 of exchange rate to 1e27 that DSMath works on
|
|
37
33
|
// uint256 daiAmount = cdaiAmount.mul(100).div(99);
|
|
38
34
|
_burn(msg.sender, cdaiAmount);
|
|
@@ -41,8 +37,8 @@ contract cDAILowWorthMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
41
37
|
}
|
|
42
38
|
|
|
43
39
|
function redeemUnderlying(uint256 daiAmount) public returns (uint256) {
|
|
44
|
-
uint256 cdaiAmount =
|
|
45
|
-
|
|
40
|
+
uint256 cdaiAmount = rdiv(daiAmount * 1e10, exchangeRateStored().mul(2))
|
|
41
|
+
.div(1e19);
|
|
46
42
|
_burn(msg.sender, cdaiAmount);
|
|
47
43
|
dai.transfer(msg.sender, daiAmount.div(2));
|
|
48
44
|
return 0;
|
|
@@ -15,7 +15,7 @@ contract cDAIMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
15
15
|
uint256 exchangeRate = 200000000000000000000000000; // initial exchange rate 0.02 from original cToken
|
|
16
16
|
uint256 mantissa = 28;
|
|
17
17
|
|
|
18
|
-
constructor(ERC20PresetMinterPauserUpgradeable _dai) {
|
|
18
|
+
constructor(ERC20PresetMinterPauserUpgradeable _dai) initializer {
|
|
19
19
|
__ERC20PresetMinterPauser_init("Compound DAI", "cDAI");
|
|
20
20
|
dai = _dai;
|
|
21
21
|
}
|