@ballkidz/defifa 0.0.6 → 0.0.8

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 (47) hide show
  1. package/ADMINISTRATION.md +3 -3
  2. package/AUDIT_INSTRUCTIONS.md +422 -0
  3. package/CRYPTO_ECON.md +5 -5
  4. package/RISKS.md +38 -335
  5. package/SKILLS.md +1 -1
  6. package/STYLE_GUIDE.md +14 -1
  7. package/USER_JOURNEYS.md +691 -0
  8. package/package.json +7 -5
  9. package/script/Deploy.s.sol +26 -13
  10. package/script/helpers/DefifaDeploymentLib.sol +30 -14
  11. package/src/DefifaDeployer.sol +225 -187
  12. package/src/DefifaGovernor.sol +291 -281
  13. package/src/DefifaHook.sol +81 -42
  14. package/src/DefifaProjectOwner.sol +27 -4
  15. package/src/DefifaTokenUriResolver.sol +137 -134
  16. package/src/enums/DefifaGamePhase.sol +1 -1
  17. package/src/enums/DefifaScorecardState.sol +1 -1
  18. package/src/interfaces/IDefifaDeployer.sol +52 -50
  19. package/src/interfaces/IDefifaGamePhaseReporter.sol +2 -2
  20. package/src/interfaces/IDefifaGamePotReporter.sol +1 -1
  21. package/src/interfaces/IDefifaGovernor.sol +53 -54
  22. package/src/interfaces/IDefifaHook.sol +104 -103
  23. package/src/interfaces/IDefifaTokenUriResolver.sol +2 -2
  24. package/src/libraries/DefifaFontImporter.sol +11 -9
  25. package/src/libraries/DefifaHookLib.sol +68 -53
  26. package/src/structs/DefifaAttestations.sol +1 -1
  27. package/src/structs/DefifaDelegation.sol +1 -1
  28. package/src/structs/DefifaLaunchProjectData.sol +4 -4
  29. package/src/structs/DefifaOpsData.sol +1 -1
  30. package/src/structs/DefifaScorecard.sol +1 -1
  31. package/src/structs/DefifaTierCashOutWeight.sol +1 -1
  32. package/src/structs/DefifaTierParams.sol +2 -1
  33. package/test/DefifaAdversarialQuorum.t.sol +602 -0
  34. package/test/DefifaAuditLowGuards.t.sol +304 -0
  35. package/test/DefifaFeeAccounting.t.sol +37 -16
  36. package/test/DefifaGovernor.t.sol +37 -11
  37. package/test/DefifaHookRegressions.t.sol +14 -12
  38. package/test/DefifaMintCostInvariant.t.sol +31 -12
  39. package/test/DefifaNoContest.t.sol +33 -13
  40. package/test/DefifaSecurity.t.sol +45 -25
  41. package/test/DefifaUSDC.t.sol +44 -34
  42. package/test/Fork.t.sol +42 -40
  43. package/test/SVG.t.sol +2 -2
  44. package/test/TestAuditGaps.sol +982 -0
  45. package/test/TestQALastMile.t.sol +511 -0
  46. package/test/regression/FulfillmentBlocksRatification.t.sol +36 -30
  47. package/test/regression/GracePeriodBypass.t.sol +15 -10
@@ -1,8 +1,7 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity 0.8.26;
3
3
 
4
- import "forge-std/Test.sol";
5
- import "@bananapus/core-v6/test/helpers/TestBaseWorkflow.sol";
4
+ import {TestBaseWorkflow} from "@bananapus/core-v6/test/helpers/TestBaseWorkflow.sol";
6
5
 
7
6
  import {DefifaGovernor} from "../../src/DefifaGovernor.sol";
8
7
  import {DefifaDeployer} from "../../src/DefifaDeployer.sol";
@@ -11,24 +10,29 @@ import {DefifaTokenUriResolver} from "../../src/DefifaTokenUriResolver.sol";
11
10
  import {DefifaScorecardState} from "../../src/enums/DefifaScorecardState.sol";
12
11
  import {JB721TiersHookStore} from "@bananapus/721-hook-v6/src/JB721TiersHookStore.sol";
13
12
 
14
- import {JBMetadataResolver} from "@bananapus/core-v6/src/libraries/JBMetadataResolver.sol";
15
- import {MetadataResolverHelper} from "@bananapus/core-v6/test/helpers/MetadataResolverHelper.sol";
16
13
  import {JBTest} from "@bananapus/core-v6/test/helpers/JBTest.sol";
17
14
  import {JBRulesetMetadataResolver} from "@bananapus/core-v6/src/libraries/JBRulesetMetadataResolver.sol";
18
- import {
19
- JB721TiersRulesetMetadataResolver
20
- } from "@bananapus/721-hook-v6/src/libraries/JB721TiersRulesetMetadataResolver.sol";
15
+ import {JBRuleset} from "@bananapus/core-v6/src/structs/JBRuleset.sol";
21
16
  import {JBAddressRegistry} from "@bananapus/address-registry-v6/src/JBAddressRegistry.sol";
22
17
 
23
18
  import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
24
19
  import {ITypeface} from "lib/typeface/contracts/interfaces/ITypeface.sol";
25
20
  import {IJB721TokenUriResolver} from "@bananapus/721-hook-v6/src/interfaces/IJB721TokenUriResolver.sol";
26
- import {JB721Tier} from "@bananapus/721-hook-v6/src/structs/JB721Tier.sol";
27
21
  import {Strings} from "@openzeppelin/contracts/utils/Strings.sol";
28
22
  import {DefifaDelegation} from "../../src/structs/DefifaDelegation.sol";
29
23
  import {DefifaLaunchProjectData} from "../../src/structs/DefifaLaunchProjectData.sol";
30
24
  import {DefifaTierParams} from "../../src/structs/DefifaTierParams.sol";
31
25
  import {DefifaTierCashOutWeight} from "../../src/structs/DefifaTierCashOutWeight.sol";
26
+ import {JBAccountingContext} from "@bananapus/core-v6/src/structs/JBAccountingContext.sol";
27
+ import {JBTerminalConfig} from "@bananapus/core-v6/src/structs/JBTerminalConfig.sol";
28
+ import {JBRulesetConfig} from "@bananapus/core-v6/src/structs/JBRulesetConfig.sol";
29
+ import {JBRulesetMetadata} from "@bananapus/core-v6/src/structs/JBRulesetMetadata.sol";
30
+ import {JBSplitGroup} from "@bananapus/core-v6/src/structs/JBSplitGroup.sol";
31
+ import {JBFundAccessLimitGroup} from "@bananapus/core-v6/src/structs/JBFundAccessLimitGroup.sol";
32
+ import {JBSplit} from "@bananapus/core-v6/src/structs/JBSplit.sol";
33
+ import {JBConstants} from "@bananapus/core-v6/src/libraries/JBConstants.sol";
34
+ import {JBCurrencyIds} from "@bananapus/core-v6/src/libraries/JBCurrencyIds.sol";
35
+ import {IJBRulesetApprovalHook} from "@bananapus/core-v6/src/interfaces/IJBRulesetApprovalHook.sol";
32
36
 
33
37
  /// @dev Helper to read block.timestamp via an external call, bypassing the via-ir optimizer's timestamp caching.
34
38
  contract TimestampReader2 {
@@ -116,10 +120,10 @@ contract GracePeriodBypass is JBTest, TestBaseWorkflow {
116
120
  );
117
121
  governor = new DefifaGovernor(jbController(), address(this));
118
122
  JBAddressRegistry _registry = new JBAddressRegistry();
119
- DefifaTokenUriResolver _tokenURIResolver = new DefifaTokenUriResolver(ITypeface(address(0)));
123
+ DefifaTokenUriResolver _tokenUriResolver = new DefifaTokenUriResolver(ITypeface(address(0)));
120
124
  deployer = new DefifaDeployer(
121
125
  address(hook),
122
- _tokenURIResolver,
126
+ _tokenUriResolver,
123
127
  governor,
124
128
  jbController(),
125
129
  _registry,
@@ -154,6 +158,7 @@ contract GracePeriodBypass is JBTest, TestBaseWorkflow {
154
158
  vm.deal(_users[i], 1 ether);
155
159
 
156
160
  uint16[] memory rawMetadata = new uint16[](1);
161
+ // forge-lint: disable-next-line(unsafe-typecast)
157
162
  rawMetadata[0] = uint16(i + 1);
158
163
  bytes memory metadata = _buildPayMetadata(abi.encode(_users[i], rawMetadata));
159
164