@gooddollar/goodprotocol 2.0.12 → 2.0.13

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 (178) hide show
  1. package/artifacts/abis/AdminWallet.min.json +1 -1
  2. package/artifacts/abis/AdminWalletFuse.min.json +1 -1
  3. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  4. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  5. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  6. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  7. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  8. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  9. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  10. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  11. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  12. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  13. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  14. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  15. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  16. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  32. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  33. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  34. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  35. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  36. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  37. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  38. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  39. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
  40. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
  41. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  42. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  43. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  44. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  45. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  47. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  48. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  49. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  50. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  51. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  52. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  53. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  54. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  55. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  56. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  57. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  58. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  59. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  60. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  61. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  62. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  63. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  64. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  65. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  66. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
  67. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  68. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  69. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  70. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  71. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  72. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  73. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  74. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  75. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  76. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  77. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  79. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  83. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  84. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  85. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  87. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  88. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  91. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  92. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  93. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  94. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  95. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  96. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  97. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  98. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  99. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  100. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  101. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  102. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  103. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  104. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  105. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  106. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  107. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  108. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  109. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  110. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  111. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  112. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  113. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  114. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  115. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  116. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  117. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +1 -1
  118. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  119. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  120. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  121. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  122. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  123. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  124. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  125. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  126. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  127. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  128. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  129. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  130. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  131. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  132. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  133. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +41 -2
  134. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  135. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.json +35 -9
  136. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  137. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  138. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  139. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
  140. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
  141. package/artifacts/contracts/utils/BuyGDClone.sol/ISwapRouter.dbg.json +1 -1
  142. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  143. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  144. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  145. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  146. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
  147. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  148. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  149. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  150. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  151. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
  152. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  153. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  154. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  155. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  156. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
  157. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  158. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  159. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  160. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  161. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  162. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  163. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  164. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  165. package/contracts/utils/AdminWallet.sol +21 -10
  166. package/contracts/utils/AdminWalletFuse.sol +19 -14
  167. package/hardhat.config.ts +4 -0
  168. package/package.json +1 -1
  169. package/releases/deployment.json +3 -1
  170. package/scripts/analytics/checkActiveWallets.ts +60 -0
  171. package/scripts/analytics/faucetStats.ts +21 -34
  172. package/scripts/multichain-deploy/helpers.ts +2 -2
  173. package/scripts/upgrades/upgradeAdminWallet.ts +29 -0
  174. package/test/utils/AdminWallet.test.ts +49 -101
  175. package/types/AdminWallet.ts +59 -0
  176. package/types/AdminWalletFuse.ts +41 -7
  177. package/types/factories/AdminWalletFuse__factory.ts +34 -8
  178. package/types/factories/AdminWallet__factory.ts +40 -1
@@ -24,35 +24,23 @@ describe("AdminWallet", () => {
24
24
  stranger,
25
25
  stranger2,
26
26
  blacklisted,
27
- identity;
27
+ identity,
28
+ gooddollar;
28
29
 
29
30
  before(async () => {
30
31
  signers = await ethers.getSigners();
31
32
  founder = signers[0];
32
- [
33
- whitelisted,
34
- stranger,
35
- stranger2,
36
- blacklisted,
37
- newUser,
38
- newUser2,
39
- admin,
40
- admin2,
41
- toWhitelist
42
- ] = signers.slice(10);
43
- let { identity: id, nameService } = await loadFixture(createDAO);
33
+ [whitelisted, stranger, stranger2, blacklisted, newUser, newUser2, admin, admin2, toWhitelist] = signers.slice(10);
34
+ let { identity: id, nameService, gd } = await loadFixture(createDAO);
44
35
  identity = await ethers.getContractAt("IdentityV2", id);
45
-
36
+ gooddollar = await ethers.getContractAt("GoodDollar", gd);
46
37
  adminWallet = (await upgrades.deployProxy(
47
38
  await ethers.getContractFactory("AdminWallet"),
48
39
  [[], nameService.address, signers[0].address, 1e10],
49
40
  { kind: "uups" }
50
41
  )) as AdminWallet;
51
42
 
52
- await identity.grantRole(
53
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes("identity_admin")),
54
- adminWallet.address
55
- );
43
+ await identity.grantRole(ethers.utils.keccak256(ethers.utils.toUtf8Bytes("identity_admin")), adminWallet.address);
56
44
 
57
45
  toppingTimes = await adminWallet.toppingTimes();
58
46
  toppingAmount = await adminWallet.toppingAmount();
@@ -92,21 +80,15 @@ describe("AdminWallet", () => {
92
80
  });
93
81
 
94
82
  it("should have owner", async () => {
95
- expect(
96
- await adminWallet.hasRole(ethers.constants.HashZero, signers[0].address)
97
- ).to.eq(true);
83
+ expect(await adminWallet.hasRole(ethers.constants.HashZero, signers[0].address)).to.eq(true);
98
84
  });
99
85
 
100
86
  it("should not top admin list when empty", async () => {
101
- await expect(adminWallet["topAdmins(uint256)"](0)).revertedWith(
102
- "Admin list is empty"
103
- );
87
+ await expect(adminWallet["topAdmins(uint256)"](0)).revertedWith("Admin list is empty");
104
88
  });
105
89
 
106
90
  it("should add admins", async () => {
107
- await adminWallet.addAdmins(
108
- [whitelisted, admin, admin2].map(_ => _.address)
109
- );
91
+ await adminWallet.addAdmins([whitelisted, admin, admin2].map(_ => _.address));
110
92
  expect(await adminWallet.isAdmin(whitelisted.address)).true;
111
93
  expect(await adminWallet.isAdmin(admin.address)).to.true;
112
94
  expect(await adminWallet.isAdmin(admin2.address)).to.true;
@@ -123,22 +105,14 @@ describe("AdminWallet", () => {
123
105
  expect(await ethers.provider.getBalance(admin2.address)).eq(0);
124
106
  await adminWallet["topAdmins(uint256)"](0);
125
107
  const newBalance = await ethers.provider.getBalance(admin2.address);
126
- const adminTopAmount = await adminWallet
127
- .adminToppingAmount()
128
- .then(_ => _.toString());
108
+ const adminTopAmount = await adminWallet.adminToppingAmount().then(_ => _.toString());
129
109
  expect(newBalance).to.be.equal(adminTopAmount);
130
110
  });
131
111
 
132
112
  it("should reimburse gas for admins", async () => {
133
- const expectedTopping = await adminWallet
134
- .adminToppingAmount()
135
- .then(_ => _.toString());
136
- const adminWalletBalance = await ethers.provider.getBalance(
137
- adminWallet.address
138
- );
139
- expect(expectedTopping).to.be.equal(
140
- ethers.utils.parseUnits("90000000", "gwei")
141
- );
113
+ const expectedTopping = await adminWallet.adminToppingAmount().then(_ => _.toString());
114
+ const adminWalletBalance = await ethers.provider.getBalance(adminWallet.address);
115
+ expect(expectedTopping).to.be.equal(ethers.utils.parseUnits("90000000", "gwei"));
142
116
  expect(adminWalletBalance).gt(1);
143
117
  let oldBalance = await ethers.provider.getBalance(admin2.address);
144
118
  let toTransfer = oldBalance.div(2);
@@ -150,12 +124,7 @@ describe("AdminWallet", () => {
150
124
  oldBalance = await ethers.provider.getBalance(admin2.address);
151
125
  expect(oldBalance).to.be.lte(toTransfer);
152
126
 
153
- await adminWallet
154
- .connect(admin2)
155
- ["whitelist(address,string)"](
156
- toWhitelist.address,
157
- "did:test" + Math.random()
158
- );
127
+ await adminWallet.connect(admin2)["whitelist(address,string)"](toWhitelist.address, "did:test" + Math.random());
159
128
  const newBalance = await ethers.provider.getBalance(admin2.address);
160
129
  expect(newBalance).to.be.gte(expectedTopping);
161
130
  });
@@ -167,9 +136,7 @@ describe("AdminWallet", () => {
167
136
 
168
137
  it("should allow admin to whitelist and remove whitelist", async () => {
169
138
  expect(await identity.isWhitelisted(whitelisted.address)).to.false;
170
- await adminWallet
171
- .connect(admin)
172
- ["whitelist(address,string)"](whitelisted.address, "did:test");
139
+ await adminWallet.connect(admin)["whitelist(address,string)"](whitelisted.address, "did:test");
173
140
 
174
141
  expect(await identity.isWhitelisted(whitelisted.address)).to.true;
175
142
  await adminWallet.connect(admin).removeWhitelist(whitelisted.address);
@@ -179,18 +146,14 @@ describe("AdminWallet", () => {
179
146
  it("should not allow non-admin to whitelist and remove whitelist", async () => {
180
147
  expect(await identity.isWhitelisted(whitelisted.address)).to.false;
181
148
  await expect(
182
- adminWallet
183
- .connect(stranger)
184
- ["whitelist(address,string)"](whitelisted.address, "did:test")
149
+ adminWallet.connect(stranger)["whitelist(address,string)"](whitelisted.address, "did:test")
185
150
  ).revertedWith("Caller is not admin");
186
151
  expect(await identity.isWhitelisted(whitelisted.address)).to.false;
187
- await adminWallet
188
- .connect(admin)
189
- ["whitelist(address,string)"](whitelisted.address, "did:test");
152
+ await adminWallet.connect(admin)["whitelist(address,string)"](whitelisted.address, "did:test");
190
153
  expect(await identity.isWhitelisted(whitelisted.address)).to.true;
191
- await expect(
192
- adminWallet.connect(stranger).removeWhitelist(whitelisted.address)
193
- ).revertedWith("Caller is not admin");
154
+ await expect(adminWallet.connect(stranger).removeWhitelist(whitelisted.address)).revertedWith(
155
+ "Caller is not admin"
156
+ );
194
157
  expect(await identity.isWhitelisted(whitelisted.address)).to.true;
195
158
  });
196
159
 
@@ -205,15 +168,13 @@ describe("AdminWallet", () => {
205
168
 
206
169
  it("should not allow non-admin to blacklist and remove blacklist", async () => {
207
170
  expect(await identity.isBlacklisted(blacklisted.address)).to.false;
208
- await expect(
209
- adminWallet.connect(stranger).blacklist(blacklisted.address)
210
- ).revertedWith("Caller is not admin");
171
+ await expect(adminWallet.connect(stranger).blacklist(blacklisted.address)).revertedWith("Caller is not admin");
211
172
  expect(await identity.isBlacklisted(blacklisted.address)).to.false;
212
173
  await adminWallet.connect(admin).blacklist(blacklisted.address);
213
174
  expect(await identity.isBlacklisted(blacklisted.address)).to.true;
214
- await expect(
215
- adminWallet.connect(stranger).removeBlacklist(blacklisted.address)
216
- ).revertedWith("Caller is not admin");
175
+ await expect(adminWallet.connect(stranger).removeBlacklist(blacklisted.address)).revertedWith(
176
+ "Caller is not admin"
177
+ );
217
178
  expect(await identity.isBlacklisted(blacklisted.address)).to.true;
218
179
  await adminWallet.connect(admin).removeBlacklist(blacklisted.address);
219
180
  expect(await identity.isBlacklisted(blacklisted.address)).to.false;
@@ -221,18 +182,20 @@ describe("AdminWallet", () => {
221
182
 
222
183
  it("should not allow to top wallet if user balance is too high", async () => {
223
184
  const walletBalance = await ethers.provider.getBalance(adminWallet.address);
224
- const tx = await (
225
- await adminWallet.connect(admin).topWallet(whitelisted.address)
226
- ).wait();
227
- const walletBalanceAfter = await ethers.provider.getBalance(
228
- adminWallet.address
229
- );
185
+ const tx = await (await adminWallet.connect(admin).topWallet(whitelisted.address)).wait();
186
+ const walletBalanceAfter = await ethers.provider.getBalance(adminWallet.address);
230
187
  expect(walletBalance).eq(walletBalanceAfter);
231
188
  expect(tx.logs.length).eq(0);
232
189
  });
233
190
 
234
- it("should allow to top wallet", async () => {
191
+ it("should not allow to top wallet if user gd balance unchanged", async () => {
235
192
  expect(await ethers.provider.getBalance(newUser.address)).eq(0);
193
+ await expect(adminWallet.connect(admin).topWallet(newUser.address)).revertedWith("User has not used G$");
194
+ });
195
+
196
+ it("should allow to top wallet if user gd balance changed", async () => {
197
+ expect(await ethers.provider.getBalance(newUser.address)).eq(0);
198
+ await gooddollar.mint(newUser.address, 1);
236
199
  await adminWallet.connect(admin).topWallet(newUser.address);
237
200
  expect(await ethers.provider.getBalance(newUser.address)).gt(0);
238
201
  await newUser.sendTransaction({
@@ -242,6 +205,7 @@ describe("AdminWallet", () => {
242
205
  });
243
206
 
244
207
  it("should not allow to top wallet more than three times", async () => {
208
+ await gooddollar.mint(newUser.address, 1);
245
209
  await adminWallet.connect(admin).topWallet(newUser.address);
246
210
  await newUser.sendTransaction({
247
211
  to: adminWallet.address,
@@ -251,56 +215,40 @@ describe("AdminWallet", () => {
251
215
  to: admin2.address,
252
216
  value: toppingAmount / 5
253
217
  });
218
+ await gooddollar.mint(newUser.address, 1);
254
219
  await adminWallet.connect(admin).topWallet(newUser.address);
255
220
  await newUser.sendTransaction({
256
221
  to: adminWallet.address,
257
222
  value: toppingAmount * 0.9
258
223
  });
259
224
 
260
- await expect(
261
- adminWallet.connect(admin).topWallet(newUser.address)
262
- ).revertedWith("User wallet has been topped too many times today");
225
+ await gooddollar.mint(newUser.address, 1);
226
+ await expect(adminWallet.connect(admin).topWallet(newUser.address)).revertedWith(
227
+ "User wallet has been topped too many times today"
228
+ );
263
229
  });
264
230
 
265
231
  it("should whitelist user", async () => {
266
232
  expect(await identity.isWhitelisted(stranger2.address)).to.false;
267
- await adminWallet
268
- .connect(admin2)
269
- ["whitelist(address,string)"](stranger2.address, "did:test3");
233
+ await adminWallet.connect(admin2)["whitelist(address,string)"](stranger2.address, "did:test3");
270
234
  expect(await identity.isWhitelisted(stranger2.address)).to.true;
271
235
  });
272
236
 
273
237
  it("should not allow whitelisting with existing did", async () => {
274
- await expect(
275
- adminWallet
276
- .connect(admin2)
277
- ["whitelist(address,string)"](stranger.address, "did:test")
278
- ).revertedWith("DID already registered");
238
+ await expect(adminWallet.connect(admin2)["whitelist(address,string)"](stranger.address, "did:test")).revertedWith(
239
+ "DID already registered"
240
+ );
279
241
  });
280
242
 
281
243
  it("should not allow anyone to upgrade", async () => {
282
- await expect(
283
- adminWallet.connect(admin2).upgradeTo(adminWallet.address)
284
- ).revertedWith("not owner");
244
+ await expect(adminWallet.connect(admin2).upgradeTo(adminWallet.address)).revertedWith("not owner");
285
245
  });
286
246
 
287
247
  it("should allow owner to upgrade", async () => {
288
- const newver = await (
289
- await ethers.getContractFactory("AdminWallet")
290
- ).deploy();
291
- await expect(adminWallet.connect(founder).upgradeTo(newver.address)).not
292
- .reverted;
293
-
294
- await upgrades.forceImport(
295
- adminWallet.address,
296
- await ethers.getContractFactory("AdminWallet"),
297
- { kind: "uups" }
298
- );
299
- await expect(
300
- upgrades.upgradeProxy(
301
- adminWallet.address,
302
- await ethers.getContractFactory("AdminWallet")
303
- )
304
- ).not.throws;
248
+ const newver = await (await ethers.getContractFactory("AdminWallet")).deploy();
249
+ await expect(adminWallet.connect(founder).upgradeTo(newver.address)).not.reverted;
250
+
251
+ await upgrades.forceImport(adminWallet.address, await ethers.getContractFactory("AdminWallet"), { kind: "uups" });
252
+ await expect(upgrades.upgradeProxy(adminWallet.address, await ethers.getContractFactory("AdminWallet"))).not.throws;
305
253
  });
306
254
  });
@@ -34,6 +34,7 @@ export interface AdminWalletInterface extends ethers.utils.Interface {
34
34
  "blacklist(address)": FunctionFragment;
35
35
  "day()": FunctionFragment;
36
36
  "gasPrice()": FunctionFragment;
37
+ "gd()": FunctionFragment;
37
38
  "genericCall(address,bytes,uint256)": FunctionFragment;
38
39
  "getIdentity()": FunctionFragment;
39
40
  "getRoleAdmin(bytes32)": FunctionFragment;
@@ -41,6 +42,7 @@ export interface AdminWalletInterface extends ethers.utils.Interface {
41
42
  "hasRole(bytes32,address)": FunctionFragment;
42
43
  "initialize(address[],address,address,uint256)": FunctionFragment;
43
44
  "isAdmin(address)": FunctionFragment;
45
+ "lastGdBalance(address)": FunctionFragment;
44
46
  "maxDailyNewWallets()": FunctionFragment;
45
47
  "nameService()": FunctionFragment;
46
48
  "proxiableUUID()": FunctionFragment;
@@ -55,6 +57,7 @@ export interface AdminWalletInterface extends ethers.utils.Interface {
55
57
  "topWallet(address)": FunctionFragment;
56
58
  "toppingAmount()": FunctionFragment;
57
59
  "toppingTimes()": FunctionFragment;
60
+ "upgrade()": FunctionFragment;
58
61
  "upgradeTo(address)": FunctionFragment;
59
62
  "upgradeToAndCall(address,bytes)": FunctionFragment;
60
63
  "whitelist(address,string)": FunctionFragment;
@@ -76,6 +79,7 @@ export interface AdminWalletInterface extends ethers.utils.Interface {
76
79
  encodeFunctionData(functionFragment: "blacklist", values: [string]): string;
77
80
  encodeFunctionData(functionFragment: "day", values?: undefined): string;
78
81
  encodeFunctionData(functionFragment: "gasPrice", values?: undefined): string;
82
+ encodeFunctionData(functionFragment: "gd", values?: undefined): string;
79
83
  encodeFunctionData(
80
84
  functionFragment: "genericCall",
81
85
  values: [string, BytesLike, BigNumberish]
@@ -101,6 +105,10 @@ export interface AdminWalletInterface extends ethers.utils.Interface {
101
105
  values: [string[], string, string, BigNumberish]
102
106
  ): string;
103
107
  encodeFunctionData(functionFragment: "isAdmin", values: [string]): string;
108
+ encodeFunctionData(
109
+ functionFragment: "lastGdBalance",
110
+ values: [string]
111
+ ): string;
104
112
  encodeFunctionData(
105
113
  functionFragment: "maxDailyNewWallets",
106
114
  values?: undefined
@@ -154,6 +162,7 @@ export interface AdminWalletInterface extends ethers.utils.Interface {
154
162
  functionFragment: "toppingTimes",
155
163
  values?: undefined
156
164
  ): string;
165
+ encodeFunctionData(functionFragment: "upgrade", values?: undefined): string;
157
166
  encodeFunctionData(functionFragment: "upgradeTo", values: [string]): string;
158
167
  encodeFunctionData(
159
168
  functionFragment: "upgradeToAndCall",
@@ -180,6 +189,7 @@ export interface AdminWalletInterface extends ethers.utils.Interface {
180
189
  decodeFunctionResult(functionFragment: "blacklist", data: BytesLike): Result;
181
190
  decodeFunctionResult(functionFragment: "day", data: BytesLike): Result;
182
191
  decodeFunctionResult(functionFragment: "gasPrice", data: BytesLike): Result;
192
+ decodeFunctionResult(functionFragment: "gd", data: BytesLike): Result;
183
193
  decodeFunctionResult(
184
194
  functionFragment: "genericCall",
185
195
  data: BytesLike
@@ -196,6 +206,10 @@ export interface AdminWalletInterface extends ethers.utils.Interface {
196
206
  decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
197
207
  decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
198
208
  decodeFunctionResult(functionFragment: "isAdmin", data: BytesLike): Result;
209
+ decodeFunctionResult(
210
+ functionFragment: "lastGdBalance",
211
+ data: BytesLike
212
+ ): Result;
199
213
  decodeFunctionResult(
200
214
  functionFragment: "maxDailyNewWallets",
201
215
  data: BytesLike
@@ -243,6 +257,7 @@ export interface AdminWalletInterface extends ethers.utils.Interface {
243
257
  functionFragment: "toppingTimes",
244
258
  data: BytesLike
245
259
  ): Result;
260
+ decodeFunctionResult(functionFragment: "upgrade", data: BytesLike): Result;
246
261
  decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result;
247
262
  decodeFunctionResult(
248
263
  functionFragment: "upgradeToAndCall",
@@ -387,6 +402,8 @@ export interface AdminWallet extends BaseContract {
387
402
 
388
403
  gasPrice(overrides?: CallOverrides): Promise<[BigNumber]>;
389
404
 
405
+ gd(overrides?: CallOverrides): Promise<[string]>;
406
+
390
407
  genericCall(
391
408
  _contract: string,
392
409
  _data: BytesLike,
@@ -420,6 +437,11 @@ export interface AdminWallet extends BaseContract {
420
437
 
421
438
  isAdmin(_user: string, overrides?: CallOverrides): Promise<[boolean]>;
422
439
 
440
+ lastGdBalance(
441
+ arg0: string,
442
+ overrides?: CallOverrides
443
+ ): Promise<[BigNumber]>;
444
+
423
445
  maxDailyNewWallets(overrides?: CallOverrides): Promise<[BigNumber]>;
424
446
 
425
447
  nameService(overrides?: CallOverrides): Promise<[string]>;
@@ -486,6 +508,10 @@ export interface AdminWallet extends BaseContract {
486
508
 
487
509
  toppingTimes(overrides?: CallOverrides): Promise<[BigNumber]>;
488
510
 
511
+ upgrade(
512
+ overrides?: Overrides & { from?: string | Promise<string> }
513
+ ): Promise<ContractTransaction>;
514
+
489
515
  upgradeTo(
490
516
  newImplementation: string,
491
517
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -532,6 +558,8 @@ export interface AdminWallet extends BaseContract {
532
558
 
533
559
  gasPrice(overrides?: CallOverrides): Promise<BigNumber>;
534
560
 
561
+ gd(overrides?: CallOverrides): Promise<string>;
562
+
535
563
  genericCall(
536
564
  _contract: string,
537
565
  _data: BytesLike,
@@ -565,6 +593,8 @@ export interface AdminWallet extends BaseContract {
565
593
 
566
594
  isAdmin(_user: string, overrides?: CallOverrides): Promise<boolean>;
567
595
 
596
+ lastGdBalance(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
597
+
568
598
  maxDailyNewWallets(overrides?: CallOverrides): Promise<BigNumber>;
569
599
 
570
600
  nameService(overrides?: CallOverrides): Promise<string>;
@@ -631,6 +661,10 @@ export interface AdminWallet extends BaseContract {
631
661
 
632
662
  toppingTimes(overrides?: CallOverrides): Promise<BigNumber>;
633
663
 
664
+ upgrade(
665
+ overrides?: Overrides & { from?: string | Promise<string> }
666
+ ): Promise<ContractTransaction>;
667
+
634
668
  upgradeTo(
635
669
  newImplementation: string,
636
670
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -671,6 +705,8 @@ export interface AdminWallet extends BaseContract {
671
705
 
672
706
  gasPrice(overrides?: CallOverrides): Promise<BigNumber>;
673
707
 
708
+ gd(overrides?: CallOverrides): Promise<string>;
709
+
674
710
  genericCall(
675
711
  _contract: string,
676
712
  _data: BytesLike,
@@ -704,6 +740,8 @@ export interface AdminWallet extends BaseContract {
704
740
 
705
741
  isAdmin(_user: string, overrides?: CallOverrides): Promise<boolean>;
706
742
 
743
+ lastGdBalance(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
744
+
707
745
  maxDailyNewWallets(overrides?: CallOverrides): Promise<BigNumber>;
708
746
 
709
747
  nameService(overrides?: CallOverrides): Promise<string>;
@@ -758,6 +796,8 @@ export interface AdminWallet extends BaseContract {
758
796
 
759
797
  toppingTimes(overrides?: CallOverrides): Promise<BigNumber>;
760
798
 
799
+ upgrade(overrides?: CallOverrides): Promise<void>;
800
+
761
801
  upgradeTo(
762
802
  newImplementation: string,
763
803
  overrides?: CallOverrides
@@ -887,6 +927,8 @@ export interface AdminWallet extends BaseContract {
887
927
 
888
928
  gasPrice(overrides?: CallOverrides): Promise<BigNumber>;
889
929
 
930
+ gd(overrides?: CallOverrides): Promise<BigNumber>;
931
+
890
932
  genericCall(
891
933
  _contract: string,
892
934
  _data: BytesLike,
@@ -923,6 +965,8 @@ export interface AdminWallet extends BaseContract {
923
965
 
924
966
  isAdmin(_user: string, overrides?: CallOverrides): Promise<BigNumber>;
925
967
 
968
+ lastGdBalance(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
969
+
926
970
  maxDailyNewWallets(overrides?: CallOverrides): Promise<BigNumber>;
927
971
 
928
972
  nameService(overrides?: CallOverrides): Promise<BigNumber>;
@@ -989,6 +1033,10 @@ export interface AdminWallet extends BaseContract {
989
1033
 
990
1034
  toppingTimes(overrides?: CallOverrides): Promise<BigNumber>;
991
1035
 
1036
+ upgrade(
1037
+ overrides?: Overrides & { from?: string | Promise<string> }
1038
+ ): Promise<BigNumber>;
1039
+
992
1040
  upgradeTo(
993
1041
  newImplementation: string,
994
1042
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -1040,6 +1088,8 @@ export interface AdminWallet extends BaseContract {
1040
1088
 
1041
1089
  gasPrice(overrides?: CallOverrides): Promise<PopulatedTransaction>;
1042
1090
 
1091
+ gd(overrides?: CallOverrides): Promise<PopulatedTransaction>;
1092
+
1043
1093
  genericCall(
1044
1094
  _contract: string,
1045
1095
  _data: BytesLike,
@@ -1079,6 +1129,11 @@ export interface AdminWallet extends BaseContract {
1079
1129
  overrides?: CallOverrides
1080
1130
  ): Promise<PopulatedTransaction>;
1081
1131
 
1132
+ lastGdBalance(
1133
+ arg0: string,
1134
+ overrides?: CallOverrides
1135
+ ): Promise<PopulatedTransaction>;
1136
+
1082
1137
  maxDailyNewWallets(
1083
1138
  overrides?: CallOverrides
1084
1139
  ): Promise<PopulatedTransaction>;
@@ -1147,6 +1202,10 @@ export interface AdminWallet extends BaseContract {
1147
1202
 
1148
1203
  toppingTimes(overrides?: CallOverrides): Promise<PopulatedTransaction>;
1149
1204
 
1205
+ upgrade(
1206
+ overrides?: Overrides & { from?: string | Promise<string> }
1207
+ ): Promise<PopulatedTransaction>;
1208
+
1150
1209
  upgradeTo(
1151
1210
  newImplementation: string,
1152
1211
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -34,6 +34,7 @@ export interface AdminWalletFuseInterface extends ethers.utils.Interface {
34
34
  "blacklist(address)": FunctionFragment;
35
35
  "day()": FunctionFragment;
36
36
  "gasPrice()": FunctionFragment;
37
+ "gd()": FunctionFragment;
37
38
  "genericCall(address,bytes,uint256)": FunctionFragment;
38
39
  "getIdentity()": FunctionFragment;
39
40
  "getRoleAdmin(bytes32)": FunctionFragment;
@@ -41,6 +42,7 @@ export interface AdminWalletFuseInterface extends ethers.utils.Interface {
41
42
  "hasRole(bytes32,address)": FunctionFragment;
42
43
  "initialize(address[],address,address,uint256)": FunctionFragment;
43
44
  "isAdmin(address)": FunctionFragment;
45
+ "lastGdBalance(address)": FunctionFragment;
44
46
  "maxDailyNewWallets()": FunctionFragment;
45
47
  "nameService()": FunctionFragment;
46
48
  "owner()": FunctionFragment;
@@ -58,7 +60,7 @@ export interface AdminWalletFuseInterface extends ethers.utils.Interface {
58
60
  "toppingAmount()": FunctionFragment;
59
61
  "toppingTimes()": FunctionFragment;
60
62
  "transferOwnership(address)": FunctionFragment;
61
- "upgrade(address)": FunctionFragment;
63
+ "upgrade()": FunctionFragment;
62
64
  "upgradeTo(address)": FunctionFragment;
63
65
  "upgradeToAndCall(address,bytes)": FunctionFragment;
64
66
  "version()": FunctionFragment;
@@ -81,6 +83,7 @@ export interface AdminWalletFuseInterface extends ethers.utils.Interface {
81
83
  encodeFunctionData(functionFragment: "blacklist", values: [string]): string;
82
84
  encodeFunctionData(functionFragment: "day", values?: undefined): string;
83
85
  encodeFunctionData(functionFragment: "gasPrice", values?: undefined): string;
86
+ encodeFunctionData(functionFragment: "gd", values?: undefined): string;
84
87
  encodeFunctionData(
85
88
  functionFragment: "genericCall",
86
89
  values: [string, BytesLike, BigNumberish]
@@ -106,6 +109,10 @@ export interface AdminWalletFuseInterface extends ethers.utils.Interface {
106
109
  values: [string[], string, string, BigNumberish]
107
110
  ): string;
108
111
  encodeFunctionData(functionFragment: "isAdmin", values: [string]): string;
112
+ encodeFunctionData(
113
+ functionFragment: "lastGdBalance",
114
+ values: [string]
115
+ ): string;
109
116
  encodeFunctionData(
110
117
  functionFragment: "maxDailyNewWallets",
111
118
  values?: undefined
@@ -168,7 +175,7 @@ export interface AdminWalletFuseInterface extends ethers.utils.Interface {
168
175
  functionFragment: "transferOwnership",
169
176
  values: [string]
170
177
  ): string;
171
- encodeFunctionData(functionFragment: "upgrade", values: [string]): string;
178
+ encodeFunctionData(functionFragment: "upgrade", values?: undefined): string;
172
179
  encodeFunctionData(functionFragment: "upgradeTo", values: [string]): string;
173
180
  encodeFunctionData(
174
181
  functionFragment: "upgradeToAndCall",
@@ -196,6 +203,7 @@ export interface AdminWalletFuseInterface extends ethers.utils.Interface {
196
203
  decodeFunctionResult(functionFragment: "blacklist", data: BytesLike): Result;
197
204
  decodeFunctionResult(functionFragment: "day", data: BytesLike): Result;
198
205
  decodeFunctionResult(functionFragment: "gasPrice", data: BytesLike): Result;
206
+ decodeFunctionResult(functionFragment: "gd", data: BytesLike): Result;
199
207
  decodeFunctionResult(
200
208
  functionFragment: "genericCall",
201
209
  data: BytesLike
@@ -212,6 +220,10 @@ export interface AdminWalletFuseInterface extends ethers.utils.Interface {
212
220
  decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
213
221
  decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
214
222
  decodeFunctionResult(functionFragment: "isAdmin", data: BytesLike): Result;
223
+ decodeFunctionResult(
224
+ functionFragment: "lastGdBalance",
225
+ data: BytesLike
226
+ ): Result;
215
227
  decodeFunctionResult(
216
228
  functionFragment: "maxDailyNewWallets",
217
229
  data: BytesLike
@@ -424,6 +436,8 @@ export interface AdminWalletFuse extends BaseContract {
424
436
 
425
437
  gasPrice(overrides?: CallOverrides): Promise<[BigNumber]>;
426
438
 
439
+ gd(overrides?: CallOverrides): Promise<[string]>;
440
+
427
441
  genericCall(
428
442
  _contract: string,
429
443
  _data: BytesLike,
@@ -457,6 +471,11 @@ export interface AdminWalletFuse extends BaseContract {
457
471
 
458
472
  isAdmin(_user: string, overrides?: CallOverrides): Promise<[boolean]>;
459
473
 
474
+ lastGdBalance(
475
+ arg0: string,
476
+ overrides?: CallOverrides
477
+ ): Promise<[BigNumber]>;
478
+
460
479
  maxDailyNewWallets(overrides?: CallOverrides): Promise<[BigNumber]>;
461
480
 
462
481
  nameService(overrides?: CallOverrides): Promise<[string]>;
@@ -535,7 +554,6 @@ export interface AdminWalletFuse extends BaseContract {
535
554
  ): Promise<ContractTransaction>;
536
555
 
537
556
  upgrade(
538
- _ns: string,
539
557
  overrides?: Overrides & { from?: string | Promise<string> }
540
558
  ): Promise<ContractTransaction>;
541
559
 
@@ -587,6 +605,8 @@ export interface AdminWalletFuse extends BaseContract {
587
605
 
588
606
  gasPrice(overrides?: CallOverrides): Promise<BigNumber>;
589
607
 
608
+ gd(overrides?: CallOverrides): Promise<string>;
609
+
590
610
  genericCall(
591
611
  _contract: string,
592
612
  _data: BytesLike,
@@ -620,6 +640,8 @@ export interface AdminWalletFuse extends BaseContract {
620
640
 
621
641
  isAdmin(_user: string, overrides?: CallOverrides): Promise<boolean>;
622
642
 
643
+ lastGdBalance(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
644
+
623
645
  maxDailyNewWallets(overrides?: CallOverrides): Promise<BigNumber>;
624
646
 
625
647
  nameService(overrides?: CallOverrides): Promise<string>;
@@ -698,7 +720,6 @@ export interface AdminWalletFuse extends BaseContract {
698
720
  ): Promise<ContractTransaction>;
699
721
 
700
722
  upgrade(
701
- _ns: string,
702
723
  overrides?: Overrides & { from?: string | Promise<string> }
703
724
  ): Promise<ContractTransaction>;
704
725
 
@@ -744,6 +765,8 @@ export interface AdminWalletFuse extends BaseContract {
744
765
 
745
766
  gasPrice(overrides?: CallOverrides): Promise<BigNumber>;
746
767
 
768
+ gd(overrides?: CallOverrides): Promise<string>;
769
+
747
770
  genericCall(
748
771
  _contract: string,
749
772
  _data: BytesLike,
@@ -777,6 +800,8 @@ export interface AdminWalletFuse extends BaseContract {
777
800
 
778
801
  isAdmin(_user: string, overrides?: CallOverrides): Promise<boolean>;
779
802
 
803
+ lastGdBalance(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
804
+
780
805
  maxDailyNewWallets(overrides?: CallOverrides): Promise<BigNumber>;
781
806
 
782
807
  nameService(overrides?: CallOverrides): Promise<string>;
@@ -840,7 +865,7 @@ export interface AdminWalletFuse extends BaseContract {
840
865
  overrides?: CallOverrides
841
866
  ): Promise<void>;
842
867
 
843
- upgrade(_ns: string, overrides?: CallOverrides): Promise<void>;
868
+ upgrade(overrides?: CallOverrides): Promise<void>;
844
869
 
845
870
  upgradeTo(
846
871
  newImplementation: string,
@@ -982,6 +1007,8 @@ export interface AdminWalletFuse extends BaseContract {
982
1007
 
983
1008
  gasPrice(overrides?: CallOverrides): Promise<BigNumber>;
984
1009
 
1010
+ gd(overrides?: CallOverrides): Promise<BigNumber>;
1011
+
985
1012
  genericCall(
986
1013
  _contract: string,
987
1014
  _data: BytesLike,
@@ -1018,6 +1045,8 @@ export interface AdminWalletFuse extends BaseContract {
1018
1045
 
1019
1046
  isAdmin(_user: string, overrides?: CallOverrides): Promise<BigNumber>;
1020
1047
 
1048
+ lastGdBalance(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
1049
+
1021
1050
  maxDailyNewWallets(overrides?: CallOverrides): Promise<BigNumber>;
1022
1051
 
1023
1052
  nameService(overrides?: CallOverrides): Promise<BigNumber>;
@@ -1096,7 +1125,6 @@ export interface AdminWalletFuse extends BaseContract {
1096
1125
  ): Promise<BigNumber>;
1097
1126
 
1098
1127
  upgrade(
1099
- _ns: string,
1100
1128
  overrides?: Overrides & { from?: string | Promise<string> }
1101
1129
  ): Promise<BigNumber>;
1102
1130
 
@@ -1153,6 +1181,8 @@ export interface AdminWalletFuse extends BaseContract {
1153
1181
 
1154
1182
  gasPrice(overrides?: CallOverrides): Promise<PopulatedTransaction>;
1155
1183
 
1184
+ gd(overrides?: CallOverrides): Promise<PopulatedTransaction>;
1185
+
1156
1186
  genericCall(
1157
1187
  _contract: string,
1158
1188
  _data: BytesLike,
@@ -1192,6 +1222,11 @@ export interface AdminWalletFuse extends BaseContract {
1192
1222
  overrides?: CallOverrides
1193
1223
  ): Promise<PopulatedTransaction>;
1194
1224
 
1225
+ lastGdBalance(
1226
+ arg0: string,
1227
+ overrides?: CallOverrides
1228
+ ): Promise<PopulatedTransaction>;
1229
+
1195
1230
  maxDailyNewWallets(
1196
1231
  overrides?: CallOverrides
1197
1232
  ): Promise<PopulatedTransaction>;
@@ -1272,7 +1307,6 @@ export interface AdminWalletFuse extends BaseContract {
1272
1307
  ): Promise<PopulatedTransaction>;
1273
1308
 
1274
1309
  upgrade(
1275
- _ns: string,
1276
1310
  overrides?: Overrides & { from?: string | Promise<string> }
1277
1311
  ): Promise<PopulatedTransaction>;
1278
1312