@gooddollar/goodprotocol 1.0.30-beta.2 → 1.0.30
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/DistributionHelper.min.json +1 -1
- package/artifacts/abis/DistributionHelperTest.min.json +1 -1
- package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -1
- package/artifacts/abis/GoodReserveCDai.min.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/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/ILendingPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
- package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.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/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
- package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +9 -2
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +9 -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/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
- package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
- 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/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
- 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/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
- package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +9 -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/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 +8 -2
- package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
- 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/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/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/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
- package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
- 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/DAOContract.sol/DAOContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
- package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
- 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/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
- package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
- 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/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
- package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
- package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
- package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
- package/contracts/reserve/DistributionHelper.sol +4 -0
- package/contracts/reserve/GoodReserveCDai.sol +14 -4
- package/hardhat.config.ts +27 -2
- package/package.json +10 -5
- package/releases/deployment.json +47 -5
- package/scripts/analytics/activeWalletsStats.ts +4 -0
- package/scripts/analytics/gdinflow.ts +3 -0
- package/scripts/analytics/p2pTxs.ts +582 -0
- package/scripts/analytics/tokenInOutStats.ts +3 -1
- package/scripts/deployGnosisSafe.ts +21 -21
- package/scripts/gdx/gdxAirdropCalculation.ts +1 -1
- package/scripts/multichain-deploy/helpers.ts +141 -5
- package/scripts/multichain-deploy/v3-upgrade.ts +219 -0
- package/scripts/staking/stakersGdRewardsCalculation.ts +57 -46
- package/types/DistributionHelper.ts +27 -0
- package/types/DistributionHelperTest.ts +27 -0
- package/types/DistributionHelperTestHelper.ts +27 -0
- package/types/GoodReserveCDai.ts +12 -6
- package/types/factories/AaveStakingFactory__factory.ts +1 -1
- package/types/factories/CompoundStakingFactory__factory.ts +1 -1
- package/types/factories/DistributionHelperTestHelper__factory.ts +8 -1
- package/types/factories/DistributionHelperTest__factory.ts +8 -1
- package/types/factories/DistributionHelper__factory.ts +8 -1
- package/types/factories/DonationsStaking__factory.ts +1 -1
- package/types/factories/ExchangeHelper__factory.ts +1 -1
- package/types/factories/GoodAaveStakingV2__factory.ts +1 -1
- package/types/factories/GoodAaveStaking__factory.ts +1 -1
- package/types/factories/GoodCompoundStakingTest__factory.ts +1 -1
- package/types/factories/GoodCompoundStakingV2__factory.ts +1 -1
- package/types/factories/GoodCompoundStaking__factory.ts +1 -1
- package/types/factories/GoodFundManagerTest__factory.ts +1 -1
- package/types/factories/GoodFundManager__factory.ts +1 -1
- package/types/factories/GoodReserveCDai__factory.ts +7 -1
- package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
- package/types/factories/StakersDistribution__factory.ts +1 -1
- package/yarn.lock +1114 -550
|
@@ -51,6 +51,10 @@ contract DistributionHelper is
|
|
|
51
51
|
__AccessControlEnumerable_init();
|
|
52
52
|
setDAO(_ns);
|
|
53
53
|
_setupRole(DEFAULT_ADMIN_ROLE, avatar); //this needs to happen after setDAO for avatar to be non empty
|
|
54
|
+
updateAddresses();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function updateAddresses() public {
|
|
54
58
|
fuseBridge = nameService.getAddress("BRIDGE_CONTRACT");
|
|
55
59
|
multiChainBridge = IMultichainRouter(
|
|
56
60
|
nameService.getAddress("MULTICHAIN_ROUTER")
|
|
@@ -115,7 +115,11 @@ contract GoodReserveCDai is
|
|
|
115
115
|
address indexed receiverAddress
|
|
116
116
|
);
|
|
117
117
|
|
|
118
|
-
event NonUBIMinted(
|
|
118
|
+
event NonUBIMinted(
|
|
119
|
+
address distributionHelper,
|
|
120
|
+
uint256 amountMinted,
|
|
121
|
+
bool distributionSucceeded
|
|
122
|
+
);
|
|
119
123
|
|
|
120
124
|
event DistributionHelperSet(address distributionHelper, uint32 bps);
|
|
121
125
|
|
|
@@ -288,7 +292,10 @@ contract GoodReserveCDai is
|
|
|
288
292
|
tokenReturn >= _minReturn,
|
|
289
293
|
"Token return must be above the minReturn"
|
|
290
294
|
);
|
|
291
|
-
|
|
295
|
+
require(
|
|
296
|
+
cERC20(cDaiAddress).transfer(_target, tokenReturn),
|
|
297
|
+
"cdai transfer failed"
|
|
298
|
+
);
|
|
292
299
|
|
|
293
300
|
emit TokenSold(
|
|
294
301
|
_seller,
|
|
@@ -386,8 +393,11 @@ contract GoodReserveCDai is
|
|
|
386
393
|
nonUBI = (gdExpansionToMint * nonUbiBps) / 10000;
|
|
387
394
|
gdUBI -= nonUBI;
|
|
388
395
|
_mintGoodDollars(address(distributionHelper), nonUBI, false);
|
|
389
|
-
|
|
390
|
-
|
|
396
|
+
bool success = true;
|
|
397
|
+
try distributionHelper.onDistribution(nonUBI) {} catch {
|
|
398
|
+
success = false;
|
|
399
|
+
} //should not prevent mintUBI from completing
|
|
400
|
+
emit NonUBIMinted(address(distributionHelper), nonUBI, success);
|
|
391
401
|
}
|
|
392
402
|
|
|
393
403
|
//this enforces who can call the public mintUBI method. only an address with permissions at reserve of RESERVE_MINTER_ROLE
|
package/hardhat.config.ts
CHANGED
|
@@ -24,7 +24,9 @@ import { ethers } from "ethers";
|
|
|
24
24
|
import { fstat, readFileSync, writeFileSync } from "fs";
|
|
25
25
|
config();
|
|
26
26
|
|
|
27
|
-
const mnemonic =
|
|
27
|
+
const mnemonic =
|
|
28
|
+
process.env.MNEMONIC ||
|
|
29
|
+
"test test test test test test test test test test test junk";
|
|
28
30
|
const deployerPrivateKey =
|
|
29
31
|
process.env.PRIVATE_KEY || ethers.utils.hexZeroPad("0x11", 32);
|
|
30
32
|
const infura_api = process.env.INFURA_API;
|
|
@@ -74,7 +76,9 @@ const hhconfig: HardhatUserConfig = {
|
|
|
74
76
|
|
|
75
77
|
networks: {
|
|
76
78
|
hardhat: {
|
|
77
|
-
chainId:
|
|
79
|
+
chainId: process.env.FORK_CHAIN_ID
|
|
80
|
+
? Number(process.env.FORK_CHAIN_ID)
|
|
81
|
+
: 4447,
|
|
78
82
|
allowUnlimitedContractSize: true,
|
|
79
83
|
accounts: {
|
|
80
84
|
accountsBalance: "10000000000000000000000000"
|
|
@@ -193,6 +197,27 @@ const hhconfig: HardhatUserConfig = {
|
|
|
193
197
|
gas: 3000000,
|
|
194
198
|
gasPrice: 500000000,
|
|
195
199
|
chainId: 42220
|
|
200
|
+
},
|
|
201
|
+
"staging-celo": {
|
|
202
|
+
accounts: { mnemonic },
|
|
203
|
+
url: "https://forno.celo.org",
|
|
204
|
+
gas: 3000000,
|
|
205
|
+
gasPrice: 150000000,
|
|
206
|
+
chainId: 42220
|
|
207
|
+
},
|
|
208
|
+
"development-celo": {
|
|
209
|
+
accounts: { mnemonic },
|
|
210
|
+
url: "https://forno.celo.org",
|
|
211
|
+
gas: 3000000,
|
|
212
|
+
gasPrice: 150000000,
|
|
213
|
+
chainId: 42220
|
|
214
|
+
},
|
|
215
|
+
gnosis: {
|
|
216
|
+
accounts: [deployerPrivateKey],
|
|
217
|
+
url: "https://rpc.gnosischain.com",
|
|
218
|
+
gas: 3000000,
|
|
219
|
+
gasPrice: 500000000,
|
|
220
|
+
chainId: 100
|
|
196
221
|
}
|
|
197
222
|
},
|
|
198
223
|
mocha: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddollar/goodprotocol",
|
|
3
|
-
"version": "1.0.30
|
|
3
|
+
"version": "1.0.30",
|
|
4
4
|
"description": "GoodDollar Protocol",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "scripts/build.sh deploy",
|
|
@@ -61,7 +61,6 @@
|
|
|
61
61
|
"@openzeppelin/contracts-upgradeable": "^4.3.2",
|
|
62
62
|
"@typechain/hardhat": "^6.1.2",
|
|
63
63
|
"async-promise-pool": "^1.0.4",
|
|
64
|
-
"ethers-multicall": "^0.2.1",
|
|
65
64
|
"openzeppelin-solidity": "^4.3.2",
|
|
66
65
|
"patch-package": "latest",
|
|
67
66
|
"press-any-key": "^0.1.1",
|
|
@@ -73,7 +72,12 @@
|
|
|
73
72
|
"@babel/polyfill": "*",
|
|
74
73
|
"@babel/preset-env": "*",
|
|
75
74
|
"@babel/register": "*",
|
|
76
|
-
"@
|
|
75
|
+
"@gnosis.pm/safe-core-sdk": "^3.2.0",
|
|
76
|
+
"@gnosis.pm/safe-core-sdk-types": "^1.7.0",
|
|
77
|
+
"@gnosis.pm/safe-ethers-lib": "^1.7.0",
|
|
78
|
+
"@gnosis.pm/safe-service-client": "^1.4.0",
|
|
79
|
+
"@nomicfoundation/hardhat-network-helpers": "^1.0.6",
|
|
80
|
+
"@nomiclabs/hardhat-ethers": "^2.2.1",
|
|
77
81
|
"@nomiclabs/hardhat-etherscan": "^3.1.0",
|
|
78
82
|
"@nomiclabs/hardhat-waffle": "^2.0.3",
|
|
79
83
|
"@openzeppelin/hardhat-upgrades": "^1.20.0",
|
|
@@ -89,8 +93,9 @@
|
|
|
89
93
|
"chai": "*",
|
|
90
94
|
"coveralls": "*",
|
|
91
95
|
"dotenv": "*",
|
|
92
|
-
"ethereum-waffle": "
|
|
93
|
-
"ethers": "^5.
|
|
96
|
+
"ethereum-waffle": "^3.4.4",
|
|
97
|
+
"ethers": "^5.7.2",
|
|
98
|
+
"ethers-multicall": "^0.2.3",
|
|
94
99
|
"ethers-eip712": "*",
|
|
95
100
|
"fs-extra": "9.0.0",
|
|
96
101
|
"graphql": "^15.5.0",
|
package/releases/deployment.json
CHANGED
|
@@ -521,8 +521,9 @@
|
|
|
521
521
|
]
|
|
522
522
|
],
|
|
523
523
|
"MultichainRouter": "0x765277eebeca2e31912c9946eae1021199b39c61",
|
|
524
|
-
"
|
|
525
|
-
"GuardiansSafe": "
|
|
524
|
+
"AnyGoodDollar": "0xd17652350cfd2a37ba2f947c910987a3b1a1c60d",
|
|
525
|
+
"GuardiansSafe": "0xE0c5daa7CC6F88d29505f702a53bb5E67600e7Ec",
|
|
526
|
+
"DistributionHelper": "0xAcadA0C9795fdBb6921AE96c4D7Db2F8B8c52Fd0"
|
|
526
527
|
},
|
|
527
528
|
"production": {
|
|
528
529
|
"NameService": "0xec6dcE387B1616a0c44fF2E4fA9E90E53Cf14eb0",
|
|
@@ -549,7 +550,7 @@
|
|
|
549
550
|
"ProxyAdmin": "0x57179b2A8eB019157b0C3E761cdB26c82C982a3B",
|
|
550
551
|
"FuseFaucet": "0x01ab5966C1d742Ae0CFF7f14cC0F4D85156e83d9",
|
|
551
552
|
"FuseStaking": "0xA199F0C353E25AdF022378B0c208D600f39a6505",
|
|
552
|
-
"GuardiansSafe": "
|
|
553
|
+
"GuardiansSafe": "0x5878123fe880881f1Ecc92D5fd31e5D3F5Fba2e9"
|
|
553
554
|
},
|
|
554
555
|
"production-celo": {
|
|
555
556
|
"ProxyFactory": "0x99C22e78A579e2176311c736C4c9F0b0D5A47806",
|
|
@@ -560,13 +561,54 @@
|
|
|
560
561
|
"NameService": "0x563a80a452264a9e1aa37c6FA0B46D04C3c71b24",
|
|
561
562
|
"GReputation": "0xAC132ECe25217867E318eA8ff63420C90d5a74A6",
|
|
562
563
|
"GuardiansSafeOld": "0xC9D09BA972B4EB6Bb7347F2229FB6d50434fFCa6",
|
|
563
|
-
"GuardiansSafe": "
|
|
564
|
+
"GuardiansSafe": "0xa2521e8F5A990903fdD8Afa6570C52526e7E0D5E",
|
|
564
565
|
"network": "production-celo",
|
|
565
566
|
"networkId": 42220,
|
|
566
567
|
"GoodDollarMintBurnWrapper": "0x5566b6E4962BA83e05a426Ad89031ec18e9CadD3",
|
|
567
568
|
"MultichainRouter": "0xf27Ee99622C3C9b264583dACB2cCE056e194494f"
|
|
568
569
|
},
|
|
569
|
-
"
|
|
570
|
+
"development-celo": {
|
|
571
|
+
"ProxyFactory": "0xA441cd89b0964B51d23201d65E037DA7aF8F74E9",
|
|
572
|
+
"GoodDollar": "0xAB89A70d1Af04ED8badf915Ba1f5b28E9F322624",
|
|
573
|
+
"Avatar": "0xE0e3BFb1A1850bdFe36ED1563CC2abB6A8B6De78",
|
|
574
|
+
"Controller": "0x6717A1948328C8eCCb5C933Fae90e0631C2486fE",
|
|
575
|
+
"Identity": "0xec97ee6d70C626044224998192B96fEF05949De1",
|
|
576
|
+
"NameService": "0x266E5a0931E52229CC241376bC701Ab6199Aec4D",
|
|
577
|
+
"GReputation": "0x6614823763EAd52aCc4952b9634624439B738683",
|
|
578
|
+
"AdminWallet": "0xb7b543bfd9e2E0AD1d0aA68f56c883Dd377E3D24",
|
|
579
|
+
"Faucet": "0x256AFcfEcB5C7f62CE46b54492Bb8ac38163672f",
|
|
580
|
+
"Invites": "0xdC8F0da3f29A3C419a8EEf36665ba2a3EF737B8f",
|
|
581
|
+
"GoodDollarMintBurnWrapper": "0x3fa553a5a044D5c4f5C70878148568410305f953",
|
|
582
|
+
"UBIScheme": "0x2d42e6220af2485d1e6E5B4d3661A74671AA9a79",
|
|
583
|
+
"ClaimersDistribution": "0x80018e6Dd79f6B892Fca6b592746136a3aa5ef6d",
|
|
584
|
+
"CompoundVotingMachine": "0x00e44d746F3931cAB775099F4C6451f893BB9378",
|
|
585
|
+
"network": "development-celo",
|
|
586
|
+
"networkId": 42220,
|
|
587
|
+
"GoodDollarStaking": "0x0b13807334C1618D71E5FCe792f40A22007c433A"
|
|
588
|
+
},
|
|
589
|
+
"staging-celo": {
|
|
590
|
+
"ProxyFactory": "0x7e8292481EA8EbEb49e486B7e99c00C50fBa2689",
|
|
591
|
+
"GoodDollar": "0x33265D74abd5ae87cA02A4Fb0C30B7405C8b0682",
|
|
592
|
+
"Avatar": "0x2FD18f9de3F581Ca492A485D2b32E361EeAE2e63",
|
|
593
|
+
"Controller": "0xa229BdD05436362484b10586dAa79a316e3080C5",
|
|
594
|
+
"Identity": "0xc82d50c667F389906aCA4B72D577fA56Bf7F8910",
|
|
595
|
+
"NameService": "0x8d0b621796445454180e7DD25f96B1782848338B",
|
|
596
|
+
"GReputation": "0x759a03326df90b740f6b8b6D31e12a3F95D64C28",
|
|
597
|
+
"FeeFormula": "0xcf08461E5bAd9C508D482329Eae0f1b4c4D4c489",
|
|
598
|
+
"DAOCreator": "0xA614d2641c21FEa4c73A2D6e71C6ad341349808B",
|
|
599
|
+
"AddFounders": "0x558fA360988601601ac410678963Bf785156076D",
|
|
600
|
+
"AdminWallet": "0x822590F8baf606b1e18dC1FA8Ca39D5C66C20981",
|
|
601
|
+
"Faucet": "0x9803B5811260Bfd1F5b0b0c9eC9aD4bF96D7ea94",
|
|
602
|
+
"Invites": "0x4E094c2e35e57c90667AbD6D8FE25CE63F4ae00B",
|
|
603
|
+
"GoodDollarMintBurnWrapper": "0x156Fd9563973EFB94a297B76CFac32CdC92a8d1A",
|
|
604
|
+
"UBIScheme": "0x04f2Cf8865e2ddfEf0047FdfA7A1b05ade614288",
|
|
605
|
+
"ClaimersDistribution": "0x83186CE77ef296BA6561096447938AE05D1F026e",
|
|
606
|
+
"CompoundVotingMachine": "0xEdde78b850a08B6b8AB3E84f61cD6dC70Cc7f156",
|
|
607
|
+
"network": "staging-celo",
|
|
608
|
+
"networkId": 42220,
|
|
609
|
+
"GoodDollarStaking": "0x1eF9D3Ed46D4B82E7e8089BDdd00a493e9930f46"
|
|
610
|
+
},
|
|
611
|
+
"gnosis": {
|
|
570
612
|
"GuardiansSafe": "0x84c10b45fe51bfb4f86c19a47fdbc187d4572fb8"
|
|
571
613
|
}
|
|
572
614
|
}
|
|
@@ -4,6 +4,10 @@ import PromisePool from "async-promise-pool";
|
|
|
4
4
|
import fs from "fs";
|
|
5
5
|
import { ethers } from "hardhat";
|
|
6
6
|
|
|
7
|
+
/****
|
|
8
|
+
* Fetch token holders and their last activity date
|
|
9
|
+
* can be used to create stats about active users and how much G$ isnt active
|
|
10
|
+
*/
|
|
7
11
|
const main = async () => {
|
|
8
12
|
let result = [];
|
|
9
13
|
let balances = {};
|