@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.
- package/LICENSE +21 -0
- package/README.md +112 -0
- package/SKILLS.md +151 -0
- package/docs/book.css +13 -0
- package/docs/book.toml +12 -0
- package/docs/solidity.min.js +74 -0
- package/docs/src/README.md +703 -0
- package/docs/src/SUMMARY.md +94 -0
- package/docs/src/src/JBChainlinkV3PriceFeed.sol/contract.JBChainlinkV3PriceFeed.md +83 -0
- package/docs/src/src/JBChainlinkV3SequencerPriceFeed.sol/contract.JBChainlinkV3SequencerPriceFeed.md +88 -0
- package/docs/src/src/JBController.sol/contract.JBController.md +1121 -0
- package/docs/src/src/JBDeadline.sol/contract.JBDeadline.md +84 -0
- package/docs/src/src/JBDirectory.sol/contract.JBDirectory.md +294 -0
- package/docs/src/src/JBERC20.sol/contract.JBERC20.md +190 -0
- package/docs/src/src/JBFeelessAddresses.sol/contract.JBFeelessAddresses.md +80 -0
- package/docs/src/src/JBFundAccessLimits.sol/contract.JBFundAccessLimits.md +253 -0
- package/docs/src/src/JBMultiTerminal.sol/contract.JBMultiTerminal.md +1472 -0
- package/docs/src/src/JBPermissions.sol/contract.JBPermissions.md +199 -0
- package/docs/src/src/JBPrices.sol/contract.JBPrices.md +154 -0
- package/docs/src/src/JBProjects.sol/contract.JBProjects.md +131 -0
- package/docs/src/src/JBRulesets.sol/contract.JBRulesets.md +677 -0
- package/docs/src/src/JBSplits.sol/contract.JBSplits.md +237 -0
- package/docs/src/src/JBTerminalStore.sol/contract.JBTerminalStore.md +591 -0
- package/docs/src/src/JBTokens.sol/contract.JBTokens.md +353 -0
- package/docs/src/src/README.md +25 -0
- package/docs/src/src/abstract/JBControlled.sol/abstract.JBControlled.md +64 -0
- package/docs/src/src/abstract/JBPermissioned.sol/abstract.JBPermissioned.md +84 -0
- package/docs/src/src/abstract/README.md +5 -0
- package/docs/src/src/enums/JBApprovalStatus.sol/enum.JBApprovalStatus.md +17 -0
- package/docs/src/src/enums/README.md +4 -0
- package/docs/src/src/interfaces/IJBCashOutHook.sol/interface.IJBCashOutHook.md +29 -0
- package/docs/src/src/interfaces/IJBCashOutTerminal.sol/interface.IJBCashOutTerminal.md +57 -0
- package/docs/src/src/interfaces/IJBControlled.sol/interface.IJBControlled.md +12 -0
- package/docs/src/src/interfaces/IJBController.sol/interface.IJBController.md +334 -0
- package/docs/src/src/interfaces/IJBDirectory.sol/interface.IJBDirectory.md +108 -0
- package/docs/src/src/interfaces/IJBDirectoryAccessControl.sol/interface.IJBDirectoryAccessControl.md +19 -0
- package/docs/src/src/interfaces/IJBFeeTerminal.sol/interface.IJBFeeTerminal.md +91 -0
- package/docs/src/src/interfaces/IJBFeelessAddresses.sol/interface.IJBFeelessAddresses.md +26 -0
- package/docs/src/src/interfaces/IJBFundAccessLimits.sol/interface.IJBFundAccessLimits.md +88 -0
- package/docs/src/src/interfaces/IJBMigratable.sol/interface.IJBMigratable.md +29 -0
- package/docs/src/src/interfaces/IJBMultiTerminal.sol/interface.IJBMultiTerminal.md +50 -0
- package/docs/src/src/interfaces/IJBPayHook.sol/interface.IJBPayHook.md +28 -0
- package/docs/src/src/interfaces/IJBPayoutTerminal.sol/interface.IJBPayoutTerminal.md +105 -0
- package/docs/src/src/interfaces/IJBPermissioned.sol/interface.IJBPermissioned.md +12 -0
- package/docs/src/src/interfaces/IJBPermissions.sol/interface.IJBPermissions.md +74 -0
- package/docs/src/src/interfaces/IJBPermitTerminal.sol/interface.IJBPermitTerminal.md +15 -0
- package/docs/src/src/interfaces/IJBPriceFeed.sol/interface.IJBPriceFeed.md +12 -0
- package/docs/src/src/interfaces/IJBPrices.sol/interface.IJBPrices.md +74 -0
- package/docs/src/src/interfaces/IJBProjectUriRegistry.sol/interface.IJBProjectUriRegistry.md +19 -0
- package/docs/src/src/interfaces/IJBProjects.sol/interface.IJBProjects.md +49 -0
- package/docs/src/src/interfaces/IJBRulesetApprovalHook.sol/interface.IJBRulesetApprovalHook.md +35 -0
- package/docs/src/src/interfaces/IJBRulesetDataHook.sol/interface.IJBRulesetDataHook.md +97 -0
- package/docs/src/src/interfaces/IJBRulesets.sol/interface.IJBRulesets.md +165 -0
- package/docs/src/src/interfaces/IJBSplitHook.sol/interface.IJBSplitHook.md +31 -0
- package/docs/src/src/interfaces/IJBSplits.sol/interface.IJBSplits.md +35 -0
- package/docs/src/src/interfaces/IJBTerminal.sol/interface.IJBTerminal.md +141 -0
- package/docs/src/src/interfaces/IJBTerminalStore.sol/interface.IJBTerminalStore.md +198 -0
- package/docs/src/src/interfaces/IJBToken.sol/interface.IJBToken.md +54 -0
- package/docs/src/src/interfaces/IJBTokenUriResolver.sol/interface.IJBTokenUriResolver.md +12 -0
- package/docs/src/src/interfaces/IJBTokens.sol/interface.IJBTokens.md +151 -0
- package/docs/src/src/interfaces/README.md +33 -0
- package/docs/src/src/libraries/JBCashOuts.sol/library.JBCashOuts.md +40 -0
- package/docs/src/src/libraries/JBConstants.sol/library.JBConstants.md +52 -0
- package/docs/src/src/libraries/JBCurrencyIds.sol/library.JBCurrencyIds.md +19 -0
- package/docs/src/src/libraries/JBFees.sol/library.JBFees.md +52 -0
- package/docs/src/src/libraries/JBFixedPointNumber.sol/library.JBFixedPointNumber.md +12 -0
- package/docs/src/src/libraries/JBMetadataResolver.sol/library.JBMetadataResolver.md +242 -0
- package/docs/src/src/libraries/JBRulesetMetadataResolver.sol/library.JBRulesetMetadataResolver.md +180 -0
- package/docs/src/src/libraries/JBSplitGroupIds.sol/library.JBSplitGroupIds.md +14 -0
- package/docs/src/src/libraries/JBSurplus.sol/library.JBSurplus.md +44 -0
- package/docs/src/src/libraries/README.md +12 -0
- package/docs/src/src/periphery/JBDeadline1Day.sol/contract.JBDeadline1Day.md +15 -0
- package/docs/src/src/periphery/JBDeadline3Days.sol/contract.JBDeadline3Days.md +15 -0
- package/docs/src/src/periphery/JBDeadline3Hours.sol/contract.JBDeadline3Hours.md +15 -0
- package/docs/src/src/periphery/JBDeadline7Days.sol/contract.JBDeadline7Days.md +15 -0
- package/docs/src/src/periphery/JBMatchingPriceFeed.sol/contract.JBMatchingPriceFeed.md +22 -0
- package/docs/src/src/periphery/README.md +8 -0
- package/docs/src/src/structs/JBAccountingContext.sol/struct.JBAccountingContext.md +20 -0
- package/docs/src/src/structs/JBAfterCashOutRecordedContext.sol/struct.JBAfterCashOutRecordedContext.md +43 -0
- package/docs/src/src/structs/JBAfterPayRecordedContext.sol/struct.JBAfterPayRecordedContext.md +42 -0
- package/docs/src/src/structs/JBBeforeCashOutRecordedContext.sol/struct.JBBeforeCashOutRecordedContext.md +45 -0
- package/docs/src/src/structs/JBBeforePayRecordedContext.sol/struct.JBBeforePayRecordedContext.md +41 -0
- package/docs/src/src/structs/JBCashOutHookSpecification.sol/struct.JBCashOutHookSpecification.md +22 -0
- package/docs/src/src/structs/JBCurrencyAmount.sol/struct.JBCurrencyAmount.md +17 -0
- package/docs/src/src/structs/JBFee.sol/struct.JBFee.md +20 -0
- package/docs/src/src/structs/JBFundAccessLimitGroup.sol/struct.JBFundAccessLimitGroup.md +39 -0
- package/docs/src/src/structs/JBPayHookSpecification.sol/struct.JBPayHookSpecification.md +22 -0
- package/docs/src/src/structs/JBPermissionsData.sol/struct.JBPermissionsData.md +21 -0
- package/docs/src/src/structs/JBRuleset.sol/struct.JBRuleset.md +55 -0
- package/docs/src/src/structs/JBRulesetConfig.sol/struct.JBRulesetConfig.md +51 -0
- package/docs/src/src/structs/JBRulesetMetadata.sol/struct.JBRulesetMetadata.md +79 -0
- package/docs/src/src/structs/JBRulesetWeightCache.sol/struct.JBRulesetWeightCache.md +16 -0
- package/docs/src/src/structs/JBRulesetWithMetadata.sol/struct.JBRulesetWithMetadata.md +16 -0
- package/docs/src/src/structs/JBSingleAllowance.sol/struct.JBSingleAllowance.md +26 -0
- package/docs/src/src/structs/JBSplit.sol/struct.JBSplit.md +49 -0
- package/docs/src/src/structs/JBSplitGroup.sol/struct.JBSplitGroup.md +17 -0
- package/docs/src/src/structs/JBSplitHookContext.sol/struct.JBSplitHookContext.md +29 -0
- package/docs/src/src/structs/JBTerminalConfig.sol/struct.JBTerminalConfig.md +16 -0
- package/docs/src/src/structs/JBTokenAmount.sol/struct.JBTokenAmount.md +23 -0
- package/docs/src/src/structs/README.md +25 -0
- package/foundry.lock +11 -0
- package/foundry.toml +41 -0
- package/package.json +38 -0
- package/remappings.txt +1 -0
- package/script/Deploy.s.sol +111 -0
- package/script/DeployPeriphery.s.sol +287 -0
- package/script/helpers/CoreDeploymentLib.sol +121 -0
- package/slither-ci.config.json +10 -0
- package/sphinx.lock +507 -0
- package/src/JBChainlinkV3PriceFeed.sol +77 -0
- package/src/JBChainlinkV3SequencerPriceFeed.sol +75 -0
- package/src/JBController.sol +1186 -0
- package/src/JBDeadline.sol +73 -0
- package/src/JBDirectory.sol +343 -0
- package/src/JBERC20.sol +131 -0
- package/src/JBFeelessAddresses.sol +54 -0
- package/src/JBFundAccessLimits.sol +308 -0
- package/src/JBMultiTerminal.sol +2024 -0
- package/src/JBPermissions.sol +252 -0
- package/src/JBPrices.sol +227 -0
- package/src/JBProjects.sol +126 -0
- package/src/JBRulesets.sol +1093 -0
- package/src/JBSplits.sol +324 -0
- package/src/JBTerminalStore.sol +908 -0
- package/src/JBTokens.sol +376 -0
- package/src/abstract/JBControlled.sol +48 -0
- package/src/abstract/JBPermissioned.sol +77 -0
- package/src/enums/JBApprovalStatus.sol +12 -0
- package/src/interfaces/IJBCashOutHook.sol +15 -0
- package/src/interfaces/IJBCashOutTerminal.sol +51 -0
- package/src/interfaces/IJBControlled.sol +10 -0
- package/src/interfaces/IJBController.sol +280 -0
- package/src/interfaces/IJBDirectory.sol +69 -0
- package/src/interfaces/IJBDirectoryAccessControl.sol +15 -0
- package/src/interfaces/IJBFeeTerminal.sol +61 -0
- package/src/interfaces/IJBFeelessAddresses.sol +17 -0
- package/src/interfaces/IJBFundAccessLimits.sol +94 -0
- package/src/interfaces/IJBMigratable.sol +24 -0
- package/src/interfaces/IJBMultiTerminal.sol +36 -0
- package/src/interfaces/IJBPayHook.sol +14 -0
- package/src/interfaces/IJBPayoutTerminal.sol +92 -0
- package/src/interfaces/IJBPermissioned.sol +10 -0
- package/src/interfaces/IJBPermissions.sol +71 -0
- package/src/interfaces/IJBPermitTerminal.sol +14 -0
- package/src/interfaces/IJBPriceFeed.sol +10 -0
- package/src/interfaces/IJBPrices.sol +65 -0
- package/src/interfaces/IJBProjectUriRegistry.sol +15 -0
- package/src/interfaces/IJBProjects.sol +27 -0
- package/src/interfaces/IJBRulesetApprovalHook.sol +21 -0
- package/src/interfaces/IJBRulesetDataHook.sol +56 -0
- package/src/interfaces/IJBRulesets.sol +151 -0
- package/src/interfaces/IJBSplitHook.sol +16 -0
- package/src/interfaces/IJBSplits.sol +28 -0
- package/src/interfaces/IJBTerminal.sol +120 -0
- package/src/interfaces/IJBTerminalStore.sol +225 -0
- package/src/interfaces/IJBToken.sol +39 -0
- package/src/interfaces/IJBTokenUriResolver.sol +10 -0
- package/src/interfaces/IJBTokens.sol +113 -0
- package/src/libraries/JBCashOuts.sol +120 -0
- package/src/libraries/JBConstants.sol +14 -0
- package/src/libraries/JBCurrencyIds.sol +7 -0
- package/src/libraries/JBFees.sol +28 -0
- package/src/libraries/JBFixedPointNumber.sol +12 -0
- package/src/libraries/JBMetadataResolver.sol +306 -0
- package/src/libraries/JBRulesetMetadataResolver.sol +160 -0
- package/src/libraries/JBSplitGroupIds.sol +7 -0
- package/src/libraries/JBSurplus.sol +40 -0
- package/src/periphery/JBDeadline1Day.sol +8 -0
- package/src/periphery/JBDeadline3Days.sol +8 -0
- package/src/periphery/JBDeadline3Hours.sol +8 -0
- package/src/periphery/JBDeadline7Days.sol +8 -0
- package/src/periphery/JBMatchingPriceFeed.sol +13 -0
- package/src/structs/JBAccountingContext.sol +12 -0
- package/src/structs/JBAfterCashOutRecordedContext.sol +30 -0
- package/src/structs/JBAfterPayRecordedContext.sol +29 -0
- package/src/structs/JBBeforeCashOutRecordedContext.sol +31 -0
- package/src/structs/JBBeforePayRecordedContext.sol +28 -0
- package/src/structs/JBCashOutHookSpecification.sol +15 -0
- package/src/structs/JBCurrencyAmount.sol +10 -0
- package/src/structs/JBFee.sol +12 -0
- package/src/structs/JBFundAccessLimitGroup.sol +28 -0
- package/src/structs/JBPayHookSpecification.sol +15 -0
- package/src/structs/JBPermissionsData.sol +13 -0
- package/src/structs/JBRuleset.sol +42 -0
- package/src/structs/JBRulesetConfig.sol +43 -0
- package/src/structs/JBRulesetMetadata.sol +56 -0
- package/src/structs/JBRulesetWeightCache.sol +9 -0
- package/src/structs/JBRulesetWithMetadata.sol +12 -0
- package/src/structs/JBSingleAllowance.sol +16 -0
- package/src/structs/JBSplit.sol +37 -0
- package/src/structs/JBSplitGroup.sol +12 -0
- package/src/structs/JBSplitHookContext.sol +20 -0
- package/src/structs/JBTerminalConfig.sol +12 -0
- package/src/structs/JBTokenAmount.sol +14 -0
- package/test/AuditExploits.t.sol +2710 -0
- package/test/ComprehensiveInvariant.t.sol +298 -0
- package/test/EconomicSimulation.t.sol +340 -0
- package/test/EntryPointPermutations.t.sol +671 -0
- package/test/FlashLoanAttacks.t.sol +792 -0
- package/test/PermissionEscalation.t.sol +679 -0
- package/test/RulesetTransitions.t.sol +699 -0
- package/test/SplitLoopTests.t.sol +731 -0
- package/test/TestAccessToFunds.sol +2644 -0
- package/test/TestCashOut.sol +185 -0
- package/test/TestCashOutCountFor.sol +272 -0
- package/test/TestCashOutHooks.sol +317 -0
- package/test/TestCashOutTimingEdge.sol +229 -0
- package/test/TestDurationUnderflow.sol +220 -0
- package/test/TestFeeProcessingFailure.sol +208 -0
- package/test/TestFees.sol +604 -0
- package/test/TestInterfaceSupport.sol +62 -0
- package/test/TestJBERC20Inheritance.sol +91 -0
- package/test/TestLaunchProject.sol +176 -0
- package/test/TestMetaTx.sol +203 -0
- package/test/TestMetadataParserLib.sol +438 -0
- package/test/TestMigrationHeldFees.sol +249 -0
- package/test/TestMintTokensOf.sol +172 -0
- package/test/TestMultiTokenSurplus.sol +206 -0
- package/test/TestMultipleAccessLimits.sol +642 -0
- package/test/TestPayBurnRedeemFlow.sol +180 -0
- package/test/TestPayHooks.sol +190 -0
- package/test/TestPermissions.sol +305 -0
- package/test/TestPermissionsEdge.sol +286 -0
- package/test/TestPermit2Terminal.sol +339 -0
- package/test/TestRulesetQueueing.sol +1001 -0
- package/test/TestRulesetQueuingStress.sol +778 -0
- package/test/TestRulesetWeightCaching.sol +177 -0
- package/test/TestSplits.sol +369 -0
- package/test/TestTerminalMigration.sol +167 -0
- package/test/TestTokenFlow.sol +174 -0
- package/test/WeirdTokenTests.t.sol +764 -0
- package/test/formal/BondingCurveProperties.t.sol +411 -0
- package/test/formal/FeeProperties.t.sol +246 -0
- package/test/helpers/JBTest.sol +129 -0
- package/test/helpers/MetadataResolverHelper.sol +116 -0
- package/test/helpers/TestBaseWorkflow.sol +317 -0
- package/test/invariants/Phase3DeepInvariant.t.sol +404 -0
- package/test/invariants/RulesetsInvariant.t.sol +115 -0
- package/test/invariants/TerminalStoreInvariant.t.sol +220 -0
- package/test/invariants/TokensInvariant.t.sol +184 -0
- package/test/invariants/handlers/ComprehensiveHandler.sol +285 -0
- package/test/invariants/handlers/EconomicHandler.sol +347 -0
- package/test/invariants/handlers/Phase3Handler.sol +414 -0
- package/test/invariants/handlers/RulesetsHandler.sol +111 -0
- package/test/invariants/handlers/TerminalStoreHandler.sol +146 -0
- package/test/invariants/handlers/TokensHandler.sol +127 -0
- package/test/mock/ERC2771ForwarderMock.sol +37 -0
- package/test/mock/MockERC20.sol +18 -0
- package/test/mock/MockMaliciousBeneficiary.sol +67 -0
- package/test/mock/MockMaliciousSplitHook.sol +42 -0
- package/test/mock/MockPriceFeed.sol +20 -0
- package/test/trees/JBController/burnTokensOf.tree +9 -0
- package/test/trees/JBController/claimTokensFor.tree +5 -0
- package/test/trees/JBController/deployERC20For.tree +5 -0
- package/test/trees/JBController/getRulesetOf.tree +5 -0
- package/test/trees/JBController/launchProjectFor.tree +12 -0
- package/test/trees/JBController/launchRulesetsFor.tree +8 -0
- package/test/trees/JBController/migrateController.tree +12 -0
- package/test/trees/JBController/mintTokensOf.tree +12 -0
- package/test/trees/JBController/payReservedTokenToTerminal.tree +8 -0
- package/test/trees/JBController/receiveMigrationFrom.tree +4 -0
- package/test/trees/JBController/sendReservedTokensToSplitsOf.tree +12 -0
- package/test/trees/JBController/setMetadataOf.tree +5 -0
- package/test/trees/JBController/setSplitGroupsOf.tree +5 -0
- package/test/trees/JBController/setTokenFor.tree +5 -0
- package/test/trees/JBController/transferCreditsFrom.tree +8 -0
- package/test/trees/JBDirectory/primaryTerminalOf.tree +8 -0
- package/test/trees/JBDirectory/setControllerOf.tree +11 -0
- package/test/trees/JBDirectory/setPrimaryTerminalOf.tree +15 -0
- package/test/trees/JBDirectory/setTerminalsOf.tree +11 -0
- package/test/trees/JBERC20/initialize.tree +7 -0
- package/test/trees/JBERC20/name.tree +5 -0
- package/test/trees/JBERC20/nonces.tree +5 -0
- package/test/trees/JBERC20/symbol.tree +5 -0
- package/test/trees/JBFeelessAddresses/setFeelessAddress.tree +5 -0
- package/test/trees/JBFeelessAddresses/supportsInterface.tree +5 -0
- package/test/trees/JBFundAccessLimits/payoutLimitOf.tree +5 -0
- package/test/trees/JBFundAccessLimits/payoutLimitsOf.tree +8 -0
- package/test/trees/JBFundAccessLimits/setFundAccessLimitsFor.tree +18 -0
- package/test/trees/JBFundAccessLimits/surplusAllowanceOf.tree +5 -0
- package/test/trees/JBFundAccessLimits/surplusAllowancesOf.tree +8 -0
- package/test/trees/JBMetadataResolver/getDataFor.tree +8 -0
- package/test/trees/JBMultiTerminal/accountingContextsOf.tree +5 -0
- package/test/trees/JBMultiTerminal/addAccountingContextsFor.tree +10 -0
- package/test/trees/JBMultiTerminal/addToBalanceOf.tree +23 -0
- package/test/trees/JBMultiTerminal/cashOutTokensOf.tree +23 -0
- package/test/trees/JBMultiTerminal/executePayout.tree +32 -0
- package/test/trees/JBMultiTerminal/executeProcessFee.tree +14 -0
- package/test/trees/JBMultiTerminal/migrateBalanceOf.tree +12 -0
- package/test/trees/JBMultiTerminal/pay.tree +23 -0
- package/test/trees/JBMultiTerminal/processHeldFeesOf.tree +8 -0
- package/test/trees/JBMultiTerminal/sendPayoutsOf.tree +34 -0
- package/test/trees/JBMultiTerminal/useAllowanceOf.tree +16 -0
- package/test/trees/JBPermissions/hasPermission.tree +8 -0
- package/test/trees/JBPermissions/hasPermissions.tree +8 -0
- package/test/trees/JBPermissions/setPermissionsFor.tree +5 -0
- package/test/trees/JBPrices/addPriceFeedFor.tree +14 -0
- package/test/trees/JBPrices/pricePerUnitOf.tree +11 -0
- package/test/trees/JBProjects/createFor.tree +11 -0
- package/test/trees/JBProjects/setTokenUriResolver.tree +5 -0
- package/test/trees/JBProjects/supportsInterface.tree +9 -0
- package/test/trees/JBProjects/tokenURI.tree +5 -0
- package/test/trees/JBRulesets/currentApprovalStatusForLatestRulesetOf.tree +8 -0
- package/test/trees/JBRulesets/currentOf.tree +12 -0
- package/test/trees/JBRulesets/getRulesetOf.tree +5 -0
- package/test/trees/JBRulesets/latestQueuedRulesetOf.tree +10 -0
- package/test/trees/JBRulesets/rulesetsOf.tree +11 -0
- package/test/trees/JBRulesets/upcomingRulesetOf.tree +20 -0
- package/test/trees/JBRulesets/updateRulesetWeightCache.tree +5 -0
- package/test/trees/JBSplits/setSplitGroupsOf.tree +17 -0
- package/test/trees/JBSplits/splitsOf.tree +5 -0
- package/test/trees/JBTerminalStore/currentReclaimableSurplusOf.tree +16 -0
- package/test/trees/JBTerminalStore/currentSurplusOf.tree +25 -0
- package/test/trees/JBTerminalStore/currentTotalSurplusOf.tree +5 -0
- package/test/trees/JBTerminalStore/recordCashOutsFor.tree +16 -0
- package/test/trees/JBTerminalStore/recordPaymentFrom.tree +14 -0
- package/test/trees/JBTerminalStore/recordPayoutFor.tree +10 -0
- package/test/trees/JBTerminalStore/recordTerminalMigration.tree +5 -0
- package/test/trees/JBTerminalStore/recordUsedAllowanceOf.tree +10 -0
- package/test/trees/JBTokens/burnFrom.tree +10 -0
- package/test/trees/JBTokens/claimTokensFor.tree +10 -0
- package/test/trees/JBTokens/deployERC20For.tree +12 -0
- package/test/trees/JBTokens/mintFor.tree +10 -0
- package/test/trees/JBTokens/setTokenFor.tree +11 -0
- package/test/trees/JBTokens/totalBalanceOf.tree +5 -0
- package/test/trees/JBTokens/totalSupplyOf.tree +5 -0
- package/test/trees/JBTokens/transferCreditsFrom.tree +8 -0
- package/test/trees/mintTokensOf.tree +12 -0
- package/test/units/static/JBChainlinkV3PriceFeed/TestPriceFeed.sol +220 -0
- package/test/units/static/JBController/JBControllerSetup.sol +40 -0
- package/test/units/static/JBController/TestBurnTokensOf.sol +107 -0
- package/test/units/static/JBController/TestClaimTokensFor.sol +60 -0
- package/test/units/static/JBController/TestDeployErc20For.sol +80 -0
- package/test/units/static/JBController/TestLaunchProjectFor.sol +282 -0
- package/test/units/static/JBController/TestLaunchRulesetsFor.sol +322 -0
- package/test/units/static/JBController/TestMigrateController.sol +148 -0
- package/test/units/static/JBController/TestMintTokensOfUnits.sol +102 -0
- package/test/units/static/JBController/TestPayReservedTokenToTerminal.sol +71 -0
- package/test/units/static/JBController/TestReceiveMigrationFrom.sol +95 -0
- package/test/units/static/JBController/TestRulesetViews.sol +219 -0
- package/test/units/static/JBController/TestSendReservedTokensToSplitsOf.sol +595 -0
- package/test/units/static/JBController/TestSetSplitGroupsOf.sol +63 -0
- package/test/units/static/JBController/TestSetTokenFor.sol +227 -0
- package/test/units/static/JBController/TestSetUriOf.sol +53 -0
- package/test/units/static/JBController/TestTransferCreditsFrom.sol +159 -0
- package/test/units/static/JBDeadline/TestDeadlineFuzz.sol +194 -0
- package/test/units/static/JBDirectory/JBDirectorySetup.sol +22 -0
- package/test/units/static/JBDirectory/TestPrimaryTerminalOf.sol +122 -0
- package/test/units/static/JBDirectory/TestSetControllerOf.sol +173 -0
- package/test/units/static/JBDirectory/TestSetControllerOfMigrationOrder.sol +98 -0
- package/test/units/static/JBDirectory/TestSetPrimaryTerminalOf.sol +169 -0
- package/test/units/static/JBDirectory/TestSetTerminalsOf.sol +128 -0
- package/test/units/static/JBERC20/JBERC20Setup.sol +20 -0
- package/test/units/static/JBERC20/SigUtils.sol +34 -0
- package/test/units/static/JBERC20/TestInitialize.sol +54 -0
- package/test/units/static/JBERC20/TestName.sol +30 -0
- package/test/units/static/JBERC20/TestNonces.sol +59 -0
- package/test/units/static/JBERC20/TestSymbol.sol +31 -0
- package/test/units/static/JBFeelessAdresses/JBFeelessSetup.sol +20 -0
- package/test/units/static/JBFeelessAdresses/TestInterfaces.sol +29 -0
- package/test/units/static/JBFeelessAdresses/TestSetFeelessAddress.sol +35 -0
- package/test/units/static/JBFees/TestFeesFuzz.sol +78 -0
- package/test/units/static/JBFixedPointNumber/TestAdjustDecimals.sol +16 -0
- package/test/units/static/JBFixedPointNumber/TestAdjustDecimalsFuzz.sol +71 -0
- package/test/units/static/JBFundAccessLimits/JBFundAccessSetup.sol +21 -0
- package/test/units/static/JBFundAccessLimits/TestFundAccessLimitsEdge.sol +159 -0
- package/test/units/static/JBFundAccessLimits/TestPayoutLimitOf.sol +56 -0
- package/test/units/static/JBFundAccessLimits/TestPayoutLimitsOf.sol +94 -0
- package/test/units/static/JBFundAccessLimits/TestSetFundAccessLimitsFor.sol +182 -0
- package/test/units/static/JBFundAccessLimits/TestSurplusAllowanceOf.sol +61 -0
- package/test/units/static/JBFundAccessLimits/TestSurplusAllowancesOf.sol +96 -0
- package/test/units/static/JBMetadataResolver/TestGetDataFor.sol +89 -0
- package/test/units/static/JBMetadataResolver/TestMetadataResolverFuzz.sol +227 -0
- package/test/units/static/JBMetadataResolver/TestMetadataResolverM20M21.sol +245 -0
- package/test/units/static/JBMultiTerminal/JBMultiTerminalSetup.sol +39 -0
- package/test/units/static/JBMultiTerminal/TestAccountingContextsOf.sol +65 -0
- package/test/units/static/JBMultiTerminal/TestAddAccountingContextsFor.sol +313 -0
- package/test/units/static/JBMultiTerminal/TestAddToBalanceOf.sol +432 -0
- package/test/units/static/JBMultiTerminal/TestCashOutTokensOf.sol +478 -0
- package/test/units/static/JBMultiTerminal/TestExecutePayout.sol +577 -0
- package/test/units/static/JBMultiTerminal/TestExecuteProcessFee.sol +176 -0
- package/test/units/static/JBMultiTerminal/TestMigrateBalanceOf.sol +190 -0
- package/test/units/static/JBMultiTerminal/TestPay.sol +514 -0
- package/test/units/static/JBMultiTerminal/TestProcessHeldFeesOf.sol +29 -0
- package/test/units/static/JBMultiTerminal/TestSendPayoutsOf.sol +243 -0
- package/test/units/static/JBMultiTerminal/TestUseAllowanceOf.sol +310 -0
- package/test/units/static/JBPermissions/JBPermissionsSetup.sol +18 -0
- package/test/units/static/JBPermissions/TestHasPermission.sol +50 -0
- package/test/units/static/JBPermissions/TestHasPermissions.sol +93 -0
- package/test/units/static/JBPermissions/TestSetPermissionsFor.sol +62 -0
- package/test/units/static/JBPrices/JBPricesSetup.sol +26 -0
- package/test/units/static/JBPrices/TestAddPriceFeedFor.sol +102 -0
- package/test/units/static/JBPrices/TestPricePerUnitOf.sol +129 -0
- package/test/units/static/JBPrices/TestPrices.sol +262 -0
- package/test/units/static/JBProjects/JBProjectsSetup.sol +20 -0
- package/test/units/static/JBProjects/TestCreateFor.sol +69 -0
- package/test/units/static/JBProjects/TestInitialProject.sol +19 -0
- package/test/units/static/JBProjects/TestInterfaces.sol +27 -0
- package/test/units/static/JBProjects/TestSetResolver.sol +36 -0
- package/test/units/static/JBProjects/TestTokenUri.sol +38 -0
- package/test/units/static/JBRulesetMetadataResolver/TestSetCashOutTaxRateTo.sol +99 -0
- package/test/units/static/JBRulesets/JBRulesetsSetup.sol +21 -0
- package/test/units/static/JBRulesets/TestCurrentApprovalStatusForLatestRulesetOf.sol +257 -0
- package/test/units/static/JBRulesets/TestCurrentOf.sol +231 -0
- package/test/units/static/JBRulesets/TestGetRulesetOf.sol +94 -0
- package/test/units/static/JBRulesets/TestLatestQueuedRulesetOf.sol +252 -0
- package/test/units/static/JBRulesets/TestRulesets.sol +617 -0
- package/test/units/static/JBRulesets/TestRulesetsOf.sol +37 -0
- package/test/units/static/JBRulesets/TestUpcomingRulesetOf.sol +526 -0
- package/test/units/static/JBRulesets/TestUpdateRulesetWeightCache.sol +91 -0
- package/test/units/static/JBSplits/JBSplitsSetup.sol +23 -0
- package/test/units/static/JBSplits/TestSelfManagedSplitGroups.sol +502 -0
- package/test/units/static/JBSplits/TestSetSplitGroupsOf.sol +370 -0
- package/test/units/static/JBSplits/TestSplitsLockedEdge.sol +262 -0
- package/test/units/static/JBSplits/TestSplitsOf.sol +24 -0
- package/test/units/static/JBSplits/TestSplitsPacking.sol +33 -0
- package/test/units/static/JBSurplus/TestSurplusFuzz.sol +125 -0
- package/test/units/static/JBTerminalStore/JBTerminalStoreSetup.sol +23 -0
- package/test/units/static/JBTerminalStore/TestCurrentReclaimableSurplusOf.sol +434 -0
- package/test/units/static/JBTerminalStore/TestCurrentSurplusOf.sol +428 -0
- package/test/units/static/JBTerminalStore/TestCurrentTotalSurplusOf.sol +65 -0
- package/test/units/static/JBTerminalStore/TestRecordCashOutsFor.sol +479 -0
- package/test/units/static/JBTerminalStore/TestRecordPaymentFrom.sol +508 -0
- package/test/units/static/JBTerminalStore/TestRecordPayoutFor.sol +257 -0
- package/test/units/static/JBTerminalStore/TestRecordTerminalMigration.sol +131 -0
- package/test/units/static/JBTerminalStore/TestRecordUsedAllowanceOf.sol +390 -0
- package/test/units/static/JBTerminalStore/TestUint224Overflow.sol +187 -0
- package/test/units/static/JBTokens/JBTokensSetup.sol +23 -0
- package/test/units/static/JBTokens/TestBurnFrom.sol +104 -0
- package/test/units/static/JBTokens/TestClaimTokensFor.sol +107 -0
- package/test/units/static/JBTokens/TestDeployERC20ForUnits.sol +89 -0
- package/test/units/static/JBTokens/TestMintFor.sol +97 -0
- package/test/units/static/JBTokens/TestSetTokenFor.sol +95 -0
- package/test/units/static/JBTokens/TestTotalBalanceOf.sol +65 -0
- package/test/units/static/JBTokens/TestTotalSupplyOf.sol +56 -0
- package/test/units/static/JBTokens/TestTransferCreditsFrom.sol +54 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# IJBMultiTerminal
|
|
2
|
+
[Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBMultiTerminal.sol)
|
|
3
|
+
|
|
4
|
+
**Inherits:**
|
|
5
|
+
[IJBTerminal](/src/interfaces/IJBTerminal.sol/interface.IJBTerminal.md), [IJBFeeTerminal](/src/interfaces/IJBFeeTerminal.sol/interface.IJBFeeTerminal.md), [IJBCashOutTerminal](/src/interfaces/IJBCashOutTerminal.sol/interface.IJBCashOutTerminal.md), [IJBPayoutTerminal](/src/interfaces/IJBPayoutTerminal.sol/interface.IJBPayoutTerminal.md), [IJBPermitTerminal](/src/interfaces/IJBPermitTerminal.sol/interface.IJBPermitTerminal.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## Functions
|
|
9
|
+
### DIRECTORY
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
```solidity
|
|
13
|
+
function DIRECTORY() external view returns (IJBDirectory);
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### PROJECTS
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
```solidity
|
|
20
|
+
function PROJECTS() external view returns (IJBProjects);
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### RULESETS
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
```solidity
|
|
27
|
+
function RULESETS() external view returns (IJBRulesets);
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### SPLITS
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
```solidity
|
|
34
|
+
function SPLITS() external view returns (IJBSplits);
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### STORE
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
```solidity
|
|
41
|
+
function STORE() external view returns (IJBTerminalStore);
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### TOKENS
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
```solidity
|
|
48
|
+
function TOKENS() external view returns (IJBTokens);
|
|
49
|
+
```
|
|
50
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# IJBPayHook
|
|
2
|
+
[Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBPayHook.sol)
|
|
3
|
+
|
|
4
|
+
**Inherits:**
|
|
5
|
+
IERC165
|
|
6
|
+
|
|
7
|
+
Hook called after a terminal's `pay(...)` logic completes (if passed by the ruleset's data hook).
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Functions
|
|
11
|
+
### afterPayRecordedWith
|
|
12
|
+
|
|
13
|
+
This function is called by the terminal's `pay(...)` function after the payment has been recorded in the
|
|
14
|
+
terminal store.
|
|
15
|
+
|
|
16
|
+
*Critical business logic should be protected by appropriate access control.*
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
```solidity
|
|
20
|
+
function afterPayRecordedWith(JBAfterPayRecordedContext calldata context) external payable;
|
|
21
|
+
```
|
|
22
|
+
**Parameters**
|
|
23
|
+
|
|
24
|
+
|Name|Type|Description|
|
|
25
|
+
|----|----|-----------|
|
|
26
|
+
|`context`|`JBAfterPayRecordedContext`|The context passed in by the terminal, as a `JBAfterPayRecordedContext` struct.|
|
|
27
|
+
|
|
28
|
+
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# IJBPayoutTerminal
|
|
2
|
+
[Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBPayoutTerminal.sol)
|
|
3
|
+
|
|
4
|
+
**Inherits:**
|
|
5
|
+
[IJBTerminal](/src/interfaces/IJBTerminal.sol/interface.IJBTerminal.md)
|
|
6
|
+
|
|
7
|
+
A terminal that can send payouts.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Functions
|
|
11
|
+
### sendPayoutsOf
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
```solidity
|
|
15
|
+
function sendPayoutsOf(
|
|
16
|
+
uint256 projectId,
|
|
17
|
+
address token,
|
|
18
|
+
uint256 amount,
|
|
19
|
+
uint256 currency,
|
|
20
|
+
uint256 minTokensPaidOut
|
|
21
|
+
)
|
|
22
|
+
external
|
|
23
|
+
returns (uint256 netLeftoverPayoutAmount);
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### useAllowanceOf
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
```solidity
|
|
30
|
+
function useAllowanceOf(
|
|
31
|
+
uint256 projectId,
|
|
32
|
+
address token,
|
|
33
|
+
uint256 amount,
|
|
34
|
+
uint256 currency,
|
|
35
|
+
uint256 minTokensPaidOut,
|
|
36
|
+
address payable beneficiary,
|
|
37
|
+
address payable feeBeneficiary,
|
|
38
|
+
string calldata memo
|
|
39
|
+
)
|
|
40
|
+
external
|
|
41
|
+
returns (uint256 netAmountPaidOut);
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Events
|
|
45
|
+
### PayoutReverted
|
|
46
|
+
|
|
47
|
+
```solidity
|
|
48
|
+
event PayoutReverted(uint256 indexed projectId, JBSplit split, uint256 amount, bytes reason, address caller);
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### PayoutTransferReverted
|
|
52
|
+
|
|
53
|
+
```solidity
|
|
54
|
+
event PayoutTransferReverted(
|
|
55
|
+
uint256 indexed projectId, address addr, address token, uint256 amount, uint256 fee, bytes reason, address caller
|
|
56
|
+
);
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### SendPayouts
|
|
60
|
+
|
|
61
|
+
```solidity
|
|
62
|
+
event SendPayouts(
|
|
63
|
+
uint256 indexed rulesetId,
|
|
64
|
+
uint256 indexed rulesetCycleNumber,
|
|
65
|
+
uint256 indexed projectId,
|
|
66
|
+
address projectOwner,
|
|
67
|
+
uint256 amount,
|
|
68
|
+
uint256 amountPaidOut,
|
|
69
|
+
uint256 fee,
|
|
70
|
+
uint256 netLeftoverPayoutAmount,
|
|
71
|
+
address caller
|
|
72
|
+
);
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### SendPayoutToSplit
|
|
76
|
+
|
|
77
|
+
```solidity
|
|
78
|
+
event SendPayoutToSplit(
|
|
79
|
+
uint256 indexed projectId,
|
|
80
|
+
uint256 indexed rulesetId,
|
|
81
|
+
uint256 indexed group,
|
|
82
|
+
JBSplit split,
|
|
83
|
+
uint256 amount,
|
|
84
|
+
uint256 netAmount,
|
|
85
|
+
address caller
|
|
86
|
+
);
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### UseAllowance
|
|
90
|
+
|
|
91
|
+
```solidity
|
|
92
|
+
event UseAllowance(
|
|
93
|
+
uint256 indexed rulesetId,
|
|
94
|
+
uint256 indexed rulesetCycleNumber,
|
|
95
|
+
uint256 indexed projectId,
|
|
96
|
+
address beneficiary,
|
|
97
|
+
address feeBeneficiary,
|
|
98
|
+
uint256 amount,
|
|
99
|
+
uint256 amountPaidOut,
|
|
100
|
+
uint256 netAmountPaidOut,
|
|
101
|
+
string memo,
|
|
102
|
+
address caller
|
|
103
|
+
);
|
|
104
|
+
```
|
|
105
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# IJBPermissioned
|
|
2
|
+
[Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBPermissioned.sol)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## Functions
|
|
6
|
+
### PERMISSIONS
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
```solidity
|
|
10
|
+
function PERMISSIONS() external view returns (IJBPermissions);
|
|
11
|
+
```
|
|
12
|
+
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# IJBPermissions
|
|
2
|
+
[Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBPermissions.sol)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## Functions
|
|
6
|
+
### WILDCARD_PROJECT_ID
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
```solidity
|
|
10
|
+
function WILDCARD_PROJECT_ID() external view returns (uint256);
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### permissionsOf
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
```solidity
|
|
17
|
+
function permissionsOf(address operator, address account, uint256 projectId) external view returns (uint256);
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### hasPermission
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
```solidity
|
|
24
|
+
function hasPermission(
|
|
25
|
+
address operator,
|
|
26
|
+
address account,
|
|
27
|
+
uint256 projectId,
|
|
28
|
+
uint256 permissionId,
|
|
29
|
+
bool includeRoot,
|
|
30
|
+
bool includeWildcardProjectId
|
|
31
|
+
)
|
|
32
|
+
external
|
|
33
|
+
view
|
|
34
|
+
returns (bool);
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### hasPermissions
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
```solidity
|
|
41
|
+
function hasPermissions(
|
|
42
|
+
address operator,
|
|
43
|
+
address account,
|
|
44
|
+
uint256 projectId,
|
|
45
|
+
uint256[] calldata permissionIds,
|
|
46
|
+
bool includeRoot,
|
|
47
|
+
bool includeWildcardProjectId
|
|
48
|
+
)
|
|
49
|
+
external
|
|
50
|
+
view
|
|
51
|
+
returns (bool);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### setPermissionsFor
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
```solidity
|
|
58
|
+
function setPermissionsFor(address account, JBPermissionsData calldata permissionsData) external;
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Events
|
|
62
|
+
### OperatorPermissionsSet
|
|
63
|
+
|
|
64
|
+
```solidity
|
|
65
|
+
event OperatorPermissionsSet(
|
|
66
|
+
address indexed operator,
|
|
67
|
+
address indexed account,
|
|
68
|
+
uint256 indexed projectId,
|
|
69
|
+
uint8[] permissionIds,
|
|
70
|
+
uint256 packed,
|
|
71
|
+
address caller
|
|
72
|
+
);
|
|
73
|
+
```
|
|
74
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# IJBPermitTerminal
|
|
2
|
+
[Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBPermitTerminal.sol)
|
|
3
|
+
|
|
4
|
+
**Inherits:**
|
|
5
|
+
[IJBTerminal](/src/interfaces/IJBTerminal.sol/interface.IJBTerminal.md)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## Functions
|
|
9
|
+
### PERMIT2
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
```solidity
|
|
13
|
+
function PERMIT2() external returns (IPermit2);
|
|
14
|
+
```
|
|
15
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# IJBPriceFeed
|
|
2
|
+
[Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBPriceFeed.sol)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## Functions
|
|
6
|
+
### currentUnitPrice
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
```solidity
|
|
10
|
+
function currentUnitPrice(uint256 targetDecimals) external view returns (uint256);
|
|
11
|
+
```
|
|
12
|
+
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# IJBPrices
|
|
2
|
+
[Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBPrices.sol)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## Functions
|
|
6
|
+
### DEFAULT_PROJECT_ID
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
```solidity
|
|
10
|
+
function DEFAULT_PROJECT_ID() external view returns (uint256);
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### PROJECTS
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
```solidity
|
|
17
|
+
function PROJECTS() external view returns (IJBProjects);
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### priceFeedFor
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
```solidity
|
|
24
|
+
function priceFeedFor(
|
|
25
|
+
uint256 projectId,
|
|
26
|
+
uint256 pricingCurrency,
|
|
27
|
+
uint256 unitCurrency
|
|
28
|
+
)
|
|
29
|
+
external
|
|
30
|
+
view
|
|
31
|
+
returns (IJBPriceFeed);
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### pricePerUnitOf
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
```solidity
|
|
38
|
+
function pricePerUnitOf(
|
|
39
|
+
uint256 projectId,
|
|
40
|
+
uint256 pricingCurrency,
|
|
41
|
+
uint256 unitCurrency,
|
|
42
|
+
uint256 decimals
|
|
43
|
+
)
|
|
44
|
+
external
|
|
45
|
+
view
|
|
46
|
+
returns (uint256);
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### addPriceFeedFor
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
```solidity
|
|
53
|
+
function addPriceFeedFor(
|
|
54
|
+
uint256 projectId,
|
|
55
|
+
uint256 pricingCurrency,
|
|
56
|
+
uint256 unitCurrency,
|
|
57
|
+
IJBPriceFeed feed
|
|
58
|
+
)
|
|
59
|
+
external;
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Events
|
|
63
|
+
### AddPriceFeed
|
|
64
|
+
|
|
65
|
+
```solidity
|
|
66
|
+
event AddPriceFeed(
|
|
67
|
+
uint256 indexed projectId,
|
|
68
|
+
uint256 indexed pricingCurrency,
|
|
69
|
+
uint256 indexed unitCurrency,
|
|
70
|
+
IJBPriceFeed feed,
|
|
71
|
+
address caller
|
|
72
|
+
);
|
|
73
|
+
```
|
|
74
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# IJBProjectUriRegistry
|
|
2
|
+
[Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBProjectUriRegistry.sol)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## Functions
|
|
6
|
+
### uriOf
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
```solidity
|
|
10
|
+
function uriOf(uint256 projectId) external view returns (string memory);
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### setUriOf
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
```solidity
|
|
17
|
+
function setUriOf(uint256 projectId, string calldata uri) external;
|
|
18
|
+
```
|
|
19
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# IJBProjects
|
|
2
|
+
[Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBProjects.sol)
|
|
3
|
+
|
|
4
|
+
**Inherits:**
|
|
5
|
+
IERC721
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## Functions
|
|
9
|
+
### count
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
```solidity
|
|
13
|
+
function count() external view returns (uint256);
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### tokenUriResolver
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
```solidity
|
|
20
|
+
function tokenUriResolver() external view returns (IJBTokenUriResolver);
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### createFor
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
```solidity
|
|
27
|
+
function createFor(address owner) external returns (uint256 projectId);
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### setTokenUriResolver
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
```solidity
|
|
34
|
+
function setTokenUriResolver(IJBTokenUriResolver resolver) external;
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Events
|
|
38
|
+
### Create
|
|
39
|
+
|
|
40
|
+
```solidity
|
|
41
|
+
event Create(uint256 indexed projectId, address indexed owner, address caller);
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### SetTokenUriResolver
|
|
45
|
+
|
|
46
|
+
```solidity
|
|
47
|
+
event SetTokenUriResolver(IJBTokenUriResolver indexed resolver, address caller);
|
|
48
|
+
```
|
|
49
|
+
|
package/docs/src/src/interfaces/IJBRulesetApprovalHook.sol/interface.IJBRulesetApprovalHook.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# IJBRulesetApprovalHook
|
|
2
|
+
[Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBRulesetApprovalHook.sol)
|
|
3
|
+
|
|
4
|
+
**Inherits:**
|
|
5
|
+
IERC165
|
|
6
|
+
|
|
7
|
+
`IJBRulesetApprovalHook`s are used to determine whether the next ruleset in the ruleset queue is approved or
|
|
8
|
+
rejected.
|
|
9
|
+
|
|
10
|
+
*Project rulesets are stored in a queue. Rulesets take effect after the previous ruleset in the queue ends, and
|
|
11
|
+
only if they are approved by the previous ruleset's approval hook.*
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## Functions
|
|
15
|
+
### DURATION
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
```solidity
|
|
19
|
+
function DURATION() external view returns (uint256);
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### approvalStatusOf
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
```solidity
|
|
26
|
+
function approvalStatusOf(
|
|
27
|
+
uint256 projectId,
|
|
28
|
+
uint256 rulesetId,
|
|
29
|
+
uint256 start
|
|
30
|
+
)
|
|
31
|
+
external
|
|
32
|
+
view
|
|
33
|
+
returns (JBApprovalStatus);
|
|
34
|
+
```
|
|
35
|
+
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# IJBRulesetDataHook
|
|
2
|
+
[Git Source](https://github.com/Bananapus/nana-core/blob/2998dca2fbd2658e2c8791d6dc8348147d69e28e/src/interfaces/IJBRulesetDataHook.sol)
|
|
3
|
+
|
|
4
|
+
**Inherits:**
|
|
5
|
+
IERC165
|
|
6
|
+
|
|
7
|
+
Data hooks can extend a terminal's core pay/cashout functionality by overriding the weight or memo. They can
|
|
8
|
+
also specify pay/cashout hooks for the terminal to fulfill, or allow addresses to mint a project's tokens on-demand.
|
|
9
|
+
|
|
10
|
+
*If a project's ruleset has `useDataHookForPay` or `useDataHookForCashOut` enabled, its `dataHook` is called by
|
|
11
|
+
the terminal upon payments/cashouts (respectively).*
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## Functions
|
|
15
|
+
### hasMintPermissionFor
|
|
16
|
+
|
|
17
|
+
A flag indicating whether an address has permission to mint a project's tokens on-demand.
|
|
18
|
+
|
|
19
|
+
*A project's data hook can allow any address to mint its tokens.*
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
```solidity
|
|
23
|
+
function hasMintPermissionFor(uint256 projectId, address addr) external view returns (bool flag);
|
|
24
|
+
```
|
|
25
|
+
**Parameters**
|
|
26
|
+
|
|
27
|
+
|Name|Type|Description|
|
|
28
|
+
|----|----|-----------|
|
|
29
|
+
|`projectId`|`uint256`|The ID of the project whose token can be minted.|
|
|
30
|
+
|`addr`|`address`|The address to check the token minting permission of.|
|
|
31
|
+
|
|
32
|
+
**Returns**
|
|
33
|
+
|
|
34
|
+
|Name|Type|Description|
|
|
35
|
+
|----|----|-----------|
|
|
36
|
+
|`flag`|`bool`|A flag indicating whether the address has permission to mint the project's tokens on-demand.|
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### beforePayRecordedWith
|
|
40
|
+
|
|
41
|
+
The data calculated before a payment is recorded in the terminal store. This data is provided to the
|
|
42
|
+
terminal's `pay(...)` transaction.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
```solidity
|
|
46
|
+
function beforePayRecordedWith(JBBeforePayRecordedContext calldata context)
|
|
47
|
+
external
|
|
48
|
+
view
|
|
49
|
+
returns (uint256 weight, JBPayHookSpecification[] memory hookSpecifications);
|
|
50
|
+
```
|
|
51
|
+
**Parameters**
|
|
52
|
+
|
|
53
|
+
|Name|Type|Description|
|
|
54
|
+
|----|----|-----------|
|
|
55
|
+
|`context`|`JBBeforePayRecordedContext`|The context passed to this data hook by the `pay(...)` function as a `JBBeforePayRecordedContext` struct.|
|
|
56
|
+
|
|
57
|
+
**Returns**
|
|
58
|
+
|
|
59
|
+
|Name|Type|Description|
|
|
60
|
+
|----|----|-----------|
|
|
61
|
+
|`weight`|`uint256`|The new `weight` to use, overriding the ruleset's `weight`.|
|
|
62
|
+
|`hookSpecifications`|`JBPayHookSpecification[]`|The amount and data to send to pay hooks instead of adding to the terminal's balance.|
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
### beforeCashOutRecordedWith
|
|
66
|
+
|
|
67
|
+
The data calculated before a cash out is recorded in the terminal store. This data is provided to the
|
|
68
|
+
terminal's `cashOutTokensOf(...)` transaction.
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
```solidity
|
|
72
|
+
function beforeCashOutRecordedWith(JBBeforeCashOutRecordedContext calldata context)
|
|
73
|
+
external
|
|
74
|
+
view
|
|
75
|
+
returns (
|
|
76
|
+
uint256 cashOutTaxRate,
|
|
77
|
+
uint256 cashOutCount,
|
|
78
|
+
uint256 totalSupply,
|
|
79
|
+
JBCashOutHookSpecification[] memory hookSpecifications
|
|
80
|
+
);
|
|
81
|
+
```
|
|
82
|
+
**Parameters**
|
|
83
|
+
|
|
84
|
+
|Name|Type|Description|
|
|
85
|
+
|----|----|-----------|
|
|
86
|
+
|`context`|`JBBeforeCashOutRecordedContext`|The context passed to this data hook by the `cashOutTokensOf(...)` function as a `JBBeforeCashOutRecordedContext` struct.|
|
|
87
|
+
|
|
88
|
+
**Returns**
|
|
89
|
+
|
|
90
|
+
|Name|Type|Description|
|
|
91
|
+
|----|----|-----------|
|
|
92
|
+
|`cashOutTaxRate`|`uint256`|The rate determining the amount that should be reclaimable for a given surplus and token supply.|
|
|
93
|
+
|`cashOutCount`|`uint256`|The amount of tokens that should be considered cashed out.|
|
|
94
|
+
|`totalSupply`|`uint256`|The total amount of tokens that are considered to be existing.|
|
|
95
|
+
|`hookSpecifications`|`JBCashOutHookSpecification[]`|The amount and data to send to cash out hooks instead of returning to the beneficiary.|
|
|
96
|
+
|
|
97
|
+
|