@gooddollar/goodprotocol 2.0.34-beta.2 → 2.0.34-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/artifacts/abis/GenericDistributionHelper.min.json +1 -0
  2. package/artifacts/abis/INonfungiblePositionManager.min.json +1 -0
  3. package/artifacts/abis/IUniswapV3Pool.min.json +1 -0
  4. package/artifacts/abis/UBISchemeV2.min.json +1 -1
  5. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  6. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  7. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  8. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  9. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  10. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  11. package/artifacts/contracts/IQuoter.sol/IQuoterV2.dbg.json +4 -0
  12. package/artifacts/contracts/IQuoter.sol/IQuoterV2.json +211 -0
  13. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.dbg.json +4 -0
  14. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.json +102 -0
  15. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.dbg.json +4 -0
  16. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.json +93 -0
  17. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/IQuoterV2.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/ISwapRouter.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  35. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  36. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  37. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  38. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  39. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  40. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  41. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  42. package/artifacts/contracts/MentoInterfaces.sol/IBancorExchangeProvider.dbg.json +1 -1
  43. package/artifacts/contracts/MentoInterfaces.sol/IBroker.dbg.json +1 -1
  44. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider.dbg.json +1 -1
  45. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExpansionController.dbg.json +1 -1
  46. package/artifacts/contracts/MentoInterfaces.sol/IMentoReserve.dbg.json +1 -1
  47. package/artifacts/contracts/MentoInterfaces.sol/ITradingLimits.dbg.json +1 -1
  48. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  49. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  50. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  51. package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.dbg.json +1 -1
  52. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  53. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  54. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  55. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  56. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
  57. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
  58. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  59. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  60. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  61. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  62. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  63. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  64. package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.dbg.json +1 -1
  65. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  66. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  67. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  68. package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.dbg.json +1 -1
  69. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  70. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  71. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  72. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.dbg.json +1 -1
  73. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.dbg.json +1 -1
  74. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  75. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  76. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  77. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  79. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  83. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  84. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  85. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  87. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
  88. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  91. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  92. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  93. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  94. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  95. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  97. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  98. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  99. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  100. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  101. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  102. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  103. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  104. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  105. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  106. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  107. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  108. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  109. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  110. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  111. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  112. package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.dbg.json +1 -1
  113. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  114. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  115. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.dbg.json +4 -0
  116. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.json +931 -0
  117. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  118. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  119. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  120. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  121. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  122. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  123. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  124. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  125. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  126. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  127. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  128. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  129. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  130. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  131. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  132. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  133. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  134. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  135. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  136. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  137. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  138. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  139. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  140. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  141. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  142. package/artifacts/contracts/token/GoodDollar2.sol/GoodDollar2.dbg.json +1 -1
  143. package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
  144. package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +1 -1
  145. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  146. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  147. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  148. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  149. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +1 -1
  150. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  151. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  152. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  153. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  154. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  155. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  156. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  157. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  158. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  159. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.json +7 -2
  160. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  161. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  162. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  163. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  164. package/artifacts/contracts/utils/BulkWhitelist.sol/BulkWhitelist.dbg.json +1 -1
  165. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  166. package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.dbg.json +1 -1
  167. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
  168. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
  169. package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
  170. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  171. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  172. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  173. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  174. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/EternalStorage.dbg.json +1 -1
  175. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.dbg.json +1 -1
  176. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/IUpgradeabilityOwnerStorage.dbg.json +1 -1
  177. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.dbg.json +1 -1
  178. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.dbg.json +1 -1
  179. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.dbg.json +1 -1
  180. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
  181. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  182. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  183. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  184. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  185. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
  186. package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.dbg.json +1 -1
  187. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  188. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  189. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  190. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  191. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
  192. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange.dbg.json +1 -1
  193. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.dbg.json +1 -1
  194. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  195. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  196. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  197. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  198. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  199. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  200. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  201. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  202. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
  203. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  204. package/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.dbg.json +1 -1
  205. package/contracts/IQuoter.sol +108 -0
  206. package/contracts/IUniswapV3.sol +51 -0
  207. package/contracts/reserve/GenericDistributionHelper.sol +319 -0
  208. package/contracts/ubi/UBISchemeV2.sol +8 -4
  209. package/contracts/utils/ProxyFactory1967.sol +16 -18
  210. package/dist/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +2 -2
  211. package/dist/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +179 -186
  212. package/dist/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
  213. package/dist/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  214. package/dist/test-sdk/deploySuperGoodDollar.d.ts +1 -1
  215. package/dist/test-sdk/deploySuperGoodDollar.js +4 -8
  216. package/dist/test-sdk/index.js +1 -5
  217. package/hardhat.config.ts +14 -6
  218. package/package.json +1 -1
  219. package/releases/deploy-settings.json +15 -2
  220. package/releases/deployment.json +66 -45
  221. package/releases/olddao.json +1 -1
  222. package/scripts/fv.ts +19 -1
  223. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +4 -3
  224. package/scripts/multichain-deploy/1_basicdao-deploy.ts +18 -9
  225. package/scripts/multichain-deploy/4_ubi-deploy.ts +1 -1
  226. package/scripts/multichain-deploy/8_disthelper-deploy.ts +152 -0
  227. package/scripts/multichain-deploy/createUniswapTestPools.ts +163 -0
  228. package/scripts/multichain-deploy/fulldeploy.sh +17 -17
  229. package/scripts/multichain-deploy/helpers.ts +76 -6
  230. package/scripts/multichain-deploy/verify.ts +41 -0
  231. package/scripts/proposals/gip-25-xdc-upgrade.ts +438 -0
  232. package/test/helpers.ts +1 -1
  233. package/test/ubi/UBISchemeV2.test.ts +35 -108
  234. package/types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts +108 -0
  235. package/types/@openzeppelin/contracts/proxy/ERC1967/index.ts +1 -0
  236. package/types/@uniswap/index.ts +2 -0
  237. package/types/@uniswap/v2-periphery/contracts/index.ts +5 -0
  238. package/types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts +159 -0
  239. package/types/@uniswap/v2-periphery/contracts/interfaces/index.ts +4 -0
  240. package/types/@uniswap/v2-periphery/index.ts +5 -0
  241. package/types/contracts/IQuoter.sol/IQuoterV2.ts +297 -0
  242. package/types/contracts/IQuoter.sol/index.ts +4 -0
  243. package/types/contracts/IUniswapV3.sol/INonfungiblePositionManager.ts +151 -0
  244. package/types/contracts/IUniswapV3.sol/IUniswapV3Factory.ts +155 -0
  245. package/types/contracts/IUniswapV3.sol/IUniswapV3Pool.ts +179 -0
  246. package/types/contracts/IUniswapV3.sol/index.ts +5 -0
  247. package/types/contracts/Interfaces.sol/AToken.ts +81 -0
  248. package/types/contracts/Interfaces.sol/IAaveIncentivesControllerV3.ts +156 -0
  249. package/types/contracts/Interfaces.sol/ILendingPoolV3.ts +254 -0
  250. package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributor.ts +648 -0
  251. package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributorUpgradeable.ts +843 -0
  252. package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/index.ts +4 -0
  253. package/types/contracts/index.ts +4 -0
  254. package/types/contracts/mocks/CeloDistributionHelperTest.sol/DistributionHelperTestHelper.ts +1252 -0
  255. package/types/contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper.ts +1247 -0
  256. package/types/contracts/reserve/GenericDistributionHelper copy.sol/index.ts +4 -0
  257. package/types/contracts/reserve/GenericDistributionHelper.ts +1304 -0
  258. package/types/contracts/reserve/GoodReserveADai.ts +2212 -0
  259. package/types/contracts/reserve/index.ts +1 -0
  260. package/types/contracts/staking/aave/GoodAave3StakingV2.sol/GoodAaveStakingV2.ts +1808 -0
  261. package/types/contracts/staking/aave/GoodAave3StakingV2.sol/index.ts +4 -0
  262. package/types/contracts/token/GoodDollar18.ts +1871 -0
  263. package/types/contracts/ubi/UBISchemeV2.ts +14 -3
  264. package/types/contracts/utils/BuyGDClone.sol/IQuoterV2.ts +184 -0
  265. package/types/contracts/utils/BuyGDClone.sol/ISwapRouter.ts +306 -0
  266. package/types/contracts/utils/FuseOldBridgeKill.sol/BasicAMBErc677ToErc677.ts +108 -0
  267. package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/MentoExchange.ts +81 -0
  268. package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.ts +161 -0
  269. package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/index.ts +5 -0
  270. package/types/contracts/utils/ReserveRestore.sol/MentoExchange.ts +81 -0
  271. package/types/contracts/utils/ReserveRestore.sol/ReserveRestore.ts +112 -0
  272. package/types/contracts/utils/ReserveRestore.sol/index.ts +5 -0
  273. package/types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts +146 -0
  274. package/types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts +1 -0
  275. package/types/factories/@uniswap/index.ts +1 -0
  276. package/types/factories/@uniswap/v2-periphery/contracts/index.ts +4 -0
  277. package/types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts +67 -0
  278. package/types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts +4 -0
  279. package/types/factories/@uniswap/v2-periphery/index.ts +4 -0
  280. package/types/factories/contracts/IQuoter.sol/IQuoterV2__factory.ts +226 -0
  281. package/types/factories/contracts/IQuoter.sol/index.ts +4 -0
  282. package/types/factories/contracts/IUniswapV3.sol/INonfungiblePositionManager__factory.ts +121 -0
  283. package/types/factories/contracts/IUniswapV3.sol/IUniswapV3Factory__factory.ts +84 -0
  284. package/types/factories/contracts/IUniswapV3.sol/IUniswapV3Pool__factory.ts +108 -0
  285. package/types/factories/contracts/IUniswapV3.sol/index.ts +5 -0
  286. package/types/factories/contracts/Interfaces.sol/AToken__factory.ts +36 -0
  287. package/types/factories/contracts/Interfaces.sol/IAaveIncentivesControllerV3__factory.ts +88 -0
  288. package/types/factories/contracts/Interfaces.sol/ILendingPoolV3__factory.ts +186 -0
  289. package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributorUpgradeable__factory.ts +572 -0
  290. package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributor__factory.ts +482 -0
  291. package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/index.ts +4 -0
  292. package/types/factories/contracts/index.ts +2 -0
  293. package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/DistributionHelperTestHelper__factory.ts +929 -0
  294. package/types/factories/contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper__factory.ts +935 -0
  295. package/types/factories/contracts/reserve/GenericDistributionHelper copy.sol/index.ts +4 -0
  296. package/types/factories/contracts/reserve/GenericDistributionHelper__factory.ts +987 -0
  297. package/types/factories/contracts/reserve/GoodReserveADai__factory.ts +1502 -0
  298. package/types/factories/contracts/reserve/index.ts +1 -0
  299. package/types/factories/contracts/staking/aave/GoodAave3StakingV2.sol/GoodAaveStakingV2__factory.ts +1240 -0
  300. package/types/factories/contracts/staking/aave/GoodAave3StakingV2.sol/index.ts +4 -0
  301. package/types/factories/contracts/token/GoodDollar18__factory.ts +1257 -0
  302. package/types/factories/contracts/ubi/UBISchemeV2__factory.ts +6 -1
  303. package/types/factories/contracts/utils/BuyGDClone.sol/IQuoterV2__factory.ts +126 -0
  304. package/types/factories/contracts/utils/BuyGDClone.sol/ISwapRouter__factory.ts +220 -0
  305. package/types/factories/contracts/utils/FuseOldBridgeKill.sol/BasicAMBErc677ToErc677__factory.ts +86 -0
  306. package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/MentoExchange__factory.ts +39 -0
  307. package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/ProtocolUpgradeV4Mento__factory.ts +152 -0
  308. package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/index.ts +5 -0
  309. package/types/factories/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy__factory.ts +1 -1
  310. package/types/factories/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967__factory.ts +1 -1
  311. package/types/factories/contracts/utils/ReserveRestore.sol/MentoExchange__factory.ts +39 -0
  312. package/types/factories/contracts/utils/ReserveRestore.sol/ReserveRestore__factory.ts +95 -0
  313. package/types/factories/contracts/utils/ReserveRestore.sol/index.ts +5 -0
  314. package/types/hardhat.d.ts +54 -0
  315. package/types/index.ts +10 -2
@@ -0,0 +1,319 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity >=0.8;
4
+
5
+ import "@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol";
6
+ import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
7
+ import "@mean-finance/uniswap-v3-oracle/solidity/interfaces/IStaticOracle.sol";
8
+ import "@gooddollar/bridge-contracts/contracts/messagePassingBridge/IMessagePassingBridge.sol";
9
+ import "@uniswap/v2-periphery/contracts/interfaces/IWETH.sol";
10
+
11
+ import "../utils/DAOUpgradeableContract.sol";
12
+
13
+ // import "hardhat/console.sol";
14
+
15
+ /***
16
+ * @dev DistributionHelper receives funds and distributes them to recipients
17
+ * recipients can be on other blockchains and get their funds via fuse/multichain bridge
18
+ * accounts with ADMIN_ROLE can update the recipients, defaults to Avatar
19
+ */
20
+ contract GenericDistributionHelper is
21
+ DAOUpgradeableContract,
22
+ AccessControlEnumerableUpgradeable
23
+ {
24
+ error FEE_LIMIT(uint256 fee);
25
+ error INVALID_CHAINID();
26
+
27
+ bytes32 public constant GUARDIAN_ROLE = keccak256("GUARDIAN_ROLE");
28
+
29
+ enum TransferType {
30
+ LayerZeroBridge,
31
+ Transfer,
32
+ TransferAndCall
33
+ }
34
+
35
+ struct DistributionRecipient {
36
+ uint32 bps; //share out of each distribution
37
+ uint32 chainId; //for multichain bridge
38
+ address addr; //recipient address
39
+ TransferType transferType;
40
+ }
41
+
42
+ struct FeeSettings {
43
+ uint128 maxFee;
44
+ uint128 minBalanceForFees;
45
+ uint8 percentageToSellForFee;
46
+ uint8 maxSlippage;
47
+ }
48
+
49
+ DistributionRecipient[] public distributionRecipients;
50
+
51
+ IMessagePassingBridge private _unused_mpbBridge;
52
+ FeeSettings public feeSettings;
53
+ IStaticOracle public STATIC_ORACLE;
54
+ ISwapRouter public ROUTER;
55
+
56
+ address public gasToken;
57
+
58
+ address public reserveToken;
59
+
60
+ event Distribution(
61
+ uint256 distributed,
62
+ uint256 startingBalance,
63
+ uint256 incomingAmount,
64
+ DistributionRecipient[] distributionRecipients,
65
+ uint256 gdSoldForGas,
66
+ uint256 nativeBoughtForGas
67
+ );
68
+ event RecipientUpdated(DistributionRecipient recipient, uint256 index);
69
+ event RecipientAdded(DistributionRecipient recipient, uint256 index);
70
+ event BuyNativeFailed(
71
+ string reason,
72
+ uint256 amountToSell,
73
+ uint256 amountOutMinimum
74
+ );
75
+
76
+ receive() external payable {}
77
+
78
+ function initialize(
79
+ INameService _ns,
80
+ IStaticOracle _oracle,
81
+ address _gasToken, //weth
82
+ address _reserveToken,
83
+ ISwapRouter _router,
84
+ FeeSettings memory _feeData
85
+ ) external initializer {
86
+ __AccessControlEnumerable_init();
87
+ setDAO(_ns);
88
+ _setupRole(DEFAULT_ADMIN_ROLE, avatar); //this needs to happen after setDAO for avatar to be non empty
89
+ _setupRole(GUARDIAN_ROLE, avatar);
90
+ STATIC_ORACLE = _oracle;
91
+ ROUTER = _router;
92
+ feeSettings = _feeData;
93
+ gasToken = _gasToken;
94
+ _setReserveToken(_reserveToken);
95
+ }
96
+
97
+ function getBridge() public view returns (IMessagePassingBridge) {
98
+ return IMessagePassingBridge(nameService.getAddress("MPBBRIDGE_CONTRACT"));
99
+ }
100
+
101
+ function setReserveToken(
102
+ address _reserveToken
103
+ ) public onlyRole(GUARDIAN_ROLE) {
104
+ _setReserveToken(_reserveToken);
105
+ }
106
+
107
+ function _setReserveToken(address _reserveToken) internal {
108
+ uint24[] memory fees = new uint24[](1);
109
+ fees[0] = 100;
110
+ reserveToken = _reserveToken;
111
+ STATIC_ORACLE.prepareSpecificFeeTiersWithTimePeriod(
112
+ reserveToken,
113
+ address(nativeToken()),
114
+ fees,
115
+ 60
116
+ );
117
+ STATIC_ORACLE.prepareSpecificFeeTiersWithTimePeriod(
118
+ reserveToken,
119
+ gasToken,
120
+ fees,
121
+ 60
122
+ );
123
+ }
124
+
125
+ function setFeeSettings(
126
+ FeeSettings memory _feeData
127
+ ) external onlyRole(GUARDIAN_ROLE) {
128
+ feeSettings = _feeData;
129
+ }
130
+
131
+ /**
132
+ * @notice this is usually called by reserve, but can be called by anyone anytime to trigger distribution
133
+ * @param _amount how much was sent, informational only
134
+ */
135
+ function onDistribution(uint256 _amount) external virtual {
136
+ //we consider the actual balance and not _amount
137
+ uint256 toDistribute = nativeToken().balanceOf(address(this));
138
+ if (toDistribute == 0) return;
139
+
140
+ uint256 boughtNative;
141
+ uint256 gdToSellForFee;
142
+ uint256 minReceived;
143
+ if (address(this).balance < feeSettings.minBalanceForFees) {
144
+ gdToSellForFee =
145
+ (toDistribute * feeSettings.percentageToSellForFee) /
146
+ 100;
147
+ (gdToSellForFee, minReceived) = calcGDToSell(gdToSellForFee);
148
+ toDistribute -= gdToSellForFee;
149
+ boughtNative = buyNativeWithGD(gdToSellForFee, minReceived);
150
+
151
+ //try to unwrap to native
152
+ try IWETH(gasToken).withdraw(boughtNative) {
153
+ // success
154
+ } catch Error(string memory reason) {
155
+ emit BuyNativeFailed(reason, boughtNative, 0);
156
+ } catch {
157
+ emit BuyNativeFailed("WETH withdraw failed", boughtNative, 0);
158
+ }
159
+ }
160
+
161
+ uint256 totalDistributed;
162
+ for (uint256 i = 0; i < distributionRecipients.length; i++) {
163
+ DistributionRecipient storage r = distributionRecipients[i];
164
+ if (r.bps > 0) {
165
+ uint256 toTransfer = (toDistribute * r.bps) / 10000;
166
+ totalDistributed += toTransfer;
167
+ if (toTransfer > 0) distribute(r, toTransfer);
168
+ }
169
+ }
170
+
171
+ emit Distribution(
172
+ totalDistributed,
173
+ toDistribute,
174
+ _amount,
175
+ distributionRecipients,
176
+ gdToSellForFee,
177
+ boughtNative
178
+ );
179
+ }
180
+
181
+ /**
182
+ * @notice add or update a recipient details, if address exists it will update, otherwise add
183
+ * to "remove" set recipient bps to 0. only ADMIN_ROLE can call this.
184
+ */
185
+ function addOrUpdateRecipient(
186
+ DistributionRecipient memory _recipient
187
+ ) external onlyRole(DEFAULT_ADMIN_ROLE) {
188
+ if (
189
+ _recipient.transferType != TransferType.LayerZeroBridge &&
190
+ _recipient.chainId != block.chainid
191
+ ) {
192
+ revert INVALID_CHAINID();
193
+ }
194
+
195
+ for (uint256 i = 0; i < distributionRecipients.length; i++) {
196
+ if (distributionRecipients[i].addr == _recipient.addr) {
197
+ distributionRecipients[i] = _recipient;
198
+ emit RecipientUpdated(_recipient, i);
199
+ return;
200
+ }
201
+ }
202
+ //if reached here then add new one
203
+ emit RecipientAdded(_recipient, distributionRecipients.length);
204
+ distributionRecipients.push(_recipient);
205
+ }
206
+
207
+ /**
208
+ * @notice internal function that takes care of sending the G$s according to the transfer type
209
+ * @param _recipient data about the recipient
210
+ * @param _amount how much to send
211
+ */
212
+ function distribute(
213
+ DistributionRecipient storage _recipient,
214
+ uint256 _amount
215
+ ) internal {
216
+ if (_recipient.transferType == TransferType.LayerZeroBridge) {
217
+ nativeToken().approve(address(getBridge()), _amount);
218
+ (uint256 lzFee, ) = ILayerZeroFeeEstimator(address(getBridge()))
219
+ .estimateSendFee(
220
+ getBridge().toLzChainId(_recipient.chainId),
221
+ address(this),
222
+ _recipient.addr,
223
+ _amount,
224
+ false,
225
+ abi.encodePacked(uint16(1), uint256(400000)) // 400k gas to execute bridge at target chain
226
+ );
227
+ if (lzFee > feeSettings.maxFee || lzFee > address(this).balance)
228
+ revert FEE_LIMIT(lzFee);
229
+
230
+ getBridge().bridgeToWithLz{ value: lzFee }(
231
+ _recipient.addr,
232
+ _recipient.chainId,
233
+ _amount,
234
+ ""
235
+ );
236
+ } else if (_recipient.transferType == TransferType.TransferAndCall) {
237
+ nativeToken().transferAndCall(_recipient.addr, _amount, "");
238
+ } else if (_recipient.transferType == TransferType.Transfer) {
239
+ nativeToken().transfer(_recipient.addr, _amount);
240
+ }
241
+ }
242
+
243
+ function calcGDToSell(
244
+ uint256 maxAmountToSell
245
+ ) public view returns (uint256 gdToSell, uint256 minReceived) {
246
+ uint24[] memory fees = new uint24[](1);
247
+ fees[0] = 100;
248
+ uint256 nativeToBuy = feeSettings.minBalanceForFees *
249
+ 3 -
250
+ address(this).balance;
251
+ (uint256 nativeValueInUSD, ) = STATIC_ORACLE
252
+ .quoteSpecificFeeTiersWithTimePeriod(
253
+ uint128(nativeToBuy),
254
+ gasToken,
255
+ reserveToken,
256
+ fees,
257
+ 60 //last 1 minute
258
+ );
259
+
260
+ (gdToSell, ) = STATIC_ORACLE.quoteSpecificFeeTiersWithTimePeriod(
261
+ uint128(nativeValueInUSD),
262
+ reserveToken,
263
+ address(nativeToken()),
264
+ fees,
265
+ 60 //last 1 minute
266
+ );
267
+
268
+ minReceived = nativeToBuy;
269
+ if (gdToSell > maxAmountToSell) {
270
+ gdToSell = maxAmountToSell;
271
+
272
+ fees[0] = 100;
273
+ // gdToSell = (nativeValueInUSD * 1e18) / gdPriceInUSD; // mul by 1e18 so result is in 18 decimals
274
+ (uint256 minReceivedCUSD, ) = STATIC_ORACLE
275
+ .quoteSpecificFeeTiersWithTimePeriod(
276
+ uint128(gdToSell),
277
+ address(nativeToken()),
278
+ reserveToken,
279
+ fees,
280
+ 60 //last 1 minute
281
+ );
282
+
283
+ (minReceived, ) = STATIC_ORACLE.quoteSpecificFeeTiersWithTimePeriod(
284
+ uint128(minReceivedCUSD),
285
+ reserveToken,
286
+ gasToken,
287
+ fees,
288
+ 60 //last 1 minute
289
+ );
290
+ }
291
+ }
292
+
293
+ function buyNativeWithGD(
294
+ uint256 amountToSell,
295
+ uint256 minReceived
296
+ ) internal returns (uint256 nativeBought) {
297
+ ERC20(nativeToken()).approve(address(ROUTER), amountToSell);
298
+ uint256 amountOutMinimum = (minReceived * (100 - feeSettings.maxSlippage)) /
299
+ 100; // 5% slippage
300
+ ISwapRouter.ExactInputParams memory params = ISwapRouter.ExactInputParams({
301
+ path: abi.encodePacked(
302
+ nativeToken(),
303
+ uint24(100),
304
+ reserveToken,
305
+ uint24(100),
306
+ gasToken
307
+ ),
308
+ recipient: address(this),
309
+ amountIn: amountToSell,
310
+ amountOutMinimum: amountOutMinimum
311
+ });
312
+ try ROUTER.exactInput(params) returns (uint256 amountOut) {
313
+ return amountOut;
314
+ } catch Error(string memory reason) {
315
+ emit BuyNativeFailed(reason, amountToSell, amountOutMinimum);
316
+ return 0;
317
+ }
318
+ }
319
+ }
@@ -130,13 +130,16 @@ contract UBISchemeV2 is DAOUpgradeableContract {
130
130
  * @dev Constructor
131
131
  * @param _ns the DAO
132
132
  */
133
- function initialize(INameService _ns) public initializer {
133
+ function initialize(
134
+ INameService _ns,
135
+ uint256 _minActiveUsers
136
+ ) public initializer {
134
137
  setDAO(_ns);
135
138
  shouldWithdrawFromDAO = false;
136
139
  cycleLength = 30; //30 days
137
140
  periodStart = (block.timestamp / (1 days)) * 1 days - 12 hours; //set start time to GMT noon
138
141
  startOfCycle = periodStart;
139
- minActiveUsers = 1000;
142
+ minActiveUsers = _minActiveUsers;
140
143
  reserveFactor = 10500;
141
144
  }
142
145
 
@@ -266,7 +269,7 @@ contract UBISchemeV2 is DAOUpgradeableContract {
266
269
  dailyCyclePool /
267
270
  max((prevDayClaimers * reserveFactor) / 10000, minActiveUsers);
268
271
  //update minActiveUsers as claimers grow
269
- minActiveUsers = max(prevDayClaimers / 2, minActiveUsers);
272
+ minActiveUsers = (prevDayClaimers + minActiveUsers * 29) / 30; //smooth it a bit
270
273
 
271
274
  emit UBICalculated(currentDay, dailyUbi, block.number);
272
275
  }
@@ -344,7 +347,8 @@ contract UBISchemeV2 is DAOUpgradeableContract {
344
347
  bool shouldStartEarlyCycle = currentDayInCycle() + 1 >=
345
348
  currentCycleLength ||
346
349
  nextDailyPool > (dailyCyclePool * 105) / 100 ||
347
- currentBalance < (dailyCyclePool * (cycleLength - currentDayInCycle()));
350
+ currentBalance <
351
+ (dailyCyclePool * (cycleLength - currentDayInCycle() - 1));
348
352
 
349
353
  uint256 _dailyCyclePool = dailyCyclePool;
350
354
  uint256 _dailyUbi;
@@ -46,10 +46,10 @@ contract ProxyFactory1967 {
46
46
  contractCodeHash = keccak256(type(ERC1967Proxy).creationCode);
47
47
  }
48
48
 
49
- function deployMinimal(address _logic, bytes memory _data)
50
- public
51
- returns (address proxy)
52
- {
49
+ function deployMinimal(
50
+ address _logic,
51
+ bytes memory _data
52
+ ) public returns (address proxy) {
53
53
  // Adapted from https://github.com/optionality/clone-factory/blob/32782f82dfc5a00d103a7e61a17a5dedbd1e8e9d/contracts/CloneFactory.sol
54
54
  bytes20 targetBytes = bytes20(_logic);
55
55
  assembly {
@@ -82,20 +82,19 @@ contract ProxyFactory1967 {
82
82
  return _deployProxy(_salt, _logic, _data, msg.sender);
83
83
  }
84
84
 
85
- function deployCode(uint256 _salt, bytes calldata _bytecode)
86
- external
87
- returns (address)
88
- {
85
+ function deployCode(
86
+ uint256 _salt,
87
+ bytes calldata _bytecode
88
+ ) external returns (address) {
89
89
  address addr = _deployCode(_salt, msg.sender, _bytecode);
90
90
  emit ContractCreated(addr);
91
91
  return addr;
92
92
  }
93
93
 
94
- function getDeploymentAddress(uint256 _salt, address _sender)
95
- public
96
- view
97
- returns (address)
98
- {
94
+ function getDeploymentAddress(
95
+ uint256 _salt,
96
+ address _sender
97
+ ) public view returns (address) {
99
98
  return getDeploymentAddress(_salt, _sender, contractCodeHash);
100
99
  }
101
100
 
@@ -146,11 +145,10 @@ contract ProxyFactory1967 {
146
145
  return addr;
147
146
  }
148
147
 
149
- function _getSalt(uint256 _salt, address _sender)
150
- internal
151
- pure
152
- returns (bytes32)
153
- {
148
+ function _getSalt(
149
+ uint256 _salt,
150
+ address _sender
151
+ ) internal pure returns (bytes32) {
154
152
  return keccak256(abi.encodePacked(_salt, _sender));
155
153
  }
156
154
  }