@croptop/core-v6 0.0.38 → 0.0.39

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 (40) hide show
  1. package/README.md +2 -2
  2. package/foundry.toml +2 -1
  3. package/package.json +25 -13
  4. package/script/ConfigureFeeProject.s.sol +8 -5
  5. package/src/CTDeployer.sol +52 -51
  6. package/src/interfaces/ICTDeployer.sol +2 -2
  7. package/ADMINISTRATION.md +0 -94
  8. package/ARCHITECTURE.md +0 -96
  9. package/AUDIT_INSTRUCTIONS.md +0 -88
  10. package/RISKS.md +0 -78
  11. package/SKILLS.md +0 -46
  12. package/STYLE_GUIDE.md +0 -610
  13. package/USER_JOURNEYS.md +0 -134
  14. package/foundry.lock +0 -11
  15. package/slither-ci.config.json +0 -10
  16. package/sphinx.lock +0 -507
  17. package/test/CTDeployer.t.sol +0 -616
  18. package/test/CTProjectOwner.t.sol +0 -185
  19. package/test/CTPublisher.t.sol +0 -869
  20. package/test/ClaimCollectionOwnership.t.sol +0 -315
  21. package/test/CroptopAttacks.t.sol +0 -437
  22. package/test/Fork.t.sol +0 -227
  23. package/test/TestAuditGaps.sol +0 -696
  24. package/test/Test_MetadataGeneration.t.sol +0 -79
  25. package/test/audit/CodexNemesisCroptopPublisherBoundary.t.sol +0 -329
  26. package/test/audit/CodexNemesisCurrencyPoCs.t.sol +0 -371
  27. package/test/audit/CodexNemesisFreshRound.t.sol +0 -395
  28. package/test/audit/CodexNemesisMetadataShadow.t.sol +0 -196
  29. package/test/audit/CodexNemesisPoCs.t.sol +0 -263
  30. package/test/audit/CodexNemesisPolicyReuse.t.sol +0 -168
  31. package/test/audit/CodexNemesisUriDrift.t.sol +0 -252
  32. package/test/audit/DeployerPermissionBypass.t.sol +0 -213
  33. package/test/audit/EmptyPostFeeBypass.t.sol +0 -53
  34. package/test/audit/FeeBeneficiaryReentrancy.t.sol +0 -247
  35. package/test/audit/FeeFallbackBlackhole.t.sol +0 -263
  36. package/test/audit/Pass12Fixes.t.sol +0 -388
  37. package/test/fork/PublishFork.t.sol +0 -440
  38. package/test/regression/DuplicateUriFeeEvasion.t.sol +0 -312
  39. package/test/regression/FeeEvasion.t.sol +0 -286
  40. package/test/regression/StaleTierIdMapping.t.sol +0 -228
package/USER_JOURNEYS.md DELETED
@@ -1,134 +0,0 @@
1
- # User Journeys
2
-
3
- ## Repo Purpose
4
-
5
- This repo turns a Juicebox 721 project into a permissioned publishing system. It owns post validation, Croptop fee routing, and the deployment packaging that turns a project into a Croptop-managed publisher. It does not own base terminal accounting or the underlying 721 tier mechanics.
6
-
7
- ## Primary Actors
8
-
9
- - project owners creating a Croptop publishing surface
10
- - publishers minting posts into an existing Croptop project
11
- - auditors reviewing fee routing, posting policy, and owner-lock semantics
12
-
13
- ## Key Surfaces
14
-
15
- - `CTPublisher`: validates posts, adjusts tiers, mints the first copy, and routes Croptop fees
16
- - `CTDeployer`: launches a Croptop-shaped project and can compose omnichain deployment
17
- - `CTProjectOwner`: owner helper that can burn-lock administration into Croptop
18
- - `mintFrom(...)`: main publishing entrypoint
19
-
20
- ## Journey 1: Turn A Project Into A Croptop Publisher
21
-
22
- **Actor:** project owner.
23
-
24
- **Intent:** install Croptop publishing policy on a project.
25
-
26
- **Preconditions**
27
-
28
- - the project already exists or will be launched through `CTDeployer`
29
- - the owner has chosen category rules and the expected 721 hook shape
30
-
31
- **Main Flow**
32
-
33
- 1. Configure category-level constraints such as price floor, supply, splits, and allowlists.
34
- 2. Install or verify the expected 721 hook setup.
35
- 3. Route publishing through Croptop so future posts are policy-checked instead of free-form tier edits.
36
-
37
- **Failure Modes**
38
-
39
- - category rules do not match the intended publishing product
40
- - teams assume Croptop replaces the need to audit the underlying 721 hook
41
-
42
- **Postconditions**
43
-
44
- - the project now routes publishing through Croptop policy instead of direct free-form tier creation
45
-
46
- ## Journey 2: Publish Content Into An Existing Croptop Project
47
-
48
- **Actor:** publisher.
49
-
50
- **Intent:** publish one post into a Croptop project and mint the first copy.
51
-
52
- **Preconditions**
53
-
54
- - the post satisfies the target project's category policy
55
- - the caller can receive ETH if the fee refund fallback is needed
56
- - duplicate-content and stale-tier implications are understood
57
-
58
- **Main Flow**
59
-
60
- 1. Call `mintFrom(...)` with the content URI and pricing data.
61
- 2. `CTPublisher` validates the post against category and fee policy.
62
- 3. It creates or reuses the underlying tier, mints the first copy, and routes project revenue plus the Croptop fee.
63
-
64
- **Failure Modes**
65
-
66
- - duplicate URIs or stale tier mappings
67
- - publisher inputs satisfy the base 721 hook but violate Croptop's stricter rules
68
- - the fee terminal rejects the fee payment and `_msgSender()` cannot receive the refund
69
-
70
- **Postconditions**
71
-
72
- - the post is minted or reused as a tier under Croptop policy and the fee path is accounted for
73
-
74
- ## Journey 3: Launch A New Croptop Project End To End
75
-
76
- **Actor:** product team or deployer.
77
-
78
- **Intent:** launch a project already wired for Croptop publishing.
79
-
80
- **Preconditions**
81
-
82
- - the team has project config, posting rules, and any omnichain requirements ready
83
- - the correct `FEE_PROJECT_ID` is known
84
-
85
- **Main Flow**
86
-
87
- 1. Use `CTDeployer` with project config, posting rules, and optional omnichain config.
88
- 2. The deployer launches the project, configures Croptop ownership assumptions, and wires publisher behavior.
89
- 3. The resulting project is ready for publishers without a manual post-launch setup gap.
90
-
91
- **Failure Modes**
92
-
93
- - the fee project is misconfigured or omitted
94
- - teams treat `CTDeployer` as packaging only and miss its policy implications
95
-
96
- **Postconditions**
97
-
98
- - the project is ready for Croptop publishers without a post-launch wiring gap
99
-
100
- ## Journey 4: Lock Administration Into Croptop's Owner Surface
101
-
102
- **Actor:** project owner.
103
-
104
- **Intent:** keep governance inside Croptop's constrained owner surface.
105
-
106
- **Preconditions**
107
-
108
- - the owner wants irreversible product-shaping constraints, not ordinary owner flexibility
109
-
110
- **Main Flow**
111
-
112
- 1. Transfer or configure ownership so `CTProjectOwner` controls the relevant admin surface.
113
- 2. Restrict future edits to the paths Croptop intentionally exposes.
114
- 3. Accept that this is an ownership-model decision, not cosmetic packaging.
115
-
116
- **Failure Modes**
117
-
118
- - teams burn-lock before validating the publishing policy in production-like conditions
119
- - reviewers miss that prior owner discretion no longer exists directly
120
-
121
- **Postconditions**
122
-
123
- - future administration is constrained to the Croptop owner surface instead of ordinary owner discretion
124
-
125
- ## Trust Boundaries
126
-
127
- - this repo is trusted for publishing policy and fee routing
128
- - the underlying 721 hook remains trusted for tier issuance and lower-level NFT accounting
129
- - Croptop fee behavior depends on the fee project and its terminal remaining correctly configured
130
-
131
- ## Hand-Offs
132
-
133
- - Use [nana-721-hook-v6](../nana-721-hook-v6/USER_JOURNEYS.md) for the underlying tier issuance behavior Croptop wraps.
134
- - Use [nana-core-v6](../nana-core-v6/USER_JOURNEYS.md) when the question is about base project accounting rather than post validation or fee routing.
package/foundry.lock DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "lib/forge-std": {
3
- "rev": "ae570fec082bfe1c1f45b0acca4a2b4f84d345ce"
4
- },
5
- "lib/sphinx": {
6
- "branch": {
7
- "name": "v0.23.0",
8
- "rev": "5fb24a825f46bd6ae0b5359fe0da1d2346126b09"
9
- }
10
- }
11
- }
@@ -1,10 +0,0 @@
1
- {
2
- "detectors_to_exclude": "timestamp,uninitialized-local,naming-convention,solc-version,shadowing-local",
3
- "exclude_informational": true,
4
- "exclude_low": false,
5
- "exclude_medium": false,
6
- "exclude_high": false,
7
- "disable_color": false,
8
- "filter_paths": "(mocks/|test/|node_modules/|lib/)",
9
- "legacy_ast": false
10
- }
package/sphinx.lock DELETED
@@ -1,507 +0,0 @@
1
- {
2
- "warning": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
3
- "format": "sphinx-lock-1.0.0",
4
- "orgId": "ea165b21-7cdc-4d7b-be59-ecdd4c26bee4",
5
- "projects": {
6
- "nana-buyback-hook": {
7
- "projectId": "f348713c-83c9-4a85-9b34-acce562d5593",
8
- "projectName": "nana-buyback-hook",
9
- "defaultSafe": {
10
- "safeName": "nana-core-small",
11
- "owners": [
12
- "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
13
- "0x34aA3F359A9D614239015126635CE7732c18fDF3",
14
- "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
15
- "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
16
- "0x63A2368F4B509438ca90186cb1C15156713D5834",
17
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
18
- "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
19
- "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
20
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
21
- "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
22
- "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
23
- "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
24
- "0xCa81360a91504500674E926b1b301165b2CA9807",
25
- "0xD78285eef93E13D1F96062265b68099C480121b8",
26
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
27
- "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
28
- "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
29
- ],
30
- "threshold": "5",
31
- "saltNonce": "0"
32
- }
33
- },
34
- "nana-fee-project": {
35
- "projectId": "8420d3da-9977-4908-be04-d600a090744d",
36
- "projectName": "nana-fee-project",
37
- "defaultSafe": {
38
- "safeName": "nana-core",
39
- "owners": [
40
- "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
41
- "0x34aA3F359A9D614239015126635CE7732c18fDF3",
42
- "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
43
- "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
44
- "0x63A2368F4B509438ca90186cb1C15156713D5834",
45
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
46
- "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
47
- "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
48
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
49
- "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
50
- "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
51
- "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
52
- "0xCa81360a91504500674E926b1b301165b2CA9807",
53
- "0xD78285eef93E13D1F96062265b68099C480121b8",
54
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
55
- "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
56
- "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
57
- ],
58
- "threshold": "9",
59
- "saltNonce": "0"
60
- }
61
- },
62
- "revnet-core": {
63
- "projectId": "ff72a6d2-9324-49ef-a415-57e253550e9e",
64
- "projectName": "revnet-core",
65
- "defaultSafe": {
66
- "safeName": "revnet",
67
- "owners": [
68
- "0x14293560A2dde4fFA136A647b7a2f927b0774AB6",
69
- "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
70
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
71
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
72
- "0xCa81360a91504500674E926b1b301165b2CA9807",
73
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
74
- "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
75
- ],
76
- "threshold": "3",
77
- "saltNonce": "0"
78
- }
79
- },
80
- "nana-address-registry-v5": {
81
- "projectId": "cc6ec42f-5bb5-451a-a66a-928fd3231d2f",
82
- "projectName": "nana-address-registry-v5",
83
- "defaultSafe": {
84
- "safeName": "nana-core-v5",
85
- "owners": [
86
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
87
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
88
- "0xCa81360a91504500674E926b1b301165b2CA9807",
89
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
90
- ],
91
- "threshold": "2",
92
- "saltNonce": "0"
93
- }
94
- },
95
- "croptop-core-v5": {
96
- "projectId": "c98d4514-1c9c-4ae5-a31f-8bf705c01fb1",
97
- "projectName": "croptop-core-v5",
98
- "defaultSafe": {
99
- "safeName": "croptop",
100
- "owners": [
101
- "0x14293560A2dde4fFA136A647b7a2f927b0774AB6",
102
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
103
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
104
- "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
105
- "0xCa81360a91504500674E926b1b301165b2CA9807"
106
- ],
107
- "threshold": "2",
108
- "saltNonce": "0"
109
- }
110
- },
111
- "nana-721-hook-v5": {
112
- "projectId": "b29a3b81-3722-40ad-b831-66472be6d6a8",
113
- "projectName": "nana-721-hook-v5",
114
- "defaultSafe": {
115
- "safeName": "nana-core-v5",
116
- "owners": [
117
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
118
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
119
- "0xCa81360a91504500674E926b1b301165b2CA9807",
120
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
121
- ],
122
- "threshold": "2",
123
- "saltNonce": "0"
124
- }
125
- },
126
- "nana-buyback-hook-v5": {
127
- "projectId": "cf0b6f77-d870-4ccf-bbdc-6b22dceb11b6",
128
- "projectName": "nana-buyback-hook-v5",
129
- "defaultSafe": {
130
- "safeName": "nana-core-v5",
131
- "owners": [
132
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
133
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
134
- "0xCa81360a91504500674E926b1b301165b2CA9807",
135
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
136
- ],
137
- "threshold": "2",
138
- "saltNonce": "0"
139
- }
140
- },
141
- "nana-swap-terminal-v5": {
142
- "projectId": "b476ccb3-4857-4d11-87cf-9b5cb3ac27c2",
143
- "projectName": "nana-swap-terminal-v5",
144
- "defaultSafe": {
145
- "safeName": "nana-core-v5",
146
- "owners": [
147
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
148
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
149
- "0xCa81360a91504500674E926b1b301165b2CA9807",
150
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
151
- ],
152
- "threshold": "2",
153
- "saltNonce": "0"
154
- }
155
- },
156
- "nana-project-handles": {
157
- "projectId": "67c86da0-a089-4b0f-a04d-4dffda844ff9",
158
- "projectName": "nana-project-handles",
159
- "defaultSafe": {
160
- "safeName": "nana-core-small",
161
- "owners": [
162
- "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
163
- "0x34aA3F359A9D614239015126635CE7732c18fDF3",
164
- "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
165
- "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
166
- "0x63A2368F4B509438ca90186cb1C15156713D5834",
167
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
168
- "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
169
- "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
170
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
171
- "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
172
- "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
173
- "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
174
- "0xCa81360a91504500674E926b1b301165b2CA9807",
175
- "0xD78285eef93E13D1F96062265b68099C480121b8",
176
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
177
- "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
178
- "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
179
- ],
180
- "threshold": "5",
181
- "saltNonce": "0"
182
- }
183
- },
184
- "banny-core": {
185
- "projectId": "26678812-e6ca-443d-a5e0-7b62fcdd455f",
186
- "projectName": "banny-core",
187
- "defaultSafe": {
188
- "safeName": "banny-core",
189
- "owners": [
190
- "0x14293560A2dde4fFA136A647b7a2f927b0774AB6",
191
- "0x63A2368F4B509438ca90186cb1C15156713D5834",
192
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
193
- "0xCa81360a91504500674E926b1b301165b2CA9807",
194
- "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1"
195
- ],
196
- "threshold": "2",
197
- "saltNonce": "0"
198
- }
199
- },
200
- "nana-suckers-v5": {
201
- "projectId": "55b45d45-a209-4197-83e1-aa096e19ddbc",
202
- "projectName": "nana-suckers-v5",
203
- "defaultSafe": {
204
- "safeName": "nana-core-v5",
205
- "owners": [
206
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
207
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
208
- "0xCa81360a91504500674E926b1b301165b2CA9807",
209
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
210
- ],
211
- "threshold": "2",
212
- "saltNonce": "0"
213
- }
214
- },
215
- "croptop-core": {
216
- "projectId": "0c213583-47a4-4212-a7cb-b2c0cfdcdac4",
217
- "projectName": "croptop-core",
218
- "defaultSafe": {
219
- "safeName": "croptop",
220
- "owners": [
221
- "0x14293560A2dde4fFA136A647b7a2f927b0774AB6",
222
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
223
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
224
- "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
225
- "0xCa81360a91504500674E926b1b301165b2CA9807"
226
- ],
227
- "threshold": "2",
228
- "saltNonce": "0"
229
- }
230
- },
231
- "nana-address-registry": {
232
- "projectId": "b1c7e214-2927-4042-a3c9-d5751940ce28",
233
- "projectName": "nana-address-registry",
234
- "defaultSafe": {
235
- "safeName": "nana-core",
236
- "owners": [
237
- "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
238
- "0x34aA3F359A9D614239015126635CE7732c18fDF3",
239
- "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
240
- "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
241
- "0x63A2368F4B509438ca90186cb1C15156713D5834",
242
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
243
- "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
244
- "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
245
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
246
- "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
247
- "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
248
- "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
249
- "0xCa81360a91504500674E926b1b301165b2CA9807",
250
- "0xD78285eef93E13D1F96062265b68099C480121b8",
251
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
252
- "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
253
- "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
254
- ],
255
- "threshold": "9",
256
- "saltNonce": "0"
257
- }
258
- },
259
- "nana-core": {
260
- "projectId": "290d6007-345d-4bcc-af08-5e5a26ca2dc5",
261
- "projectName": "nana-core",
262
- "defaultSafe": {
263
- "safeName": "nana-core",
264
- "owners": [
265
- "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
266
- "0x34aA3F359A9D614239015126635CE7732c18fDF3",
267
- "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
268
- "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
269
- "0x63A2368F4B509438ca90186cb1C15156713D5834",
270
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
271
- "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
272
- "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
273
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
274
- "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
275
- "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
276
- "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
277
- "0xCa81360a91504500674E926b1b301165b2CA9807",
278
- "0xD78285eef93E13D1F96062265b68099C480121b8",
279
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
280
- "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
281
- "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
282
- ],
283
- "threshold": "9",
284
- "saltNonce": "0"
285
- }
286
- },
287
- "nana-suckers": {
288
- "projectId": "1b040a9e-0764-4173-880e-b5ebf312bc44",
289
- "projectName": "nana-suckers",
290
- "defaultSafe": {
291
- "safeName": "nana-core",
292
- "owners": [
293
- "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
294
- "0x34aA3F359A9D614239015126635CE7732c18fDF3",
295
- "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
296
- "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
297
- "0x63A2368F4B509438ca90186cb1C15156713D5834",
298
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
299
- "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
300
- "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
301
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
302
- "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
303
- "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
304
- "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
305
- "0xCa81360a91504500674E926b1b301165b2CA9807",
306
- "0xD78285eef93E13D1F96062265b68099C480121b8",
307
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
308
- "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
309
- "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
310
- ],
311
- "threshold": "9",
312
- "saltNonce": "0"
313
- }
314
- },
315
- "nana-periphery": {
316
- "projectId": "0de1ae41-0a43-4bc3-8eec-208718afaa51",
317
- "projectName": "nana-periphery",
318
- "defaultSafe": {
319
- "safeName": "nana-core",
320
- "owners": [
321
- "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
322
- "0x34aA3F359A9D614239015126635CE7732c18fDF3",
323
- "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
324
- "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
325
- "0x63A2368F4B509438ca90186cb1C15156713D5834",
326
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
327
- "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
328
- "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
329
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
330
- "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
331
- "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
332
- "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
333
- "0xCa81360a91504500674E926b1b301165b2CA9807",
334
- "0xD78285eef93E13D1F96062265b68099C480121b8",
335
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
336
- "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
337
- "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
338
- ],
339
- "threshold": "9",
340
- "saltNonce": "0"
341
- }
342
- },
343
- "nana-core-v5": {
344
- "projectId": "43d1f453-3129-4383-a056-d1da4f3b1ee8",
345
- "projectName": "nana-core-v5",
346
- "defaultSafe": {
347
- "safeName": "nana-core-v5",
348
- "owners": [
349
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
350
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
351
- "0xCa81360a91504500674E926b1b301165b2CA9807",
352
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
353
- ],
354
- "threshold": "2",
355
- "saltNonce": "0"
356
- }
357
- },
358
- "nana-swap-terminal": {
359
- "projectId": "a804c33d-fd0c-4dea-930b-ab72fec9f557",
360
- "projectName": "nana-swap-terminal",
361
- "defaultSafe": {
362
- "safeName": "nana-core-small",
363
- "owners": [
364
- "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
365
- "0x34aA3F359A9D614239015126635CE7732c18fDF3",
366
- "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
367
- "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
368
- "0x63A2368F4B509438ca90186cb1C15156713D5834",
369
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
370
- "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
371
- "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
372
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
373
- "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
374
- "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
375
- "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
376
- "0xCa81360a91504500674E926b1b301165b2CA9807",
377
- "0xD78285eef93E13D1F96062265b68099C480121b8",
378
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
379
- "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
380
- "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
381
- ],
382
- "threshold": "5",
383
- "saltNonce": "0"
384
- }
385
- },
386
- "nana-omnichain-deployers": {
387
- "projectId": "4c8b18a7-99c8-431a-b575-e6817503fbd2",
388
- "projectName": "nana-omnichain-deployers",
389
- "defaultSafe": {
390
- "safeName": "nana-core-small",
391
- "owners": [
392
- "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
393
- "0x34aA3F359A9D614239015126635CE7732c18fDF3",
394
- "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
395
- "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
396
- "0x63A2368F4B509438ca90186cb1C15156713D5834",
397
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
398
- "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
399
- "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
400
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
401
- "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
402
- "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
403
- "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
404
- "0xCa81360a91504500674E926b1b301165b2CA9807",
405
- "0xD78285eef93E13D1F96062265b68099C480121b8",
406
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
407
- "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
408
- "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
409
- ],
410
- "threshold": "5",
411
- "saltNonce": "0"
412
- }
413
- },
414
- "banny-core-v5": {
415
- "projectId": "47a1f9c8-f418-4907-8402-bfc456ada246",
416
- "projectName": "banny-core-v5",
417
- "defaultSafe": {
418
- "safeName": "banny-core",
419
- "owners": [
420
- "0x14293560A2dde4fFA136A647b7a2f927b0774AB6",
421
- "0x63A2368F4B509438ca90186cb1C15156713D5834",
422
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
423
- "0xCa81360a91504500674E926b1b301165b2CA9807",
424
- "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1"
425
- ],
426
- "threshold": "2",
427
- "saltNonce": "0"
428
- }
429
- },
430
- "nana-project-handles-v5": {
431
- "projectId": "8795935f-e0ba-4b84-9ec2-44315fbdf4d8",
432
- "projectName": "nana-project-handles-v5",
433
- "defaultSafe": {
434
- "safeName": "nana-core-v5",
435
- "owners": [
436
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
437
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
438
- "0xCa81360a91504500674E926b1b301165b2CA9807",
439
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
440
- ],
441
- "threshold": "2",
442
- "saltNonce": "0"
443
- }
444
- },
445
- "revnet-core-v5": {
446
- "projectId": "cf581f7f-8bab-4773-b1bf-6389b6891056",
447
- "projectName": "revnet-core-v5",
448
- "defaultSafe": {
449
- "safeName": "revnet",
450
- "owners": [
451
- "0x14293560A2dde4fFA136A647b7a2f927b0774AB6",
452
- "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
453
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
454
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
455
- "0xCa81360a91504500674E926b1b301165b2CA9807",
456
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
457
- "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
458
- ],
459
- "threshold": "3",
460
- "saltNonce": "0"
461
- }
462
- },
463
- "nana-omnichain-deployers-v5": {
464
- "projectId": "85f08b91-0786-425c-a5bc-4e31a2fbedaa",
465
- "projectName": "nana-omnichain-deployers-v5",
466
- "defaultSafe": {
467
- "safeName": "nana-core-v5",
468
- "owners": [
469
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
470
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
471
- "0xCa81360a91504500674E926b1b301165b2CA9807",
472
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
473
- ],
474
- "threshold": "2",
475
- "saltNonce": "0"
476
- }
477
- },
478
- "nana-721-hook": {
479
- "projectId": "67cfcad1-d38b-4b4d-b137-a24797c31991",
480
- "projectName": "nana-721-hook",
481
- "defaultSafe": {
482
- "safeName": "nana-core",
483
- "owners": [
484
- "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
485
- "0x34aA3F359A9D614239015126635CE7732c18fDF3",
486
- "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
487
- "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
488
- "0x63A2368F4B509438ca90186cb1C15156713D5834",
489
- "0x6849310926127F819d48894DeA667f3ECD18a07c",
490
- "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
491
- "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
492
- "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
493
- "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
494
- "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
495
- "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
496
- "0xCa81360a91504500674E926b1b301165b2CA9807",
497
- "0xD78285eef93E13D1F96062265b68099C480121b8",
498
- "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
499
- "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
500
- "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
501
- ],
502
- "threshold": "9",
503
- "saltNonce": "0"
504
- }
505
- }
506
- }
507
- }