@gooddollar/goodprotocol 1.0.8 → 1.0.11

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 (123) hide show
  1. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  2. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  3. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  4. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  5. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  6. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  7. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  8. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  9. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  10. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  11. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  12. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  13. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  14. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  15. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  16. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  28. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  29. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  30. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  31. package/artifacts/contracts/governance/GovarnanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  32. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  33. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  34. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  35. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
  36. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  37. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  38. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  39. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  40. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +6 -6
  41. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  42. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  43. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  44. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  45. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  46. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  47. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  48. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  49. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  50. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  51. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  52. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  53. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  54. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  55. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  56. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  57. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  58. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  59. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  60. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  61. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  62. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  63. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  64. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  65. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +4 -0
  66. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +200 -0
  67. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  68. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
  69. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  70. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  71. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +4 -0
  72. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.json +958 -0
  73. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  74. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  75. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +65 -12
  76. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  77. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +4 -4
  78. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +4 -0
  79. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +1149 -0
  80. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  81. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +57 -14
  82. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  83. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +6 -6
  84. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +4 -0
  85. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +1092 -0
  86. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  87. package/artifacts/contracts/unaudited-foundation/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  88. package/artifacts/contracts/unaudited-foundation/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  89. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  90. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  91. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  92. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  93. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  94. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  95. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  96. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  97. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  98. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  99. package/contracts/staking/BaseShareFieldV2.sol +343 -0
  100. package/contracts/staking/SimpleStaking.sol +0 -7
  101. package/contracts/staking/SimpleStakingV2.sol +488 -0
  102. package/contracts/staking/aave/AaveStakingFactory.sol +45 -19
  103. package/contracts/staking/aave/GoodAaveStaking.sol +1 -1
  104. package/contracts/staking/aave/GoodAaveStakingV2.sol +263 -0
  105. package/contracts/staking/compound/CompoundStakingFactory.sol +41 -18
  106. package/contracts/staking/compound/GoodCompoundStaking.sol +1 -1
  107. package/contracts/staking/compound/GoodCompoundStakingV2.sol +315 -0
  108. package/package.json +1 -1
  109. package/releases/deployment.json +55 -47
  110. package/scripts/deployFullDAO.ts +1 -1
  111. package/scripts/upgradeToV2/upgradeToV2.ts +7 -3
  112. package/test/governance/StakersDistribution.test.ts +43 -14
  113. package/test/helpers.ts +6 -1
  114. package/test/staking/CompoundStakingFactory.test.ts +24 -21
  115. package/test/staking/DifferentStakingTokens.test.ts +3 -1
  116. package/test/staking/DonationsStaking.test.ts +3 -1
  117. package/test/staking/GoodAaveStakingFactory.test.ts +26 -23
  118. package/test/staking/SimpleDAIStaking.test.ts +3 -11
  119. package/test/staking/StakingRewards.test.ts +20 -14
  120. package/test/staking/SwapHelper.test.ts +4 -1
  121. package/test/staking/UsdcAaveStaking.test.ts +22 -3
  122. package/test/ubi/UBIScheme.e2e.test.ts +1 -1
  123. package/test/utils/ProtocolUpgrade.test.ts +1 -1
@@ -0,0 +1,958 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "SimpleStakingV2",
4
+ "sourceName": "contracts/staking/SimpleStakingV2.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": true,
11
+ "internalType": "address",
12
+ "name": "owner",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": true,
17
+ "internalType": "address",
18
+ "name": "spender",
19
+ "type": "address"
20
+ },
21
+ {
22
+ "indexed": false,
23
+ "internalType": "uint256",
24
+ "name": "value",
25
+ "type": "uint256"
26
+ }
27
+ ],
28
+ "name": "Approval",
29
+ "type": "event"
30
+ },
31
+ {
32
+ "anonymous": false,
33
+ "inputs": [
34
+ {
35
+ "indexed": false,
36
+ "internalType": "address",
37
+ "name": "recipient",
38
+ "type": "address"
39
+ },
40
+ {
41
+ "indexed": false,
42
+ "internalType": "uint256",
43
+ "name": "iTokenGains",
44
+ "type": "uint256"
45
+ },
46
+ {
47
+ "indexed": false,
48
+ "internalType": "uint256",
49
+ "name": "tokenGains",
50
+ "type": "uint256"
51
+ },
52
+ {
53
+ "indexed": false,
54
+ "internalType": "uint256",
55
+ "name": "actualTokenRedeemed",
56
+ "type": "uint256"
57
+ },
58
+ {
59
+ "indexed": false,
60
+ "internalType": "uint256",
61
+ "name": "actualRewardTokenEarned",
62
+ "type": "uint256"
63
+ },
64
+ {
65
+ "indexed": false,
66
+ "internalType": "uint256",
67
+ "name": "interestCollectedInDAI",
68
+ "type": "uint256"
69
+ }
70
+ ],
71
+ "name": "InterestCollected",
72
+ "type": "event"
73
+ },
74
+ {
75
+ "anonymous": false,
76
+ "inputs": [
77
+ {
78
+ "indexed": true,
79
+ "internalType": "address",
80
+ "name": "staker",
81
+ "type": "address"
82
+ },
83
+ {
84
+ "indexed": false,
85
+ "internalType": "address",
86
+ "name": "token",
87
+ "type": "address"
88
+ },
89
+ {
90
+ "indexed": false,
91
+ "internalType": "uint256",
92
+ "name": "value",
93
+ "type": "uint256"
94
+ }
95
+ ],
96
+ "name": "StakeWithdraw",
97
+ "type": "event"
98
+ },
99
+ {
100
+ "anonymous": false,
101
+ "inputs": [
102
+ {
103
+ "indexed": true,
104
+ "internalType": "address",
105
+ "name": "staker",
106
+ "type": "address"
107
+ },
108
+ {
109
+ "indexed": false,
110
+ "internalType": "address",
111
+ "name": "token",
112
+ "type": "address"
113
+ },
114
+ {
115
+ "indexed": false,
116
+ "internalType": "uint256",
117
+ "name": "value",
118
+ "type": "uint256"
119
+ }
120
+ ],
121
+ "name": "Staked",
122
+ "type": "event"
123
+ },
124
+ {
125
+ "anonymous": false,
126
+ "inputs": [
127
+ {
128
+ "indexed": true,
129
+ "internalType": "address",
130
+ "name": "from",
131
+ "type": "address"
132
+ },
133
+ {
134
+ "indexed": true,
135
+ "internalType": "address",
136
+ "name": "to",
137
+ "type": "address"
138
+ },
139
+ {
140
+ "indexed": false,
141
+ "internalType": "uint256",
142
+ "name": "value",
143
+ "type": "uint256"
144
+ }
145
+ ],
146
+ "name": "Transfer",
147
+ "type": "event"
148
+ },
149
+ {
150
+ "inputs": [
151
+ {
152
+ "internalType": "address",
153
+ "name": "owner",
154
+ "type": "address"
155
+ },
156
+ {
157
+ "internalType": "address",
158
+ "name": "spender",
159
+ "type": "address"
160
+ }
161
+ ],
162
+ "name": "allowance",
163
+ "outputs": [
164
+ {
165
+ "internalType": "uint256",
166
+ "name": "",
167
+ "type": "uint256"
168
+ }
169
+ ],
170
+ "stateMutability": "view",
171
+ "type": "function"
172
+ },
173
+ {
174
+ "inputs": [
175
+ {
176
+ "internalType": "address",
177
+ "name": "spender",
178
+ "type": "address"
179
+ },
180
+ {
181
+ "internalType": "uint256",
182
+ "name": "amount",
183
+ "type": "uint256"
184
+ }
185
+ ],
186
+ "name": "approve",
187
+ "outputs": [
188
+ {
189
+ "internalType": "bool",
190
+ "name": "",
191
+ "type": "bool"
192
+ }
193
+ ],
194
+ "stateMutability": "nonpayable",
195
+ "type": "function"
196
+ },
197
+ {
198
+ "inputs": [],
199
+ "name": "avatar",
200
+ "outputs": [
201
+ {
202
+ "internalType": "address",
203
+ "name": "",
204
+ "type": "address"
205
+ }
206
+ ],
207
+ "stateMutability": "view",
208
+ "type": "function"
209
+ },
210
+ {
211
+ "inputs": [
212
+ {
213
+ "internalType": "address",
214
+ "name": "account",
215
+ "type": "address"
216
+ }
217
+ ],
218
+ "name": "balanceOf",
219
+ "outputs": [
220
+ {
221
+ "internalType": "uint256",
222
+ "name": "",
223
+ "type": "uint256"
224
+ }
225
+ ],
226
+ "stateMutability": "view",
227
+ "type": "function"
228
+ },
229
+ {
230
+ "inputs": [],
231
+ "name": "claimReputation",
232
+ "outputs": [],
233
+ "stateMutability": "nonpayable",
234
+ "type": "function"
235
+ },
236
+ {
237
+ "inputs": [
238
+ {
239
+ "internalType": "address",
240
+ "name": "_recipient",
241
+ "type": "address"
242
+ }
243
+ ],
244
+ "name": "collectUBIInterest",
245
+ "outputs": [
246
+ {
247
+ "internalType": "uint256",
248
+ "name": "actualTokenRedeemed",
249
+ "type": "uint256"
250
+ },
251
+ {
252
+ "internalType": "uint256",
253
+ "name": "actualRewardTokenRedeemed",
254
+ "type": "uint256"
255
+ },
256
+ {
257
+ "internalType": "uint256",
258
+ "name": "actualDai",
259
+ "type": "uint256"
260
+ }
261
+ ],
262
+ "stateMutability": "nonpayable",
263
+ "type": "function"
264
+ },
265
+ {
266
+ "inputs": [
267
+ {
268
+ "internalType": "bool",
269
+ "name": "_returnTokenBalanceInUSD",
270
+ "type": "bool"
271
+ },
272
+ {
273
+ "internalType": "bool",
274
+ "name": "_returnTokenGainsInUSD",
275
+ "type": "bool"
276
+ }
277
+ ],
278
+ "name": "currentGains",
279
+ "outputs": [
280
+ {
281
+ "internalType": "uint256",
282
+ "name": "",
283
+ "type": "uint256"
284
+ },
285
+ {
286
+ "internalType": "uint256",
287
+ "name": "",
288
+ "type": "uint256"
289
+ },
290
+ {
291
+ "internalType": "uint256",
292
+ "name": "",
293
+ "type": "uint256"
294
+ },
295
+ {
296
+ "internalType": "uint256",
297
+ "name": "",
298
+ "type": "uint256"
299
+ },
300
+ {
301
+ "internalType": "uint256",
302
+ "name": "",
303
+ "type": "uint256"
304
+ }
305
+ ],
306
+ "stateMutability": "view",
307
+ "type": "function"
308
+ },
309
+ {
310
+ "inputs": [],
311
+ "name": "dao",
312
+ "outputs": [
313
+ {
314
+ "internalType": "contract Controller",
315
+ "name": "",
316
+ "type": "address"
317
+ }
318
+ ],
319
+ "stateMutability": "view",
320
+ "type": "function"
321
+ },
322
+ {
323
+ "inputs": [],
324
+ "name": "decimals",
325
+ "outputs": [
326
+ {
327
+ "internalType": "uint8",
328
+ "name": "",
329
+ "type": "uint8"
330
+ }
331
+ ],
332
+ "stateMutability": "view",
333
+ "type": "function"
334
+ },
335
+ {
336
+ "inputs": [
337
+ {
338
+ "internalType": "address",
339
+ "name": "spender",
340
+ "type": "address"
341
+ },
342
+ {
343
+ "internalType": "uint256",
344
+ "name": "subtractedValue",
345
+ "type": "uint256"
346
+ }
347
+ ],
348
+ "name": "decreaseAllowance",
349
+ "outputs": [
350
+ {
351
+ "internalType": "bool",
352
+ "name": "",
353
+ "type": "bool"
354
+ }
355
+ ],
356
+ "stateMutability": "nonpayable",
357
+ "type": "function"
358
+ },
359
+ {
360
+ "inputs": [],
361
+ "name": "getGasCostForInterestTransfer",
362
+ "outputs": [
363
+ {
364
+ "internalType": "uint32",
365
+ "name": "",
366
+ "type": "uint32"
367
+ }
368
+ ],
369
+ "stateMutability": "view",
370
+ "type": "function"
371
+ },
372
+ {
373
+ "inputs": [
374
+ {
375
+ "internalType": "address",
376
+ "name": "user",
377
+ "type": "address"
378
+ }
379
+ ],
380
+ "name": "getProductivity",
381
+ "outputs": [
382
+ {
383
+ "internalType": "uint256",
384
+ "name": "",
385
+ "type": "uint256"
386
+ },
387
+ {
388
+ "internalType": "uint256",
389
+ "name": "",
390
+ "type": "uint256"
391
+ }
392
+ ],
393
+ "stateMutability": "view",
394
+ "type": "function"
395
+ },
396
+ {
397
+ "inputs": [],
398
+ "name": "getRouter",
399
+ "outputs": [
400
+ {
401
+ "internalType": "contract Uniswap",
402
+ "name": "",
403
+ "type": "address"
404
+ }
405
+ ],
406
+ "stateMutability": "view",
407
+ "type": "function"
408
+ },
409
+ {
410
+ "inputs": [],
411
+ "name": "getStats",
412
+ "outputs": [
413
+ {
414
+ "internalType": "uint256",
415
+ "name": "_accAmountPerShare",
416
+ "type": "uint256"
417
+ },
418
+ {
419
+ "internalType": "uint128",
420
+ "name": "_mintedRewards",
421
+ "type": "uint128"
422
+ },
423
+ {
424
+ "internalType": "uint128",
425
+ "name": "_totalProductivity",
426
+ "type": "uint128"
427
+ },
428
+ {
429
+ "internalType": "uint128",
430
+ "name": "_totalEffectiveStakes",
431
+ "type": "uint128"
432
+ },
433
+ {
434
+ "internalType": "uint128",
435
+ "name": "_accumulatedRewards",
436
+ "type": "uint128"
437
+ },
438
+ {
439
+ "internalType": "uint128",
440
+ "name": "_lastRewardBlock",
441
+ "type": "uint128"
442
+ },
443
+ {
444
+ "internalType": "uint64",
445
+ "name": "_maxMultiplierThreshold",
446
+ "type": "uint64"
447
+ },
448
+ {
449
+ "internalType": "uint8",
450
+ "name": "_tokenDecimalDifference",
451
+ "type": "uint8"
452
+ }
453
+ ],
454
+ "stateMutability": "view",
455
+ "type": "function"
456
+ },
457
+ {
458
+ "inputs": [
459
+ {
460
+ "internalType": "address",
461
+ "name": "_oracle",
462
+ "type": "address"
463
+ },
464
+ {
465
+ "internalType": "uint256",
466
+ "name": "_amount",
467
+ "type": "uint256"
468
+ },
469
+ {
470
+ "internalType": "uint256",
471
+ "name": "_decimals",
472
+ "type": "uint256"
473
+ }
474
+ ],
475
+ "name": "getTokenValueInUSD",
476
+ "outputs": [
477
+ {
478
+ "internalType": "uint256",
479
+ "name": "",
480
+ "type": "uint256"
481
+ }
482
+ ],
483
+ "stateMutability": "view",
484
+ "type": "function"
485
+ },
486
+ {
487
+ "inputs": [
488
+ {
489
+ "internalType": "address",
490
+ "name": "_staker",
491
+ "type": "address"
492
+ }
493
+ ],
494
+ "name": "getUserMintedAndPending",
495
+ "outputs": [
496
+ {
497
+ "internalType": "uint256",
498
+ "name": "",
499
+ "type": "uint256"
500
+ },
501
+ {
502
+ "internalType": "uint256",
503
+ "name": "",
504
+ "type": "uint256"
505
+ }
506
+ ],
507
+ "stateMutability": "view",
508
+ "type": "function"
509
+ },
510
+ {
511
+ "inputs": [
512
+ {
513
+ "internalType": "address",
514
+ "name": "user",
515
+ "type": "address"
516
+ },
517
+ {
518
+ "internalType": "uint256",
519
+ "name": "rewardsPerBlock",
520
+ "type": "uint256"
521
+ },
522
+ {
523
+ "internalType": "uint256",
524
+ "name": "blockStart",
525
+ "type": "uint256"
526
+ },
527
+ {
528
+ "internalType": "uint256",
529
+ "name": "blockEnd",
530
+ "type": "uint256"
531
+ }
532
+ ],
533
+ "name": "getUserPendingReward",
534
+ "outputs": [
535
+ {
536
+ "internalType": "uint256",
537
+ "name": "",
538
+ "type": "uint256"
539
+ }
540
+ ],
541
+ "stateMutability": "view",
542
+ "type": "function"
543
+ },
544
+ {
545
+ "inputs": [],
546
+ "name": "iToken",
547
+ "outputs": [
548
+ {
549
+ "internalType": "contract ERC20",
550
+ "name": "",
551
+ "type": "address"
552
+ }
553
+ ],
554
+ "stateMutability": "view",
555
+ "type": "function"
556
+ },
557
+ {
558
+ "inputs": [
559
+ {
560
+ "internalType": "address",
561
+ "name": "spender",
562
+ "type": "address"
563
+ },
564
+ {
565
+ "internalType": "uint256",
566
+ "name": "addedValue",
567
+ "type": "uint256"
568
+ }
569
+ ],
570
+ "name": "increaseAllowance",
571
+ "outputs": [
572
+ {
573
+ "internalType": "bool",
574
+ "name": "",
575
+ "type": "bool"
576
+ }
577
+ ],
578
+ "stateMutability": "nonpayable",
579
+ "type": "function"
580
+ },
581
+ {
582
+ "inputs": [
583
+ {
584
+ "internalType": "address",
585
+ "name": "_token",
586
+ "type": "address"
587
+ },
588
+ {
589
+ "internalType": "address",
590
+ "name": "_iToken",
591
+ "type": "address"
592
+ },
593
+ {
594
+ "internalType": "contract INameService",
595
+ "name": "_ns",
596
+ "type": "address"
597
+ },
598
+ {
599
+ "internalType": "string",
600
+ "name": "_tokenName",
601
+ "type": "string"
602
+ },
603
+ {
604
+ "internalType": "string",
605
+ "name": "_tokenSymbol",
606
+ "type": "string"
607
+ },
608
+ {
609
+ "internalType": "uint64",
610
+ "name": "_maxRewardThreshold",
611
+ "type": "uint64"
612
+ }
613
+ ],
614
+ "name": "initialize",
615
+ "outputs": [],
616
+ "stateMutability": "nonpayable",
617
+ "type": "function"
618
+ },
619
+ {
620
+ "inputs": [],
621
+ "name": "isPaused",
622
+ "outputs": [
623
+ {
624
+ "internalType": "bool",
625
+ "name": "",
626
+ "type": "bool"
627
+ }
628
+ ],
629
+ "stateMutability": "view",
630
+ "type": "function"
631
+ },
632
+ {
633
+ "inputs": [],
634
+ "name": "maxLiquidityPercentageSwap",
635
+ "outputs": [
636
+ {
637
+ "internalType": "uint24",
638
+ "name": "",
639
+ "type": "uint24"
640
+ }
641
+ ],
642
+ "stateMutability": "view",
643
+ "type": "function"
644
+ },
645
+ {
646
+ "inputs": [],
647
+ "name": "name",
648
+ "outputs": [
649
+ {
650
+ "internalType": "string",
651
+ "name": "",
652
+ "type": "string"
653
+ }
654
+ ],
655
+ "stateMutability": "view",
656
+ "type": "function"
657
+ },
658
+ {
659
+ "inputs": [],
660
+ "name": "nameService",
661
+ "outputs": [
662
+ {
663
+ "internalType": "contract INameService",
664
+ "name": "",
665
+ "type": "address"
666
+ }
667
+ ],
668
+ "stateMutability": "view",
669
+ "type": "function"
670
+ },
671
+ {
672
+ "inputs": [],
673
+ "name": "nativeToken",
674
+ "outputs": [
675
+ {
676
+ "internalType": "contract IGoodDollar",
677
+ "name": "",
678
+ "type": "address"
679
+ }
680
+ ],
681
+ "stateMutability": "view",
682
+ "type": "function"
683
+ },
684
+ {
685
+ "inputs": [
686
+ {
687
+ "internalType": "bool",
688
+ "name": "_isPaused",
689
+ "type": "bool"
690
+ }
691
+ ],
692
+ "name": "pause",
693
+ "outputs": [],
694
+ "stateMutability": "nonpayable",
695
+ "type": "function"
696
+ },
697
+ {
698
+ "inputs": [
699
+ {
700
+ "internalType": "contract ERC20",
701
+ "name": "_token",
702
+ "type": "address"
703
+ }
704
+ ],
705
+ "name": "recover",
706
+ "outputs": [],
707
+ "stateMutability": "nonpayable",
708
+ "type": "function"
709
+ },
710
+ {
711
+ "inputs": [
712
+ {
713
+ "internalType": "address",
714
+ "name": "user",
715
+ "type": "address"
716
+ },
717
+ {
718
+ "internalType": "uint256",
719
+ "name": "rewardsPerBlock",
720
+ "type": "uint256"
721
+ },
722
+ {
723
+ "internalType": "uint256",
724
+ "name": "blockStart",
725
+ "type": "uint256"
726
+ },
727
+ {
728
+ "internalType": "uint256",
729
+ "name": "blockEnd",
730
+ "type": "uint256"
731
+ }
732
+ ],
733
+ "name": "rewardsMinted",
734
+ "outputs": [
735
+ {
736
+ "internalType": "uint256",
737
+ "name": "",
738
+ "type": "uint256"
739
+ }
740
+ ],
741
+ "stateMutability": "nonpayable",
742
+ "type": "function"
743
+ },
744
+ {
745
+ "inputs": [
746
+ {
747
+ "internalType": "uint24",
748
+ "name": "_maxPercentage",
749
+ "type": "uint24"
750
+ }
751
+ ],
752
+ "name": "setMaxLiquidityPercentageSwap",
753
+ "outputs": [],
754
+ "stateMutability": "nonpayable",
755
+ "type": "function"
756
+ },
757
+ {
758
+ "inputs": [
759
+ {
760
+ "internalType": "uint256",
761
+ "name": "_amount",
762
+ "type": "uint256"
763
+ },
764
+ {
765
+ "internalType": "uint256",
766
+ "name": "_donationPer",
767
+ "type": "uint256"
768
+ },
769
+ {
770
+ "internalType": "bool",
771
+ "name": "_inInterestToken",
772
+ "type": "bool"
773
+ }
774
+ ],
775
+ "name": "stake",
776
+ "outputs": [],
777
+ "stateMutability": "nonpayable",
778
+ "type": "function"
779
+ },
780
+ {
781
+ "inputs": [],
782
+ "name": "symbol",
783
+ "outputs": [
784
+ {
785
+ "internalType": "string",
786
+ "name": "",
787
+ "type": "string"
788
+ }
789
+ ],
790
+ "stateMutability": "view",
791
+ "type": "function"
792
+ },
793
+ {
794
+ "inputs": [],
795
+ "name": "token",
796
+ "outputs": [
797
+ {
798
+ "internalType": "contract ERC20",
799
+ "name": "",
800
+ "type": "address"
801
+ }
802
+ ],
803
+ "stateMutability": "view",
804
+ "type": "function"
805
+ },
806
+ {
807
+ "inputs": [],
808
+ "name": "totalSupply",
809
+ "outputs": [
810
+ {
811
+ "internalType": "uint256",
812
+ "name": "",
813
+ "type": "uint256"
814
+ }
815
+ ],
816
+ "stateMutability": "view",
817
+ "type": "function"
818
+ },
819
+ {
820
+ "inputs": [
821
+ {
822
+ "internalType": "address",
823
+ "name": "recipient",
824
+ "type": "address"
825
+ },
826
+ {
827
+ "internalType": "uint256",
828
+ "name": "amount",
829
+ "type": "uint256"
830
+ }
831
+ ],
832
+ "name": "transfer",
833
+ "outputs": [
834
+ {
835
+ "internalType": "bool",
836
+ "name": "",
837
+ "type": "bool"
838
+ }
839
+ ],
840
+ "stateMutability": "nonpayable",
841
+ "type": "function"
842
+ },
843
+ {
844
+ "inputs": [
845
+ {
846
+ "internalType": "address",
847
+ "name": "sender",
848
+ "type": "address"
849
+ },
850
+ {
851
+ "internalType": "address",
852
+ "name": "recipient",
853
+ "type": "address"
854
+ },
855
+ {
856
+ "internalType": "uint256",
857
+ "name": "amount",
858
+ "type": "uint256"
859
+ }
860
+ ],
861
+ "name": "transferFrom",
862
+ "outputs": [
863
+ {
864
+ "internalType": "bool",
865
+ "name": "",
866
+ "type": "bool"
867
+ }
868
+ ],
869
+ "stateMutability": "nonpayable",
870
+ "type": "function"
871
+ },
872
+ {
873
+ "inputs": [],
874
+ "name": "updateAvatar",
875
+ "outputs": [],
876
+ "stateMutability": "nonpayable",
877
+ "type": "function"
878
+ },
879
+ {
880
+ "inputs": [
881
+ {
882
+ "internalType": "address",
883
+ "name": "",
884
+ "type": "address"
885
+ }
886
+ ],
887
+ "name": "users",
888
+ "outputs": [
889
+ {
890
+ "internalType": "uint128",
891
+ "name": "amount",
892
+ "type": "uint128"
893
+ },
894
+ {
895
+ "internalType": "uint128",
896
+ "name": "effectiveStakes",
897
+ "type": "uint128"
898
+ },
899
+ {
900
+ "internalType": "uint128",
901
+ "name": "rewardDebt",
902
+ "type": "uint128"
903
+ },
904
+ {
905
+ "internalType": "uint128",
906
+ "name": "rewardEarn",
907
+ "type": "uint128"
908
+ },
909
+ {
910
+ "internalType": "uint128",
911
+ "name": "rewardMinted",
912
+ "type": "uint128"
913
+ },
914
+ {
915
+ "internalType": "uint64",
916
+ "name": "lastRewardTime",
917
+ "type": "uint64"
918
+ },
919
+ {
920
+ "internalType": "uint64",
921
+ "name": "multiplierResetTime",
922
+ "type": "uint64"
923
+ }
924
+ ],
925
+ "stateMutability": "view",
926
+ "type": "function"
927
+ },
928
+ {
929
+ "inputs": [],
930
+ "name": "withdrawRewards",
931
+ "outputs": [],
932
+ "stateMutability": "nonpayable",
933
+ "type": "function"
934
+ },
935
+ {
936
+ "inputs": [
937
+ {
938
+ "internalType": "uint256",
939
+ "name": "_amount",
940
+ "type": "uint256"
941
+ },
942
+ {
943
+ "internalType": "bool",
944
+ "name": "_inInterestToken",
945
+ "type": "bool"
946
+ }
947
+ ],
948
+ "name": "withdrawStake",
949
+ "outputs": [],
950
+ "stateMutability": "nonpayable",
951
+ "type": "function"
952
+ }
953
+ ],
954
+ "bytecode": "0x",
955
+ "deployedBytecode": "0x",
956
+ "linkReferences": {},
957
+ "deployedLinkReferences": {}
958
+ }