@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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ethers, upgrades } from "hardhat";
|
|
2
|
+
import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
|
|
2
3
|
import { BigNumber, Contract } from "ethers";
|
|
3
4
|
import { expect } from "chai";
|
|
4
5
|
import { GoodMarketMaker, GoodReserveCDai } from "../../types";
|
|
@@ -43,6 +44,24 @@ describe("GoodReserve - buy/sell with any token through uniswap", () => {
|
|
|
43
44
|
before(async () => {
|
|
44
45
|
[founder, staker, ...signers] = await ethers.getSigners();
|
|
45
46
|
schemeMock = signers.pop();
|
|
47
|
+
|
|
48
|
+
let {
|
|
49
|
+
controller: ctrl,
|
|
50
|
+
avatar: av,
|
|
51
|
+
gd,
|
|
52
|
+
identity,
|
|
53
|
+
daoCreator,
|
|
54
|
+
nameService: ns,
|
|
55
|
+
setDAOAddress: sda,
|
|
56
|
+
setSchemes,
|
|
57
|
+
marketMaker: mm,
|
|
58
|
+
daiAddress,
|
|
59
|
+
cdaiAddress,
|
|
60
|
+
reserve,
|
|
61
|
+
setReserveToken,
|
|
62
|
+
COMP
|
|
63
|
+
} = await loadFixture(createDAO);
|
|
64
|
+
|
|
46
65
|
const cdaiFactory = await ethers.getContractFactory("cDAIMock");
|
|
47
66
|
const daiFactory = await ethers.getContractFactory("DAIMock");
|
|
48
67
|
const routerFactory = new ethers.ContractFactory(
|
|
@@ -69,23 +88,6 @@ describe("GoodReserve - buy/sell with any token through uniswap", () => {
|
|
|
69
88
|
|
|
70
89
|
tokenB = await daiFactory.deploy(); // another erc20 for uniswap router test
|
|
71
90
|
|
|
72
|
-
let {
|
|
73
|
-
controller: ctrl,
|
|
74
|
-
avatar: av,
|
|
75
|
-
gd,
|
|
76
|
-
identity,
|
|
77
|
-
daoCreator,
|
|
78
|
-
nameService: ns,
|
|
79
|
-
setDAOAddress: sda,
|
|
80
|
-
setSchemes,
|
|
81
|
-
marketMaker: mm,
|
|
82
|
-
daiAddress,
|
|
83
|
-
cdaiAddress,
|
|
84
|
-
reserve,
|
|
85
|
-
setReserveToken,
|
|
86
|
-
COMP
|
|
87
|
-
} = await createDAO();
|
|
88
|
-
|
|
89
91
|
dai = await ethers.getContractAt("DAIMock", daiAddress);
|
|
90
92
|
cDAI = await ethers.getContractAt("cDAIMock", cdaiAddress);
|
|
91
93
|
comp = COMP;
|
|
@@ -118,7 +120,7 @@ describe("GoodReserve - buy/sell with any token through uniswap", () => {
|
|
|
118
120
|
});
|
|
119
121
|
goodReserve = reserve;
|
|
120
122
|
|
|
121
|
-
setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
|
|
123
|
+
await setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
|
|
122
124
|
const exchangeHelperFactory = await ethers.getContractFactory(
|
|
123
125
|
"ExchangeHelper"
|
|
124
126
|
);
|
|
@@ -435,7 +437,7 @@ describe("GoodReserve - buy/sell with any token through uniswap", () => {
|
|
|
435
437
|
0,
|
|
436
438
|
NULL_ADDRESS
|
|
437
439
|
)
|
|
438
|
-
).to.be.revertedWith("ERC20:
|
|
440
|
+
).to.be.revertedWith("ERC20: insufficient allowance");
|
|
439
441
|
});
|
|
440
442
|
|
|
441
443
|
it("shouldn't be able to sell gd to tokenA through UNISWAP without approve", async () => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as hre, ethers, upgrades } from "hardhat";
|
|
2
|
-
import {
|
|
2
|
+
import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
|
|
3
3
|
import { expect } from "chai";
|
|
4
4
|
import {
|
|
5
5
|
CERC20,
|
|
@@ -27,7 +27,7 @@ describe("CompoundStakingFactory", () => {
|
|
|
27
27
|
|
|
28
28
|
before(async () => {
|
|
29
29
|
[founder, ...signers] = await ethers.getSigners();
|
|
30
|
-
dao = await createDAO
|
|
30
|
+
dao = await loadFixture(createDAO);
|
|
31
31
|
|
|
32
32
|
const compUsdOracleFactory = await ethers.getContractFactory(
|
|
33
33
|
"CompUSDMockOracle"
|
|
@@ -128,13 +128,16 @@ describe("CompoundStakingFactory", () => {
|
|
|
128
128
|
|
|
129
129
|
const INITIAL_COLLECT_INTEREST_GAS_COST = 250000;
|
|
130
130
|
const INITIAL_COLLECT_COMP_GAS_COST = 150000;
|
|
131
|
-
const gasCostForInterestTransfer =
|
|
132
|
-
|
|
131
|
+
const gasCostForInterestTransfer =
|
|
132
|
+
await goodCompoundStakingV2.getGasCostForInterestTransfer();
|
|
133
|
+
expect(gasCostForInterestTransfer).to.equal(
|
|
134
|
+
INITIAL_COLLECT_INTEREST_GAS_COST
|
|
135
|
+
);
|
|
133
136
|
|
|
134
137
|
const settings = await goodCompoundStakingV2.getSettings();
|
|
135
138
|
const collectInteresetGasCost = settings[0];
|
|
136
139
|
const compCollectGasCost = settings[1];
|
|
137
140
|
expect(collectInteresetGasCost).to.equal(INITIAL_COLLECT_INTEREST_GAS_COST);
|
|
138
141
|
expect(compCollectGasCost).to.equal(INITIAL_COLLECT_COMP_GAS_COST);
|
|
139
|
-
|
|
142
|
+
});
|
|
140
143
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ethers, upgrades } from "hardhat";
|
|
2
|
+
import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
|
|
2
3
|
import { BigNumber, Contract } from "ethers";
|
|
3
4
|
import { expect } from "chai";
|
|
4
5
|
import {
|
|
@@ -57,14 +58,14 @@ describe("Different decimals staking token", () => {
|
|
|
57
58
|
genericCall: gc,
|
|
58
59
|
setDAOAddress,
|
|
59
60
|
COMP
|
|
60
|
-
} = await createDAO
|
|
61
|
+
} = await loadFixture(createDAO);
|
|
61
62
|
|
|
62
63
|
comp = COMP;
|
|
63
64
|
dai = await ethers.getContractAt("DAIMock", daiAddress);
|
|
64
65
|
cDAI = await ethers.getContractAt("cDAIMock", cdaiAddress);
|
|
65
66
|
uniswap = await deployUniswap(comp, dai);
|
|
66
67
|
uniswapRouter = uniswap.router;
|
|
67
|
-
setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
|
|
68
|
+
await setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
|
|
68
69
|
avatar = av;
|
|
69
70
|
controller = ctrl;
|
|
70
71
|
genericCall = gc;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ethers, upgrades } from "hardhat";
|
|
2
|
+
import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
|
|
2
3
|
import { BigNumber, constants, Contract } from "ethers";
|
|
3
4
|
import { expect } from "chai";
|
|
4
5
|
import {
|
|
@@ -77,7 +78,7 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
|
|
|
77
78
|
reserve,
|
|
78
79
|
setReserveToken,
|
|
79
80
|
genericCall: gc
|
|
80
|
-
} = await createDAO
|
|
81
|
+
} = await loadFixture(createDAO);
|
|
81
82
|
|
|
82
83
|
comp = await daiFactory.deploy();
|
|
83
84
|
genericCall = gc;
|
|
@@ -235,7 +236,7 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
|
|
|
235
236
|
"no stakingToken to stake"
|
|
236
237
|
);
|
|
237
238
|
});
|
|
238
|
-
|
|
239
|
+
|
|
239
240
|
it("it should stake donations with ETH according to 0.3% of pool", async () => {
|
|
240
241
|
let stakeAmount = ethers.utils.parseEther("20");
|
|
241
242
|
const pairContract = await ethers.getContractAt(
|
|
@@ -315,15 +316,15 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
|
|
|
315
316
|
|
|
316
317
|
expect(totalStakedAfterEnd).to.be.equal(0);
|
|
317
318
|
});
|
|
318
|
-
|
|
319
|
+
|
|
319
320
|
it("should not allow to stake donations when not active", async () => {
|
|
320
321
|
let isActive = await donationsStaking.active();
|
|
321
322
|
expect(isActive).to.be.equal(true);
|
|
322
323
|
let stakeAmount = ethers.utils.parseEther("10");
|
|
323
324
|
await dai["mint(address,uint256)"](donationsStaking.address, stakeAmount);
|
|
324
|
-
|
|
325
|
+
|
|
325
326
|
expect(donationsStaking.stakeDonations()).to.not.be.reverted;
|
|
326
|
-
|
|
327
|
+
|
|
327
328
|
let encodedData = donationsStaking.interface.encodeFunctionData(
|
|
328
329
|
"setActive",
|
|
329
330
|
[false]
|
|
@@ -335,10 +336,9 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
|
|
|
335
336
|
await dai["mint(address,uint256)"](donationsStaking.address, stakeAmount);
|
|
336
337
|
await expect(donationsStaking.stakeDonations()).to.be.reverted;
|
|
337
338
|
// revent to original state
|
|
338
|
-
encodedData = donationsStaking.interface.encodeFunctionData(
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
);
|
|
339
|
+
encodedData = donationsStaking.interface.encodeFunctionData("setActive", [
|
|
340
|
+
true
|
|
341
|
+
]);
|
|
342
342
|
await genericCall(donationsStaking.address, encodedData);
|
|
343
343
|
});
|
|
344
344
|
|
|
@@ -354,18 +354,18 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
|
|
|
354
354
|
|
|
355
355
|
// Invalid scenarios checks
|
|
356
356
|
const invalidPaths = [
|
|
357
|
-
[NULL_ADDRESS],
|
|
357
|
+
[NULL_ADDRESS], // less than minimum 2 length
|
|
358
358
|
[bat.address, dai.address], // first is not ETH null address
|
|
359
359
|
[NULL_ADDRESS, bat.address] // last is not the staking token
|
|
360
360
|
];
|
|
361
361
|
|
|
362
362
|
for (const invalidPath of invalidPaths) {
|
|
363
363
|
encodedData = donationsStaking.interface.encodeFunctionData(
|
|
364
|
-
|
|
365
|
-
|
|
364
|
+
"setSwapPaths",
|
|
365
|
+
[invalidPath]
|
|
366
366
|
);
|
|
367
367
|
await genericCall(donationsStaking.address, encodedData);
|
|
368
|
-
expect(await isEthToStakingTokenPathEqualTo(invalidPath)).to.be.false;
|
|
368
|
+
expect(await isEthToStakingTokenPathEqualTo(invalidPath)).to.be.false;
|
|
369
369
|
}
|
|
370
370
|
|
|
371
371
|
encodedData = donationsStaking.interface.encodeFunctionData(
|
|
@@ -374,23 +374,27 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
|
|
|
374
374
|
);
|
|
375
375
|
await genericCall(donationsStaking.address, encodedData);
|
|
376
376
|
});
|
|
377
|
-
|
|
377
|
+
|
|
378
378
|
async function isEthToStakingTokenPathEqualTo(path) {
|
|
379
379
|
for (let index = 0; index < path.length; index++) {
|
|
380
380
|
let expectedValue = path[index];
|
|
381
|
-
let valueAtIndex = await donationsStaking
|
|
381
|
+
let valueAtIndex = await donationsStaking
|
|
382
|
+
.ethToStakingTokenSwapPath(index)
|
|
383
|
+
.catch(e => e);
|
|
382
384
|
if (expectedValue != valueAtIndex) {
|
|
383
385
|
return false;
|
|
384
386
|
}
|
|
385
387
|
}
|
|
386
388
|
|
|
387
|
-
const outOfArray = await donationsStaking
|
|
389
|
+
const outOfArray = await donationsStaking
|
|
390
|
+
.ethToStakingTokenSwapPath(path.length)
|
|
391
|
+
.catch(e => e);
|
|
388
392
|
if (!outOfArray.message) {
|
|
389
393
|
return false;
|
|
390
394
|
}
|
|
391
395
|
|
|
392
396
|
return true;
|
|
393
|
-
}
|
|
397
|
+
}
|
|
394
398
|
|
|
395
399
|
it("it should set stakingContract when avatar call it ", async () => {
|
|
396
400
|
let stakeAmount = ethers.utils.parseEther("6000"); // Max swap amount is around 5964 with current liquidity level so we should set it to higher number in order to test functionality
|
|
@@ -473,21 +477,26 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
|
|
|
473
477
|
avatarDaiBalanceBeforeSet.add(stakingAmountBeforeSet.sub(safeAmount))
|
|
474
478
|
); // It should send leftover stakingToken to avatar after swap to ETH in safeAmount
|
|
475
479
|
expect(stakingAmountBeforeSet).to.be.gt(safeAmount); // maxSafeAmount must be smaller than actualstaking amount so we can verify that we hit the limit for transaction amount at once
|
|
476
|
-
});
|
|
477
|
-
|
|
480
|
+
});
|
|
481
|
+
|
|
478
482
|
it("should set max liquidity percentage swap when avatar", async () => {
|
|
479
|
-
const originalPercentage =
|
|
483
|
+
const originalPercentage =
|
|
484
|
+
await donationsStaking.maxLiquidityPercentageSwap();
|
|
480
485
|
//fail when not avatar
|
|
481
486
|
const percentageToSet = 21;
|
|
482
|
-
expect(
|
|
483
|
-
|
|
487
|
+
expect(
|
|
488
|
+
donationsStaking
|
|
489
|
+
.connect(staker)
|
|
490
|
+
["setMaxLiquidityPercentageSwap(uint24)"](percentageToSet)
|
|
491
|
+
).to.be.revertedWith("only avatar can call this method");
|
|
484
492
|
//succeed when avatar
|
|
485
493
|
let encodedData = donationsStaking.interface.encodeFunctionData(
|
|
486
494
|
"setMaxLiquidityPercentageSwap",
|
|
487
495
|
[percentageToSet]
|
|
488
496
|
);
|
|
489
497
|
await genericCall(donationsStaking.address, encodedData);
|
|
490
|
-
const actualPercentage =
|
|
498
|
+
const actualPercentage =
|
|
499
|
+
await donationsStaking.maxLiquidityPercentageSwap();
|
|
491
500
|
expect(actualPercentage).to.be.equal(percentageToSet);
|
|
492
501
|
//revent to original state
|
|
493
502
|
encodedData = donationsStaking.interface.encodeFunctionData(
|
|
@@ -500,4 +509,4 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
|
|
|
500
509
|
const version = await donationsStaking.getVersion();
|
|
501
510
|
expect(version).to.be.equal("2.0.0");
|
|
502
511
|
});
|
|
503
|
-
});
|
|
512
|
+
});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ethers, network as networkConfig } from "hardhat";
|
|
1
|
+
import hre, { ethers, network as networkConfig, waffle } from "hardhat";
|
|
2
|
+
import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
|
|
2
3
|
import { FuseStakingV3 } from "../../types";
|
|
3
4
|
import { expect } from "chai";
|
|
4
|
-
import {
|
|
5
|
-
import hre from "hardhat";
|
|
5
|
+
import { MockContract } from "ethereum-waffle";
|
|
6
6
|
import { abi as ubiabi } from "../../artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json";
|
|
7
7
|
import { BigNumber } from "ethers";
|
|
8
8
|
export const NULL_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
@@ -23,14 +23,14 @@ describe("FuseStakingV3", () => {
|
|
|
23
23
|
let u = await hre.artifacts.readArtifact("Uniswap");
|
|
24
24
|
let uf = await hre.artifacts.readArtifact("UniswapFactory");
|
|
25
25
|
let up = await hre.artifacts.readArtifact("UniswapPair");
|
|
26
|
-
uniswap = await deployMockContract(signers[0], u.abi);
|
|
27
|
-
uniswapFactory = await deployMockContract(signers[0], uf.abi);
|
|
28
|
-
uniswapPair = await deployMockContract(signers[0], up.abi);
|
|
26
|
+
uniswap = await waffle.deployMockContract(signers[0], u.abi);
|
|
27
|
+
uniswapFactory = await waffle.deployMockContract(signers[0], uf.abi);
|
|
28
|
+
uniswapPair = await waffle.deployMockContract(signers[0], up.abi);
|
|
29
29
|
|
|
30
|
-
gdusdcPair = await deployMockContract(signers[0], up.abi);
|
|
31
|
-
fusefusdPair = await deployMockContract(signers[0], up.abi);
|
|
30
|
+
gdusdcPair = await waffle.deployMockContract(signers[0], up.abi);
|
|
31
|
+
fusefusdPair = await waffle.deployMockContract(signers[0], up.abi);
|
|
32
32
|
|
|
33
|
-
ubiMock = await deployMockContract(signers[0], ubiabi);
|
|
33
|
+
ubiMock = await waffle.deployMockContract(signers[0], ubiabi);
|
|
34
34
|
await uniswap.mock.factory.returns(uniswapFactory.address);
|
|
35
35
|
await uniswap.mock.WETH.returns(signers[3].address);
|
|
36
36
|
await uniswapFactory.mock.getPair.returns(uniswapPair.address);
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { default as hre, ethers, upgrades } from "hardhat";
|
|
2
|
-
import {
|
|
2
|
+
import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
|
|
3
3
|
import { expect } from "chai";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
CERC20,
|
|
6
|
+
GoodAaveStaking,
|
|
7
|
+
GoodAaveStakingV2,
|
|
8
|
+
AaveStakingFactory
|
|
9
|
+
} from "../../types";
|
|
5
10
|
import { createDAO, deployUniswap } from "../helpers";
|
|
6
11
|
import { Contract } from "ethers";
|
|
7
12
|
|
|
@@ -25,7 +30,7 @@ describe("AaveStakingFactory", () => {
|
|
|
25
30
|
|
|
26
31
|
before(async () => {
|
|
27
32
|
[founder, ...signers] = await ethers.getSigners();
|
|
28
|
-
dao = await createDAO
|
|
33
|
+
dao = await loadFixture(createDAO);
|
|
29
34
|
const usdcFactory = await ethers.getContractFactory("USDCMock");
|
|
30
35
|
const lendingPoolFactory = await ethers.getContractFactory(
|
|
31
36
|
"LendingPoolMock"
|
|
@@ -128,33 +133,33 @@ describe("AaveStakingFactory", () => {
|
|
|
128
133
|
"GoodAaveStakingV2",
|
|
129
134
|
await stakingFactory.impl()
|
|
130
135
|
)) as GoodAaveStakingV2;
|
|
131
|
-
await expect(
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
);
|
|
145
|
-
await expect(
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
);
|
|
136
|
+
await expect(
|
|
137
|
+
goodAaveStakingV2.init(
|
|
138
|
+
usdc.address,
|
|
139
|
+
lendingPool.address,
|
|
140
|
+
dao.nameService.address,
|
|
141
|
+
"USDC",
|
|
142
|
+
"USDC",
|
|
143
|
+
5760,
|
|
144
|
+
stakingFactory.address,
|
|
145
|
+
incentiveController.address,
|
|
146
|
+
aaveUsdOracle.address,
|
|
147
|
+
[cdai, dai] // violates tokenToDaiSwapPath[0] == _token (cdai != usdc)
|
|
148
|
+
)
|
|
149
|
+
).to.be.revertedWith("invalid _tokenToDaiSwapPath");
|
|
150
|
+
await expect(
|
|
151
|
+
goodAaveStakingV2.init(
|
|
152
|
+
usdc.address,
|
|
153
|
+
lendingPool.address,
|
|
154
|
+
dao.nameService.address,
|
|
155
|
+
"USDC",
|
|
156
|
+
"USDC",
|
|
157
|
+
5760,
|
|
158
|
+
stakingFactory.address,
|
|
159
|
+
incentiveController.address,
|
|
160
|
+
aaveUsdOracle.address,
|
|
161
|
+
[usdc.address, cdai] // violates _tokenToDaiSwapPath[] path leading to dai
|
|
162
|
+
)
|
|
163
|
+
).to.be.revertedWith("invalid _tokenToDaiSwapPath");
|
|
159
164
|
});
|
|
160
165
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ethers, upgrades } from "hardhat";
|
|
2
|
+
import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
|
|
2
3
|
import { Contract } from "ethers";
|
|
3
4
|
import { expect } from "chai";
|
|
4
5
|
import { GoodMarketMaker, GoodReserveCDai } from "../../types";
|
|
@@ -57,8 +58,8 @@ describe("SimpleDAISTAking - staking with cDAI mocks", () => {
|
|
|
57
58
|
cdaiAddress,
|
|
58
59
|
reserve,
|
|
59
60
|
setReserveToken,
|
|
60
|
-
runAsAvatarOnly: raao
|
|
61
|
-
} = await createDAO
|
|
61
|
+
runAsAvatarOnly: raao
|
|
62
|
+
} = await loadFixture(createDAO);
|
|
62
63
|
dai = await ethers.getContractAt("DAIMock", daiAddress);
|
|
63
64
|
cDAI = await ethers.getContractAt("cDAIMock", cdaiAddress);
|
|
64
65
|
avatar = av;
|
|
@@ -94,7 +95,7 @@ describe("SimpleDAISTAking - staking with cDAI mocks", () => {
|
|
|
94
95
|
daiUsdOracle = await tokenUsdOracleFactory.deploy();
|
|
95
96
|
const daiFactory = await ethers.getContractFactory("DAIMock");
|
|
96
97
|
|
|
97
|
-
setDAOAddress("UNISWAP_ROUTER", signers[0].address); // need this address for initialize simplestaking
|
|
98
|
+
await setDAOAddress("UNISWAP_ROUTER", signers[0].address); // need this address for initialize simplestaking
|
|
98
99
|
const compUsdOracleFactory = await ethers.getContractFactory(
|
|
99
100
|
"CompUSDMockOracle"
|
|
100
101
|
);
|
|
@@ -1103,9 +1104,7 @@ describe("SimpleDAISTAking - staking with cDAI mocks", () => {
|
|
|
1103
1104
|
.connect(staker)
|
|
1104
1105
|
.stake(stakingAmount, 100, true)
|
|
1105
1106
|
.catch(e => e);
|
|
1106
|
-
expect(transaction.message).to.have.string(
|
|
1107
|
-
"ERC20: transfer amount exceeds allowance"
|
|
1108
|
-
);
|
|
1107
|
+
expect(transaction.message).to.have.string("ERC20: insufficient allowance");
|
|
1109
1108
|
});
|
|
1110
1109
|
it("it should be able stake and withdraw their stake in iToken", async () => {
|
|
1111
1110
|
const stakingAmount = ethers.utils.parseUnits("100", 8);
|
|
@@ -1264,17 +1263,12 @@ describe("SimpleDAISTAking - staking with cDAI mocks", () => {
|
|
|
1264
1263
|
it("should not be able to withdraw stake when the withdrawn amount is higher than the staked amount", async () => {
|
|
1265
1264
|
const stakeAmount = ethers.utils.parseEther("100");
|
|
1266
1265
|
const higherThanStakeAmount = ethers.utils.parseEther("101");
|
|
1267
|
-
await cDAI["mint(address,uint256)"](
|
|
1268
|
-
staker.address,
|
|
1269
|
-
stakeAmount
|
|
1270
|
-
);
|
|
1266
|
+
await cDAI["mint(address,uint256)"](staker.address, stakeAmount);
|
|
1271
1267
|
await cDAI
|
|
1272
1268
|
.connect(staker)
|
|
1273
1269
|
.approve(goodCompoundStaking.address, higherThanStakeAmount);
|
|
1274
1270
|
|
|
1275
|
-
await goodCompoundStaking
|
|
1276
|
-
.connect(staker)
|
|
1277
|
-
.stake(stakeAmount, "100", true);
|
|
1271
|
+
await goodCompoundStaking.connect(staker).stake(stakeAmount, "100", true);
|
|
1278
1272
|
|
|
1279
1273
|
const tx = await goodCompoundStaking
|
|
1280
1274
|
.connect(staker)
|
|
@@ -1283,9 +1277,7 @@ describe("SimpleDAISTAking - staking with cDAI mocks", () => {
|
|
|
1283
1277
|
|
|
1284
1278
|
expect(tx.message).to.be.not.empty;
|
|
1285
1279
|
// revent to original state
|
|
1286
|
-
await goodCompoundStaking
|
|
1287
|
-
.connect(staker)
|
|
1288
|
-
.withdrawStake(stakeAmount, true);
|
|
1280
|
+
await goodCompoundStaking.connect(staker).withdrawStake(stakeAmount, true);
|
|
1289
1281
|
});
|
|
1290
1282
|
|
|
1291
1283
|
it("should pause the contract", async () => {
|
|
@@ -1456,14 +1448,16 @@ describe("SimpleDAISTAking - staking with cDAI mocks", () => {
|
|
|
1456
1448
|
|
|
1457
1449
|
it("should set max liquidity percentage swap when avatar", async () => {
|
|
1458
1450
|
goodCompoundStaking = await deployStaking();
|
|
1459
|
-
const percentageBeforeSet =
|
|
1451
|
+
const percentageBeforeSet =
|
|
1452
|
+
await goodCompoundStaking.maxLiquidityPercentageSwap();
|
|
1460
1453
|
const percentageToSet = 21;
|
|
1461
1454
|
await runAsAvatarOnly(
|
|
1462
1455
|
goodCompoundStaking,
|
|
1463
1456
|
"setMaxLiquidityPercentageSwap(uint24)",
|
|
1464
1457
|
percentageToSet
|
|
1465
|
-
)
|
|
1466
|
-
const percentageAfterSet =
|
|
1458
|
+
);
|
|
1459
|
+
const percentageAfterSet =
|
|
1460
|
+
await goodCompoundStaking.maxLiquidityPercentageSwap();
|
|
1467
1461
|
expect(percentageAfterSet).to.be.equal(percentageToSet);
|
|
1468
1462
|
expect(percentageAfterSet).to.not.equal(percentageBeforeSet);
|
|
1469
1463
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ethers, upgrades } from "hardhat";
|
|
2
|
+
import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
|
|
2
3
|
import { BigNumber, Contract } from "ethers";
|
|
3
4
|
import { expect } from "chai";
|
|
4
5
|
import { GoodMarketMaker } from "../../types";
|
|
@@ -51,19 +52,7 @@ describe("StakingRewards - staking with cDAI mocks and get Rewards in GoodDollar
|
|
|
51
52
|
before(async () => {
|
|
52
53
|
[founder, staker, ...signers] = await ethers.getSigners();
|
|
53
54
|
schemeMock = signers.pop();
|
|
54
|
-
const cdaiFactory = await ethers.getContractFactory("cDAIMock");
|
|
55
|
-
const cBatFactory = await ethers.getContractFactory("cBATMock");
|
|
56
|
-
const goodFundManagerFactory = await ethers.getContractFactory(
|
|
57
|
-
"GoodFundManager"
|
|
58
|
-
);
|
|
59
|
-
goodCompoundStakingFactory = await getStakingFactory(
|
|
60
|
-
"GoodCompoundStakingV2"
|
|
61
|
-
);
|
|
62
|
-
goodCompoundStakingTestFactory = await getStakingFactory(
|
|
63
|
-
"GoodCompoundStakingTest"
|
|
64
|
-
);
|
|
65
55
|
|
|
66
|
-
const daiFactory = await ethers.getContractFactory("DAIMock");
|
|
67
56
|
let {
|
|
68
57
|
controller: ctrl,
|
|
69
58
|
avatar: av,
|
|
@@ -79,7 +68,21 @@ describe("StakingRewards - staking with cDAI mocks and get Rewards in GoodDollar
|
|
|
79
68
|
setReserveToken,
|
|
80
69
|
genericCall: gc,
|
|
81
70
|
COMP
|
|
82
|
-
} = await createDAO
|
|
71
|
+
} = await loadFixture(createDAO);
|
|
72
|
+
|
|
73
|
+
const cdaiFactory = await ethers.getContractFactory("cDAIMock");
|
|
74
|
+
const cBatFactory = await ethers.getContractFactory("cBATMock");
|
|
75
|
+
const goodFundManagerFactory = await ethers.getContractFactory(
|
|
76
|
+
"GoodFundManager"
|
|
77
|
+
);
|
|
78
|
+
goodCompoundStakingFactory = await getStakingFactory(
|
|
79
|
+
"GoodCompoundStakingV2"
|
|
80
|
+
);
|
|
81
|
+
goodCompoundStakingTestFactory = await getStakingFactory(
|
|
82
|
+
"GoodCompoundStakingTest"
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
const daiFactory = await ethers.getContractFactory("DAIMock");
|
|
83
86
|
|
|
84
87
|
genericCall = gc;
|
|
85
88
|
dai = await ethers.getContractAt("DAIMock", daiAddress);
|
|
@@ -129,7 +132,7 @@ describe("StakingRewards - staking with cDAI mocks and get Rewards in GoodDollar
|
|
|
129
132
|
const tokenUsdOracleFactory = await ethers.getContractFactory(
|
|
130
133
|
"BatUSDMockOracle"
|
|
131
134
|
);
|
|
132
|
-
setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
|
|
135
|
+
await setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
|
|
133
136
|
|
|
134
137
|
daiUsdOracle = await tokenUsdOracleFactory.deploy();
|
|
135
138
|
const compUsdOracleFactory = await ethers.getContractFactory(
|
|
@@ -194,8 +197,8 @@ describe("StakingRewards - staking with cDAI mocks and get Rewards in GoodDollar
|
|
|
194
197
|
JSON.stringify(IUniswapV2Pair.abi),
|
|
195
198
|
staker
|
|
196
199
|
).connect(founder);
|
|
197
|
-
setDAOAddress("CDAI", cDAI.address);
|
|
198
|
-
setDAOAddress("DAI", dai.address);
|
|
200
|
+
await setDAOAddress("CDAI", cDAI.address);
|
|
201
|
+
await setDAOAddress("DAI", dai.address);
|
|
199
202
|
|
|
200
203
|
batUsdOracle = await tokenUsdOracleFactory.deploy();
|
|
201
204
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { expect } from "chai";
|
|
2
2
|
import { ethers, waffle } from "hardhat";
|
|
3
|
+
import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
|
|
3
4
|
import { createDAO, advanceBlocks } from "../helpers";
|
|
4
5
|
import { StakingMockFixedAPY } from "../../types";
|
|
5
6
|
import { default as StakingABI } from "../../artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json";
|
|
@@ -61,7 +62,7 @@ describe("StakingRewardsFixedAPY - generic staking for fixed APY rewards contrac
|
|
|
61
62
|
gd,
|
|
62
63
|
nameService: ns,
|
|
63
64
|
setDAOAddress
|
|
64
|
-
} = await createDAO
|
|
65
|
+
} = await loadFixture(createDAO);
|
|
65
66
|
|
|
66
67
|
setNSAddress = setDAOAddress;
|
|
67
68
|
nameService = ns;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ethers, upgrades } from "hardhat";
|
|
2
|
+
import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
|
|
2
3
|
import { BigNumber, Contract } from "ethers";
|
|
3
4
|
import { expect } from "chai";
|
|
4
5
|
|
|
@@ -38,6 +39,24 @@ describe("SwapHelper - Helper library for swap on the Uniswap", () => {
|
|
|
38
39
|
before(async () => {
|
|
39
40
|
[founder, staker, ...signers] = await ethers.getSigners();
|
|
40
41
|
schemeMock = signers.pop();
|
|
42
|
+
|
|
43
|
+
let {
|
|
44
|
+
controller: ctrl,
|
|
45
|
+
avatar: av,
|
|
46
|
+
gd,
|
|
47
|
+
identity,
|
|
48
|
+
nameService: ns,
|
|
49
|
+
setDAOAddress: sda,
|
|
50
|
+
setSchemes,
|
|
51
|
+
marketMaker: mm,
|
|
52
|
+
daiAddress,
|
|
53
|
+
cdaiAddress,
|
|
54
|
+
reserve,
|
|
55
|
+
setReserveToken,
|
|
56
|
+
genericCall: gc,
|
|
57
|
+
COMP
|
|
58
|
+
} = await loadFixture(createDAO);
|
|
59
|
+
|
|
41
60
|
const cdaiFactory = await ethers.getContractFactory("cDAIMock");
|
|
42
61
|
const cBatFactory = await ethers.getContractFactory("cDecimalsMock");
|
|
43
62
|
const goodFundManagerFactory = await ethers.getContractFactory(
|
|
@@ -54,22 +73,6 @@ describe("SwapHelper - Helper library for swap on the Uniswap", () => {
|
|
|
54
73
|
);
|
|
55
74
|
swapHelperTest = await swapHelperTestFactory.deploy();
|
|
56
75
|
const daiFactory = await ethers.getContractFactory("DAIMock");
|
|
57
|
-
let {
|
|
58
|
-
controller: ctrl,
|
|
59
|
-
avatar: av,
|
|
60
|
-
gd,
|
|
61
|
-
identity,
|
|
62
|
-
nameService: ns,
|
|
63
|
-
setDAOAddress: sda,
|
|
64
|
-
setSchemes,
|
|
65
|
-
marketMaker: mm,
|
|
66
|
-
daiAddress,
|
|
67
|
-
cdaiAddress,
|
|
68
|
-
reserve,
|
|
69
|
-
setReserveToken,
|
|
70
|
-
genericCall: gc,
|
|
71
|
-
COMP
|
|
72
|
-
} = await createDAO();
|
|
73
76
|
|
|
74
77
|
genericCall = gc;
|
|
75
78
|
dai = await ethers.getContractAt("DAIMock", daiAddress);
|
|
@@ -109,7 +112,7 @@ describe("SwapHelper - Helper library for swap on the Uniswap", () => {
|
|
|
109
112
|
const tokenUsdOracleFactory = await ethers.getContractFactory(
|
|
110
113
|
"BatUSDMockOracle"
|
|
111
114
|
);
|
|
112
|
-
setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
|
|
115
|
+
await setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
|
|
113
116
|
|
|
114
117
|
const compUsdOracleFactory = await ethers.getContractFactory(
|
|
115
118
|
"CompUSDMockOracle"
|