@gooddollar/goodprotocol 1.0.18 → 1.0.19-beta.2
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/GReputation.min.json +1 -1
- package/artifacts/abis/GoodAaveStaking.min.json +1 -1
- package/artifacts/abis/GoodAaveStakingV2.min.json +1 -1
- package/artifacts/abis/GoodCompoundStaking.min.json +1 -1
- package/artifacts/abis/GoodCompoundStakingTest.min.json +1 -1
- package/artifacts/abis/GoodCompoundStakingV2.min.json +1 -1
- package/artifacts/abis/UpgradableMock3.min.json +1 -0
- package/artifacts/abis/UpgradableMock4.min.json +1 -0
- 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/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/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/GReputation.sol/GReputation.dbg.json +1 -1
- package/artifacts/contracts/governance/GReputation.sol/GReputation.json +15 -2
- 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/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/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +6 -6
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
- 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/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/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/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 +4 -0
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +172 -0
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +4 -0
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +172 -0
- 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/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
- 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/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/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
- 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 +3 -3
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +3 -3
- 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 +4 -4
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +4 -4
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
- 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/MultiCall.sol/Multicall.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/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
- package/contracts/governance/GReputation.sol +8 -0
- package/contracts/governance/Reputation.sol +5 -3
- package/contracts/mocks/UpgradableMocks.sol +18 -0
- package/contracts/staking/SimpleStaking.sol +2 -1
- package/contracts/staking/SimpleStakingV2.sol +2 -1
- package/hardhat.config.ts +63 -8
- package/package.json +7 -5
- package/releases/deployment.json +11 -0
- package/scripts/multichain-deploy/basicdao-deploy.ts +256 -0
- package/scripts/multichain-deploy/helpers.ts +96 -0
- package/test/governance/ClaimersDistribution.test.ts +6 -6
- package/test/governance/CompoundVotingMachine.daoscheme.ts +14 -1
- package/test/governance/CompoundVotingMachine.guardian.test.ts +11 -1
- package/test/governance/GReputation.test.ts +32 -1
- package/test/governance/StakersDistribution.test.ts +62 -1
- package/test/helpers.ts +15 -0
- package/test/reserve/GoodMarketMaker.test.ts +11 -0
- package/test/reserve/GoodReserveCDai.gdx.test.ts +23 -8
- package/test/reserve/GoodReserveCDai.test.ts +37 -2
- package/test/staking/CompoundStakingFactory.test.ts +31 -0
- package/test/staking/DonationsStaking.test.ts +99 -2
- package/test/staking/GoodAaveStakingFactory.test.ts +36 -1
- package/test/staking/SimpleDAIStaking.test.ts +52 -2
- package/test/staking/StakingRewards.test.ts +38 -0
- package/test/staking/UsdcAaveStaking.test.ts +45 -19
- package/test/ubi/UBIScheme.test.ts +68 -0
- package/test/utils/DAOUpgradeableContract.test.ts +47 -0
- package/test/utils/NameService.test.ts +50 -55
- package/test/utils/ProxyFactory.test.ts +17 -0
- package/yarn.lock +607 -119
- package/artifacts/abis/FuseFaucet.min.json +0 -1
- package/artifacts/abis/InvitesV1.min.json +0 -1
- package/artifacts/contracts/unaudited-foundation/FuseFaucet.sol/FuseFaucet.dbg.json +0 -4
- package/artifacts/contracts/unaudited-foundation/FuseFaucet.sol/FuseFaucet.json +0 -200
- package/artifacts/contracts/unaudited-foundation/InvitesV1.sol/InvitesV1.dbg.json +0 -4
- package/artifacts/contracts/unaudited-foundation/InvitesV1.sol/InvitesV1.json +0 -486
- package/contracts/unaudited-foundation/FuseFaucet.sol +0 -120
- package/contracts/unaudited-foundation/InvitesV1.sol +0 -304
|
@@ -1,486 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"_format": "hh-sol-artifact-1",
|
|
3
|
-
"contractName": "InvitesV1",
|
|
4
|
-
"sourceName": "contracts/unaudited-foundation/InvitesV1.sol",
|
|
5
|
-
"abi": [
|
|
6
|
-
{
|
|
7
|
-
"anonymous": false,
|
|
8
|
-
"inputs": [
|
|
9
|
-
{
|
|
10
|
-
"indexed": true,
|
|
11
|
-
"internalType": "address",
|
|
12
|
-
"name": "inviter",
|
|
13
|
-
"type": "address"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"indexed": true,
|
|
17
|
-
"internalType": "address",
|
|
18
|
-
"name": "invitee",
|
|
19
|
-
"type": "address"
|
|
20
|
-
}
|
|
21
|
-
],
|
|
22
|
-
"name": "InviteeJoined",
|
|
23
|
-
"type": "event"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"anonymous": false,
|
|
27
|
-
"inputs": [
|
|
28
|
-
{
|
|
29
|
-
"indexed": true,
|
|
30
|
-
"internalType": "address",
|
|
31
|
-
"name": "inviter",
|
|
32
|
-
"type": "address"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"indexed": true,
|
|
36
|
-
"internalType": "address",
|
|
37
|
-
"name": "invitee",
|
|
38
|
-
"type": "address"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"indexed": false,
|
|
42
|
-
"internalType": "uint256",
|
|
43
|
-
"name": "bountyPaid",
|
|
44
|
-
"type": "uint256"
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
"indexed": false,
|
|
48
|
-
"internalType": "uint256",
|
|
49
|
-
"name": "inviterLevel",
|
|
50
|
-
"type": "uint256"
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
"indexed": false,
|
|
54
|
-
"internalType": "bool",
|
|
55
|
-
"name": "earnedLevel",
|
|
56
|
-
"type": "bool"
|
|
57
|
-
}
|
|
58
|
-
],
|
|
59
|
-
"name": "InviterBounty",
|
|
60
|
-
"type": "event"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"inputs": [],
|
|
64
|
-
"name": "active",
|
|
65
|
-
"outputs": [
|
|
66
|
-
{
|
|
67
|
-
"internalType": "bool",
|
|
68
|
-
"name": "",
|
|
69
|
-
"type": "bool"
|
|
70
|
-
}
|
|
71
|
-
],
|
|
72
|
-
"stateMutability": "view",
|
|
73
|
-
"type": "function"
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"inputs": [],
|
|
77
|
-
"name": "avatar",
|
|
78
|
-
"outputs": [
|
|
79
|
-
{
|
|
80
|
-
"internalType": "address payable",
|
|
81
|
-
"name": "",
|
|
82
|
-
"type": "address"
|
|
83
|
-
}
|
|
84
|
-
],
|
|
85
|
-
"stateMutability": "view",
|
|
86
|
-
"type": "function"
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
"inputs": [
|
|
90
|
-
{
|
|
91
|
-
"internalType": "address",
|
|
92
|
-
"name": "_invitee",
|
|
93
|
-
"type": "address"
|
|
94
|
-
}
|
|
95
|
-
],
|
|
96
|
-
"name": "bountyFor",
|
|
97
|
-
"outputs": [],
|
|
98
|
-
"stateMutability": "nonpayable",
|
|
99
|
-
"type": "function"
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
"inputs": [
|
|
103
|
-
{
|
|
104
|
-
"internalType": "address",
|
|
105
|
-
"name": "_invitee",
|
|
106
|
-
"type": "address"
|
|
107
|
-
}
|
|
108
|
-
],
|
|
109
|
-
"name": "canCollectBountyFor",
|
|
110
|
-
"outputs": [
|
|
111
|
-
{
|
|
112
|
-
"internalType": "bool",
|
|
113
|
-
"name": "",
|
|
114
|
-
"type": "bool"
|
|
115
|
-
}
|
|
116
|
-
],
|
|
117
|
-
"stateMutability": "view",
|
|
118
|
-
"type": "function"
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
"inputs": [
|
|
122
|
-
{
|
|
123
|
-
"internalType": "bytes32",
|
|
124
|
-
"name": "",
|
|
125
|
-
"type": "bytes32"
|
|
126
|
-
}
|
|
127
|
-
],
|
|
128
|
-
"name": "codeToUser",
|
|
129
|
-
"outputs": [
|
|
130
|
-
{
|
|
131
|
-
"internalType": "address",
|
|
132
|
-
"name": "",
|
|
133
|
-
"type": "address"
|
|
134
|
-
}
|
|
135
|
-
],
|
|
136
|
-
"stateMutability": "view",
|
|
137
|
-
"type": "function"
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"inputs": [],
|
|
141
|
-
"name": "collectBounties",
|
|
142
|
-
"outputs": [],
|
|
143
|
-
"stateMutability": "nonpayable",
|
|
144
|
-
"type": "function"
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
"inputs": [],
|
|
148
|
-
"name": "end",
|
|
149
|
-
"outputs": [],
|
|
150
|
-
"stateMutability": "nonpayable",
|
|
151
|
-
"type": "function"
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
"inputs": [
|
|
155
|
-
{
|
|
156
|
-
"internalType": "address",
|
|
157
|
-
"name": "_inviter",
|
|
158
|
-
"type": "address"
|
|
159
|
-
}
|
|
160
|
-
],
|
|
161
|
-
"name": "getInvitees",
|
|
162
|
-
"outputs": [
|
|
163
|
-
{
|
|
164
|
-
"internalType": "address[]",
|
|
165
|
-
"name": "",
|
|
166
|
-
"type": "address[]"
|
|
167
|
-
}
|
|
168
|
-
],
|
|
169
|
-
"stateMutability": "view",
|
|
170
|
-
"type": "function"
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
"inputs": [
|
|
174
|
-
{
|
|
175
|
-
"internalType": "address",
|
|
176
|
-
"name": "_inviter",
|
|
177
|
-
"type": "address"
|
|
178
|
-
}
|
|
179
|
-
],
|
|
180
|
-
"name": "getPendingBounties",
|
|
181
|
-
"outputs": [
|
|
182
|
-
{
|
|
183
|
-
"internalType": "uint256",
|
|
184
|
-
"name": "",
|
|
185
|
-
"type": "uint256"
|
|
186
|
-
}
|
|
187
|
-
],
|
|
188
|
-
"stateMutability": "view",
|
|
189
|
-
"type": "function"
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
"inputs": [
|
|
193
|
-
{
|
|
194
|
-
"internalType": "address",
|
|
195
|
-
"name": "_inviter",
|
|
196
|
-
"type": "address"
|
|
197
|
-
}
|
|
198
|
-
],
|
|
199
|
-
"name": "getPendingInvitees",
|
|
200
|
-
"outputs": [
|
|
201
|
-
{
|
|
202
|
-
"internalType": "address[]",
|
|
203
|
-
"name": "",
|
|
204
|
-
"type": "address[]"
|
|
205
|
-
}
|
|
206
|
-
],
|
|
207
|
-
"stateMutability": "view",
|
|
208
|
-
"type": "function"
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
"inputs": [],
|
|
212
|
-
"name": "goodDollar",
|
|
213
|
-
"outputs": [
|
|
214
|
-
{
|
|
215
|
-
"internalType": "contract cERC20",
|
|
216
|
-
"name": "",
|
|
217
|
-
"type": "address"
|
|
218
|
-
}
|
|
219
|
-
],
|
|
220
|
-
"stateMutability": "view",
|
|
221
|
-
"type": "function"
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
"inputs": [],
|
|
225
|
-
"name": "identity",
|
|
226
|
-
"outputs": [
|
|
227
|
-
{
|
|
228
|
-
"internalType": "contract IIdentity",
|
|
229
|
-
"name": "",
|
|
230
|
-
"type": "address"
|
|
231
|
-
}
|
|
232
|
-
],
|
|
233
|
-
"stateMutability": "view",
|
|
234
|
-
"type": "function"
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
"inputs": [
|
|
238
|
-
{
|
|
239
|
-
"internalType": "address payable",
|
|
240
|
-
"name": "_avatar",
|
|
241
|
-
"type": "address"
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
"internalType": "address",
|
|
245
|
-
"name": "_identity",
|
|
246
|
-
"type": "address"
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
"internalType": "address",
|
|
250
|
-
"name": "_gd",
|
|
251
|
-
"type": "address"
|
|
252
|
-
},
|
|
253
|
-
{
|
|
254
|
-
"internalType": "uint256",
|
|
255
|
-
"name": "level0Bounty",
|
|
256
|
-
"type": "uint256"
|
|
257
|
-
}
|
|
258
|
-
],
|
|
259
|
-
"name": "initialize",
|
|
260
|
-
"outputs": [],
|
|
261
|
-
"stateMutability": "nonpayable",
|
|
262
|
-
"type": "function"
|
|
263
|
-
},
|
|
264
|
-
{
|
|
265
|
-
"inputs": [
|
|
266
|
-
{
|
|
267
|
-
"internalType": "bytes32",
|
|
268
|
-
"name": "_myCode",
|
|
269
|
-
"type": "bytes32"
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
"internalType": "bytes32",
|
|
273
|
-
"name": "_inviterCode",
|
|
274
|
-
"type": "bytes32"
|
|
275
|
-
}
|
|
276
|
-
],
|
|
277
|
-
"name": "join",
|
|
278
|
-
"outputs": [],
|
|
279
|
-
"stateMutability": "nonpayable",
|
|
280
|
-
"type": "function"
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
"inputs": [],
|
|
284
|
-
"name": "levelExpirationEnabled",
|
|
285
|
-
"outputs": [
|
|
286
|
-
{
|
|
287
|
-
"internalType": "bool",
|
|
288
|
-
"name": "",
|
|
289
|
-
"type": "bool"
|
|
290
|
-
}
|
|
291
|
-
],
|
|
292
|
-
"stateMutability": "view",
|
|
293
|
-
"type": "function"
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
"inputs": [
|
|
297
|
-
{
|
|
298
|
-
"internalType": "uint256",
|
|
299
|
-
"name": "",
|
|
300
|
-
"type": "uint256"
|
|
301
|
-
}
|
|
302
|
-
],
|
|
303
|
-
"name": "levels",
|
|
304
|
-
"outputs": [
|
|
305
|
-
{
|
|
306
|
-
"internalType": "uint256",
|
|
307
|
-
"name": "toNext",
|
|
308
|
-
"type": "uint256"
|
|
309
|
-
},
|
|
310
|
-
{
|
|
311
|
-
"internalType": "uint256",
|
|
312
|
-
"name": "bounty",
|
|
313
|
-
"type": "uint256"
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
"internalType": "uint256",
|
|
317
|
-
"name": "daysToComplete",
|
|
318
|
-
"type": "uint256"
|
|
319
|
-
}
|
|
320
|
-
],
|
|
321
|
-
"stateMutability": "view",
|
|
322
|
-
"type": "function"
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
"inputs": [],
|
|
326
|
-
"name": "owner",
|
|
327
|
-
"outputs": [
|
|
328
|
-
{
|
|
329
|
-
"internalType": "address",
|
|
330
|
-
"name": "",
|
|
331
|
-
"type": "address"
|
|
332
|
-
}
|
|
333
|
-
],
|
|
334
|
-
"stateMutability": "view",
|
|
335
|
-
"type": "function"
|
|
336
|
-
},
|
|
337
|
-
{
|
|
338
|
-
"inputs": [
|
|
339
|
-
{
|
|
340
|
-
"internalType": "bool",
|
|
341
|
-
"name": "_active",
|
|
342
|
-
"type": "bool"
|
|
343
|
-
}
|
|
344
|
-
],
|
|
345
|
-
"name": "setActive",
|
|
346
|
-
"outputs": [],
|
|
347
|
-
"stateMutability": "nonpayable",
|
|
348
|
-
"type": "function"
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
"inputs": [
|
|
352
|
-
{
|
|
353
|
-
"internalType": "uint256",
|
|
354
|
-
"name": "_lvl",
|
|
355
|
-
"type": "uint256"
|
|
356
|
-
},
|
|
357
|
-
{
|
|
358
|
-
"internalType": "uint256",
|
|
359
|
-
"name": "_toNext",
|
|
360
|
-
"type": "uint256"
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
"internalType": "uint256",
|
|
364
|
-
"name": "_bounty",
|
|
365
|
-
"type": "uint256"
|
|
366
|
-
},
|
|
367
|
-
{
|
|
368
|
-
"internalType": "uint256",
|
|
369
|
-
"name": "_daysToComplete",
|
|
370
|
-
"type": "uint256"
|
|
371
|
-
}
|
|
372
|
-
],
|
|
373
|
-
"name": "setLevel",
|
|
374
|
-
"outputs": [],
|
|
375
|
-
"stateMutability": "nonpayable",
|
|
376
|
-
"type": "function"
|
|
377
|
-
},
|
|
378
|
-
{
|
|
379
|
-
"inputs": [
|
|
380
|
-
{
|
|
381
|
-
"internalType": "bool",
|
|
382
|
-
"name": "_isEnabled",
|
|
383
|
-
"type": "bool"
|
|
384
|
-
}
|
|
385
|
-
],
|
|
386
|
-
"name": "setLevelExpirationEnabled",
|
|
387
|
-
"outputs": [],
|
|
388
|
-
"stateMutability": "nonpayable",
|
|
389
|
-
"type": "function"
|
|
390
|
-
},
|
|
391
|
-
{
|
|
392
|
-
"inputs": [],
|
|
393
|
-
"name": "stats",
|
|
394
|
-
"outputs": [
|
|
395
|
-
{
|
|
396
|
-
"internalType": "uint256",
|
|
397
|
-
"name": "totalApprovedInvites",
|
|
398
|
-
"type": "uint256"
|
|
399
|
-
},
|
|
400
|
-
{
|
|
401
|
-
"internalType": "uint256",
|
|
402
|
-
"name": "totalBountiesPaid",
|
|
403
|
-
"type": "uint256"
|
|
404
|
-
},
|
|
405
|
-
{
|
|
406
|
-
"internalType": "uint256",
|
|
407
|
-
"name": "totalInvited",
|
|
408
|
-
"type": "uint256"
|
|
409
|
-
}
|
|
410
|
-
],
|
|
411
|
-
"stateMutability": "view",
|
|
412
|
-
"type": "function"
|
|
413
|
-
},
|
|
414
|
-
{
|
|
415
|
-
"inputs": [
|
|
416
|
-
{
|
|
417
|
-
"internalType": "address",
|
|
418
|
-
"name": "",
|
|
419
|
-
"type": "address"
|
|
420
|
-
}
|
|
421
|
-
],
|
|
422
|
-
"name": "users",
|
|
423
|
-
"outputs": [
|
|
424
|
-
{
|
|
425
|
-
"internalType": "address",
|
|
426
|
-
"name": "invitedBy",
|
|
427
|
-
"type": "address"
|
|
428
|
-
},
|
|
429
|
-
{
|
|
430
|
-
"internalType": "bytes32",
|
|
431
|
-
"name": "inviteCode",
|
|
432
|
-
"type": "bytes32"
|
|
433
|
-
},
|
|
434
|
-
{
|
|
435
|
-
"internalType": "bool",
|
|
436
|
-
"name": "bountyPaid",
|
|
437
|
-
"type": "bool"
|
|
438
|
-
},
|
|
439
|
-
{
|
|
440
|
-
"internalType": "uint256",
|
|
441
|
-
"name": "level",
|
|
442
|
-
"type": "uint256"
|
|
443
|
-
},
|
|
444
|
-
{
|
|
445
|
-
"internalType": "uint256",
|
|
446
|
-
"name": "levelStarted",
|
|
447
|
-
"type": "uint256"
|
|
448
|
-
},
|
|
449
|
-
{
|
|
450
|
-
"internalType": "uint256",
|
|
451
|
-
"name": "totalApprovedInvites",
|
|
452
|
-
"type": "uint256"
|
|
453
|
-
},
|
|
454
|
-
{
|
|
455
|
-
"internalType": "uint256",
|
|
456
|
-
"name": "totalEarned",
|
|
457
|
-
"type": "uint256"
|
|
458
|
-
},
|
|
459
|
-
{
|
|
460
|
-
"internalType": "uint256",
|
|
461
|
-
"name": "joinedAt",
|
|
462
|
-
"type": "uint256"
|
|
463
|
-
}
|
|
464
|
-
],
|
|
465
|
-
"stateMutability": "view",
|
|
466
|
-
"type": "function"
|
|
467
|
-
},
|
|
468
|
-
{
|
|
469
|
-
"inputs": [],
|
|
470
|
-
"name": "version",
|
|
471
|
-
"outputs": [
|
|
472
|
-
{
|
|
473
|
-
"internalType": "string",
|
|
474
|
-
"name": "",
|
|
475
|
-
"type": "string"
|
|
476
|
-
}
|
|
477
|
-
],
|
|
478
|
-
"stateMutability": "pure",
|
|
479
|
-
"type": "function"
|
|
480
|
-
}
|
|
481
|
-
],
|
|
482
|
-
"bytecode": "0x608060405234801561001057600080fd5b506118c5806100206000396000f3fe608060405234801561001057600080fd5b506004361061011d5760003560e01c806302fb0c5e14610122578063119e5bf31461014b57806321132aad1461016b5780632c159a1a1461018057806341155d5e1461019357806354fd4d50146101b45780635aef7de6146101db5780635b419a65146101ee5780636d619ef8146102015780638da5cb5b14610214578063a1df6fd314610227578063a87430ba14610234578063acec338a146102e0578063af6346b0146102f3578063b2596a67146102fb578063b6567cd514610345578063b9fb2d1814610358578063ba6f56801461036b578063cf756fdf14610394578063d80528ae146103a7578063e951a3aa146103b9578063e9881a5e146103d9578063efbe1c1c146103ec575b600080fd5b60075461013690600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b60075461015e906001600160a01b031681565b6040516101429190611548565b61017e61017936600461156a565b6103f4565b005b60065461015e906001600160a01b031681565b6101a66101a136600461159c565b61044f565b604051908152602001610142565b60408051808201825260058152640312e342e360dc1b6020820152905161014291906115b9565b60035461015e906001600160a01b031681565b61017e6101fc36600461160e565b61051c565b61013661020f36600461159c565b61075c565b60055461015e906001600160a01b031681565b6010546101369060ff1681565b61029561024236600461159c565b6002602081905260009182526040909120805460018201549282015460058301546006840154600785015460088601546009909601546001600160a01b03909516969560ff909416949293919290919088565b604080516001600160a01b0390991689526020890197909752941515958701959095526060860192909252608085015260a084015260c083019190915260e082015261010001610142565b61017e6102ee36600461156a565b610928565b61017e610985565b61032a610309366004611630565b60046020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610142565b61017e61035336600461159c565b610b1e565b61017e610366366004611649565b610b95565b61015e610379366004611630565b6001602052600090815260409020546001600160a01b031681565b61017e6103a236600461167b565b610bf4565b600854600954600a5461032a92919083565b6103cc6103c736600461159c565b610d38565b60405161014291906116cc565b6103cc6103e736600461159c565b610f23565b61017e610f9c565b6005546001600160a01b031633148061041757506003546001600160a01b031633145b61043c5760405162461bcd60e51b815260040161043390611719565b60405180910390fd5b6010805460ff1916911515919091179055565b6001600160a01b0381166000908152600260209081526040808320600401805482518185028101850190935280835284938301828280156104b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161049b575b505050505090506000805b8251811015610514576104ef8382815181106104e2576104e2611765565b602002602001015161075c565b1561050257816104fe81611791565b9250505b8061050c81611791565b9150506104c4565b509392505050565b600754600160a01b900460ff1661053257600080fd5b3360009081526002602090815260408083208584526001909252909120546001600160a01b0316158061057b57506000838152600160205260409020546001600160a01b031633145b6105c45760405162461bcd60e51b815260206004820152601a602482015279696e7669746520636f646520616c726561647920696e2075736560301b6044820152606401610433565b600082815260016020819052604090912054908201546001600160a01b0390911690158061060d575081546001600160a01b031615801561060d57506001600160a01b03811615155b61064f5760405162461bcd60e51b81526020600482015260136024820152721d5cd95c88185b1c9958591e481a9bda5b9959606a1b6044820152606401610433565b600182015461068d5760018083018590554260068401819055600984015560008581526020919091526040902080546001600160a01b031916331790555b6001600160a01b038116156107205781546001600160a01b0382166001600160a01b031991821681178455600090815260026020908152604082206003810180546001818101835591855283852001805486163390811790915560048301805480840182559086529385209093018054909516909217909355600a8054919290916107199084906117ac565b9091555050505b60405133906001600160a01b038316907fd8c638d8979e2ba5dba1f0d66246ee4b1c54b838f0e0a2b601365345eb23b05190600090a350505050565b6001600160a01b03808216600090815260026020818152604080842080549095168452808420600581015485526004909252832090910154601054929392849060ff16151560011480156107b05750600082115b80156107e257506107df620151806107d98560060154876009015461114790919063ffffffff16565b9061115a565b82105b600285015490915060ff16158015610803575083546001600160a01b031615155b801561088a5750600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf9061083a908990600401611548565b60206040518083038186803b15801561085257600080fd5b505afa158015610866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088a91906117c4565b801561091457506006548454604051633af32abf60e01b81526001600160a01b0392831692633af32abf926108c492911690600401611548565b60206040518083038186803b1580156108dc57600080fd5b505afa1580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091491906117c4565b801561091e575080155b9695505050505050565b6005546001600160a01b031633148061094b57506003546001600160a01b031633145b6109675760405162461bcd60e51b815260040161043390611719565b60078054911515600160a01b0260ff60a01b19909216919091179055565b600754600160a01b900460ff1661099b57600080fd5b336000908152600260205260408120905b6004820154811015610b1a57620530205a10156109c7575050565b60008260040182815481106109de576109de611765565b6000918252602090912001546001600160a01b031690506109fe8161075c565b15610a0c57610a0c81611166565b6001600160a01b0381166000908152600260208190526040909120015460ff1615610b075760048301548290610a44906001906117e1565b1115610ad157600483018054610a5c906001906117e1565b81548110610a6c57610a6c611765565b6000918252602090912001546004840180546001600160a01b039092169184908110610a9a57610a9a611765565b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905581610acd816117f8565b9250505b82600401805480610ae457610ae461180f565b600082815260209020810160001990810180546001600160a01b03191690550190555b5080610b1281611791565b9150506109ac565b5050565b600754600160a01b900460ff16610b3457600080fd5b610b3d8161075c565b610b895760405162461bcd60e51b815260206004820181905260248201527f75736572206e6f7420656c6c6967626c6520666f7220626f756e7479207965746044820152606401610433565b610b9281611166565b50565b6005546001600160a01b0316331480610bb857506003546001600160a01b031633145b610bd45760405162461bcd60e51b815260040161043390611719565b600093845260046020526040909320918255600282019290925560010155565b600054610100900460ff1680610c0d575060005460ff16155b610c705760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610433565b600054610100900460ff16158015610c92576000805461ffff19166101011790555b60058054336001600160a01b0319918216179091556006805482166001600160a01b0387811691909117909155600780546000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ed869055600160a01b6001600160a81b031990911687841617179055600380549092169087161790556010805460ff191690558015610d31576000805461ff00191690555b5050505050565b6001600160a01b0381166000908152600260209081526040808320600401805482518185028101850190935280835260609493830182828015610da457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d86575b5050505050905060008060005b8351811015610e1e5760026000858381518110610dd057610dd0611765565b6020908102919091018101516001600160a01b031682528101919091526040016000206002015460ff16610e0c5781610e0881611791565b9250505b80610e1681611791565b915050610db1565b506000816001600160401b03811115610e3957610e39611825565b604051908082528060200260200182016040528015610e62578160200160208202803683370190505b50905060005b8451811015610f195760026000868381518110610e8757610e87611765565b6020908102919091018101516001600160a01b031682528101919091526040016000206002015460ff16610f0757848181518110610ec757610ec7611765565b6020026020010151828581518110610ee157610ee1611765565b6001600160a01b039092166020928302919091019091015283610f0381611791565b9450505b80610f1181611791565b915050610e68565b5095945050505050565b6001600160a01b038116600090815260026020908152604091829020600301805483518184028101840190945280845260609392830182828015610f9057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f72575b50505050509050919050565b6005546001600160a01b0316331480610fbf57506003546001600160a01b031633145b610fdb5760405162461bcd60e51b815260040161043390611719565b600754600160a01b900460ff16610ff157600080fd5b6007546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611022903090600401611548565b60206040518083038186803b15801561103a57600080fd5b505afa15801561104e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611072919061183b565b60075460035460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb926110aa9216908590600401611854565b602060405180830381600087803b1580156110c457600080fd5b505af11580156110d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fc91906117c4565b506003546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611136573d6000803e3d6000fd5b50506007805460ff60a01b19169055565b600061115382846117e1565b9392505050565b6000611153828461186d565b6001600160a01b038181166000908152600260208181526040808420805460099091015495168085528185206005908101548652600484528286208351608081018552815481526001820154958101959095529485015484840152825160a08101938490529196959492606085019291600385019182845b8154815260200190600101908083116111de575050505050815250509050600080826040015111801561122b57506001600160a01b03841660009081526002602052604090206006015483115b801561126957506001600160a01b0384166000908152600260205260409020600601546112629062015180906107d9908690611147565b8260400151105b6001600160a01b038087166000908152600260208190526040808320909101805460ff1916600190811790915592881682528120600701805493945091926112b29084906117ac565b90915550506020808301516001600160a01b03861660009081526002909252604082206008018054919290916112e99084906117ac565b909155505060088054600191906000906113049084906117ac565b90915550506020820151600980546000906113209084906117ac565b9091555050815160009015801590611354575082516001600160a01b03861660009081526002602052604090206007015410155b801561135e575081155b156113b7576001600160a01b038516600090815260026020526040812060050180546001929061138f9084906117ac565b9091555050506001600160a01b03841660009081526002602052604090204260069091015560015b600754602084015160405163a9059cbb60e01b81526001600160a01b039092169163a9059cbb916113ed91899190600401611854565b602060405180830381600087803b15801561140757600080fd5b505af115801561141b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143f91906117c4565b5060075460208401516001600160a01b039091169063a9059cbb90889061146790600261115a565b6040518363ffffffff1660e01b8152600401611484929190611854565b602060405180830381600087803b15801561149e57600080fd5b505af11580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d691906117c4565b506020838101516001600160a01b038781166000818152600285526040908190206005015481519485529484019490945284151583850152925190891692917f6081787cd1bd02ab1576c52f03e8710d792d460e7881c3155d77d23893f3768b919081900360600190a3505050505050565b6001600160a01b0391909116815260200190565b8015158114610b9257600080fd5b60006020828403121561157c57600080fd5b81356111538161155c565b6001600160a01b0381168114610b9257600080fd5b6000602082840312156115ae57600080fd5b813561115381611587565b600060208083528351808285015260005b818110156115e6578581018301518582016040015282016115ca565b818111156115f8576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561162157600080fd5b50508035926020909101359150565b60006020828403121561164257600080fd5b5035919050565b6000806000806080858703121561165f57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000806080858703121561169157600080fd5b843561169c81611587565b935060208501356116ac81611587565b925060408501356116bc81611587565b9396929550929360600135925050565b6020808252825182820181905260009190848201906040850190845b8181101561170d5783516001600160a01b0316835292840192918401916001016116e8565b50909695505050505050565b6020808252602c908201527f4f6e6c79206f776e6572206f72206176617461722063616e20706572666f726d60408201526b103a3434b99030b1ba34b7b760a11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156117a5576117a561177b565b5060010190565b600082198211156117bf576117bf61177b565b500190565b6000602082840312156117d657600080fd5b81516111538161155c565b6000828210156117f3576117f361177b565b500390565b6000816118075761180761177b565b506000190190565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60006020828403121561184d57600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b60008261188a57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212207945720f583c6fde24d584c738f4379e4f1c998b9f67c4c5e4a61d09a8b8624864736f6c63430008080033",
|
|
483
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061011d5760003560e01c806302fb0c5e14610122578063119e5bf31461014b57806321132aad1461016b5780632c159a1a1461018057806341155d5e1461019357806354fd4d50146101b45780635aef7de6146101db5780635b419a65146101ee5780636d619ef8146102015780638da5cb5b14610214578063a1df6fd314610227578063a87430ba14610234578063acec338a146102e0578063af6346b0146102f3578063b2596a67146102fb578063b6567cd514610345578063b9fb2d1814610358578063ba6f56801461036b578063cf756fdf14610394578063d80528ae146103a7578063e951a3aa146103b9578063e9881a5e146103d9578063efbe1c1c146103ec575b600080fd5b60075461013690600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b60075461015e906001600160a01b031681565b6040516101429190611548565b61017e61017936600461156a565b6103f4565b005b60065461015e906001600160a01b031681565b6101a66101a136600461159c565b61044f565b604051908152602001610142565b60408051808201825260058152640312e342e360dc1b6020820152905161014291906115b9565b60035461015e906001600160a01b031681565b61017e6101fc36600461160e565b61051c565b61013661020f36600461159c565b61075c565b60055461015e906001600160a01b031681565b6010546101369060ff1681565b61029561024236600461159c565b6002602081905260009182526040909120805460018201549282015460058301546006840154600785015460088601546009909601546001600160a01b03909516969560ff909416949293919290919088565b604080516001600160a01b0390991689526020890197909752941515958701959095526060860192909252608085015260a084015260c083019190915260e082015261010001610142565b61017e6102ee36600461156a565b610928565b61017e610985565b61032a610309366004611630565b60046020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610142565b61017e61035336600461159c565b610b1e565b61017e610366366004611649565b610b95565b61015e610379366004611630565b6001602052600090815260409020546001600160a01b031681565b61017e6103a236600461167b565b610bf4565b600854600954600a5461032a92919083565b6103cc6103c736600461159c565b610d38565b60405161014291906116cc565b6103cc6103e736600461159c565b610f23565b61017e610f9c565b6005546001600160a01b031633148061041757506003546001600160a01b031633145b61043c5760405162461bcd60e51b815260040161043390611719565b60405180910390fd5b6010805460ff1916911515919091179055565b6001600160a01b0381166000908152600260209081526040808320600401805482518185028101850190935280835284938301828280156104b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161049b575b505050505090506000805b8251811015610514576104ef8382815181106104e2576104e2611765565b602002602001015161075c565b1561050257816104fe81611791565b9250505b8061050c81611791565b9150506104c4565b509392505050565b600754600160a01b900460ff1661053257600080fd5b3360009081526002602090815260408083208584526001909252909120546001600160a01b0316158061057b57506000838152600160205260409020546001600160a01b031633145b6105c45760405162461bcd60e51b815260206004820152601a602482015279696e7669746520636f646520616c726561647920696e2075736560301b6044820152606401610433565b600082815260016020819052604090912054908201546001600160a01b0390911690158061060d575081546001600160a01b031615801561060d57506001600160a01b03811615155b61064f5760405162461bcd60e51b81526020600482015260136024820152721d5cd95c88185b1c9958591e481a9bda5b9959606a1b6044820152606401610433565b600182015461068d5760018083018590554260068401819055600984015560008581526020919091526040902080546001600160a01b031916331790555b6001600160a01b038116156107205781546001600160a01b0382166001600160a01b031991821681178455600090815260026020908152604082206003810180546001818101835591855283852001805486163390811790915560048301805480840182559086529385209093018054909516909217909355600a8054919290916107199084906117ac565b9091555050505b60405133906001600160a01b038316907fd8c638d8979e2ba5dba1f0d66246ee4b1c54b838f0e0a2b601365345eb23b05190600090a350505050565b6001600160a01b03808216600090815260026020818152604080842080549095168452808420600581015485526004909252832090910154601054929392849060ff16151560011480156107b05750600082115b80156107e257506107df620151806107d98560060154876009015461114790919063ffffffff16565b9061115a565b82105b600285015490915060ff16158015610803575083546001600160a01b031615155b801561088a5750600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf9061083a908990600401611548565b60206040518083038186803b15801561085257600080fd5b505afa158015610866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088a91906117c4565b801561091457506006548454604051633af32abf60e01b81526001600160a01b0392831692633af32abf926108c492911690600401611548565b60206040518083038186803b1580156108dc57600080fd5b505afa1580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091491906117c4565b801561091e575080155b9695505050505050565b6005546001600160a01b031633148061094b57506003546001600160a01b031633145b6109675760405162461bcd60e51b815260040161043390611719565b60078054911515600160a01b0260ff60a01b19909216919091179055565b600754600160a01b900460ff1661099b57600080fd5b336000908152600260205260408120905b6004820154811015610b1a57620530205a10156109c7575050565b60008260040182815481106109de576109de611765565b6000918252602090912001546001600160a01b031690506109fe8161075c565b15610a0c57610a0c81611166565b6001600160a01b0381166000908152600260208190526040909120015460ff1615610b075760048301548290610a44906001906117e1565b1115610ad157600483018054610a5c906001906117e1565b81548110610a6c57610a6c611765565b6000918252602090912001546004840180546001600160a01b039092169184908110610a9a57610a9a611765565b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905581610acd816117f8565b9250505b82600401805480610ae457610ae461180f565b600082815260209020810160001990810180546001600160a01b03191690550190555b5080610b1281611791565b9150506109ac565b5050565b600754600160a01b900460ff16610b3457600080fd5b610b3d8161075c565b610b895760405162461bcd60e51b815260206004820181905260248201527f75736572206e6f7420656c6c6967626c6520666f7220626f756e7479207965746044820152606401610433565b610b9281611166565b50565b6005546001600160a01b0316331480610bb857506003546001600160a01b031633145b610bd45760405162461bcd60e51b815260040161043390611719565b600093845260046020526040909320918255600282019290925560010155565b600054610100900460ff1680610c0d575060005460ff16155b610c705760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610433565b600054610100900460ff16158015610c92576000805461ffff19166101011790555b60058054336001600160a01b0319918216179091556006805482166001600160a01b0387811691909117909155600780546000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ed869055600160a01b6001600160a81b031990911687841617179055600380549092169087161790556010805460ff191690558015610d31576000805461ff00191690555b5050505050565b6001600160a01b0381166000908152600260209081526040808320600401805482518185028101850190935280835260609493830182828015610da457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d86575b5050505050905060008060005b8351811015610e1e5760026000858381518110610dd057610dd0611765565b6020908102919091018101516001600160a01b031682528101919091526040016000206002015460ff16610e0c5781610e0881611791565b9250505b80610e1681611791565b915050610db1565b506000816001600160401b03811115610e3957610e39611825565b604051908082528060200260200182016040528015610e62578160200160208202803683370190505b50905060005b8451811015610f195760026000868381518110610e8757610e87611765565b6020908102919091018101516001600160a01b031682528101919091526040016000206002015460ff16610f0757848181518110610ec757610ec7611765565b6020026020010151828581518110610ee157610ee1611765565b6001600160a01b039092166020928302919091019091015283610f0381611791565b9450505b80610f1181611791565b915050610e68565b5095945050505050565b6001600160a01b038116600090815260026020908152604091829020600301805483518184028101840190945280845260609392830182828015610f9057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f72575b50505050509050919050565b6005546001600160a01b0316331480610fbf57506003546001600160a01b031633145b610fdb5760405162461bcd60e51b815260040161043390611719565b600754600160a01b900460ff16610ff157600080fd5b6007546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611022903090600401611548565b60206040518083038186803b15801561103a57600080fd5b505afa15801561104e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611072919061183b565b60075460035460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb926110aa9216908590600401611854565b602060405180830381600087803b1580156110c457600080fd5b505af11580156110d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fc91906117c4565b506003546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611136573d6000803e3d6000fd5b50506007805460ff60a01b19169055565b600061115382846117e1565b9392505050565b6000611153828461186d565b6001600160a01b038181166000908152600260208181526040808420805460099091015495168085528185206005908101548652600484528286208351608081018552815481526001820154958101959095529485015484840152825160a08101938490529196959492606085019291600385019182845b8154815260200190600101908083116111de575050505050815250509050600080826040015111801561122b57506001600160a01b03841660009081526002602052604090206006015483115b801561126957506001600160a01b0384166000908152600260205260409020600601546112629062015180906107d9908690611147565b8260400151105b6001600160a01b038087166000908152600260208190526040808320909101805460ff1916600190811790915592881682528120600701805493945091926112b29084906117ac565b90915550506020808301516001600160a01b03861660009081526002909252604082206008018054919290916112e99084906117ac565b909155505060088054600191906000906113049084906117ac565b90915550506020820151600980546000906113209084906117ac565b9091555050815160009015801590611354575082516001600160a01b03861660009081526002602052604090206007015410155b801561135e575081155b156113b7576001600160a01b038516600090815260026020526040812060050180546001929061138f9084906117ac565b9091555050506001600160a01b03841660009081526002602052604090204260069091015560015b600754602084015160405163a9059cbb60e01b81526001600160a01b039092169163a9059cbb916113ed91899190600401611854565b602060405180830381600087803b15801561140757600080fd5b505af115801561141b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143f91906117c4565b5060075460208401516001600160a01b039091169063a9059cbb90889061146790600261115a565b6040518363ffffffff1660e01b8152600401611484929190611854565b602060405180830381600087803b15801561149e57600080fd5b505af11580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d691906117c4565b506020838101516001600160a01b038781166000818152600285526040908190206005015481519485529484019490945284151583850152925190891692917f6081787cd1bd02ab1576c52f03e8710d792d460e7881c3155d77d23893f3768b919081900360600190a3505050505050565b6001600160a01b0391909116815260200190565b8015158114610b9257600080fd5b60006020828403121561157c57600080fd5b81356111538161155c565b6001600160a01b0381168114610b9257600080fd5b6000602082840312156115ae57600080fd5b813561115381611587565b600060208083528351808285015260005b818110156115e6578581018301518582016040015282016115ca565b818111156115f8576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561162157600080fd5b50508035926020909101359150565b60006020828403121561164257600080fd5b5035919050565b6000806000806080858703121561165f57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000806080858703121561169157600080fd5b843561169c81611587565b935060208501356116ac81611587565b925060408501356116bc81611587565b9396929550929360600135925050565b6020808252825182820181905260009190848201906040850190845b8181101561170d5783516001600160a01b0316835292840192918401916001016116e8565b50909695505050505050565b6020808252602c908201527f4f6e6c79206f776e6572206f72206176617461722063616e20706572666f726d60408201526b103a3434b99030b1ba34b7b760a11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156117a5576117a561177b565b5060010190565b600082198211156117bf576117bf61177b565b500190565b6000602082840312156117d657600080fd5b81516111538161155c565b6000828210156117f3576117f361177b565b500390565b6000816118075761180761177b565b506000190190565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60006020828403121561184d57600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b60008261188a57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212207945720f583c6fde24d584c738f4379e4f1c998b9f67c4c5e4a61d09a8b8624864736f6c63430008080033",
|
|
484
|
-
"linkReferences": {},
|
|
485
|
-
"deployedLinkReferences": {}
|
|
486
|
-
}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
//SPDX-License-Identifier: MIT
|
|
2
|
-
|
|
3
|
-
pragma solidity >=0.6.0;
|
|
4
|
-
|
|
5
|
-
pragma experimental ABIEncoderV2;
|
|
6
|
-
|
|
7
|
-
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
8
|
-
import "../Interfaces.sol";
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @title DonationStaking contract that receives funds in ETH/DAI
|
|
12
|
-
* and stake them in the SimpleStaking contract
|
|
13
|
-
*/
|
|
14
|
-
contract FuseFaucet is Initializable {
|
|
15
|
-
event WalletTopped(address indexed user, uint256 amount);
|
|
16
|
-
|
|
17
|
-
uint256 public perDayRoughLimit;
|
|
18
|
-
uint256 public toppingAmount;
|
|
19
|
-
uint256 public gasRefund;
|
|
20
|
-
uint256 public startTime;
|
|
21
|
-
uint256 public currentDay;
|
|
22
|
-
|
|
23
|
-
IIdentity public identity;
|
|
24
|
-
|
|
25
|
-
mapping(uint256 => mapping(address => uint256)) public toppings;
|
|
26
|
-
mapping(address => bool) public notFirstTime;
|
|
27
|
-
|
|
28
|
-
function initialize(address _identity) public initializer {
|
|
29
|
-
toppingAmount = 1000000 * 1e9; //1M gwei
|
|
30
|
-
gasRefund = 131350 * 1e9; //100K gwei
|
|
31
|
-
perDayRoughLimit = 2 * toppingAmount;
|
|
32
|
-
startTime = block.timestamp;
|
|
33
|
-
identity = IIdentity(_identity);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
modifier reimburseGas() {
|
|
37
|
-
_;
|
|
38
|
-
payable(msg.sender).transfer(gasRefund);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
receive() external payable {}
|
|
42
|
-
|
|
43
|
-
modifier toppingLimit(address _user) {
|
|
44
|
-
setDay();
|
|
45
|
-
require(
|
|
46
|
-
address(_user).balance < toppingAmount / 2,
|
|
47
|
-
"User balance above minimum"
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
require(
|
|
51
|
-
toppings[currentDay][_user] < perDayRoughLimit,
|
|
52
|
-
"User wallet has been topped too many times today"
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
require(
|
|
56
|
-
identity.isWhitelisted(_user) || notFirstTime[_user] == false,
|
|
57
|
-
"User not whitelisted or not first time"
|
|
58
|
-
);
|
|
59
|
-
|
|
60
|
-
uint256 weekTotal = 0;
|
|
61
|
-
for (
|
|
62
|
-
int256 i = int256(currentDay);
|
|
63
|
-
i >= 0 && i > int256(currentDay) - 7;
|
|
64
|
-
i--
|
|
65
|
-
) {
|
|
66
|
-
weekTotal += toppings[uint256(i)][_user];
|
|
67
|
-
}
|
|
68
|
-
require(
|
|
69
|
-
weekTotal < perDayRoughLimit * 3,
|
|
70
|
-
"User wallet has been topped too many times this week"
|
|
71
|
-
);
|
|
72
|
-
_;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/* @dev Internal function that sets current day
|
|
76
|
-
*/
|
|
77
|
-
function setDay() internal {
|
|
78
|
-
currentDay = (block.timestamp - startTime) / 1 days;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function canTop(address _user) public view returns (bool) {
|
|
82
|
-
uint256 _currentDay = (block.timestamp - startTime) / 1 days;
|
|
83
|
-
bool can = address(_user).balance < toppingAmount / 2 &&
|
|
84
|
-
toppings[_currentDay][_user] < perDayRoughLimit &&
|
|
85
|
-
(identity.isWhitelisted(_user) || notFirstTime[_user] == false);
|
|
86
|
-
|
|
87
|
-
uint256 weekTotal = 0;
|
|
88
|
-
for (
|
|
89
|
-
int256 i = int256(_currentDay);
|
|
90
|
-
i >= 0 && i > int256(_currentDay) - 7;
|
|
91
|
-
i--
|
|
92
|
-
) {
|
|
93
|
-
weekTotal += toppings[uint256(i)][_user];
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
can = can && weekTotal < perDayRoughLimit * 3;
|
|
97
|
-
return can;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/* @dev Function to top given address with amount of G$ given in constructor
|
|
101
|
-
* can only be done by admin the amount of times specified in constructor per day
|
|
102
|
-
* @param _user The address to transfer to
|
|
103
|
-
*/
|
|
104
|
-
function topWallet(address payable _user)
|
|
105
|
-
public
|
|
106
|
-
reimburseGas
|
|
107
|
-
toppingLimit(_user)
|
|
108
|
-
{
|
|
109
|
-
_topWallet(_user);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
function _topWallet(address payable _wallet) internal {
|
|
113
|
-
require(toppingAmount > address(_wallet).balance);
|
|
114
|
-
uint256 toTop = toppingAmount - address(_wallet).balance;
|
|
115
|
-
toppings[currentDay][_wallet] += toTop;
|
|
116
|
-
notFirstTime[_wallet] = true;
|
|
117
|
-
_wallet.transfer(toTop);
|
|
118
|
-
emit WalletTopped(_wallet, toTop);
|
|
119
|
-
}
|
|
120
|
-
}
|