@bananapus/suckers-v6 0.0.1

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 (149) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +422 -0
  3. package/SECURITY.md +55 -0
  4. package/SKILLS.md +163 -0
  5. package/deployments/nana-suckers-v5/arbitrum/JBArbitrumSucker.json +1425 -0
  6. package/deployments/nana-suckers-v5/arbitrum/JBArbitrumSuckerDeployer.json +391 -0
  7. package/deployments/nana-suckers-v5/arbitrum/JBCCIPSucker.json +1479 -0
  8. package/deployments/nana-suckers-v5/arbitrum/JBCCIPSuckerDeployer.json +433 -0
  9. package/deployments/nana-suckers-v5/arbitrum/JBCCIPSuckerDeployer_1.json +433 -0
  10. package/deployments/nana-suckers-v5/arbitrum/JBCCIPSuckerDeployer_2.json +433 -0
  11. package/deployments/nana-suckers-v5/arbitrum/JBCCIPSucker_1.json +1479 -0
  12. package/deployments/nana-suckers-v5/arbitrum/JBCCIPSucker_2.json +1479 -0
  13. package/deployments/nana-suckers-v5/arbitrum/JBSuckerRegistry.json +690 -0
  14. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBArbitrumSucker.json +1425 -0
  15. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBArbitrumSuckerDeployer.json +391 -0
  16. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSucker.json +1479 -0
  17. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSuckerDeployer.json +433 -0
  18. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSuckerDeployer_1.json +433 -0
  19. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSuckerDeployer_2.json +433 -0
  20. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSucker_1.json +1479 -0
  21. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBCCIPSucker_2.json +1479 -0
  22. package/deployments/nana-suckers-v5/arbitrum_sepolia/JBSuckerRegistry.json +690 -0
  23. package/deployments/nana-suckers-v5/base/JBBaseSucker.json +1389 -0
  24. package/deployments/nana-suckers-v5/base/JBBaseSuckerDeployer.json +376 -0
  25. package/deployments/nana-suckers-v5/base/JBCCIPSucker.json +1483 -0
  26. package/deployments/nana-suckers-v5/base/JBCCIPSuckerDeployer.json +436 -0
  27. package/deployments/nana-suckers-v5/base/JBCCIPSuckerDeployer_1.json +436 -0
  28. package/deployments/nana-suckers-v5/base/JBCCIPSuckerDeployer_2.json +436 -0
  29. package/deployments/nana-suckers-v5/base/JBCCIPSucker_1.json +1483 -0
  30. package/deployments/nana-suckers-v5/base/JBCCIPSucker_2.json +1483 -0
  31. package/deployments/nana-suckers-v5/base/JBSuckerRegistry.json +694 -0
  32. package/deployments/nana-suckers-v5/base_sepolia/JBBaseSucker.json +1389 -0
  33. package/deployments/nana-suckers-v5/base_sepolia/JBBaseSuckerDeployer.json +376 -0
  34. package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSucker.json +1483 -0
  35. package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSuckerDeployer.json +436 -0
  36. package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSuckerDeployer_1.json +436 -0
  37. package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSuckerDeployer_2.json +436 -0
  38. package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSucker_1.json +1483 -0
  39. package/deployments/nana-suckers-v5/base_sepolia/JBCCIPSucker_2.json +1483 -0
  40. package/deployments/nana-suckers-v5/base_sepolia/JBSuckerRegistry.json +694 -0
  41. package/deployments/nana-suckers-v5/ethereum/JBArbitrumSucker.json +1429 -0
  42. package/deployments/nana-suckers-v5/ethereum/JBArbitrumSuckerDeployer.json +394 -0
  43. package/deployments/nana-suckers-v5/ethereum/JBBaseSucker.json +1389 -0
  44. package/deployments/nana-suckers-v5/ethereum/JBBaseSuckerDeployer.json +376 -0
  45. package/deployments/nana-suckers-v5/ethereum/JBCCIPSucker.json +1483 -0
  46. package/deployments/nana-suckers-v5/ethereum/JBCCIPSuckerDeployer.json +436 -0
  47. package/deployments/nana-suckers-v5/ethereum/JBCCIPSuckerDeployer_1.json +436 -0
  48. package/deployments/nana-suckers-v5/ethereum/JBCCIPSuckerDeployer_2.json +436 -0
  49. package/deployments/nana-suckers-v5/ethereum/JBCCIPSucker_1.json +1483 -0
  50. package/deployments/nana-suckers-v5/ethereum/JBCCIPSucker_2.json +1483 -0
  51. package/deployments/nana-suckers-v5/ethereum/JBOptimismSucker.json +1389 -0
  52. package/deployments/nana-suckers-v5/ethereum/JBOptimismSuckerDeployer.json +376 -0
  53. package/deployments/nana-suckers-v5/ethereum/JBSuckerRegistry.json +694 -0
  54. package/deployments/nana-suckers-v5/optimism/JBCCIPSucker.json +1479 -0
  55. package/deployments/nana-suckers-v5/optimism/JBCCIPSuckerDeployer.json +433 -0
  56. package/deployments/nana-suckers-v5/optimism/JBCCIPSuckerDeployer_1.json +433 -0
  57. package/deployments/nana-suckers-v5/optimism/JBCCIPSuckerDeployer_2.json +433 -0
  58. package/deployments/nana-suckers-v5/optimism/JBCCIPSucker_1.json +1479 -0
  59. package/deployments/nana-suckers-v5/optimism/JBCCIPSucker_2.json +1479 -0
  60. package/deployments/nana-suckers-v5/optimism/JBOptimismSucker.json +1385 -0
  61. package/deployments/nana-suckers-v5/optimism/JBOptimismSuckerDeployer.json +373 -0
  62. package/deployments/nana-suckers-v5/optimism/JBSuckerRegistry.json +690 -0
  63. package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSucker.json +1483 -0
  64. package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSuckerDeployer.json +436 -0
  65. package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSuckerDeployer_1.json +436 -0
  66. package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSuckerDeployer_2.json +436 -0
  67. package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSucker_1.json +1483 -0
  68. package/deployments/nana-suckers-v5/optimism_sepolia/JBCCIPSucker_2.json +1483 -0
  69. package/deployments/nana-suckers-v5/optimism_sepolia/JBOptimismSucker.json +1389 -0
  70. package/deployments/nana-suckers-v5/optimism_sepolia/JBOptimismSuckerDeployer.json +376 -0
  71. package/deployments/nana-suckers-v5/optimism_sepolia/JBSuckerRegistry.json +694 -0
  72. package/deployments/nana-suckers-v5/sepolia/JBArbitrumSucker.json +1429 -0
  73. package/deployments/nana-suckers-v5/sepolia/JBArbitrumSuckerDeployer.json +394 -0
  74. package/deployments/nana-suckers-v5/sepolia/JBBaseSucker.json +1389 -0
  75. package/deployments/nana-suckers-v5/sepolia/JBBaseSuckerDeployer.json +376 -0
  76. package/deployments/nana-suckers-v5/sepolia/JBCCIPSucker.json +1483 -0
  77. package/deployments/nana-suckers-v5/sepolia/JBCCIPSuckerDeployer.json +436 -0
  78. package/deployments/nana-suckers-v5/sepolia/JBCCIPSuckerDeployer_1.json +436 -0
  79. package/deployments/nana-suckers-v5/sepolia/JBCCIPSuckerDeployer_2.json +436 -0
  80. package/deployments/nana-suckers-v5/sepolia/JBCCIPSucker_1.json +1483 -0
  81. package/deployments/nana-suckers-v5/sepolia/JBCCIPSucker_2.json +1483 -0
  82. package/deployments/nana-suckers-v5/sepolia/JBOptimismSucker.json +1389 -0
  83. package/deployments/nana-suckers-v5/sepolia/JBOptimismSuckerDeployer.json +376 -0
  84. package/deployments/nana-suckers-v5/sepolia/JBSuckerRegistry.json +694 -0
  85. package/foundry.lock +11 -0
  86. package/foundry.toml +22 -0
  87. package/package.json +33 -0
  88. package/remappings.txt +1 -0
  89. package/script/Deploy.s.sol +506 -0
  90. package/script/helpers/SuckerDeploymentLib.sol +97 -0
  91. package/slither-ci.config.json +10 -0
  92. package/sphinx.lock +476 -0
  93. package/src/JBArbitrumSucker.sol +311 -0
  94. package/src/JBBaseSucker.sol +41 -0
  95. package/src/JBCCIPSucker.sol +303 -0
  96. package/src/JBOptimismSucker.sol +143 -0
  97. package/src/JBSucker.sol +1159 -0
  98. package/src/JBSuckerRegistry.sol +262 -0
  99. package/src/deployers/JBArbitrumSuckerDeployer.sol +86 -0
  100. package/src/deployers/JBBaseSuckerDeployer.sol +26 -0
  101. package/src/deployers/JBCCIPSuckerDeployer.sol +88 -0
  102. package/src/deployers/JBOptimismSuckerDeployer.sol +82 -0
  103. package/src/deployers/JBSuckerDeployer.sol +147 -0
  104. package/src/enums/JBAddToBalanceMode.sol +11 -0
  105. package/src/enums/JBLayer.sol +8 -0
  106. package/src/enums/JBSuckerState.sol +14 -0
  107. package/src/interfaces/IArbGatewayRouter.sol +11 -0
  108. package/src/interfaces/IArbL1GatewayRouter.sol +17 -0
  109. package/src/interfaces/IArbL2GatewayRouter.sol +14 -0
  110. package/src/interfaces/ICCIPRouter.sol +11 -0
  111. package/src/interfaces/IJBArbitrumSucker.sol +13 -0
  112. package/src/interfaces/IJBArbitrumSuckerDeployer.sol +12 -0
  113. package/src/interfaces/IJBCCIPSuckerDeployer.sol +15 -0
  114. package/src/interfaces/IJBOpSuckerDeployer.sol +11 -0
  115. package/src/interfaces/IJBOptimismSucker.sol +10 -0
  116. package/src/interfaces/IJBSucker.sol +144 -0
  117. package/src/interfaces/IJBSuckerDeployer.sol +40 -0
  118. package/src/interfaces/IJBSuckerExtended.sol +22 -0
  119. package/src/interfaces/IJBSuckerRegistry.sol +75 -0
  120. package/src/interfaces/IOPMessenger.sol +18 -0
  121. package/src/interfaces/IOPStandardBridge.sol +29 -0
  122. package/src/interfaces/IWrappedNativeToken.sol +13 -0
  123. package/src/libraries/ARBAddresses.sol +17 -0
  124. package/src/libraries/ARBChains.sol +11 -0
  125. package/src/libraries/CCIPHelper.sol +136 -0
  126. package/src/structs/JBClaim.sol +13 -0
  127. package/src/structs/JBInboxTreeRoot.sol +12 -0
  128. package/src/structs/JBLeaf.sol +14 -0
  129. package/src/structs/JBMessageRoot.sol +16 -0
  130. package/src/structs/JBOutboxTree.sol +18 -0
  131. package/src/structs/JBRemoteToken.sol +17 -0
  132. package/src/structs/JBSuckerDeployerConfig.sol +12 -0
  133. package/src/structs/JBSuckersPair.sol +11 -0
  134. package/src/structs/JBTokenMapping.sol +13 -0
  135. package/src/utils/MerkleLib.sol +1020 -0
  136. package/test/Fork.t.sol +514 -0
  137. package/test/InteropCompat.t.sol +676 -0
  138. package/test/SuckerAttacks.t.sol +509 -0
  139. package/test/SuckerDeepAttacks.t.sol +1563 -0
  140. package/test/mocks/ERC20Mock.sol +36 -0
  141. package/test/mocks/MockMessenger.sol +42 -0
  142. package/test/unit/arb.t.sol +28 -0
  143. package/test/unit/ccip_native_interop.t.sol +719 -0
  144. package/test/unit/ccip_refund.t.sol +234 -0
  145. package/test/unit/deployer.t.sol +475 -0
  146. package/test/unit/emergency.t.sol +305 -0
  147. package/test/unit/merkle.t.sol +212 -0
  148. package/test/unit/multi_chain_evolution.t.sol +622 -0
  149. package/test/unit/registry.t.sol +26 -0
package/sphinx.lock ADDED
@@ -0,0 +1,476 @@
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-omnichain-deployers": {
7
+ "projectId": "4c8b18a7-99c8-431a-b575-e6817503fbd2",
8
+ "projectName": "nana-omnichain-deployers",
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-buyback-hook-v5": {
35
+ "projectId": "cf0b6f77-d870-4ccf-bbdc-6b22dceb11b6",
36
+ "projectName": "nana-buyback-hook-v5",
37
+ "defaultSafe": {
38
+ "safeName": "nana-core-v5",
39
+ "owners": [
40
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
41
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
42
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
43
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
44
+ ],
45
+ "threshold": "2",
46
+ "saltNonce": "0"
47
+ }
48
+ },
49
+ "nana-address-registry-v5": {
50
+ "projectId": "cc6ec42f-5bb5-451a-a66a-928fd3231d2f",
51
+ "projectName": "nana-address-registry-v5",
52
+ "defaultSafe": {
53
+ "safeName": "nana-core-v5",
54
+ "owners": [
55
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
56
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
57
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
58
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
59
+ ],
60
+ "threshold": "2",
61
+ "saltNonce": "0"
62
+ }
63
+ },
64
+ "revnet-core": {
65
+ "projectId": "ff72a6d2-9324-49ef-a415-57e253550e9e",
66
+ "projectName": "revnet-core",
67
+ "defaultSafe": {
68
+ "safeName": "revnet",
69
+ "owners": [
70
+ "0x14293560A2dde4fFA136A647b7a2f927b0774AB6",
71
+ "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
72
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
73
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
74
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
75
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
76
+ "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
77
+ ],
78
+ "threshold": "3",
79
+ "saltNonce": "0"
80
+ }
81
+ },
82
+ "nana-suckers": {
83
+ "projectId": "1b040a9e-0764-4173-880e-b5ebf312bc44",
84
+ "projectName": "nana-suckers",
85
+ "defaultSafe": {
86
+ "safeName": "nana-core",
87
+ "owners": [
88
+ "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
89
+ "0x34aA3F359A9D614239015126635CE7732c18fDF3",
90
+ "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
91
+ "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
92
+ "0x63A2368F4B509438ca90186cb1C15156713D5834",
93
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
94
+ "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
95
+ "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
96
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
97
+ "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
98
+ "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
99
+ "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
100
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
101
+ "0xD78285eef93E13D1F96062265b68099C480121b8",
102
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
103
+ "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
104
+ "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
105
+ ],
106
+ "threshold": "9",
107
+ "saltNonce": "0"
108
+ }
109
+ },
110
+ "revnet-core-v5": {
111
+ "projectId": "cf581f7f-8bab-4773-b1bf-6389b6891056",
112
+ "projectName": "revnet-core-v5",
113
+ "defaultSafe": {
114
+ "safeName": "revnet",
115
+ "owners": [
116
+ "0x14293560A2dde4fFA136A647b7a2f927b0774AB6",
117
+ "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
118
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
119
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
120
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
121
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
122
+ "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
123
+ ],
124
+ "threshold": "3",
125
+ "saltNonce": "0"
126
+ }
127
+ },
128
+ "banny-core": {
129
+ "projectId": "26678812-e6ca-443d-a5e0-7b62fcdd455f",
130
+ "projectName": "banny-core",
131
+ "defaultSafe": {
132
+ "safeName": "banny-core",
133
+ "owners": [
134
+ "0x14293560A2dde4fFA136A647b7a2f927b0774AB6",
135
+ "0x63A2368F4B509438ca90186cb1C15156713D5834",
136
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
137
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
138
+ "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1"
139
+ ],
140
+ "threshold": "2",
141
+ "saltNonce": "0"
142
+ }
143
+ },
144
+ "nana-suckers-v5": {
145
+ "projectId": "55b45d45-a209-4197-83e1-aa096e19ddbc",
146
+ "projectName": "nana-suckers-v5",
147
+ "defaultSafe": {
148
+ "safeName": "nana-core-v5",
149
+ "owners": [
150
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
151
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
152
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
153
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
154
+ ],
155
+ "threshold": "2",
156
+ "saltNonce": "0"
157
+ }
158
+ },
159
+ "nana-periphery": {
160
+ "projectId": "0de1ae41-0a43-4bc3-8eec-208718afaa51",
161
+ "projectName": "nana-periphery",
162
+ "defaultSafe": {
163
+ "safeName": "nana-core",
164
+ "owners": [
165
+ "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
166
+ "0x34aA3F359A9D614239015126635CE7732c18fDF3",
167
+ "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
168
+ "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
169
+ "0x63A2368F4B509438ca90186cb1C15156713D5834",
170
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
171
+ "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
172
+ "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
173
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
174
+ "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
175
+ "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
176
+ "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
177
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
178
+ "0xD78285eef93E13D1F96062265b68099C480121b8",
179
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
180
+ "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
181
+ "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
182
+ ],
183
+ "threshold": "9",
184
+ "saltNonce": "0"
185
+ }
186
+ },
187
+ "banny-core-v5": {
188
+ "projectId": "47a1f9c8-f418-4907-8402-bfc456ada246",
189
+ "projectName": "banny-core-v5",
190
+ "defaultSafe": {
191
+ "safeName": "banny-core",
192
+ "owners": [
193
+ "0x14293560A2dde4fFA136A647b7a2f927b0774AB6",
194
+ "0x63A2368F4B509438ca90186cb1C15156713D5834",
195
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
196
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
197
+ "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1"
198
+ ],
199
+ "threshold": "2",
200
+ "saltNonce": "0"
201
+ }
202
+ },
203
+ "nana-core-v5": {
204
+ "projectId": "43d1f453-3129-4383-a056-d1da4f3b1ee8",
205
+ "projectName": "nana-core-v5",
206
+ "defaultSafe": {
207
+ "safeName": "nana-core-v5",
208
+ "owners": [
209
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
210
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
211
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
212
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
213
+ ],
214
+ "threshold": "2",
215
+ "saltNonce": "0"
216
+ }
217
+ },
218
+ "nana-buyback-hook": {
219
+ "projectId": "f348713c-83c9-4a85-9b34-acce562d5593",
220
+ "projectName": "nana-buyback-hook",
221
+ "defaultSafe": {
222
+ "safeName": "nana-core-small",
223
+ "owners": [
224
+ "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
225
+ "0x34aA3F359A9D614239015126635CE7732c18fDF3",
226
+ "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
227
+ "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
228
+ "0x63A2368F4B509438ca90186cb1C15156713D5834",
229
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
230
+ "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
231
+ "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
232
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
233
+ "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
234
+ "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
235
+ "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
236
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
237
+ "0xD78285eef93E13D1F96062265b68099C480121b8",
238
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
239
+ "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
240
+ "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
241
+ ],
242
+ "threshold": "5",
243
+ "saltNonce": "0"
244
+ }
245
+ },
246
+ "nana-core": {
247
+ "projectId": "290d6007-345d-4bcc-af08-5e5a26ca2dc5",
248
+ "projectName": "nana-core",
249
+ "defaultSafe": {
250
+ "safeName": "nana-core",
251
+ "owners": [
252
+ "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
253
+ "0x34aA3F359A9D614239015126635CE7732c18fDF3",
254
+ "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
255
+ "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
256
+ "0x63A2368F4B509438ca90186cb1C15156713D5834",
257
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
258
+ "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
259
+ "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
260
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
261
+ "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
262
+ "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
263
+ "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
264
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
265
+ "0xD78285eef93E13D1F96062265b68099C480121b8",
266
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
267
+ "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
268
+ "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
269
+ ],
270
+ "threshold": "9",
271
+ "saltNonce": "0"
272
+ }
273
+ },
274
+ "nana-721-hook": {
275
+ "projectId": "67cfcad1-d38b-4b4d-b137-a24797c31991",
276
+ "projectName": "nana-721-hook",
277
+ "defaultSafe": {
278
+ "safeName": "nana-core",
279
+ "owners": [
280
+ "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
281
+ "0x34aA3F359A9D614239015126635CE7732c18fDF3",
282
+ "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
283
+ "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
284
+ "0x63A2368F4B509438ca90186cb1C15156713D5834",
285
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
286
+ "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
287
+ "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
288
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
289
+ "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
290
+ "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
291
+ "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
292
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
293
+ "0xD78285eef93E13D1F96062265b68099C480121b8",
294
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
295
+ "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
296
+ "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
297
+ ],
298
+ "threshold": "9",
299
+ "saltNonce": "0"
300
+ }
301
+ },
302
+ "nana-fee-project": {
303
+ "projectId": "8420d3da-9977-4908-be04-d600a090744d",
304
+ "projectName": "nana-fee-project",
305
+ "defaultSafe": {
306
+ "safeName": "nana-core",
307
+ "owners": [
308
+ "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
309
+ "0x34aA3F359A9D614239015126635CE7732c18fDF3",
310
+ "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
311
+ "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
312
+ "0x63A2368F4B509438ca90186cb1C15156713D5834",
313
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
314
+ "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
315
+ "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
316
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
317
+ "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
318
+ "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
319
+ "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
320
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
321
+ "0xD78285eef93E13D1F96062265b68099C480121b8",
322
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
323
+ "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
324
+ "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
325
+ ],
326
+ "threshold": "9",
327
+ "saltNonce": "0"
328
+ }
329
+ },
330
+ "nana-721-hook-v5": {
331
+ "projectId": "b29a3b81-3722-40ad-b831-66472be6d6a8",
332
+ "projectName": "nana-721-hook-v5",
333
+ "defaultSafe": {
334
+ "safeName": "nana-core-v5",
335
+ "owners": [
336
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
337
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
338
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
339
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
340
+ ],
341
+ "threshold": "2",
342
+ "saltNonce": "0"
343
+ }
344
+ },
345
+ "croptop-core": {
346
+ "projectId": "0c213583-47a4-4212-a7cb-b2c0cfdcdac4",
347
+ "projectName": "croptop-core",
348
+ "defaultSafe": {
349
+ "safeName": "croptop",
350
+ "owners": [
351
+ "0x14293560A2dde4fFA136A647b7a2f927b0774AB6",
352
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
353
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
354
+ "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
355
+ "0xCa81360a91504500674E926b1b301165b2CA9807"
356
+ ],
357
+ "threshold": "2",
358
+ "saltNonce": "0"
359
+ }
360
+ },
361
+ "nana-project-handles": {
362
+ "projectId": "67c86da0-a089-4b0f-a04d-4dffda844ff9",
363
+ "projectName": "nana-project-handles",
364
+ "defaultSafe": {
365
+ "safeName": "nana-core-small",
366
+ "owners": [
367
+ "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
368
+ "0x34aA3F359A9D614239015126635CE7732c18fDF3",
369
+ "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
370
+ "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
371
+ "0x63A2368F4B509438ca90186cb1C15156713D5834",
372
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
373
+ "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
374
+ "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
375
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
376
+ "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
377
+ "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
378
+ "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
379
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
380
+ "0xD78285eef93E13D1F96062265b68099C480121b8",
381
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
382
+ "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
383
+ "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
384
+ ],
385
+ "threshold": "5",
386
+ "saltNonce": "0"
387
+ }
388
+ },
389
+ "nana-swap-terminal-v5": {
390
+ "projectId": "b476ccb3-4857-4d11-87cf-9b5cb3ac27c2",
391
+ "projectName": "nana-swap-terminal-v5",
392
+ "defaultSafe": {
393
+ "safeName": "nana-core-v5",
394
+ "owners": [
395
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
396
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
397
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
398
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
399
+ ],
400
+ "threshold": "2",
401
+ "saltNonce": "0"
402
+ }
403
+ },
404
+ "nana-project-handles-v5": {
405
+ "projectId": "8795935f-e0ba-4b84-9ec2-44315fbdf4d8",
406
+ "projectName": "nana-project-handles-v5",
407
+ "defaultSafe": {
408
+ "safeName": "nana-core-v5",
409
+ "owners": [
410
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
411
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
412
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
413
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651"
414
+ ],
415
+ "threshold": "2",
416
+ "saltNonce": "0"
417
+ }
418
+ },
419
+ "nana-swap-terminal": {
420
+ "projectId": "a804c33d-fd0c-4dea-930b-ab72fec9f557",
421
+ "projectName": "nana-swap-terminal",
422
+ "defaultSafe": {
423
+ "safeName": "nana-core-small",
424
+ "owners": [
425
+ "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
426
+ "0x34aA3F359A9D614239015126635CE7732c18fDF3",
427
+ "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
428
+ "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
429
+ "0x63A2368F4B509438ca90186cb1C15156713D5834",
430
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
431
+ "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
432
+ "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
433
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
434
+ "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
435
+ "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
436
+ "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
437
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
438
+ "0xD78285eef93E13D1F96062265b68099C480121b8",
439
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
440
+ "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
441
+ "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
442
+ ],
443
+ "threshold": "5",
444
+ "saltNonce": "0"
445
+ }
446
+ },
447
+ "nana-address-registry": {
448
+ "projectId": "b1c7e214-2927-4042-a3c9-d5751940ce28",
449
+ "projectName": "nana-address-registry",
450
+ "defaultSafe": {
451
+ "safeName": "nana-core",
452
+ "owners": [
453
+ "0x1bb1e3F6818FeB7c1F1674e6E7D6c30BA2725643",
454
+ "0x34aA3F359A9D614239015126635CE7732c18fDF3",
455
+ "0x5a3f5ac3D6f1a0061D3bB91f38606F7103eCdBe8",
456
+ "0x5EE9F1cdD9588A3c800441CBd7A38Ffeff40cBc2",
457
+ "0x63A2368F4B509438ca90186cb1C15156713D5834",
458
+ "0x6849310926127F819d48894DeA667f3ECD18a07c",
459
+ "0x721b19e30EF791FF2A67FF4b375E591aAf84136B",
460
+ "0x73aEd5a32E898644Acb841C3Ac40663202CfD485",
461
+ "0x823b92d6a4b2AED4b15675c7917c9f922ea8ADAD",
462
+ "0x8d3CC5b1a5268Ff0C119c5c03252EB8c1bFEBbB2",
463
+ "0x99368d83F73b803Caf924956C5EE6E0b8f86Fb3B",
464
+ "0xc109636a2b47f8b290cc134dd446Fcd7d7e0cC94",
465
+ "0xCa81360a91504500674E926b1b301165b2CA9807",
466
+ "0xD78285eef93E13D1F96062265b68099C480121b8",
467
+ "0xDc6Dd6Bc601448541A4862a91De1B86291839651",
468
+ "0xe7879a2D05dBA966Fcca34EE9C3F99eEe7eDEFd1",
469
+ "0xf33CFe55655B0190eAF5aC2749F954c64E06d887"
470
+ ],
471
+ "threshold": "9",
472
+ "saltNonce": "0"
473
+ }
474
+ }
475
+ }
476
+ }