@bananapus/core-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 (436) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +112 -0
  3. package/SKILLS.md +151 -0
  4. package/docs/book.css +13 -0
  5. package/docs/book.toml +12 -0
  6. package/docs/solidity.min.js +74 -0
  7. package/docs/src/README.md +703 -0
  8. package/docs/src/SUMMARY.md +94 -0
  9. package/docs/src/src/JBChainlinkV3PriceFeed.sol/contract.JBChainlinkV3PriceFeed.md +83 -0
  10. package/docs/src/src/JBChainlinkV3SequencerPriceFeed.sol/contract.JBChainlinkV3SequencerPriceFeed.md +88 -0
  11. package/docs/src/src/JBController.sol/contract.JBController.md +1121 -0
  12. package/docs/src/src/JBDeadline.sol/contract.JBDeadline.md +84 -0
  13. package/docs/src/src/JBDirectory.sol/contract.JBDirectory.md +294 -0
  14. package/docs/src/src/JBERC20.sol/contract.JBERC20.md +190 -0
  15. package/docs/src/src/JBFeelessAddresses.sol/contract.JBFeelessAddresses.md +80 -0
  16. package/docs/src/src/JBFundAccessLimits.sol/contract.JBFundAccessLimits.md +253 -0
  17. package/docs/src/src/JBMultiTerminal.sol/contract.JBMultiTerminal.md +1472 -0
  18. package/docs/src/src/JBPermissions.sol/contract.JBPermissions.md +199 -0
  19. package/docs/src/src/JBPrices.sol/contract.JBPrices.md +154 -0
  20. package/docs/src/src/JBProjects.sol/contract.JBProjects.md +131 -0
  21. package/docs/src/src/JBRulesets.sol/contract.JBRulesets.md +677 -0
  22. package/docs/src/src/JBSplits.sol/contract.JBSplits.md +237 -0
  23. package/docs/src/src/JBTerminalStore.sol/contract.JBTerminalStore.md +591 -0
  24. package/docs/src/src/JBTokens.sol/contract.JBTokens.md +353 -0
  25. package/docs/src/src/README.md +25 -0
  26. package/docs/src/src/abstract/JBControlled.sol/abstract.JBControlled.md +64 -0
  27. package/docs/src/src/abstract/JBPermissioned.sol/abstract.JBPermissioned.md +84 -0
  28. package/docs/src/src/abstract/README.md +5 -0
  29. package/docs/src/src/enums/JBApprovalStatus.sol/enum.JBApprovalStatus.md +17 -0
  30. package/docs/src/src/enums/README.md +4 -0
  31. package/docs/src/src/interfaces/IJBCashOutHook.sol/interface.IJBCashOutHook.md +29 -0
  32. package/docs/src/src/interfaces/IJBCashOutTerminal.sol/interface.IJBCashOutTerminal.md +57 -0
  33. package/docs/src/src/interfaces/IJBControlled.sol/interface.IJBControlled.md +12 -0
  34. package/docs/src/src/interfaces/IJBController.sol/interface.IJBController.md +334 -0
  35. package/docs/src/src/interfaces/IJBDirectory.sol/interface.IJBDirectory.md +108 -0
  36. package/docs/src/src/interfaces/IJBDirectoryAccessControl.sol/interface.IJBDirectoryAccessControl.md +19 -0
  37. package/docs/src/src/interfaces/IJBFeeTerminal.sol/interface.IJBFeeTerminal.md +91 -0
  38. package/docs/src/src/interfaces/IJBFeelessAddresses.sol/interface.IJBFeelessAddresses.md +26 -0
  39. package/docs/src/src/interfaces/IJBFundAccessLimits.sol/interface.IJBFundAccessLimits.md +88 -0
  40. package/docs/src/src/interfaces/IJBMigratable.sol/interface.IJBMigratable.md +29 -0
  41. package/docs/src/src/interfaces/IJBMultiTerminal.sol/interface.IJBMultiTerminal.md +50 -0
  42. package/docs/src/src/interfaces/IJBPayHook.sol/interface.IJBPayHook.md +28 -0
  43. package/docs/src/src/interfaces/IJBPayoutTerminal.sol/interface.IJBPayoutTerminal.md +105 -0
  44. package/docs/src/src/interfaces/IJBPermissioned.sol/interface.IJBPermissioned.md +12 -0
  45. package/docs/src/src/interfaces/IJBPermissions.sol/interface.IJBPermissions.md +74 -0
  46. package/docs/src/src/interfaces/IJBPermitTerminal.sol/interface.IJBPermitTerminal.md +15 -0
  47. package/docs/src/src/interfaces/IJBPriceFeed.sol/interface.IJBPriceFeed.md +12 -0
  48. package/docs/src/src/interfaces/IJBPrices.sol/interface.IJBPrices.md +74 -0
  49. package/docs/src/src/interfaces/IJBProjectUriRegistry.sol/interface.IJBProjectUriRegistry.md +19 -0
  50. package/docs/src/src/interfaces/IJBProjects.sol/interface.IJBProjects.md +49 -0
  51. package/docs/src/src/interfaces/IJBRulesetApprovalHook.sol/interface.IJBRulesetApprovalHook.md +35 -0
  52. package/docs/src/src/interfaces/IJBRulesetDataHook.sol/interface.IJBRulesetDataHook.md +97 -0
  53. package/docs/src/src/interfaces/IJBRulesets.sol/interface.IJBRulesets.md +165 -0
  54. package/docs/src/src/interfaces/IJBSplitHook.sol/interface.IJBSplitHook.md +31 -0
  55. package/docs/src/src/interfaces/IJBSplits.sol/interface.IJBSplits.md +35 -0
  56. package/docs/src/src/interfaces/IJBTerminal.sol/interface.IJBTerminal.md +141 -0
  57. package/docs/src/src/interfaces/IJBTerminalStore.sol/interface.IJBTerminalStore.md +198 -0
  58. package/docs/src/src/interfaces/IJBToken.sol/interface.IJBToken.md +54 -0
  59. package/docs/src/src/interfaces/IJBTokenUriResolver.sol/interface.IJBTokenUriResolver.md +12 -0
  60. package/docs/src/src/interfaces/IJBTokens.sol/interface.IJBTokens.md +151 -0
  61. package/docs/src/src/interfaces/README.md +33 -0
  62. package/docs/src/src/libraries/JBCashOuts.sol/library.JBCashOuts.md +40 -0
  63. package/docs/src/src/libraries/JBConstants.sol/library.JBConstants.md +52 -0
  64. package/docs/src/src/libraries/JBCurrencyIds.sol/library.JBCurrencyIds.md +19 -0
  65. package/docs/src/src/libraries/JBFees.sol/library.JBFees.md +52 -0
  66. package/docs/src/src/libraries/JBFixedPointNumber.sol/library.JBFixedPointNumber.md +12 -0
  67. package/docs/src/src/libraries/JBMetadataResolver.sol/library.JBMetadataResolver.md +242 -0
  68. package/docs/src/src/libraries/JBRulesetMetadataResolver.sol/library.JBRulesetMetadataResolver.md +180 -0
  69. package/docs/src/src/libraries/JBSplitGroupIds.sol/library.JBSplitGroupIds.md +14 -0
  70. package/docs/src/src/libraries/JBSurplus.sol/library.JBSurplus.md +44 -0
  71. package/docs/src/src/libraries/README.md +12 -0
  72. package/docs/src/src/periphery/JBDeadline1Day.sol/contract.JBDeadline1Day.md +15 -0
  73. package/docs/src/src/periphery/JBDeadline3Days.sol/contract.JBDeadline3Days.md +15 -0
  74. package/docs/src/src/periphery/JBDeadline3Hours.sol/contract.JBDeadline3Hours.md +15 -0
  75. package/docs/src/src/periphery/JBDeadline7Days.sol/contract.JBDeadline7Days.md +15 -0
  76. package/docs/src/src/periphery/JBMatchingPriceFeed.sol/contract.JBMatchingPriceFeed.md +22 -0
  77. package/docs/src/src/periphery/README.md +8 -0
  78. package/docs/src/src/structs/JBAccountingContext.sol/struct.JBAccountingContext.md +20 -0
  79. package/docs/src/src/structs/JBAfterCashOutRecordedContext.sol/struct.JBAfterCashOutRecordedContext.md +43 -0
  80. package/docs/src/src/structs/JBAfterPayRecordedContext.sol/struct.JBAfterPayRecordedContext.md +42 -0
  81. package/docs/src/src/structs/JBBeforeCashOutRecordedContext.sol/struct.JBBeforeCashOutRecordedContext.md +45 -0
  82. package/docs/src/src/structs/JBBeforePayRecordedContext.sol/struct.JBBeforePayRecordedContext.md +41 -0
  83. package/docs/src/src/structs/JBCashOutHookSpecification.sol/struct.JBCashOutHookSpecification.md +22 -0
  84. package/docs/src/src/structs/JBCurrencyAmount.sol/struct.JBCurrencyAmount.md +17 -0
  85. package/docs/src/src/structs/JBFee.sol/struct.JBFee.md +20 -0
  86. package/docs/src/src/structs/JBFundAccessLimitGroup.sol/struct.JBFundAccessLimitGroup.md +39 -0
  87. package/docs/src/src/structs/JBPayHookSpecification.sol/struct.JBPayHookSpecification.md +22 -0
  88. package/docs/src/src/structs/JBPermissionsData.sol/struct.JBPermissionsData.md +21 -0
  89. package/docs/src/src/structs/JBRuleset.sol/struct.JBRuleset.md +55 -0
  90. package/docs/src/src/structs/JBRulesetConfig.sol/struct.JBRulesetConfig.md +51 -0
  91. package/docs/src/src/structs/JBRulesetMetadata.sol/struct.JBRulesetMetadata.md +79 -0
  92. package/docs/src/src/structs/JBRulesetWeightCache.sol/struct.JBRulesetWeightCache.md +16 -0
  93. package/docs/src/src/structs/JBRulesetWithMetadata.sol/struct.JBRulesetWithMetadata.md +16 -0
  94. package/docs/src/src/structs/JBSingleAllowance.sol/struct.JBSingleAllowance.md +26 -0
  95. package/docs/src/src/structs/JBSplit.sol/struct.JBSplit.md +49 -0
  96. package/docs/src/src/structs/JBSplitGroup.sol/struct.JBSplitGroup.md +17 -0
  97. package/docs/src/src/structs/JBSplitHookContext.sol/struct.JBSplitHookContext.md +29 -0
  98. package/docs/src/src/structs/JBTerminalConfig.sol/struct.JBTerminalConfig.md +16 -0
  99. package/docs/src/src/structs/JBTokenAmount.sol/struct.JBTokenAmount.md +23 -0
  100. package/docs/src/src/structs/README.md +25 -0
  101. package/foundry.lock +11 -0
  102. package/foundry.toml +41 -0
  103. package/package.json +38 -0
  104. package/remappings.txt +1 -0
  105. package/script/Deploy.s.sol +111 -0
  106. package/script/DeployPeriphery.s.sol +287 -0
  107. package/script/helpers/CoreDeploymentLib.sol +121 -0
  108. package/slither-ci.config.json +10 -0
  109. package/sphinx.lock +507 -0
  110. package/src/JBChainlinkV3PriceFeed.sol +77 -0
  111. package/src/JBChainlinkV3SequencerPriceFeed.sol +75 -0
  112. package/src/JBController.sol +1186 -0
  113. package/src/JBDeadline.sol +73 -0
  114. package/src/JBDirectory.sol +343 -0
  115. package/src/JBERC20.sol +131 -0
  116. package/src/JBFeelessAddresses.sol +54 -0
  117. package/src/JBFundAccessLimits.sol +308 -0
  118. package/src/JBMultiTerminal.sol +2024 -0
  119. package/src/JBPermissions.sol +252 -0
  120. package/src/JBPrices.sol +227 -0
  121. package/src/JBProjects.sol +126 -0
  122. package/src/JBRulesets.sol +1093 -0
  123. package/src/JBSplits.sol +324 -0
  124. package/src/JBTerminalStore.sol +908 -0
  125. package/src/JBTokens.sol +376 -0
  126. package/src/abstract/JBControlled.sol +48 -0
  127. package/src/abstract/JBPermissioned.sol +77 -0
  128. package/src/enums/JBApprovalStatus.sol +12 -0
  129. package/src/interfaces/IJBCashOutHook.sol +15 -0
  130. package/src/interfaces/IJBCashOutTerminal.sol +51 -0
  131. package/src/interfaces/IJBControlled.sol +10 -0
  132. package/src/interfaces/IJBController.sol +280 -0
  133. package/src/interfaces/IJBDirectory.sol +69 -0
  134. package/src/interfaces/IJBDirectoryAccessControl.sol +15 -0
  135. package/src/interfaces/IJBFeeTerminal.sol +61 -0
  136. package/src/interfaces/IJBFeelessAddresses.sol +17 -0
  137. package/src/interfaces/IJBFundAccessLimits.sol +94 -0
  138. package/src/interfaces/IJBMigratable.sol +24 -0
  139. package/src/interfaces/IJBMultiTerminal.sol +36 -0
  140. package/src/interfaces/IJBPayHook.sol +14 -0
  141. package/src/interfaces/IJBPayoutTerminal.sol +92 -0
  142. package/src/interfaces/IJBPermissioned.sol +10 -0
  143. package/src/interfaces/IJBPermissions.sol +71 -0
  144. package/src/interfaces/IJBPermitTerminal.sol +14 -0
  145. package/src/interfaces/IJBPriceFeed.sol +10 -0
  146. package/src/interfaces/IJBPrices.sol +65 -0
  147. package/src/interfaces/IJBProjectUriRegistry.sol +15 -0
  148. package/src/interfaces/IJBProjects.sol +27 -0
  149. package/src/interfaces/IJBRulesetApprovalHook.sol +21 -0
  150. package/src/interfaces/IJBRulesetDataHook.sol +56 -0
  151. package/src/interfaces/IJBRulesets.sol +151 -0
  152. package/src/interfaces/IJBSplitHook.sol +16 -0
  153. package/src/interfaces/IJBSplits.sol +28 -0
  154. package/src/interfaces/IJBTerminal.sol +120 -0
  155. package/src/interfaces/IJBTerminalStore.sol +225 -0
  156. package/src/interfaces/IJBToken.sol +39 -0
  157. package/src/interfaces/IJBTokenUriResolver.sol +10 -0
  158. package/src/interfaces/IJBTokens.sol +113 -0
  159. package/src/libraries/JBCashOuts.sol +120 -0
  160. package/src/libraries/JBConstants.sol +14 -0
  161. package/src/libraries/JBCurrencyIds.sol +7 -0
  162. package/src/libraries/JBFees.sol +28 -0
  163. package/src/libraries/JBFixedPointNumber.sol +12 -0
  164. package/src/libraries/JBMetadataResolver.sol +306 -0
  165. package/src/libraries/JBRulesetMetadataResolver.sol +160 -0
  166. package/src/libraries/JBSplitGroupIds.sol +7 -0
  167. package/src/libraries/JBSurplus.sol +40 -0
  168. package/src/periphery/JBDeadline1Day.sol +8 -0
  169. package/src/periphery/JBDeadline3Days.sol +8 -0
  170. package/src/periphery/JBDeadline3Hours.sol +8 -0
  171. package/src/periphery/JBDeadline7Days.sol +8 -0
  172. package/src/periphery/JBMatchingPriceFeed.sol +13 -0
  173. package/src/structs/JBAccountingContext.sol +12 -0
  174. package/src/structs/JBAfterCashOutRecordedContext.sol +30 -0
  175. package/src/structs/JBAfterPayRecordedContext.sol +29 -0
  176. package/src/structs/JBBeforeCashOutRecordedContext.sol +31 -0
  177. package/src/structs/JBBeforePayRecordedContext.sol +28 -0
  178. package/src/structs/JBCashOutHookSpecification.sol +15 -0
  179. package/src/structs/JBCurrencyAmount.sol +10 -0
  180. package/src/structs/JBFee.sol +12 -0
  181. package/src/structs/JBFundAccessLimitGroup.sol +28 -0
  182. package/src/structs/JBPayHookSpecification.sol +15 -0
  183. package/src/structs/JBPermissionsData.sol +13 -0
  184. package/src/structs/JBRuleset.sol +42 -0
  185. package/src/structs/JBRulesetConfig.sol +43 -0
  186. package/src/structs/JBRulesetMetadata.sol +56 -0
  187. package/src/structs/JBRulesetWeightCache.sol +9 -0
  188. package/src/structs/JBRulesetWithMetadata.sol +12 -0
  189. package/src/structs/JBSingleAllowance.sol +16 -0
  190. package/src/structs/JBSplit.sol +37 -0
  191. package/src/structs/JBSplitGroup.sol +12 -0
  192. package/src/structs/JBSplitHookContext.sol +20 -0
  193. package/src/structs/JBTerminalConfig.sol +12 -0
  194. package/src/structs/JBTokenAmount.sol +14 -0
  195. package/test/AuditExploits.t.sol +2710 -0
  196. package/test/ComprehensiveInvariant.t.sol +298 -0
  197. package/test/EconomicSimulation.t.sol +340 -0
  198. package/test/EntryPointPermutations.t.sol +671 -0
  199. package/test/FlashLoanAttacks.t.sol +792 -0
  200. package/test/PermissionEscalation.t.sol +679 -0
  201. package/test/RulesetTransitions.t.sol +699 -0
  202. package/test/SplitLoopTests.t.sol +731 -0
  203. package/test/TestAccessToFunds.sol +2644 -0
  204. package/test/TestCashOut.sol +185 -0
  205. package/test/TestCashOutCountFor.sol +272 -0
  206. package/test/TestCashOutHooks.sol +317 -0
  207. package/test/TestCashOutTimingEdge.sol +229 -0
  208. package/test/TestDurationUnderflow.sol +220 -0
  209. package/test/TestFeeProcessingFailure.sol +208 -0
  210. package/test/TestFees.sol +604 -0
  211. package/test/TestInterfaceSupport.sol +62 -0
  212. package/test/TestJBERC20Inheritance.sol +91 -0
  213. package/test/TestLaunchProject.sol +176 -0
  214. package/test/TestMetaTx.sol +203 -0
  215. package/test/TestMetadataParserLib.sol +438 -0
  216. package/test/TestMigrationHeldFees.sol +249 -0
  217. package/test/TestMintTokensOf.sol +172 -0
  218. package/test/TestMultiTokenSurplus.sol +206 -0
  219. package/test/TestMultipleAccessLimits.sol +642 -0
  220. package/test/TestPayBurnRedeemFlow.sol +180 -0
  221. package/test/TestPayHooks.sol +190 -0
  222. package/test/TestPermissions.sol +305 -0
  223. package/test/TestPermissionsEdge.sol +286 -0
  224. package/test/TestPermit2Terminal.sol +339 -0
  225. package/test/TestRulesetQueueing.sol +1001 -0
  226. package/test/TestRulesetQueuingStress.sol +778 -0
  227. package/test/TestRulesetWeightCaching.sol +177 -0
  228. package/test/TestSplits.sol +369 -0
  229. package/test/TestTerminalMigration.sol +167 -0
  230. package/test/TestTokenFlow.sol +174 -0
  231. package/test/WeirdTokenTests.t.sol +764 -0
  232. package/test/formal/BondingCurveProperties.t.sol +411 -0
  233. package/test/formal/FeeProperties.t.sol +246 -0
  234. package/test/helpers/JBTest.sol +129 -0
  235. package/test/helpers/MetadataResolverHelper.sol +116 -0
  236. package/test/helpers/TestBaseWorkflow.sol +317 -0
  237. package/test/invariants/Phase3DeepInvariant.t.sol +404 -0
  238. package/test/invariants/RulesetsInvariant.t.sol +115 -0
  239. package/test/invariants/TerminalStoreInvariant.t.sol +220 -0
  240. package/test/invariants/TokensInvariant.t.sol +184 -0
  241. package/test/invariants/handlers/ComprehensiveHandler.sol +285 -0
  242. package/test/invariants/handlers/EconomicHandler.sol +347 -0
  243. package/test/invariants/handlers/Phase3Handler.sol +414 -0
  244. package/test/invariants/handlers/RulesetsHandler.sol +111 -0
  245. package/test/invariants/handlers/TerminalStoreHandler.sol +146 -0
  246. package/test/invariants/handlers/TokensHandler.sol +127 -0
  247. package/test/mock/ERC2771ForwarderMock.sol +37 -0
  248. package/test/mock/MockERC20.sol +18 -0
  249. package/test/mock/MockMaliciousBeneficiary.sol +67 -0
  250. package/test/mock/MockMaliciousSplitHook.sol +42 -0
  251. package/test/mock/MockPriceFeed.sol +20 -0
  252. package/test/trees/JBController/burnTokensOf.tree +9 -0
  253. package/test/trees/JBController/claimTokensFor.tree +5 -0
  254. package/test/trees/JBController/deployERC20For.tree +5 -0
  255. package/test/trees/JBController/getRulesetOf.tree +5 -0
  256. package/test/trees/JBController/launchProjectFor.tree +12 -0
  257. package/test/trees/JBController/launchRulesetsFor.tree +8 -0
  258. package/test/trees/JBController/migrateController.tree +12 -0
  259. package/test/trees/JBController/mintTokensOf.tree +12 -0
  260. package/test/trees/JBController/payReservedTokenToTerminal.tree +8 -0
  261. package/test/trees/JBController/receiveMigrationFrom.tree +4 -0
  262. package/test/trees/JBController/sendReservedTokensToSplitsOf.tree +12 -0
  263. package/test/trees/JBController/setMetadataOf.tree +5 -0
  264. package/test/trees/JBController/setSplitGroupsOf.tree +5 -0
  265. package/test/trees/JBController/setTokenFor.tree +5 -0
  266. package/test/trees/JBController/transferCreditsFrom.tree +8 -0
  267. package/test/trees/JBDirectory/primaryTerminalOf.tree +8 -0
  268. package/test/trees/JBDirectory/setControllerOf.tree +11 -0
  269. package/test/trees/JBDirectory/setPrimaryTerminalOf.tree +15 -0
  270. package/test/trees/JBDirectory/setTerminalsOf.tree +11 -0
  271. package/test/trees/JBERC20/initialize.tree +7 -0
  272. package/test/trees/JBERC20/name.tree +5 -0
  273. package/test/trees/JBERC20/nonces.tree +5 -0
  274. package/test/trees/JBERC20/symbol.tree +5 -0
  275. package/test/trees/JBFeelessAddresses/setFeelessAddress.tree +5 -0
  276. package/test/trees/JBFeelessAddresses/supportsInterface.tree +5 -0
  277. package/test/trees/JBFundAccessLimits/payoutLimitOf.tree +5 -0
  278. package/test/trees/JBFundAccessLimits/payoutLimitsOf.tree +8 -0
  279. package/test/trees/JBFundAccessLimits/setFundAccessLimitsFor.tree +18 -0
  280. package/test/trees/JBFundAccessLimits/surplusAllowanceOf.tree +5 -0
  281. package/test/trees/JBFundAccessLimits/surplusAllowancesOf.tree +8 -0
  282. package/test/trees/JBMetadataResolver/getDataFor.tree +8 -0
  283. package/test/trees/JBMultiTerminal/accountingContextsOf.tree +5 -0
  284. package/test/trees/JBMultiTerminal/addAccountingContextsFor.tree +10 -0
  285. package/test/trees/JBMultiTerminal/addToBalanceOf.tree +23 -0
  286. package/test/trees/JBMultiTerminal/cashOutTokensOf.tree +23 -0
  287. package/test/trees/JBMultiTerminal/executePayout.tree +32 -0
  288. package/test/trees/JBMultiTerminal/executeProcessFee.tree +14 -0
  289. package/test/trees/JBMultiTerminal/migrateBalanceOf.tree +12 -0
  290. package/test/trees/JBMultiTerminal/pay.tree +23 -0
  291. package/test/trees/JBMultiTerminal/processHeldFeesOf.tree +8 -0
  292. package/test/trees/JBMultiTerminal/sendPayoutsOf.tree +34 -0
  293. package/test/trees/JBMultiTerminal/useAllowanceOf.tree +16 -0
  294. package/test/trees/JBPermissions/hasPermission.tree +8 -0
  295. package/test/trees/JBPermissions/hasPermissions.tree +8 -0
  296. package/test/trees/JBPermissions/setPermissionsFor.tree +5 -0
  297. package/test/trees/JBPrices/addPriceFeedFor.tree +14 -0
  298. package/test/trees/JBPrices/pricePerUnitOf.tree +11 -0
  299. package/test/trees/JBProjects/createFor.tree +11 -0
  300. package/test/trees/JBProjects/setTokenUriResolver.tree +5 -0
  301. package/test/trees/JBProjects/supportsInterface.tree +9 -0
  302. package/test/trees/JBProjects/tokenURI.tree +5 -0
  303. package/test/trees/JBRulesets/currentApprovalStatusForLatestRulesetOf.tree +8 -0
  304. package/test/trees/JBRulesets/currentOf.tree +12 -0
  305. package/test/trees/JBRulesets/getRulesetOf.tree +5 -0
  306. package/test/trees/JBRulesets/latestQueuedRulesetOf.tree +10 -0
  307. package/test/trees/JBRulesets/rulesetsOf.tree +11 -0
  308. package/test/trees/JBRulesets/upcomingRulesetOf.tree +20 -0
  309. package/test/trees/JBRulesets/updateRulesetWeightCache.tree +5 -0
  310. package/test/trees/JBSplits/setSplitGroupsOf.tree +17 -0
  311. package/test/trees/JBSplits/splitsOf.tree +5 -0
  312. package/test/trees/JBTerminalStore/currentReclaimableSurplusOf.tree +16 -0
  313. package/test/trees/JBTerminalStore/currentSurplusOf.tree +25 -0
  314. package/test/trees/JBTerminalStore/currentTotalSurplusOf.tree +5 -0
  315. package/test/trees/JBTerminalStore/recordCashOutsFor.tree +16 -0
  316. package/test/trees/JBTerminalStore/recordPaymentFrom.tree +14 -0
  317. package/test/trees/JBTerminalStore/recordPayoutFor.tree +10 -0
  318. package/test/trees/JBTerminalStore/recordTerminalMigration.tree +5 -0
  319. package/test/trees/JBTerminalStore/recordUsedAllowanceOf.tree +10 -0
  320. package/test/trees/JBTokens/burnFrom.tree +10 -0
  321. package/test/trees/JBTokens/claimTokensFor.tree +10 -0
  322. package/test/trees/JBTokens/deployERC20For.tree +12 -0
  323. package/test/trees/JBTokens/mintFor.tree +10 -0
  324. package/test/trees/JBTokens/setTokenFor.tree +11 -0
  325. package/test/trees/JBTokens/totalBalanceOf.tree +5 -0
  326. package/test/trees/JBTokens/totalSupplyOf.tree +5 -0
  327. package/test/trees/JBTokens/transferCreditsFrom.tree +8 -0
  328. package/test/trees/mintTokensOf.tree +12 -0
  329. package/test/units/static/JBChainlinkV3PriceFeed/TestPriceFeed.sol +220 -0
  330. package/test/units/static/JBController/JBControllerSetup.sol +40 -0
  331. package/test/units/static/JBController/TestBurnTokensOf.sol +107 -0
  332. package/test/units/static/JBController/TestClaimTokensFor.sol +60 -0
  333. package/test/units/static/JBController/TestDeployErc20For.sol +80 -0
  334. package/test/units/static/JBController/TestLaunchProjectFor.sol +282 -0
  335. package/test/units/static/JBController/TestLaunchRulesetsFor.sol +322 -0
  336. package/test/units/static/JBController/TestMigrateController.sol +148 -0
  337. package/test/units/static/JBController/TestMintTokensOfUnits.sol +102 -0
  338. package/test/units/static/JBController/TestPayReservedTokenToTerminal.sol +71 -0
  339. package/test/units/static/JBController/TestReceiveMigrationFrom.sol +95 -0
  340. package/test/units/static/JBController/TestRulesetViews.sol +219 -0
  341. package/test/units/static/JBController/TestSendReservedTokensToSplitsOf.sol +595 -0
  342. package/test/units/static/JBController/TestSetSplitGroupsOf.sol +63 -0
  343. package/test/units/static/JBController/TestSetTokenFor.sol +227 -0
  344. package/test/units/static/JBController/TestSetUriOf.sol +53 -0
  345. package/test/units/static/JBController/TestTransferCreditsFrom.sol +159 -0
  346. package/test/units/static/JBDeadline/TestDeadlineFuzz.sol +194 -0
  347. package/test/units/static/JBDirectory/JBDirectorySetup.sol +22 -0
  348. package/test/units/static/JBDirectory/TestPrimaryTerminalOf.sol +122 -0
  349. package/test/units/static/JBDirectory/TestSetControllerOf.sol +173 -0
  350. package/test/units/static/JBDirectory/TestSetControllerOfMigrationOrder.sol +98 -0
  351. package/test/units/static/JBDirectory/TestSetPrimaryTerminalOf.sol +169 -0
  352. package/test/units/static/JBDirectory/TestSetTerminalsOf.sol +128 -0
  353. package/test/units/static/JBERC20/JBERC20Setup.sol +20 -0
  354. package/test/units/static/JBERC20/SigUtils.sol +34 -0
  355. package/test/units/static/JBERC20/TestInitialize.sol +54 -0
  356. package/test/units/static/JBERC20/TestName.sol +30 -0
  357. package/test/units/static/JBERC20/TestNonces.sol +59 -0
  358. package/test/units/static/JBERC20/TestSymbol.sol +31 -0
  359. package/test/units/static/JBFeelessAdresses/JBFeelessSetup.sol +20 -0
  360. package/test/units/static/JBFeelessAdresses/TestInterfaces.sol +29 -0
  361. package/test/units/static/JBFeelessAdresses/TestSetFeelessAddress.sol +35 -0
  362. package/test/units/static/JBFees/TestFeesFuzz.sol +78 -0
  363. package/test/units/static/JBFixedPointNumber/TestAdjustDecimals.sol +16 -0
  364. package/test/units/static/JBFixedPointNumber/TestAdjustDecimalsFuzz.sol +71 -0
  365. package/test/units/static/JBFundAccessLimits/JBFundAccessSetup.sol +21 -0
  366. package/test/units/static/JBFundAccessLimits/TestFundAccessLimitsEdge.sol +159 -0
  367. package/test/units/static/JBFundAccessLimits/TestPayoutLimitOf.sol +56 -0
  368. package/test/units/static/JBFundAccessLimits/TestPayoutLimitsOf.sol +94 -0
  369. package/test/units/static/JBFundAccessLimits/TestSetFundAccessLimitsFor.sol +182 -0
  370. package/test/units/static/JBFundAccessLimits/TestSurplusAllowanceOf.sol +61 -0
  371. package/test/units/static/JBFundAccessLimits/TestSurplusAllowancesOf.sol +96 -0
  372. package/test/units/static/JBMetadataResolver/TestGetDataFor.sol +89 -0
  373. package/test/units/static/JBMetadataResolver/TestMetadataResolverFuzz.sol +227 -0
  374. package/test/units/static/JBMetadataResolver/TestMetadataResolverM20M21.sol +245 -0
  375. package/test/units/static/JBMultiTerminal/JBMultiTerminalSetup.sol +39 -0
  376. package/test/units/static/JBMultiTerminal/TestAccountingContextsOf.sol +65 -0
  377. package/test/units/static/JBMultiTerminal/TestAddAccountingContextsFor.sol +313 -0
  378. package/test/units/static/JBMultiTerminal/TestAddToBalanceOf.sol +432 -0
  379. package/test/units/static/JBMultiTerminal/TestCashOutTokensOf.sol +478 -0
  380. package/test/units/static/JBMultiTerminal/TestExecutePayout.sol +577 -0
  381. package/test/units/static/JBMultiTerminal/TestExecuteProcessFee.sol +176 -0
  382. package/test/units/static/JBMultiTerminal/TestMigrateBalanceOf.sol +190 -0
  383. package/test/units/static/JBMultiTerminal/TestPay.sol +514 -0
  384. package/test/units/static/JBMultiTerminal/TestProcessHeldFeesOf.sol +29 -0
  385. package/test/units/static/JBMultiTerminal/TestSendPayoutsOf.sol +243 -0
  386. package/test/units/static/JBMultiTerminal/TestUseAllowanceOf.sol +310 -0
  387. package/test/units/static/JBPermissions/JBPermissionsSetup.sol +18 -0
  388. package/test/units/static/JBPermissions/TestHasPermission.sol +50 -0
  389. package/test/units/static/JBPermissions/TestHasPermissions.sol +93 -0
  390. package/test/units/static/JBPermissions/TestSetPermissionsFor.sol +62 -0
  391. package/test/units/static/JBPrices/JBPricesSetup.sol +26 -0
  392. package/test/units/static/JBPrices/TestAddPriceFeedFor.sol +102 -0
  393. package/test/units/static/JBPrices/TestPricePerUnitOf.sol +129 -0
  394. package/test/units/static/JBPrices/TestPrices.sol +262 -0
  395. package/test/units/static/JBProjects/JBProjectsSetup.sol +20 -0
  396. package/test/units/static/JBProjects/TestCreateFor.sol +69 -0
  397. package/test/units/static/JBProjects/TestInitialProject.sol +19 -0
  398. package/test/units/static/JBProjects/TestInterfaces.sol +27 -0
  399. package/test/units/static/JBProjects/TestSetResolver.sol +36 -0
  400. package/test/units/static/JBProjects/TestTokenUri.sol +38 -0
  401. package/test/units/static/JBRulesetMetadataResolver/TestSetCashOutTaxRateTo.sol +99 -0
  402. package/test/units/static/JBRulesets/JBRulesetsSetup.sol +21 -0
  403. package/test/units/static/JBRulesets/TestCurrentApprovalStatusForLatestRulesetOf.sol +257 -0
  404. package/test/units/static/JBRulesets/TestCurrentOf.sol +231 -0
  405. package/test/units/static/JBRulesets/TestGetRulesetOf.sol +94 -0
  406. package/test/units/static/JBRulesets/TestLatestQueuedRulesetOf.sol +252 -0
  407. package/test/units/static/JBRulesets/TestRulesets.sol +617 -0
  408. package/test/units/static/JBRulesets/TestRulesetsOf.sol +37 -0
  409. package/test/units/static/JBRulesets/TestUpcomingRulesetOf.sol +526 -0
  410. package/test/units/static/JBRulesets/TestUpdateRulesetWeightCache.sol +91 -0
  411. package/test/units/static/JBSplits/JBSplitsSetup.sol +23 -0
  412. package/test/units/static/JBSplits/TestSelfManagedSplitGroups.sol +502 -0
  413. package/test/units/static/JBSplits/TestSetSplitGroupsOf.sol +370 -0
  414. package/test/units/static/JBSplits/TestSplitsLockedEdge.sol +262 -0
  415. package/test/units/static/JBSplits/TestSplitsOf.sol +24 -0
  416. package/test/units/static/JBSplits/TestSplitsPacking.sol +33 -0
  417. package/test/units/static/JBSurplus/TestSurplusFuzz.sol +125 -0
  418. package/test/units/static/JBTerminalStore/JBTerminalStoreSetup.sol +23 -0
  419. package/test/units/static/JBTerminalStore/TestCurrentReclaimableSurplusOf.sol +434 -0
  420. package/test/units/static/JBTerminalStore/TestCurrentSurplusOf.sol +428 -0
  421. package/test/units/static/JBTerminalStore/TestCurrentTotalSurplusOf.sol +65 -0
  422. package/test/units/static/JBTerminalStore/TestRecordCashOutsFor.sol +479 -0
  423. package/test/units/static/JBTerminalStore/TestRecordPaymentFrom.sol +508 -0
  424. package/test/units/static/JBTerminalStore/TestRecordPayoutFor.sol +257 -0
  425. package/test/units/static/JBTerminalStore/TestRecordTerminalMigration.sol +131 -0
  426. package/test/units/static/JBTerminalStore/TestRecordUsedAllowanceOf.sol +390 -0
  427. package/test/units/static/JBTerminalStore/TestUint224Overflow.sol +187 -0
  428. package/test/units/static/JBTokens/JBTokensSetup.sol +23 -0
  429. package/test/units/static/JBTokens/TestBurnFrom.sol +104 -0
  430. package/test/units/static/JBTokens/TestClaimTokensFor.sol +107 -0
  431. package/test/units/static/JBTokens/TestDeployERC20ForUnits.sol +89 -0
  432. package/test/units/static/JBTokens/TestMintFor.sol +97 -0
  433. package/test/units/static/JBTokens/TestSetTokenFor.sol +95 -0
  434. package/test/units/static/JBTokens/TestTotalBalanceOf.sol +65 -0
  435. package/test/units/static/JBTokens/TestTotalSupplyOf.sol +56 -0
  436. package/test/units/static/JBTokens/TestTransferCreditsFrom.sol +54 -0
@@ -0,0 +1,334 @@
1
+ # IJBController
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBController.sol)
3
+
4
+ **Inherits:**
5
+ IERC165, [IJBProjectUriRegistry](/src/interfaces/IJBProjectUriRegistry.sol/interface.IJBProjectUriRegistry.md), [IJBDirectoryAccessControl](/src/interfaces/IJBDirectoryAccessControl.sol/interface.IJBDirectoryAccessControl.md)
6
+
7
+
8
+ ## Functions
9
+ ### DIRECTORY
10
+
11
+
12
+ ```solidity
13
+ function DIRECTORY() external view returns (IJBDirectory);
14
+ ```
15
+
16
+ ### FUND_ACCESS_LIMITS
17
+
18
+
19
+ ```solidity
20
+ function FUND_ACCESS_LIMITS() external view returns (IJBFundAccessLimits);
21
+ ```
22
+
23
+ ### PRICES
24
+
25
+
26
+ ```solidity
27
+ function PRICES() external view returns (IJBPrices);
28
+ ```
29
+
30
+ ### PROJECTS
31
+
32
+
33
+ ```solidity
34
+ function PROJECTS() external view returns (IJBProjects);
35
+ ```
36
+
37
+ ### RULESETS
38
+
39
+
40
+ ```solidity
41
+ function RULESETS() external view returns (IJBRulesets);
42
+ ```
43
+
44
+ ### SPLITS
45
+
46
+
47
+ ```solidity
48
+ function SPLITS() external view returns (IJBSplits);
49
+ ```
50
+
51
+ ### TOKENS
52
+
53
+
54
+ ```solidity
55
+ function TOKENS() external view returns (IJBTokens);
56
+ ```
57
+
58
+ ### allRulesetsOf
59
+
60
+
61
+ ```solidity
62
+ function allRulesetsOf(
63
+ uint256 projectId,
64
+ uint256 startingId,
65
+ uint256 size
66
+ )
67
+ external
68
+ view
69
+ returns (JBRulesetWithMetadata[] memory rulesets);
70
+ ```
71
+
72
+ ### currentRulesetOf
73
+
74
+
75
+ ```solidity
76
+ function currentRulesetOf(uint256 projectId)
77
+ external
78
+ view
79
+ returns (JBRuleset memory ruleset, JBRulesetMetadata memory metadata);
80
+ ```
81
+
82
+ ### getRulesetOf
83
+
84
+
85
+ ```solidity
86
+ function getRulesetOf(
87
+ uint256 projectId,
88
+ uint256 rulesetId
89
+ )
90
+ external
91
+ view
92
+ returns (JBRuleset memory ruleset, JBRulesetMetadata memory metadata);
93
+ ```
94
+
95
+ ### latestQueuedRulesetOf
96
+
97
+
98
+ ```solidity
99
+ function latestQueuedRulesetOf(uint256 projectId)
100
+ external
101
+ view
102
+ returns (JBRuleset memory, JBRulesetMetadata memory metadata, JBApprovalStatus);
103
+ ```
104
+
105
+ ### pendingReservedTokenBalanceOf
106
+
107
+
108
+ ```solidity
109
+ function pendingReservedTokenBalanceOf(uint256 projectId) external view returns (uint256);
110
+ ```
111
+
112
+ ### totalTokenSupplyWithReservedTokensOf
113
+
114
+
115
+ ```solidity
116
+ function totalTokenSupplyWithReservedTokensOf(uint256 projectId) external view returns (uint256);
117
+ ```
118
+
119
+ ### upcomingRulesetOf
120
+
121
+
122
+ ```solidity
123
+ function upcomingRulesetOf(uint256 projectId)
124
+ external
125
+ view
126
+ returns (JBRuleset memory ruleset, JBRulesetMetadata memory metadata);
127
+ ```
128
+
129
+ ### addPriceFeed
130
+
131
+
132
+ ```solidity
133
+ function addPriceFeed(uint256 projectId, uint256 pricingCurrency, uint256 unitCurrency, IJBPriceFeed feed) external;
134
+ ```
135
+
136
+ ### burnTokensOf
137
+
138
+
139
+ ```solidity
140
+ function burnTokensOf(address holder, uint256 projectId, uint256 tokenCount, string calldata memo) external;
141
+ ```
142
+
143
+ ### claimTokensFor
144
+
145
+
146
+ ```solidity
147
+ function claimTokensFor(address holder, uint256 projectId, uint256 tokenCount, address beneficiary) external;
148
+ ```
149
+
150
+ ### deployERC20For
151
+
152
+
153
+ ```solidity
154
+ function deployERC20For(
155
+ uint256 projectId,
156
+ string calldata name,
157
+ string calldata symbol,
158
+ bytes32 salt
159
+ )
160
+ external
161
+ returns (IJBToken token);
162
+ ```
163
+
164
+ ### launchProjectFor
165
+
166
+
167
+ ```solidity
168
+ function launchProjectFor(
169
+ address owner,
170
+ string calldata projectUri,
171
+ JBRulesetConfig[] calldata rulesetConfigurations,
172
+ JBTerminalConfig[] memory terminalConfigurations,
173
+ string calldata memo
174
+ )
175
+ external
176
+ returns (uint256 projectId);
177
+ ```
178
+
179
+ ### launchRulesetsFor
180
+
181
+
182
+ ```solidity
183
+ function launchRulesetsFor(
184
+ uint256 projectId,
185
+ JBRulesetConfig[] calldata rulesetConfigurations,
186
+ JBTerminalConfig[] memory terminalConfigurations,
187
+ string calldata memo
188
+ )
189
+ external
190
+ returns (uint256 rulesetId);
191
+ ```
192
+
193
+ ### mintTokensOf
194
+
195
+
196
+ ```solidity
197
+ function mintTokensOf(
198
+ uint256 projectId,
199
+ uint256 tokenCount,
200
+ address beneficiary,
201
+ string calldata memo,
202
+ bool useReservedPercent
203
+ )
204
+ external
205
+ returns (uint256 beneficiaryTokenCount);
206
+ ```
207
+
208
+ ### queueRulesetsOf
209
+
210
+
211
+ ```solidity
212
+ function queueRulesetsOf(
213
+ uint256 projectId,
214
+ JBRulesetConfig[] calldata rulesetConfigurations,
215
+ string calldata memo
216
+ )
217
+ external
218
+ returns (uint256 rulesetId);
219
+ ```
220
+
221
+ ### sendReservedTokensToSplitsOf
222
+
223
+
224
+ ```solidity
225
+ function sendReservedTokensToSplitsOf(uint256 projectId) external returns (uint256);
226
+ ```
227
+
228
+ ### setSplitGroupsOf
229
+
230
+
231
+ ```solidity
232
+ function setSplitGroupsOf(uint256 projectId, uint256 rulesetId, JBSplitGroup[] calldata splitGroups) external;
233
+ ```
234
+
235
+ ### setTokenFor
236
+
237
+
238
+ ```solidity
239
+ function setTokenFor(uint256 projectId, IJBToken token) external;
240
+ ```
241
+
242
+ ### transferCreditsFrom
243
+
244
+
245
+ ```solidity
246
+ function transferCreditsFrom(address holder, uint256 projectId, address recipient, uint256 creditCount) external;
247
+ ```
248
+
249
+ ## Events
250
+ ### BurnTokens
251
+
252
+ ```solidity
253
+ event BurnTokens(address indexed holder, uint256 indexed projectId, uint256 tokenCount, string memo, address caller);
254
+ ```
255
+
256
+ ### LaunchProject
257
+
258
+ ```solidity
259
+ event LaunchProject(uint256 rulesetId, uint256 projectId, string projectUri, string memo, address caller);
260
+ ```
261
+
262
+ ### LaunchRulesets
263
+
264
+ ```solidity
265
+ event LaunchRulesets(uint256 rulesetId, uint256 projectId, string memo, address caller);
266
+ ```
267
+
268
+ ### MintTokens
269
+
270
+ ```solidity
271
+ event MintTokens(
272
+ address indexed beneficiary,
273
+ uint256 indexed projectId,
274
+ uint256 tokenCount,
275
+ uint256 beneficiaryTokenCount,
276
+ string memo,
277
+ uint256 reservedPercent,
278
+ address caller
279
+ );
280
+ ```
281
+
282
+ ### PrepMigration
283
+
284
+ ```solidity
285
+ event PrepMigration(uint256 indexed projectId, address from, address caller);
286
+ ```
287
+
288
+ ### QueueRulesets
289
+
290
+ ```solidity
291
+ event QueueRulesets(uint256 rulesetId, uint256 projectId, string memo, address caller);
292
+ ```
293
+
294
+ ### ReservedDistributionReverted
295
+
296
+ ```solidity
297
+ event ReservedDistributionReverted(
298
+ uint256 indexed projectId, JBSplit split, uint256 tokenCount, bytes reason, address caller
299
+ );
300
+ ```
301
+
302
+ ### SendReservedTokensToSplit
303
+
304
+ ```solidity
305
+ event SendReservedTokensToSplit(
306
+ uint256 indexed projectId,
307
+ uint256 indexed rulesetId,
308
+ uint256 indexed groupId,
309
+ JBSplit split,
310
+ uint256 tokenCount,
311
+ address caller
312
+ );
313
+ ```
314
+
315
+ ### SendReservedTokensToSplits
316
+
317
+ ```solidity
318
+ event SendReservedTokensToSplits(
319
+ uint256 indexed rulesetId,
320
+ uint256 indexed rulesetCycleNumber,
321
+ uint256 indexed projectId,
322
+ address owner,
323
+ uint256 tokenCount,
324
+ uint256 leftoverAmount,
325
+ address caller
326
+ );
327
+ ```
328
+
329
+ ### SetUri
330
+
331
+ ```solidity
332
+ event SetUri(uint256 indexed projectId, string uri, address caller);
333
+ ```
334
+
@@ -0,0 +1,108 @@
1
+ # IJBDirectory
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBDirectory.sol)
3
+
4
+
5
+ ## Functions
6
+ ### PROJECTS
7
+
8
+
9
+ ```solidity
10
+ function PROJECTS() external view returns (IJBProjects);
11
+ ```
12
+
13
+ ### controllerOf
14
+
15
+
16
+ ```solidity
17
+ function controllerOf(uint256 projectId) external view returns (IERC165);
18
+ ```
19
+
20
+ ### isAllowedToSetFirstController
21
+
22
+
23
+ ```solidity
24
+ function isAllowedToSetFirstController(address account) external view returns (bool);
25
+ ```
26
+
27
+ ### isTerminalOf
28
+
29
+
30
+ ```solidity
31
+ function isTerminalOf(uint256 projectId, IJBTerminal terminal) external view returns (bool);
32
+ ```
33
+
34
+ ### primaryTerminalOf
35
+
36
+
37
+ ```solidity
38
+ function primaryTerminalOf(uint256 projectId, address token) external view returns (IJBTerminal);
39
+ ```
40
+
41
+ ### terminalsOf
42
+
43
+
44
+ ```solidity
45
+ function terminalsOf(uint256 projectId) external view returns (IJBTerminal[] memory);
46
+ ```
47
+
48
+ ### setControllerOf
49
+
50
+
51
+ ```solidity
52
+ function setControllerOf(uint256 projectId, IERC165 controller) external;
53
+ ```
54
+
55
+ ### setIsAllowedToSetFirstController
56
+
57
+
58
+ ```solidity
59
+ function setIsAllowedToSetFirstController(address account, bool flag) external;
60
+ ```
61
+
62
+ ### setPrimaryTerminalOf
63
+
64
+
65
+ ```solidity
66
+ function setPrimaryTerminalOf(uint256 projectId, address token, IJBTerminal terminal) external;
67
+ ```
68
+
69
+ ### setTerminalsOf
70
+
71
+
72
+ ```solidity
73
+ function setTerminalsOf(uint256 projectId, IJBTerminal[] calldata terminals) external;
74
+ ```
75
+
76
+ ## Events
77
+ ### AddTerminal
78
+
79
+ ```solidity
80
+ event AddTerminal(uint256 indexed projectId, IJBTerminal indexed terminal, address caller);
81
+ ```
82
+
83
+ ### SetController
84
+
85
+ ```solidity
86
+ event SetController(uint256 indexed projectId, IERC165 indexed controller, address caller);
87
+ ```
88
+
89
+ ### SetIsAllowedToSetFirstController
90
+
91
+ ```solidity
92
+ event SetIsAllowedToSetFirstController(address indexed addr, bool indexed isAllowed, address caller);
93
+ ```
94
+
95
+ ### SetPrimaryTerminal
96
+
97
+ ```solidity
98
+ event SetPrimaryTerminal(
99
+ uint256 indexed projectId, address indexed token, IJBTerminal indexed terminal, address caller
100
+ );
101
+ ```
102
+
103
+ ### SetTerminals
104
+
105
+ ```solidity
106
+ event SetTerminals(uint256 indexed projectId, IJBTerminal[] terminals, address caller);
107
+ ```
108
+
@@ -0,0 +1,19 @@
1
+ # IJBDirectoryAccessControl
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBDirectoryAccessControl.sol)
3
+
4
+
5
+ ## Functions
6
+ ### setControllerAllowed
7
+
8
+
9
+ ```solidity
10
+ function setControllerAllowed(uint256 projectId) external view returns (bool);
11
+ ```
12
+
13
+ ### setTerminalsAllowed
14
+
15
+
16
+ ```solidity
17
+ function setTerminalsAllowed(uint256 projectId) external view returns (bool);
18
+ ```
19
+
@@ -0,0 +1,91 @@
1
+ # IJBFeeTerminal
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBFeeTerminal.sol)
3
+
4
+ **Inherits:**
5
+ [IJBTerminal](/src/interfaces/IJBTerminal.sol/interface.IJBTerminal.md)
6
+
7
+ A terminal that can process and hold fees.
8
+
9
+
10
+ ## Functions
11
+ ### FEE
12
+
13
+
14
+ ```solidity
15
+ function FEE() external view returns (uint256);
16
+ ```
17
+
18
+ ### FEELESS_ADDRESSES
19
+
20
+
21
+ ```solidity
22
+ function FEELESS_ADDRESSES() external view returns (IJBFeelessAddresses);
23
+ ```
24
+
25
+ ### heldFeesOf
26
+
27
+
28
+ ```solidity
29
+ function heldFeesOf(uint256 projectId, address token, uint256 count) external view returns (JBFee[] memory);
30
+ ```
31
+
32
+ ### processHeldFeesOf
33
+
34
+
35
+ ```solidity
36
+ function processHeldFeesOf(uint256 projectId, address token, uint256 count) external;
37
+ ```
38
+
39
+ ## Events
40
+ ### FeeReverted
41
+
42
+ ```solidity
43
+ event FeeReverted(
44
+ uint256 indexed projectId,
45
+ address indexed token,
46
+ uint256 indexed feeProjectId,
47
+ uint256 amount,
48
+ bytes reason,
49
+ address caller
50
+ );
51
+ ```
52
+
53
+ ### HoldFee
54
+
55
+ ```solidity
56
+ event HoldFee(
57
+ uint256 indexed projectId,
58
+ address indexed token,
59
+ uint256 indexed amount,
60
+ uint256 fee,
61
+ address beneficiary,
62
+ address caller
63
+ );
64
+ ```
65
+
66
+ ### ProcessFee
67
+
68
+ ```solidity
69
+ event ProcessFee(
70
+ uint256 indexed projectId,
71
+ address indexed token,
72
+ uint256 indexed amount,
73
+ bool wasHeld,
74
+ address beneficiary,
75
+ address caller
76
+ );
77
+ ```
78
+
79
+ ### ReturnHeldFees
80
+
81
+ ```solidity
82
+ event ReturnHeldFees(
83
+ uint256 indexed projectId,
84
+ address indexed token,
85
+ uint256 indexed amount,
86
+ uint256 returnedFees,
87
+ uint256 leftoverAmount,
88
+ address caller
89
+ );
90
+ ```
91
+
@@ -0,0 +1,26 @@
1
+ # IJBFeelessAddresses
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBFeelessAddresses.sol)
3
+
4
+
5
+ ## Functions
6
+ ### isFeeless
7
+
8
+
9
+ ```solidity
10
+ function isFeeless(address account) external view returns (bool);
11
+ ```
12
+
13
+ ### setFeelessAddress
14
+
15
+
16
+ ```solidity
17
+ function setFeelessAddress(address account, bool flag) external;
18
+ ```
19
+
20
+ ## Events
21
+ ### SetFeelessAddress
22
+
23
+ ```solidity
24
+ event SetFeelessAddress(address indexed addr, bool indexed isFeeless, address caller);
25
+ ```
26
+
@@ -0,0 +1,88 @@
1
+ # IJBFundAccessLimits
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBFundAccessLimits.sol)
3
+
4
+
5
+ ## Functions
6
+ ### payoutLimitOf
7
+
8
+
9
+ ```solidity
10
+ function payoutLimitOf(
11
+ uint256 projectId,
12
+ uint256 rulesetId,
13
+ address terminal,
14
+ address token,
15
+ uint256 currency
16
+ )
17
+ external
18
+ view
19
+ returns (uint256 payoutLimit);
20
+ ```
21
+
22
+ ### payoutLimitsOf
23
+
24
+
25
+ ```solidity
26
+ function payoutLimitsOf(
27
+ uint256 projectId,
28
+ uint256 rulesetId,
29
+ address terminal,
30
+ address token
31
+ )
32
+ external
33
+ view
34
+ returns (JBCurrencyAmount[] memory payoutLimits);
35
+ ```
36
+
37
+ ### surplusAllowanceOf
38
+
39
+
40
+ ```solidity
41
+ function surplusAllowanceOf(
42
+ uint256 projectId,
43
+ uint256 rulesetId,
44
+ address terminal,
45
+ address token,
46
+ uint256 currency
47
+ )
48
+ external
49
+ view
50
+ returns (uint256 surplusAllowance);
51
+ ```
52
+
53
+ ### surplusAllowancesOf
54
+
55
+
56
+ ```solidity
57
+ function surplusAllowancesOf(
58
+ uint256 projectId,
59
+ uint256 rulesetId,
60
+ address terminal,
61
+ address token
62
+ )
63
+ external
64
+ view
65
+ returns (JBCurrencyAmount[] memory surplusAllowances);
66
+ ```
67
+
68
+ ### setFundAccessLimitsFor
69
+
70
+
71
+ ```solidity
72
+ function setFundAccessLimitsFor(
73
+ uint256 projectId,
74
+ uint256 rulesetId,
75
+ JBFundAccessLimitGroup[] memory fundAccessLimitGroups
76
+ )
77
+ external;
78
+ ```
79
+
80
+ ## Events
81
+ ### SetFundAccessLimits
82
+
83
+ ```solidity
84
+ event SetFundAccessLimits(
85
+ uint256 indexed rulesetId, uint256 indexed projectId, JBFundAccessLimitGroup fundAccessLimitGroup, address caller
86
+ );
87
+ ```
88
+
@@ -0,0 +1,29 @@
1
+ # IJBMigratable
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBMigratable.sol)
3
+
4
+ **Inherits:**
5
+ IERC165
6
+
7
+
8
+ ## Functions
9
+ ### migrate
10
+
11
+
12
+ ```solidity
13
+ function migrate(uint256 projectId, IERC165 to) external;
14
+ ```
15
+
16
+ ### beforeReceiveMigrationFrom
17
+
18
+
19
+ ```solidity
20
+ function beforeReceiveMigrationFrom(IERC165 from, uint256 projectId) external;
21
+ ```
22
+
23
+ ## Events
24
+ ### Migrate
25
+
26
+ ```solidity
27
+ event Migrate(uint256 indexed projectId, IERC165 to, address caller);
28
+ ```
29
+