@bananapus/core-v6 0.0.37 → 0.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/foundry.lock +1 -7
- package/foundry.toml +1 -1
- package/package.json +19 -7
- package/src/JBChainlinkV3PriceFeed.sol +4 -1
- package/src/JBChainlinkV3SequencerPriceFeed.sol +4 -2
- package/src/JBController.sol +71 -44
- package/src/JBDeadline.sol +4 -4
- package/src/JBDirectory.sol +34 -32
- package/src/JBERC20.sol +5 -4
- package/src/JBFeelessAddresses.sol +6 -3
- package/src/JBFundAccessLimits.sol +25 -21
- package/src/JBMultiTerminal.sol +121 -84
- package/src/JBPermissions.sol +34 -37
- package/src/JBPrices.sol +23 -18
- package/src/JBProjects.sol +6 -3
- package/src/JBRulesets.sol +44 -41
- package/src/JBSplits.sol +18 -16
- package/src/JBTerminalStore.sol +32 -25
- package/src/JBTokens.sol +36 -26
- package/src/abstract/JBControlled.sol +3 -1
- package/src/abstract/JBPermissioned.sol +3 -1
- package/src/enums/JBApprovalStatus.sol +7 -1
- package/src/interfaces/IJBController.sol +7 -3
- package/src/interfaces/IJBDirectory.sol +3 -1
- package/src/interfaces/IJBMultiTerminal.sol +3 -2
- package/src/interfaces/IJBPermissions.sol +2 -1
- package/src/interfaces/IJBPrices.sol +3 -1
- package/src/interfaces/IJBRulesets.sol +2 -1
- package/src/interfaces/IJBSplits.sol +2 -1
- package/src/interfaces/IJBTerminal.sol +3 -1
- package/src/interfaces/IJBTerminalStore.sol +3 -1
- package/src/interfaces/IJBTokens.sol +2 -1
- package/src/libraries/JBCashOuts.sol +6 -1
- package/src/libraries/JBConstants.sol +12 -3
- package/src/libraries/JBCurrencyIds.sol +2 -0
- package/src/libraries/JBFees.sol +52 -10
- package/src/libraries/JBFixedPointNumber.sol +2 -0
- package/src/libraries/JBPayoutSplitGroupLib.sol +7 -4
- package/src/libraries/JBRulesetMetadataResolver.sol +4 -0
- package/src/libraries/JBSplitGroupIds.sol +2 -1
- package/src/libraries/JBSurplus.sol +3 -1
- package/src/periphery/JBMatchingPriceFeed.sol +3 -1
- package/src/structs/JBAccountingContext.sol +7 -4
- package/src/structs/JBFundAccessLimitGroup.sol +10 -17
- package/src/structs/JBRuleset.sol +18 -26
- package/src/structs/JBRulesetConfig.sol +13 -25
- package/src/structs/JBRulesetMetadata.sol +25 -32
- package/test/mock/MockMaliciousBeneficiary.sol +15 -15
- package/ADMINISTRATION.md +0 -103
- package/ARCHITECTURE.md +0 -133
- package/AUDIT_INSTRUCTIONS.md +0 -139
- package/RISKS.md +0 -215
- package/SKILLS.md +0 -55
- package/STYLE_GUIDE.md +0 -610
- package/USER_JOURNEYS.md +0 -215
- package/script/Deploy.s.sol +0 -124
- package/script/DeployPeriphery.s.sol +0 -354
- package/slither-ci.config.json +0 -10
- package/test/AuditFixes.t.sol +0 -808
- package/test/ComprehensiveInvariant.t.sol +0 -306
- package/test/CoreExploitTests.t.sol +0 -2741
- package/test/EconomicSimulation.t.sol +0 -348
- package/test/EntryPointPermutations.t.sol +0 -684
- package/test/FlashLoanAttacks.t.sol +0 -797
- package/test/PermissionEscalation.t.sol +0 -711
- package/test/PermissionsInvariant.t.sol +0 -403
- package/test/RulesetTransitions.t.sol +0 -713
- package/test/SplitLoopTests.t.sol +0 -752
- package/test/TestAccessToFunds.sol +0 -2683
- package/test/TestAuditResponseDesignProofs.sol +0 -434
- package/test/TestCashOut.sol +0 -198
- package/test/TestCashOutCountFor.sol +0 -271
- package/test/TestCashOutHooks.sol +0 -351
- package/test/TestCashOutTimingEdge.sol +0 -241
- package/test/TestDataHookFuzzing.sol +0 -524
- package/test/TestDurationUnderflow.sol +0 -233
- package/test/TestFeeFreeCashOutBypass.sol +0 -949
- package/test/TestFeeProcessingFailure.sol +0 -218
- package/test/TestFees.sol +0 -619
- package/test/TestForwardedTokenConsumption.sol +0 -425
- package/test/TestInterfaceSupport.sol +0 -81
- package/test/TestJBERC20Inheritance.sol +0 -103
- package/test/TestL2SequencerPriceFeed.sol +0 -292
- package/test/TestLaunchProject.sol +0 -188
- package/test/TestMetaTx.sol +0 -217
- package/test/TestMetadataOffsetOverflow.sol +0 -179
- package/test/TestMetadataParserLib.sol +0 -471
- package/test/TestMigrationHeldFees.sol +0 -255
- package/test/TestMintTokensOf.sol +0 -185
- package/test/TestMultiTerminalSurplus.sol +0 -348
- package/test/TestMultiTokenSurplus.sol +0 -202
- package/test/TestMultipleAccessLimits.sol +0 -664
- package/test/TestPayBurnRedeemFlow.sol +0 -195
- package/test/TestPayHooks.sol +0 -209
- package/test/TestPermissions.sol +0 -324
- package/test/TestPermissionsEdge.sol +0 -290
- package/test/TestPermit2DataHook.t.sol +0 -360
- package/test/TestPermit2Terminal.sol +0 -372
- package/test/TestRulesetQueueing.sol +0 -1025
- package/test/TestRulesetQueuingStress.sol +0 -806
- package/test/TestRulesetWeightCaching.sol +0 -178
- package/test/TestSplits.sol +0 -391
- package/test/TestTerminalMigration.sol +0 -274
- package/test/TestTerminalPreviewParity.sol +0 -208
- package/test/TestTokenFlow.sol +0 -191
- package/test/TestWeightCacheStaleAfterRejection.sol +0 -303
- package/test/WeirdTokenTests.t.sol +0 -817
- package/test/audit/CashOutReenterPay.t.sol +0 -501
- package/test/audit/CodexHeldFeeRounding.t.sol +0 -159
- package/test/audit/CodexMigrationFeeFailure.t.sol +0 -163
- package/test/audit/CrossTerminalSurplusSpoof.t.sol +0 -140
- package/test/audit/CycledSurplusAllowanceReset.t.sol +0 -184
- package/test/audit/FeeFreeSurplusLifecycle.t.sol +0 -399
- package/test/audit/FeeFreeSurplusStale.t.sol +0 -248
- package/test/audit/USDTVoidReturnCompat.t.sol +0 -525
- package/test/fork/TestChainlinkPriceFeedFork.sol +0 -254
- package/test/fork/TestSequencerPriceFeedFork.sol +0 -168
- package/test/fork/TestTerminalPreviewParityFork.sol +0 -108
- package/test/formal/BondingCurveProperties.t.sol +0 -420
- package/test/formal/FeeProperties.t.sol +0 -252
- package/test/invariants/Phase3DeepInvariant.t.sol +0 -412
- package/test/invariants/RulesetsInvariant.t.sol +0 -125
- package/test/invariants/TerminalStoreInvariant.t.sol +0 -227
- package/test/invariants/TokensInvariant.t.sol +0 -195
- package/test/invariants/handlers/ComprehensiveHandler.sol +0 -303
- package/test/invariants/handlers/EconomicHandler.sol +0 -377
- package/test/invariants/handlers/Phase3Handler.sol +0 -443
- package/test/invariants/handlers/RulesetsHandler.sol +0 -115
- package/test/invariants/handlers/TerminalStoreHandler.sol +0 -151
- package/test/invariants/handlers/TokensHandler.sol +0 -126
- package/test/regression/HoldFeesCashOutReserved.t.sol +0 -415
- package/test/regression/WeightCacheBoundary.t.sol +0 -291
- package/test/trees/JBController/burnTokensOf.tree +0 -9
- package/test/trees/JBController/claimTokensFor.tree +0 -5
- package/test/trees/JBController/deployERC20For.tree +0 -5
- package/test/trees/JBController/getRulesetOf.tree +0 -5
- package/test/trees/JBController/launchProjectFor.tree +0 -12
- package/test/trees/JBController/launchRulesetsFor.tree +0 -8
- package/test/trees/JBController/migrateController.tree +0 -12
- package/test/trees/JBController/mintTokensOf.tree +0 -12
- package/test/trees/JBController/payReservedTokenToTerminal.tree +0 -8
- package/test/trees/JBController/receiveMigrationFrom.tree +0 -4
- package/test/trees/JBController/sendReservedTokensToSplitsOf.tree +0 -12
- package/test/trees/JBController/setMetadataOf.tree +0 -5
- package/test/trees/JBController/setSplitGroupsOf.tree +0 -5
- package/test/trees/JBController/setTokenFor.tree +0 -5
- package/test/trees/JBController/transferCreditsFrom.tree +0 -8
- package/test/trees/JBDirectory/primaryTerminalOf.tree +0 -8
- package/test/trees/JBDirectory/setControllerOf.tree +0 -11
- package/test/trees/JBDirectory/setPrimaryTerminalOf.tree +0 -15
- package/test/trees/JBDirectory/setTerminalsOf.tree +0 -11
- package/test/trees/JBERC20/initialize.tree +0 -7
- package/test/trees/JBERC20/name.tree +0 -5
- package/test/trees/JBERC20/nonces.tree +0 -5
- package/test/trees/JBERC20/symbol.tree +0 -5
- package/test/trees/JBFeelessAddresses/setFeelessAddress.tree +0 -5
- package/test/trees/JBFeelessAddresses/supportsInterface.tree +0 -5
- package/test/trees/JBFundAccessLimits/payoutLimitOf.tree +0 -5
- package/test/trees/JBFundAccessLimits/payoutLimitsOf.tree +0 -8
- package/test/trees/JBFundAccessLimits/setFundAccessLimitsFor.tree +0 -18
- package/test/trees/JBFundAccessLimits/surplusAllowanceOf.tree +0 -5
- package/test/trees/JBFundAccessLimits/surplusAllowancesOf.tree +0 -8
- package/test/trees/JBMetadataResolver/getDataFor.tree +0 -8
- package/test/trees/JBMultiTerminal/accountingContextsOf.tree +0 -5
- package/test/trees/JBMultiTerminal/addAccountingContextsFor.tree +0 -10
- package/test/trees/JBMultiTerminal/addToBalanceOf.tree +0 -23
- package/test/trees/JBMultiTerminal/cashOutTokensOf.tree +0 -23
- package/test/trees/JBMultiTerminal/executePayout.tree +0 -32
- package/test/trees/JBMultiTerminal/executeProcessFee.tree +0 -14
- package/test/trees/JBMultiTerminal/migrateBalanceOf.tree +0 -12
- package/test/trees/JBMultiTerminal/pay.tree +0 -23
- package/test/trees/JBMultiTerminal/processHeldFeesOf.tree +0 -8
- package/test/trees/JBMultiTerminal/sendPayoutsOf.tree +0 -34
- package/test/trees/JBMultiTerminal/useAllowanceOf.tree +0 -16
- package/test/trees/JBPermissions/hasPermission.tree +0 -8
- package/test/trees/JBPermissions/hasPermissions.tree +0 -8
- package/test/trees/JBPermissions/setPermissionsFor.tree +0 -5
- package/test/trees/JBPrices/addPriceFeedFor.tree +0 -14
- package/test/trees/JBPrices/pricePerUnitOf.tree +0 -11
- package/test/trees/JBProjects/createFor.tree +0 -11
- package/test/trees/JBProjects/setTokenUriResolver.tree +0 -5
- package/test/trees/JBProjects/supportsInterface.tree +0 -9
- package/test/trees/JBProjects/tokenURI.tree +0 -5
- package/test/trees/JBRulesets/currentApprovalStatusForLatestRulesetOf.tree +0 -8
- package/test/trees/JBRulesets/currentOf.tree +0 -12
- package/test/trees/JBRulesets/getRulesetOf.tree +0 -5
- package/test/trees/JBRulesets/latestQueuedRulesetOf.tree +0 -10
- package/test/trees/JBRulesets/rulesetsOf.tree +0 -11
- package/test/trees/JBRulesets/upcomingRulesetOf.tree +0 -20
- package/test/trees/JBRulesets/updateRulesetWeightCache.tree +0 -5
- package/test/trees/JBSplits/setSplitGroupsOf.tree +0 -17
- package/test/trees/JBSplits/splitsOf.tree +0 -5
- package/test/trees/JBTerminalStore/currentReclaimableSurplusOf.tree +0 -16
- package/test/trees/JBTerminalStore/currentSurplusOf.tree +0 -25
- package/test/trees/JBTerminalStore/currentTotalSurplusOf.tree +0 -5
- package/test/trees/JBTerminalStore/recordCashOutsFor.tree +0 -16
- package/test/trees/JBTerminalStore/recordPaymentFrom.tree +0 -14
- package/test/trees/JBTerminalStore/recordPayoutFor.tree +0 -10
- package/test/trees/JBTerminalStore/recordTerminalMigration.tree +0 -5
- package/test/trees/JBTerminalStore/recordUsedAllowanceOf.tree +0 -10
- package/test/trees/JBTokens/burnFrom.tree +0 -10
- package/test/trees/JBTokens/claimTokensFor.tree +0 -10
- package/test/trees/JBTokens/deployERC20For.tree +0 -12
- package/test/trees/JBTokens/mintFor.tree +0 -10
- package/test/trees/JBTokens/setTokenFor.tree +0 -11
- package/test/trees/JBTokens/totalBalanceOf.tree +0 -5
- package/test/trees/JBTokens/totalSupplyOf.tree +0 -5
- package/test/trees/JBTokens/transferCreditsFrom.tree +0 -8
- package/test/trees/mintTokensOf.tree +0 -12
- package/test/units/static/JBChainlinkV3PriceFeed/TestPriceFeed.sol +0 -223
- package/test/units/static/JBController/JBControllerSetup.sol +0 -50
- package/test/units/static/JBController/TestBurnTokensOf.sol +0 -114
- package/test/units/static/JBController/TestClaimTokensFor.sol +0 -63
- package/test/units/static/JBController/TestDeployErc20For.sol +0 -86
- package/test/units/static/JBController/TestLaunchProjectFor.sol +0 -302
- package/test/units/static/JBController/TestLaunchRulesetsFor.sol +0 -342
- package/test/units/static/JBController/TestMigrateController.sol +0 -157
- package/test/units/static/JBController/TestMintTokensOfUnits.sol +0 -111
- package/test/units/static/JBController/TestOmnichainRulesetOperator.sol +0 -324
- package/test/units/static/JBController/TestPayReservedTokenToTerminal.sol +0 -74
- package/test/units/static/JBController/TestPreviewMintOf.sol +0 -117
- package/test/units/static/JBController/TestReceiveMigrationFrom.sol +0 -99
- package/test/units/static/JBController/TestRulesetViews.sol +0 -225
- package/test/units/static/JBController/TestSendReservedTokensToSplitsOf.sol +0 -615
- package/test/units/static/JBController/TestSetSplitGroupsOf.sol +0 -68
- package/test/units/static/JBController/TestSetTokenFor.sol +0 -239
- package/test/units/static/JBController/TestSetUriOf.sol +0 -57
- package/test/units/static/JBController/TestTransferCreditsFrom.sol +0 -169
- package/test/units/static/JBDeadline/TestDeadlineFuzz.sol +0 -211
- package/test/units/static/JBDirectory/JBDirectorySetup.sol +0 -26
- package/test/units/static/JBDirectory/TestPrimaryTerminalOf.sol +0 -126
- package/test/units/static/JBDirectory/TestSetControllerOf.sol +0 -183
- package/test/units/static/JBDirectory/TestSetControllerOfMigrationOrder.sol +0 -104
- package/test/units/static/JBDirectory/TestSetPrimaryTerminalOf.sol +0 -179
- package/test/units/static/JBDirectory/TestSetTerminalsOf.sol +0 -137
- package/test/units/static/JBERC20/JBERC20Setup.sol +0 -34
- package/test/units/static/JBERC20/SigUtils.sol +0 -36
- package/test/units/static/JBERC20/TestInitialize.sol +0 -60
- package/test/units/static/JBERC20/TestName.sol +0 -30
- package/test/units/static/JBERC20/TestNonces.sol +0 -62
- package/test/units/static/JBERC20/TestSymbol.sol +0 -31
- package/test/units/static/JBFeelessAdresses/JBFeelessSetup.sol +0 -22
- package/test/units/static/JBFeelessAdresses/TestInterfaces.sol +0 -30
- package/test/units/static/JBFeelessAdresses/TestSetFeelessAddress.sol +0 -35
- package/test/units/static/JBFees/TestFeesFuzz.sol +0 -79
- package/test/units/static/JBFixedPointNumber/TestAdjustDecimals.sol +0 -16
- package/test/units/static/JBFixedPointNumber/TestAdjustDecimalsFuzz.sol +0 -71
- package/test/units/static/JBFundAccessLimits/JBFundAccessSetup.sol +0 -24
- package/test/units/static/JBFundAccessLimits/TestFundAccessLimitsEdge.sol +0 -163
- package/test/units/static/JBFundAccessLimits/TestPayoutLimitOf.sol +0 -59
- package/test/units/static/JBFundAccessLimits/TestPayoutLimitsOf.sol +0 -101
- package/test/units/static/JBFundAccessLimits/TestSetFundAccessLimitsFor.sol +0 -189
- package/test/units/static/JBFundAccessLimits/TestSurplusAllowanceOf.sol +0 -64
- package/test/units/static/JBFundAccessLimits/TestSurplusAllowancesOf.sol +0 -102
- package/test/units/static/JBMetadataResolver/TestGetDataFor.sol +0 -90
- package/test/units/static/JBMetadataResolver/TestMetadataResolverEdgeCases.sol +0 -247
- package/test/units/static/JBMetadataResolver/TestMetadataResolverFuzz.sol +0 -229
- package/test/units/static/JBMultiTerminal/JBMultiTerminalSetup.sol +0 -50
- package/test/units/static/JBMultiTerminal/TestAccountingContextsOf.sol +0 -72
- package/test/units/static/JBMultiTerminal/TestAddAccountingContextsFor.sol +0 -289
- package/test/units/static/JBMultiTerminal/TestAddToBalanceOf.sol +0 -474
- package/test/units/static/JBMultiTerminal/TestCashOutTokensOf.sol +0 -624
- package/test/units/static/JBMultiTerminal/TestExecutePayout.sol +0 -578
- package/test/units/static/JBMultiTerminal/TestExecuteProcessFee.sol +0 -202
- package/test/units/static/JBMultiTerminal/TestMigrateBalanceOf.sol +0 -222
- package/test/units/static/JBMultiTerminal/TestPay.sol +0 -604
- package/test/units/static/JBMultiTerminal/TestPreviewCashOutFrom.sol +0 -117
- package/test/units/static/JBMultiTerminal/TestPreviewPayFor.sol +0 -114
- package/test/units/static/JBMultiTerminal/TestProcessHeldFeesOf.sol +0 -228
- package/test/units/static/JBMultiTerminal/TestSelfPayRevert.sol +0 -55
- package/test/units/static/JBMultiTerminal/TestSendPayoutsOf.sol +0 -257
- package/test/units/static/JBMultiTerminal/TestUseAllowanceOf.sol +0 -611
- package/test/units/static/JBPermissions/JBPermissionsSetup.sol +0 -20
- package/test/units/static/JBPermissions/TestHasPermission.sol +0 -50
- package/test/units/static/JBPermissions/TestHasPermissions.sol +0 -93
- package/test/units/static/JBPermissions/TestSetPermissionsFor.sol +0 -64
- package/test/units/static/JBPrices/JBPricesSetup.sol +0 -32
- package/test/units/static/JBPrices/TestAddPriceFeedFor.sol +0 -107
- package/test/units/static/JBPrices/TestPricePerUnitOf.sol +0 -132
- package/test/units/static/JBPrices/TestPrices.sol +0 -265
- package/test/units/static/JBProjects/JBProjectsSetup.sol +0 -22
- package/test/units/static/JBProjects/TestCreateFor.sol +0 -71
- package/test/units/static/JBProjects/TestInitialProject.sol +0 -21
- package/test/units/static/JBProjects/TestInterfaces.sol +0 -26
- package/test/units/static/JBProjects/TestSetResolver.sol +0 -37
- package/test/units/static/JBProjects/TestTokenUri.sol +0 -40
- package/test/units/static/JBRulesetMetadataResolver/TestSetCashOutTaxRateTo.sol +0 -108
- package/test/units/static/JBRulesets/JBRulesetsSetup.sol +0 -24
- package/test/units/static/JBRulesets/TestCurrentApprovalStatusForLatestRulesetOf.sol +0 -265
- package/test/units/static/JBRulesets/TestCurrentOf.sol +0 -242
- package/test/units/static/JBRulesets/TestGetRulesetOf.sol +0 -100
- package/test/units/static/JBRulesets/TestLatestQueuedRulesetOf.sol +0 -260
- package/test/units/static/JBRulesets/TestRulesets.sol +0 -632
- package/test/units/static/JBRulesets/TestRulesetsOf.sol +0 -37
- package/test/units/static/JBRulesets/TestUpcomingRulesetOf.sol +0 -522
- package/test/units/static/JBRulesets/TestUpdateRulesetWeightCache.sol +0 -96
- package/test/units/static/JBSplits/JBSplitsSetup.sol +0 -26
- package/test/units/static/JBSplits/TestSelfManagedSplitGroups.sol +0 -552
- package/test/units/static/JBSplits/TestSetSplitGroupsOf.sol +0 -377
- package/test/units/static/JBSplits/TestSplitsLockedEdge.sol +0 -267
- package/test/units/static/JBSplits/TestSplitsOf.sol +0 -24
- package/test/units/static/JBSplits/TestSplitsPacking.sol +0 -36
- package/test/units/static/JBSurplus/TestSurplusFuzz.sol +0 -160
- package/test/units/static/JBTerminalStore/JBTerminalStoreSetup.sol +0 -45
- package/test/units/static/JBTerminalStore/TestCurrentReclaimableSurplusOf.sol +0 -536
- package/test/units/static/JBTerminalStore/TestCurrentSurplusOf.sol +0 -463
- package/test/units/static/JBTerminalStore/TestCurrentTotalSurplusOf.sol +0 -135
- package/test/units/static/JBTerminalStore/TestPreviewCashOutFrom.sol +0 -476
- package/test/units/static/JBTerminalStore/TestPreviewPayFrom.sol +0 -494
- package/test/units/static/JBTerminalStore/TestRecordCashOutsFor.sol +0 -652
- package/test/units/static/JBTerminalStore/TestRecordPaymentFrom.sol +0 -744
- package/test/units/static/JBTerminalStore/TestRecordPayoutFor.sol +0 -289
- package/test/units/static/JBTerminalStore/TestRecordTerminalMigration.sol +0 -138
- package/test/units/static/JBTerminalStore/TestRecordUsedAllowanceOf.sol +0 -415
- package/test/units/static/JBTerminalStore/TestUint224Overflow.sol +0 -219
- package/test/units/static/JBTokens/JBTokensSetup.sol +0 -32
- package/test/units/static/JBTokens/TestBurnFrom.sol +0 -107
- package/test/units/static/JBTokens/TestClaimTokensFor.sol +0 -110
- package/test/units/static/JBTokens/TestDeployERC20ForUnits.sol +0 -92
- package/test/units/static/JBTokens/TestMintFor.sol +0 -100
- package/test/units/static/JBTokens/TestSetTokenFor.sol +0 -98
- package/test/units/static/JBTokens/TestTotalBalanceOf.sol +0 -65
- package/test/units/static/JBTokens/TestTotalSupplyOf.sol +0 -56
- package/test/units/static/JBTokens/TestTransferCreditsFrom.sol +0 -56
|
@@ -1,354 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: MIT
|
|
2
|
-
pragma solidity 0.8.28;
|
|
3
|
-
|
|
4
|
-
import {Sphinx} from "@sphinx-labs/contracts/contracts/foundry/SphinxPlugin.sol";
|
|
5
|
-
import {Script} from "forge-std/Script.sol";
|
|
6
|
-
import {CoreDeployment, CoreDeploymentLib} from "./helpers/CoreDeploymentLib.sol";
|
|
7
|
-
|
|
8
|
-
import {IJBPriceFeed} from "src/interfaces/IJBPriceFeed.sol";
|
|
9
|
-
import {JBDeadline3Hours} from "src/periphery/JBDeadline3Hours.sol";
|
|
10
|
-
import {JBDeadline1Day} from "src/periphery/JBDeadline1Day.sol";
|
|
11
|
-
import {JBDeadline3Days} from "src/periphery/JBDeadline3Days.sol";
|
|
12
|
-
import {JBDeadline7Days} from "src/periphery/JBDeadline7Days.sol";
|
|
13
|
-
import {JBMatchingPriceFeed} from "src/periphery/JBMatchingPriceFeed.sol";
|
|
14
|
-
import {JBChainlinkV3PriceFeed, AggregatorV3Interface} from "src/JBChainlinkV3PriceFeed.sol";
|
|
15
|
-
import {AggregatorV2V3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV2V3Interface.sol";
|
|
16
|
-
import {JBChainlinkV3SequencerPriceFeed} from "src/JBChainlinkV3SequencerPriceFeed.sol";
|
|
17
|
-
import {JBController} from "src/JBController.sol";
|
|
18
|
-
|
|
19
|
-
import {JBConstants} from "src/libraries/JBConstants.sol";
|
|
20
|
-
import {JBCurrencyIds} from "src/libraries/JBCurrencyIds.sol";
|
|
21
|
-
|
|
22
|
-
contract DeployPeriphery is Script, Sphinx {
|
|
23
|
-
/// @notice tracks the deployment of the core contracts for the chain we are deploying to.
|
|
24
|
-
CoreDeployment core;
|
|
25
|
-
|
|
26
|
-
// forge-lint: disable-next-line(mixed-case-variable)
|
|
27
|
-
address private TRUSTED_FORWARDER;
|
|
28
|
-
|
|
29
|
-
// forge-lint: disable-next-line(mixed-case-variable)
|
|
30
|
-
bytes32 private DEADLINES_SALT = keccak256("_JBDeadlinesV6_");
|
|
31
|
-
// forge-lint: disable-next-line(mixed-case-variable)
|
|
32
|
-
bytes32 private USD_NATIVE_FEED_SALT = keccak256("USD_FEEDV6");
|
|
33
|
-
|
|
34
|
-
/// @notice The nonce that gets used across all chains to sync deployment addresses and allow for new deployments of
|
|
35
|
-
/// the same bytecode.
|
|
36
|
-
// forge-lint: disable-next-line(mixed-case-variable)
|
|
37
|
-
uint256 private CORE_DEPLOYMENT_NONCE = 6;
|
|
38
|
-
|
|
39
|
-
/// @notice The address of the omnichain ruleset operator contract (e.g. JBOmnichainDeployer).
|
|
40
|
-
/// @dev TRUST ASSUMPTION: This address is granted implicit permission to launch rulesets, set terminals, and queue
|
|
41
|
-
/// rulesets on any project via the JBController (bypassing normal JBPermissions checks). A compromised or
|
|
42
|
-
/// incorrect operator address could manipulate any project's rulesets across chains.
|
|
43
|
-
/// @dev This address should correspond to the deterministic CREATE2 deployment of the omnichain deployer contract
|
|
44
|
-
/// from the nana-omnichain-deployers-v6 repository. This script only enforces that the address is nonzero, so
|
|
45
|
-
/// operators must verify it matches the intended deployment on every target chain before running this script.
|
|
46
|
-
// forge-lint: disable-next-line(mixed-case-variable)
|
|
47
|
-
address private OMNICHAIN_RULESET_OPERATOR = address(0x8f5DED85c40b50d223269C1F922A056E72101590);
|
|
48
|
-
|
|
49
|
-
function configureSphinx() public override {
|
|
50
|
-
sphinxConfig.projectName = "nana-core-v6";
|
|
51
|
-
sphinxConfig.mainnets = ["ethereum", "optimism", "base", "arbitrum"];
|
|
52
|
-
sphinxConfig.testnets = ["ethereum_sepolia", "optimism_sepolia", "base_sepolia", "arbitrum_sepolia"];
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/// @notice Deploys the protocol.
|
|
56
|
-
function run() public {
|
|
57
|
-
// Get the deployment addresses for the nana CORE for this chain.
|
|
58
|
-
// We want to do this outside of the `sphinx` modifier.
|
|
59
|
-
core = CoreDeploymentLib.getDeployment(vm.envOr("NANA_CORE_DEPLOYMENT_PATH", string("deployments/")));
|
|
60
|
-
|
|
61
|
-
// We use the same trusted forwarder as the core deployment.
|
|
62
|
-
TRUSTED_FORWARDER = core.permissions.trustedForwarder();
|
|
63
|
-
|
|
64
|
-
// Deploy the protocol.
|
|
65
|
-
deploy();
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
function deploy() public sphinx {
|
|
69
|
-
// Validate the omnichain ruleset operator is set. See TRUST ASSUMPTION above. This is intentionally a
|
|
70
|
-
// nonzero-only check; correctness of the configured operator is verified out of band.
|
|
71
|
-
require(OMNICHAIN_RULESET_OPERATOR != address(0), "Omnichain ruleset operator not set");
|
|
72
|
-
|
|
73
|
-
// Deploy the ETH/USD price feed.
|
|
74
|
-
IJBPriceFeed feed;
|
|
75
|
-
|
|
76
|
-
IJBPriceFeed matchingPriceFeed;
|
|
77
|
-
matchingPriceFeed = new JBMatchingPriceFeed();
|
|
78
|
-
|
|
79
|
-
// Same as the chainlink example grace period.
|
|
80
|
-
// forge-lint: disable-next-line(mixed-case-variable)
|
|
81
|
-
uint256 L2GracePeriod = 3600 seconds;
|
|
82
|
-
|
|
83
|
-
// NOTE: Feeds come from this url `https://data.chain.link/feeds/ethereum/mainnet/eth-usd`.
|
|
84
|
-
// Sequencer feeds come from this url `https://docs.chain.link/data-feeds/l2-sequencer-feeds`.
|
|
85
|
-
|
|
86
|
-
// Perform the deploy for L1(s).
|
|
87
|
-
if (block.chainid == 1) {
|
|
88
|
-
feed = new JBChainlinkV3PriceFeed{salt: USD_NATIVE_FEED_SALT}({
|
|
89
|
-
feed: AggregatorV3Interface(address(0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419)),
|
|
90
|
-
threshold: 3600 seconds
|
|
91
|
-
});
|
|
92
|
-
} else if (block.chainid == 11_155_111) {
|
|
93
|
-
feed = new JBChainlinkV3PriceFeed{salt: USD_NATIVE_FEED_SALT}({
|
|
94
|
-
feed: AggregatorV3Interface(address(0x694AA1769357215DE4FAC081bf1f309aDC325306)),
|
|
95
|
-
threshold: 3600 seconds
|
|
96
|
-
});
|
|
97
|
-
} else {
|
|
98
|
-
// Perform the deploy for L2s
|
|
99
|
-
AggregatorV3Interface source;
|
|
100
|
-
|
|
101
|
-
// Optimism
|
|
102
|
-
if (block.chainid == 10) {
|
|
103
|
-
source = AggregatorV3Interface(0x13e3Ee699D1909E989722E753853AE30b17e08c5);
|
|
104
|
-
feed = new JBChainlinkV3SequencerPriceFeed{salt: USD_NATIVE_FEED_SALT}({
|
|
105
|
-
feed: source,
|
|
106
|
-
threshold: 3600 seconds,
|
|
107
|
-
sequencerFeed: AggregatorV2V3Interface(0x371EAD81c9102C9BF4874A9075FFFf170F2Ee389),
|
|
108
|
-
gracePeriod: L2GracePeriod
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
// Optimism Sepolia
|
|
112
|
-
else if (block.chainid == 11_155_420) {
|
|
113
|
-
source = AggregatorV3Interface(address(0x61Ec26aA57019C486B10502285c5A3D4A4750AD7));
|
|
114
|
-
feed = new JBChainlinkV3PriceFeed{salt: USD_NATIVE_FEED_SALT}({feed: source, threshold: 3600 seconds});
|
|
115
|
-
}
|
|
116
|
-
// Base
|
|
117
|
-
else if (block.chainid == 8453) {
|
|
118
|
-
source = AggregatorV3Interface(0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70);
|
|
119
|
-
feed = new JBChainlinkV3SequencerPriceFeed{salt: USD_NATIVE_FEED_SALT}({
|
|
120
|
-
feed: source,
|
|
121
|
-
threshold: 3600 seconds,
|
|
122
|
-
sequencerFeed: AggregatorV2V3Interface(0xBCF85224fc0756B9Fa45aA7892530B47e10b6433),
|
|
123
|
-
gracePeriod: L2GracePeriod
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
// Base Sepolia
|
|
127
|
-
else if (block.chainid == 84_532) {
|
|
128
|
-
source = AggregatorV3Interface(address(0x4aDC67696bA383F43DD60A9e78F2C97Fbbfc7cb1));
|
|
129
|
-
feed = new JBChainlinkV3PriceFeed{salt: USD_NATIVE_FEED_SALT}({feed: source, threshold: 3600 seconds});
|
|
130
|
-
}
|
|
131
|
-
// Arbitrum
|
|
132
|
-
else if (block.chainid == 42_161) {
|
|
133
|
-
source = AggregatorV3Interface(0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612);
|
|
134
|
-
feed = new JBChainlinkV3SequencerPriceFeed{salt: USD_NATIVE_FEED_SALT}({
|
|
135
|
-
feed: source,
|
|
136
|
-
threshold: 3600 seconds,
|
|
137
|
-
sequencerFeed: AggregatorV2V3Interface(0xFdB631F5EE196F0ed6FAa767959853A9F217697D),
|
|
138
|
-
gracePeriod: L2GracePeriod
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
// Arbitrum Sepolia
|
|
142
|
-
else if (block.chainid == 421_614) {
|
|
143
|
-
source = AggregatorV3Interface(address(0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165));
|
|
144
|
-
feed = new JBChainlinkV3PriceFeed{salt: USD_NATIVE_FEED_SALT}({feed: source, threshold: 3600 seconds});
|
|
145
|
-
} else {
|
|
146
|
-
revert("Unsupported chain");
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
require(address(feed) != address(0), "Invalid price feed");
|
|
150
|
-
|
|
151
|
-
try core.prices
|
|
152
|
-
.addPriceFeedFor({
|
|
153
|
-
projectId: 0,
|
|
154
|
-
pricingCurrency: JBCurrencyIds.USD,
|
|
155
|
-
unitCurrency: uint32(uint160(JBConstants.NATIVE_TOKEN)),
|
|
156
|
-
feed: feed
|
|
157
|
-
}) {}
|
|
158
|
-
catch {}
|
|
159
|
-
// `addPriceFeedFor` can revert if this feed was already registered. Still require the feed to exist so a
|
|
160
|
-
// different failure mode can't silently skip this required deployment step.
|
|
161
|
-
require(
|
|
162
|
-
address(
|
|
163
|
-
core.prices
|
|
164
|
-
.priceFeedFor({
|
|
165
|
-
projectId: 0,
|
|
166
|
-
pricingCurrency: JBCurrencyIds.USD,
|
|
167
|
-
unitCurrency: uint32(uint160(JBConstants.NATIVE_TOKEN))
|
|
168
|
-
})
|
|
169
|
-
) != address(0),
|
|
170
|
-
"Missing USD/native price feed"
|
|
171
|
-
);
|
|
172
|
-
|
|
173
|
-
// WARN: We are using the same price feed as the native token for the USD price feed. Which is only valid on
|
|
174
|
-
// chains where Ether is the native asset. We *NEED* to update this when we deploy to a non-ether chain!
|
|
175
|
-
try core.prices
|
|
176
|
-
.addPriceFeedFor({
|
|
177
|
-
projectId: 0, pricingCurrency: JBCurrencyIds.USD, unitCurrency: JBCurrencyIds.ETH, feed: feed
|
|
178
|
-
}) {}
|
|
179
|
-
catch {}
|
|
180
|
-
// `addPriceFeedFor` can revert if this feed was already registered. Still require the feed to exist so a
|
|
181
|
-
// different failure mode can't silently skip this required deployment step.
|
|
182
|
-
require(
|
|
183
|
-
address(
|
|
184
|
-
core.prices
|
|
185
|
-
.priceFeedFor({projectId: 0, pricingCurrency: JBCurrencyIds.USD, unitCurrency: JBCurrencyIds.ETH})
|
|
186
|
-
) != address(0),
|
|
187
|
-
"Missing USD/ETH price feed"
|
|
188
|
-
);
|
|
189
|
-
|
|
190
|
-
// If the native asset for this chain is ether, then the conversion from native asset to ether is 1:1.
|
|
191
|
-
// NOTE: We need to refactor this the moment we add a chain where its native token is *NOT* ether.
|
|
192
|
-
// As otherwise prices for the `NATIVE_TOKEN` will be incorrect!
|
|
193
|
-
try core.prices
|
|
194
|
-
.addPriceFeedFor({
|
|
195
|
-
projectId: 0,
|
|
196
|
-
pricingCurrency: JBCurrencyIds.ETH,
|
|
197
|
-
unitCurrency: uint32(uint160(JBConstants.NATIVE_TOKEN)),
|
|
198
|
-
feed: matchingPriceFeed
|
|
199
|
-
}) {}
|
|
200
|
-
catch {}
|
|
201
|
-
// `addPriceFeedFor` can revert if this feed was already registered. Still require the feed to exist so a
|
|
202
|
-
// different failure mode can't silently skip this required deployment step.
|
|
203
|
-
require(
|
|
204
|
-
address(
|
|
205
|
-
core.prices
|
|
206
|
-
.priceFeedFor({
|
|
207
|
-
projectId: 0,
|
|
208
|
-
pricingCurrency: JBCurrencyIds.ETH,
|
|
209
|
-
unitCurrency: uint32(uint160(JBConstants.NATIVE_TOKEN))
|
|
210
|
-
})
|
|
211
|
-
) != address(0),
|
|
212
|
-
"Missing ETH/native price feed"
|
|
213
|
-
);
|
|
214
|
-
|
|
215
|
-
// Deploy the USDC/USD price feed.
|
|
216
|
-
_deployUSDCFeed(L2GracePeriod);
|
|
217
|
-
|
|
218
|
-
// Deploy the JBDeadlines
|
|
219
|
-
if (!_isDeployed({salt: DEADLINES_SALT, creationCode: type(JBDeadline3Hours).creationCode, arguments: ""})) {
|
|
220
|
-
new JBDeadline3Hours{salt: DEADLINES_SALT}();
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
if (!_isDeployed({salt: DEADLINES_SALT, creationCode: type(JBDeadline1Day).creationCode, arguments: ""})) {
|
|
224
|
-
new JBDeadline1Day{salt: DEADLINES_SALT}();
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
if (!_isDeployed({salt: DEADLINES_SALT, creationCode: type(JBDeadline3Days).creationCode, arguments: ""})) {
|
|
228
|
-
new JBDeadline3Days{salt: DEADLINES_SALT}();
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
if (!_isDeployed({salt: DEADLINES_SALT, creationCode: type(JBDeadline7Days).creationCode, arguments: ""})) {
|
|
232
|
-
new JBDeadline7Days{salt: DEADLINES_SALT}();
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
core.directory
|
|
236
|
-
.setIsAllowedToSetFirstController({
|
|
237
|
-
addr: address(
|
|
238
|
-
new JBController{salt: keccak256(abi.encode(CORE_DEPLOYMENT_NONCE))}({
|
|
239
|
-
directory: core.directory,
|
|
240
|
-
fundAccessLimits: core.fundAccess,
|
|
241
|
-
prices: core.prices,
|
|
242
|
-
permissions: core.permissions,
|
|
243
|
-
projects: core.projects,
|
|
244
|
-
rulesets: core.rulesets,
|
|
245
|
-
splits: core.splits,
|
|
246
|
-
tokens: core.tokens,
|
|
247
|
-
omnichainRulesetOperator: OMNICHAIN_RULESET_OPERATOR,
|
|
248
|
-
trustedForwarder: TRUSTED_FORWARDER
|
|
249
|
-
})
|
|
250
|
-
),
|
|
251
|
-
flag: true
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// forge-lint: disable-next-line(mixed-case-function, mixed-case-variable)
|
|
256
|
-
function _deployUSDCFeed(uint256 L2GracePeriod) internal {
|
|
257
|
-
IJBPriceFeed usdcFeed;
|
|
258
|
-
address usdc;
|
|
259
|
-
|
|
260
|
-
if (block.chainid == 1) {
|
|
261
|
-
usdc = address(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);
|
|
262
|
-
usdcFeed = new JBChainlinkV3PriceFeed({
|
|
263
|
-
feed: AggregatorV3Interface(address(0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6)),
|
|
264
|
-
threshold: 86_400 seconds
|
|
265
|
-
});
|
|
266
|
-
} else if (block.chainid == 11_155_111) {
|
|
267
|
-
usdc = address(0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238);
|
|
268
|
-
usdcFeed = new JBChainlinkV3PriceFeed({
|
|
269
|
-
feed: AggregatorV3Interface(address(0xA2F78ab2355fe2f984D808B5CeE7FD0A93D5270E)),
|
|
270
|
-
threshold: 86_400 seconds
|
|
271
|
-
});
|
|
272
|
-
} else if (block.chainid == 10) {
|
|
273
|
-
usdc = address(0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85);
|
|
274
|
-
usdcFeed = new JBChainlinkV3SequencerPriceFeed({
|
|
275
|
-
feed: AggregatorV3Interface(0x16a9FA2FDa030272Ce99B29CF780dFA30361E0f3),
|
|
276
|
-
threshold: 86_400 seconds,
|
|
277
|
-
sequencerFeed: AggregatorV2V3Interface(0x371EAD81c9102C9BF4874A9075FFFf170F2Ee389),
|
|
278
|
-
gracePeriod: L2GracePeriod
|
|
279
|
-
});
|
|
280
|
-
} else if (block.chainid == 11_155_420) {
|
|
281
|
-
usdc = address(0x5fd84259d66Cd46123540766Be93DFE6D43130D7);
|
|
282
|
-
usdcFeed = new JBChainlinkV3PriceFeed({
|
|
283
|
-
feed: AggregatorV3Interface(address(0x6e44e50E3cc14DD16e01C590DC1d7020cb36eD4C)),
|
|
284
|
-
threshold: 86_400 seconds
|
|
285
|
-
});
|
|
286
|
-
} else if (block.chainid == 8453) {
|
|
287
|
-
usdc = address(0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913);
|
|
288
|
-
usdcFeed = new JBChainlinkV3SequencerPriceFeed({
|
|
289
|
-
feed: AggregatorV3Interface(0x7e860098F58bBFC8648a4311b374B1D669a2bc6B),
|
|
290
|
-
threshold: 86_400 seconds,
|
|
291
|
-
sequencerFeed: AggregatorV2V3Interface(0xBCF85224fc0756B9Fa45aA7892530B47e10b6433),
|
|
292
|
-
gracePeriod: L2GracePeriod
|
|
293
|
-
});
|
|
294
|
-
} else if (block.chainid == 84_532) {
|
|
295
|
-
usdc = address(0x036CbD53842c5426634e7929541eC2318f3dCF7e);
|
|
296
|
-
usdcFeed = new JBChainlinkV3PriceFeed({
|
|
297
|
-
feed: AggregatorV3Interface(address(0xd30e2101a97dcbAeBCBC04F14C3f624E67A35165)),
|
|
298
|
-
threshold: 86_400 seconds
|
|
299
|
-
});
|
|
300
|
-
} else if (block.chainid == 42_161) {
|
|
301
|
-
usdc = address(0xaf88d065e77c8cC2239327C5EDb3A432268e5831);
|
|
302
|
-
usdcFeed = new JBChainlinkV3SequencerPriceFeed({
|
|
303
|
-
feed: AggregatorV3Interface(0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3),
|
|
304
|
-
threshold: 86_400 seconds,
|
|
305
|
-
sequencerFeed: AggregatorV2V3Interface(0xFdB631F5EE196F0ed6FAa767959853A9F217697D),
|
|
306
|
-
gracePeriod: L2GracePeriod
|
|
307
|
-
});
|
|
308
|
-
} else if (block.chainid == 421_614) {
|
|
309
|
-
usdc = address(0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d);
|
|
310
|
-
usdcFeed = new JBChainlinkV3PriceFeed({
|
|
311
|
-
feed: AggregatorV3Interface(address(0x0153002d20B96532C639313c2d54c3dA09109309)),
|
|
312
|
-
threshold: 86_400 seconds
|
|
313
|
-
});
|
|
314
|
-
} else {
|
|
315
|
-
revert("Unsupported chain for USDC feed");
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
require(usdc.code.length > 0, "Invalid USDC address");
|
|
319
|
-
require(address(usdcFeed) != address(0), "Invalid USDC price feed");
|
|
320
|
-
|
|
321
|
-
// forge-lint: disable-next-line(unsafe-typecast)
|
|
322
|
-
uint32 usdcCurrencyId = uint32(uint160(usdc));
|
|
323
|
-
|
|
324
|
-
try core.prices
|
|
325
|
-
.addPriceFeedFor({
|
|
326
|
-
projectId: 0, pricingCurrency: JBCurrencyIds.USD, unitCurrency: usdcCurrencyId, feed: usdcFeed
|
|
327
|
-
}) {}
|
|
328
|
-
catch {}
|
|
329
|
-
// `addPriceFeedFor` can revert if this feed was already registered. Still require the feed to exist so a
|
|
330
|
-
// different failure mode can't silently skip this required deployment step.
|
|
331
|
-
require(
|
|
332
|
-
address(
|
|
333
|
-
core.prices
|
|
334
|
-
.priceFeedFor({projectId: 0, pricingCurrency: JBCurrencyIds.USD, unitCurrency: usdcCurrencyId})
|
|
335
|
-
) != address(0),
|
|
336
|
-
"Missing USD/USDC price feed"
|
|
337
|
-
);
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
/// @dev This helper predicts addresses using the Arachnid CREATE2 deployer, but actual deployments go through
|
|
341
|
-
/// Sphinx (which uses a different deployer). As a result, this guard will never detect Sphinx-deployed contracts
|
|
342
|
-
/// and is only effective for contracts deployed via the Arachnid deployer directly.
|
|
343
|
-
function _isDeployed(bytes32 salt, bytes memory creationCode, bytes memory arguments) internal view returns (bool) {
|
|
344
|
-
address _deployedTo = vm.computeCreate2Address({
|
|
345
|
-
salt: salt,
|
|
346
|
-
initCodeHash: keccak256(abi.encodePacked(creationCode, arguments)),
|
|
347
|
-
// Arachnid/deterministic-deployment-proxy address.
|
|
348
|
-
deployer: address(0x4e59b44847b379578588920cA78FbF26c0B4956C)
|
|
349
|
-
});
|
|
350
|
-
|
|
351
|
-
// Return if code is already present at this address.
|
|
352
|
-
return address(_deployedTo).code.length != 0;
|
|
353
|
-
}
|
|
354
|
-
}
|
package/slither-ci.config.json
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"detectors_to_exclude": "timestamp,uninitialized-local,naming-convention,solc-version,shadowing-local",
|
|
3
|
-
"exclude_informational": true,
|
|
4
|
-
"exclude_low": false,
|
|
5
|
-
"exclude_medium": false,
|
|
6
|
-
"exclude_high": false,
|
|
7
|
-
"disable_color": false,
|
|
8
|
-
"filter_paths": "(mocks/|test/|node_modules/|lib/)",
|
|
9
|
-
"legacy_ast": false
|
|
10
|
-
}
|