From c365bae761ed26ff88731a2a46a75d1409643e31 Mon Sep 17 00:00:00 2001 From: 0xBA5ED <83727748+xBA5ED@users.noreply.github.com> Date: Thu, 17 Oct 2024 00:14:40 +0200 Subject: [PATCH] refactor: remove the `allowCrosschainSuckerExtension` flag, modify the `metadata.metadata` packing to use the least significant bits instead of the most significant bits --- lib/forge-std | 2 +- lib/sphinx | 2 +- package-lock.json | 40 +++++++++++++++----- package.json | 8 ++-- src/JB721TiersHookProjectDeployer.sol | 3 -- src/structs/JBPayDataHookRulesetMetadata.sol | 3 -- test/E2E/Pay_Mint_Redeem_E2E.t.sol | 2 - test/unit/mintFor_mintReservesFor_Unit.t.sol | 3 +- test/unit/pay_Unit.t.sol | 3 +- test/utils/UnitTestSetup.sol | 2 - 10 files changed, 38 insertions(+), 30 deletions(-) diff --git a/lib/forge-std b/lib/forge-std index 77876f8a..e04104ab 160000 --- a/lib/forge-std +++ b/lib/forge-std @@ -1 +1 @@ -Subproject commit 77876f8a5b44b770a935621bb331660c90ac928e +Subproject commit e04104ab93e771441eab03fb76eda1402cb5927b diff --git a/lib/sphinx b/lib/sphinx index 8126b932..5fb24a82 160000 --- a/lib/sphinx +++ b/lib/sphinx @@ -1 +1 @@ -Subproject commit 8126b93269809c693df357fd21b16a93b4db6728 +Subproject commit 5fb24a825f46bd6ae0b5359fe0da1d2346126b09 diff --git a/package-lock.json b/package-lock.json index b800cef2..58d58478 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,12 +10,12 @@ "license": "MIT", "dependencies": { "@bananapus/address-registry": "^0.0.7", - "@bananapus/core": "^0.0.32", + "@bananapus/core": "^0.0.35", "@bananapus/ownable": "^0.0.7", - "@bananapus/permission-ids": "^0.0.12", + "@bananapus/permission-ids": "^0.0.15", "@openzeppelin/contracts": "^5.0.2", "@prb/math": "^4.0.3", - "solady": "^0.0.248" + "solady": "^0.0.256" }, "devDependencies": { "@sphinx-labs/plugins": "^0.33.0" @@ -146,9 +146,10 @@ } }, "node_modules/@bananapus/core": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@bananapus/core/-/core-0.0.32.tgz", - "integrity": "sha512-Fn/LifHCxltEzyyBHZAlqERlJKBXGaeh0LPSgi/xra8vAvLhtuyhZiZDpJGg1dr9n7zwfTAba7qlUgYDNlRGXQ==", + "version": "0.0.35", + "resolved": "https://registry.npmjs.org/@bananapus/core/-/core-0.0.35.tgz", + "integrity": "sha512-v67JfZ8yWpk+xmTKjhBxydoF/VB7WJT3gdZDGjm6jyBSm9bo+XmFIBLjse0xpE5dToqyccRraCScYS884toyQA==", + "license": "MIT", "dependencies": { "@bananapus/permission-ids": "^0.0.12", "@chainlink/contracts": "^1.2.0", @@ -160,6 +161,15 @@ "node": ">=20.0.0" } }, + "node_modules/@bananapus/core/node_modules/@bananapus/permission-ids": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@bananapus/permission-ids/-/permission-ids-0.0.12.tgz", + "integrity": "sha512-nEgiJoC0DJy030RDAb5pLM8xQC1BVnNoXE1xKVZ/YB/+EwCy8260SHRxyzafF5On1aAD4raL8WFjr3/K/Lbanw==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@bananapus/ownable": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/@bananapus/ownable/-/ownable-0.0.7.tgz", @@ -184,10 +194,20 @@ "node": ">=20.0.0" } }, - "node_modules/@bananapus/permission-ids": { + "node_modules/@bananapus/ownable/node_modules/@bananapus/permission-ids": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/@bananapus/permission-ids/-/permission-ids-0.0.12.tgz", "integrity": "sha512-nEgiJoC0DJy030RDAb5pLM8xQC1BVnNoXE1xKVZ/YB/+EwCy8260SHRxyzafF5On1aAD4raL8WFjr3/K/Lbanw==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@bananapus/permission-ids": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/@bananapus/permission-ids/-/permission-ids-0.0.15.tgz", + "integrity": "sha512-55KQay5cZT/Pyo/+kK+oXsRt6GOH4X3Me1Wg+FemhUpGKhMWOPj/W60X5hvy2AdE3kX5uzJdabK0DJfAZmrT6A==", + "license": "MIT", "engines": { "node": ">=20.0.0" } @@ -8827,9 +8847,9 @@ } }, "node_modules/solady": { - "version": "0.0.248", - "resolved": "https://registry.npmjs.org/solady/-/solady-0.0.248.tgz", - "integrity": "sha512-GoiB6UuhM4Co56uBwxvzFLyDEwkMrTMkDDCA4Ft53sv1a7PyW0pj69JXqE6iExswV2aJfCF5OFs61gCEGkX3aw==", + "version": "0.0.256", + "resolved": "https://registry.npmjs.org/solady/-/solady-0.0.256.tgz", + "integrity": "sha512-Kd42TvGHx1rV+DaM9IF7uGb+L+LAEb1/e5s1ZseM8RgeLqMIMkFIR+ZlopKu4cEBtJsVzOBd4/h+Ge3dnP3QYg==", "license": "MIT" }, "node_modules/solc": { diff --git a/package.json b/package.json index 1a8f4d73..f9838301 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bananapus/721-hook", - "version": "0.0.24", + "version": "0.0.25", "license": "MIT", "repository": { "type": "git", @@ -18,12 +18,12 @@ }, "dependencies": { "@bananapus/address-registry": "^0.0.7", - "@bananapus/core": "^0.0.32", + "@bananapus/core": "^0.0.35", "@bananapus/ownable": "^0.0.7", - "@bananapus/permission-ids": "^0.0.12", + "@bananapus/permission-ids": "^0.0.15", "@openzeppelin/contracts": "^5.0.2", "@prb/math": "^4.0.3", - "solady": "^0.0.248" + "solady": "^0.0.256" }, "devDependencies": { "@sphinx-labs/plugins": "^0.33.0" diff --git a/src/JB721TiersHookProjectDeployer.sol b/src/JB721TiersHookProjectDeployer.sol index 6a6b20f5..528b3bdb 100644 --- a/src/JB721TiersHookProjectDeployer.sol +++ b/src/JB721TiersHookProjectDeployer.sol @@ -240,7 +240,6 @@ contract JB721TiersHookProjectDeployer is JBPermissioned, IJB721TiersHookProject allowSetController: payDataRulesetConfig.metadata.allowSetController, allowAddAccountingContext: payDataRulesetConfig.metadata.allowAddAccountingContext, allowAddPriceFeed: payDataRulesetConfig.metadata.allowAddPriceFeed, - allowCrosschainSuckerExtension: payDataRulesetConfig.metadata.allowCrosschainSuckerExtension, ownerMustSendPayouts: payDataRulesetConfig.metadata.ownerMustSendPayouts, holdFees: payDataRulesetConfig.metadata.holdFees, useTotalSurplusForRedemptions: payDataRulesetConfig.metadata.useTotalSurplusForRedemptions, @@ -311,7 +310,6 @@ contract JB721TiersHookProjectDeployer is JBPermissioned, IJB721TiersHookProject allowSetController: payDataRulesetConfig.metadata.allowSetController, allowAddAccountingContext: payDataRulesetConfig.metadata.allowAddAccountingContext, allowAddPriceFeed: payDataRulesetConfig.metadata.allowAddPriceFeed, - allowCrosschainSuckerExtension: payDataRulesetConfig.metadata.allowCrosschainSuckerExtension, ownerMustSendPayouts: payDataRulesetConfig.metadata.ownerMustSendPayouts, holdFees: payDataRulesetConfig.metadata.holdFees, useTotalSurplusForRedemptions: payDataRulesetConfig.metadata.useTotalSurplusForRedemptions, @@ -380,7 +378,6 @@ contract JB721TiersHookProjectDeployer is JBPermissioned, IJB721TiersHookProject allowSetController: payDataRulesetConfig.metadata.allowSetController, allowAddAccountingContext: payDataRulesetConfig.metadata.allowAddAccountingContext, allowAddPriceFeed: payDataRulesetConfig.metadata.allowAddPriceFeed, - allowCrosschainSuckerExtension: payDataRulesetConfig.metadata.allowCrosschainSuckerExtension, ownerMustSendPayouts: payDataRulesetConfig.metadata.ownerMustSendPayouts, holdFees: payDataRulesetConfig.metadata.holdFees, useTotalSurplusForRedemptions: payDataRulesetConfig.metadata.useTotalSurplusForRedemptions, diff --git a/src/structs/JBPayDataHookRulesetMetadata.sol b/src/structs/JBPayDataHookRulesetMetadata.sol index 17b3be9c..188a5757 100644 --- a/src/structs/JBPayDataHookRulesetMetadata.sol +++ b/src/structs/JBPayDataHookRulesetMetadata.sol @@ -19,8 +19,6 @@ pragma solidity ^0.8.0; /// terminals to use. /// @custom:member allowAddPriceFeed A flag indicating if a project can add new price feeds to calculate exchange rates /// between its tokens. -/// @custom:member allowCrosschainSuckerExtension A flag indicating if the crosschain sucker extension should be -/// allowed during this ruleset. /// @custom:member holdFees A flag indicating if fees should be held during this ruleset. /// @custom:member useTotalSurplusForRedemptions A flag indicating if redemptions should use the project's balance held /// in all terminals instead of the project's local terminal balance from which the redemption is being fulfilled. @@ -39,7 +37,6 @@ struct JBPayDataHookRulesetMetadata { bool allowSetController; bool allowAddAccountingContext; bool allowAddPriceFeed; - bool allowCrosschainSuckerExtension; bool ownerMustSendPayouts; bool holdFees; bool useTotalSurplusForRedemptions; diff --git a/test/E2E/Pay_Mint_Redeem_E2E.t.sol b/test/E2E/Pay_Mint_Redeem_E2E.t.sol index 97970e61..f675e361 100644 --- a/test/E2E/Pay_Mint_Redeem_E2E.t.sol +++ b/test/E2E/Pay_Mint_Redeem_E2E.t.sol @@ -778,7 +778,6 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { ownerMustSendPayouts: false, allowAddAccountingContext: false, allowAddPriceFeed: false, - allowCrosschainSuckerExtension: false, holdFees: false, useTotalSurplusForRedemptions: false, useDataHookForRedeem: true, @@ -872,7 +871,6 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { ownerMustSendPayouts: false, allowAddAccountingContext: false, allowAddPriceFeed: false, - allowCrosschainSuckerExtension: false, holdFees: false, useTotalSurplusForRedemptions: false, useDataHookForRedeem: true, diff --git a/test/unit/mintFor_mintReservesFor_Unit.t.sol b/test/unit/mintFor_mintReservesFor_Unit.t.sol index c9fb05bc..92290514 100644 --- a/test/unit/mintFor_mintReservesFor_Unit.t.sol +++ b/test/unit/mintFor_mintReservesFor_Unit.t.sol @@ -153,14 +153,13 @@ contract Test_mintFor_mintReservesFor_Unit is UnitTestSetup { allowSetController: false, allowAddAccountingContext: false, allowAddPriceFeed: false, - allowCrosschainSuckerExtension: false, ownerMustSendPayouts: false, holdFees: false, useTotalSurplusForRedemptions: false, useDataHookForPay: true, useDataHookForRedeem: true, dataHook: address(0), - metadata: 16 // the first 3 bits are discarded, so this is 0100. + metadata: 2 }) ) }) diff --git a/test/unit/pay_Unit.t.sol b/test/unit/pay_Unit.t.sol index e8e0c513..e94e2a9c 100644 --- a/test/unit/pay_Unit.t.sol +++ b/test/unit/pay_Unit.t.sol @@ -1299,14 +1299,13 @@ contract Test_afterPayRecorded_Unit is UnitTestSetup { allowSetController: false, allowAddAccountingContext: false, allowAddPriceFeed: false, - allowCrosschainSuckerExtension: false, ownerMustSendPayouts: false, holdFees: false, useTotalSurplusForRedemptions: false, useDataHookForPay: true, useDataHookForRedeem: true, dataHook: address(hook), - metadata: 8 // the first 3 bits are discarded, so this is 0001. + metadata: 1 }) ) }) diff --git a/test/utils/UnitTestSetup.sol b/test/utils/UnitTestSetup.sol index 69a821ee..82d0bf1c 100644 --- a/test/utils/UnitTestSetup.sol +++ b/test/utils/UnitTestSetup.sol @@ -197,7 +197,6 @@ contract UnitTestSetup is Test { allowSetController: false, allowAddAccountingContext: false, allowAddPriceFeed: false, - allowCrosschainSuckerExtension: false, ownerMustSendPayouts: false, holdFees: false, useTotalSurplusForRedemptions: false, @@ -723,7 +722,6 @@ contract UnitTestSetup is Test { ownerMustSendPayouts: false, allowAddAccountingContext: false, allowAddPriceFeed: false, - allowCrosschainSuckerExtension: false, holdFees: false, useTotalSurplusForRedemptions: false, useDataHookForRedeem: false,