@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
|
@@ -14,7 +14,7 @@ contract cDAINonMintableMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
14
14
|
|
|
15
15
|
uint256 exchangeRate = uint256(100e28).div(99);
|
|
16
16
|
|
|
17
|
-
constructor(ERC20PresetMinterPauserUpgradeable _dai) {
|
|
17
|
+
constructor(ERC20PresetMinterPauserUpgradeable _dai) initializer {
|
|
18
18
|
__ERC20PresetMinterPauser_init("Compound DAI", "cDAI");
|
|
19
19
|
dai = _dai;
|
|
20
20
|
}
|
|
@@ -22,19 +22,15 @@ contract cDAINonMintableMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
22
22
|
function mint(uint256 daiAmount) public returns (uint256) {
|
|
23
23
|
dai.transferFrom(msg.sender, address(this), daiAmount);
|
|
24
24
|
//mul by 1e10 to match to precision of 1e28 of the exchange rate
|
|
25
|
-
_mint(
|
|
26
|
-
msg.sender,
|
|
27
|
-
rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19)
|
|
28
|
-
); //div to reduce precision from RAY 1e27 to 1e8 precision of cDAI
|
|
25
|
+
_mint(msg.sender, rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19)); //div to reduce precision from RAY 1e27 to 1e8 precision of cDAI
|
|
29
26
|
return 1;
|
|
30
27
|
}
|
|
31
28
|
|
|
32
29
|
function redeem(uint256 cdaiAmount) public returns (uint256) {
|
|
33
|
-
uint256 daiAmount =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
);
|
|
30
|
+
uint256 daiAmount = rmul(
|
|
31
|
+
cdaiAmount * 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, cdaiAmount);
|
|
@@ -43,8 +39,7 @@ contract cDAINonMintableMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
43
39
|
}
|
|
44
40
|
|
|
45
41
|
function redeemUnderlying(uint256 daiAmount) public returns (uint256) {
|
|
46
|
-
uint256 cdaiAmount =
|
|
47
|
-
rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19);
|
|
42
|
+
uint256 cdaiAmount = rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19);
|
|
48
43
|
_burn(msg.sender, cdaiAmount);
|
|
49
44
|
dai.transfer(msg.sender, daiAmount);
|
|
50
45
|
return 0;
|
|
@@ -15,7 +15,7 @@ contract cDecimalsMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
15
15
|
uint256 exchangeRate = 20000000000000000; // initial exchange rate 0.02 from original cToken
|
|
16
16
|
uint256 mantissa = 18;
|
|
17
17
|
|
|
18
|
-
constructor(ERC20PresetMinterPauserUpgradeable _edt) {
|
|
18
|
+
constructor(ERC20PresetMinterPauserUpgradeable _edt) initializer {
|
|
19
19
|
__ERC20PresetMinterPauser_init("Compound EDT", "cEDT");
|
|
20
20
|
edt = _edt;
|
|
21
21
|
mantissa = 18 + _edt.decimals() - 8;
|
|
@@ -14,7 +14,7 @@ contract cSDTMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
14
14
|
uint256 exchangeRate = 2000000000000000000000000; // initial exchange rate 0.02 from original cToken
|
|
15
15
|
uint256 mantissa = 26;
|
|
16
16
|
|
|
17
|
-
constructor(ERC20PresetMinterPauserUpgradeable _edt) {
|
|
17
|
+
constructor(ERC20PresetMinterPauserUpgradeable _edt) initializer {
|
|
18
18
|
__ERC20PresetMinterPauser_init("Compound SDT", "cSDT");
|
|
19
19
|
edt = _edt;
|
|
20
20
|
}
|
|
@@ -38,8 +38,8 @@ contract cSDTMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
function redeemUnderlying(uint256 edtAmount) public returns (uint256) {
|
|
41
|
-
uint256 cEdtAmount =
|
|
42
|
-
|
|
41
|
+
uint256 cEdtAmount = ((edtAmount / 1e8) * (10**mantissa)) /
|
|
42
|
+
exchangeRateStored(); // based on https://compound.finance/docs#protocol-math
|
|
43
43
|
_burn(msg.sender, cEdtAmount);
|
|
44
44
|
edt.transfer(msg.sender, edtAmount);
|
|
45
45
|
return 0;
|
|
@@ -15,7 +15,7 @@ contract cUSDCMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
15
15
|
uint256 exchangeRate = 200000000000000; // initial exchange rate 0.02 from original cToken
|
|
16
16
|
uint256 mantissa = 16;
|
|
17
17
|
|
|
18
|
-
constructor(ERC20PresetMinterPauserUpgradeable _usdc) {
|
|
18
|
+
constructor(ERC20PresetMinterPauserUpgradeable _usdc) initializer {
|
|
19
19
|
__ERC20PresetMinterPauser_init("Compound USDC", "cUSDC");
|
|
20
20
|
usdc = _usdc;
|
|
21
21
|
}
|
|
@@ -31,8 +31,8 @@ contract cUSDCMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
function redeem(uint256 cUsdcAmount) public returns (uint256) {
|
|
34
|
-
uint256 usdcAmount =
|
|
35
|
-
|
|
34
|
+
uint256 usdcAmount = ((cUsdcAmount / 1e2) * exchangeRateStored()) /
|
|
35
|
+
10**mantissa; // based on https://compound.finance/docs#protocol-math
|
|
36
36
|
|
|
37
37
|
_burn(msg.sender, cUsdcAmount);
|
|
38
38
|
usdc.transfer(msg.sender, usdcAmount);
|
|
@@ -40,8 +40,8 @@ contract cUSDCMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
function redeemUnderlying(uint256 usdcAmount) public returns (uint256) {
|
|
43
|
-
uint256 cUsdcAmount =
|
|
44
|
-
|
|
43
|
+
uint256 cUsdcAmount = (usdcAmount * 1e2 * (10**mantissa)) /
|
|
44
|
+
exchangeRateStored(); // based on https://compound.finance/docs#protocol-math
|
|
45
45
|
_burn(msg.sender, cUsdcAmount);
|
|
46
46
|
usdc.transfer(msg.sender, usdcAmount);
|
|
47
47
|
return 0;
|
|
@@ -8,7 +8,7 @@ import "@openzeppelin/contracts/utils/math/Math.sol";
|
|
|
8
8
|
|
|
9
9
|
import "../utils/DAOUpgradeableContract.sol";
|
|
10
10
|
|
|
11
|
-
import "hardhat/console.sol";
|
|
11
|
+
// import "hardhat/console.sol";
|
|
12
12
|
|
|
13
13
|
/***
|
|
14
14
|
* @dev DistributionHelper receives funds and distributes them to recipients
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// we use a custom file and not openzeppelin directly since the DAOStack Controller expects `mint` to return bool
|
|
3
|
+
// we also add the erc20 permit
|
|
4
|
+
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20PermitUpgradeable.sol";
|
|
8
|
+
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol";
|
|
9
|
+
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PausableUpgradeable.sol";
|
|
10
|
+
import "@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol";
|
|
11
|
+
import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
|
|
12
|
+
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @dev {ERC20} token, including:
|
|
16
|
+
*
|
|
17
|
+
* - ability for holders to burn (destroy) their tokens
|
|
18
|
+
* - a minter role that allows for token minting (creation)
|
|
19
|
+
* - a pauser role that allows to stop all token transfers
|
|
20
|
+
*
|
|
21
|
+
* This contract uses {AccessControl} to lock permissioned functions using the
|
|
22
|
+
* different roles - head to its documentation for details.
|
|
23
|
+
*
|
|
24
|
+
* The account that deploys the contract will be granted the minter and pauser
|
|
25
|
+
* roles, as well as the default admin role, which will let it grant both minter
|
|
26
|
+
* and pauser roles to other accounts.
|
|
27
|
+
*/
|
|
28
|
+
contract ERC20PresetMinterPauserUpgradeable is
|
|
29
|
+
Initializable,
|
|
30
|
+
ContextUpgradeable,
|
|
31
|
+
AccessControlEnumerableUpgradeable,
|
|
32
|
+
ERC20PermitUpgradeable,
|
|
33
|
+
ERC20BurnableUpgradeable,
|
|
34
|
+
ERC20PausableUpgradeable
|
|
35
|
+
{
|
|
36
|
+
function initialize(string memory name, string memory symbol)
|
|
37
|
+
public
|
|
38
|
+
virtual
|
|
39
|
+
initializer
|
|
40
|
+
{
|
|
41
|
+
__ERC20PresetMinterPauser_init(name, symbol);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
|
|
45
|
+
bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE` and `PAUSER_ROLE` to the
|
|
49
|
+
* account that deploys the contract.
|
|
50
|
+
*
|
|
51
|
+
* See {ERC20-constructor}.
|
|
52
|
+
*/
|
|
53
|
+
function __ERC20PresetMinterPauser_init(
|
|
54
|
+
string memory name,
|
|
55
|
+
string memory symbol
|
|
56
|
+
) internal initializer {
|
|
57
|
+
__Context_init_unchained();
|
|
58
|
+
__ERC165_init_unchained();
|
|
59
|
+
__AccessControl_init_unchained();
|
|
60
|
+
__AccessControlEnumerable_init_unchained();
|
|
61
|
+
__ERC20_init_unchained(name, symbol);
|
|
62
|
+
__ERC20Burnable_init_unchained();
|
|
63
|
+
__Pausable_init_unchained();
|
|
64
|
+
__ERC20Pausable_init_unchained();
|
|
65
|
+
__ERC20PresetMinterPauser_init_unchained(name, symbol);
|
|
66
|
+
__ERC20Permit_init_unchained(name);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function __ERC20PresetMinterPauser_init_unchained(
|
|
70
|
+
string memory name,
|
|
71
|
+
string memory symbol
|
|
72
|
+
) internal initializer {
|
|
73
|
+
_setupRole(DEFAULT_ADMIN_ROLE, _msgSender());
|
|
74
|
+
|
|
75
|
+
_setupRole(MINTER_ROLE, _msgSender());
|
|
76
|
+
_setupRole(PAUSER_ROLE, _msgSender());
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* @dev Creates `amount` new tokens for `to`.
|
|
81
|
+
*
|
|
82
|
+
* See {ERC20-_mint}.
|
|
83
|
+
*
|
|
84
|
+
* Requirements:
|
|
85
|
+
*
|
|
86
|
+
* - the caller must have the `MINTER_ROLE`.
|
|
87
|
+
*/
|
|
88
|
+
function mint(address to, uint256 amount) public virtual returns (bool) {
|
|
89
|
+
require(
|
|
90
|
+
hasRole(MINTER_ROLE, _msgSender()),
|
|
91
|
+
"ERC20PresetMinterPauser: must have minter role to mint"
|
|
92
|
+
);
|
|
93
|
+
_mint(to, amount);
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* @dev Pauses all token transfers.
|
|
99
|
+
*
|
|
100
|
+
* See {ERC20Pausable} and {Pausable-_pause}.
|
|
101
|
+
*
|
|
102
|
+
* Requirements:
|
|
103
|
+
*
|
|
104
|
+
* - the caller must have the `PAUSER_ROLE`.
|
|
105
|
+
*/
|
|
106
|
+
function pause() public virtual {
|
|
107
|
+
require(
|
|
108
|
+
hasRole(PAUSER_ROLE, _msgSender()),
|
|
109
|
+
"ERC20PresetMinterPauser: must have pauser role to pause"
|
|
110
|
+
);
|
|
111
|
+
_pause();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @dev Unpauses all token transfers.
|
|
116
|
+
*
|
|
117
|
+
* See {ERC20Pausable} and {Pausable-_unpause}.
|
|
118
|
+
*
|
|
119
|
+
* Requirements:
|
|
120
|
+
*
|
|
121
|
+
* - the caller must have the `PAUSER_ROLE`.
|
|
122
|
+
*/
|
|
123
|
+
function unpause() public virtual {
|
|
124
|
+
require(
|
|
125
|
+
hasRole(PAUSER_ROLE, _msgSender()),
|
|
126
|
+
"ERC20PresetMinterPauser: must have pauser role to unpause"
|
|
127
|
+
);
|
|
128
|
+
_unpause();
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function _beforeTokenTransfer(
|
|
132
|
+
address from,
|
|
133
|
+
address to,
|
|
134
|
+
uint256 amount
|
|
135
|
+
) internal virtual override(ERC20Upgradeable, ERC20PausableUpgradeable) {
|
|
136
|
+
super._beforeTokenTransfer(from, to, amount);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
uint256[50] private __gap;
|
|
140
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity >=0.8;
|
|
4
|
+
|
|
5
|
+
/* @title ERC677Receiver interface
|
|
6
|
+
*/
|
|
7
|
+
interface ERC677Receiver {
|
|
8
|
+
function onTokenTransfer(
|
|
9
|
+
address _from,
|
|
10
|
+
uint256 _value,
|
|
11
|
+
bytes calldata _data
|
|
12
|
+
) external returns (bool);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
abstract contract ERC677 {
|
|
16
|
+
event Transfer(
|
|
17
|
+
address indexed from,
|
|
18
|
+
address indexed to,
|
|
19
|
+
uint256 value,
|
|
20
|
+
bytes data
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
function transfer(address to, uint256 value) public virtual returns (bool);
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @dev transfer token to a contract address with additional data if the recipient is a contact.
|
|
27
|
+
* @param _to The address to transfer to.
|
|
28
|
+
* @param _value The amount to be transferred.
|
|
29
|
+
* @param _data The extra data to be passed to the receiving contract.
|
|
30
|
+
* @return true if transfer is successful
|
|
31
|
+
*/
|
|
32
|
+
function _transferAndCall(
|
|
33
|
+
address _to,
|
|
34
|
+
uint256 _value,
|
|
35
|
+
bytes memory _data
|
|
36
|
+
) internal returns (bool) {
|
|
37
|
+
bool res = transfer(_to, _value);
|
|
38
|
+
emit Transfer(msg.sender, _to, _value, _data);
|
|
39
|
+
|
|
40
|
+
if (isContract(_to)) {
|
|
41
|
+
require(contractFallback(_to, _value, _data), "Contract fallback failed");
|
|
42
|
+
}
|
|
43
|
+
return res;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* @dev Contract fallback function. Is called if transferAndCall is called
|
|
47
|
+
* to a contract
|
|
48
|
+
*/
|
|
49
|
+
function contractFallback(
|
|
50
|
+
address _to,
|
|
51
|
+
uint256 _value,
|
|
52
|
+
bytes memory _data
|
|
53
|
+
) internal virtual returns (bool) {
|
|
54
|
+
ERC677Receiver receiver = ERC677Receiver(_to);
|
|
55
|
+
require(
|
|
56
|
+
receiver.onTokenTransfer(msg.sender, _value, _data),
|
|
57
|
+
"Contract Fallback failed"
|
|
58
|
+
);
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* @dev Function to check if given address is a contract
|
|
63
|
+
* @param _addr Address to check
|
|
64
|
+
* @return true if given address is a contract
|
|
65
|
+
*/
|
|
66
|
+
|
|
67
|
+
function isContract(address _addr) internal view returns (bool) {
|
|
68
|
+
uint256 length;
|
|
69
|
+
assembly {
|
|
70
|
+
length := extcodesize(_addr)
|
|
71
|
+
}
|
|
72
|
+
return length > 0;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity >=0.8;
|
|
4
|
+
import "./ERC677.sol";
|
|
5
|
+
import "./FeesFormula.sol";
|
|
6
|
+
import "../Interfaces.sol";
|
|
7
|
+
import "./ERC20PresetMinterPauserUpgradeable.sol";
|
|
8
|
+
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
9
|
+
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @title The GoodDollar V2 ERC677 token contract
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
contract GoodDollar is
|
|
16
|
+
UUPSUpgradeable,
|
|
17
|
+
ERC677,
|
|
18
|
+
ERC20PresetMinterPauserUpgradeable
|
|
19
|
+
{
|
|
20
|
+
address public feeRecipient;
|
|
21
|
+
|
|
22
|
+
IFeesFormula public formula;
|
|
23
|
+
|
|
24
|
+
IIdentity public identity;
|
|
25
|
+
|
|
26
|
+
uint256 public cap;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @dev constructor
|
|
30
|
+
* @param _name The name of the token
|
|
31
|
+
* @param _symbol The symbol of the token
|
|
32
|
+
* @param _cap the cap of the token. no cap if 0
|
|
33
|
+
* @param _formula the fee formula contract
|
|
34
|
+
* @param _identity the identity contract
|
|
35
|
+
* @param _feeRecipient the address that receives transaction fees
|
|
36
|
+
*/
|
|
37
|
+
function initialize(
|
|
38
|
+
string memory _name,
|
|
39
|
+
string memory _symbol,
|
|
40
|
+
uint256 _cap,
|
|
41
|
+
IFeesFormula _formula,
|
|
42
|
+
IIdentity _identity,
|
|
43
|
+
address _feeRecipient,
|
|
44
|
+
address _owner
|
|
45
|
+
) public initializer {
|
|
46
|
+
__ERC20PresetMinterPauser_init(_name, _symbol);
|
|
47
|
+
feeRecipient = _feeRecipient;
|
|
48
|
+
identity = _identity;
|
|
49
|
+
formula = _formula;
|
|
50
|
+
cap = _cap;
|
|
51
|
+
if (_owner != _msgSender()) {
|
|
52
|
+
transferOwnership(_owner);
|
|
53
|
+
renounceRole(MINTER_ROLE, _msgSender());
|
|
54
|
+
renounceRole(PAUSER_ROLE, _msgSender());
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
modifier onlyOwner() {
|
|
59
|
+
require(hasRole(DEFAULT_ADMIN_ROLE, msg.sender), "not owner");
|
|
60
|
+
_;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function _authorizeUpgrade(address newImplementation)
|
|
64
|
+
internal
|
|
65
|
+
override
|
|
66
|
+
onlyOwner
|
|
67
|
+
{}
|
|
68
|
+
|
|
69
|
+
function decimals() public view virtual override returns (uint8) {
|
|
70
|
+
return 2;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function setFormula(IFeesFormula _formula) external onlyOwner {
|
|
74
|
+
formula = _formula;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function setIdentity(IIdentityV2 _identity) external onlyOwner {
|
|
78
|
+
identity = _identity;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function transferOwnership(address _owner) public onlyOwner {
|
|
82
|
+
grantRole(DEFAULT_ADMIN_ROLE, _owner);
|
|
83
|
+
renounceRole(DEFAULT_ADMIN_ROLE, _msgSender());
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function owner() external view returns (address) {
|
|
87
|
+
return getRoleMember(DEFAULT_ADMIN_ROLE, 0);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function isMinter(address _minter) external view returns (bool) {
|
|
91
|
+
return hasRole(MINTER_ROLE, _minter);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function addMinter(address _minter) external {
|
|
95
|
+
grantRole(MINTER_ROLE, _minter);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function renounceMinter() external {
|
|
99
|
+
renounceRole(MINTER_ROLE, _msgSender());
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function addPauser(address _pauser) external {
|
|
103
|
+
grantRole(PAUSER_ROLE, _pauser);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function isPauser(address _pauser) external view returns (bool) {
|
|
107
|
+
return hasRole(PAUSER_ROLE, _pauser);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @dev Processes fees from given value and sends
|
|
112
|
+
* remainder to given address
|
|
113
|
+
* @param to the address to be sent to
|
|
114
|
+
* @param value the value to be processed and then
|
|
115
|
+
* transferred
|
|
116
|
+
* @return a boolean that indicates if the operation was successful
|
|
117
|
+
*/
|
|
118
|
+
function transfer(address to, uint256 value)
|
|
119
|
+
public
|
|
120
|
+
override(ERC20Upgradeable, ERC677)
|
|
121
|
+
returns (bool)
|
|
122
|
+
{
|
|
123
|
+
uint256 bruttoValue = _processFees(msg.sender, to, value);
|
|
124
|
+
return ERC20Upgradeable.transfer(to, bruttoValue);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* @dev Transfer tokens from one address to another
|
|
129
|
+
* @param from The address which you want to send tokens from
|
|
130
|
+
* @param to The address which you want to transfer to
|
|
131
|
+
* @param value the amount of tokens to be transferred
|
|
132
|
+
* @return a boolean that indicates if the operation was successful
|
|
133
|
+
*/
|
|
134
|
+
function transferFrom(
|
|
135
|
+
address from,
|
|
136
|
+
address to,
|
|
137
|
+
uint256 value
|
|
138
|
+
) public override returns (bool) {
|
|
139
|
+
uint256 bruttoValue = _processFees(from, to, value);
|
|
140
|
+
return super.transferFrom(from, to, bruttoValue);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* @dev Processes transfer fees and calls ERC677Token transferAndCall function
|
|
145
|
+
* @param to address to transfer to
|
|
146
|
+
* @param value the amount to transfer
|
|
147
|
+
* @param data The data to pass to transferAndCall
|
|
148
|
+
* @return a bool indicating if transfer function succeeded
|
|
149
|
+
*/
|
|
150
|
+
function transferAndCall(
|
|
151
|
+
address to,
|
|
152
|
+
uint256 value,
|
|
153
|
+
bytes calldata data
|
|
154
|
+
) external returns (bool) {
|
|
155
|
+
uint256 bruttoValue = _processFees(msg.sender, to, value);
|
|
156
|
+
bool res = ERC20Upgradeable.transfer(to, bruttoValue);
|
|
157
|
+
emit Transfer(msg.sender, to, bruttoValue, data);
|
|
158
|
+
|
|
159
|
+
if (isContract(to)) {
|
|
160
|
+
require(
|
|
161
|
+
contractFallback(to, bruttoValue, data),
|
|
162
|
+
"Contract fallback failed"
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
return res;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* @dev Minting function
|
|
170
|
+
* @param to the address that will receive the minted tokens
|
|
171
|
+
* @param value the amount of tokens to mint
|
|
172
|
+
*/
|
|
173
|
+
function mint(address to, uint256 value) public override returns (bool) {
|
|
174
|
+
if (cap > 0) {
|
|
175
|
+
require(
|
|
176
|
+
totalSupply() + value <= cap,
|
|
177
|
+
"Cannot increase supply beyond cap"
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
return super.mint(to, value);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* @dev Gets the current transaction fees
|
|
185
|
+
* @return fee senderPays that represents the current transaction fees and bool true if sender pays the fee or receiver
|
|
186
|
+
*/
|
|
187
|
+
function getFees(uint256 value)
|
|
188
|
+
public
|
|
189
|
+
view
|
|
190
|
+
returns (uint256 fee, bool senderPays)
|
|
191
|
+
{
|
|
192
|
+
return formula.getTxFees(value, address(0), address(0));
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* @dev Gets the current transaction fees
|
|
197
|
+
* @return fee senderPays that represents the current transaction fees and bool true if sender pays the fee or receiver
|
|
198
|
+
*/
|
|
199
|
+
function getFees(
|
|
200
|
+
uint256 value,
|
|
201
|
+
address sender,
|
|
202
|
+
address recipient
|
|
203
|
+
) public view returns (uint256 fee, bool senderPays) {
|
|
204
|
+
return formula.getTxFees(value, sender, recipient);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* @dev Sets the address that receives the transactional fees.
|
|
209
|
+
* can only be called by owner
|
|
210
|
+
* @param _feeRecipient The new address to receive transactional fees
|
|
211
|
+
*/
|
|
212
|
+
function setFeeRecipient(address _feeRecipient) public onlyOwner {
|
|
213
|
+
feeRecipient = _feeRecipient;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* @dev Sends transactional fees to feeRecipient address from given address
|
|
218
|
+
* @param account The account that sends the fees
|
|
219
|
+
* @param value The amount to subtract fees from
|
|
220
|
+
* @return an uint256 that represents the given value minus the transactional fees
|
|
221
|
+
*/
|
|
222
|
+
function _processFees(
|
|
223
|
+
address account,
|
|
224
|
+
address recipient,
|
|
225
|
+
uint256 value
|
|
226
|
+
) internal returns (uint256) {
|
|
227
|
+
(uint256 txFees, bool senderPays) = getFees(value, account, recipient);
|
|
228
|
+
if (txFees > 0 && !identity.isDAOContract(msg.sender)) {
|
|
229
|
+
require(
|
|
230
|
+
senderPays == false || value + txFees <= balanceOf(account),
|
|
231
|
+
"Not enough balance to pay TX fee"
|
|
232
|
+
);
|
|
233
|
+
if (account == msg.sender) {
|
|
234
|
+
super.transfer(feeRecipient, txFees);
|
|
235
|
+
} else {
|
|
236
|
+
super.transferFrom(account, feeRecipient, txFees);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
return senderPays ? value : value - txFees;
|
|
240
|
+
}
|
|
241
|
+
return value;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity >=0.8;
|
|
4
|
+
|
|
5
|
+
import "@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol";
|
|
6
|
+
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol";
|
|
7
|
+
|
|
8
|
+
import "./SuperToken.sol";
|
|
9
|
+
|
|
10
|
+
interface SelfApprove {
|
|
11
|
+
function selfApproveFor(
|
|
12
|
+
address account,
|
|
13
|
+
address spender,
|
|
14
|
+
uint256 amount
|
|
15
|
+
) external;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
abstract contract ERC20Permit is IERC20PermitUpgradeable, EIP712Upgradeable {
|
|
19
|
+
mapping(address => uint256) private _nonces;
|
|
20
|
+
|
|
21
|
+
// solhint-disable-next-line var-name-mixedcase
|
|
22
|
+
bytes32 private _PERMIT_TYPEHASH;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @dev Initializes the {EIP712} domain separator using the `name` parameter, and setting `version` to `"1"`.
|
|
26
|
+
*
|
|
27
|
+
* It's a good idea to use the same `name` that is defined as the ERC20 token name.
|
|
28
|
+
*/
|
|
29
|
+
function __ERC20Permit_init(string memory name) internal onlyInitializing {
|
|
30
|
+
__EIP712_init_unchained(name, "1");
|
|
31
|
+
__ERC20Permit_init_unchained(name);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function __ERC20Permit_init_unchained(string memory name)
|
|
35
|
+
internal
|
|
36
|
+
onlyInitializing
|
|
37
|
+
{
|
|
38
|
+
_PERMIT_TYPEHASH = keccak256(
|
|
39
|
+
"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @dev See {IERC20Permit-permit}.
|
|
45
|
+
*/
|
|
46
|
+
function permit(
|
|
47
|
+
address owner,
|
|
48
|
+
address spender,
|
|
49
|
+
uint256 value,
|
|
50
|
+
uint256 deadline,
|
|
51
|
+
uint8 v,
|
|
52
|
+
bytes32 r,
|
|
53
|
+
bytes32 s
|
|
54
|
+
) public virtual {
|
|
55
|
+
require(block.timestamp <= deadline, "ERC20Permit: expired deadline");
|
|
56
|
+
|
|
57
|
+
bytes32 structHash = keccak256(
|
|
58
|
+
abi.encode(
|
|
59
|
+
_PERMIT_TYPEHASH,
|
|
60
|
+
owner,
|
|
61
|
+
spender,
|
|
62
|
+
value,
|
|
63
|
+
_useNonce(owner),
|
|
64
|
+
deadline
|
|
65
|
+
)
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
bytes32 hash = _hashTypedDataV4(structHash);
|
|
69
|
+
|
|
70
|
+
address signer = ECDSAUpgradeable.recover(hash, v, r, s);
|
|
71
|
+
require(signer == owner, "ERC20Permit: invalid signature");
|
|
72
|
+
|
|
73
|
+
SelfApprove(address(this)).selfApproveFor(owner, spender, value);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @dev See {IERC20Permit-nonces}.
|
|
78
|
+
*/
|
|
79
|
+
function nonces(address owner) public view virtual returns (uint256) {
|
|
80
|
+
return _nonces[owner];
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @dev See {IERC20Permit-DOMAIN_SEPARATOR}.
|
|
85
|
+
*/
|
|
86
|
+
// solhint-disable-next-line func-name-mixedcase
|
|
87
|
+
function DOMAIN_SEPARATOR() external view returns (bytes32) {
|
|
88
|
+
return _domainSeparatorV4();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* @dev "Consume a nonce": return the current value and increment.
|
|
93
|
+
*
|
|
94
|
+
* _Available since v4.1._
|
|
95
|
+
*/
|
|
96
|
+
|
|
97
|
+
function _useNonce(address owner) internal virtual returns (uint256 current) {
|
|
98
|
+
current = _nonces[owner];
|
|
99
|
+
_nonces[owner]++;
|
|
100
|
+
}
|
|
101
|
+
}
|