@gooddollar/goodprotocol 2.0.32 → 2.0.34-beta.0
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/artifacts/abis/BuyFromReserveHelper.min.json +1 -0
- package/artifacts/abis/Faucet.min.json +1 -1
- package/artifacts/abis/GoodDollar2.min.json +1 -0
- package/artifacts/abis/ISuperToken.min.json +1 -1
- package/artifacts/abis/IdentityV3.min.json +1 -0
- package/artifacts/abis/SuperGoodDollar.min.json +1 -1
- package/artifacts/abis/SuperToken.min.json +1 -1
- package/artifacts/abis/SuperfluidFaucet.min.json +1 -1
- package/artifacts/abis/UBISchemeV2.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/IQuoter.sol/IQuoterV2.dbg.json +4 -0
- package/artifacts/contracts/IQuoter.sol/IQuoterV2.json +211 -0
- 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/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/IIdentityV2.dbg.json +1 -1
- 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/IQuoterV2.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ISwapRouter.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/MentoInterfaces.sol/IBancorExchangeProvider.dbg.json +1 -1
- package/artifacts/contracts/MentoInterfaces.sol/IBroker.dbg.json +1 -1
- package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider.dbg.json +1 -1
- package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExpansionController.dbg.json +1 -1
- package/artifacts/contracts/MentoInterfaces.sol/IMentoReserve.dbg.json +1 -1
- package/artifacts/contracts/MentoInterfaces.sol/ITradingLimits.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +57 -2
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +2 -2
- package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.json +2 -2
- package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.json +46 -28
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
- package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
- package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +2 -2
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
- 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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +2 -2
- package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.dbg.json +4 -0
- package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.json +1089 -0
- package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.json +2 -2
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +2 -2
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +2 -2
- package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.dbg.json +1 -1
- package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.json +2 -2
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.json +2 -2
- 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/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.json +2 -2
- package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.dbg.json +1 -1
- package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +2 -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 +1 -1
- package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +2 -2
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +2 -2
- 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 +2 -2
- 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 +1 -1
- package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.json +2 -2
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.json +2 -2
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.json +2 -2
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.json +2 -2
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.json +2 -2
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.json +2 -2
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.json +2 -2
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.json +2 -2
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.json +2 -2
- package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.json +2 -2
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +2 -2
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -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 +2 -2
- package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.json +2 -2
- package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
- package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
- package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +2 -2
- package/artifacts/contracts/token/GoodDollar2.sol/GoodDollar2.dbg.json +4 -0
- package/artifacts/contracts/token/GoodDollar2.sol/GoodDollar2.json +1206 -0
- package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
- package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +1 -1
- package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.json +2 -2
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.json +0 -52
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +2 -74
- package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.json +2 -54
- package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +2 -2
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
- package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.json +2 -7
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +2 -2
- package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.json +2 -2
- 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/BulkWhitelist.sol/BulkWhitelist.dbg.json +1 -1
- package/artifacts/contracts/utils/BulkWhitelist.sol/BulkWhitelist.json +2 -2
- package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +2 -2
- package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.dbg.json +4 -0
- package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.json +476 -0
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.json +2 -2
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.json +2 -2
- package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.json +2 -2
- 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 +2 -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/FuseOldBridgeKill.sol/EternalStorage.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/EternalStorage.json +2 -2
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.json +2 -2
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/IUpgradeabilityOwnerStorage.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.json +2 -2
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.json +2 -2
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.json +2 -2
- package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
- package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.json +2 -2
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +2 -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/IdentityFix.sol/IdentityFix.dbg.json +1 -1
- package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.json +2 -2
- package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.dbg.json +1 -1
- package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.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 +2 -2
- package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
- package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.json +2 -2
- package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
- package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.json +2 -2
- package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.json +2 -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/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.dbg.json +1 -1
- package/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.json +2 -2
- package/contracts/IQuoter.sol +108 -0
- package/contracts/fuseFaucet/Faucet.sol +49 -37
- package/contracts/fuseFaucet/SuperfluidFacuet.sol +29 -8
- package/contracts/identity/IdentityV3.sol +534 -0
- package/contracts/token/ERC20PresetMinterPauserUpgradeable.sol +8 -9
- package/contracts/token/GoodDollar.sol +1 -1
- package/contracts/token/GoodDollar2.sol +13 -0
- package/contracts/token/superfluid/ISuperToken.sol +0 -19
- package/contracts/token/superfluid/SuperGoodDollar.sol +2 -21
- package/contracts/token/superfluid/SuperToken.sol +2 -2
- package/contracts/token/superfluid/SuperfluidToken.sol +66 -67
- package/contracts/ubi/UBISchemeV2.sol +12 -18
- package/contracts/utils/BuyFromReserveHelper.sol +129 -0
- package/dist/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +2 -2
- package/dist/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +177 -256
- package/dist/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
- package/dist/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
- package/dist/test-sdk/deploySuperGoodDollar.d.ts +1 -1
- package/dist/test-sdk/deploySuperGoodDollar.js +4 -8
- package/dist/test-sdk/index.js +1 -5
- package/hardhat.config.ts +37 -30
- package/package.json +3 -2
- package/releases/deploy-settings.json +5 -1
- package/releases/deployment.json +27 -1
- package/releases/olddao.json +1 -1
- package/scripts/analytics/activeGDStakers.ts +188 -0
- package/scripts/fv.ts +19 -1
- package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +28 -5
- package/scripts/multichain-deploy/1_basicdao-deploy.ts +111 -73
- package/scripts/multichain-deploy/2_helpers-deploy.ts +13 -8
- package/scripts/multichain-deploy/4_ubi-deploy.ts +17 -19
- package/scripts/multichain-deploy/5_gov-deploy.ts +58 -26
- package/scripts/multichain-deploy/flattened/Avatar.sol +913 -0
- package/scripts/multichain-deploy/flattened/Controller.sol +1891 -0
- package/scripts/multichain-deploy/flattened/FeeFormula.sol +1290 -0
- package/scripts/multichain-deploy/fulldeploy.sh +17 -17
- package/scripts/multichain-deploy/helpers.ts +203 -70
- package/scripts/multichain-deploy/verify.ts +41 -0
- package/test/governance/ClaimersDistribution.test.ts +1 -1
- package/test/helpers.ts +59 -46
- package/test/identity/IdentityV2.test.ts +4 -1
- package/test/identity/IdentityV3.test.ts +449 -0
- package/test/invite/InvitesV2.test.ts +1 -1
- package/test/token/GoodDollar.test.ts +1 -1
- package/test/token/SuperGoodDollar.nohost.test.ts +383 -0
- package/test/token/SuperGoodDollar.test.ts +2 -10
- package/test/ubi/UBIScheme.e2e.test.ts +5 -5
- package/test/ubi/UBISchemeCycle.test.ts +69 -22
- package/test/ubi/UBISchemeV2.test.ts +636 -0
- package/test/utils/AdminWallet.test.ts +1 -1
- package/test/utils/ProxyFactory.test.ts +4 -1
- package/types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts +108 -0
- package/types/@openzeppelin/contracts/proxy/ERC1967/index.ts +1 -0
- package/types/contracts/IQuoter.sol/IQuoterV2.ts +297 -0
- package/types/contracts/IQuoter.sol/index.ts +4 -0
- package/types/contracts/Interfaces.sol/AToken.ts +81 -0
- package/types/contracts/Interfaces.sol/IAaveIncentivesControllerV3.ts +156 -0
- package/types/contracts/Interfaces.sol/ILendingPoolV3.ts +254 -0
- package/types/contracts/fuseFaucet/Faucet.ts +109 -11
- package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributor.ts +648 -0
- package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributorUpgradeable.ts +843 -0
- package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/index.ts +4 -0
- package/types/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.ts +79 -41
- package/types/contracts/identity/IdentityV3.ts +1899 -0
- package/types/contracts/identity/index.ts +1 -0
- package/types/contracts/index.ts +2 -0
- package/types/contracts/mocks/CeloDistributionHelperTest.sol/DistributionHelperTestHelper.ts +1252 -0
- package/types/contracts/reserve/GoodReserveADai.ts +2212 -0
- package/types/contracts/staking/aave/GoodAave3StakingV2.sol/GoodAaveStakingV2.ts +1808 -0
- package/types/contracts/staking/aave/GoodAave3StakingV2.sol/index.ts +4 -0
- package/types/contracts/token/GoodDollar18.ts +1871 -0
- package/types/contracts/token/GoodDollar2.ts +1871 -0
- package/types/contracts/token/index.ts +1 -0
- package/types/contracts/token/superfluid/ISuperToken.ts +0 -84
- package/types/contracts/token/superfluid/SuperGoodDollar.ts +12 -126
- package/types/contracts/token/superfluid/SuperToken.ts +0 -84
- package/types/contracts/ubi/UBISchemeV2.ts +3 -14
- package/types/contracts/utils/BuyFromReserveHelper.ts +699 -0
- package/types/contracts/utils/BuyGDClone.sol/IQuoterV2.ts +184 -0
- package/types/contracts/utils/BuyGDClone.sol/ISwapRouter.ts +306 -0
- package/types/contracts/utils/FuseOldBridgeKill.sol/BasicAMBErc677ToErc677.ts +108 -0
- package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/MentoExchange.ts +81 -0
- package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.ts +161 -0
- package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/index.ts +5 -0
- package/types/contracts/utils/ReserveRestore.sol/MentoExchange.ts +81 -0
- package/types/contracts/utils/ReserveRestore.sol/ReserveRestore.ts +112 -0
- package/types/contracts/utils/ReserveRestore.sol/index.ts +5 -0
- package/types/contracts/utils/index.ts +1 -0
- package/types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts +146 -0
- package/types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts +1 -0
- package/types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts +1 -1
- package/types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.ts +1 -1
- package/types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/presets/ERC20PresetMinterPauserUpgradeable__factory.ts +1 -1
- package/types/factories/@superfluid-finance/ethereum-contracts/contracts/libs/EventsEmitter__factory.ts +1 -1
- package/types/factories/@superfluid-finance/ethereum-contracts/contracts/superfluid/ConstantInflowNFT__factory.ts +1 -1
- package/types/factories/@superfluid-finance/ethereum-contracts/contracts/superfluid/ConstantOutflowNFT__factory.ts +1 -1
- package/types/factories/contracts/IQuoter.sol/IQuoterV2__factory.ts +226 -0
- package/types/factories/contracts/IQuoter.sol/index.ts +4 -0
- package/types/factories/contracts/Interfaces.sol/AToken__factory.ts +36 -0
- package/types/factories/contracts/Interfaces.sol/IAaveIncentivesControllerV3__factory.ts +88 -0
- package/types/factories/contracts/Interfaces.sol/ILendingPoolV3__factory.ts +186 -0
- package/types/factories/contracts/fuseFaucet/Faucet__factory.ts +56 -1
- package/types/factories/contracts/fuseFaucet/FuseFaucetV2__factory.ts +1 -1
- package/types/factories/contracts/fuseFaucet/FuseFaucet__factory.ts +1 -1
- package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributorUpgradeable__factory.ts +572 -0
- package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributor__factory.ts +482 -0
- package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/index.ts +4 -0
- package/types/factories/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet__factory.ts +45 -27
- package/types/factories/contracts/governance/ClaimersDistribution__factory.ts +1 -1
- package/types/factories/contracts/governance/CompoundVotingMachine__factory.ts +1 -1
- package/types/factories/contracts/governance/GReputation__factory.ts +1 -1
- package/types/factories/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking__factory.ts +1 -1
- package/types/factories/contracts/governance/GovernanceStaking__factory.ts +1 -1
- package/types/factories/contracts/governance/Reputation__factory.ts +1 -1
- package/types/factories/contracts/governance/StakersDistribution__factory.ts +1 -1
- package/types/factories/contracts/identity/IdentityV2__factory.ts +1 -1
- package/types/factories/contracts/identity/IdentityV3__factory.ts +1140 -0
- package/types/factories/contracts/identity/index.ts +1 -0
- package/types/factories/contracts/index.ts +1 -0
- package/types/factories/contracts/invite/InvitesFuseV2__factory.ts +1 -1
- package/types/factories/contracts/invite/InvitesV1__factory.ts +1 -1
- package/types/factories/contracts/invite/InvitesV2__factory.ts +1 -1
- package/types/factories/contracts/invite/OneTimeReward__factory.ts +1 -1
- package/types/factories/contracts/mocks/AaveMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/AaveUSDMockOracle__factory.ts +1 -1
- package/types/factories/contracts/mocks/BatUSDMockOracle__factory.ts +1 -1
- package/types/factories/contracts/mocks/CBATMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CDAILowWorthMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CDAIMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CDAINonMintableMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CDecimalsMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CSDTMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CUSDCMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper__factory.ts +1 -1
- package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest__factory.ts +1 -1
- package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/DistributionHelperTestHelper__factory.ts +929 -0
- package/types/factories/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle__factory.ts +1 -1
- package/types/factories/contracts/mocks/DAIMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/DaiEthPriceMockOracle__factory.ts +1 -1
- package/types/factories/contracts/mocks/DecimalsMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/DistributionBridgeMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper__factory.ts +1 -1
- package/types/factories/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest__factory.ts +1 -1
- package/types/factories/contracts/mocks/EthUSDMockOracle__factory.ts +1 -1
- package/types/factories/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/GasPriceMockOracle__factory.ts +1 -1
- package/types/factories/contracts/mocks/GoodCompoundStakingTest__factory.ts +1 -1
- package/types/factories/contracts/mocks/GoodDollarStakingMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/GoodFundManagerTest__factory.ts +1 -1
- package/types/factories/contracts/mocks/IdentityMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/IncentiveControllerMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/LendingPoolMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/OverMintTester.sol/OverMintTester__factory.ts +1 -1
- package/types/factories/contracts/mocks/OverMintTesterRegularStake__factory.ts +1 -1
- package/types/factories/contracts/mocks/PayableMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/SixteenDecimalsTokenMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/StakingMockFixedAPY__factory.ts +1 -1
- package/types/factories/contracts/mocks/SwapHelperTest__factory.ts +1 -1
- package/types/factories/contracts/mocks/TwentyDecimalsTokenMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/UpgradableMocks.sol/UpgradableMock2__factory.ts +1 -1
- package/types/factories/contracts/mocks/UpgradableMocks.sol/UpgradableMock3__factory.ts +1 -1
- package/types/factories/contracts/mocks/UpgradableMocks.sol/UpgradableMock4__factory.ts +1 -1
- package/types/factories/contracts/mocks/UpgradableMocks.sol/UpgradableMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/UsdcMock.sol/USDCMock__factory.ts +1 -1
- package/types/factories/contracts/reserve/CeloDistributionHelper__factory.ts +1 -1
- package/types/factories/contracts/reserve/DistributionHelper__factory.ts +1 -1
- package/types/factories/contracts/reserve/ExchangeHelper__factory.ts +1 -1
- package/types/factories/contracts/reserve/GoodMarketMaker__factory.ts +1 -1
- package/types/factories/contracts/reserve/GoodReserveADai__factory.ts +1502 -0
- package/types/factories/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai__factory.ts +1 -1
- package/types/factories/contracts/staking/BaseShareFieldV2__factory.ts +1 -1
- package/types/factories/contracts/staking/BaseShareField__factory.ts +1 -1
- package/types/factories/contracts/staking/DonationsStaking__factory.ts +1 -1
- package/types/factories/contracts/staking/FuseStakingV3.sol/FuseStakingV3__factory.ts +1 -1
- package/types/factories/contracts/staking/GoodFundManager__factory.ts +1 -1
- package/types/factories/contracts/staking/UniswapV2SwapHelper__factory.ts +1 -1
- package/types/factories/contracts/staking/aave/AaveStakingFactory__factory.ts +1 -1
- package/types/factories/contracts/staking/aave/GoodAave3StakingV2.sol/GoodAaveStakingV2__factory.ts +1240 -0
- package/types/factories/contracts/staking/aave/GoodAave3StakingV2.sol/index.ts +4 -0
- package/types/factories/contracts/staking/aave/GoodAaveStakingV2__factory.ts +1 -1
- package/types/factories/contracts/staking/aave/GoodAaveStaking__factory.ts +1 -1
- package/types/factories/contracts/staking/compound/CompoundStakingFactory__factory.ts +1 -1
- package/types/factories/contracts/staking/compound/GoodCompoundStakingV2__factory.ts +1 -1
- package/types/factories/contracts/staking/compound/GoodCompoundStaking__factory.ts +1 -1
- package/types/factories/contracts/token/ERC20PresetMinterPauserUpgradeable__factory.ts +1 -1
- package/types/factories/contracts/token/GoodDollar18__factory.ts +1257 -0
- package/types/factories/contracts/token/GoodDollar2__factory.ts +1257 -0
- package/types/factories/contracts/token/GoodDollar__factory.ts +1 -1
- package/types/factories/contracts/token/MultichainFeeFormula__factory.ts +1 -1
- package/types/factories/contracts/token/index.ts +1 -0
- package/types/factories/contracts/token/superfluid/ISuperToken__factory.ts +0 -52
- package/types/factories/contracts/token/superfluid/SuperGoodDollar__factory.ts +1 -73
- package/types/factories/contracts/token/superfluid/SuperToken__factory.ts +1 -53
- package/types/factories/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy__factory.ts +1 -1
- package/types/factories/contracts/ubi/UBISchemeV2__factory.ts +1 -6
- package/types/factories/contracts/ubi/UBIScheme__factory.ts +1 -1
- package/types/factories/contracts/utils/AdminWalletFuse__factory.ts +1 -1
- package/types/factories/contracts/utils/AdminWallet__factory.ts +1 -1
- package/types/factories/contracts/utils/BancorFormula__factory.ts +1 -1
- package/types/factories/contracts/utils/BulkWhitelist__factory.ts +1 -1
- package/types/factories/contracts/utils/BuyAndBridgeHelper__factory.ts +1 -1
- package/types/factories/contracts/utils/BuyFromReserveHelper__factory.ts +566 -0
- package/types/factories/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory__factory.ts +1 -1
- package/types/factories/contracts/utils/BuyGDClone.sol/BuyGDClone__factory.ts +1 -1
- package/types/factories/contracts/utils/BuyGDClone.sol/DonateGDClone__factory.ts +1 -1
- package/types/factories/contracts/utils/BuyGDClone.sol/IQuoterV2__factory.ts +126 -0
- package/types/factories/contracts/utils/BuyGDClone.sol/ISwapRouter__factory.ts +220 -0
- package/types/factories/contracts/utils/DAOContract__factory.ts +1 -1
- package/types/factories/contracts/utils/DAOUpgradeableContract__factory.ts +1 -1
- package/types/factories/contracts/utils/FuseOldBridgeKill.sol/BasicAMBErc677ToErc677__factory.ts +86 -0
- package/types/factories/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill__factory.ts +1 -1
- package/types/factories/contracts/utils/FuseOldBridgeKill.sol/Initializable__factory.ts +1 -1
- package/types/factories/contracts/utils/FuseOldBridgeKill.sol/Ownable__factory.ts +1 -1
- package/types/factories/contracts/utils/GDFaucet__factory.ts +1 -1
- package/types/factories/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper__factory.ts +1 -1
- package/types/factories/contracts/utils/IdentityFix__factory.ts +1 -1
- package/types/factories/contracts/utils/LastauthReduction__factory.ts +1 -1
- package/types/factories/contracts/utils/MultiCall.sol/Multicall__factory.ts +1 -1
- package/types/factories/contracts/utils/MultichainBridgeHelper__factory.ts +1 -1
- package/types/factories/contracts/utils/NameService__factory.ts +1 -1
- package/types/factories/contracts/utils/OneTimePaymentsV2__factory.ts +1 -1
- package/types/factories/contracts/utils/OneTimePayments__factory.ts +1 -1
- package/types/factories/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento__factory.ts +1 -1
- package/types/factories/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade__factory.ts +1 -1
- package/types/factories/contracts/utils/ProtocolUpgradeFuseRecover__factory.ts +1 -1
- package/types/factories/contracts/utils/ProtocolUpgradeFuse__factory.ts +1 -1
- package/types/factories/contracts/utils/ProtocolUpgradeRecover__factory.ts +1 -1
- package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/MentoExchange__factory.ts +39 -0
- package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/ProtocolUpgradeV4Mento__factory.ts +152 -0
- package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/index.ts +5 -0
- package/types/factories/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy__factory.ts +1 -1
- package/types/factories/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967__factory.ts +1 -1
- package/types/factories/contracts/utils/ReputationTestHelper__factory.ts +1 -1
- package/types/factories/contracts/utils/ReserveRestore.sol/MentoExchange__factory.ts +39 -0
- package/types/factories/contracts/utils/ReserveRestore.sol/ReserveRestore__factory.ts +95 -0
- package/types/factories/contracts/utils/ReserveRestore.sol/index.ts +5 -0
- package/types/factories/contracts/utils/ReserveRestore__factory.ts +1 -1
- package/types/factories/contracts/utils/index.ts +1 -0
- package/types/hardhat.d.ts +45 -0
- package/types/index.ts +8 -2
|
@@ -69,15 +69,14 @@ abstract contract SuperfluidToken is ISuperfluidToken {
|
|
|
69
69
|
*************************************************************************/
|
|
70
70
|
|
|
71
71
|
/// @dev ISuperfluidToken.realtimeBalanceOf implementation
|
|
72
|
-
function realtimeBalanceOf(
|
|
72
|
+
function realtimeBalanceOf(
|
|
73
|
+
address account,
|
|
74
|
+
uint256 timestamp
|
|
75
|
+
)
|
|
73
76
|
public
|
|
74
77
|
view
|
|
75
78
|
override
|
|
76
|
-
returns (
|
|
77
|
-
int256 availableBalance,
|
|
78
|
-
uint256 deposit,
|
|
79
|
-
uint256 owedDeposit
|
|
80
|
-
)
|
|
79
|
+
returns (int256 availableBalance, uint256 deposit, uint256 owedDeposit)
|
|
81
80
|
{
|
|
82
81
|
availableBalance = _sharedSettledBalances[account];
|
|
83
82
|
ISuperAgreement[] memory activeAgreements = getAccountActiveAgreements(
|
|
@@ -105,7 +104,9 @@ abstract contract SuperfluidToken is ISuperfluidToken {
|
|
|
105
104
|
}
|
|
106
105
|
|
|
107
106
|
/// @dev ISuperfluidToken.realtimeBalanceOfNow implementation
|
|
108
|
-
function realtimeBalanceOfNow(
|
|
107
|
+
function realtimeBalanceOfNow(
|
|
108
|
+
address account
|
|
109
|
+
)
|
|
109
110
|
public
|
|
110
111
|
view
|
|
111
112
|
override
|
|
@@ -116,38 +117,35 @@ abstract contract SuperfluidToken is ISuperfluidToken {
|
|
|
116
117
|
uint256 timestamp
|
|
117
118
|
)
|
|
118
119
|
{
|
|
119
|
-
timestamp = _host.getNow();
|
|
120
|
+
timestamp = address(_host) != address(0) ? _host.getNow() : block.timestamp;
|
|
120
121
|
(availableBalance, deposit, owedDeposit) = realtimeBalanceOf(
|
|
121
122
|
account,
|
|
122
|
-
timestamp
|
|
123
|
+
address(_host) != address(0) ? _host.getNow() : block.timestamp
|
|
123
124
|
);
|
|
124
125
|
}
|
|
125
126
|
|
|
126
|
-
function isAccountCritical(
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
returns (bool isCritical)
|
|
131
|
-
{
|
|
127
|
+
function isAccountCritical(
|
|
128
|
+
address account,
|
|
129
|
+
uint256 timestamp
|
|
130
|
+
) public view override returns (bool isCritical) {
|
|
132
131
|
(int256 availableBalance, , ) = realtimeBalanceOf(account, timestamp);
|
|
133
132
|
return availableBalance < 0;
|
|
134
133
|
}
|
|
135
134
|
|
|
136
|
-
function isAccountCriticalNow(
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
135
|
+
function isAccountCriticalNow(
|
|
136
|
+
address account
|
|
137
|
+
) external view override returns (bool isCritical) {
|
|
138
|
+
return
|
|
139
|
+
isAccountCritical(
|
|
140
|
+
account,
|
|
141
|
+
address(_host) != address(0) ? _host.getNow() : block.timestamp
|
|
142
|
+
);
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
function isAccountSolvent(
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
returns (bool isSolvent)
|
|
150
|
-
{
|
|
145
|
+
function isAccountSolvent(
|
|
146
|
+
address account,
|
|
147
|
+
uint256 timestamp
|
|
148
|
+
) public view override returns (bool isSolvent) {
|
|
151
149
|
(
|
|
152
150
|
int256 availableBalance,
|
|
153
151
|
uint256 deposit,
|
|
@@ -159,23 +157,24 @@ abstract contract SuperfluidToken is ISuperfluidToken {
|
|
|
159
157
|
return realtimeBalance >= 0;
|
|
160
158
|
}
|
|
161
159
|
|
|
162
|
-
function isAccountSolventNow(
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
160
|
+
function isAccountSolventNow(
|
|
161
|
+
address account
|
|
162
|
+
) external view override returns (bool isSolvent) {
|
|
163
|
+
return
|
|
164
|
+
isAccountSolvent(
|
|
165
|
+
account,
|
|
166
|
+
address(_host) != address(0) ? _host.getNow() : block.timestamp
|
|
167
|
+
);
|
|
169
168
|
}
|
|
170
169
|
|
|
171
170
|
/// @dev ISuperfluidToken.getAccountActiveAgreements implementation
|
|
172
|
-
function getAccountActiveAgreements(
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
171
|
+
function getAccountActiveAgreements(
|
|
172
|
+
address account
|
|
173
|
+
) public view override returns (ISuperAgreement[] memory) {
|
|
174
|
+
return
|
|
175
|
+
address(_host) != address(0)
|
|
176
|
+
? _host.mapAgreementClasses(~_inactiveAgreementBitmap[account])
|
|
177
|
+
: new ISuperAgreement[](0);
|
|
179
178
|
}
|
|
180
179
|
|
|
181
180
|
/**************************************************************************
|
|
@@ -190,7 +189,10 @@ abstract contract SuperfluidToken is ISuperfluidToken {
|
|
|
190
189
|
}
|
|
191
190
|
|
|
192
191
|
function _burn(address account, uint256 amount) internal {
|
|
193
|
-
(int256 availableBalance, , ) = realtimeBalanceOf(
|
|
192
|
+
(int256 availableBalance, , ) = realtimeBalanceOf(
|
|
193
|
+
account,
|
|
194
|
+
address(_host) != address(0) ? _host.getNow() : block.timestamp
|
|
195
|
+
);
|
|
194
196
|
if (availableBalance < amount.toInt256()) {
|
|
195
197
|
revert SF_TOKEN_BURN_INSUFFICIENT_BALANCE();
|
|
196
198
|
}
|
|
@@ -200,12 +202,11 @@ abstract contract SuperfluidToken is ISuperfluidToken {
|
|
|
200
202
|
_totalSupply = _totalSupply - amount;
|
|
201
203
|
}
|
|
202
204
|
|
|
203
|
-
function _move(
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
(int256 availableBalance, , ) = realtimeBalanceOf(from, _host.getNow());
|
|
205
|
+
function _move(address from, address to, int256 amount) internal {
|
|
206
|
+
(int256 availableBalance, , ) = realtimeBalanceOf(
|
|
207
|
+
from,
|
|
208
|
+
address(_host) != address(0) ? _host.getNow() : block.timestamp
|
|
209
|
+
);
|
|
209
210
|
if (availableBalance < amount) {
|
|
210
211
|
revert SF_TOKEN_MOVE_INSUFFICIENT_BALANCE();
|
|
211
212
|
}
|
|
@@ -227,11 +228,10 @@ abstract contract SuperfluidToken is ISuperfluidToken {
|
|
|
227
228
|
*************************************************************************/
|
|
228
229
|
|
|
229
230
|
/// @dev ISuperfluidToken.createAgreement implementation
|
|
230
|
-
function createAgreement(
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
{
|
|
231
|
+
function createAgreement(
|
|
232
|
+
bytes32 id,
|
|
233
|
+
bytes32[] calldata data
|
|
234
|
+
) public virtual override {
|
|
235
235
|
address agreementClass = msg.sender;
|
|
236
236
|
bytes32 slot = keccak256(abi.encode("AgreementData", agreementClass, id));
|
|
237
237
|
if (FixedSizeData.hasData(slot, data.length)) {
|
|
@@ -252,10 +252,10 @@ abstract contract SuperfluidToken is ISuperfluidToken {
|
|
|
252
252
|
}
|
|
253
253
|
|
|
254
254
|
/// @dev ISuperfluidToken.updateAgreementData implementation
|
|
255
|
-
function updateAgreementData(
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
{
|
|
255
|
+
function updateAgreementData(
|
|
256
|
+
bytes32 id,
|
|
257
|
+
bytes32[] calldata data
|
|
258
|
+
) external override {
|
|
259
259
|
address agreementClass = msg.sender;
|
|
260
260
|
bytes32 slot = keccak256(abi.encode("AgreementData", agreementClass, id));
|
|
261
261
|
FixedSizeData.storeData(slot, data);
|
|
@@ -263,10 +263,10 @@ abstract contract SuperfluidToken is ISuperfluidToken {
|
|
|
263
263
|
}
|
|
264
264
|
|
|
265
265
|
/// @dev ISuperfluidToken.terminateAgreement implementation
|
|
266
|
-
function terminateAgreement(
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
{
|
|
266
|
+
function terminateAgreement(
|
|
267
|
+
bytes32 id,
|
|
268
|
+
uint256 dataLength
|
|
269
|
+
) external override {
|
|
270
270
|
address agreementClass = msg.sender;
|
|
271
271
|
bytes32 slot = keccak256(abi.encode("AgreementData", agreementClass, id));
|
|
272
272
|
if (!FixedSizeData.hasData(slot, dataLength)) {
|
|
@@ -303,11 +303,10 @@ abstract contract SuperfluidToken is ISuperfluidToken {
|
|
|
303
303
|
}
|
|
304
304
|
|
|
305
305
|
/// @dev ISuperfluidToken.settleBalance implementation
|
|
306
|
-
function settleBalance(
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
{
|
|
306
|
+
function settleBalance(
|
|
307
|
+
address account,
|
|
308
|
+
int256 delta
|
|
309
|
+
) external override onlyAgreement {
|
|
311
310
|
_sharedSettledBalances[account] = _sharedSettledBalances[account] + delta;
|
|
312
311
|
}
|
|
313
312
|
|
|
@@ -129,17 +129,12 @@ contract UBISchemeV2 is DAOUpgradeableContract {
|
|
|
129
129
|
/**
|
|
130
130
|
* @dev Constructor
|
|
131
131
|
* @param _ns the DAO
|
|
132
|
-
* @param _maxInactiveDays Days of grace without claiming request
|
|
133
132
|
*/
|
|
134
|
-
function initialize(
|
|
135
|
-
INameService _ns,
|
|
136
|
-
uint256 _maxInactiveDays
|
|
137
|
-
) public initializer {
|
|
138
|
-
require(_maxInactiveDays > 0, "Max inactive days cannot be zero");
|
|
133
|
+
function initialize(INameService _ns) public initializer {
|
|
139
134
|
setDAO(_ns);
|
|
140
135
|
shouldWithdrawFromDAO = false;
|
|
141
136
|
cycleLength = 30; //30 days
|
|
142
|
-
periodStart = (block.timestamp / (1 days)) * 1 days
|
|
137
|
+
periodStart = (block.timestamp / (1 days)) * 1 days - 12 hours; //set start time to GMT noon
|
|
143
138
|
startOfCycle = periodStart;
|
|
144
139
|
minActiveUsers = 1000;
|
|
145
140
|
reserveFactor = 10500;
|
|
@@ -240,13 +235,12 @@ contract UBISchemeV2 is DAOUpgradeableContract {
|
|
|
240
235
|
uint256 currentBalance = token.balanceOf(address(this));
|
|
241
236
|
//start early cycle if daily pool size is +%5 previous pool or not enough until end of cycle
|
|
242
237
|
uint256 nextDailyPool = currentBalance / cycleLength;
|
|
243
|
-
bool
|
|
244
|
-
(dailyCyclePool * 105) / 100 ||
|
|
245
|
-
|
|
238
|
+
bool shouldStartCycle = currentDayInCycle() >= currentCycleLength ||
|
|
239
|
+
(nextDailyPool > (dailyCyclePool * 105) / 100 ||
|
|
240
|
+
currentBalance <
|
|
241
|
+
(dailyCyclePool * (cycleLength - currentDayInCycle())));
|
|
246
242
|
|
|
247
|
-
if (
|
|
248
|
-
currentDayInCycle() >= currentCycleLength || shouldStartEarlyCycle
|
|
249
|
-
) //start of cycle or first time
|
|
243
|
+
if (shouldStartCycle) //start of cycle or first time
|
|
250
244
|
{
|
|
251
245
|
if (shouldWithdrawFromDAO) {
|
|
252
246
|
_withdrawFromDao();
|
|
@@ -347,16 +341,16 @@ contract UBISchemeV2 is DAOUpgradeableContract {
|
|
|
347
341
|
uint256 currentBalance = nativeToken().balanceOf(address(this));
|
|
348
342
|
//start early cycle if we can increase the daily UBI pool
|
|
349
343
|
uint256 nextDailyPool = currentBalance / cycleLength;
|
|
350
|
-
bool shouldStartEarlyCycle =
|
|
344
|
+
bool shouldStartEarlyCycle = currentDayInCycle() + 1 >=
|
|
345
|
+
currentCycleLength ||
|
|
346
|
+
nextDailyPool > (dailyCyclePool * 105) / 100 ||
|
|
351
347
|
currentBalance < (dailyCyclePool * (cycleLength - currentDayInCycle()));
|
|
352
348
|
|
|
353
349
|
uint256 _dailyCyclePool = dailyCyclePool;
|
|
354
350
|
uint256 _dailyUbi;
|
|
355
|
-
if (
|
|
356
|
-
(currentDayInCycle() + 1) >= currentCycleLength || shouldStartEarlyCycle
|
|
357
|
-
) //start of cycle or first time
|
|
351
|
+
if (shouldStartEarlyCycle) //start of cycle or first time
|
|
358
352
|
{
|
|
359
|
-
_dailyCyclePool =
|
|
353
|
+
_dailyCyclePool = nextDailyPool;
|
|
360
354
|
}
|
|
361
355
|
|
|
362
356
|
_dailyUbi =
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity >=0.8.0;
|
|
3
|
+
|
|
4
|
+
import "../MentoInterfaces.sol";
|
|
5
|
+
import "@openzeppelin/contracts/access/AccessControl.sol";
|
|
6
|
+
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
7
|
+
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
8
|
+
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
|
|
9
|
+
|
|
10
|
+
contract BuyFromReserveHelper is AccessControl, ReentrancyGuard {
|
|
11
|
+
using SafeERC20 for IERC20;
|
|
12
|
+
|
|
13
|
+
bytes32 public constant ADMIN_ROLE = keccak256("ADMIN_ROLE");
|
|
14
|
+
bytes32 public constant EXECUTOR_ROLE = keccak256("EXECUTOR_ROLE");
|
|
15
|
+
|
|
16
|
+
address public safe;
|
|
17
|
+
address public exchangeProvider;
|
|
18
|
+
bytes32 public exchangeId;
|
|
19
|
+
IERC20 public tokenIn;
|
|
20
|
+
IERC20 public tokenOut;
|
|
21
|
+
IBroker public broker;
|
|
22
|
+
|
|
23
|
+
event SafeUpdated(address indexed newSafe);
|
|
24
|
+
event SettingsUpdated(
|
|
25
|
+
address indexed exchangeProvider,
|
|
26
|
+
bytes32 indexed exchangeId
|
|
27
|
+
);
|
|
28
|
+
event GDBought(address indexed buyer, uint256 amountIn, uint256 amountOut);
|
|
29
|
+
|
|
30
|
+
constructor(
|
|
31
|
+
address _safe,
|
|
32
|
+
address _tokenIn,
|
|
33
|
+
address _tokenOut,
|
|
34
|
+
address _broker,
|
|
35
|
+
address _exchangeProvider,
|
|
36
|
+
bytes32 _exchangeId
|
|
37
|
+
) {
|
|
38
|
+
require(_safe != address(0), "Safe address cannot be zero");
|
|
39
|
+
require(_tokenIn != address(0), "TokenIn address cannot be zero");
|
|
40
|
+
require(_tokenOut != address(0), "TokenOut address cannot be zero");
|
|
41
|
+
require(_broker != address(0), "Broker address cannot be zero");
|
|
42
|
+
require(_exchangeProvider != address(0), "ExchangeProvider cannot be zero");
|
|
43
|
+
require(_exchangeId != bytes32(0), "ExchangeId cannot be zero");
|
|
44
|
+
|
|
45
|
+
safe = _safe;
|
|
46
|
+
tokenIn = IERC20(_tokenIn);
|
|
47
|
+
tokenOut = IERC20(_tokenOut);
|
|
48
|
+
broker = IBroker(_broker);
|
|
49
|
+
exchangeProvider = _exchangeProvider;
|
|
50
|
+
exchangeId = _exchangeId;
|
|
51
|
+
|
|
52
|
+
_setupRole(DEFAULT_ADMIN_ROLE, _safe);
|
|
53
|
+
_setupRole(EXECUTOR_ROLE, msg.sender);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function updateSafe(address _newSafe) external {
|
|
57
|
+
require(msg.sender == safe, "Only safe can update");
|
|
58
|
+
require(_newSafe != address(0), "New safe address cannot be zero");
|
|
59
|
+
|
|
60
|
+
// Update admin role
|
|
61
|
+
_revokeRole(DEFAULT_ADMIN_ROLE, safe);
|
|
62
|
+
_setupRole(DEFAULT_ADMIN_ROLE, _newSafe);
|
|
63
|
+
|
|
64
|
+
safe = _newSafe;
|
|
65
|
+
emit SafeUpdated(_newSafe);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function updateSettings(
|
|
69
|
+
address _exchangeProvider,
|
|
70
|
+
bytes32 _exchangeId,
|
|
71
|
+
address _tokenIn,
|
|
72
|
+
address _tokenOut,
|
|
73
|
+
address _broker
|
|
74
|
+
) external onlyRole(DEFAULT_ADMIN_ROLE) {
|
|
75
|
+
require(_exchangeProvider != address(0), "ExchangeProvider cannot be zero");
|
|
76
|
+
require(_exchangeId != bytes32(0), "ExchangeId cannot be zero");
|
|
77
|
+
require(_tokenIn != address(0), "TokenIn address cannot be zero");
|
|
78
|
+
require(_tokenOut != address(0), "TokenOut address cannot be zero");
|
|
79
|
+
require(_broker != address(0), "Broker address cannot be zero");
|
|
80
|
+
|
|
81
|
+
exchangeProvider = _exchangeProvider;
|
|
82
|
+
exchangeId = _exchangeId;
|
|
83
|
+
tokenIn = IERC20(_tokenIn);
|
|
84
|
+
tokenOut = IERC20(_tokenOut);
|
|
85
|
+
broker = IBroker(_broker);
|
|
86
|
+
|
|
87
|
+
emit SettingsUpdated(_exchangeProvider, _exchangeId);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function buyGdFromBroker(
|
|
91
|
+
uint256 amountInNominal,
|
|
92
|
+
uint256 minReturnNominal
|
|
93
|
+
) external onlyRole(EXECUTOR_ROLE) nonReentrant {
|
|
94
|
+
require(amountInNominal > 0, "Amount must be greater than zero");
|
|
95
|
+
require(minReturnNominal > 0, "Minimum return must be greater than zero");
|
|
96
|
+
|
|
97
|
+
uint256 amountIn = amountInNominal * 1e18;
|
|
98
|
+
uint256 minReturn = minReturnNominal * 1e18;
|
|
99
|
+
|
|
100
|
+
// assume minimum price for 0.00005 for G$ for safety check
|
|
101
|
+
require((amountIn * 1e18) / 5e13 >= minReturn, "minReturn seems too low");
|
|
102
|
+
|
|
103
|
+
// Transfer tokenIn from the safe to this contract
|
|
104
|
+
tokenIn.safeTransferFrom(safe, address(this), amountIn);
|
|
105
|
+
|
|
106
|
+
// Reset any existing approval
|
|
107
|
+
tokenIn.safeApprove(address(broker), 0);
|
|
108
|
+
// Approve the broker to spend tokenIn
|
|
109
|
+
tokenIn.safeApprove(address(broker), amountIn);
|
|
110
|
+
|
|
111
|
+
// Call the broker to buy tokenOut (G$)
|
|
112
|
+
uint256 amountOut = broker.swapIn(
|
|
113
|
+
exchangeProvider,
|
|
114
|
+
exchangeId,
|
|
115
|
+
address(tokenIn),
|
|
116
|
+
address(tokenOut),
|
|
117
|
+
amountIn,
|
|
118
|
+
minReturn
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
// Verify minimum return
|
|
122
|
+
require(amountOut >= minReturn, "Insufficient return amount");
|
|
123
|
+
|
|
124
|
+
// Transfer bought tokens to safe
|
|
125
|
+
tokenOut.safeTransfer(safe, amountOut);
|
|
126
|
+
|
|
127
|
+
emit GDBought(msg.sender, amountIn, amountOut);
|
|
128
|
+
}
|
|
129
|
+
}
|