@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,180 @@
1
+ # JBRulesetMetadataResolver
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/libraries/JBRulesetMetadataResolver.sol)
3
+
4
+
5
+ ## Functions
6
+ ### reservedPercent
7
+
8
+
9
+ ```solidity
10
+ function reservedPercent(JBRuleset memory ruleset) internal pure returns (uint16);
11
+ ```
12
+
13
+ ### cashOutTaxRate
14
+
15
+
16
+ ```solidity
17
+ function cashOutTaxRate(JBRuleset memory ruleset) internal pure returns (uint16);
18
+ ```
19
+
20
+ ### baseCurrency
21
+
22
+
23
+ ```solidity
24
+ function baseCurrency(JBRuleset memory ruleset) internal pure returns (uint32);
25
+ ```
26
+
27
+ ### pausePay
28
+
29
+
30
+ ```solidity
31
+ function pausePay(JBRuleset memory ruleset) internal pure returns (bool);
32
+ ```
33
+
34
+ ### pauseCreditTransfers
35
+
36
+
37
+ ```solidity
38
+ function pauseCreditTransfers(JBRuleset memory ruleset) internal pure returns (bool);
39
+ ```
40
+
41
+ ### allowOwnerMinting
42
+
43
+
44
+ ```solidity
45
+ function allowOwnerMinting(JBRuleset memory ruleset) internal pure returns (bool);
46
+ ```
47
+
48
+ ### allowSetCustomToken
49
+
50
+
51
+ ```solidity
52
+ function allowSetCustomToken(JBRuleset memory ruleset) internal pure returns (bool);
53
+ ```
54
+
55
+ ### allowTerminalMigration
56
+
57
+
58
+ ```solidity
59
+ function allowTerminalMigration(JBRuleset memory ruleset) internal pure returns (bool);
60
+ ```
61
+
62
+ ### allowSetTerminals
63
+
64
+
65
+ ```solidity
66
+ function allowSetTerminals(JBRuleset memory ruleset) internal pure returns (bool);
67
+ ```
68
+
69
+ ### allowSetController
70
+
71
+
72
+ ```solidity
73
+ function allowSetController(JBRuleset memory ruleset) internal pure returns (bool);
74
+ ```
75
+
76
+ ### allowAddAccountingContext
77
+
78
+
79
+ ```solidity
80
+ function allowAddAccountingContext(JBRuleset memory ruleset) internal pure returns (bool);
81
+ ```
82
+
83
+ ### allowAddPriceFeed
84
+
85
+
86
+ ```solidity
87
+ function allowAddPriceFeed(JBRuleset memory ruleset) internal pure returns (bool);
88
+ ```
89
+
90
+ ### ownerMustSendPayouts
91
+
92
+
93
+ ```solidity
94
+ function ownerMustSendPayouts(JBRuleset memory ruleset) internal pure returns (bool);
95
+ ```
96
+
97
+ ### holdFees
98
+
99
+
100
+ ```solidity
101
+ function holdFees(JBRuleset memory ruleset) internal pure returns (bool);
102
+ ```
103
+
104
+ ### useTotalSurplusForCashOuts
105
+
106
+
107
+ ```solidity
108
+ function useTotalSurplusForCashOuts(JBRuleset memory ruleset) internal pure returns (bool);
109
+ ```
110
+
111
+ ### useDataHookForPay
112
+
113
+
114
+ ```solidity
115
+ function useDataHookForPay(JBRuleset memory ruleset) internal pure returns (bool);
116
+ ```
117
+
118
+ ### useDataHookForCashOut
119
+
120
+
121
+ ```solidity
122
+ function useDataHookForCashOut(JBRuleset memory ruleset) internal pure returns (bool);
123
+ ```
124
+
125
+ ### dataHook
126
+
127
+
128
+ ```solidity
129
+ function dataHook(JBRuleset memory ruleset) internal pure returns (address);
130
+ ```
131
+
132
+ ### metadata
133
+
134
+
135
+ ```solidity
136
+ function metadata(JBRuleset memory ruleset) internal pure returns (uint16);
137
+ ```
138
+
139
+ ### packRulesetMetadata
140
+
141
+ Pack the funding cycle metadata.
142
+
143
+
144
+ ```solidity
145
+ function packRulesetMetadata(JBRulesetMetadata memory rulesetMetadata) internal pure returns (uint256 packed);
146
+ ```
147
+ **Parameters**
148
+
149
+ |Name|Type|Description|
150
+ |----|----|-----------|
151
+ |`rulesetMetadata`|`JBRulesetMetadata`|The ruleset metadata to validate and pack.|
152
+
153
+ **Returns**
154
+
155
+ |Name|Type|Description|
156
+ |----|----|-----------|
157
+ |`packed`|`uint256`|The packed uint256 of all metadata params. The first 8 bits specify the version.|
158
+
159
+
160
+ ### expandMetadata
161
+
162
+ Expand the funding cycle metadata.
163
+
164
+
165
+ ```solidity
166
+ function expandMetadata(JBRuleset memory ruleset) internal pure returns (JBRulesetMetadata memory);
167
+ ```
168
+ **Parameters**
169
+
170
+ |Name|Type|Description|
171
+ |----|----|-----------|
172
+ |`ruleset`|`JBRuleset`|The funding cycle having its metadata expanded.|
173
+
174
+ **Returns**
175
+
176
+ |Name|Type|Description|
177
+ |----|----|-----------|
178
+ |`<none>`|`JBRulesetMetadata`|rulesetMetadata The ruleset's metadata object.|
179
+
180
+
@@ -0,0 +1,14 @@
1
+ # JBSplitGroupIds
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/libraries/JBSplitGroupIds.sol)
3
+
4
+ Group IDs that categorize splits.
5
+
6
+
7
+ ## State Variables
8
+ ### RESERVED_TOKENS
9
+
10
+ ```solidity
11
+ uint256 public constant RESERVED_TOKENS = 1;
12
+ ```
13
+
14
+
@@ -0,0 +1,44 @@
1
+ # JBSurplus
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/libraries/JBSurplus.sol)
3
+
4
+ Surplus calculations.
5
+
6
+
7
+ ## Functions
8
+ ### currentSurplusOf
9
+
10
+ Gets the total current surplus amount across all of a project's terminals.
11
+
12
+ *This amount changes as the value of the balances changes in relation to the currency being used to measure
13
+ the project's payout limits.*
14
+
15
+
16
+ ```solidity
17
+ function currentSurplusOf(
18
+ uint256 projectId,
19
+ IJBTerminal[] memory terminals,
20
+ JBAccountingContext[] memory accountingContexts,
21
+ uint256 decimals,
22
+ uint256 currency
23
+ )
24
+ internal
25
+ view
26
+ returns (uint256 surplus);
27
+ ```
28
+ **Parameters**
29
+
30
+ |Name|Type|Description|
31
+ |----|----|-----------|
32
+ |`projectId`|`uint256`|The ID of the project to get the total surplus for.|
33
+ |`terminals`|`IJBTerminal[]`|The terminals to look for surplus within.|
34
+ |`accountingContexts`|`JBAccountingContext[]`|The accounting contexts to use to calculate the surplus.|
35
+ |`decimals`|`uint256`|The number of decimals that the fixed point surplus result should include.|
36
+ |`currency`|`uint256`|The currency that the surplus result should be in terms of.|
37
+
38
+ **Returns**
39
+
40
+ |Name|Type|Description|
41
+ |----|----|-----------|
42
+ |`surplus`|`uint256`|The total surplus of a project's funds in terms of `currency`, as a fixed point number with the specified number of decimals.|
43
+
44
+
@@ -0,0 +1,12 @@
1
+
2
+
3
+ # Contents
4
+ - [JBCashOuts](JBCashOuts.sol/library.JBCashOuts.md)
5
+ - [JBConstants](JBConstants.sol/library.JBConstants.md)
6
+ - [JBCurrencyIds](JBCurrencyIds.sol/library.JBCurrencyIds.md)
7
+ - [JBFees](JBFees.sol/library.JBFees.md)
8
+ - [JBFixedPointNumber](JBFixedPointNumber.sol/library.JBFixedPointNumber.md)
9
+ - [JBMetadataResolver](JBMetadataResolver.sol/library.JBMetadataResolver.md)
10
+ - [JBRulesetMetadataResolver](JBRulesetMetadataResolver.sol/library.JBRulesetMetadataResolver.md)
11
+ - [JBSplitGroupIds](JBSplitGroupIds.sol/library.JBSplitGroupIds.md)
12
+ - [JBSurplus](JBSurplus.sol/library.JBSurplus.md)
@@ -0,0 +1,15 @@
1
+ # JBDeadline1Day
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/periphery/JBDeadline1Day.sol)
3
+
4
+ **Inherits:**
5
+ [JBDeadline](/src/JBDeadline.sol/contract.JBDeadline.md)
6
+
7
+
8
+ ## Functions
9
+ ### constructor
10
+
11
+
12
+ ```solidity
13
+ constructor() JBDeadline(1 days);
14
+ ```
15
+
@@ -0,0 +1,15 @@
1
+ # JBDeadline3Days
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/periphery/JBDeadline3Days.sol)
3
+
4
+ **Inherits:**
5
+ [JBDeadline](/src/JBDeadline.sol/contract.JBDeadline.md)
6
+
7
+
8
+ ## Functions
9
+ ### constructor
10
+
11
+
12
+ ```solidity
13
+ constructor() JBDeadline(3 days);
14
+ ```
15
+
@@ -0,0 +1,15 @@
1
+ # JBDeadline3Hours
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/periphery/JBDeadline3Hours.sol)
3
+
4
+ **Inherits:**
5
+ [JBDeadline](/src/JBDeadline.sol/contract.JBDeadline.md)
6
+
7
+
8
+ ## Functions
9
+ ### constructor
10
+
11
+
12
+ ```solidity
13
+ constructor() JBDeadline(3 hours);
14
+ ```
15
+
@@ -0,0 +1,15 @@
1
+ # JBDeadline7Days
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/periphery/JBDeadline7Days.sol)
3
+
4
+ **Inherits:**
5
+ [JBDeadline](/src/JBDeadline.sol/contract.JBDeadline.md)
6
+
7
+
8
+ ## Functions
9
+ ### constructor
10
+
11
+
12
+ ```solidity
13
+ constructor() JBDeadline(7 days);
14
+ ```
15
+
@@ -0,0 +1,22 @@
1
+ # JBMatchingPriceFeed
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/periphery/JBMatchingPriceFeed.sol)
3
+
4
+ **Inherits:**
5
+ [IJBPriceFeed](/src/interfaces/IJBPriceFeed.sol/interface.IJBPriceFeed.md)
6
+
7
+
8
+ ## Functions
9
+ ### constructor
10
+
11
+
12
+ ```solidity
13
+ constructor();
14
+ ```
15
+
16
+ ### currentUnitPrice
17
+
18
+
19
+ ```solidity
20
+ function currentUnitPrice(uint256 decimals) public view virtual override returns (uint256);
21
+ ```
22
+
@@ -0,0 +1,8 @@
1
+
2
+
3
+ # Contents
4
+ - [JBDeadline1Day](JBDeadline1Day.sol/contract.JBDeadline1Day.md)
5
+ - [JBDeadline3Days](JBDeadline3Days.sol/contract.JBDeadline3Days.md)
6
+ - [JBDeadline3Hours](JBDeadline3Hours.sol/contract.JBDeadline3Hours.md)
7
+ - [JBDeadline7Days](JBDeadline7Days.sol/contract.JBDeadline7Days.md)
8
+ - [JBMatchingPriceFeed](JBMatchingPriceFeed.sol/contract.JBMatchingPriceFeed.md)
@@ -0,0 +1,20 @@
1
+ # JBAccountingContext
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/structs/JBAccountingContext.sol)
3
+
4
+ **Notes:**
5
+ - member: token The address of the token that accounting is being done with.
6
+
7
+ - member: decimals The number of decimals expected in that token's fixed point accounting.
8
+
9
+ - member: currency The currency that the token is priced in terms of. By convention, this is
10
+ `uint32(uint160(tokenAddress))` for tokens, or a constant ID from e.g. `JBCurrencyIds` for other currencies.
11
+
12
+
13
+ ```solidity
14
+ struct JBAccountingContext {
15
+ address token;
16
+ uint8 decimals;
17
+ uint32 currency;
18
+ }
19
+ ```
20
+
@@ -0,0 +1,43 @@
1
+ # JBAfterCashOutRecordedContext
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/structs/JBAfterCashOutRecordedContext.sol)
3
+
4
+ **Notes:**
5
+ - member: holder The holder of the tokens being cashed out.
6
+
7
+ - member: projectId The ID of the project being cashed out from.
8
+
9
+ - member: rulesetId The ID of the ruleset the cash out is being made during.
10
+
11
+ - member: cashOutCount The number of project tokens being cashed out.
12
+
13
+ - member: cashOutTaxRate The current ruleset's cash out tax rate.
14
+
15
+ - member: reclaimedAmount The token amount being reclaimed from the project's terminal balance. Includes the
16
+ token being
17
+ reclaimed, the value, the number of decimals included, and the currency of the amount.
18
+
19
+ - member: forwardedAmount The token amount being forwarded to the cash out hook. Includes the token
20
+ being forwarded, the value, the number of decimals included, and the currency of the amount.
21
+
22
+ - member: beneficiary The address the reclaimed amount will be sent to.
23
+
24
+ - member: hookMetadata Extra data specified by the data hook, which is sent to the cash out hook.
25
+
26
+ - member: cashOutMetadata Extra data specified by the account cashing out, which is sent to the cash out hook.
27
+
28
+
29
+ ```solidity
30
+ struct JBAfterCashOutRecordedContext {
31
+ address holder;
32
+ uint256 projectId;
33
+ uint256 rulesetId;
34
+ uint256 cashOutCount;
35
+ JBTokenAmount reclaimedAmount;
36
+ JBTokenAmount forwardedAmount;
37
+ uint256 cashOutTaxRate;
38
+ address payable beneficiary;
39
+ bytes hookMetadata;
40
+ bytes cashOutMetadata;
41
+ }
42
+ ```
43
+
@@ -0,0 +1,42 @@
1
+ # JBAfterPayRecordedContext
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/structs/JBAfterPayRecordedContext.sol)
3
+
4
+ **Notes:**
5
+ - member: payer The address the payment originated from.
6
+
7
+ - member: projectId The ID of the project being paid.
8
+
9
+ - member: rulesetId The ID of the ruleset the payment is being made during.
10
+
11
+ - member: amount The payment's token amount. Includes the token being paid, the value, the number of decimals
12
+ included, and the currency of the amount.
13
+
14
+ - member: forwardedAmount The token amount being forwarded to the pay hook. Includes the token
15
+ being paid, the value, the number of decimals included, and the currency of the amount.
16
+
17
+ - member: weight The current ruleset's weight (used to determine how many tokens should be minted).
18
+
19
+ - member: newlyIssuedTokenCount The number of project tokens minted for the beneficiary.
20
+
21
+ - member: beneficiary The address which receives any tokens this payment yields.
22
+
23
+ - member: hookMetadata Extra data specified by the data hook, which is sent to the pay hook.
24
+
25
+ - member: payerMetadata Extra data specified by the payer, which is sent to the pay hook.
26
+
27
+
28
+ ```solidity
29
+ struct JBAfterPayRecordedContext {
30
+ address payer;
31
+ uint256 projectId;
32
+ uint256 rulesetId;
33
+ JBTokenAmount amount;
34
+ JBTokenAmount forwardedAmount;
35
+ uint256 weight;
36
+ uint256 newlyIssuedTokenCount;
37
+ address beneficiary;
38
+ bytes hookMetadata;
39
+ bytes payerMetadata;
40
+ }
41
+ ```
42
+
@@ -0,0 +1,45 @@
1
+ # JBBeforeCashOutRecordedContext
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/structs/JBBeforeCashOutRecordedContext.sol)
3
+
4
+ Context sent from the terminal to the ruleset's data hook upon cash out.
5
+
6
+ **Notes:**
7
+ - member: terminal The terminal that is facilitating the cash out.
8
+
9
+ - member: holder The holder of the tokens being cashed out.
10
+
11
+ - member: projectId The ID of the project whose tokens are being cashed out.
12
+
13
+ - member: rulesetId The ID of the ruleset the cash out is being made during.
14
+
15
+ - member: cashOutCount The number of tokens being cashed out, as a fixed point number with 18 decimals.
16
+
17
+ - member: totalSupply The total token supply being used for the calculation, as a fixed point number with 18
18
+ decimals.
19
+
20
+ - member: surplus The surplus amount used for the calculation, as a fixed point number with 18 decimals.
21
+ Includes the token of the surplus, the surplus value, the number of decimals
22
+ included, and the currency of the surplus.
23
+
24
+ - member: useTotalSurplus If surplus across all of a project's terminals is being used when making cash outs.
25
+
26
+ - member: cashOutTaxRate The cash out tax rate of the ruleset the cash out is being made during.
27
+
28
+ - member: metadata Extra data provided by the casher.
29
+
30
+
31
+ ```solidity
32
+ struct JBBeforeCashOutRecordedContext {
33
+ address terminal;
34
+ address holder;
35
+ uint256 projectId;
36
+ uint256 rulesetId;
37
+ uint256 cashOutCount;
38
+ uint256 totalSupply;
39
+ JBTokenAmount surplus;
40
+ bool useTotalSurplus;
41
+ uint256 cashOutTaxRate;
42
+ bytes metadata;
43
+ }
44
+ ```
45
+
@@ -0,0 +1,41 @@
1
+ # JBBeforePayRecordedContext
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/structs/JBBeforePayRecordedContext.sol)
3
+
4
+ Context sent from the terminal to the ruleset's data hook upon payment.
5
+
6
+ **Notes:**
7
+ - member: terminal The terminal that is facilitating the payment.
8
+
9
+ - member: payer The address that the payment originated from.
10
+
11
+ - member: amount The payment's token amount, including the token being paid, the value, the number of decimals
12
+ included, and the currency of the amount.
13
+
14
+ - member: projectId The ID of the project being paid.
15
+
16
+ - member: rulesetId The ID of the ruleset the payment is being made during.
17
+
18
+ - member: beneficiary The specified address that should be the beneficiary of anything that this payment
19
+ yields.
20
+
21
+ - member: weight The weight of the ruleset during which the payment is being made.
22
+
23
+ - member: reservedPercent The reserved percent of the ruleset the payment is being made during.
24
+
25
+ - member: metadata Extra data specified by the payer.
26
+
27
+
28
+ ```solidity
29
+ struct JBBeforePayRecordedContext {
30
+ address terminal;
31
+ address payer;
32
+ JBTokenAmount amount;
33
+ uint256 projectId;
34
+ uint256 rulesetId;
35
+ address beneficiary;
36
+ uint256 weight;
37
+ uint256 reservedPercent;
38
+ bytes metadata;
39
+ }
40
+ ```
41
+
@@ -0,0 +1,22 @@
1
+ # JBCashOutHookSpecification
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/structs/JBCashOutHookSpecification.sol)
3
+
4
+ A cash out hook specification sent from the ruleset's data hook back to the terminal. This specification is
5
+ fulfilled by the terminal.
6
+
7
+ **Notes:**
8
+ - member: hook The cash out hook to use when fulfilling this specification.
9
+
10
+ - member: amount The amount to send to the hook.
11
+
12
+ - member: metadata Metadata to pass to the hook.
13
+
14
+
15
+ ```solidity
16
+ struct JBCashOutHookSpecification {
17
+ IJBCashOutHook hook;
18
+ uint256 amount;
19
+ bytes metadata;
20
+ }
21
+ ```
22
+
@@ -0,0 +1,17 @@
1
+ # JBCurrencyAmount
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/structs/JBCurrencyAmount.sol)
3
+
4
+ **Notes:**
5
+ - member: amount The amount of the currency.
6
+
7
+ - member: currency The currency. By convention, this is `uint32(uint160(tokenAddress))` for tokens, or a
8
+ constant ID from e.g. `JBCurrencyIds` for other currencies.
9
+
10
+
11
+ ```solidity
12
+ struct JBCurrencyAmount {
13
+ uint224 amount;
14
+ uint32 currency;
15
+ }
16
+ ```
17
+
@@ -0,0 +1,20 @@
1
+ # JBFee
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/structs/JBFee.sol)
3
+
4
+ **Notes:**
5
+ - member: amount The total amount the fee was taken from, as a fixed point number with the same number of
6
+ decimals as the terminal in which this struct was created.
7
+
8
+ - member: beneficiary The address that will receive the tokens that are minted as a result of the fee payment.
9
+
10
+ - member: unlockTimestamp The timestamp at which the fee is unlocked and can be processed.
11
+
12
+
13
+ ```solidity
14
+ struct JBFee {
15
+ uint256 amount;
16
+ address beneficiary;
17
+ uint48 unlockTimestamp;
18
+ }
19
+ ```
20
+
@@ -0,0 +1,39 @@
1
+ # JBFundAccessLimitGroup
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/structs/JBFundAccessLimitGroup.sol)
3
+
4
+ *Payout limit example: if the `amount` is 5, the `currency` is 1 (USD), and the terminal's token is ETH, then
5
+ the project can pay out 5 USD worth of ETH during a ruleset.*
6
+
7
+ *Surplus allowance example: if the `amount` is 5, the `currency` is 1 (USD), and the terminal's token is ETH,
8
+ then the project can pay out 5 USD worth of ETH from its surplus during a ruleset. A project's surplus is its
9
+ balance minus its current combined payout limit.*
10
+
11
+ *If a project has multiple payout limits or surplus allowances, they are all available. They can all be used
12
+ during a single ruleset.*
13
+
14
+ *The payout limits' and surplus allowances' fixed point amounts have the same number of decimals as the
15
+ terminal.*
16
+
17
+ **Notes:**
18
+ - member: terminal The terminal that the payout limits and surplus allowances apply to.
19
+
20
+ - member: token The token that the payout limits and surplus allowances apply to within the `terminal`.
21
+
22
+ - member: payoutLimits An array of payout limits. The payout limits cumulatively dictate the maximum value of
23
+ `token`s a project can pay out from its balance in a terminal during a ruleset. Each payout limit can have a unique
24
+ currency and amount.
25
+
26
+ - member: surplusAllowances An array of surplus allowances. The surplus allowances cumulatively dictates the
27
+ maximum value of `token`s a project can pay out from its surplus (balance less payouts) in a terminal during a
28
+ ruleset. Each surplus allowance can have a unique currency and amount.
29
+
30
+
31
+ ```solidity
32
+ struct JBFundAccessLimitGroup {
33
+ address terminal;
34
+ address token;
35
+ JBCurrencyAmount[] payoutLimits;
36
+ JBCurrencyAmount[] surplusAllowances;
37
+ }
38
+ ```
39
+
@@ -0,0 +1,22 @@
1
+ # JBPayHookSpecification
2
+ [Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/structs/JBPayHookSpecification.sol)
3
+
4
+ A pay hook specification sent from the ruleset's data hook back to the terminal. This specification is
5
+ fulfilled by the terminal.
6
+
7
+ **Notes:**
8
+ - member: hook The pay hook to use when fulfilling this specification.
9
+
10
+ - member: amount The amount to send to the hook.
11
+
12
+ - member: metadata Metadata to pass the hook.
13
+
14
+
15
+ ```solidity
16
+ struct JBPayHookSpecification {
17
+ IJBPayHook hook;
18
+ uint256 amount;
19
+ bytes metadata;
20
+ }
21
+ ```
22
+