From 960c5c372f8f84319e75136ee99307acb131b6bb Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:22:23 +0600 Subject: [PATCH 01/61] Fix outdated protocol name references for ERC7201 storage (#41) --- src/storage/AdminAccessCheckerStorage.sol | 6 +++--- src/storage/CampaignInfoFactoryStorage.sol | 6 +++--- src/storage/GlobalParamsStorage.sol | 6 +++--- src/storage/TreasuryFactoryStorage.sol | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/storage/AdminAccessCheckerStorage.sol b/src/storage/AdminAccessCheckerStorage.sol index 455904b..32473a5 100644 --- a/src/storage/AdminAccessCheckerStorage.sol +++ b/src/storage/AdminAccessCheckerStorage.sol @@ -9,14 +9,14 @@ import {IGlobalParams} from "../interfaces/IGlobalParams.sol"; * @dev This contract contains the storage layout and accessor functions for AdminAccessChecker */ library AdminAccessCheckerStorage { - /// @custom:storage-location erc7201:ccprotocol.storage.AdminAccessChecker + /// @custom:storage-location erc7201:oaknetwork.storage.AdminAccessChecker struct Storage { IGlobalParams globalParams; } - // keccak256(abi.encode(uint256(keccak256("ccprotocol.storage.AdminAccessChecker")) - 1)) & ~bytes32(uint256(0xff)) + // keccak256(abi.encode(uint256(keccak256("oaknetwork.storage.AdminAccessChecker")) - 1)) & ~bytes32(uint256(0xff)) bytes32 private constant ADMIN_ACCESS_CHECKER_STORAGE_LOCATION = - 0x7c2f08fa04c2c7c7ab255a45dbf913d4c236b91c59858917e818398e997f8800; + 0x7608703513d219ecdd1e84aa0951e3c83cfe601f872259e1340c97792f4b8200; function _getAdminAccessCheckerStorage() internal pure returns (Storage storage $) { assembly { diff --git a/src/storage/CampaignInfoFactoryStorage.sol b/src/storage/CampaignInfoFactoryStorage.sol index d96d66d..5d41680 100644 --- a/src/storage/CampaignInfoFactoryStorage.sol +++ b/src/storage/CampaignInfoFactoryStorage.sol @@ -9,7 +9,7 @@ import {IGlobalParams} from "../interfaces/IGlobalParams.sol"; * @dev This contract contains the storage layout and accessor functions for CampaignInfoFactory */ library CampaignInfoFactoryStorage { - /// @custom:storage-location erc7201:ccprotocol.storage.CampaignInfoFactory + /// @custom:storage-location erc7201:oaknetwork.storage.CampaignInfoFactory struct Storage { IGlobalParams globalParams; address treasuryFactoryAddress; @@ -18,9 +18,9 @@ library CampaignInfoFactoryStorage { mapping(bytes32 => address) identifierToCampaignInfo; } - // keccak256(abi.encode(uint256(keccak256("ccprotocol.storage.CampaignInfoFactory")) - 1)) & ~bytes32(uint256(0xff)) + // keccak256(abi.encode(uint256(keccak256("oaknetwork.storage.CampaignInfoFactory")) - 1)) & ~bytes32(uint256(0xff)) bytes32 private constant CAMPAIGN_INFO_FACTORY_STORAGE_LOCATION = - 0x2857858a392b093e1f8b3f368c2276ce911f27cef445605a2932ebe945968d00; + 0x6dcebba7d782f7ff546a8ee2af2a142213ed91f5c14e411be41cf3be65358c00; function _getCampaignInfoFactoryStorage() internal pure returns (Storage storage $) { assembly { diff --git a/src/storage/GlobalParamsStorage.sol b/src/storage/GlobalParamsStorage.sol index 22988f0..a923f2d 100644 --- a/src/storage/GlobalParamsStorage.sol +++ b/src/storage/GlobalParamsStorage.sol @@ -29,7 +29,7 @@ library GlobalParamsStorage { bool instantTransfer; } - /// @custom:storage-location erc7201:ccprotocol.storage.GlobalParams + /// @custom:storage-location erc7201:oaknetwork.storage.GlobalParams struct Storage { address protocolAdminAddress; uint256 protocolFeePercent; @@ -48,9 +48,9 @@ library GlobalParamsStorage { Counters.Counter numberOfListedPlatforms; } - // keccak256(abi.encode(uint256(keccak256("ccprotocol.storage.GlobalParams")) - 1)) & ~bytes32(uint256(0xff)) + // keccak256(abi.encode(uint256(keccak256("oaknetwork.storage.GlobalParams")) - 1)) & ~bytes32(uint256(0xff)) bytes32 private constant GLOBAL_PARAMS_STORAGE_LOCATION = - 0x83d0145f7c1378f10048390769ec94f999b3ba6d94904b8fd7251512962b1c00; + 0xcab368c4291c205bbe63a595130eb08714925d02705f410a55bf1a45b8ddaf00; function _getGlobalParamsStorage() internal pure returns (Storage storage $) { assembly { diff --git a/src/storage/TreasuryFactoryStorage.sol b/src/storage/TreasuryFactoryStorage.sol index 67337c1..ab1e43d 100644 --- a/src/storage/TreasuryFactoryStorage.sol +++ b/src/storage/TreasuryFactoryStorage.sol @@ -7,15 +7,15 @@ pragma solidity ^0.8.22; * @dev This contract contains the storage layout and accessor functions for TreasuryFactory */ library TreasuryFactoryStorage { - /// @custom:storage-location erc7201:ccprotocol.storage.TreasuryFactory + /// @custom:storage-location erc7201:oaknetwork.storage.TreasuryFactory struct Storage { mapping(bytes32 => mapping(uint256 => address)) implementationMap; mapping(address => bool) approvedImplementations; } - // keccak256(abi.encode(uint256(keccak256("ccprotocol.storage.TreasuryFactory")) - 1)) & ~bytes32(uint256(0xff)) + // keccak256(abi.encode(uint256(keccak256("oaknetwork.storage.TreasuryFactory")) - 1)) & ~bytes32(uint256(0xff)) bytes32 private constant TREASURY_FACTORY_STORAGE_LOCATION = - 0x96b7de8c171ef460648aea35787d043e89feb6b6de2623a1e6f17a91b9c9e900; + 0xac5f58af051caf3154d38fdfab53396f7d32e9ef6bb41b866435ed38c5426600; function _getTreasuryFactoryStorage() internal pure returns (Storage storage $) { assembly { From 270f7e77e56afc7f3f8012baf556429ba3c5c9bb Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:27:14 +0600 Subject: [PATCH 02/61] Refactor disburseFees function in KeepWhatsRaised contract to allow fee disbursement before or after cancellation, ensuring accrued fees are not trapped. (OZ-7) (#18) --- src/treasuries/KeepWhatsRaised.sol | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 673e039..cab9db1 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -992,11 +992,12 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa /** * @dev Disburses all accumulated fees to the appropriate fee collector or treasury. + * Callable before or after cancellation so that accrued fees are never trapped. * * Requirements: * - Only callable when fees are available. */ - function disburseFees() public override whenNotPaused whenNotCancelled { + function disburseFees() public override whenNotPaused { address[] memory acceptedTokens = INFO.getAcceptedTokens(); address protocolAdmin = INFO.getProtocolAdminAddress(); address platformAdmin = INFO.getPlatformAdminAddress(PLATFORM_HASH); From c0b778bdf347fda3816712243228017ca4d6163a Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:28:16 +0600 Subject: [PATCH 03/61] Update Config documentation to clarify withdrawal conditions in KeepWhatsRaised (OZ-9) (#19) - Enhanced comments to specify the time delay for withdrawals after the campaign deadline, detailing the conditions under which withdrawals are allowed. --- src/treasuries/KeepWhatsRaised.sol | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index cab9db1..242306b 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -79,7 +79,9 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa struct Config { /// @dev The minimum withdrawal amount required to qualify for fee exemption. uint256 minimumWithdrawalForFeeExemption; - /// @dev Time delay (in timestamp) enforced before a withdrawal can be completed. + /// @dev Time delay (in timestamp) after the campaign deadline until which the campaign owner may withdraw. + /// Withdrawal is allowed only while current time is less than deadline + withdrawalDelay. + /// After deadline + withdrawalDelay, the withdrawal function is no longer callable. uint256 withdrawalDelay; /// @dev Time delay (in timestamp) before a refund becomes claimable or processed. uint256 refundDelay; @@ -840,7 +842,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa * * Requirements: * - Caller must be authorized. - * - Withdrawals must be enabled, not paused, and within the allowed time. + * - Withdrawals must be enabled, not paused, and within the withdrawal window (current time < deadline + withdrawalDelay). * - Token must be accepted for the campaign. * - For partial withdrawals: * - `amount` > 0 and `amount + fees` ≤ available balance. From b6dd0859bdce72312793a0fda048d4561550aa51 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:29:59 +0600 Subject: [PATCH 04/61] Fee Types Mixing in Storage With Lack of Validation (OZ-5) (#22) * Refactor fee handling in KeepWhatsRaised contract - Introduced flat and cumulative flat fee values, replacing the previous fee mapping. - Added checks for unique fee keys and validation for percentage fee limits. - Updated getFeeValue function to accommodate new fee structure. - Emitted new errors for duplicate fee keys and percentage fee violations. * Add unit tests for treasury configuration in KeepWhatsRaised contract - Implemented tests to ensure proper error handling for duplicate flat and percentage fee keys. - Added checks for maximum percentage fee limits and aggregate percentage constraints. - Enhanced test coverage for the configureTreasury function to validate fee configurations. * Refactor fee calculation in KeepWhatsRaised contract --- src/treasuries/KeepWhatsRaised.sol | 73 ++++++++++++++++++++----- test/foundry/unit/KeepWhatsRaised.t.sol | 49 +++++++++++++++++ 2 files changed, 108 insertions(+), 14 deletions(-) diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 242306b..3db891a 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -33,8 +33,11 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa mapping(bytes32 => bool) public s_processedPledges; /// Mapping to store payment gateway fees by unique pledge ID mapping(bytes32 => uint256) public s_paymentGatewayFees; - /// Mapping that stores fee values indexed by their corresponding fee keys. - mapping(bytes32 => uint256) private s_feeValues; + /// Flat fee values (token amounts, 18 decimals). Units are unambiguous. + uint256 private s_flatFeeValue; + uint256 private s_cumulativeFlatFeeValue; + /// Gross percentage fee values (basis points, 0 to PERCENT_DIVIDER - 1). Stored in same order as s_feeKeys.grossPercentageFeeKeys. + uint256[] private s_grossPercentageFeeValues; // Multi-token support mapping(uint256 => address) private s_tokenIdToPledgeToken; // Token used for each pledge @@ -203,6 +206,15 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa */ error KeepWhatsRaisedInvalidInput(); + /// @dev Emitted when fee keys are not unique (duplicate or overlap between flat and percentage keys). + error KeepWhatsRaisedDuplicateFeeKey(); + + /// @dev Emitted when a percentage fee value is >= PERCENT_DIVIDER (100%). + error KeepWhatsRaisedPercentageFeeExceedsMax(); + + /// @dev Emitted when the sum of gross percentage fees is >= PERCENT_DIVIDER (100%). + error KeepWhatsRaisedAggregatePercentageExceedsMax(); + /** * @dev Emitted when a token is not accepted for the campaign. */ @@ -449,12 +461,19 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa /** * @dev Retrieves the fee value associated with a specific fee key from storage. - * @param {bytes32} feeKey - The unique identifier key used to reference a specific fee type. - * - * @return {uint256} The fee value corresponding to the provided fee key. + * Flat fee keys return token amounts (18 decimals); percentage keys return basis points. + * @param feeKey The unique identifier key used to reference a specific fee type. + * @return The fee value corresponding to the provided fee key (0 if key is unknown). */ function getFeeValue(bytes32 feeKey) public view returns (uint256) { - return s_feeValues[feeKey]; + if (feeKey == s_feeKeys.flatFeeKey) return s_flatFeeValue; + if (feeKey == s_feeKeys.cumulativeFlatFeeKey) return s_cumulativeFlatFeeValue; + for (uint256 i = 0; i < s_feeKeys.grossPercentageFeeKeys.length; i++) { + if (s_feeKeys.grossPercentageFeeKeys[i] == feeKey) { + return s_grossPercentageFeeValues[i]; + } + } + return 0; } /** @@ -525,16 +544,42 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa revert KeepWhatsRaisedInvalidInput(); } + // Enforce key uniqueness: flat keys must differ and must not appear in percentage keys + if (feeKeys.flatFeeKey == feeKeys.cumulativeFlatFeeKey) { + revert KeepWhatsRaisedDuplicateFeeKey(); + } + for (uint256 i = 0; i < feeKeys.grossPercentageFeeKeys.length; i++) { + bytes32 k = feeKeys.grossPercentageFeeKeys[i]; + if (k == feeKeys.flatFeeKey || k == feeKeys.cumulativeFlatFeeKey) { + revert KeepWhatsRaisedDuplicateFeeKey(); + } + for (uint256 j = i + 1; j < feeKeys.grossPercentageFeeKeys.length; j++) { + if (feeKeys.grossPercentageFeeKeys[j] == k) { + revert KeepWhatsRaisedDuplicateFeeKey(); + } + } + } + + // Per-fee and aggregate percentage bounds (each and total must be < PERCENT_DIVIDER) + uint256 aggregatePercent = 0; + for (uint256 i = 0; i < feeValues.grossPercentageFeeValues.length; i++) { + uint256 v = feeValues.grossPercentageFeeValues[i]; + if (v >= PERCENT_DIVIDER) { + revert KeepWhatsRaisedPercentageFeeExceedsMax(); + } + aggregatePercent += v; + } + if (aggregatePercent >= PERCENT_DIVIDER) { + revert KeepWhatsRaisedAggregatePercentageExceedsMax(); + } + s_config = config; s_feeKeys = feeKeys; s_campaignData = campaignData; - s_feeValues[feeKeys.flatFeeKey] = feeValues.flatFeeValue; - s_feeValues[feeKeys.cumulativeFlatFeeKey] = feeValues.cumulativeFlatFeeValue; - - for (uint256 i = 0; i < feeKeys.grossPercentageFeeKeys.length; i++) { - s_feeValues[feeKeys.grossPercentageFeeKeys[i]] = feeValues.grossPercentageFeeValues[i]; - } + s_flatFeeValue = feeValues.flatFeeValue; + s_cumulativeFlatFeeValue = feeValues.cumulativeFlatFeeValue; + s_grossPercentageFeeValues = feeValues.grossPercentageFeeValues; emit TreasuryConfigured(config, campaignData, feeKeys, feeValues); } @@ -1180,10 +1225,10 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa { uint256 totalFee = 0; - // Gross Percentage Fee Calculation (correct as-is) + // Gross Percentage Fee Calculation uint256 len = s_feeKeys.grossPercentageFeeKeys.length; for (uint256 i = 0; i < len; i++) { - uint256 fee = (pledgeAmount * getFeeValue(s_feeKeys.grossPercentageFeeKeys[i])) / PERCENT_DIVIDER; + uint256 fee = (pledgeAmount * s_grossPercentageFeeValues[i]) / PERCENT_DIVIDER; s_platformFeePerToken[pledgeToken] += fee; totalFee += fee; } diff --git a/test/foundry/unit/KeepWhatsRaised.t.sol b/test/foundry/unit/KeepWhatsRaised.t.sol index d31a64d..4cc9acf 100644 --- a/test/foundry/unit/KeepWhatsRaised.t.sol +++ b/test/foundry/unit/KeepWhatsRaised.t.sol @@ -176,6 +176,55 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te keepWhatsRaised.configureTreasury(CONFIG, CAMPAIGN_DATA, mismatchedKeys, mismatchedValues); } + function testConfigureTreasuryRevertWhenDuplicateFlatKeys() public { + KeepWhatsRaised.FeeKeys memory keys = FEE_KEYS; + keys.flatFeeKey = keys.cumulativeFlatFeeKey; // same key for both flat fees + KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); + + vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedDuplicateFeeKey.selector); + vm.prank(users.platform2AdminAddress); + keepWhatsRaised.configureTreasury(CONFIG, CAMPAIGN_DATA, keys, feeValues); + } + + function testConfigureTreasuryRevertWhenFlatKeyEqualsPercentageKey() public { + KeepWhatsRaised.FeeKeys memory keys = FEE_KEYS; + keys.flatFeeKey = PLATFORM_FEE_KEY; // flat key collides with percentage key + KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); + + vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedDuplicateFeeKey.selector); + vm.prank(users.platform2AdminAddress); + keepWhatsRaised.configureTreasury(CONFIG, CAMPAIGN_DATA, keys, feeValues); + } + + function testConfigureTreasuryRevertWhenDuplicatePercentageKeys() public { + KeepWhatsRaised.FeeKeys memory keys = FEE_KEYS; + keys.grossPercentageFeeKeys[1] = keys.grossPercentageFeeKeys[0]; // duplicate + KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); + + vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedDuplicateFeeKey.selector); + vm.prank(users.platform2AdminAddress); + keepWhatsRaised.configureTreasury(CONFIG, CAMPAIGN_DATA, keys, feeValues); + } + + function testConfigureTreasuryRevertWhenPercentageFeeExceedsMax() public { + KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); + feeValues.grossPercentageFeeValues[0] = PERCENT_DIVIDER; // 100% not allowed + + vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedPercentageFeeExceedsMax.selector); + vm.prank(users.platform2AdminAddress); + keepWhatsRaised.configureTreasury(CONFIG, CAMPAIGN_DATA, FEE_KEYS, feeValues); + } + + function testConfigureTreasuryRevertWhenAggregatePercentageExceedsMax() public { + KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); + feeValues.grossPercentageFeeValues[0] = 6000; // 60% + feeValues.grossPercentageFeeValues[1] = 5000; // 50% -> total 110% + + vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedAggregatePercentageExceedsMax.selector); + vm.prank(users.platform2AdminAddress); + keepWhatsRaised.configureTreasury(CONFIG, CAMPAIGN_DATA, FEE_KEYS, feeValues); + } + /*////////////////////////////////////////////////////////////// PAYMENT GATEWAY FEES //////////////////////////////////////////////////////////////*/ From bd5dd7419b99caf621565f2eb76e966838490751 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:30:42 +0600 Subject: [PATCH 05/61] Add setFeeAndPledge time restriction in KeepWhatsRaised contract (OZ-16) (#23) - Introduced a check to ensure the current time is within the launch and deadline range, enhancing the campaign scheduling logic. --- src/treasuries/KeepWhatsRaised.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 3db891a..087bb94 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -722,6 +722,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa external nonReentrant onlyPlatformAdmin(PLATFORM_HASH) + currentTimeIsWithinRange(getLaunchTime(), getDeadline()) whenCampaignNotPaused whenNotPaused whenCampaignNotCancelled From 75faa278e3f4d9a3dc07fbc895d399f119615c07 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:32:02 +0600 Subject: [PATCH 06/61] Add NatSpec noting _safeMint backer requirements (#72) --- src/treasuries/AllOrNothing.sol | 2 ++ src/treasuries/KeepWhatsRaised.sol | 2 ++ src/utils/BasePaymentTreasury.sol | 6 ++++++ src/utils/PledgeNFT.sol | 4 +++- 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index fb9391d..b51f570 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -394,6 +394,8 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker, ReentrancyGuar return INFO.getTotalRaisedAmount() >= INFO.getGoalAmount(); } + /// @dev Mints a pledge NFT via `_safeMint`; reverts if `backer` is a contract + /// that does not implement `IERC721Receiver`. function _pledge( address backer, address pledgeToken, diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 087bb94..b56c9cb 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -1156,6 +1156,8 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa return true; } + /// @dev Mints a pledge NFT via `_safeMint`; reverts if `backer` is a contract + /// that does not implement `IERC721Receiver`. function _pledge( bytes32 pledgeId, address backer, diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index f7e45f4..9fc0b48 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -779,6 +779,8 @@ abstract contract BasePaymentTreasury is /** * @inheritdoc ICampaignPaymentTreasury + * @dev Mints a pledge NFT to `buyerAddress` via `_safeMint`. Reverts if `buyerAddress` is + * a contract that does not implement `IERC721Receiver`. */ function processCryptoPayment( bytes32 paymentId, @@ -1110,6 +1112,8 @@ abstract contract BasePaymentTreasury is /** * @inheritdoc ICampaignPaymentTreasury + * @dev If `buyerAddress` is non-zero, mints a pledge NFT via `_safeMint`. Reverts if + * `buyerAddress` is a contract that does not implement `IERC721Receiver`. */ function confirmPayment(bytes32 paymentId, address buyerAddress) public @@ -1158,6 +1162,8 @@ abstract contract BasePaymentTreasury is /** * @inheritdoc ICampaignPaymentTreasury + * @dev For each non-zero `buyerAddress`, mints a pledge NFT via `_safeMint`. Reverts if + * any such address is a contract that does not implement `IERC721Receiver`. */ function confirmPaymentBatch(bytes32[] calldata paymentIds, address[] calldata buyerAddresses) public diff --git a/src/utils/PledgeNFT.sol b/src/utils/PledgeNFT.sol index 7d85480..994866e 100644 --- a/src/utils/PledgeNFT.sol +++ b/src/utils/PledgeNFT.sol @@ -115,7 +115,9 @@ abstract contract PledgeNFT is ERC721Burnable, AccessControl { /** * @notice Mints a pledge NFT (auto-increments counter) - * @dev Called by treasuries - returns the new token ID to use as pledge ID + * @dev Called by treasuries - returns the new token ID to use as pledge ID. + * Uses `_safeMint`, so `backer` must be an EOA or a contract that implements + * `IERC721Receiver`; otherwise the transaction will revert. * @param backer The backer address * @param reward The reward identifier * @param tokenAddress The address of the token used for the pledge From 11f64986b183102a7a5f453cc76def747a1061e0 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:32:24 +0600 Subject: [PATCH 07/61] Remove redundant time and amount checks (#70) --- src/CampaignInfo.sol | 4 ++-- src/utils/BasePaymentTreasury.sol | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index cd650eb..9b4bb56 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -497,7 +497,7 @@ contract CampaignInfo is // Ensure launch time is not in the past and deadline still meets minimum duration requirement // Allow moving launch time closer to current time as long as minimum duration is maintained - if (launchTime < block.timestamp || deadline <= launchTime || deadline < launchTime + minimumCampaignDuration) { + if (launchTime < block.timestamp || deadline < launchTime + minimumCampaignDuration) { revert CampaignInfoInvalidInput(); } @@ -520,7 +520,7 @@ contract CampaignInfo is uint256 minimumCampaignDuration = uint256(_getGlobalParams().getFromRegistry(DataRegistryKeys.MINIMUM_CAMPAIGN_DURATION)); - if (deadline <= launchTime || deadline < launchTime + minimumCampaignDuration) { + if (deadline < launchTime + minimumCampaignDuration) { revert CampaignInfoInvalidInput(); } diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index 9fc0b48..9df477f 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -1256,7 +1256,7 @@ abstract contract BasePaymentTreasury is if (!payment.isConfirmed) { revert PaymentTreasuryPaymentNotConfirmed(internalPaymentId); } - if (amountToRefund == 0 || availablePaymentAmount < amountToRefund) { + if (amountToRefund == 0) { revert PaymentTreasuryPaymentNotClaimable(internalPaymentId); } // This function is for non-NFT payments only @@ -1398,7 +1398,7 @@ abstract contract BasePaymentTreasury is if (buyerAddress == address(0)) { revert PaymentTreasuryPaymentNotExist(internalPaymentId); } - if (amountToRefund == 0 || availablePaymentAmount < amountToRefund) { + if (amountToRefund == 0) { revert PaymentTreasuryPaymentNotClaimable(internalPaymentId); } // NFT must exist for crypto payments From 171f4f6c9d610626b2f0c260216ae81fbc9d7642 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:32:37 +0600 Subject: [PATCH 08/61] Remove redundant duration check in BasePaymentTreasury contract (OZ-25) (#24) --- src/utils/BasePaymentTreasury.sol | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index 9df477f..4b52a3e 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -340,11 +340,6 @@ abstract contract BasePaymentTreasury is } duration = uint256(maxExpirationBytes); - - if (duration == 0) { - return (false, 0); - } - hasLimit = true; } From e8cc973dc87abda78da6ba89c885206e7f826c11 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:32:56 +0600 Subject: [PATCH 09/61] Add non-zero sender check in _msgSender overrides (#69) --- src/utils/BasePaymentTreasury.sol | 8 ++++++++ src/utils/BaseTreasury.sol | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index 4b52a3e..fcb69e7 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -267,6 +267,11 @@ abstract contract BasePaymentTreasury is */ error PaymentTreasuryNoFundsToClaim(); + /** + * @dev Throws when the forwarder appends address(0) as the sender. + */ + error PaymentTreasuryInvalidSender(); + /** * @dev Scopes a payment ID for off-chain payments (createPayment/createPaymentBatch). * @param paymentId The external payment ID. @@ -359,6 +364,9 @@ abstract contract BasePaymentTreasury is assembly { sender := shr(96, calldataload(sub(calldatasize(), 20))) } + if (sender == address(0)) { + revert PaymentTreasuryInvalidSender(); + } } else { sender = msg.sender; } diff --git a/src/utils/BaseTreasury.sol b/src/utils/BaseTreasury.sol index dc22468..7c4c43a 100644 --- a/src/utils/BaseTreasury.sol +++ b/src/utils/BaseTreasury.sol @@ -73,6 +73,11 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce */ error TreasuryCampaignInfoIsPaused(); + /** + * @dev Throws when the forwarder appends address(0) as the sender. + */ + error TreasuryInvalidSender(); + function __BaseContract_init(bytes32 platformHash, address infoAddress, address trustedForwarder_) internal { __CampaignAccessChecker_init(infoAddress); PLATFORM_HASH = platformHash; @@ -89,6 +94,9 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce assembly { sender := shr(96, calldataload(sub(calldatasize(), 20))) } + if (sender == address(0)) { + revert TreasuryInvalidSender(); + } } else { sender = msg.sender; } From 54ada6b74bbc05391bb18b92285ccc256aad4708 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:33:08 +0600 Subject: [PATCH 10/61] Fix docstring for AllOrNothingFeeAlreadyDisbursed (#68) --- src/treasuries/AllOrNothing.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index b51f570..43cb8d2 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -97,7 +97,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker, ReentrancyGuar error AllOrNothingFeeNotDisbursed(); /** - * @dev Emitted when `disburseFees` after fee is disbursed already. + * @dev Emitted within `disburseFees` after fee is disbursed already. */ error AllOrNothingFeeAlreadyDisbursed(); /** From f3eb641a1dac3bce16a66530f27d205edb661df7 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:33:27 +0600 Subject: [PATCH 11/61] Reorder struct declarations to adhere to solidity style guide (#67) --- src/CampaignInfo.sol | 15 +++++++++------ src/utils/BasePaymentTreasury.sol | 24 ++++++++++++------------ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index 9b4bb56..0be491c 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -34,6 +34,15 @@ contract CampaignInfo is { using Counters for Counters.Counter; + /** + * @dev Struct to hold campaign configuration information. + */ + struct Config { + address treasuryFactory; + uint256 protocolFeePercent; + bytes32 identifierHash; + } + CampaignData private s_campaignData; mapping(bytes32 => address) private s_platformTreasuryAddress; @@ -186,12 +195,6 @@ contract CampaignInfo is _initializeNFT(nftName, nftSymbol, nftImageURI, nftContractURI); } - struct Config { - address treasuryFactory; - uint256 protocolFeePercent; - bytes32 identifierHash; - } - function getCampaignConfig() public view returns (Config memory config) { bytes memory args = Clones.fetchCloneArgs(address(this)); (config.treasuryFactory, config.protocolFeePercent, config.identifierHash) = diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index fcb69e7..4a3ff4b 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -62,6 +62,18 @@ abstract contract BasePaymentTreasury is uint256 lineItemCount; } + /** + * @dev Struct to hold line item calculation totals to reduce stack depth. + */ + struct LineItemTotals { + uint256 totalGoalLineItemAmount; + uint256 totalProtocolFeeFromLineItems; + uint256 totalNonGoalClaimableAmount; + uint256 totalNonGoalRefundableAmount; + uint256 totalInstantTransferAmountForCheck; + uint256 totalInstantTransferAmount; + } + mapping(bytes32 => PaymentInfo) internal s_payment; // Combined line items with their configuration snapshots per payment ID @@ -521,18 +533,6 @@ abstract contract BasePaymentTreasury is } } - /** - * @dev Struct to hold line item calculation totals to reduce stack depth. - */ - struct LineItemTotals { - uint256 totalGoalLineItemAmount; - uint256 totalProtocolFeeFromLineItems; - uint256 totalNonGoalClaimableAmount; - uint256 totalNonGoalRefundableAmount; - uint256 totalInstantTransferAmountForCheck; - uint256 totalInstantTransferAmount; - } - /** * @dev Validates, stores, and tracks line items in a single loop for gas efficiency. * @param paymentId The payment ID to store line items for. From 19b7a9e09834f981642799c444aaed895eb18afe Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:33:34 +0600 Subject: [PATCH 12/61] Add error handling for duplicate fiat transaction IDs in FiatEnabled contract (OZ-26) (#25) - Introduced a new error, FiatEnabledTransactionAlreadyRecorded, to handle cases where a fiat transaction ID has already been recorded. - Updated the _updateFiatTransaction function to revert with the new error if a duplicate transaction ID is detected. --- src/utils/FiatEnabled.sol | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/utils/FiatEnabled.sol b/src/utils/FiatEnabled.sol index 378f7d1..b64b34e 100644 --- a/src/utils/FiatEnabled.sol +++ b/src/utils/FiatEnabled.sol @@ -39,6 +39,12 @@ abstract contract FiatEnabled { */ error FiatEnabledInvalidTransaction(); + /** + * @dev Throws when a fiat transaction ID has already been recorded. + * @param fiatTransactionId The duplicate fiat transaction identifier. + */ + error FiatEnabledTransactionAlreadyRecorded(bytes32 fiatTransactionId); + /** * @notice Get the total amount of fiat raised. * @return The total fiat raised amount. @@ -73,6 +79,9 @@ abstract contract FiatEnabled { * @param fiatTransactionAmount The amount of the fiat transaction. */ function _updateFiatTransaction(bytes32 fiatTransactionId, uint256 fiatTransactionAmount) internal { + if (s_fiatAmountById[fiatTransactionId] != 0) { + revert FiatEnabledTransactionAlreadyRecorded(fiatTransactionId); + } s_fiatAmountById[fiatTransactionId] = fiatTransactionAmount; s_fiatRaisedAmount += fiatTransactionAmount; emit FiatTransactionUpdated(fiatTransactionId, fiatTransactionAmount); From f8cb3756fcde60c195060bfa20a29d80eecc8618 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:33:48 +0600 Subject: [PATCH 13/61] Remove usage of unchecked blocks in loops (#66) --- src/GlobalParams.sol | 15 +++------------ src/utils/BasePaymentTreasury.sol | 27 +++++---------------------- 2 files changed, 8 insertions(+), 34 deletions(-) diff --git a/src/GlobalParams.sol b/src/GlobalParams.sol index 8c6078a..3a5e1df 100644 --- a/src/GlobalParams.sol +++ b/src/GlobalParams.sol @@ -256,19 +256,13 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU revert GlobalParamsCurrencyTokenLengthMismatch(); } - for (uint256 i = 0; i < currencyLength;) { - for (uint256 j = 0; j < tokensPerCurrency[i].length;) { + for (uint256 i = 0; i < currencyLength; i++) { + for (uint256 j = 0; j < tokensPerCurrency[i].length; j++) { address token = tokensPerCurrency[i][j]; if (token == address(0)) { revert GlobalParamsInvalidInput(); } $.currencyToTokens[currencies[i]].push(token); - unchecked { - ++j; - } - } - unchecked { - ++i; } } } @@ -592,16 +586,13 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU uint256 length = tokens.length; bool found = false; - for (uint256 i = 0; i < length;) { + for (uint256 i = 0; i < length; i++) { if (tokens[i] == token) { tokens[i] = tokens[length - 1]; tokens.pop(); found = true; break; } - unchecked { - ++i; - } } if (!found) { diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index 4a3ff4b..8d92eec 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -654,11 +654,8 @@ abstract contract BasePaymentTreasury is // Store external fee metadata for informational purposes only ICampaignPaymentTreasury.ExternalFees[] storage externalFeeMetadata = s_paymentExternalFeeMetadata[internalPaymentId]; - for (uint256 i = 0; i < externalFees.length;) { + for (uint256 i = 0; i < externalFees.length; i++) { externalFeeMetadata.push(externalFees[i]); - unchecked { - ++i; - } } s_paymentIdToToken[internalPaymentId] = paymentToken; @@ -698,7 +695,7 @@ abstract contract BasePaymentTreasury is } // Process each payment in the batch - for (uint256 i = 0; i < length;) { + for (uint256 i = 0; i < length; i++) { bytes32 paymentId = paymentIds[i]; bytes32 buyerId = buyerIds[i]; bytes32 itemId = itemIds[i]; @@ -760,21 +757,14 @@ abstract contract BasePaymentTreasury is ICampaignPaymentTreasury.ExternalFees[] calldata externalFees = externalFeesArray[i]; ICampaignPaymentTreasury.ExternalFees[] storage externalFeeMetadata = s_paymentExternalFeeMetadata[internalPaymentId]; - for (uint256 j = 0; j < externalFees.length;) { + for (uint256 j = 0; j < externalFees.length; j++) { externalFeeMetadata.push(externalFees[j]); - unchecked { - ++j; - } } s_paymentIdToToken[internalPaymentId] = paymentToken; s_pendingPaymentPerToken[paymentToken] += amount; emit PaymentCreated(address(0), paymentId, buyerId, itemId, paymentToken, amount, expiration, false); - - unchecked { - ++i; - } } emit PaymentBatchCreated(paymentIds); @@ -910,11 +900,8 @@ abstract contract BasePaymentTreasury is // Store external fee metadata for informational purposes only ICampaignPaymentTreasury.ExternalFees[] storage externalFeeMetadata = s_paymentExternalFeeMetadata[internalPaymentId]; - for (uint256 i = 0; i < externalFees.length;) { + for (uint256 i = 0; i < externalFees.length; i++) { externalFeeMetadata.push(externalFees[i]); - unchecked { - ++i; - } } IERC20(paymentToken).safeTransferFrom(buyerAddress, address(this), totalAmount); @@ -1188,7 +1175,7 @@ abstract contract BasePaymentTreasury is uint256 protocolFeePercent = INFO.getProtocolFeePercent(); address platformAdmin = INFO.getPlatformAdminAddress(PLATFORM_HASH); - for (uint256 i = 0; i < paymentIds.length;) { + for (uint256 i = 0; i < paymentIds.length; i++) { currentPaymentId = paymentIds[i]; bytes32 internalPaymentId = _scopePaymentIdForOffChain(currentPaymentId); @@ -1222,10 +1209,6 @@ abstract contract BasePaymentTreasury is uint256 tokenId = INFO.mintNFTForPledge(buyerAddress, itemId, currentToken, amount, 0, 0); s_paymentIdToTokenId[internalPaymentId] = tokenId; } - - unchecked { - ++i; - } } emit PaymentBatchConfirmed(paymentIds); From b9c5b44823fcf0bfc303f4881b7b3ca5fc02aa3f Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:34:20 +0600 Subject: [PATCH 14/61] Use named parameters for public getter functions (OZ-60) (#65) * Use named parameters for public getter functions * Add named return params to aggregate getter functions in CampaignInfo --- src/CampaignInfo.sol | 18 +++------ src/treasuries/AllOrNothing.sol | 36 +++++++++--------- src/treasuries/KeepWhatsRaised.sol | 49 +++++++++++------------- src/utils/BasePaymentTreasury.sol | 61 +++++++++++++++--------------- 4 files changed, 76 insertions(+), 88 deletions(-) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index 0be491c..0163790 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -234,10 +234,9 @@ contract CampaignInfo is /** * @inheritdoc ICampaignInfo */ - function getTotalRaisedAmount() external view override returns (uint256) { + function getTotalRaisedAmount() external view override returns (uint256 amount) { bytes32[] memory tempPlatforms = s_approvedPlatformHashes; uint256 length = s_approvedPlatformHashes.length; - uint256 amount; address tempTreasury; for (uint256 i = 0; i < length; i++) { tempTreasury = s_platformTreasuryAddress[tempPlatforms[i]]; @@ -252,10 +251,9 @@ contract CampaignInfo is /** * @inheritdoc ICampaignInfo */ - function getTotalLifetimeRaisedAmount() external view returns (uint256) { + function getTotalLifetimeRaisedAmount() external view returns (uint256 amount) { bytes32[] memory tempPlatforms = s_approvedPlatformHashes; uint256 length = s_approvedPlatformHashes.length; - uint256 amount; address tempTreasury; for (uint256 i = 0; i < length; i++) { tempTreasury = s_platformTreasuryAddress[tempPlatforms[i]]; @@ -267,10 +265,9 @@ contract CampaignInfo is /** * @inheritdoc ICampaignInfo */ - function getTotalRefundedAmount() external view returns (uint256) { + function getTotalRefundedAmount() external view returns (uint256 amount) { bytes32[] memory tempPlatforms = s_approvedPlatformHashes; uint256 length = s_approvedPlatformHashes.length; - uint256 amount; address tempTreasury; for (uint256 i = 0; i < length; i++) { tempTreasury = s_platformTreasuryAddress[tempPlatforms[i]]; @@ -282,10 +279,9 @@ contract CampaignInfo is /** * @inheritdoc ICampaignInfo */ - function getTotalAvailableRaisedAmount() external view returns (uint256) { + function getTotalAvailableRaisedAmount() external view returns (uint256 amount) { bytes32[] memory tempPlatforms = s_approvedPlatformHashes; uint256 length = s_approvedPlatformHashes.length; - uint256 amount; address tempTreasury; for (uint256 i = 0; i < length; i++) { tempTreasury = s_platformTreasuryAddress[tempPlatforms[i]]; @@ -297,10 +293,9 @@ contract CampaignInfo is /** * @inheritdoc ICampaignInfo */ - function getTotalCancelledAmount() external view returns (uint256) { + function getTotalCancelledAmount() external view returns (uint256 amount) { bytes32[] memory tempPlatforms = s_approvedPlatformHashes; uint256 length = s_approvedPlatformHashes.length; - uint256 amount; address tempTreasury; for (uint256 i = 0; i < length; i++) { tempTreasury = s_platformTreasuryAddress[tempPlatforms[i]]; @@ -315,10 +310,9 @@ contract CampaignInfo is /** * @inheritdoc ICampaignInfo */ - function getTotalExpectedAmount() external view returns (uint256) { + function getTotalExpectedAmount() external view returns (uint256 amount) { bytes32[] memory tempPlatforms = s_approvedPlatformHashes; uint256 length = s_approvedPlatformHashes.length; - uint256 amount; address tempTreasury; for (uint256 i = 0; i < length; i++) { tempTreasury = s_platformTreasuryAddress[tempPlatforms[i]]; diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index 43cb8d2..609bdc1 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -139,58 +139,56 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker, ReentrancyGuar /** * @inheritdoc ICampaignTreasury + * @return amount Total raised amount across all tokens, normalized to 18 decimals. */ - function getRaisedAmount() external view override returns (uint256) { + function getRaisedAmount() external view override returns (uint256 amount) { address[] memory acceptedTokens = INFO.getAcceptedTokens(); - uint256 totalNormalized = 0; for (uint256 i = 0; i < acceptedTokens.length; i++) { address token = acceptedTokens[i]; - uint256 amount = s_tokenRaisedAmounts[token]; - if (amount > 0) { - totalNormalized += _normalizeAmount(token, amount); + uint256 tokenAmount = s_tokenRaisedAmounts[token]; + if (tokenAmount > 0) { + amount += _normalizeAmount(token, tokenAmount); } } - return totalNormalized; + return amount; } /** * @inheritdoc ICampaignTreasury + * @return amount Lifetime total raised amount across all tokens, normalized to 18 decimals. */ - function getLifetimeRaisedAmount() external view override returns (uint256) { + function getLifetimeRaisedAmount() external view override returns (uint256 amount) { address[] memory acceptedTokens = INFO.getAcceptedTokens(); - uint256 totalNormalized = 0; for (uint256 i = 0; i < acceptedTokens.length; i++) { address token = acceptedTokens[i]; - uint256 amount = s_tokenLifetimeRaisedAmounts[token]; - if (amount > 0) { - totalNormalized += _normalizeAmount(token, amount); + uint256 tokenAmount = s_tokenLifetimeRaisedAmounts[token]; + if (tokenAmount > 0) { + amount += _normalizeAmount(token, tokenAmount); } } - return totalNormalized; + return amount; } /** * @inheritdoc ICampaignTreasury + * @return amount Total refunded amount across all tokens, normalized to 18 decimals. */ - function getRefundedAmount() external view override returns (uint256) { + function getRefundedAmount() external view override returns (uint256 amount) { address[] memory acceptedTokens = INFO.getAcceptedTokens(); - uint256 totalNormalized = 0; for (uint256 i = 0; i < acceptedTokens.length; i++) { address token = acceptedTokens[i]; - uint256 lifetimeAmount = s_tokenLifetimeRaisedAmounts[token]; - uint256 currentAmount = s_tokenRaisedAmounts[token]; - uint256 refundedAmount = lifetimeAmount - currentAmount; + uint256 refundedAmount = s_tokenLifetimeRaisedAmounts[token] - s_tokenRaisedAmounts[token]; if (refundedAmount > 0) { - totalNormalized += _normalizeAmount(token, refundedAmount); + amount += _normalizeAmount(token, refundedAmount); } } - return totalNormalized; + return amount; } /** diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index b56c9cb..1fefba2 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -353,77 +353,74 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa /** * @inheritdoc ICampaignTreasury + * @return amount Total raised amount across all tokens, normalized to 18 decimals. */ - function getRaisedAmount() external view override returns (uint256) { + function getRaisedAmount() external view override returns (uint256 amount) { address[] memory acceptedTokens = INFO.getAcceptedTokens(); - uint256 totalNormalized = 0; for (uint256 i = 0; i < acceptedTokens.length; i++) { address token = acceptedTokens[i]; - uint256 amount = s_tokenRaisedAmounts[token]; - if (amount > 0) { - totalNormalized += _normalizeAmount(token, amount); + uint256 tokenAmount = s_tokenRaisedAmounts[token]; + if (tokenAmount > 0) { + amount += _normalizeAmount(token, tokenAmount); } } - return totalNormalized; + return amount; } /** * @inheritdoc ICampaignTreasury + * @return amount Lifetime total raised amount across all tokens, normalized to 18 decimals. */ - function getLifetimeRaisedAmount() external view override returns (uint256) { + function getLifetimeRaisedAmount() external view override returns (uint256 amount) { address[] memory acceptedTokens = INFO.getAcceptedTokens(); - uint256 totalNormalized = 0; for (uint256 i = 0; i < acceptedTokens.length; i++) { address token = acceptedTokens[i]; - uint256 amount = s_tokenLifetimeRaisedAmounts[token]; - if (amount > 0) { - totalNormalized += _normalizeAmount(token, amount); + uint256 tokenAmount = s_tokenLifetimeRaisedAmounts[token]; + if (tokenAmount > 0) { + amount += _normalizeAmount(token, tokenAmount); } } - return totalNormalized; + return amount; } /** * @inheritdoc ICampaignTreasury + * @return amount Total refunded amount across all tokens, normalized to 18 decimals. */ - function getRefundedAmount() external view override returns (uint256) { + function getRefundedAmount() external view override returns (uint256 amount) { address[] memory acceptedTokens = INFO.getAcceptedTokens(); - uint256 totalNormalized = 0; for (uint256 i = 0; i < acceptedTokens.length; i++) { address token = acceptedTokens[i]; - uint256 lifetimeAmount = s_tokenLifetimeRaisedAmounts[token]; - uint256 currentAmount = s_tokenRaisedAmounts[token]; - uint256 refundedAmount = lifetimeAmount - currentAmount; + uint256 refundedAmount = s_tokenLifetimeRaisedAmounts[token] - s_tokenRaisedAmounts[token]; if (refundedAmount > 0) { - totalNormalized += _normalizeAmount(token, refundedAmount); + amount += _normalizeAmount(token, refundedAmount); } } - return totalNormalized; + return amount; } /** * @notice Retrieves the currently available raised amount in the treasury. - * @return The current available raised amount as a uint256 value. + * @return amount Available raised amount across all tokens, normalized to 18 decimals. */ - function getAvailableRaisedAmount() external view returns (uint256) { + function getAvailableRaisedAmount() external view returns (uint256 amount) { address[] memory acceptedTokens = INFO.getAcceptedTokens(); - uint256 totalNormalized = 0; for (uint256 i = 0; i < acceptedTokens.length; i++) { address token = acceptedTokens[i]; - uint256 amount = s_availablePerToken[token]; - if (amount > 0) { - totalNormalized += _normalizeAmount(token, amount); + uint256 tokenAmount = s_availablePerToken[token]; + if (tokenAmount > 0) { + amount += _normalizeAmount(token, tokenAmount); } } - return totalNormalized; + return amount; } /** diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index 8d92eec..a34c301 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -358,6 +358,7 @@ abstract contract BasePaymentTreasury is duration = uint256(maxExpirationBytes); hasLimit = true; + return (hasLimit, duration); } function __BaseContract_init(bytes32 platformHash, address infoAddress, address trustedForwarder_) internal { @@ -425,94 +426,92 @@ abstract contract BasePaymentTreasury is /** * @inheritdoc ICampaignPaymentTreasury + * @return amount Total confirmed payment amount across all tokens, normalized to 18 decimals. */ - function getRaisedAmount() public view virtual override returns (uint256) { + function getRaisedAmount() public view virtual override returns (uint256 amount) { address[] memory acceptedTokens = INFO.getAcceptedTokens(); - uint256 totalNormalized = 0; for (uint256 i = 0; i < acceptedTokens.length; i++) { address token = acceptedTokens[i]; - uint256 amount = s_confirmedPaymentPerToken[token]; - if (amount > 0) { - totalNormalized += _normalizeAmount(token, amount); + uint256 tokenAmount = s_confirmedPaymentPerToken[token]; + if (tokenAmount > 0) { + amount += _normalizeAmount(token, tokenAmount); } } - return totalNormalized; + return amount; } /** * @inheritdoc ICampaignPaymentTreasury + * @return amount Available confirmed amount across all tokens, normalized to 18 decimals. */ - function getAvailableRaisedAmount() external view returns (uint256) { + function getAvailableRaisedAmount() external view returns (uint256 amount) { address[] memory acceptedTokens = INFO.getAcceptedTokens(); - uint256 totalNormalized = 0; for (uint256 i = 0; i < acceptedTokens.length; i++) { address token = acceptedTokens[i]; - uint256 amount = s_availableConfirmedPerToken[token]; - if (amount > 0) { - totalNormalized += _normalizeAmount(token, amount); + uint256 tokenAmount = s_availableConfirmedPerToken[token]; + if (tokenAmount > 0) { + amount += _normalizeAmount(token, tokenAmount); } } - return totalNormalized; + return amount; } /** * @inheritdoc ICampaignPaymentTreasury + * @return amount Lifetime total confirmed payments across all tokens, normalized to 18 decimals. */ - function getLifetimeRaisedAmount() external view returns (uint256) { + function getLifetimeRaisedAmount() external view returns (uint256 amount) { address[] memory acceptedTokens = INFO.getAcceptedTokens(); - uint256 totalNormalized = 0; for (uint256 i = 0; i < acceptedTokens.length; i++) { address token = acceptedTokens[i]; - uint256 amount = s_lifetimeConfirmedPaymentPerToken[token]; - if (amount > 0) { - totalNormalized += _normalizeAmount(token, amount); + uint256 tokenAmount = s_lifetimeConfirmedPaymentPerToken[token]; + if (tokenAmount > 0) { + amount += _normalizeAmount(token, tokenAmount); } } - return totalNormalized; + return amount; } /** * @inheritdoc ICampaignPaymentTreasury + * @return amount Total refunded amount across all tokens, normalized to 18 decimals. */ - function getRefundedAmount() external view returns (uint256) { + function getRefundedAmount() external view returns (uint256 amount) { address[] memory acceptedTokens = INFO.getAcceptedTokens(); - uint256 totalNormalized = 0; for (uint256 i = 0; i < acceptedTokens.length; i++) { address token = acceptedTokens[i]; - uint256 lifetimeAmount = s_lifetimeConfirmedPaymentPerToken[token]; - uint256 currentAmount = s_confirmedPaymentPerToken[token]; - uint256 refundedAmount = lifetimeAmount - currentAmount; + uint256 refundedAmount = s_lifetimeConfirmedPaymentPerToken[token] - s_confirmedPaymentPerToken[token]; if (refundedAmount > 0) { - totalNormalized += _normalizeAmount(token, refundedAmount); + amount += _normalizeAmount(token, refundedAmount); } } - return totalNormalized; + return amount; } /** * @inheritdoc ICampaignPaymentTreasury + * @return amount Total pending payment amount across all tokens, normalized to 18 decimals. */ - function getExpectedAmount() external view returns (uint256) { + function getExpectedAmount() external view returns (uint256 amount) { address[] memory acceptedTokens = INFO.getAcceptedTokens(); - uint256 totalNormalized = 0; for (uint256 i = 0; i < acceptedTokens.length; i++) { address token = acceptedTokens[i]; - uint256 amount = s_pendingPaymentPerToken[token]; - if (amount > 0) { - totalNormalized += _normalizeAmount(token, amount); + uint256 tokenAmount = s_pendingPaymentPerToken[token]; + if (tokenAmount > 0) { + amount += _normalizeAmount(token, tokenAmount); } } - return totalNormalized; + return amount; } /** From a12b8838069b6e8a2c666e651ea72f3c4237b245 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:34:22 +0600 Subject: [PATCH 15/61] Add fee percentage validation in GlobalParams contract (OZ-32) (#26) - Introduced a constant PERCENT_DIVIDER to enforce a maximum of 100% for fee percentages. - Added error handling to revert transactions when fee percentages exceed the allowed limits. - Updated functions to check both individual and combined fee percentages for protocol and platform fees, ensuring compliance with the new validation rules. --- src/GlobalParams.sol | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/GlobalParams.sol b/src/GlobalParams.sol index 3a5e1df..780ab87 100644 --- a/src/GlobalParams.sol +++ b/src/GlobalParams.sol @@ -19,6 +19,9 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU bytes32 private constant ZERO_BYTES = 0x0000000000000000000000000000000000000000000000000000000000000000; + /// @dev 100% in basis points; fee percentages must not exceed this and their sum must be below it. + uint256 private constant PERCENT_DIVIDER = 10000; + /** * @dev Emitted when a platform is enlisted. * @param platformHash The identifier of the enlisted platform. @@ -198,6 +201,16 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU */ error GlobalParamsPlatformLineItemTypeNotFound(bytes32 platformHash, bytes32 typeId); + /** + * @dev Throws when a fee percentage exceeds the maximum allowed (PERCENT_DIVIDER / 100%). + */ + error GlobalParamsFeePercentExceedsMax(); + + /** + * @dev Throws when the sum of protocol and platform fee percentages would exceed 100%. + */ + error GlobalParamsCombinedFeesExceedMax(); + /** * @dev Reverts if the input address is zero. */ @@ -246,6 +259,10 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU __Ownable_init(protocolAdminAddress); __UUPSUpgradeable_init(); + if (protocolFeePercent > PERCENT_DIVIDER) { + revert GlobalParamsFeePercentExceedsMax(); + } + GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); $.protocolAdminAddress = protocolAdminAddress; $.protocolFeePercent = protocolFeePercent; @@ -407,7 +424,13 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU if (platformHash == ZERO_BYTES) { revert GlobalParamsInvalidInput(); } + if (platformFeePercent > PERCENT_DIVIDER) { + revert GlobalParamsFeePercentExceedsMax(); + } GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); + if ($.protocolFeePercent + platformFeePercent > PERCENT_DIVIDER) { + revert GlobalParamsCombinedFeesExceedMax(); + } if ($.platformIsListed[platformHash]) { revert GlobalParamsPlatformAlreadyListed(platformHash); } else { @@ -498,6 +521,9 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU * @inheritdoc IGlobalParams */ function updateProtocolFeePercent(uint256 protocolFeePercent) external override onlyOwner { + if (protocolFeePercent > PERCENT_DIVIDER) { + revert GlobalParamsFeePercentExceedsMax(); + } GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); $.protocolFeePercent = protocolFeePercent; emit ProtocolFeePercentUpdated(protocolFeePercent); From ec617a1c45541a538fb0374979fe07c3987794f1 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:34:59 +0600 Subject: [PATCH 16/61] Add error handling for already claimed treasury funds in KeepWhatsRaised contract (OZ-33) (#27) - Introduced a new error, KeepWhatsRaisedFundAlreadyClaimed, to handle attempts to claim funds after they have already been claimed. - Updated the claim functions to revert with this error if the funds have been claimed, enhancing the contract's robustness and clarity in fund management. --- src/treasuries/KeepWhatsRaised.sol | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 1fefba2..a208af2 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -263,6 +263,11 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa */ error KeepWhatsRaisedAlreadyClaimed(); + /** + * @dev Emitted when an operation is attempted after the platform admin has already claimed the treasury funds. + */ + error KeepWhatsRaisedFundAlreadyClaimed(); + /** * @dev Emitted when a token or pledge is not eligible for claiming (e.g., claim period not reached or not valid). * @param tokenId The ID of the token that was attempted to be claimed. @@ -911,6 +916,9 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenNotCancelled withdrawalEnabled { + if (s_fundClaimed) { + revert KeepWhatsRaisedFundAlreadyClaimed(); + } if (!INFO.isTokenAccepted(token)) { revert KeepWhatsRaisedTokenNotAccepted(token); } @@ -1007,6 +1015,9 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenCampaignNotPaused whenNotPaused { + if (s_fundClaimed) { + revert KeepWhatsRaisedFundAlreadyClaimed(); + } if (!_checkRefundPeriodStatus(false)) { revert KeepWhatsRaisedNotClaimable(tokenId); } From e86feb5fe299c9505f108c1fca35f1718aeb1a39 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:34:59 +0600 Subject: [PATCH 17/61] Add details to unclear docstrings (#64) --- src/CampaignInfo.sol | 2 +- src/treasuries/AllOrNothing.sol | 2 +- src/utils/BasePaymentTreasury.sol | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index 0163790..98150a4 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -55,7 +55,7 @@ contract CampaignInfo is // Multi-token support address[] private s_acceptedTokens; // Accepted tokens for this campaign - mapping(address => bool) private s_isAcceptedToken; // O(1) token validation + mapping(address => bool) private s_isAcceptedToken; // Tracks whether a specific ERC20 token is accepted for this campaign, allowing O(1) validation during pledges. // Lock mechanism - prevents certain operations after treasury deployment bool private s_isLocked; diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index 609bdc1..29dad70 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -13,7 +13,7 @@ import {IReward} from "../interfaces/IReward.sol"; /** * @title AllOrNothing - * @notice A contract for handling crowdfunding campaigns with rewards. + * @notice A contract for handling "all-or-nothing" crowdfunding campaigns. Funds are only claimable by the campaign owner if the funding goal is met by the deadline; otherwise, backers can claim refunds. */ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker, ReentrancyGuard { using Counters for Counters.Counter; diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index a34c301..71605f5 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -1020,7 +1020,7 @@ abstract contract BasePaymentTreasury is } /** - * @dev Checks if there's sufficient balance for payment confirmation. + * @dev Checks if the treasury's actual token balance is sufficient to cover the total amount of the payment being confirmed, plus all previously committed funds (available for withdrawal, fees, and refundable items). * @param paymentToken The token address. * @param paymentAmount The base payment amount. * @param totals Line item totals struct. From fbd5186269a28d509d8a8e9a41662f08f43e0992 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:35:18 +0600 Subject: [PATCH 18/61] Use local variables to reduce gas usage from repeated SLOADs in KwR withdraw (#63) --- src/treasuries/KeepWhatsRaised.sol | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index a208af2..c17d614 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -929,30 +929,32 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa uint256 minimumWithdrawalForFeeExemption = _denormalizeAmount(token, s_config.minimumWithdrawalForFeeExemption); uint256 currentTime = block.timestamp; - uint256 withdrawalAmount = s_availablePerToken[token]; + uint256 available = s_availablePerToken[token]; + uint256 withdrawalAmount; uint256 totalFee = 0; address recipient = INFO.owner(); bool isFinalWithdrawal = (currentTime > getDeadline()); //Main Fees if (isFinalWithdrawal) { - if (withdrawalAmount == 0) { + if (available == 0) { revert KeepWhatsRaisedAlreadyWithdrawn(); } + withdrawalAmount = available; if (withdrawalAmount < minimumWithdrawalForFeeExemption) { s_platformFeePerToken[token] += flatFee; totalFee += flatFee; } } else { - withdrawalAmount = amount; - if (withdrawalAmount == 0) { + if (amount == 0) { revert KeepWhatsRaisedInvalidInput(); } - if (withdrawalAmount > s_availablePerToken[token]) { + if (amount > available) { revert KeepWhatsRaisedInsufficientFundsForWithdrawalAndFee( - s_availablePerToken[token], withdrawalAmount, totalFee + available, amount, totalFee ); } + withdrawalAmount = amount; if (withdrawalAmount < minimumWithdrawalForFeeExemption) { s_platformFeePerToken[token] += cumulativeFee; @@ -985,9 +987,9 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa s_availablePerToken[token] = 0; IERC20(token).safeTransfer(recipient, withdrawalAmount - totalFee); } else { - if (s_availablePerToken[token] < (withdrawalAmount + totalFee)) { + if (available < (withdrawalAmount + totalFee)) { revert KeepWhatsRaisedInsufficientFundsForWithdrawalAndFee( - s_availablePerToken[token], withdrawalAmount, totalFee + available, withdrawalAmount, totalFee ); } From 35df4e211e8b93f3c7dbed466d218956a4a24295 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:35:30 +0600 Subject: [PATCH 19/61] Add error handling for platform data key ownership in CampaignInfo contract (OZ-40) (#28) * Add error handling for platform data key ownership in CampaignInfo contract - Introduced a new error, CampaignInfoPlatformDataKeyNotOwnedByPlatform, to handle cases where a platform data key is not owned by the platform being updated. - Updated the relevant function to revert with this error if the ownership check fails. * Refactor test_UpdateSelectedPlatform to simplify platform data handling - Reduced the number of platform data keys and values from two to one in the test case for updating the selected platform. - Removed assertions related to the second platform data key to streamline the test and focus on the primary key-value pair. --- src/CampaignInfo.sol | 10 ++++++++++ test/foundry/unit/CampaignInfo.t.sol | 7 ++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index 98150a4..a436af5 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -138,6 +138,13 @@ contract CampaignInfo is */ error CampaignInfoIsLocked(); + /** + * @dev Throws when a platform data key is not owned by the platform being updated. + * @param platformHash The platform being updated. + * @param platformDataKey The key that does not belong to this platform. + */ + error CampaignInfoPlatformDataKeyNotOwnedByPlatform(bytes32 platformHash, bytes32 platformDataKey); + /** * @dev Modifier that checks if the campaign is not locked. */ @@ -575,6 +582,9 @@ contract CampaignInfo is if (!isValid) { revert CampaignInfoInvalidInput(); } + if (globalParams.getPlatformDataOwner(platformDataKey[i]) != platformHash) { + revert CampaignInfoPlatformDataKeyNotOwnedByPlatform(platformHash, platformDataKey[i]); + } if (platformDataValue[i] == bytes32(0)) { revert CampaignInfoInvalidInput(); } diff --git a/test/foundry/unit/CampaignInfo.t.sol b/test/foundry/unit/CampaignInfo.t.sol index 84241fe..8785699 100644 --- a/test/foundry/unit/CampaignInfo.t.sol +++ b/test/foundry/unit/CampaignInfo.t.sol @@ -198,13 +198,11 @@ contract CampaignInfo_UnitTest is Test, Defaults { function test_UpdateSelectedPlatform_SelectPlatform_Success() public { vm.startPrank(campaignOwner); - bytes32[] memory dataKeys = new bytes32[](2); + bytes32[] memory dataKeys = new bytes32[](1); dataKeys[0] = platformDataKey1; - dataKeys[1] = platformDataKey2; - bytes32[] memory dataValues = new bytes32[](2); + bytes32[] memory dataValues = new bytes32[](1); dataValues[0] = platformDataValue1; - dataValues[1] = platformDataValue2; campaignInfo.updateSelectedPlatform(platformHash1, true, dataKeys, dataValues); @@ -213,7 +211,6 @@ contract CampaignInfo_UnitTest is Test, Defaults { // Verify platform data is stored assertEq(campaignInfo.getPlatformData(platformDataKey1), platformDataValue1); - assertEq(campaignInfo.getPlatformData(platformDataKey2), platformDataValue2); // Verify platform fee is set assertEq(campaignInfo.getPlatformFeePercent(platformHash1), 1000); From 7f6ed466e76f34a74379b8ce01366d1cb8d0fc31 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:36:17 +0600 Subject: [PATCH 20/61] Restrict pledge NFT burn function to only treasuries (OZ-12) (#38) * Restrict pledge NFT burn function to only treasuries * Add tests for treasury restricted NFT burn --- KARMA_Design_Feedback.md | 42 +++ Preflight.md | 35 +++ Preflight_Design.md | 231 +++++++++++++++ SDK_RFC.md | 457 ++++++++++++++++++++++++++++++ src/CampaignInfo.sol | 4 +- src/interfaces/ICampaignInfo.sol | 3 +- src/utils/PledgeNFT.sol | 7 +- test/foundry/unit/PledgeNFT.t.sol | 31 +- 8 files changed, 802 insertions(+), 8 deletions(-) create mode 100644 KARMA_Design_Feedback.md create mode 100644 Preflight.md create mode 100644 Preflight_Design.md create mode 100644 SDK_RFC.md diff --git a/KARMA_Design_Feedback.md b/KARMA_Design_Feedback.md new file mode 100644 index 0000000..357fe69 --- /dev/null +++ b/KARMA_Design_Feedback.md @@ -0,0 +1,42 @@ +# KARMA Token — Design Feedback + +Three suggestions. Each one addresses a concrete problem with a clear fix. + +--- + +## 1. Use lifetime raised, not current raised + +`claimTokens()` reads `getRaisedAmount()`, which **decreases on refunds** (`s_confirmedPaymentPerToken` is reduced in `claimRefund`). The watermark `_totalMintedAgainstRaised` only goes up. A refund after a claim creates a permanent gap: future deposits must first fill the hole before any new KARMA is minted. + +Example: raised 300K → claim 300K KARMA → refund 100K → raised drops to 200K → next 100K of deposits produces zero KARMA. + +**Fix:** Read `getLifetimeRaisedAmount()` instead. It uses `s_lifetimeConfirmedPaymentPerToken` which never decreases. Both sides of the delta become monotonically increasing, so the accounting is always consistent. Refund-driven point reduction can be handled off-chain or via explicit admin burn — which is the right layer for that decision. + +--- + +## 2. Make the contract upgradeable + +Every other contract in the protocol uses proxies (`Initializable` + factory). KARMA uses a plain constructor. The $OAK conversion mechanism is explicitly on the roadmap and will require new logic on this contract (conversion ratio, burn-for-claim, interaction with an OAK minter). Without upgradeability, that means deploying a new contract and migrating all balances — which is especially painful for a soulbound token since you can't transfer, only re-mint. + +**Fix:** Switch to `ERC20Upgradeable` + `AccessControlUpgradeable` + `ERC20PausableUpgradeable` + `ERC20BurnableUpgradeable` with an `initialize()` function. The OpenZeppelin upgradeable variants are already in the project's dependencies. + +--- + +## 3. Reset the watermark on treasury change + +`setTreasury()` swaps the source but `_totalMintedAgainstRaised` carries over. If the new treasury has a lower lifetime raised, `claimTokens()` silently blocks until it catches up. If higher, it mints a delta that has nothing to do with this platform's actual activity. + +**Fix:** Snapshot the new treasury's current value when switching: + +```solidity +function setTreasury(address _treasury) external onlyRole(DEFAULT_ADMIN_ROLE) { + address previousTreasury = treasury; + treasury = _treasury; + if (_treasury != address(0)) { + _totalMintedAgainstRaised = IKarmaTreasury(_treasury).getRaisedAmount(); + } + emit TreasurySet(previousTreasury, _treasury); +} +``` + +This anchors the watermark to the new treasury's state so no phantom delta is minted and no silent blocking occurs. diff --git a/Preflight.md b/Preflight.md new file mode 100644 index 0000000..5654bc9 --- /dev/null +++ b/Preflight.md @@ -0,0 +1,35 @@ +Objective: +Design and define the Preflight Layer that catches predictable reverts and developer mistakes before RPC calls. + +Deliverables: + +Preflight architecture: + +Validation → warnings → normalization → simulation + +Rule taxonomy: + +Structural (types, formats) + +Semantic (array lengths, sums, duplicates) + +Contract-specific invariants + +Warning model: + +Error vs warn classification + +Issue codes & messaging style + +Mode behavior: + +strict, warn, normalize + +MVP rule set: + +Which contract methods get preflight in v1 + +Which checks are mandatory vs nice-to-have + +Outcome: +A developer-first safety layer that meaningfully reduces revert-driven debugging. \ No newline at end of file diff --git a/Preflight_Design.md b/Preflight_Design.md new file mode 100644 index 0000000..c99ad0a --- /dev/null +++ b/Preflight_Design.md @@ -0,0 +1,231 @@ +# Oak SDK Preflight Framework: V1 Specification + +## 1. Purpose + +A preflight layer that runs before transaction submission to catch predictable reverts, surface actionable warnings for suspicious inputs, and optionally simulate the call on-chain. + +## 2. Design Principles + +- Block only on high-confidence failures traceable to Solidity preconditions or readable on-chain state. +- Prefer readable on-chain state when needed; fall back gracefully when unavailable. +- Apply only semantics-preserving normalization. +- Use stable issue codes for machine handling and long-term compatibility. + +## 3. Public API + +### 3.1 Per-method APIs + +```typescript +method.preflight(input, options?) // => Promise> +method.safe(input, options?) // => Promise +``` + +`safe()` flow is fixed in v1: preflight -> simulation -> send (only if simulation passes). +`safe()` requires a signer for write execution; if signer is missing, fail fast with `MissingSignerError` before preflight, simulation, and send. + +### 3.2 Options + +```typescript +export type PreflightMode = 'strict' | 'warn' | 'normalize'; +export type StatefulPolicy = 'enabled' | 'local-only'; + +export interface PreflightOptions { + mode?: PreflightMode; // default: 'warn' + stateful?: StatefulPolicy; // default: 'enabled' + collect?: boolean; // default: true + blockTag?: bigint | 'latest'; // default: 'latest' + effectiveSender?: Address; // optional ERC-2771 sender override +} +``` + +### 3.3 Result Types + +```typescript +export interface PreflightIssue { + code: string; // OAK-PF-- + severity: 'error' | 'warn'; + message: string; + fieldPath?: string; + suggestion?: string; + normalized?: boolean; +} + +export type PreflightResult = + | { ok: true; normalized: T; warnings: PreflightIssue[] } + | { ok: false; issues: PreflightIssue[]; normalized?: T }; +``` + +Internal orchestration metadata (stage, determinism, blocking flags) is not exposed in the public response. + +## 4. Blocking Rules + +- **strict:** any unresolved issue blocks. +- **warn:** only unresolved `error` blocks. +- **normalize:** apply normalizers first; then same blocking behavior as `warn`. +- `normalized: true` issues never block. + +## 5. Pipeline + +### 5.1 Execution order + +1. Structural validation. +2. Semantic validation. +3. Stateful validation (unless `stateful='local-only'`). +4. Normalization (`mode='normalize'` only). +5. Revalidation of mutated fields. +6. Return preflight result. +7. `safe()` only: simulation then send. + +### 5.2 Stateful degradation behavior + +If state reads fail in `enabled` mode: +- Emit one warning `OAK-PF-COMMON-STATE_UNAVAILABLE`. +- Skip remaining stateful checks. +- Keep local results. +- Use local-clock timestamp heuristics for time-related warnings (same behavior as `local-only` mode). + +If `stateful='local-only'`: +- Skip stateful checks silently. + +### 5.3 collect + +- `collect=true`: aggregate all issues. +- `collect=false`: short-circuit on first blocking issue for active mode. + +## 6. Guardrails for Rule Authors + +- A blocking rule must map to either: (a) a direct Solidity revert precondition on input, or (b) a readable on-chain state condition at the selected `blockTag`. +- No rule may use fields absent from method ABI. +- No private-state synthetic checks; defer to simulation. +- Local-clock-only timing checks are warning-only. + +## 7. Normalization Policy + +Allowed: + +- EIP-55 address checksumming. +- Empty-array canonicalization for `CampaignInfo.updateSelectedPlatform(selection=false)` because arrays are ignored on deselect. + +Disallowed: + +- Deduplication. +- String-to-bytes32 hashing. +- Sorting/reordering. +- Numeric coercion. + +## 8. State Reader + +Requirements: + +- One snapshot per run (`blockTag`) across all calls. +- Multicall batching where possible. +- Per-run memoization. +- Sender resolution for `preflight()` auth checks: `sender = options.effectiveSender ?? signer`. Auth checks compare on-chain role to sender. If sender is missing, emit `OAK-PF-COMMON-SENDER_UNAVAILABLE` warning and skip auth checks. + +## 9. Issue Code Scheme + +Format: `OAK-PF--` + +Scopes: `COMMON`, `CAMPAIGN`, `FACTORY`, `PAYMENT`, `AON`, `KWR`. + +Code IDs are immutable once released. + +## 10. V1 Method Coverage and Priority + +### 10.1 Priority A: Setup Guardrails + +These methods ship first. + +**GlobalParams.addToRegistry** + +- Blocking: `key != bytes32(0)`; sender authorized (`onlyOwner`). + +**GlobalParams.enlistPlatform** + +- Blocking: `platformHash != bytes32(0)`; `platformAdminAddress != address(0)`; sender authorized; platform not already listed. + +**GlobalParams.addPlatformData** + +- Blocking: `platformDataKey != bytes32(0)`; platform listed; sender is platform admin; key not already set. + +**GlobalParams.addTokenToCurrency** + +- Blocking: `currency != bytes32(0)`; `token != address(0)`; sender authorized. +- Warning: token already present for currency (non-blocking hygiene warning). + +**GlobalParams.setPlatformLineItemType** + +- Blocking: `typeId != bytes32(0)`; platform listed; sender is platform admin; boolean matrix constraints exactly as Solidity: if `countsTowardGoal`, require `!applyProtocolFee && canRefund && !instantTransfer`; if `!countsTowardGoal && instantTransfer`, require `!canRefund`. + +**TreasuryFactory.registerTreasuryImplementation** + +- Blocking: `implementation != address(0)`; sender is platform admin. +- Warning: overwrite existing `(platformHash, implementationId)` mapping. + +**TreasuryFactory.approveTreasuryImplementation** + +- Blocking: sender is protocol admin. +- Simulation-backed: implementation existence at `(platformHash, implementationId)` -- private mapping, no public getter. + +**CampaignInfoFactory.createCampaign** + +- Blocking: `creator != address(0)`; `platformDataKey.length == platformDataValue.length`; each `platformDataValue[i] != bytes32(0)`; `launchTime >= block.timestamp + campaignLaunchBuffer`; `deadline >= launchTime + minimumCampaignDuration`; each selected platform is listed; each platform data key is valid; identifier not already used; currency has at least one token. +- Warning: duplicate selected platform hash; duplicate platform data key; `identifierHash == bytes32(0)`; `goalAmount == 0`; empty `nftName` or `nftSymbol`; local-clock launch time likely past (when chain timestamp is unavailable). + +**TreasuryFactory.deploy** + +- Blocking: sender is platform admin; campaign has selected platform (`checkIfPlatformSelected`); `infoAddress != address(0)` for current supported treasury implementations. +- Simulation-backed: implementation approval and initialization paths that depend on private/internal state. + +### 10.2 Priority B: Core Transaction Paths + +**BasePaymentTreasury.createPayment** + +- Blocking: non-zero `paymentId`, `buyerId`, `itemId`; non-zero `paymentToken`; `amount > 0`; each line item has non-zero `typeId` and `amount > 0`; token accepted; payment ID not already used; `expiration > block.timestamp`; if max expiration configured: `expiration <= block.timestamp + max`; each line item type exists; campaign not paused/cancelled; sender is platform admin. +- Warning: expiration likely past (when chain timestamp is unavailable). + +**BasePaymentTreasury.createPaymentBatch** + +- Blocking: all eight arrays same length; batch non-empty; no duplicate `paymentIds`; per-index checks equivalent to `createPayment`. +- Warning: batch size risk threshold (gas). + +**BasePaymentTreasury.processCryptoPayment** + +- Blocking: non-zero ids, addresses, amount, line-item fields; token accepted; payment does not already exist; line-item types exist; campaign not paused/cancelled. +- Warning: ERC20 allowance insufficient; ERC20 balance insufficient. + +**AllOrNothing.addRewards** + +- Blocking: reward name non-zero; reward value > 0; reward arrays length parity; inner item arrays parity; no duplicate names in input; reward does not already exist on-chain; authorized sender; campaign/treasury not paused/cancelled. + +**AllOrNothing.pledgeForAReward** + +- Blocking: non-zero `backer`, `pledgeToken`; reward array non-empty; each reward entry non-zero; token accepted; campaign window active; reward exists; first reward is tier; campaign/treasury not paused/cancelled. + +**AllOrNothing.pledgeWithoutAReward** + +- Blocking: non-zero `backer`, `pledgeToken`; token accepted; campaign window active; campaign/treasury not paused/cancelled. +- Warning: pledge amount is zero (allowed but usually unintended). + +**KeepWhatsRaised.configureTreasury** + +- Blocking: `deadline > launchTime`; gross fee key/value array parity; sender is platform admin; campaign/treasury not paused/cancelled; `launchTime >= block.timestamp`. +- Warning: goal amount zero (advisory). + +**KeepWhatsRaised.addRewards, pledgeForAReward, pledgeWithoutAReward** + +- Apply analogous checks to AllOrNothing, plus: blocking check for processed pledge ID where readable via public mapping/getter. + +### 10.3 Deferred in V1 (Simulation-led) + +- Checks depending on private mappings/structs without public getters. +- Complex accounting-heavy confirm/withdraw/disburse eligibility paths. +- Config-lock and refund-window logic in KWR where private fields are required. + +## 11. Assumptions + +- SDK has reliable contract registry (address + ABI by chain/environment). +- `safe()` is the recommended write path for production. +- `safe()` requires signer availability and fails fast before execution if signer is missing. +- State read failures do not block in default mode; simulation remains the final guard. +- Any future API expansion keeps backward compatibility for `PreflightIssue` and code IDs. diff --git a/SDK_RFC.md b/SDK_RFC.md new file mode 100644 index 0000000..c5bc87c --- /dev/null +++ b/SDK_RFC.md @@ -0,0 +1,457 @@ +# 1. Executive Summary + +Oak Network exposes a growing set of on-chain protocol contracts that developers must interact with directly to build decentralized applications, integrations, automation, and analytics. + +Today, interacting with these contracts requires: + +* Manual ABI handling +* Ad-hoc contract instantiation +* Inconsistent error handling +* Repeated boilerplate for validation, simulation, and event parsing + +This RFC proposes **`@oak-network/contracts`**, a protocol-first smart contract client library whose sole responsibility is to provide safe, typed, and developer-friendly access to Oak protocol contracts. + +The library focuses on: + +* Type-safe contract access +* Preflight validation and developer warnings +* Graceful error translation before sending transactions on-chain +* Typed event querying and decoding +* Optional metrics and aggregation tooling +* Optional auth/wallet adapters (e.g. Privy), without binding developers to them + +The result is a pure protocol SDK that works in frontends, backends, scripts, and indexers — without any dependency on Oak backend services. + +--- + +# 2. Goals & Non-Goals + +### Goals + +* Make Oak protocol contracts easy, safe, and predictable to call +* Eliminate common on-chain revert causes before execution +* Provide typed read, write, and event interfaces +* Surface actionable developer warnings instead of opaque reverts +* Support multiple chains and environments explicitly +* Enable analytics and metrics without forcing a hosted indexer +* Allow optional tooling (Privy, metrics providers) without coupling + +### Non-Goals + +* No backend HTTP or API integration +* No mandatory wallet or auth provider +* No UI components or wallet UX +* No off-chain business logic orchestration +* No forced indexing infrastructure + +--- + +# 3. Package Scope & Structure + +**Package Name** +`@oak-network/contracts` + +**Subpath Exports (Logical Modules)** + +* `@oak-network/contracts` – core protocol client +* `@oak-network/contracts/preflight` – validation & warnings +* `@oak-network/contracts/events` – event querying & decoding +* `@oak-network/contracts/metrics` – aggregation helpers +* `@oak-network/contracts/privy` – optional Privy adapter + +> **Hard rule:** Core must never import optional modules or heavy dependencies. + +--- + +# 4. Core Design Principles + +### 4.1 Protocol-First Design + +The library mirrors the on-chain protocol surface, not application workflows. + +* Methods map 1:1 to Solidity functions +* No opinionated flows +* Developers compose logic externally + +### 4.2 Strong Typing Is Mandatory + +All public APIs must be: + +* Fully typed +* ABI-aligned +* Event-safe +* Compile-time verified + +No `any` types are allowed at the public boundary. + +### 4.3 Zero Backend Dependency + +The library must work in a fully decentralized environment. + +* No API keys +* No Oak service URLs +* No backend assumptions + +--- + +# 5. Contract Typing Strategy + +### 5.1 TypeChain as Source of Truth + +All contract bindings are generated from Solidity artifacts using TypeChain. + +* No handwritten wrappers +* ABI drift caught at compile time +* Events and return values strictly typed + +### 5.2 Runtime Support + +Bindings must support: + +* Viem +* Ethers v6 + +Adapters may exist, but the ABI typing pipeline is canonical. + +--- + +# 6. Contract Registry & Address Resolution + +### 6.1 Central Contract Registry + +The library maintains a registry mapping: + +* Contract name +* ABI/type reference +* Supported chains +* Environment-specific deployment addresses + +Example mapping: +`Vault → { sandbox → base → 0x..., production → base → 0x... }` + +### 6.2 Explicit Environment & Chain + +Instantiation requires: + +* **environment:** `sandbox` | `production` +* **chain:** e.g. `ethereum` | `polygon` | `base` + +No defaults. No guessing. + +### 6.3 Fail-Fast Safety + +If a contract is: + +* Not deployed +* Unsupported on the chain +* Mismatched with environment + +Instantiation fails immediately with a descriptive error. + +--- + +# 7. Client Construction Model + +### 7.1 Explicit Wiring + +The library does not manage wallets or RPC selection. Consumers must provide: + +* `publicClient` (read) +* Optional `signer` (write) + +```typescript +const oak = createOakContractsClient({ + environment: 'sandbox', + chain: 'base', + publicClient, + signer, +}); + +``` + +### 7.2 Read vs Write Separation + +* Read methods require only a public client +* Write methods require a signer +* Missing signer → fail fast before any RPC call + +--- + +# 8. Preflight Validation & Developer Warnings + +### 8.1 Motivation + +Many smart contract reverts are caused by predictable input mistakes: + +* Array length mismatch +* Incorrect ordering +* Invalid casing +* Duplicate values +* Sums not matching invariants (e.g. BPS) +* Malformed addresses + +These should be detected before simulation or transaction submission. + +### 8.2 Preflight Layer (Concept) + +The Preflight Layer performs: + +* Local validation +* Semantic checks +* Optional normalization +* Developer-facing warnings + +It runs before simulation and before sending transactions. + +### 8.3 Preflight Modes + +```typescript +preflight: { + mode: 'warn' | 'strict' | 'normalize', + collect: true +} + +``` + +| Mode | Behavior | +| --- | --- | +| **strict** | Any issue blocks execution | +| **warn** | Warnings surfaced, execution allowed | +| **normalize** | Safe canonical fixes applied + warnings | + +**Default:** `warn` + +### 8.4 Preflight Output + +```typescript +type PreflightIssue = { + code: string; + severity: 'error' | 'warn'; + message: string; + fieldPath?: string; + suggestion?: string; + normalized?: boolean; +}; + +type PreflightResult = + | { ok: true; normalized: T; warnings: PreflightIssue[] } + | { ok: false; issues: PreflightIssue[] }; + +``` + +Each write method exposes: + +* `method.preflight(input)` +* `method.safe(input)` + +### 8.5 What Preflight Validates + +**A. Structural Validation (Zero RPC)** + +* Address format & checksum +* Numeric bounds +* Empty arrays +* Enum correctness + +**B. Semantic Validation** + +* Array length equality +* Ordering constraints +* Duplicate detection +* Sum invariants (e.g. BPS = 10000) +* Required role presence + +**C. Canonical Normalization (Optional)** + +* Address checksum normalization +* Stable sorting (when protocol expects it) +* Duplicate removal (warn + normalize) + +Normalization is contract-method specific and opt-in. + +### 8.6 Developer Warnings (DX) + +Warnings are explicit and actionable (e.g., `ARRAY_ORDER_MISMATCH`, `BPS_SUM_INVALID`, `DUPLICATE_RECIPIENT`, `STRING_CASE_MISMATCH`). + +Warnings explain: + +* Why it matters +* What may revert +* How to fix + +--- + +# 9. Error Translation & Simulation + +### 9.1 Separation of Concerns + +* **Preflight:** Local, deterministic +* **Simulation:** RPC dry-run (`callStatic` / `simulateContract`) +* **Execution:** Actual transaction + +### 9.2 Error Taxonomy + +Errors are translated into typed Oak errors: + +* `InputValidationError` +* `EnvironmentMismatchError` +* `ContractNotDeployedError` +* `MissingSignerError` +* `SimulationRevertedError` +* `TransactionRevertedError` +* `RpcError` + +No raw RPC errors leak to the developer. + +--- + +# 10. Optional Privy Auth Adapter + +### 10.1 Purpose + +Some integrators want: + +* Embedded wallets +* Session-based signing +* Social login +Others do not. + +### 10.2 Design + +Privy support is provided as an optional adapter: `@oak-network/contracts/privy` + +```typescript +const { signer, publicClient } = await createPrivySignerAdapter({ + privyClient, + chain +}); + +const oak = createOakContractsClient({ + signer, + publicClient, + ... +}); + +``` + +### 10.3 Boundary Rules + +* Core never imports Privy +* Privy module depends on Privy SDK +* No opinionated auth flows + +--- + +# 11. Events Tooling + +### 11.1 Typed Event Queries + +Under `@oak-network/contracts/events`: + +* Typed filters +* Decoded logs +* Pagination helpers +* Block-range utilities + +```typescript +oak.events.Vault.Deposit.query({ fromBlock, toBlock, filter }); + +``` + +### 11.2 Normalized Event Format + +Events expose: + +* Name +* Args (typed) +* Tx hash +* Block number +* Optional timestamp (opt-in) + +Indexer-friendly by design. + +--- + +# 12. Metrics & Aggregations Tooling + +### 12.1 Objectives + +Provide common protocol metrics without forcing a hosted indexer. + +### 12.2 Two-Tier Model + +**Tier A: RPC-Based (Bounded)** + +* Contract reads +* Limited event scans +* Safe for dashboards & scripts +* *Examples:* TVL (if exposed), deposits in last N blocks, unique contributors (bounded). + +**Tier B: Indexer-Backed (Pluggable)** +Expose an interface: + +```typescript +interface OakMetricsProvider { + getVaultTVL(vaultId): Promise; + getVolume(range): Promise; +} + +``` + +Indexers can implement this without modifying core. + +--- + +# 13. Testing Strategy + +* Preflight rule unit tests +* Error translation tests +* Event decoding snapshots +* Metrics provider contract tests +* Forked-chain validation where needed +* **100% coverage required for library logic.** + +--- + +# 14. Versioning + +**Semantic Versioning:** + +* **MAJOR:** ABI or API breaking changes +* **MINOR:** New contracts, methods, tooling +* **PATCH:** Fixes, validation improvements + +--- + +# 15. Definition of Done + +A feature is complete only if: + +* Preflight validation exists (if write method) +* Errors are translated +* Events are typed +* Optional tooling remains isolated +* Documentation examples updated + +--- + +# 16. Implementation Roadmap (Proposed) + +**Phase 1** + +* Core registry & client +* TypeChain bindings +* Preflight framework +* Error taxonomy + +**Phase 2** + +* Event querying utilities +* Simulation wrappers +* Metrics (RPC-based) + +**Phase 3** + +* Privy adapter +* Indexer interfaces +* DX polish & docs \ No newline at end of file diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index a436af5..3119e23 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -693,8 +693,8 @@ contract CampaignInfo is s_approvedPlatformHashes.push(platformHash); s_isApprovedPlatform[platformHash] = true; - // Grant MINTER_ROLE to allow treasury to mint pledge NFTs - _grantRole(MINTER_ROLE, platformTreasuryAddress); + // Grant TREASURY_ROLE to allow treasury to mint and burn pledge NFTs + _grantRole(TREASURY_ROLE, platformTreasuryAddress); // Lock the campaign after the first treasury deployment if (!s_isLocked) { s_isLocked = true; diff --git a/src/interfaces/ICampaignInfo.sol b/src/interfaces/ICampaignInfo.sol index 9fc9854..346daba 100644 --- a/src/interfaces/ICampaignInfo.sol +++ b/src/interfaces/ICampaignInfo.sol @@ -243,7 +243,7 @@ interface ICampaignInfo is IERC721 { /** * @notice Mints a pledge NFT for a backer - * @dev Can only be called by treasuries with MINTER_ROLE + * @dev Can only be called by treasuries with TREASURY_ROLE * @param backer The backer address * @param reward The reward identifier * @param tokenAddress The address of the token used for the pledge @@ -275,6 +275,7 @@ interface ICampaignInfo is IERC721 { /** * @notice Burns a pledge NFT + * @dev Can only be called by treasuries with TREASURY_ROLE * @param tokenId The token ID to burn */ function burn(uint256 tokenId) external; diff --git a/src/utils/PledgeNFT.sol b/src/utils/PledgeNFT.sol index 994866e..8ef6f2a 100644 --- a/src/utils/PledgeNFT.sol +++ b/src/utils/PledgeNFT.sol @@ -18,7 +18,8 @@ abstract contract PledgeNFT is ERC721Burnable, AccessControl { using Strings for address; using Counters for Counters.Counter; - bytes32 public constant MINTER_ROLE = 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6; + /// @dev keccak256(bytes("TREASURY_ROLE")) + bytes32 public constant TREASURY_ROLE = 0xe1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca9; /** * @dev Struct to store pledge data for each token @@ -133,7 +134,7 @@ abstract contract PledgeNFT is ERC721Burnable, AccessControl { uint256 amount, uint256 shippingFee, uint256 tipAmount - ) public virtual onlyRole(MINTER_ROLE) returns (uint256 tokenId) { + ) public virtual onlyRole(TREASURY_ROLE) returns (uint256 tokenId) { // Increment counter and get new token ID s_tokenIdCounter.increment(); tokenId = s_tokenIdCounter.current(); @@ -161,7 +162,7 @@ abstract contract PledgeNFT is ERC721Burnable, AccessControl { * @notice Burns a pledge NFT * @param tokenId The token ID to burn */ - function burn(uint256 tokenId) public virtual override { + function burn(uint256 tokenId) public virtual override onlyRole(TREASURY_ROLE) { delete s_pledgeData[tokenId]; super.burn(tokenId); } diff --git a/test/foundry/unit/PledgeNFT.t.sol b/test/foundry/unit/PledgeNFT.t.sol index a79122d..0a928c3 100644 --- a/test/foundry/unit/PledgeNFT.t.sol +++ b/test/foundry/unit/PledgeNFT.t.sol @@ -84,8 +84,12 @@ contract PledgeNFT_Test is Base_Test { uint256 tokenId2 = campaign.mintNFTForPledge(users.backer1Address, bytes32(0), address(testToken), 100e18, 0, 0); assertEq(tokenId2, 2, "Second token ID should be 2"); - // Burn first NFT + // Backer approves treasury to burn their NFT (required by ERC721Burnable) vm.prank(users.backer1Address); + campaign.approve(address(treasury), tokenId1); + + // Burn first NFT — only treasury (TREASURY_ROLE) can burn + vm.prank(address(treasury)); campaign.burn(tokenId1); // Mint third NFT - should be 3, NOT reusing 1 @@ -104,8 +108,12 @@ contract PledgeNFT_Test is Base_Test { assertEq(campaign.balanceOf(users.backer1Address), 1, "Backer should have 1 NFT"); - // Burn NFT + // Backer approves treasury to burn their NFT (required by ERC721Burnable) vm.prank(users.backer1Address); + campaign.approve(address(treasury), tokenId); + + // Burn NFT — only treasury (TREASURY_ROLE) can burn + vm.prank(address(treasury)); campaign.burn(tokenId); // Verify NFT was burned @@ -115,4 +123,23 @@ contract PledgeNFT_Test is Base_Test { vm.expectRevert(); campaign.ownerOf(tokenId); } + + function test_OnlyTreasuryCanBurnNFT() public { + // Mint NFT as treasury + vm.prank(address(treasury)); + uint256 tokenId = campaign.mintNFTForPledge(users.backer1Address, bytes32(0), address(testToken), 100e18, 0, 0); + + // Backer (NFT owner) cannot burn — TREASURY_ROLE required + vm.expectRevert(); + vm.prank(users.backer1Address); + campaign.burn(tokenId); + + // Unrelated address cannot burn + vm.expectRevert(); + vm.prank(users.creator1Address); + campaign.burn(tokenId); + + // NFT still exists + assertEq(campaign.ownerOf(tokenId), users.backer1Address, "NFT should still exist after failed burns"); + } } From ceb7c7866ab2937b7a96b7cb51637bd0c435086f Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:36:34 +0600 Subject: [PATCH 21/61] Add JSON validation for imageURI (#39) --- src/CampaignInfo.sol | 1 + src/utils/PledgeNFT.sol | 1 + 2 files changed, 2 insertions(+) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index 3119e23..912dd34 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -638,6 +638,7 @@ contract CampaignInfo is onlyOwner currentTimeIsLess(getLaunchTime()) { + _validateJsonString(newImageURI); s_imageURI = newImageURI; emit ImageURIUpdated(newImageURI); } diff --git a/src/utils/PledgeNFT.sol b/src/utils/PledgeNFT.sol index 8ef6f2a..828dd5c 100644 --- a/src/utils/PledgeNFT.sol +++ b/src/utils/PledgeNFT.sol @@ -92,6 +92,7 @@ abstract contract PledgeNFT is ERC721Burnable, AccessControl { string calldata _contractURI ) internal { _validateJsonString(_nftName); + _validateJsonString(_imageURI); s_nftName = _nftName; s_nftSymbol = _nftSymbol; s_imageURI = _imageURI; From 751d6d425af5322d7d8e164b37b847ecaf71f790 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:37:18 +0600 Subject: [PATCH 22/61] Refactor fee calculation in BasePaymentTreasury contract (OZ-47) (#31) - Simplified the protocol fee application logic by removing redundant variables and directly calculating the net amount based on whether the protocol fee is applied --- src/utils/BasePaymentTreasury.sol | 47 +++++++++++++------------------ 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index 71605f5..891b41d 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -871,14 +871,14 @@ abstract contract BasePaymentTreasury is s_lifetimeConfirmedPaymentPerToken[paymentToken] += item.amount; s_availableConfirmedPerToken[paymentToken] += item.amount; } else { - // Apply protocol fee if applicable - uint256 feeAmount = 0; + uint256 netAmount; if (applyProtocolFee) { uint256 protocolFee = (item.amount * protocolFeePercent) / PERCENT_DIVIDER; - feeAmount += protocolFee; s_protocolFeePerToken[paymentToken] += protocolFee; + netAmount = item.amount - protocolFee; + } else { + netAmount = item.amount; } - uint256 netAmount = item.amount - feeAmount; if (instantTransfer) { // Accumulate for batch transfer after loop @@ -992,23 +992,19 @@ abstract contract BasePaymentTreasury is for (uint256 i = 0; i < lineItems.length; i++) { ICampaignPaymentTreasury.PaymentLineItem memory item = lineItems[i]; - bool countsTowardGoal = item.countsTowardGoal; - bool applyProtocolFee = item.applyProtocolFee; - bool instantTransfer = item.instantTransfer; - - if (countsTowardGoal) { + if (item.countsTowardGoal) { totals.totalGoalLineItemAmount += item.amount; } else { - uint256 feeAmount = 0; - if (applyProtocolFee) { + uint256 netAmount; + if (item.applyProtocolFee) { uint256 protocolFee = (item.amount * protocolFeePercent) / PERCENT_DIVIDER; totals.totalProtocolFeeFromLineItems += protocolFee; - feeAmount += protocolFee; + netAmount = item.amount - protocolFee; + } else { + netAmount = item.amount; } - uint256 netAmount = item.amount - feeAmount; - - if (instantTransfer) { + if (item.instantTransfer) { totals.totalInstantTransferAmountForCheck += netAmount; } else if (item.canRefund) { totals.totalNonGoalRefundableAmount += netAmount; @@ -1060,12 +1056,7 @@ abstract contract BasePaymentTreasury is for (uint256 i = 0; i < lineItems.length; i++) { ICampaignPaymentTreasury.PaymentLineItem memory item = lineItems[i]; - bool countsTowardGoal = item.countsTowardGoal; - bool applyProtocolFee = item.applyProtocolFee; - bool canRefund = item.canRefund; - bool instantTransfer = item.instantTransfer; - - if (countsTowardGoal) { + if (item.countsTowardGoal) { s_pendingPaymentPerToken[paymentToken] -= item.amount; s_confirmedPaymentPerToken[paymentToken] += item.amount; s_lifetimeConfirmedPaymentPerToken[paymentToken] += item.amount; @@ -1073,23 +1064,23 @@ abstract contract BasePaymentTreasury is } else { s_nonGoalLineItemPendingPerToken[paymentToken] -= item.amount; - uint256 feeAmount = 0; - if (applyProtocolFee) { + uint256 netAmount; + if (item.applyProtocolFee) { uint256 protocolFee = (item.amount * protocolFeePercent) / PERCENT_DIVIDER; - feeAmount += protocolFee; s_protocolFeePerToken[paymentToken] += protocolFee; + netAmount = item.amount - protocolFee; + } else { + netAmount = item.amount; } - uint256 netAmount = item.amount - feeAmount; - - if (instantTransfer) { + if (item.instantTransfer) { totalInstantTransferAmount += netAmount; // Instant transfer items are not tracked in s_nonGoalLineItemConfirmedPerToken } else { // Track outstanding non-goal balances using net amounts (after fees) s_nonGoalLineItemConfirmedPerToken[paymentToken] += netAmount; - if (canRefund) { + if (item.canRefund) { s_refundableNonGoalLineItemPerToken[paymentToken] += netAmount; } else { s_nonGoalLineItemClaimablePerToken[paymentToken] += netAmount; From 9181723e3bdabf9639bb4a39afa03ea638c14204 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:37:56 +0600 Subject: [PATCH 23/61] Refactor unnecessary Assignment in AllOrNothing._pledge (OZ-48) (#32) --- src/treasuries/AllOrNothing.sol | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index 29dad70..bb15fe3 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -417,9 +417,8 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker, ReentrancyGuar pledgeAmountInTokenDecimals = _denormalizeAmount(pledgeToken, pledgeAmount); shippingFeeInTokenDecimals = _denormalizeAmount(pledgeToken, shippingFee); } else { - // Non-reward pledge: already in token decimals + // Non-reward pledge: already in token decimals; shippingFee is always 0 (from pledgeWithoutAReward) pledgeAmountInTokenDecimals = pledgeAmount; - shippingFeeInTokenDecimals = shippingFee; } uint256 totalAmount = pledgeAmountInTokenDecimals + shippingFeeInTokenDecimals; From ff0a79952a55cf2c9d5ff3ca31e3f349224e8ba7 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:38:22 +0600 Subject: [PATCH 24/61] Refactor campaign management functions in CampaignInfo contract (OZ-49) (#33) * Refactor campaign management functions in CampaignInfo contract - Renamed internal functions to public for better clarity and accessibility: _pauseCampaign to pauseCampaign, _unpauseCampaign to unpauseCampaign, _cancelCampaign to cancelCampaign, and _setPlatformInfo to setPlatformInfo. - Updated corresponding calls in TreasuryFactory to reflect the new function names. * Refactor campaign management function calls in unit tests - Updated unit tests in CampaignInfo and PaymentTreasury contracts to reflect the renaming of internal functions to public: _pauseCampaign to pauseCampaign, _unpauseCampaign to unpauseCampaign, _cancelCampaign to cancelCampaign, and _setPlatformInfo to setPlatformInfo. - Ensured all relevant test cases are aligned with the new function names for consistency and clarity. --- src/CampaignInfo.sol | 8 +++---- src/TreasuryFactory.sol | 2 +- test/foundry/unit/CampaignInfo.t.sol | 30 ++++++++++++------------- test/foundry/unit/PaymentTreasury.t.sol | 2 +- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index 912dd34..0609f98 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -606,21 +606,21 @@ contract CampaignInfo is /** * @dev External function to pause the campaign. */ - function _pauseCampaign(bytes32 message) external onlyProtocolAdmin { + function pauseCampaign(bytes32 message) external onlyProtocolAdmin { _pause(message); } /** * @dev External function to unpause the campaign. */ - function _unpauseCampaign(bytes32 message) external onlyProtocolAdmin { + function unpauseCampaign(bytes32 message) external onlyProtocolAdmin { _unpause(message); } /** * @dev External function to cancel the campaign. */ - function _cancelCampaign(bytes32 message) external { + function cancelCampaign(bytes32 message) external { if (_msgSender() != getProtocolAdminAddress() && _msgSender() != owner()) { revert CampaignInfoUnauthorized(); } @@ -678,7 +678,7 @@ contract CampaignInfo is * @param platformHash The bytes32 identifier of the platform. * @param platformTreasuryAddress The address of the platform's treasury. */ - function _setPlatformInfo(bytes32 platformHash, address platformTreasuryAddress) external whenNotPaused { + function setPlatformInfo(bytes32 platformHash, address platformTreasuryAddress) external whenNotPaused { Config memory config = getCampaignConfig(); if (_msgSender() != config.treasuryFactory) { revert CampaignInfoUnauthorized(); diff --git a/src/TreasuryFactory.sol b/src/TreasuryFactory.sol index f2afad1..a79b65a 100644 --- a/src/TreasuryFactory.sol +++ b/src/TreasuryFactory.sol @@ -127,7 +127,7 @@ contract TreasuryFactory is Initializable, ITreasuryFactory, AdminAccessChecker, if (!success) { revert TreasuryFactoryTreasuryInitializationFailed(); } - (success,) = infoAddress.call(abi.encodeWithSignature("_setPlatformInfo(bytes32,address)", platformHash, clone)); + (success,) = infoAddress.call(abi.encodeWithSignature("setPlatformInfo(bytes32,address)", platformHash, clone)); if (!success) { revert TreasuryFactorySettingPlatformInfoFailed(); } diff --git a/test/foundry/unit/CampaignInfo.t.sol b/test/foundry/unit/CampaignInfo.t.sol index 8785699..2a89344 100644 --- a/test/foundry/unit/CampaignInfo.t.sol +++ b/test/foundry/unit/CampaignInfo.t.sol @@ -480,7 +480,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { function test_TransferOwnership_WhenPaused_Reverts() public { // Pause the campaign vm.startPrank(admin); - campaignInfo._pauseCampaign(keccak256("test")); + campaignInfo.pauseCampaign(keccak256("test")); vm.stopPrank(); vm.startPrank(campaignOwner); @@ -492,7 +492,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { function test_TransferOwnership_WhenCancelled_Reverts() public { // Cancel the campaign vm.startPrank(admin); - campaignInfo._cancelCampaign(keccak256("test")); + campaignInfo.cancelCampaign(keccak256("test")); vm.stopPrank(); vm.startPrank(campaignOwner); @@ -507,7 +507,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { vm.startPrank(admin); bytes32 message = keccak256("test pause"); - campaignInfo._pauseCampaign(message); + campaignInfo.pauseCampaign(message); assertTrue(campaignInfo.paused()); vm.stopPrank(); @@ -516,13 +516,13 @@ contract CampaignInfo_UnitTest is Test, Defaults { function test_UnpauseCampaign_Success() public { // First pause vm.startPrank(admin); - campaignInfo._pauseCampaign(keccak256("test pause")); + campaignInfo.pauseCampaign(keccak256("test pause")); vm.stopPrank(); // Then unpause vm.startPrank(admin); bytes32 message = keccak256("test unpause"); - campaignInfo._unpauseCampaign(message); + campaignInfo.unpauseCampaign(message); assertFalse(campaignInfo.paused()); vm.stopPrank(); @@ -532,7 +532,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { vm.startPrank(admin); bytes32 message = keccak256("test cancel"); - campaignInfo._cancelCampaign(message); + campaignInfo.cancelCampaign(message); assertTrue(campaignInfo.cancelled()); vm.stopPrank(); @@ -542,7 +542,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { vm.startPrank(campaignOwner); bytes32 message = keccak256("test cancel"); - campaignInfo._cancelCampaign(message); + campaignInfo.cancelCampaign(message); assertTrue(campaignInfo.cancelled()); vm.stopPrank(); @@ -553,7 +553,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { vm.startPrank(unauthorizedUser); vm.expectRevert(CampaignInfo.CampaignInfoUnauthorized.selector); - campaignInfo._cancelCampaign(keccak256("test cancel")); + campaignInfo.cancelCampaign(keccak256("test cancel")); vm.stopPrank(); } @@ -650,7 +650,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { // Verify campaign is not locked initially assertFalse(campaignInfo.isLocked()); - // Deploy a treasury using the treasury factory - this will call _setPlatformInfo + // Deploy a treasury using the treasury factory - this will call setPlatformInfo vm.startPrank(admin); address treasury = treasuryFactory.deploy( platformHash1, @@ -767,7 +767,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { // Pausing should still work when locked vm.startPrank(admin); bytes32 message = keccak256("test pause"); - campaignInfo._pauseCampaign(message); + campaignInfo.pauseCampaign(message); assertTrue(campaignInfo.paused()); vm.stopPrank(); @@ -779,13 +779,13 @@ contract CampaignInfo_UnitTest is Test, Defaults { // First pause vm.startPrank(admin); - campaignInfo._pauseCampaign(keccak256("test pause")); + campaignInfo.pauseCampaign(keccak256("test pause")); vm.stopPrank(); // Then unpause - should still work when locked vm.startPrank(admin); bytes32 message = keccak256("test unpause"); - campaignInfo._unpauseCampaign(message); + campaignInfo.unpauseCampaign(message); assertFalse(campaignInfo.paused()); vm.stopPrank(); @@ -798,7 +798,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { // Cancelling should still work when locked vm.startPrank(admin); bytes32 message = keccak256("test cancel"); - campaignInfo._cancelCampaign(message); + campaignInfo.cancelCampaign(message); assertTrue(campaignInfo.cancelled()); vm.stopPrank(); @@ -811,7 +811,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { // Cancelling should still work when locked vm.startPrank(campaignOwner); bytes32 message = keccak256("test cancel"); - campaignInfo._cancelCampaign(message); + campaignInfo.cancelCampaign(message); assertTrue(campaignInfo.cancelled()); vm.stopPrank(); @@ -887,7 +887,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { // Approve the platform (this locks the campaign) vm.startPrank(address(treasuryFactory)); - campaignInfo._setPlatformInfo(platformHash1, address(0x1234)); + campaignInfo.setPlatformInfo(platformHash1, address(0x1234)); vm.stopPrank(); // Now try to select the already approved platform again - should revert diff --git a/test/foundry/unit/PaymentTreasury.t.sol b/test/foundry/unit/PaymentTreasury.t.sol index a07907c..218da9a 100644 --- a/test/foundry/unit/PaymentTreasury.t.sol +++ b/test/foundry/unit/PaymentTreasury.t.sol @@ -290,7 +290,7 @@ contract PaymentTreasury_UnitTest is Test, PaymentTreasury_Integration_Shared_Te // Pause the campaign CampaignInfo actualCampaignInfo = CampaignInfo(campaignAddress); vm.prank(users.protocolAdminAddress); - actualCampaignInfo._pauseCampaign(keccak256("Pause")); + actualCampaignInfo.pauseCampaign(keccak256("Pause")); vm.expectRevert(); vm.prank(users.platform1AdminAddress); From 7cbe9405e8c3e2962aade3040b956dccc64ed35f Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:39:16 +0600 Subject: [PATCH 25/61] Add duplicate item ID validation in ItemRegistry contract (OZ-50) (#34) - Introduced a new error for handling duplicate item IDs in batch operations. - Implemented logic to reject duplicate item IDs within the batch to prevent duplicate event emissions. --- src/utils/ItemRegistry.sol | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/utils/ItemRegistry.sol b/src/utils/ItemRegistry.sol index e193173..6c1ebec 100644 --- a/src/utils/ItemRegistry.sol +++ b/src/utils/ItemRegistry.sol @@ -25,6 +25,12 @@ contract ItemRegistry is IItem, Context { */ error ItemRegistryMismatchedArraysLength(); + /** + * @dev Thrown when the batch contains duplicate itemIds. + * @param itemId The duplicate item identifier. + */ + error ItemRegistryDuplicateItemId(bytes32 itemId); + /** * @inheritdoc IItem */ @@ -52,8 +58,15 @@ contract ItemRegistry is IItem, Context { for (uint256 i = 0; i < itemIds.length; i++) { bytes32 itemId = itemIds[i]; - Item calldata item = items[i]; + // Reject duplicate itemIds within the batch to avoid duplicate event emissions + for (uint256 j = 0; j < i; j++) { + if (itemIds[j] == itemId) { + revert ItemRegistryDuplicateItemId(itemId); + } + } + + Item calldata item = items[i]; Items[_msgSender()][itemId] = item; emit ItemAdded(_msgSender(), itemId, item); } From 04aa2ba92e3cdcd3ecf9e2f6ac445a97d82657c5 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:40:58 +0600 Subject: [PATCH 26/61] Refactor Colombian creator tax calculation to KeepWhatsRaised contract (OZ-13) (#47) - Implemented a new internal function `_colombianCreatorTax` to compute the Colombian creator tax based on net and gross amounts, ensuring compliance with local regulations. - Updated withdrawal logic to clarify tax application for partial and final withdrawals, enhancing documentation for better understanding of fee structures. --- src/treasuries/KeepWhatsRaised.sol | 43 +++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index c17d614..8a52440 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -882,11 +882,39 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa revert KeepWhatsRaisedDisabled(); } + /** + * @dev Computes Colombian creator tax with a single accounting model to avoid double-counting. + * - Partial withdrawal: `amount` is NET (what the creator receives). Tax is additive (fee on top). + * Formula: tax = ceil(net * 40 / 10000). Rounded up per Colombian Peso precision requirements. + * - Final withdrawal: `amount` is GROSS (full remaining balance). Tax is deducted from it. + * Formula: tax = ceil(gross * 40 / 10040) (tax-inclusive rate). Rounded up per Colombian Peso. + * @param amount The net amount (partial) or gross amount (final) in token units. + * @param isFromGross True for final withdrawal (amount = full balance), false for partial (amount = net to creator). + * @return Tax amount in token units (rounded up). + */ + function _colombianCreatorTax(uint256 amount, bool isFromGross) internal pure returns (uint256) { + if (amount == 0) return 0; + if (isFromGross) { + // Gross-including-tax: tax = ceil(gross * 40 / 10040) + return (amount * 40 + 10040 - 1) / 10040; + } else { + // Net amount (additive tax): tax = ceil(net * 40 / 10000) + return (amount * 40 + 10000 - 1) / 10000; + } + } + /** * @dev Allows the campaign owner or platform admin to withdraw funds, applying required fees and taxes. * + * Accounting model (per product requirement): + * - Partial withdrawal: Creator receives the full requested amount; fees (including Colombian tax) are additive + * (deducted from the pool in addition). So: pool -= amount + totalFee, creator gets amount (net). + * - Final withdrawal: Fees (including Colombian tax) are cut from the remaining balance; creator receives + * the remainder. So: pool -= withdrawalAmount, creator gets withdrawalAmount - totalFee (net). + * * @param token The token to withdraw. - * @param amount The withdrawal amount (ignored for final withdrawals). + * @param amount The withdrawal amount (ignored for final withdrawals). For partial, this is the NET amount + * to transfer to the creator; fees are additive. * * Requirements: * - Caller must be authorized. @@ -965,16 +993,11 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa } } - uint256 availableBeforeTax = withdrawalAmount; //The tax implemented is on the withdrawal amount - - // Colombian creator tax + // Colombian creator tax: single accounting model to avoid double-counting. + // Partial: withdrawalAmount = NET (amount to creator); tax is additive (fee on top), formula from net. + // Final: withdrawalAmount = GROSS (full balance); tax is deducted from it, formula from gross. Rounded up to next unit (e.g. Peso). if (s_config.isColombianCreator) { - // Formula: (availableBeforeTax * 0.004) / 1.004 ≈ ((availableBeforeTax * 40) / 10040) - uint256 scaled = availableBeforeTax * PERCENT_DIVIDER; - uint256 numerator = scaled * 40; - uint256 denominator = 10040; - uint256 columbianCreatorTax = numerator / (denominator * PERCENT_DIVIDER); - + uint256 columbianCreatorTax = _colombianCreatorTax(withdrawalAmount, isFinalWithdrawal); s_platformFeePerToken[token] += columbianCreatorTax; totalFee += columbianCreatorTax; } From fff7fddc2cfcc25e211785c7c935626202d911b8 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:41:42 +0600 Subject: [PATCH 27/61] Add canBeAddOn field to Reward struct and update validation checks (OZ-21) (#50) * Add 'canBeAddOn' field to Reward struct and update validation checks in AllOrNothing and KeepWhatsRaised contracts - Introduced a new boolean field 'canBeAddOn' in the Reward struct within IReward interface. - Updated input validation in AllOrNothing and KeepWhatsRaised contracts to check for 'canBeAddOn' alongside 'rewardValue' to ensure proper reward handling. * Update KeepWhatsRaised unit tests to incorporate 'canBeAddOn' parameter in reward creation and add new test for pledge validation with add-on restrictions - Modified existing tests to use the updated _createTestReward function, now including the 'canBeAddOn' parameter. - Added a new test case to validate that pledging for a reward with an invalid add-on configuration correctly reverts the transaction. --- src/interfaces/IReward.sol | 1 + src/treasuries/AllOrNothing.sol | 2 +- src/treasuries/KeepWhatsRaised.sol | 2 +- test/foundry/unit/KeepWhatsRaised.t.sol | 45 ++++++++++++++++++++----- test/foundry/utils/Defaults.sol | 3 ++ 5 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/interfaces/IReward.sol b/src/interfaces/IReward.sol index 0c57086..dd63295 100644 --- a/src/interfaces/IReward.sol +++ b/src/interfaces/IReward.sol @@ -9,6 +9,7 @@ interface IReward { struct Reward { uint256 rewardValue; bool isRewardTier; + bool canBeAddOn; bytes32[] itemId; uint256[] itemValue; uint256[] itemQuantity; diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index bb15fe3..1914035 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -292,7 +292,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker, ReentrancyGuar revert AllOrNothingInvalidInput(); } tempReward = s_reward[reward[i]]; - if (tempReward.rewardValue == 0) { + if (tempReward.rewardValue == 0 || !tempReward.canBeAddOn) { revert AllOrNothingInvalidInput(); } pledgeAmount += tempReward.rewardValue; diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 8a52440..37ec129 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -810,7 +810,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa revert KeepWhatsRaisedInvalidInput(); } tempReward = s_reward[reward[i]]; - if (tempReward.rewardValue == 0) { + if (tempReward.rewardValue == 0 || !tempReward.canBeAddOn) { revert KeepWhatsRaisedInvalidInput(); } pledgeAmount += tempReward.rewardValue; diff --git a/test/foundry/unit/KeepWhatsRaised.t.sol b/test/foundry/unit/KeepWhatsRaised.t.sol index 4cc9acf..f25b38b 100644 --- a/test/foundry/unit/KeepWhatsRaised.t.sol +++ b/test/foundry/unit/KeepWhatsRaised.t.sol @@ -384,7 +384,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te rewardNames[0] = TEST_REWARD_NAME; Reward[] memory rewards = new Reward[](1); - rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true); + rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true, false); vm.prank(users.creator1Address); keepWhatsRaised.addRewards(rewardNames, rewards); @@ -408,7 +408,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te rewardNames[0] = TEST_REWARD_NAME; Reward[] memory rewards = new Reward[](1); - rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true); + rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true, false); // Add first time vm.prank(users.creator1Address); @@ -426,7 +426,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te rewardNames[0] = TEST_REWARD_NAME; Reward[] memory rewards = new Reward[](1); - rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true); + rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true, false); vm.prank(users.creator1Address); keepWhatsRaised.addRewards(rewardNames, rewards); @@ -454,7 +454,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te rewardNames[0] = TEST_REWARD_NAME; Reward[] memory rewards = new Reward[](1); - rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true); + rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true, false); vm.expectRevert(); vm.prank(users.creator1Address); @@ -467,7 +467,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te rewardNames[0] = TEST_REWARD_NAME; Reward[] memory rewards = new Reward[](1); - rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true); + rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true, false); vm.prank(users.creator1Address); keepWhatsRaised.addRewards(rewardNames, rewards); @@ -540,7 +540,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te rewardNames[0] = TEST_REWARD_NAME; Reward[] memory rewards = new Reward[](1); - rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, false); + rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, false, false); vm.prank(users.creator1Address); keepWhatsRaised.addRewards(rewardNames, rewards); @@ -558,6 +558,34 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.stopPrank(); } + function testPledgeForARewardRevertWhenAddOnNotAllowed() public { + bytes32 addOnRewardName = keccak256(abi.encodePacked("addOnReward")); + + bytes32[] memory rewardNames = new bytes32[](2); + rewardNames[0] = TEST_REWARD_NAME; + rewardNames[1] = addOnRewardName; + + Reward[] memory rewards = new Reward[](2); + rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true, false); + // canBeAddOn: false — should be rejected when used as an add-on + rewards[1] = _createTestReward(TEST_PLEDGE_AMOUNT / 2, false, false); + + vm.prank(users.creator1Address); + keepWhatsRaised.addRewards(rewardNames, rewards); + + vm.warp(LAUNCH_TIME); + vm.startPrank(users.backer1Address); + testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT * 2); + + bytes32[] memory rewardSelection = new bytes32[](2); + rewardSelection[0] = TEST_REWARD_NAME; + rewardSelection[1] = addOnRewardName; + + vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection); + vm.stopPrank(); + } + function testPledgeWithoutAReward() public { uint256 pledgeAmount = 500e18; uint256 balanceBefore = testToken.balanceOf(users.backer1Address); @@ -1478,7 +1506,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te HELPER FUNCTIONS //////////////////////////////////////////////////////////////*/ - function _createTestReward(uint256 value, bool isRewardTier) internal pure returns (Reward memory) { + function _createTestReward(uint256 value, bool isRewardTier, bool canBeAddOn) internal pure returns (Reward memory) { bytes32[] memory itemIds = new bytes32[](1); uint256[] memory itemValues = new uint256[](1); uint256[] memory itemQuantities = new uint256[](1); @@ -1490,6 +1518,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te return Reward({ rewardValue: value, isRewardTier: isRewardTier, + canBeAddOn: canBeAddOn, itemId: itemIds, itemValue: itemValues, itemQuantity: itemQuantities @@ -1501,7 +1530,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te rewardNames[0] = TEST_REWARD_NAME; Reward[] memory rewards = new Reward[](1); - rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true); + rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true, false); vm.prank(users.creator1Address); keepWhatsRaised.addRewards(rewardNames, rewards); diff --git a/test/foundry/utils/Defaults.sol b/test/foundry/utils/Defaults.sol index e590ba5..b4fef0a 100644 --- a/test/foundry/utils/Defaults.sol +++ b/test/foundry/utils/Defaults.sol @@ -115,6 +115,7 @@ contract Defaults is Constants, ICampaignData, IReward { REWARDS[0] = Reward({ rewardValue: 1_000e18, isRewardTier: true, + canBeAddOn: false, itemId: itemIds1, itemValue: itemValues1, itemQuantity: itemQuantities1 @@ -136,6 +137,7 @@ contract Defaults is Constants, ICampaignData, IReward { REWARDS[1] = Reward({ rewardValue: 2_500e18, isRewardTier: true, + canBeAddOn: true, itemId: itemIds2, itemValue: itemValues2, itemQuantity: itemQuantities2 @@ -151,6 +153,7 @@ contract Defaults is Constants, ICampaignData, IReward { REWARDS[2] = Reward({ rewardValue: 500e18, isRewardTier: false, + canBeAddOn: true, itemId: emptyIds, itemValue: emptyValues, itemQuantity: emptyQuantities From 6c06c875a5736a95598f8007906f13c52056e3d9 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:42:17 +0600 Subject: [PATCH 28/61] Add campaign info validation and integrate CampaignInfoFactory (OZ-42) (#52) * Add campaign info validation to TreasuryFactory - Introduced a new function `setCampaignInfoFactory` to set the address of the CampaignInfoFactory, ensuring it is not a zero address. - Added error handling for invalid campaign info in the deployment process. - Updated the TreasuryFactoryStorage to include a reference to the campaignInfoFactory. - Enhanced the ICampaignInfoFactory interface with a method to validate campaign info addresses. * Update tests to integrate CampaignInfoFactory into TreasuryFactory - Connected the CampaignInfoFactory to the TreasuryFactory by adding a call to `setCampaignInfoFactory` in the test setup. - This ensures that the TreasuryFactory can validate the CampaignInfoFactory address during testing. * Integrate CampaignInfoFactory into TreasuryFactory across deployment scripts - Added calls to `setCampaignInfoFactory` in multiple deployment scripts to ensure the CampaignInfoFactory is properly wired into the TreasuryFactory for validation during deployment. - Updated the UpgradeTreasuryFactory script to include a check for the CampaignInfoFactory address, enhancing deployment reliability. * Refactor deployment scripts to enhance CampaignInfoFactory integration - Updated multiple deployment scripts to ensure the CampaignInfoFactory is wired into the TreasuryFactory during deployment. - Modified the condition for wiring to account for both newly deployed and reused contracts, improving deployment reliability. --- script/DeployAll.s.sol | 3 +++ script/DeployAllAndSetupAllOrNothing.s.sol | 8 ++++++++ script/DeployAllAndSetupKeepWhatsRaised.s.sol | 8 ++++++++ script/DeployAllAndSetupPaymentTreasury.s.sol | 8 ++++++++ ...dSetupTimeConstrainedPaymentTreasury.s.sol | 8 ++++++++ script/UpgradeTreasuryFactory.s.sol | 6 ++++++ src/TreasuryFactory.sol | 19 +++++++++++++++++++ src/interfaces/ICampaignInfoFactory.sol | 7 +++++++ src/storage/TreasuryFactoryStorage.sol | 1 + test/foundry/Base.t.sol | 1 + test/foundry/unit/CampaignInfo.t.sol | 5 +++++ 11 files changed, 74 insertions(+) diff --git a/script/DeployAll.s.sol b/script/DeployAll.s.sol index c1bc4d5..1fb1876 100644 --- a/script/DeployAll.s.sol +++ b/script/DeployAll.s.sol @@ -90,6 +90,9 @@ contract DeployAll is DeployBase { ERC1967Proxy campaignFactoryProxy = new ERC1967Proxy(address(campaignFactoryImpl), campaignFactoryInitData); console2.log("CampaignInfoFactory proxy deployed at:", address(campaignFactoryProxy)); + // Wire CampaignInfoFactory into TreasuryFactory so deploy() validation passes + TreasuryFactory(address(treasuryFactoryProxy)).setCampaignInfoFactory(address(campaignFactoryProxy)); + // Configure registry values uint256 bufferTime = vm.envOr("BUFFER_TIME", uint256(0)); uint256 campaignLaunchBuffer = vm.envOr("CAMPAIGN_LAUNCH_BUFFER", uint256(0)); diff --git a/script/DeployAllAndSetupAllOrNothing.s.sol b/script/DeployAllAndSetupAllOrNothing.s.sol index 7f34090..0f36e31 100644 --- a/script/DeployAllAndSetupAllOrNothing.s.sol +++ b/script/DeployAllAndSetupAllOrNothing.s.sol @@ -216,6 +216,14 @@ contract DeployAllAndSetupAllOrNothing is DeployBase { console2.log("Reusing CampaignInfoFactory at:", campaignInfoFactory); } + // Wire CampaignInfoFactory into TreasuryFactory so deploy() validation passes. + // Must run when either contract is freshly deployed: a new TF needs initial wiring, + // and a new CIF deployed against a reused TF must update the existing proxy. + if (treasuryFactoryDeployed || campaignInfoFactoryDeployed) { + TreasuryFactory(treasuryFactory).setCampaignInfoFactory(campaignInfoFactory); + console2.log("CampaignInfoFactory wired into TreasuryFactory"); + } + // Deploy or reuse AllOrNothing implementation if (allOrNothingImplementation == address(0)) { allOrNothingImplementation = address(new AllOrNothing()); diff --git a/script/DeployAllAndSetupKeepWhatsRaised.s.sol b/script/DeployAllAndSetupKeepWhatsRaised.s.sol index fe349c0..7670b84 100644 --- a/script/DeployAllAndSetupKeepWhatsRaised.s.sol +++ b/script/DeployAllAndSetupKeepWhatsRaised.s.sol @@ -212,6 +212,14 @@ contract DeployAllAndSetupKeepWhatsRaised is DeployBase { console2.log("Reusing CampaignInfoFactory at:", campaignInfoFactory); } + // Wire CampaignInfoFactory into TreasuryFactory so deploy() validation passes. + // Must run when either contract is freshly deployed: a new TF needs initial wiring, + // and a new CIF deployed against a reused TF must update the existing proxy. + if (treasuryFactoryDeployed || campaignInfoFactoryDeployed) { + TreasuryFactory(treasuryFactory).setCampaignInfoFactory(campaignInfoFactory); + console2.log("CampaignInfoFactory wired into TreasuryFactory"); + } + // Deploy or reuse KeepWhatsRaised implementation if (keepWhatsRaisedImplementation == address(0)) { keepWhatsRaisedImplementation = address(new KeepWhatsRaised()); diff --git a/script/DeployAllAndSetupPaymentTreasury.s.sol b/script/DeployAllAndSetupPaymentTreasury.s.sol index 5810e1f..c17cf9c 100644 --- a/script/DeployAllAndSetupPaymentTreasury.s.sol +++ b/script/DeployAllAndSetupPaymentTreasury.s.sol @@ -247,6 +247,14 @@ contract DeployAllAndSetupPaymentTreasury is DeployBase { console2.log("Reusing CampaignInfoFactory at:", campaignInfoFactory); } + // Wire CampaignInfoFactory into TreasuryFactory so deploy() validation passes. + // Must run when either contract is freshly deployed: a new TF needs initial wiring, + // and a new CIF deployed against a reused TF must update the existing proxy. + if (treasuryFactoryDeployed || campaignInfoFactoryDeployed) { + TreasuryFactory(treasuryFactory).setCampaignInfoFactory(campaignInfoFactory); + console2.log("CampaignInfoFactory wired into TreasuryFactory"); + } + // Deploy or reuse PaymentTreasury implementation if (paymentTreasuryImplementation == address(0)) { paymentTreasuryImplementation = address(new PaymentTreasury()); diff --git a/script/DeployAllAndSetupTimeConstrainedPaymentTreasury.s.sol b/script/DeployAllAndSetupTimeConstrainedPaymentTreasury.s.sol index d15e139..8497841 100644 --- a/script/DeployAllAndSetupTimeConstrainedPaymentTreasury.s.sol +++ b/script/DeployAllAndSetupTimeConstrainedPaymentTreasury.s.sol @@ -248,6 +248,14 @@ contract DeployAllAndSetupTimeConstrainedPaymentTreasury is DeployBase { console2.log("Reusing CampaignInfoFactory at:", campaignInfoFactory); } + // Wire CampaignInfoFactory into TreasuryFactory so deploy() validation passes. + // Must run when either contract is freshly deployed: a new TF needs initial wiring, + // and a new CIF deployed against a reused TF must update the existing proxy. + if (treasuryFactoryDeployed || campaignInfoFactoryDeployed) { + TreasuryFactory(treasuryFactory).setCampaignInfoFactory(campaignInfoFactory); + console2.log("CampaignInfoFactory wired into TreasuryFactory"); + } + // Deploy or reuse TimeConstrainedPaymentTreasury implementation if (timeConstrainedPaymentTreasuryImplementation == address(0)) { timeConstrainedPaymentTreasuryImplementation = address(new TimeConstrainedPaymentTreasury()); diff --git a/script/UpgradeTreasuryFactory.s.sol b/script/UpgradeTreasuryFactory.s.sol index f885970..8a504e4 100644 --- a/script/UpgradeTreasuryFactory.s.sol +++ b/script/UpgradeTreasuryFactory.s.sol @@ -14,8 +14,10 @@ contract UpgradeTreasuryFactory is Script { function run() external { uint256 deployerKey = vm.envUint("PRIVATE_KEY"); address proxyAddress = vm.envAddress("TREASURY_FACTORY_ADDRESS"); + address campaignInfoFactoryAddress = vm.envAddress("CAMPAIGN_INFO_FACTORY_ADDRESS"); require(proxyAddress != address(0), "Proxy address must be set"); + require(campaignInfoFactoryAddress != address(0), "CAMPAIGN_INFO_FACTORY_ADDRESS must be set"); vm.startBroadcast(deployerKey); @@ -31,6 +33,10 @@ contract UpgradeTreasuryFactory is Script { console2.log("Proxy address:", proxyAddress); console2.log("New implementation address:", address(newImplementation)); + // Wire in CampaignInfoFactory so the new validation guard does not brick deploy() + proxy.setCampaignInfoFactory(campaignInfoFactoryAddress); + console2.log("CampaignInfoFactory wired into TreasuryFactory:", campaignInfoFactoryAddress); + vm.stopBroadcast(); } } diff --git a/src/TreasuryFactory.sol b/src/TreasuryFactory.sol index a79b65a..63492c6 100644 --- a/src/TreasuryFactory.sol +++ b/src/TreasuryFactory.sol @@ -8,6 +8,7 @@ import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/U import {ITreasuryFactory} from "./interfaces/ITreasuryFactory.sol"; import {IGlobalParams, AdminAccessChecker} from "./utils/AdminAccessChecker.sol"; import {TreasuryFactoryStorage} from "./storage/TreasuryFactoryStorage.sol"; +import {ICampaignInfoFactory} from "./interfaces/ICampaignInfoFactory.sol"; /** * @title TreasuryFactory @@ -23,6 +24,7 @@ contract TreasuryFactory is Initializable, ITreasuryFactory, AdminAccessChecker, error TreasuryFactoryImplementationNotSetOrApproved(); error TreasuryFactoryTreasuryInitializationFailed(); error TreasuryFactorySettingPlatformInfoFailed(); + error TreasuryFactoryInvalidCampaignInfo(); /** * @dev Constructor that disables initializers to prevent implementation contract initialization @@ -46,6 +48,19 @@ contract TreasuryFactory is Initializable, ITreasuryFactory, AdminAccessChecker, */ function _authorizeUpgrade(address newImplementation) internal override onlyProtocolAdmin {} + /** + * @notice Sets the CampaignInfoFactory address used to validate infoAddress inputs in deploy(). + * @dev Callable only by the protocol admin. + * @param campaignInfoFactory The address of the CampaignInfoFactory contract. + */ + function setCampaignInfoFactory(address campaignInfoFactory) external onlyProtocolAdmin { + if (campaignInfoFactory == address(0)) { + revert TreasuryFactoryInvalidAddress(); + } + TreasuryFactoryStorage.Storage storage $ = TreasuryFactoryStorage._getTreasuryFactoryStorage(); + $.campaignInfoFactory = campaignInfoFactory; + } + /** * @inheritdoc ITreasuryFactory */ @@ -116,6 +131,10 @@ contract TreasuryFactory is Initializable, ITreasuryFactory, AdminAccessChecker, revert TreasuryFactoryImplementationNotSetOrApproved(); } + if ($.campaignInfoFactory == address(0) || !ICampaignInfoFactory($.campaignInfoFactory).isValidCampaignInfo(infoAddress)) { + revert TreasuryFactoryInvalidCampaignInfo(); + } + clone = Clones.clone(implementation); // Fetch the platform adapter (trusted forwarder) from GlobalParams diff --git a/src/interfaces/ICampaignInfoFactory.sol b/src/interfaces/ICampaignInfoFactory.sol index 6e366b9..4f472a1 100644 --- a/src/interfaces/ICampaignInfoFactory.sol +++ b/src/interfaces/ICampaignInfoFactory.sol @@ -56,4 +56,11 @@ interface ICampaignInfoFactory is ICampaignData { * @param newImplementation The address of the camapaignInfo implementation contract. */ function updateImplementation(address newImplementation) external; + + /** + * @notice Returns whether the given address is a CampaignInfo contract created by this factory. + * @param campaignInfo The address to check. + * @return True if the address was deployed through this factory, false otherwise. + */ + function isValidCampaignInfo(address campaignInfo) external view returns (bool); } diff --git a/src/storage/TreasuryFactoryStorage.sol b/src/storage/TreasuryFactoryStorage.sol index ab1e43d..656580f 100644 --- a/src/storage/TreasuryFactoryStorage.sol +++ b/src/storage/TreasuryFactoryStorage.sol @@ -11,6 +11,7 @@ library TreasuryFactoryStorage { struct Storage { mapping(bytes32 => mapping(uint256 => address)) implementationMap; mapping(address => bool) approvedImplementations; + address campaignInfoFactory; } // keccak256(abi.encode(uint256(keccak256("oaknetwork.storage.TreasuryFactory")) - 1)) & ~bytes32(uint256(0xff)) diff --git a/test/foundry/Base.t.sol b/test/foundry/Base.t.sol index 55b7911..91cae51 100644 --- a/test/foundry/Base.t.sol +++ b/test/foundry/Base.t.sol @@ -110,6 +110,7 @@ abstract contract Base_Test is Test, Defaults { // Set time constraints in dataRegistry (requires protocol admin) vm.startPrank(users.protocolAdminAddress); + treasuryFactory.setCampaignInfoFactory(address(campaignInfoFactory)); globalParams.addToRegistry( DataRegistryKeys.CAMPAIGN_LAUNCH_BUFFER, bytes32(uint256(0)) // No buffer for most tests diff --git a/test/foundry/unit/CampaignInfo.t.sol b/test/foundry/unit/CampaignInfo.t.sol index 2a89344..42b3ed7 100644 --- a/test/foundry/unit/CampaignInfo.t.sol +++ b/test/foundry/unit/CampaignInfo.t.sol @@ -90,6 +90,11 @@ contract CampaignInfo_UnitTest is Test, Defaults { new ERC1967Proxy(address(campaignInfoFactoryImpl), campaignInfoFactoryInitData); campaignInfoFactory = CampaignInfoFactory(address(campaignInfoFactoryProxy)); + // Wire campaignInfoFactory into treasuryFactory for validation + vm.startPrank(admin); + treasuryFactory.setCampaignInfoFactory(address(campaignInfoFactory)); + vm.stopPrank(); + // Create a campaign using the factory ICampaignData.CampaignData memory campaignData = ICampaignData.CampaignData({ launchTime: block.timestamp + 1 days, From d73e80d2ff405973c4b09c258c82363b8c5339d5 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:43:01 +0600 Subject: [PATCH 29/61] Clear platform adapter value while delisting a platform (#42) --- src/GlobalParams.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/src/GlobalParams.sol b/src/GlobalParams.sol index 780ab87..f4e8668 100644 --- a/src/GlobalParams.sol +++ b/src/GlobalParams.sol @@ -455,6 +455,7 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU $.platformIsListed[platformHash] = false; $.platformAdminAddress[platformHash] = address(0); $.platformFeePercent[platformHash] = 0; + $.platformAdapter[platformHash] = address(0); $.numberOfListedPlatforms.decrement(); emit PlatformDelisted(platformHash); } From c966bfa5197caafa8e55fa21a293c6f2d73e817e Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:43:17 +0600 Subject: [PATCH 30/61] Add event for CampaignInfoFactory implementation update (#43) --- src/CampaignInfoFactory.sol | 1 + src/interfaces/ICampaignInfoFactory.sol | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/CampaignInfoFactory.sol b/src/CampaignInfoFactory.sol index c29acd1..28a28b4 100644 --- a/src/CampaignInfoFactory.sol +++ b/src/CampaignInfoFactory.sol @@ -195,6 +195,7 @@ contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, OwnableUpgr } CampaignInfoFactoryStorage.Storage storage $ = CampaignInfoFactoryStorage._getCampaignInfoFactoryStorage(); $.implementation = newImplementation; + emit CampaignInfoFactoryImplementationUpdated(newImplementation); } /** diff --git a/src/interfaces/ICampaignInfoFactory.sol b/src/interfaces/ICampaignInfoFactory.sol index 4f472a1..ac60588 100644 --- a/src/interfaces/ICampaignInfoFactory.sol +++ b/src/interfaces/ICampaignInfoFactory.sol @@ -20,6 +20,12 @@ interface ICampaignInfoFactory is ICampaignData { */ event CampaignInfoFactoryCampaignInitialized(); + /** + * @notice Emitted when the campaign implementation address is updated. + * @param newImplementation The new implementation address. + */ + event CampaignInfoFactoryImplementationUpdated(address indexed newImplementation); + /** * @notice Creates a new campaign information contract with NFT. * @dev IMPORTANT: Protocol and platform fees are retrieved at execution time and locked From 1c1d53d88633f3b4dc40cb783e09d4e1591da02a Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:43:29 +0600 Subject: [PATCH 31/61] Add check to ensure accepted tokens list cannot contain duplicates (#44) --- src/CampaignInfo.sol | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index 0609f98..d7a1da2 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -180,22 +180,28 @@ contract CampaignInfo is s_campaignData = campaignData; // Store accepted tokens - uint256 tokenLen = acceptedTokens.length; - for (uint256 i = 0; i < tokenLen; ++i) { + uint256 len = acceptedTokens.length; + for (uint256 i = 0; i < len;) { address token = acceptedTokens[i]; + if (s_isAcceptedToken[token]) { + revert CampaignInfoInvalidInput(); + } s_acceptedTokens.push(token); s_isAcceptedToken[token] = true; + unchecked { ++i; } } - uint256 len = selectedPlatformHash.length; - for (uint256 i = 0; i < len; ++i) { + len = selectedPlatformHash.length; + for (uint256 i = 0; i < len;) { s_platformFeePercent[selectedPlatformHash[i]] = _getGlobalParams().getPlatformFeePercent(selectedPlatformHash[i]); s_isSelectedPlatform[selectedPlatformHash[i]] = true; + unchecked { ++i; } } len = platformDataKey.length; - for (uint256 i = 0; i < len; ++i) { + for (uint256 i = 0; i < len;) { s_platformData[platformDataKey[i]] = platformDataValue[i]; + unchecked { ++i; } } // Initialize NFT metadata From f15865c7b2628b39a80cc9530b0ec76e2fd2feed Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:43:35 +0600 Subject: [PATCH 32/61] Add platform fee percent documentation in BasePaymentTreasury and BaseTreasury contracts (OZ-44) (#53) - Added detailed comments explaining the immutability of PLATFORM_FEE_PERCENT and its relationship with protocol fees. --- src/utils/BasePaymentTreasury.sol | 10 ++++++++++ src/utils/BaseTreasury.sol | 14 ++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index 891b41d..f62c6d0 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -31,6 +31,16 @@ abstract contract BasePaymentTreasury is address internal constant ZERO_ADDRESS = address(0); bytes32 internal PLATFORM_HASH; + /** + * @dev Snapshot of the platform fee percent captured at treasury initialization via + * INFO.getPlatformFeePercent(platformHash). This value is fixed for the lifetime of the + * treasury and will not reflect any subsequent changes to the platform fee in GlobalParams. + * + * The protocol fee accessed during fee calculations via INFO.getProtocolFeePercent() is also + * a snapshot — it is stored in the campaign's CampaignInfo clone at creation time and is + * likewise immutable for the campaign's lifecycle. Despite the asymmetry in how they are + * accessed (cached field vs. getter call), both fees are effectively campaign-level snapshots. + */ uint256 internal PLATFORM_FEE_PERCENT; // Multi-token support diff --git a/src/utils/BaseTreasury.sol b/src/utils/BaseTreasury.sol index 7c4c43a..ed81177 100644 --- a/src/utils/BaseTreasury.sol +++ b/src/utils/BaseTreasury.sol @@ -24,6 +24,16 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce uint256 internal constant STANDARD_DECIMALS = 18; bytes32 internal PLATFORM_HASH; + /** + * @dev Snapshot of the platform fee percent captured at treasury initialization via + * INFO.getPlatformFeePercent(platformHash). This value is fixed for the lifetime of the + * treasury and will not reflect any subsequent changes to the platform fee in GlobalParams. + * + * The protocol fee accessed during disburseFees() via INFO.getProtocolFeePercent() is also + * a snapshot — it is stored in the campaign's CampaignInfo clone at creation time and is + * likewise immutable for the campaign's lifecycle. Despite the asymmetry in how they are + * accessed (cached field vs. getter call), both fees are effectively campaign-level snapshots. + */ uint256 internal PLATFORM_FEE_PERCENT; bool internal s_feesDisbursed; @@ -186,6 +196,10 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce uint256 balance = s_tokenRaisedAmounts[token]; if (balance > 0) { + // Both fees are campaign-level snapshots: PLATFORM_FEE_PERCENT is cached + // in treasury storage at init; INFO.getProtocolFeePercent() reads the value + // stored in the CampaignInfo clone at campaign creation — neither reflects + // live GlobalParams state at the time of disbursement. uint256 protocolShare = (balance * INFO.getProtocolFeePercent()) / PERCENT_DIVIDER; uint256 platformShare = (balance * PLATFORM_FEE_PERCENT) / PERCENT_DIVIDER; From 13905c8ffb47906283901f27f88b49bbafd07d6c Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:44:50 +0600 Subject: [PATCH 33/61] Refactor cancellation checks in CampaignInfo and related contracts (OZ-53) (#37) - Updated cancellation checks to use the PausableCancellable interface instead of ICampaignTreasury. - Removed redundant cancelled() function definitions from ICampaignInfo, ICampaignPaymentTreasury, and ICampaignTreasury interfaces. - Adjusted internal logic in BasePaymentTreasury and BaseTreasury to align with the new cancellation checks. --- src/CampaignInfo.sol | 15 ++++++--------- src/interfaces/ICampaignInfo.sol | 5 ----- src/interfaces/ICampaignPaymentTreasury.sol | 5 ----- src/interfaces/ICampaignTreasury.sol | 5 ----- src/utils/BasePaymentTreasury.sol | 10 +--------- src/utils/BaseTreasury.sol | 10 +--------- 6 files changed, 8 insertions(+), 42 deletions(-) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index d7a1da2..2590a55 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -254,7 +254,7 @@ contract CampaignInfo is for (uint256 i = 0; i < length; i++) { tempTreasury = s_platformTreasuryAddress[tempPlatforms[i]]; // Skip cancelled treasuries - if (!ICampaignTreasury(tempTreasury).cancelled()) { + if (!PausableCancellable(tempTreasury).cancelled()) { amount += ICampaignTreasury(tempTreasury).getRaisedAmount(); } } @@ -313,7 +313,7 @@ contract CampaignInfo is for (uint256 i = 0; i < length; i++) { tempTreasury = s_platformTreasuryAddress[tempPlatforms[i]]; // Only include cancelled treasuries - if (ICampaignTreasury(tempTreasury).cancelled()) { + if (PausableCancellable(tempTreasury).cancelled()) { amount += ICampaignTreasury(tempTreasury).getRaisedAmount(); } } @@ -403,13 +403,6 @@ contract CampaignInfo is return super.paused(); } - /** - * @inheritdoc ICampaignInfo - */ - function cancelled() public view override(ICampaignInfo, PausableCancellable) returns (bool) { - return super.cancelled(); - } - /** * @inheritdoc ICampaignInfo */ @@ -675,6 +668,10 @@ contract CampaignInfo is return super.mintNFTForPledge(backer, reward, tokenAddress, amount, shippingFee, tipAmount); } + /** + * @inheritdoc ICampaignInfo + * @dev Override required: ICampaignInfo and PledgeNFT both define burn(); forwards to PledgeNFT implementation. + */ function burn(uint256 tokenId) public override(ICampaignInfo, PledgeNFT) { super.burn(tokenId); } diff --git a/src/interfaces/ICampaignInfo.sol b/src/interfaces/ICampaignInfo.sol index 346daba..dfc108c 100644 --- a/src/interfaces/ICampaignInfo.sol +++ b/src/interfaces/ICampaignInfo.sol @@ -200,11 +200,6 @@ interface ICampaignInfo is IERC721 { */ function paused() external view returns (bool); - /** - * @dev Returns true if the campaign is cancelled, and false otherwise. - */ - function cancelled() external view returns (bool); - /** * @notice Retrieves a value from the GlobalParams data registry. * @param key The registry key. diff --git a/src/interfaces/ICampaignPaymentTreasury.sol b/src/interfaces/ICampaignPaymentTreasury.sol index 48bbde4..1bffa62 100644 --- a/src/interfaces/ICampaignPaymentTreasury.sol +++ b/src/interfaces/ICampaignPaymentTreasury.sol @@ -241,9 +241,4 @@ interface ICampaignPaymentTreasury { */ function getExpectedAmount() external view returns (uint256); - /** - * @notice Checks if the treasury has been cancelled. - * @return True if the treasury is cancelled, false otherwise. - */ - function cancelled() external view returns (bool); } diff --git a/src/interfaces/ICampaignTreasury.sol b/src/interfaces/ICampaignTreasury.sol index ea7ef0c..b5a68a7 100644 --- a/src/interfaces/ICampaignTreasury.sol +++ b/src/interfaces/ICampaignTreasury.sol @@ -52,9 +52,4 @@ interface ICampaignTreasury { */ function getRefundedAmount() external view returns (uint256); - /** - * @notice Checks if the treasury has been cancelled. - * @return True if the treasury is cancelled, false otherwise. - */ - function cancelled() external view returns (bool); } diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index f62c6d0..6a0c3b0 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -1729,14 +1729,6 @@ abstract contract BasePaymentTreasury is _cancel(message); } - /** - * @notice Returns true if the treasury has been cancelled. - * @return True if cancelled, false otherwise. - */ - function cancelled() public view virtual override(ICampaignPaymentTreasury, PausableCancellable) returns (bool) { - return super.cancelled(); - } - /** * @dev Internal function to check if the campaign is paused. * If the campaign is paused, it reverts with PaymentTreasuryCampaignInfoIsPaused error. @@ -1748,7 +1740,7 @@ abstract contract BasePaymentTreasury is } function _revertIfCampaignCancelled() internal view { - if (INFO.cancelled()) { + if (PausableCancellable(address(INFO)).cancelled()) { revert PaymentTreasuryCampaignInfoIsPaused(); } } diff --git a/src/utils/BaseTreasury.sol b/src/utils/BaseTreasury.sol index ed81177..d49eef2 100644 --- a/src/utils/BaseTreasury.sol +++ b/src/utils/BaseTreasury.sol @@ -262,14 +262,6 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce _cancel(message); } - /** - * @notice Returns true if the treasury has been cancelled. - * @return True if cancelled, false otherwise. - */ - function cancelled() public view virtual override(ICampaignTreasury, PausableCancellable) returns (bool) { - return super.cancelled(); - } - /** * @dev Internal function to check if the campaign is paused. * If the campaign is paused, it reverts with TreasuryCampaignInfoIsPaused error. @@ -281,7 +273,7 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce } function _revertIfCampaignCancelled() internal view { - if (INFO.cancelled()) { + if (PausableCancellable(address(INFO)).cancelled()) { revert TreasuryCampaignInfoIsPaused(); } } From 0974aa8291d9c594505c560d24abf5c10098fbb8 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:46:32 +0600 Subject: [PATCH 34/61] Add constructors with disableInitializers calls in base treasuries (#45) --- src/utils/BasePaymentTreasury.sol | 4 ++++ src/utils/BaseTreasury.sol | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index 6a0c3b0..cea2ea3 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -289,6 +289,10 @@ abstract contract BasePaymentTreasury is */ error PaymentTreasuryNoFundsToClaim(); + constructor() { + _disableInitializers(); + } + /** * @dev Throws when the forwarder appends address(0) as the sender. */ diff --git a/src/utils/BaseTreasury.sol b/src/utils/BaseTreasury.sol index d49eef2..67b0ce0 100644 --- a/src/utils/BaseTreasury.sol +++ b/src/utils/BaseTreasury.sol @@ -82,11 +82,15 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce * @dev Throws an error indicating that the campaign is paused. */ error TreasuryCampaignInfoIsPaused(); - + /** * @dev Throws when the forwarder appends address(0) as the sender. */ error TreasuryInvalidSender(); + + constructor() { + _disableInitializers(); + } function __BaseContract_init(bytes32 platformHash, address infoAddress, address trustedForwarder_) internal { __CampaignAccessChecker_init(infoAddress); From a0b63c7ba67cad9cb6ba501cedbb55d0beff3cfe Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:46:52 +0600 Subject: [PATCH 35/61] Update platform adapter references to dynamically fetch current adapter address (#46) --- src/CampaignInfo.sol | 7 +++++++ src/TreasuryFactory.sol | 5 +---- src/interfaces/ICampaignInfo.sol | 7 +++++++ src/treasuries/AllOrNothing.sol | 4 ++-- src/treasuries/KeepWhatsRaised.sol | 4 ++-- src/treasuries/PaymentTreasury.sol | 4 ++-- src/treasuries/TimeConstrainedPaymentTreasury.sol | 4 ++-- src/utils/BasePaymentTreasury.sol | 7 ++++--- src/utils/BaseTreasury.sol | 7 ++++--- src/utils/CampaignAccessChecker.sol | 3 --- 10 files changed, 31 insertions(+), 21 deletions(-) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index 2590a55..cd88e53 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -346,6 +346,13 @@ contract CampaignInfo is return _getGlobalParams().getPlatformAdminAddress(platformHash); } + /** + * @inheritdoc ICampaignInfo + */ + function getPlatformAdapter(bytes32 platformHash) external view override returns (address) { + return _getGlobalParams().getPlatformAdapter(platformHash); + } + /** * @inheritdoc ICampaignInfo */ diff --git a/src/TreasuryFactory.sol b/src/TreasuryFactory.sol index 63492c6..fcd5fb8 100644 --- a/src/TreasuryFactory.sol +++ b/src/TreasuryFactory.sol @@ -137,11 +137,8 @@ contract TreasuryFactory is Initializable, ITreasuryFactory, AdminAccessChecker, clone = Clones.clone(implementation); - // Fetch the platform adapter (trusted forwarder) from GlobalParams - address platformAdapter = _getGlobalParams().getPlatformAdapter(platformHash); - (bool success,) = clone.call( - abi.encodeWithSignature("initialize(bytes32,address,address)", platformHash, infoAddress, platformAdapter) + abi.encodeWithSignature("initialize(bytes32,address)", platformHash, infoAddress) ); if (!success) { revert TreasuryFactoryTreasuryInitializationFailed(); diff --git a/src/interfaces/ICampaignInfo.sol b/src/interfaces/ICampaignInfo.sol index dfc108c..4b1dbe4 100644 --- a/src/interfaces/ICampaignInfo.sol +++ b/src/interfaces/ICampaignInfo.sol @@ -86,6 +86,13 @@ interface ICampaignInfo is IERC721 { */ function getPlatformAdminAddress(bytes32 platformHash) external view returns (address); + /** + * @notice Retrieves the adapter (trusted forwarder) address for a platform from GlobalParams. + * @param platformHash The bytes32 identifier of the platform. + * @return The adapter address for ERC-2771 meta-transactions, or address(0) if none is set. + */ + function getPlatformAdapter(bytes32 platformHash) external view returns (address); + /** * @notice Retrieves the campaign's launch time. * @return The timestamp when the campaign was launched. diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index 1914035..11f1025 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -121,8 +121,8 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker, ReentrancyGuar */ constructor() {} - function initialize(bytes32 _platformHash, address _infoAddress, address _trustedForwarder) external initializer { - __BaseContract_init(_platformHash, _infoAddress, _trustedForwarder); + function initialize(bytes32 _platformHash, address _infoAddress) external initializer { + __BaseContract_init(_platformHash, _infoAddress); } /** diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 37ec129..2fd59c4 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -333,8 +333,8 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa */ constructor() {} - function initialize(bytes32 _platformHash, address _infoAddress, address _trustedForwarder) external initializer { - __BaseContract_init(_platformHash, _infoAddress, _trustedForwarder); + function initialize(bytes32 _platformHash, address _infoAddress) external initializer { + __BaseContract_init(_platformHash, _infoAddress); } /** diff --git a/src/treasuries/PaymentTreasury.sol b/src/treasuries/PaymentTreasury.sol index 4063fce..6de23e7 100644 --- a/src/treasuries/PaymentTreasury.sol +++ b/src/treasuries/PaymentTreasury.sol @@ -19,8 +19,8 @@ contract PaymentTreasury is BasePaymentTreasury { */ constructor() {} - function initialize(bytes32 _platformHash, address _infoAddress, address _trustedForwarder) external initializer { - __BaseContract_init(_platformHash, _infoAddress, _trustedForwarder); + function initialize(bytes32 _platformHash, address _infoAddress) external initializer { + __BaseContract_init(_platformHash, _infoAddress); } /** diff --git a/src/treasuries/TimeConstrainedPaymentTreasury.sol b/src/treasuries/TimeConstrainedPaymentTreasury.sol index cf2f182..b473bfe 100644 --- a/src/treasuries/TimeConstrainedPaymentTreasury.sol +++ b/src/treasuries/TimeConstrainedPaymentTreasury.sol @@ -20,8 +20,8 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker */ constructor() {} - function initialize(bytes32 _platformHash, address _infoAddress, address _trustedForwarder) external initializer { - __BaseContract_init(_platformHash, _infoAddress, _trustedForwarder); + function initialize(bytes32 _platformHash, address _infoAddress) external initializer { + __BaseContract_init(_platformHash, _infoAddress); } /** diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index cea2ea3..342a62c 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -375,19 +375,20 @@ abstract contract BasePaymentTreasury is return (hasLimit, duration); } - function __BaseContract_init(bytes32 platformHash, address infoAddress, address trustedForwarder_) internal { + function __BaseContract_init(bytes32 platformHash, address infoAddress) internal { __CampaignAccessChecker_init(infoAddress); PLATFORM_HASH = platformHash; PLATFORM_FEE_PERCENT = INFO.getPlatformFeePercent(platformHash); - _trustedForwarder = trustedForwarder_; } /** * @dev Override _msgSender to support ERC-2771 meta-transactions. * When called by the trusted forwarder (adapter), extracts the actual sender from calldata. + * The adapter address is read dynamically from GlobalParams via CampaignInfo so that + * adapter rotations take effect immediately for all deployed treasuries. */ function _msgSender() internal view virtual override returns (address sender) { - if (msg.sender == _trustedForwarder && msg.data.length >= 20) { + if (msg.sender == INFO.getPlatformAdapter(PLATFORM_HASH) && msg.data.length >= 20) { assembly { sender := shr(96, calldataload(sub(calldatasize(), 20))) } diff --git a/src/utils/BaseTreasury.sol b/src/utils/BaseTreasury.sol index 67b0ce0..6de86b6 100644 --- a/src/utils/BaseTreasury.sol +++ b/src/utils/BaseTreasury.sol @@ -92,19 +92,20 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce _disableInitializers(); } - function __BaseContract_init(bytes32 platformHash, address infoAddress, address trustedForwarder_) internal { + function __BaseContract_init(bytes32 platformHash, address infoAddress) internal { __CampaignAccessChecker_init(infoAddress); PLATFORM_HASH = platformHash; PLATFORM_FEE_PERCENT = INFO.getPlatformFeePercent(platformHash); - _trustedForwarder = trustedForwarder_; } /** * @dev Override _msgSender to support ERC-2771 meta-transactions. * When called by the trusted forwarder (adapter), extracts the actual sender from calldata. + * The adapter address is read dynamically from GlobalParams via CampaignInfo so that + * adapter rotations take effect immediately for all deployed treasuries. */ function _msgSender() internal view virtual override returns (address sender) { - if (msg.sender == _trustedForwarder && msg.data.length >= 20) { + if (msg.sender == INFO.getPlatformAdapter(PLATFORM_HASH) && msg.data.length >= 20) { assembly { sender := shr(96, calldataload(sub(calldatasize(), 20))) } diff --git a/src/utils/CampaignAccessChecker.sol b/src/utils/CampaignAccessChecker.sol index dd0869e..437fd4b 100644 --- a/src/utils/CampaignAccessChecker.sol +++ b/src/utils/CampaignAccessChecker.sol @@ -13,9 +13,6 @@ abstract contract CampaignAccessChecker is Context { // Immutable reference to the ICampaignInfo contract, which provides campaign-related information and admin addresses. ICampaignInfo internal INFO; - /// @dev Trusted forwarder address for ERC-2771 meta-transactions (set by derived contracts) - address internal _trustedForwarder; - /** * @dev Throws when the caller is not authorized. */ From 0cc355cf35ba459f6c287634eaae01d0566a2be6 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:47:16 +0600 Subject: [PATCH 36/61] Add nonReentrant check to disburseFees in BaseTreasury (OZ-03) (#55) * Add nonReentrant check to disburseFees in BaseTreasury * fix: remove duplicate ReentrancyGuard from AllOrNothing and KeepWhatsRaised BaseTreasury already inherits ReentrancyGuard; direct inheritance caused linearization error. Treasuries now inherit ReentrancyGuard only via base. --- src/treasuries/AllOrNothing.sol | 3 +-- src/treasuries/KeepWhatsRaised.sol | 3 +-- src/utils/BaseTreasury.sol | 9 +++++---- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index 11f1025..82d4edc 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -2,7 +2,6 @@ pragma solidity ^0.8.22; import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; import {Counters} from "../utils/Counters.sol"; import {TimestampChecker} from "../utils/TimestampChecker.sol"; @@ -15,7 +14,7 @@ import {IReward} from "../interfaces/IReward.sol"; * @title AllOrNothing * @notice A contract for handling "all-or-nothing" crowdfunding campaigns. Funds are only claimable by the campaign owner if the funding goal is met by the deadline; otherwise, backers can claim refunds. */ -contract AllOrNothing is IReward, BaseTreasury, TimestampChecker, ReentrancyGuard { +contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { using Counters for Counters.Counter; using SafeERC20 for IERC20; diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 2fd59c4..4bf0feb 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -3,7 +3,6 @@ pragma solidity ^0.8.22; import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; import {Counters} from "../utils/Counters.sol"; import {TimestampChecker} from "../utils/TimestampChecker.sol"; @@ -17,7 +16,7 @@ import {ICampaignData} from "../interfaces/ICampaignData.sol"; * @title KeepWhatsRaised * @notice A contract that keeps all the funds raised, regardless of the success condition. */ -contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignData, ReentrancyGuard { +contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignData { using Counters for Counters.Counter; using SafeERC20 for IERC20; diff --git a/src/utils/BaseTreasury.sol b/src/utils/BaseTreasury.sol index 6de86b6..a7cdf01 100644 --- a/src/utils/BaseTreasury.sol +++ b/src/utils/BaseTreasury.sol @@ -4,6 +4,7 @@ pragma solidity ^0.8.22; import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; import {ICampaignTreasury} from "../interfaces/ICampaignTreasury.sol"; import {CampaignAccessChecker} from "./CampaignAccessChecker.sol"; @@ -16,7 +17,7 @@ import {PausableCancellable} from "./PausableCancellable.sol"; * @dev Supports ERC-2771 meta-transactions via adapter contracts for platform admin operations. * @dev Contracts implementing this base contract should provide specific success conditions. */ -abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAccessChecker, PausableCancellable { +abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAccessChecker, PausableCancellable, ReentrancyGuard { using SafeERC20 for IERC20; bytes32 internal constant ZERO_BYTES = 0x0000000000000000000000000000000000000000000000000000000000000000; @@ -188,11 +189,13 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce /** * @inheritdoc ICampaignTreasury */ - function disburseFees() public virtual override whenCampaignNotPaused whenCampaignNotCancelled { + function disburseFees() public virtual override nonReentrant whenCampaignNotPaused whenCampaignNotCancelled { if (!_checkSuccessCondition()) { revert TreasurySuccessConditionNotFulfilled(); } + s_feesDisbursed = true; + address[] memory acceptedTokens = INFO.getAcceptedTokens(); // Disburse fees for each token @@ -219,8 +222,6 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce emit FeesDisbursed(token, protocolShare, platformShare); } } - - s_feesDisbursed = true; } /** From e7d38fe3c6f1af927eba4ca32ee6890c24c2b00f Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:47:44 +0600 Subject: [PATCH 37/61] Reject treasury as tokenSource/backer and add balance checks to confirm token transfers (#56) --- src/treasuries/AllOrNothing.sol | 22 +++++++++++++++++----- src/treasuries/KeepWhatsRaised.sol | 22 +++++++++++++++++----- src/utils/BasePaymentTreasury.sol | 9 +++++++++ 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index 82d4edc..ba80f50 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -406,6 +406,11 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { revert AllOrNothingTokenNotAccepted(pledgeToken); } + // Reject treasury address as payer to prevent accounting inflation via self-transfer + if (backer == address(this)) { + revert AllOrNothingInvalidInput(); + } + // If this is for a reward, pledgeAmount and shippingFee are in 18 decimals // If not for a reward, amounts are already in token decimals uint256 pledgeAmountInTokenDecimals; @@ -422,17 +427,24 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { uint256 totalAmount = pledgeAmountInTokenDecimals + shippingFeeInTokenDecimals; + uint256 balanceBefore = IERC20(pledgeToken).balanceOf(address(this)); IERC20(pledgeToken).safeTransferFrom(backer, address(this), totalAmount); + uint256 actualReceived = IERC20(pledgeToken).balanceOf(address(this)) - balanceBefore; + + if (actualReceived < shippingFeeInTokenDecimals) { + revert AllOrNothingTransferFailed(); + } + uint256 actualPledgeAmount = actualReceived - shippingFeeInTokenDecimals; uint256 tokenId = INFO.mintNFTForPledge( - backer, reward, pledgeToken, pledgeAmountInTokenDecimals, shippingFeeInTokenDecimals, 0 + backer, reward, pledgeToken, actualPledgeAmount, shippingFeeInTokenDecimals, 0 ); - s_tokenToPledgedAmount[tokenId] = pledgeAmountInTokenDecimals; - s_tokenToTotalCollectedAmount[tokenId] = totalAmount; + s_tokenToPledgedAmount[tokenId] = actualPledgeAmount; + s_tokenToTotalCollectedAmount[tokenId] = actualReceived; s_tokenIdToPledgeToken[tokenId] = pledgeToken; - s_tokenRaisedAmounts[pledgeToken] += pledgeAmountInTokenDecimals; - s_tokenLifetimeRaisedAmounts[pledgeToken] += pledgeAmountInTokenDecimals; + s_tokenRaisedAmounts[pledgeToken] += actualPledgeAmount; + s_tokenLifetimeRaisedAmounts[pledgeToken] += actualPledgeAmount; emit Receipt(backer, pledgeToken, reward, pledgeAmount, shippingFee, tokenId, rewards); } diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 4bf0feb..8ff2943 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -1205,6 +1205,11 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa revert KeepWhatsRaisedTokenNotAccepted(pledgeToken); } + // Reject treasury address as payer to prevent accounting inflation via self-transfer + if (tokenSource == address(this) || backer == address(this)) { + revert KeepWhatsRaisedInvalidInput(); + } + // If this is for a reward, pledgeAmount is in 18 decimals and needs to be denormalized // If not for a reward (pledgeWithoutAReward), pledgeAmount is already in token decimals // Tip is always in the pledgeToken's decimals (same token used for payment) @@ -1219,18 +1224,25 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa uint256 totalAmount = pledgeAmountInTokenDecimals + tip; + uint256 balanceBefore = IERC20(pledgeToken).balanceOf(address(this)); IERC20(pledgeToken).safeTransferFrom(tokenSource, address(this), totalAmount); + uint256 actualReceived = IERC20(pledgeToken).balanceOf(address(this)) - balanceBefore; + + if (actualReceived < tip) { + revert KeepWhatsRaisedInvalidInput(); + } + uint256 actualPledgeAmount = actualReceived - tip; - uint256 tokenId = INFO.mintNFTForPledge(backer, reward, pledgeToken, pledgeAmountInTokenDecimals, 0, tip); + uint256 tokenId = INFO.mintNFTForPledge(backer, reward, pledgeToken, actualPledgeAmount, 0, tip); - s_tokenToPledgedAmount[tokenId] = pledgeAmountInTokenDecimals; + s_tokenToPledgedAmount[tokenId] = actualPledgeAmount; s_tokenToTippedAmount[tokenId] = tip; s_tokenIdToPledgeToken[tokenId] = pledgeToken; s_tipPerToken[pledgeToken] += tip; - s_tokenRaisedAmounts[pledgeToken] += pledgeAmountInTokenDecimals; - s_tokenLifetimeRaisedAmounts[pledgeToken] += pledgeAmountInTokenDecimals; + s_tokenRaisedAmounts[pledgeToken] += actualPledgeAmount; + s_tokenLifetimeRaisedAmounts[pledgeToken] += actualPledgeAmount; - uint256 netAvailable = _calculateNetAvailable(pledgeId, pledgeToken, tokenId, pledgeAmountInTokenDecimals); + uint256 netAvailable = _calculateNetAvailable(pledgeId, pledgeToken, tokenId, actualPledgeAmount); s_availablePerToken[pledgeToken] += netAvailable; emit Receipt(backer, pledgeToken, reward, pledgeAmount, tip, tokenId, rewards); diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index 342a62c..810c9aa 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -805,6 +805,11 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryInvalidInput(); } + // Reject treasury address as payer to prevent accounting inflation via self-transfer + if (buyerAddress == address(this)) { + revert PaymentTreasuryInvalidInput(); + } + // Validate token is accepted if (!INFO.isTokenAccepted(paymentToken)) { revert PaymentTreasuryTokenNotAccepted(paymentToken); @@ -918,7 +923,11 @@ abstract contract BasePaymentTreasury is externalFeeMetadata.push(externalFees[i]); } + uint256 balanceBefore = IERC20(paymentToken).balanceOf(address(this)); IERC20(paymentToken).safeTransferFrom(buyerAddress, address(this), totalAmount); + if (IERC20(paymentToken).balanceOf(address(this)) - balanceBefore < totalAmount) { + revert PaymentTreasuryInvalidInput(); + } s_payment[internalPaymentId] = PaymentInfo({ buyerId: ZERO_BYTES, From de167551cfb7dc118c12c47e36b9cd75ea4cb6b4 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:51:06 +0600 Subject: [PATCH 38/61] Add data ownership check in removePlatformData (OZ-10) (#61) * Add data ownership check in removePlatformData * Modify error message for data ownership check in removePlatformData --- src/GlobalParams.sol | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/GlobalParams.sol b/src/GlobalParams.sol index f4e8668..4468f54 100644 --- a/src/GlobalParams.sol +++ b/src/GlobalParams.sol @@ -499,6 +499,9 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU if (!$.platformData[platformDataKey]) { revert GlobalParamsPlatformDataNotSet(); } + if ($.platformDataOwner[platformDataKey] != platformHash) { + revert GlobalParamsUnauthorized(); + } $.platformData[platformDataKey] = false; $.platformDataOwner[platformDataKey] = ZERO_BYTES; emit PlatformDataRemoved(platformHash, platformDataKey); From f63b4abd751d4fee87d4fdccd863c26e54afe010 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 13:54:00 +0600 Subject: [PATCH 39/61] Add documentation for __BaseContract_init (#59) --- src/utils/BasePaymentTreasury.sol | 5 +++++ src/utils/BaseTreasury.sol | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index 810c9aa..853b0b1 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -375,6 +375,11 @@ abstract contract BasePaymentTreasury is return (hasLimit, duration); } + /** + * @dev Initializes the base payment treasury with platform and campaign context. + * @param platformHash The platform identifier used for fee lookup and access control. + * @param infoAddress The CampaignInfo contract address for campaign data and admin lookups. + */ function __BaseContract_init(bytes32 platformHash, address infoAddress) internal { __CampaignAccessChecker_init(infoAddress); PLATFORM_HASH = platformHash; diff --git a/src/utils/BaseTreasury.sol b/src/utils/BaseTreasury.sol index a7cdf01..5ad9781 100644 --- a/src/utils/BaseTreasury.sol +++ b/src/utils/BaseTreasury.sol @@ -93,6 +93,11 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce _disableInitializers(); } + /** + * @dev Initializes the base treasury with platform and campaign context. + * @param platformHash The platform identifier used for fee lookup and access control. + * @param infoAddress The CampaignInfo contract address for campaign data and admin lookups. + */ function __BaseContract_init(bytes32 platformHash, address infoAddress) internal { __CampaignAccessChecker_init(infoAddress); PLATFORM_HASH = platformHash; From 4e7e6ca7405f95a61aaab6b2c68bd43af3b2e2dc Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 13:54:19 +0600 Subject: [PATCH 40/61] Add validation for withdrawal and refund delays in KeepWhatsRaised contract (OZ-15) (#20) * Add validation for withdrawal and refund delays in KeepWhatsRaised contract - Introduced a new error to revert transactions when withdrawalDelay is less than refundDelay, ensuring claimFund can only be called after the refund window ends. - Updated the configuration documentation to reflect this new requirement for withdrawal and refund delays. * Update withdrawal delay in Defaults contract from 7 days to 14 days for improved fund management --- src/treasuries/KeepWhatsRaised.sol | 12 ++++++++++++ test/foundry/utils/Defaults.sol | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 8ff2943..e845a78 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -283,6 +283,14 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa */ error KeepWhatsRaisedConfigLocked(); + /** + * @dev Reverts when withdrawalDelay is less than refundDelay, which would allow claimFund + * to be callable before the refund window ends (refund window: (deadline, deadline + refundDelay]). + * @param withdrawalDelay The configured withdrawal delay. + * @param refundDelay The configured refund delay. + */ + error KeepWhatsRaisedWithdrawalBeforeRefundEnd(uint256 withdrawalDelay, uint256 refundDelay); + /** * @dev Emitted when a disbursement is attempted before the refund period has ended. */ @@ -521,6 +529,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa * * @param config The configuration settings including withdrawal delay, refund delay, * fee exemption threshold, and configuration lock period. + * Must satisfy withdrawalDelay >= refundDelay so claimFund is only callable after the refund window ends. * @param campaignData The campaign-related metadata such as deadlines and funding goals. * @param feeKeys The set of keys used to reference applicable flat and percentage-based fees. * @param feeValues The fee values corresponding to the fee keys. @@ -544,6 +553,9 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa if (feeKeys.grossPercentageFeeKeys.length != feeValues.grossPercentageFeeValues.length) { revert KeepWhatsRaisedInvalidInput(); } + if (config.withdrawalDelay < config.refundDelay) { + revert KeepWhatsRaisedWithdrawalBeforeRefundEnd(config.withdrawalDelay, config.refundDelay); + } // Enforce key uniqueness: flat keys must differ and must not appear in percentage keys if (feeKeys.flatFeeKey == feeKeys.cumulativeFlatFeeKey) { diff --git a/test/foundry/utils/Defaults.sol b/test/foundry/utils/Defaults.sol index b4fef0a..e8e337b 100644 --- a/test/foundry/utils/Defaults.sol +++ b/test/foundry/utils/Defaults.sol @@ -59,7 +59,7 @@ contract Defaults is Constants, ICampaignData, IReward { // Config values for KeepWhatsRaised uint256 public constant MINIMUM_WITHDRAWAL_FOR_FEE_EXEMPTION = 50_000e18; - uint256 public constant WITHDRAWAL_DELAY = 7 days; + uint256 public constant WITHDRAWAL_DELAY = 14 days; uint256 public constant REFUND_DELAY = 14 days; uint256 public constant CONFIG_LOCK_PERIOD = 2 days; From 398679fb38246ea33d11ca0756154b9163dfbfdc Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 14:00:20 +0600 Subject: [PATCH 41/61] Add s_feesDisbursed check in BaseTreasury for disburseFees (OZ-14) (#58) * Add s_feesDisbursed check in BaseTreasury for disburseFees * refactor(AllOrNothing): drop duplicate disburseFees check Rely on BaseTreasury.disburseFees s_feesDisbursed check and remove AllOrNothingFeeAlreadyDisbursed. --- src/treasuries/AllOrNothing.sol | 7 ------- src/utils/BaseTreasury.sol | 8 ++++++++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index ba80f50..e32d84c 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -95,10 +95,6 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { */ error AllOrNothingFeeNotDisbursed(); - /** - * @dev Emitted within `disburseFees` after fee is disbursed already. - */ - error AllOrNothingFeeAlreadyDisbursed(); /** * @dev Emitted when a `Reward` already exists for given input. */ @@ -360,9 +356,6 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { * @inheritdoc ICampaignTreasury */ function disburseFees() public override currentTimeIsGreater(INFO.getDeadline()) whenNotPaused whenNotCancelled { - if (s_feesDisbursed) { - revert AllOrNothingFeeAlreadyDisbursed(); - } super.disburseFees(); } diff --git a/src/utils/BaseTreasury.sol b/src/utils/BaseTreasury.sol index 5ad9781..fbfcc32 100644 --- a/src/utils/BaseTreasury.sol +++ b/src/utils/BaseTreasury.sol @@ -79,6 +79,11 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce */ error TreasuryFeeNotDisbursed(); + /** + * @dev Throws an error indicating that fees have already been disbursed. + */ + error TreasuryFeeAlreadyDisbursed(); + /** * @dev Throws an error indicating that the campaign is paused. */ @@ -195,6 +200,9 @@ abstract contract BaseTreasury is Initializable, ICampaignTreasury, CampaignAcce * @inheritdoc ICampaignTreasury */ function disburseFees() public virtual override nonReentrant whenCampaignNotPaused whenCampaignNotCancelled { + if (s_feesDisbursed) { + revert TreasuryFeeAlreadyDisbursed(); + } if (!_checkSuccessCondition()) { revert TreasurySuccessConditionNotFulfilled(); } From 8a4f8d3a91d2a71817dd18eafc418832f28863af Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 14:00:55 +0600 Subject: [PATCH 42/61] Remove reward length check from pledges (#60) --- src/treasuries/AllOrNothing.sol | 3 +-- src/treasuries/KeepWhatsRaised.sol | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index e32d84c..45b882f 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -276,8 +276,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { uint256 rewardLen = reward.length; Reward storage tempReward = s_reward[reward[0]]; if ( - backer == address(0) || rewardLen > s_rewardCounter.current() || reward[0] == ZERO_BYTES - || !tempReward.isRewardTier + backer == address(0) || reward[0] == ZERO_BYTES || !tempReward.isRewardTier ) { revert AllOrNothingInvalidInput(); } diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index e845a78..bab7d2b 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -810,8 +810,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa uint256 rewardLen = reward.length; Reward memory tempReward = s_reward[reward[0]]; if ( - backer == address(0) || rewardLen > s_rewardCounter.current() || reward[0] == ZERO_BYTES - || !tempReward.isRewardTier + backer == address(0) || reward[0] == ZERO_BYTES || !tempReward.isRewardTier ) { revert KeepWhatsRaisedInvalidInput(); } From 4dc46a9dfcb70a3ec4b18cacfbe058c4365ba190 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 14:04:00 +0600 Subject: [PATCH 43/61] Enhance treasury configuration and add reset functionality (OZ-27) (#54) * Add configuration checks to KeepWhatsRaised contract - Introduced a new state variable `s_configured` to track if the treasury has been configured. - Added a new error `KeepWhatsRaisedAlreadyConfigured` to prevent reconfiguration attempts. - Updated the `configureTreasury` function to revert if called after the treasury has been configured, enhancing contract safety. * Add treasury reset functionality and update tests - Introduced a new internal function `_resetTreasury` to deploy a fresh campaign and treasury, facilitating initial configuration in tests. - Updated existing tests to utilize `_resetTreasury` for setting up fresh treasuries, ensuring accurate state validation and error handling. - Enhanced clarity in test comments to reflect the purpose of treasury resets during configuration. --- src/treasuries/KeepWhatsRaised.sol | 9 ++++ .../KeepWhatsRaised/KeepWhatsRaised.t.sol | 37 ++++++++++++++ .../KeepWhatsRaisedFunction.t.sol | 3 +- test/foundry/unit/KeepWhatsRaised.t.sol | 50 ++++++++++--------- 4 files changed, 74 insertions(+), 25 deletions(-) diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index bab7d2b..9ccd4fe 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -97,6 +97,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa bool private s_isWithdrawalApproved; bool private s_tipClaimed; bool private s_fundClaimed; + bool private s_configured; FeeKeys private s_feeKeys; Config private s_config; CampaignData private s_campaignData; @@ -282,6 +283,10 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa * @dev Emitted when a configuration change is attempted during the lock period. */ error KeepWhatsRaisedConfigLocked(); + /** + * @dev Thrown when configureTreasury is called after the treasury has already been configured. + */ + error KeepWhatsRaisedAlreadyConfigured(); /** * @dev Reverts when withdrawalDelay is less than refundDelay, which would allow claimFund @@ -547,6 +552,9 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenCampaignNotCancelled whenNotCancelled { + if (s_configured) { + revert KeepWhatsRaisedAlreadyConfigured(); + } if (campaignData.launchTime < block.timestamp || campaignData.deadline <= campaignData.launchTime) { revert KeepWhatsRaisedInvalidInput(); } @@ -586,6 +594,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa revert KeepWhatsRaisedAggregatePercentageExceedsMax(); } + s_configured = true; s_config = config; s_feeKeys = feeKeys; s_campaignData = campaignData; diff --git a/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaised.t.sol b/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaised.t.sol index 02bdcd9..aca9e9b 100644 --- a/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaised.t.sol +++ b/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaised.t.sol @@ -17,6 +17,7 @@ abstract contract KeepWhatsRaised_Integration_Shared_Test is IReward, LogDecoder KeepWhatsRaised internal keepWhatsRaised; uint256 pledgeForARewardTokenId; + uint256 private _resetCounter; /// @dev Initial dependent functions setup included for KeepWhatsRaised Integration Tests. function setUp() public virtual override { @@ -493,4 +494,40 @@ abstract contract KeepWhatsRaised_Integration_Shared_Test is IReward, LogDecoder KeepWhatsRaised(treasury).cancelTreasury(message); vm.stopPrank(); } + + /** + * @notice Deploys a fresh campaign and unconfigured KeepWhatsRaised treasury, + * reassigning campaignAddress, treasuryAddress, and keepWhatsRaised. + * Use this in tests that need to call configureTreasury for the first time. + */ + function _resetTreasury() internal { + _resetCounter++; + bytes32 newIdentifierHash = keccak256(abi.encodePacked("resetTreasury", _resetCounter)); + bytes32[] memory selectedPlatformHash = new bytes32[](1); + selectedPlatformHash[0] = PLATFORM_2_HASH; + bytes32[] memory emptyArray = new bytes32[](0); + + vm.prank(users.creator1Address); + campaignInfoFactory.createCampaign( + users.creator1Address, + newIdentifierHash, + selectedPlatformHash, + emptyArray, + emptyArray, + CAMPAIGN_DATA, + "Fresh Treasury NFT", + "FRESH", + "ipfs://QmFresh", + "ipfs://QmFreshContract" + ); + + address newCampaignAddress = campaignInfoFactory.identifierToCampaignInfo(newIdentifierHash); + + vm.prank(users.platform2AdminAddress); + address newTreasury = treasuryFactory.deploy(PLATFORM_2_HASH, newCampaignAddress, 1); + + campaignAddress = newCampaignAddress; + treasuryAddress = newTreasury; + keepWhatsRaised = KeepWhatsRaised(newTreasury); + } } diff --git a/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol b/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol index 35cd7b7..0e1f07e 100644 --- a/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol +++ b/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol @@ -179,7 +179,8 @@ contract KeepWhatsRaisedFunction_Integration_Shared_Test is KeepWhatsRaised_Inte } function test_withdrawWithColombianCreatorTax() external { - // Configure with Colombian creator + // Deploy a fresh treasury so configureTreasury can be called for the first time. + _resetTreasury(); KeepWhatsRaised.FeeValues memory feeValues = createFeeValues(); configureTreasury( users.platform2AdminAddress, address(keepWhatsRaised), CONFIG_COLOMBIAN, CAMPAIGN_DATA, FEE_KEYS, feeValues diff --git a/test/foundry/unit/KeepWhatsRaised.t.sol b/test/foundry/unit/KeepWhatsRaised.t.sol index f25b38b..a5cdc99 100644 --- a/test/foundry/unit/KeepWhatsRaised.t.sol +++ b/test/foundry/unit/KeepWhatsRaised.t.sol @@ -82,21 +82,11 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te //////////////////////////////////////////////////////////////*/ function testConfigureTreasury() public { - ICampaignData.CampaignData memory newCampaignData = ICampaignData.CampaignData({ - launchTime: block.timestamp + 1 days, - deadline: block.timestamp + 31 days, - goalAmount: 5000, - currency: bytes32("USD") - }); - - KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); - - vm.prank(users.platform2AdminAddress); - keepWhatsRaised.configureTreasury(CONFIG, newCampaignData, FEE_KEYS, feeValues); - - assertEq(keepWhatsRaised.getLaunchTime(), newCampaignData.launchTime); - assertEq(keepWhatsRaised.getDeadline(), newCampaignData.deadline); - assertEq(keepWhatsRaised.getGoalAmount(), newCampaignData.goalAmount); + // configureTreasury was called once during setUp with CONFIG + CAMPAIGN_DATA. + // Verify the stored state reflects that initial configuration. + assertEq(keepWhatsRaised.getLaunchTime(), CAMPAIGN_DATA.launchTime); + assertEq(keepWhatsRaised.getDeadline(), CAMPAIGN_DATA.deadline); + assertEq(keepWhatsRaised.getGoalAmount(), CAMPAIGN_DATA.goalAmount); // Verify fee values are stored assertEq(keepWhatsRaised.getFeeValue(FLAT_FEE_KEY), uint256(FLAT_FEE_VALUE)); @@ -105,18 +95,22 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te assertEq(keepWhatsRaised.getFeeValue(VAKI_COMMISSION_KEY), uint256(VAKI_COMMISSION_VALUE)); } + function testConfigureTreasury_RevertsWhenAlreadyConfigured() public { + KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); + + vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedAlreadyConfigured.selector); + vm.prank(users.platform2AdminAddress); + keepWhatsRaised.configureTreasury(CONFIG, CAMPAIGN_DATA, FEE_KEYS, feeValues); + } + function testConfigureTreasuryWithColombianCreator() public { - ICampaignData.CampaignData memory newCampaignData = ICampaignData.CampaignData({ - launchTime: block.timestamp + 1 days, - deadline: block.timestamp + 31 days, - goalAmount: 5000, - currency: bytes32("USD") - }); + // Deploy a fresh treasury so configureTreasury can be called for the first time. + _resetTreasury(); KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); vm.prank(users.platform2AdminAddress); - keepWhatsRaised.configureTreasury(CONFIG_COLOMBIAN, newCampaignData, FEE_KEYS, feeValues); + keepWhatsRaised.configureTreasury(CONFIG_COLOMBIAN, CAMPAIGN_DATA, FEE_KEYS, feeValues); // Test that Colombian creator tax is not applied in pledges _setupReward(); @@ -150,6 +144,9 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testConfigureTreasuryRevertWhenInvalidCampaignData() public { + // Deploy a fresh unconfigured treasury so input validation is reachable. + _resetTreasury(); + // Invalid launch time (in the past) ICampaignData.CampaignData memory invalidCampaignData = ICampaignData.CampaignData({ launchTime: block.timestamp - 1, @@ -166,6 +163,9 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testConfigureTreasuryRevertWhenMismatchedFeeArrays() public { + // Deploy a fresh unconfigured treasury so input validation is reachable. + _resetTreasury(); + // Create mismatched fee arrays KeepWhatsRaised.FeeKeys memory mismatchedKeys = FEE_KEYS; KeepWhatsRaised.FeeValues memory mismatchedValues = _createFeeValues(); @@ -853,7 +853,8 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testWithdrawWithColombianCreatorTax() public { - // Configure with Colombian creator + // Deploy a fresh treasury and configure it with Colombian creator settings. + _resetTreasury(); KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); vm.prank(users.platform2AdminAddress); keepWhatsRaised.configureTreasury(CONFIG_COLOMBIAN, CAMPAIGN_DATA, FEE_KEYS, feeValues); @@ -1392,7 +1393,8 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te function testComplexFeeScenario() public { // Testing multiple pledges with different fee structures - // Configure Colombian creator for complex fee testing + // Deploy a fresh treasury and configure with Colombian creator settings. + _resetTreasury(); KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); vm.prank(users.platform2AdminAddress); keepWhatsRaised.configureTreasury(CONFIG_COLOMBIAN, CAMPAIGN_DATA, FEE_KEYS, feeValues); From c8d5244876492414eb5dc25e444d2e049a9ff87a Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 14:05:39 +0600 Subject: [PATCH 44/61] Rename variables and internal functions for increased clarity (#62) --- .../TimeConstrainedPaymentTreasury.sol | 32 +++++----- src/utils/BasePaymentTreasury.sol | 60 +++++++++---------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/src/treasuries/TimeConstrainedPaymentTreasury.sol b/src/treasuries/TimeConstrainedPaymentTreasury.sol index b473bfe..e390761 100644 --- a/src/treasuries/TimeConstrainedPaymentTreasury.sol +++ b/src/treasuries/TimeConstrainedPaymentTreasury.sol @@ -25,9 +25,9 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker } /** - * @dev Internal function to check if current time is within the allowed range. + * @dev Internal function to check if current time is within the campaign window (launchTime to deadline + bufferTime). */ - function _checkTimeWithinRange() internal view { + function _checkTimeWithinCampaignWindow() internal view { uint256 launchTime = INFO.getLaunchTime(); uint256 deadline = INFO.getDeadline(); uint256 bufferTime = INFO.getBufferTime(); @@ -35,9 +35,9 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker } /** - * @dev Internal function to check if current time is greater than launch time. + * @dev Internal function to check if current time is after launch time. */ - function _checkTimeIsGreater() internal view { + function _checkTimeIsAfterLaunch() internal view { uint256 launchTime = INFO.getLaunchTime(); _revertIfCurrentTimeIsNotGreater(launchTime); } @@ -55,7 +55,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker ICampaignPaymentTreasury.LineItem[] calldata lineItems, ICampaignPaymentTreasury.ExternalFees[] calldata externalFees ) public override whenNotPaused whenNotCancelled { - _checkTimeWithinRange(); + _checkTimeWithinCampaignWindow(); super.createPayment(paymentId, buyerId, itemId, paymentToken, amount, expiration, lineItems, externalFees); } @@ -72,7 +72,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker ICampaignPaymentTreasury.LineItem[][] calldata lineItemsArray, ICampaignPaymentTreasury.ExternalFees[][] calldata externalFeesArray ) public override whenNotPaused whenNotCancelled { - _checkTimeWithinRange(); + _checkTimeWithinCampaignWindow(); super.createPaymentBatch( paymentIds, buyerIds, itemIds, paymentTokens, amounts, expirations, lineItemsArray, externalFeesArray ); @@ -90,7 +90,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker ICampaignPaymentTreasury.LineItem[] calldata lineItems, ICampaignPaymentTreasury.ExternalFees[] calldata externalFees ) public override whenNotPaused whenNotCancelled { - _checkTimeWithinRange(); + _checkTimeWithinCampaignWindow(); super.processCryptoPayment(paymentId, itemId, buyerAddress, paymentToken, amount, lineItems, externalFees); } @@ -98,7 +98,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker * @inheritdoc ICampaignPaymentTreasury */ function cancelPayment(bytes32 paymentId) public override whenNotPaused whenNotCancelled { - _checkTimeWithinRange(); + _checkTimeWithinCampaignWindow(); super.cancelPayment(paymentId); } @@ -106,7 +106,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker * @inheritdoc ICampaignPaymentTreasury */ function confirmPayment(bytes32 paymentId, address buyerAddress) public override whenNotPaused whenNotCancelled { - _checkTimeWithinRange(); + _checkTimeWithinCampaignWindow(); super.confirmPayment(paymentId, buyerAddress); } @@ -119,7 +119,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker whenNotPaused whenNotCancelled { - _checkTimeWithinRange(); + _checkTimeWithinCampaignWindow(); super.confirmPaymentBatch(paymentIds, buyerAddresses); } @@ -127,7 +127,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker * @inheritdoc ICampaignPaymentTreasury */ function claimRefund(bytes32 paymentId, address refundAddress) public override whenNotPaused whenNotCancelled { - _checkTimeIsGreater(); + _checkTimeIsAfterLaunch(); super.claimRefund(paymentId, refundAddress); } @@ -135,7 +135,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker * @inheritdoc ICampaignPaymentTreasury */ function claimRefund(bytes32 paymentId) public override whenNotPaused whenNotCancelled { - _checkTimeIsGreater(); + _checkTimeIsAfterLaunch(); super.claimRefund(paymentId); } @@ -143,7 +143,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker * @inheritdoc ICampaignPaymentTreasury */ function claimExpiredFunds() public override whenNotPaused { - _checkTimeIsGreater(); + _checkTimeIsAfterLaunch(); super.claimExpiredFunds(); } @@ -151,7 +151,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker * @inheritdoc ICampaignPaymentTreasury */ function disburseFees() public override whenNotPaused { - _checkTimeIsGreater(); + _checkTimeIsAfterLaunch(); super.disburseFees(); } @@ -159,7 +159,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker * @inheritdoc BasePaymentTreasury */ function claimNonGoalLineItems(address token) public override whenNotPaused { - _checkTimeIsGreater(); + _checkTimeIsAfterLaunch(); super.claimNonGoalLineItems(token); } @@ -167,7 +167,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker * @inheritdoc ICampaignPaymentTreasury */ function withdraw() public override whenNotPaused whenNotCancelled { - _checkTimeIsGreater(); + _checkTimeIsAfterLaunch(); super.withdraw(); } diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index 853b0b1..f0024a7 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -47,7 +47,7 @@ abstract contract BasePaymentTreasury is mapping(bytes32 => address) internal s_paymentIdToToken; // Track token used for each payment mapping(address => uint256) internal s_platformFeePerToken; // Platform fees per token mapping(address => uint256) internal s_protocolFeePerToken; // Protocol fees per token - mapping(bytes32 => uint256) internal s_paymentIdToTokenId; // Track NFT token ID for each payment (0 means no NFT) + mapping(bytes32 => uint256) internal s_paymentIdToNFTId; // Track NFT token ID for each payment (0 means no NFT) mapping(bytes32 => address) internal s_paymentIdToCreator; // Track creator address for on-chain payments (for getPaymentData lookup) /** @@ -102,7 +102,7 @@ abstract contract BasePaymentTreasury is mapping(address => uint256) internal s_nonGoalLineItemPendingPerToken; // Pending non-goal line items per token mapping(address => uint256) internal s_nonGoalLineItemConfirmedPerToken; // Confirmed non-goal line items per token mapping(address => uint256) internal s_nonGoalLineItemClaimablePerToken; // Claimable non-goal line items per token (after fees) - mapping(address => uint256) internal s_refundableNonGoalLineItemPerToken; // Refundable non-goal line items per token (after fees) + mapping(address => uint256) internal s_nonGoalRefundableLineItemPerToken; // Refundable non-goal line items per token (after fees) /** * @dev Emitted when a new payment is created. @@ -303,7 +303,7 @@ abstract contract BasePaymentTreasury is * @param paymentId The external payment ID. * @return The scoped internal payment ID. */ - function _scopePaymentIdForOffChain(bytes32 paymentId) internal pure returns (bytes32) { + function _getInternalPaymentIdForOffChain(bytes32 paymentId) internal pure returns (bytes32) { return keccak256(abi.encodePacked(paymentId, ZERO_ADDRESS)); } @@ -312,7 +312,7 @@ abstract contract BasePaymentTreasury is * @param paymentId The external payment ID. * @return The scoped internal payment ID. */ - function _scopePaymentIdForOnChain(bytes32 paymentId) internal view returns (bytes32) { + function _getInternalPaymentIdForOnChain(bytes32 paymentId) internal view returns (bytes32) { return keccak256(abi.encodePacked(paymentId, _msgSender())); } @@ -325,7 +325,7 @@ abstract contract BasePaymentTreasury is */ function _findPaymentId(bytes32 paymentId) internal view returns (bytes32 internalPaymentId) { // Try off-chain scope first (for createPayment) - anyone can look these up - internalPaymentId = _scopePaymentIdForOffChain(paymentId); + internalPaymentId = _getInternalPaymentIdForOffChain(paymentId); if ( s_payment[internalPaymentId].buyerId != ZERO_BYTES || s_payment[internalPaymentId].buyerAddress != address(0) @@ -356,11 +356,11 @@ abstract contract BasePaymentTreasury is * @return duration The max expiration duration in seconds. */ function _getMaxExpirationDuration() internal view returns (bool hasLimit, uint256 duration) { - bytes32 platformScopedKey = + bytes32 expirationDurationKey = DataRegistryKeys.scopedToPlatform(DataRegistryKeys.MAX_PAYMENT_EXPIRATION, PLATFORM_HASH); // Prefer platform-specific value stored in GlobalParams via registry. - bytes32 maxExpirationBytes = INFO.getDataFromRegistry(platformScopedKey); + bytes32 maxExpirationBytes = INFO.getDataFromRegistry(expirationDurationKey); if (maxExpirationBytes == ZERO_BYTES) { maxExpirationBytes = INFO.getDataFromRegistry(DataRegistryKeys.MAX_PAYMENT_EXPIRATION); @@ -648,7 +648,7 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryPaymentAlreadyExist(onChainPaymentId); } - bytes32 internalPaymentId = _scopePaymentIdForOffChain(paymentId); + bytes32 internalPaymentId = _getInternalPaymentIdForOffChain(paymentId); if ( s_payment[internalPaymentId].buyerId != ZERO_BYTES || s_payment[internalPaymentId].buyerAddress != address(0) @@ -748,7 +748,7 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryPaymentAlreadyExist(onChainPaymentId); } - bytes32 internalPaymentId = _scopePaymentIdForOffChain(paymentId); + bytes32 internalPaymentId = _getInternalPaymentIdForOffChain(paymentId); // Check if payment already exists if ( s_payment[internalPaymentId].buyerId != ZERO_BYTES @@ -821,7 +821,7 @@ abstract contract BasePaymentTreasury is } // Check if an off-chain payment with the same paymentId already exists - bytes32 offChainPaymentId = _scopePaymentIdForOffChain(paymentId); + bytes32 offChainPaymentId = _getInternalPaymentIdForOffChain(paymentId); if ( s_payment[offChainPaymentId].buyerId != ZERO_BYTES || s_payment[offChainPaymentId].buyerAddress != address(0) @@ -837,7 +837,7 @@ abstract contract BasePaymentTreasury is } // Check if an on-chain payment with the same paymentId already exists for this caller - bytes32 internalPaymentId = _scopePaymentIdForOnChain(paymentId); + bytes32 internalPaymentId = _getInternalPaymentIdForOnChain(paymentId); if ( s_payment[internalPaymentId].buyerAddress != address(0) || s_payment[internalPaymentId].buyerId != ZERO_BYTES @@ -913,7 +913,7 @@ abstract contract BasePaymentTreasury is s_nonGoalLineItemConfirmedPerToken[paymentToken] += netAmount; if (canRefund) { - s_refundableNonGoalLineItemPerToken[paymentToken] += netAmount; + s_nonGoalRefundableLineItemPerToken[paymentToken] += netAmount; } else { s_nonGoalLineItemClaimablePerToken[paymentToken] += netAmount; } @@ -964,7 +964,7 @@ abstract contract BasePaymentTreasury is 0, // shippingFee (0 for payment treasuries) 0 // tipAmount (0 for payment treasuries) ); - s_paymentIdToTokenId[internalPaymentId] = tokenId; + s_paymentIdToNFTId[internalPaymentId] = tokenId; emit PaymentCreated(buyerAddress, paymentId, ZERO_BYTES, itemId, paymentToken, amount, 0, true); } @@ -980,7 +980,7 @@ abstract contract BasePaymentTreasury is whenCampaignNotPaused whenCampaignNotCancelled { - bytes32 internalPaymentId = _scopePaymentIdForOffChain(paymentId); + bytes32 internalPaymentId = _getInternalPaymentIdForOffChain(paymentId); _validatePaymentForAction(internalPaymentId); address paymentToken = s_paymentIdToToken[internalPaymentId]; @@ -1057,7 +1057,7 @@ abstract contract BasePaymentTreasury is uint256 actualBalance = IERC20(paymentToken).balanceOf(address(this)); uint256 currentlyCommitted = s_availableConfirmedPerToken[paymentToken] + s_protocolFeePerToken[paymentToken] + s_platformFeePerToken[paymentToken] + s_nonGoalLineItemClaimablePerToken[paymentToken] - + s_refundableNonGoalLineItemPerToken[paymentToken]; + + s_nonGoalRefundableLineItemPerToken[paymentToken]; uint256 newCommitted = currentlyCommitted + paymentAmount + totals.totalGoalLineItemAmount + totals.totalProtocolFeeFromLineItems + totals.totalNonGoalClaimableAmount @@ -1110,7 +1110,7 @@ abstract contract BasePaymentTreasury is s_nonGoalLineItemConfirmedPerToken[paymentToken] += netAmount; if (item.canRefund) { - s_refundableNonGoalLineItemPerToken[paymentToken] += netAmount; + s_nonGoalRefundableLineItemPerToken[paymentToken] += netAmount; } else { s_nonGoalLineItemClaimablePerToken[paymentToken] += netAmount; } @@ -1133,7 +1133,7 @@ abstract contract BasePaymentTreasury is whenCampaignNotPaused whenCampaignNotCancelled { - bytes32 internalPaymentId = _scopePaymentIdForOffChain(paymentId); + bytes32 internalPaymentId = _getInternalPaymentIdForOffChain(paymentId); _validatePaymentForAction(internalPaymentId); address paymentToken = s_paymentIdToToken[internalPaymentId]; @@ -1163,7 +1163,7 @@ abstract contract BasePaymentTreasury is s_payment[internalPaymentId].buyerAddress = buyerAddress; bytes32 itemId = s_payment[internalPaymentId].itemId; uint256 tokenId = INFO.mintNFTForPledge(buyerAddress, itemId, paymentToken, paymentAmount, 0, 0); - s_paymentIdToTokenId[internalPaymentId] = tokenId; + s_paymentIdToNFTId[internalPaymentId] = tokenId; } emit PaymentConfirmed(paymentId); @@ -1196,7 +1196,7 @@ abstract contract BasePaymentTreasury is for (uint256 i = 0; i < paymentIds.length; i++) { currentPaymentId = paymentIds[i]; - bytes32 internalPaymentId = _scopePaymentIdForOffChain(currentPaymentId); + bytes32 internalPaymentId = _getInternalPaymentIdForOffChain(currentPaymentId); _validatePaymentForAction(internalPaymentId); @@ -1226,7 +1226,7 @@ abstract contract BasePaymentTreasury is s_payment[internalPaymentId].buyerAddress = buyerAddress; bytes32 itemId = s_payment[internalPaymentId].itemId; uint256 tokenId = INFO.mintNFTForPledge(buyerAddress, itemId, currentToken, amount, 0, 0); - s_paymentIdToTokenId[internalPaymentId] = tokenId; + s_paymentIdToNFTId[internalPaymentId] = tokenId; } } @@ -1248,12 +1248,12 @@ abstract contract BasePaymentTreasury is if (refundAddress == address(0)) { revert PaymentTreasuryInvalidInput(); } - bytes32 internalPaymentId = _scopePaymentIdForOffChain(paymentId); + bytes32 internalPaymentId = _getInternalPaymentIdForOffChain(paymentId); PaymentInfo memory payment = s_payment[internalPaymentId]; address paymentToken = s_paymentIdToToken[internalPaymentId]; uint256 amountToRefund = payment.amount; uint256 availablePaymentAmount = s_availableConfirmedPerToken[paymentToken]; - uint256 tokenId = s_paymentIdToTokenId[internalPaymentId]; + uint256 tokenId = s_paymentIdToNFTId[internalPaymentId]; if (payment.buyerId == ZERO_BYTES) { revert PaymentTreasuryPaymentNotExist(internalPaymentId); @@ -1321,7 +1321,7 @@ abstract contract BasePaymentTreasury is // For non-goal line items, check that we have enough claimable balance // (only non-instant transfer items are refundable, and only their net amounts after fees) if (totalNonGoalLineItemRefundAmount > 0) { - uint256 availableRefundable = s_refundableNonGoalLineItemPerToken[paymentToken]; + uint256 availableRefundable = s_nonGoalRefundableLineItemPerToken[paymentToken]; if (availableRefundable < totalNonGoalLineItemRefundAmount) { revert PaymentTreasuryPaymentNotClaimable(paymentId); } @@ -1367,7 +1367,7 @@ abstract contract BasePaymentTreasury is s_nonGoalLineItemConfirmedPerToken[paymentToken] -= netAmount; // Remove from refundable tracking (only net amount is refundable) - s_refundableNonGoalLineItemPerToken[paymentToken] -= netAmount; + s_nonGoalRefundableLineItemPerToken[paymentToken] -= netAmount; } } @@ -1398,7 +1398,7 @@ abstract contract BasePaymentTreasury is address buyerAddress = payment.buyerAddress; uint256 amountToRefund = payment.amount; uint256 availablePaymentAmount = s_availableConfirmedPerToken[paymentToken]; - uint256 tokenId = s_paymentIdToTokenId[internalPaymentId]; + uint256 tokenId = s_paymentIdToNFTId[internalPaymentId]; if (buyerAddress == address(0)) { revert PaymentTreasuryPaymentNotExist(internalPaymentId); @@ -1466,7 +1466,7 @@ abstract contract BasePaymentTreasury is // For non-goal line items, check that we have enough claimable balance // (only non-instant transfer items are refundable, and only their net amounts after fees) if (totalNonGoalLineItemRefundAmount > 0) { - uint256 availableRefundable = s_refundableNonGoalLineItemPerToken[paymentToken]; + uint256 availableRefundable = s_nonGoalRefundableLineItemPerToken[paymentToken]; if (availableRefundable < totalNonGoalLineItemRefundAmount) { revert PaymentTreasuryPaymentNotClaimable(internalPaymentId); } @@ -1512,7 +1512,7 @@ abstract contract BasePaymentTreasury is s_nonGoalLineItemConfirmedPerToken[paymentToken] -= netAmount; // Remove from refundable tracking (only net amount is refundable) - s_refundableNonGoalLineItemPerToken[paymentToken] -= netAmount; + s_nonGoalRefundableLineItemPerToken[paymentToken] -= netAmount; } } @@ -1520,7 +1520,7 @@ abstract contract BasePaymentTreasury is delete s_paymentIdToToken[internalPaymentId]; delete s_paymentLineItems[internalPaymentId]; delete s_paymentExternalFeeMetadata[internalPaymentId]; - delete s_paymentIdToTokenId[internalPaymentId]; + delete s_paymentIdToNFTId[internalPaymentId]; delete s_paymentIdToCreator[paymentId]; // Clean up creator mapping for on-chain payments s_confirmedPaymentPerToken[paymentToken] -= amountToRefund; @@ -1616,7 +1616,7 @@ abstract contract BasePaymentTreasury is uint256 availableConfirmed = s_availableConfirmedPerToken[token]; uint256 claimableAmount = s_nonGoalLineItemClaimablePerToken[token]; - uint256 refundableAmount = s_refundableNonGoalLineItemPerToken[token]; + uint256 refundableAmount = s_nonGoalRefundableLineItemPerToken[token]; uint256 platformFeeAmount = s_platformFeePerToken[token]; uint256 protocolFeeAmount = s_protocolFeePerToken[token]; @@ -1640,7 +1640,7 @@ abstract contract BasePaymentTreasury is s_nonGoalLineItemConfirmedPerToken[token] = currentNonGoalConfirmed > reduction ? currentNonGoalConfirmed - reduction : 0; s_nonGoalLineItemClaimablePerToken[token] = 0; - s_refundableNonGoalLineItemPerToken[token] = 0; + s_nonGoalRefundableLineItemPerToken[token] = 0; } if (platformFeeAmount > 0) { From acd726c9a0d064f814b0e2dbc2e7112e77412713 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 14:20:14 +0600 Subject: [PATCH 45/61] Improve error clarity by including revert reasons in treasuries (OZ-63) (#71) * Improve error clarity by including revert reasons in treasuries * fix(errors): use string instead of bytes32 for error reason params Switch AllOrNothingInvalidInput, AllOrNothingNotClaimable, KeepWhatsRaisedInvalidInput, and KeepWhatsRaisedNotClaimable to use string reason for clearer off-chain decoding. Add natspec for reason params and use more specific reason strings (e.g. REWARD_LENGTH_MISMATCH, FEE_LENGTH_MISMATCH). Update tests to use abi.encodeWithSelector. * improve(errors): use distinct reason strings for liquidity failures - KeepWhatsRaised: split claimRefund checks so liquidity failures revert with INSUFFICIENT_LIQUIDITY instead of ZERO_AMOUNT. - BasePaymentTreasury: add string reason to PaymentTreasuryInvalidInput and PaymentTreasuryPaymentNotClaimable; use distinct reasons for each case; split combined claimRefund checks (ZERO_AMOUNT, INSUFFICIENT_LIQUIDITY, INSUFFICIENT_GOAL_LIQUIDITY, INSUFFICIENT_NON_GOAL_LIQUIDITY, INSUFFICIENT_CONTRACT_BALANCE, NOT_NFT_PAYMENT). --- src/treasuries/AllOrNothing.sol | 26 +++++----- src/treasuries/KeepWhatsRaised.sol | 41 +++++++++------- src/utils/BasePaymentTreasury.sol | 48 ++++++++++--------- .../KeepWhatsRaisedFunction.t.sol | 2 +- test/foundry/unit/KeepWhatsRaised.t.sol | 20 ++++---- 5 files changed, 73 insertions(+), 64 deletions(-) diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index 45b882f..a64c9b1 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -77,8 +77,9 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { /** * @dev Emitted when an invalid input is detected. + * @param reason A string code describing the specific validation failure (e.g., "REWARD_NOT_FOUND", "LENGTH_MISMATCH"). */ - error AllOrNothingInvalidInput(); + error AllOrNothingInvalidInput(string reason); /** * @dev Emitted when a token transfer fails. @@ -108,8 +109,9 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { /** * @dev Emitted when claiming an unclaimable refund. * @param tokenId The ID of the token representing the pledge. + * @param reason A string code describing why the refund is not claimable (e.g., "CAMPAIGN_SUCCESSFUL", "ZERO_AMOUNT"). */ - error AllOrNothingNotClaimable(uint256 tokenId); + error AllOrNothingNotClaimable(uint256 tokenId, string reason); /** * @dev Constructor for the AllOrNothing contract. @@ -127,7 +129,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { */ function getReward(bytes32 rewardName) external view returns (Reward memory reward) { if (s_reward[rewardName].rewardValue == 0) { - revert AllOrNothingInvalidInput(); + revert AllOrNothingInvalidInput("REWARD_NOT_FOUND"); } return s_reward[rewardName]; } @@ -204,7 +206,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { whenNotCancelled { if (rewardNames.length != rewards.length) { - revert AllOrNothingInvalidInput(); + revert AllOrNothingInvalidInput("REWARD_LENGTH_MISMATCH"); } for (uint256 i = 0; i < rewardNames.length; i++) { @@ -213,7 +215,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { // Reward name must not be zero bytes and reward value must be non-zero if (rewardName == ZERO_BYTES || reward.rewardValue == 0) { - revert AllOrNothingInvalidInput(); + revert AllOrNothingInvalidInput("ZERO_NAME_OR_VALUE"); } // If there are any items, their arrays must match in length @@ -221,7 +223,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { (reward.itemId.length != reward.itemValue.length) || (reward.itemId.length != reward.itemQuantity.length) ) { - revert AllOrNothingInvalidInput(); + revert AllOrNothingInvalidInput("REWARD_ITEM_LENGTH_MISMATCH"); } // Check for duplicate reward @@ -248,7 +250,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { whenNotCancelled { if (s_reward[rewardName].rewardValue == 0) { - revert AllOrNothingInvalidInput(); + revert AllOrNothingInvalidInput("REWARD_NOT_FOUND"); } delete s_reward[rewardName]; s_rewardCounter.decrement(); @@ -278,16 +280,16 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { if ( backer == address(0) || reward[0] == ZERO_BYTES || !tempReward.isRewardTier ) { - revert AllOrNothingInvalidInput(); + revert AllOrNothingInvalidInput("INVALID_PLEDGE_INPUT"); } uint256 pledgeAmount = tempReward.rewardValue; for (uint256 i = 1; i < rewardLen; i++) { if (reward[i] == ZERO_BYTES) { - revert AllOrNothingInvalidInput(); + revert AllOrNothingInvalidInput("ZERO_REWARD_NAME"); } tempReward = s_reward[reward[i]]; if (tempReward.rewardValue == 0 || !tempReward.canBeAddOn) { - revert AllOrNothingInvalidInput(); + revert AllOrNothingInvalidInput("REWARD_NOT_FOUND"); } pledgeAmount += tempReward.rewardValue; } @@ -325,7 +327,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { whenNotPaused { if (block.timestamp >= INFO.getDeadline() && _checkSuccessCondition()) { - revert AllOrNothingNotClaimable(tokenId); + revert AllOrNothingNotClaimable(tokenId, "CAMPAIGN_SUCCESSFUL"); } // Get NFT owner before burning @@ -336,7 +338,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { address pledgeToken = s_tokenIdToPledgeToken[tokenId]; if (amountToRefund == 0) { - revert AllOrNothingNotClaimable(tokenId); + revert AllOrNothingNotClaimable(tokenId, "ZERO_AMOUNT"); } s_tokenToTotalCollectedAmount[tokenId] = 0; diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 9ccd4fe..41a61d0 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -203,8 +203,9 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa /** * @dev Emitted when an invalid input is detected. + * @param reason A string code describing the specific validation failure (e.g., "REWARD_NOT_FOUND", "INVALID_TIMING"). */ - error KeepWhatsRaisedInvalidInput(); + error KeepWhatsRaisedInvalidInput(string reason); /// @dev Emitted when fee keys are not unique (duplicate or overlap between flat and percentage keys). error KeepWhatsRaisedDuplicateFeeKey(); @@ -271,8 +272,9 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa /** * @dev Emitted when a token or pledge is not eligible for claiming (e.g., claim period not reached or not valid). * @param tokenId The ID of the token that was attempted to be claimed. + * @param reason A string code describing why the claim failed (e.g., "INVALID_REFUND_PERIOD", "ZERO_AMOUNT", "INSUFFICIENT_LIQUIDITY"). */ - error KeepWhatsRaisedNotClaimable(uint256 tokenId); + error KeepWhatsRaisedNotClaimable(uint256 tokenId, string reason); /** * @dev Emitted when an admin attempts to claim funds that are not yet claimable according to the rules. @@ -363,7 +365,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa */ function getReward(bytes32 rewardName) external view returns (Reward memory reward) { if (s_reward[rewardName].rewardValue == 0) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("REWARD_NOT_FOUND"); } return s_reward[rewardName]; } @@ -556,10 +558,10 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa revert KeepWhatsRaisedAlreadyConfigured(); } if (campaignData.launchTime < block.timestamp || campaignData.deadline <= campaignData.launchTime) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("INVALID_TIMING"); } if (feeKeys.grossPercentageFeeKeys.length != feeValues.grossPercentageFeeValues.length) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("FEE_LENGTH_MISMATCH"); } if (config.withdrawalDelay < config.refundDelay) { revert KeepWhatsRaisedWithdrawalBeforeRefundEnd(config.withdrawalDelay, config.refundDelay); @@ -623,7 +625,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenNotCancelled { if (deadline <= getLaunchTime() || deadline <= block.timestamp) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("INVALID_DEADLINE"); } s_campaignData.deadline = deadline; @@ -646,7 +648,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenNotCancelled { if (goalAmount == 0) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("ZERO_GOAL_AMOUNT"); } s_campaignData.goalAmount = goalAmount; emit KeepWhatsRaisedGoalAmountUpdated(goalAmount); @@ -670,7 +672,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenNotCancelled { if (rewardNames.length != rewards.length) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("REWARD_LENGTH_MISMATCH"); } for (uint256 i = 0; i < rewardNames.length; i++) { @@ -679,7 +681,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa // Reward name must not be zero bytes and reward value must be non-zero if (rewardName == ZERO_BYTES || reward.rewardValue == 0) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("ZERO_NAME_OR_VALUE"); } // If there are any items, their arrays must match in length @@ -687,7 +689,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa (reward.itemId.length != reward.itemValue.length) || (reward.itemId.length != reward.itemQuantity.length) ) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("REWARD_ITEM_LENGTH_MISMATCH"); } // Check for duplicate reward @@ -714,7 +716,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenNotCancelled { if (s_reward[rewardName].rewardValue == 0) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("REWARD_NOT_FOUND"); } delete s_reward[rewardName]; s_rewardCounter.decrement(); @@ -821,16 +823,16 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa if ( backer == address(0) || reward[0] == ZERO_BYTES || !tempReward.isRewardTier ) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("INVALID_PLEDGE_INPUT"); } uint256 pledgeAmount = tempReward.rewardValue; for (uint256 i = 1; i < rewardLen; i++) { if (reward[i] == ZERO_BYTES) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("ZERO_REWARD_NAME"); } tempReward = s_reward[reward[i]]; if (tempReward.rewardValue == 0 || !tempReward.canBeAddOn) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("REWARD_NOT_FOUND"); } pledgeAmount += tempReward.rewardValue; } @@ -994,7 +996,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa } } else { if (amount == 0) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("ZERO_AMOUNT"); } if (amount > available) { revert KeepWhatsRaisedInsufficientFundsForWithdrawalAndFee( @@ -1063,7 +1065,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa revert KeepWhatsRaisedFundAlreadyClaimed(); } if (!_checkRefundPeriodStatus(false)) { - revert KeepWhatsRaisedNotClaimable(tokenId); + revert KeepWhatsRaisedNotClaimable(tokenId, "INVALID_REFUND_PERIOD"); } // Get NFT owner before burning @@ -1074,8 +1076,11 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa uint256 paymentFee = s_tokenToPaymentFee[tokenId]; uint256 netRefundAmount = amountToRefund - paymentFee; - if (netRefundAmount == 0 || s_availablePerToken[pledgeToken] < netRefundAmount) { - revert KeepWhatsRaisedNotClaimable(tokenId); + if (netRefundAmount == 0) { + revert KeepWhatsRaisedNotClaimable(tokenId, "ZERO_AMOUNT"); + } + if (s_availablePerToken[pledgeToken] < netRefundAmount) { + revert KeepWhatsRaisedNotClaimable(tokenId, "INSUFFICIENT_LIQUIDITY"); } s_tokenToPledgedAmount[tokenId] = 0; diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index f0024a7..e4be080 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -193,8 +193,9 @@ abstract contract BasePaymentTreasury is /** * @dev Reverts when one or more provided inputs to the payment treasury are invalid. + * @param reason A string code describing the specific validation failure. */ - error PaymentTreasuryInvalidInput(); + error PaymentTreasuryInvalidInput(string reason); /** * @dev Throws an error indicating that the payment id already exists. @@ -244,8 +245,9 @@ abstract contract BasePaymentTreasury is /** * @dev Emitted when claiming an unclaimable refund. * @param paymentId The unique identifier of the refundable payment. + * @param reason A string code describing why the refund is not claimable. */ - error PaymentTreasuryPaymentNotClaimable(bytes32 paymentId); + error PaymentTreasuryPaymentNotClaimable(bytes32 paymentId, string reason); /** * @dev Emitted when an attempt is made to withdraw funds from the treasury but the payment has already been withdrawn. @@ -568,7 +570,7 @@ abstract contract BasePaymentTreasury is // Validate line item if (item.typeId == ZERO_BYTES || item.amount == 0) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("INVALID_LINE_ITEM"); } // Get line item type configuration (single call per item) @@ -582,7 +584,7 @@ abstract contract BasePaymentTreasury is ) = INFO.getLineItemType(PLATFORM_HASH, item.typeId); if (!exists) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("LINE_ITEM_TYPE_NOT_FOUND"); } // Store line item with configuration snapshot @@ -624,7 +626,7 @@ abstract contract BasePaymentTreasury is buyerId == ZERO_BYTES || amount == 0 || expiration <= block.timestamp || paymentId == ZERO_BYTES || itemId == ZERO_BYTES || paymentToken == address(0) ) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("INVALID_PAYMENT_PARAMS"); } // Validate expiration does not exceed maximum allowed expiration time (platform-specific or global) @@ -703,7 +705,7 @@ abstract contract BasePaymentTreasury is || length != amounts.length || length != expirations.length || length != lineItemsArray.length || length != externalFeesArray.length ) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("BATCH_LENGTH_MISMATCH"); } // Get max expiration duration once outside the loop for efficiency (platform-specific or global) @@ -728,7 +730,7 @@ abstract contract BasePaymentTreasury is buyerId == ZERO_BYTES || amount == 0 || expiration <= block.timestamp || paymentId == ZERO_BYTES || itemId == ZERO_BYTES || paymentToken == address(0) ) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("INVALID_PAYMENT_PARAMS"); } // Validate expiration does not exceed maximum allowed expiration time @@ -807,7 +809,7 @@ abstract contract BasePaymentTreasury is buyerAddress == address(0) || amount == 0 || paymentId == ZERO_BYTES || itemId == ZERO_BYTES || paymentToken == address(0) ) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("INVALID_PAYMENT_PARAMS"); } // Reject treasury address as payer to prevent accounting inflation via self-transfer @@ -856,7 +858,7 @@ abstract contract BasePaymentTreasury is // Validate line item if (item.typeId == ZERO_BYTES || item.amount == 0) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("INVALID_LINE_ITEM"); } // Get line item type configuration (single call per item) @@ -870,7 +872,7 @@ abstract contract BasePaymentTreasury is ) = INFO.getLineItemType(PLATFORM_HASH, item.typeId); if (!exists) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("LINE_ITEM_TYPE_NOT_FOUND"); } // Accumulate total amount @@ -1185,7 +1187,7 @@ abstract contract BasePaymentTreasury is { // Validate array lengths must match if (buyerAddresses.length != paymentIds.length) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("CONFIRM_BATCH_LENGTH_MISMATCH"); } bytes32 currentPaymentId; @@ -1246,7 +1248,7 @@ abstract contract BasePaymentTreasury is whenCampaignNotCancelled { if (refundAddress == address(0)) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("ZERO_REFUND_ADDRESS"); } bytes32 internalPaymentId = _getInternalPaymentIdForOffChain(paymentId); PaymentInfo memory payment = s_payment[internalPaymentId]; @@ -1262,7 +1264,7 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryPaymentNotConfirmed(internalPaymentId); } if (amountToRefund == 0) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId); + revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "ZERO_AMOUNT"); } // This function is for non-NFT payments only if (tokenId != 0) { @@ -1315,7 +1317,7 @@ abstract contract BasePaymentTreasury is // For goal line items and base payment, check availableConfirmedPerToken if (availablePaymentAmount < (amountToRefund + totalGoalLineItemRefundAmount)) { - revert PaymentTreasuryPaymentNotClaimable(paymentId); + revert PaymentTreasuryPaymentNotClaimable(paymentId, "INSUFFICIENT_GOAL_LIQUIDITY"); } // For non-goal line items, check that we have enough claimable balance @@ -1323,14 +1325,14 @@ abstract contract BasePaymentTreasury is if (totalNonGoalLineItemRefundAmount > 0) { uint256 availableRefundable = s_nonGoalRefundableLineItemPerToken[paymentToken]; if (availableRefundable < totalNonGoalLineItemRefundAmount) { - revert PaymentTreasuryPaymentNotClaimable(paymentId); + revert PaymentTreasuryPaymentNotClaimable(paymentId, "INSUFFICIENT_NON_GOAL_LIQUIDITY"); } } // Check that contract has enough actual balance to perform the transfer uint256 contractBalance = IERC20(paymentToken).balanceOf(address(this)); if (contractBalance < totalRefundAmount) { - revert PaymentTreasuryPaymentNotClaimable(paymentId); + revert PaymentTreasuryPaymentNotClaimable(paymentId, "INSUFFICIENT_CONTRACT_BALANCE"); } // Update state: remove tracking for refundable line items using snapshots @@ -1401,14 +1403,14 @@ abstract contract BasePaymentTreasury is uint256 tokenId = s_paymentIdToNFTId[internalPaymentId]; if (buyerAddress == address(0)) { - revert PaymentTreasuryPaymentNotExist(internalPaymentId); + revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "ZERO_ADDRESS"); } if (amountToRefund == 0) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId); + revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "INSUFFICIENT_LIQUIDITY"); } // NFT must exist for crypto payments if (tokenId == 0) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId); + revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "NOT_NFT_PAYMENT"); } // Get NFT owner before burning @@ -1460,7 +1462,7 @@ abstract contract BasePaymentTreasury is // For goal line items and base payment, check availableConfirmedPerToken if (availablePaymentAmount < (amountToRefund + totalGoalLineItemRefundAmount)) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId); + revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "INSUFFICIENT_GOAL_LIQUIDITY"); } // For non-goal line items, check that we have enough claimable balance @@ -1468,14 +1470,14 @@ abstract contract BasePaymentTreasury is if (totalNonGoalLineItemRefundAmount > 0) { uint256 availableRefundable = s_nonGoalRefundableLineItemPerToken[paymentToken]; if (availableRefundable < totalNonGoalLineItemRefundAmount) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId); + revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "INSUFFICIENT_NON_GOAL_LIQUIDITY"); } } // Check that contract has enough actual balance to perform the transfer uint256 contractBalance = IERC20(paymentToken).balanceOf(address(this)); if (contractBalance < totalRefundAmount) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId); + revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "INSUFFICIENT_CONTRACT_BALANCE"); } // Update state: remove tracking for refundable line items using snapshots @@ -1579,7 +1581,7 @@ abstract contract BasePaymentTreasury is uint256 claimableAmount = s_nonGoalLineItemClaimablePerToken[token]; if (claimableAmount == 0) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("ZERO_CLAIMABLE_AMOUNT"); } s_nonGoalLineItemClaimablePerToken[token] = 0; diff --git a/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol b/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol index 0e1f07e..fef7720 100644 --- a/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol +++ b/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol @@ -559,7 +559,7 @@ contract KeepWhatsRaisedFunction_Integration_Shared_Test is KeepWhatsRaised_Inte removeReward(users.creator1Address, address(keepWhatsRaised), REWARD_NAMES[1]); // Verify reward is removed - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "REWARD_NOT_FOUND")); keepWhatsRaised.getReward(REWARD_NAMES[1]); } diff --git a/test/foundry/unit/KeepWhatsRaised.t.sol b/test/foundry/unit/KeepWhatsRaised.t.sol index a5cdc99..8ea3c90 100644 --- a/test/foundry/unit/KeepWhatsRaised.t.sol +++ b/test/foundry/unit/KeepWhatsRaised.t.sol @@ -157,7 +157,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "INVALID_TIMING")); vm.prank(users.platform2AdminAddress); keepWhatsRaised.configureTreasury(CONFIG, invalidCampaignData, FEE_KEYS, feeValues); } @@ -171,7 +171,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te KeepWhatsRaised.FeeValues memory mismatchedValues = _createFeeValues(); mismatchedValues.grossPercentageFeeValues = new uint256[](1); // Wrong length - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "FEE_LENGTH_MISMATCH")); vm.prank(users.platform2AdminAddress); keepWhatsRaised.configureTreasury(CONFIG, CAMPAIGN_DATA, mismatchedKeys, mismatchedValues); } @@ -319,7 +319,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testUpdateDeadlineRevertWhenDeadlineBeforeLaunchTime() public { - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "INVALID_DEADLINE")); vm.prank(users.platform2AdminAddress); keepWhatsRaised.updateDeadline(LAUNCH_TIME - 1); } @@ -327,7 +327,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te function testUpdateDeadlineRevertWhenDeadlineBeforeCurrentTime() public { vm.warp(LAUNCH_TIME + 5 days); - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "INVALID_DEADLINE")); vm.prank(users.platform2AdminAddress); keepWhatsRaised.updateDeadline(LAUNCH_TIME + 4 days); } @@ -370,7 +370,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testUpdateGoalAmountRevertWhenZero() public { - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "ZERO_GOAL_AMOUNT")); vm.prank(users.platform2AdminAddress); keepWhatsRaised.updateGoalAmount(0); } @@ -398,7 +398,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te bytes32[] memory rewardNames = new bytes32[](2); Reward[] memory rewards = new Reward[](1); - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "REWARD_LENGTH_MISMATCH")); vm.prank(users.creator1Address); keepWhatsRaised.addRewards(rewardNames, rewards); } @@ -436,12 +436,12 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te keepWhatsRaised.removeReward(TEST_REWARD_NAME); // Verify removal - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "REWARD_NOT_FOUND")); keepWhatsRaised.getReward(TEST_REWARD_NAME); } function testRemoveRewardRevertWhenRewardDoesNotExist() public { - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "REWARD_NOT_FOUND")); vm.prank(users.creator1Address); keepWhatsRaised.removeReward(TEST_REWARD_NAME); } @@ -553,7 +553,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te bytes32[] memory rewardSelection = new bytes32[](1); rewardSelection[0] = TEST_REWARD_NAME; - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "INVALID_PLEDGE_INPUT")); keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection); vm.stopPrank(); } @@ -1371,7 +1371,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testGetRewardRevertWhenNotExists() public { - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "REWARD_NOT_FOUND")); keepWhatsRaised.getReward(keccak256("nonexistent")); } From c68b28c723ccc38d3b95fc9a8729e161ef5897bd Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 14:34:32 +0600 Subject: [PATCH 46/61] Refactor withdrawal and disbursement functions in KeepWhatsRaised contract (OZ-8) (#49) * Refactor withdrawal and disbursement functions in KeepWhatsRaised contract - Updated function modifiers to ensure compliance with campaign status before executing actions. * Update tests in KeepWhatsRaised unit tests to utilize _resetTreasury for improved state management - Added calls to _resetTreasury in multiple test cases to ensure a clean state before executing treasury configuration tests. - Enhanced clarity in tests by ensuring that each test starts with a fresh treasury setup, improving reliability and accuracy of error handling. --- src/treasuries/KeepWhatsRaised.sol | 6 ++++-- test/foundry/unit/KeepWhatsRaised.t.sol | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 41a61d0..3f73f80 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -899,7 +899,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa /** * @inheritdoc ICampaignTreasury */ - function withdraw() public view override whenNotPaused whenNotCancelled { + function withdraw() public view override whenCampaignNotPaused whenCampaignNotCancelled whenNotPaused whenNotCancelled { revert KeepWhatsRaisedDisabled(); } @@ -961,6 +961,8 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa public onlyPlatformAdminOrCampaignOwner currentTimeIsLess(getDeadline() + s_config.withdrawalDelay) + whenCampaignNotPaused + whenCampaignNotCancelled whenNotPaused whenNotCancelled withdrawalEnabled @@ -1102,7 +1104,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa * Requirements: * - Only callable when fees are available. */ - function disburseFees() public override whenNotPaused { + function disburseFees() public override whenCampaignNotPaused whenNotPaused { address[] memory acceptedTokens = INFO.getAcceptedTokens(); address protocolAdmin = INFO.getProtocolAdminAddress(); address platformAdmin = INFO.getPlatformAdminAddress(PLATFORM_HASH); diff --git a/test/foundry/unit/KeepWhatsRaised.t.sol b/test/foundry/unit/KeepWhatsRaised.t.sol index 8ea3c90..a53b4fb 100644 --- a/test/foundry/unit/KeepWhatsRaised.t.sol +++ b/test/foundry/unit/KeepWhatsRaised.t.sol @@ -177,6 +177,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testConfigureTreasuryRevertWhenDuplicateFlatKeys() public { + _resetTreasury(); KeepWhatsRaised.FeeKeys memory keys = FEE_KEYS; keys.flatFeeKey = keys.cumulativeFlatFeeKey; // same key for both flat fees KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); @@ -187,6 +188,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testConfigureTreasuryRevertWhenFlatKeyEqualsPercentageKey() public { + _resetTreasury(); KeepWhatsRaised.FeeKeys memory keys = FEE_KEYS; keys.flatFeeKey = PLATFORM_FEE_KEY; // flat key collides with percentage key KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); @@ -197,6 +199,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testConfigureTreasuryRevertWhenDuplicatePercentageKeys() public { + _resetTreasury(); KeepWhatsRaised.FeeKeys memory keys = FEE_KEYS; keys.grossPercentageFeeKeys[1] = keys.grossPercentageFeeKeys[0]; // duplicate KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); @@ -207,6 +210,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testConfigureTreasuryRevertWhenPercentageFeeExceedsMax() public { + _resetTreasury(); KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); feeValues.grossPercentageFeeValues[0] = PERCENT_DIVIDER; // 100% not allowed @@ -216,6 +220,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testConfigureTreasuryRevertWhenAggregatePercentageExceedsMax() public { + _resetTreasury(); KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); feeValues.grossPercentageFeeValues[0] = 6000; // 60% feeValues.grossPercentageFeeValues[1] = 5000; // 50% -> total 110% From ba0b13b483034c22705f7ece2de4875dfc1f140b Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 14:35:08 +0600 Subject: [PATCH 47/61] Add maximum limits for payment line items, external fees, and batch sizes in BasePaymentTreasury contract (OZ-35) (#51) - Introduced constants for maximum line items, external fees, and batch size to ensure input validation. - Added error handling for exceeding array lengths to improve robustness of payment processing functions. --- src/utils/BasePaymentTreasury.sol | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index e4be080..d21faad 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -30,6 +30,13 @@ abstract contract BasePaymentTreasury is uint256 internal constant STANDARD_DECIMALS = 18; address internal constant ZERO_ADDRESS = address(0); + /// @dev Maximum number of line items per payment. Ensures confirmPayment can always succeed if createPayment did. + uint256 internal constant MAX_LINE_ITEMS = 50; + /// @dev Maximum number of external fee entries per payment. + uint256 internal constant MAX_EXTERNAL_FEES = 50; + /// @dev Maximum number of payments in a single batch call. + uint256 internal constant MAX_BATCH_SIZE = 50; + bytes32 internal PLATFORM_HASH; /** * @dev Snapshot of the platform fee percent captured at treasury initialization via @@ -300,6 +307,11 @@ abstract contract BasePaymentTreasury is */ error PaymentTreasuryInvalidSender(); + /** + * @dev Throws when an input array exceeds the maximum allowed length. + */ + error PaymentTreasuryArrayTooLong(); + /** * @dev Scopes a payment ID for off-chain payments (createPayment/createPaymentBatch). * @param paymentId The external payment ID. @@ -629,6 +641,10 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryInvalidInput("INVALID_PAYMENT_PARAMS"); } + if (lineItems.length > MAX_LINE_ITEMS || externalFees.length > MAX_EXTERNAL_FEES) { + revert PaymentTreasuryArrayTooLong(); + } + // Validate expiration does not exceed maximum allowed expiration time (platform-specific or global) (bool hasMaxExpiration, uint256 maxExpirationDuration) = _getMaxExpirationDuration(); if (hasMaxExpiration) { @@ -708,6 +724,10 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryInvalidInput("BATCH_LENGTH_MISMATCH"); } + if (length > MAX_BATCH_SIZE) { + revert PaymentTreasuryArrayTooLong(); + } + // Get max expiration duration once outside the loop for efficiency (platform-specific or global) (bool hasMaxExpiration, uint256 maxExpirationDuration) = _getMaxExpirationDuration(); uint256 maxAllowedExpiration = 0; @@ -733,6 +753,10 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryInvalidInput("INVALID_PAYMENT_PARAMS"); } + if (lineItems.length > MAX_LINE_ITEMS || externalFeesArray[i].length > MAX_EXTERNAL_FEES) { + revert PaymentTreasuryArrayTooLong(); + } + // Validate expiration does not exceed maximum allowed expiration time if (hasMaxExpiration && expiration > maxAllowedExpiration) { revert PaymentTreasuryExpirationExceedsMax(expiration, maxAllowedExpiration); @@ -817,6 +841,10 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryInvalidInput(); } + if (lineItems.length > MAX_LINE_ITEMS || externalFees.length > MAX_EXTERNAL_FEES) { + revert PaymentTreasuryArrayTooLong(); + } + // Validate token is accepted if (!INFO.isTokenAccepted(paymentToken)) { revert PaymentTreasuryTokenNotAccepted(paymentToken); @@ -1190,6 +1218,10 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryInvalidInput("CONFIRM_BATCH_LENGTH_MISMATCH"); } + if (paymentIds.length > MAX_BATCH_SIZE) { + revert PaymentTreasuryArrayTooLong(); + } + bytes32 currentPaymentId; address currentToken; From e5745cddbee5937d289bd10edf0408def87e915b Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 15:14:05 +0600 Subject: [PATCH 48/61] ix: allow refund claims after treasury cancellation (#73) Remove whenNotCancelled modifier from claimRefund in PaymentTreasury and TimeConstrainedPaymentTreasury. Previously, treasury cancellation blocked user refunds while admin sweep functions remained callable, creating a fund locking vulnerability. --- KARMA_Design_Feedback.md | 42 -- Preflight.md | 35 -- Preflight_Design.md | 231 --------- SDK_RFC.md | 457 ------------------ src/treasuries/AllOrNothing.sol | 2 +- src/treasuries/KeepWhatsRaised.sol | 4 +- src/treasuries/PaymentTreasury.sol | 4 +- .../TimeConstrainedPaymentTreasury.sol | 4 +- src/utils/BasePaymentTreasury.sol | 4 +- test/foundry/unit/KeepWhatsRaised.t.sol | 2 +- 10 files changed, 10 insertions(+), 775 deletions(-) delete mode 100644 KARMA_Design_Feedback.md delete mode 100644 Preflight.md delete mode 100644 Preflight_Design.md delete mode 100644 SDK_RFC.md diff --git a/KARMA_Design_Feedback.md b/KARMA_Design_Feedback.md deleted file mode 100644 index 357fe69..0000000 --- a/KARMA_Design_Feedback.md +++ /dev/null @@ -1,42 +0,0 @@ -# KARMA Token — Design Feedback - -Three suggestions. Each one addresses a concrete problem with a clear fix. - ---- - -## 1. Use lifetime raised, not current raised - -`claimTokens()` reads `getRaisedAmount()`, which **decreases on refunds** (`s_confirmedPaymentPerToken` is reduced in `claimRefund`). The watermark `_totalMintedAgainstRaised` only goes up. A refund after a claim creates a permanent gap: future deposits must first fill the hole before any new KARMA is minted. - -Example: raised 300K → claim 300K KARMA → refund 100K → raised drops to 200K → next 100K of deposits produces zero KARMA. - -**Fix:** Read `getLifetimeRaisedAmount()` instead. It uses `s_lifetimeConfirmedPaymentPerToken` which never decreases. Both sides of the delta become monotonically increasing, so the accounting is always consistent. Refund-driven point reduction can be handled off-chain or via explicit admin burn — which is the right layer for that decision. - ---- - -## 2. Make the contract upgradeable - -Every other contract in the protocol uses proxies (`Initializable` + factory). KARMA uses a plain constructor. The $OAK conversion mechanism is explicitly on the roadmap and will require new logic on this contract (conversion ratio, burn-for-claim, interaction with an OAK minter). Without upgradeability, that means deploying a new contract and migrating all balances — which is especially painful for a soulbound token since you can't transfer, only re-mint. - -**Fix:** Switch to `ERC20Upgradeable` + `AccessControlUpgradeable` + `ERC20PausableUpgradeable` + `ERC20BurnableUpgradeable` with an `initialize()` function. The OpenZeppelin upgradeable variants are already in the project's dependencies. - ---- - -## 3. Reset the watermark on treasury change - -`setTreasury()` swaps the source but `_totalMintedAgainstRaised` carries over. If the new treasury has a lower lifetime raised, `claimTokens()` silently blocks until it catches up. If higher, it mints a delta that has nothing to do with this platform's actual activity. - -**Fix:** Snapshot the new treasury's current value when switching: - -```solidity -function setTreasury(address _treasury) external onlyRole(DEFAULT_ADMIN_ROLE) { - address previousTreasury = treasury; - treasury = _treasury; - if (_treasury != address(0)) { - _totalMintedAgainstRaised = IKarmaTreasury(_treasury).getRaisedAmount(); - } - emit TreasurySet(previousTreasury, _treasury); -} -``` - -This anchors the watermark to the new treasury's state so no phantom delta is minted and no silent blocking occurs. diff --git a/Preflight.md b/Preflight.md deleted file mode 100644 index 5654bc9..0000000 --- a/Preflight.md +++ /dev/null @@ -1,35 +0,0 @@ -Objective: -Design and define the Preflight Layer that catches predictable reverts and developer mistakes before RPC calls. - -Deliverables: - -Preflight architecture: - -Validation → warnings → normalization → simulation - -Rule taxonomy: - -Structural (types, formats) - -Semantic (array lengths, sums, duplicates) - -Contract-specific invariants - -Warning model: - -Error vs warn classification - -Issue codes & messaging style - -Mode behavior: - -strict, warn, normalize - -MVP rule set: - -Which contract methods get preflight in v1 - -Which checks are mandatory vs nice-to-have - -Outcome: -A developer-first safety layer that meaningfully reduces revert-driven debugging. \ No newline at end of file diff --git a/Preflight_Design.md b/Preflight_Design.md deleted file mode 100644 index c99ad0a..0000000 --- a/Preflight_Design.md +++ /dev/null @@ -1,231 +0,0 @@ -# Oak SDK Preflight Framework: V1 Specification - -## 1. Purpose - -A preflight layer that runs before transaction submission to catch predictable reverts, surface actionable warnings for suspicious inputs, and optionally simulate the call on-chain. - -## 2. Design Principles - -- Block only on high-confidence failures traceable to Solidity preconditions or readable on-chain state. -- Prefer readable on-chain state when needed; fall back gracefully when unavailable. -- Apply only semantics-preserving normalization. -- Use stable issue codes for machine handling and long-term compatibility. - -## 3. Public API - -### 3.1 Per-method APIs - -```typescript -method.preflight(input, options?) // => Promise> -method.safe(input, options?) // => Promise -``` - -`safe()` flow is fixed in v1: preflight -> simulation -> send (only if simulation passes). -`safe()` requires a signer for write execution; if signer is missing, fail fast with `MissingSignerError` before preflight, simulation, and send. - -### 3.2 Options - -```typescript -export type PreflightMode = 'strict' | 'warn' | 'normalize'; -export type StatefulPolicy = 'enabled' | 'local-only'; - -export interface PreflightOptions { - mode?: PreflightMode; // default: 'warn' - stateful?: StatefulPolicy; // default: 'enabled' - collect?: boolean; // default: true - blockTag?: bigint | 'latest'; // default: 'latest' - effectiveSender?: Address; // optional ERC-2771 sender override -} -``` - -### 3.3 Result Types - -```typescript -export interface PreflightIssue { - code: string; // OAK-PF-- - severity: 'error' | 'warn'; - message: string; - fieldPath?: string; - suggestion?: string; - normalized?: boolean; -} - -export type PreflightResult = - | { ok: true; normalized: T; warnings: PreflightIssue[] } - | { ok: false; issues: PreflightIssue[]; normalized?: T }; -``` - -Internal orchestration metadata (stage, determinism, blocking flags) is not exposed in the public response. - -## 4. Blocking Rules - -- **strict:** any unresolved issue blocks. -- **warn:** only unresolved `error` blocks. -- **normalize:** apply normalizers first; then same blocking behavior as `warn`. -- `normalized: true` issues never block. - -## 5. Pipeline - -### 5.1 Execution order - -1. Structural validation. -2. Semantic validation. -3. Stateful validation (unless `stateful='local-only'`). -4. Normalization (`mode='normalize'` only). -5. Revalidation of mutated fields. -6. Return preflight result. -7. `safe()` only: simulation then send. - -### 5.2 Stateful degradation behavior - -If state reads fail in `enabled` mode: -- Emit one warning `OAK-PF-COMMON-STATE_UNAVAILABLE`. -- Skip remaining stateful checks. -- Keep local results. -- Use local-clock timestamp heuristics for time-related warnings (same behavior as `local-only` mode). - -If `stateful='local-only'`: -- Skip stateful checks silently. - -### 5.3 collect - -- `collect=true`: aggregate all issues. -- `collect=false`: short-circuit on first blocking issue for active mode. - -## 6. Guardrails for Rule Authors - -- A blocking rule must map to either: (a) a direct Solidity revert precondition on input, or (b) a readable on-chain state condition at the selected `blockTag`. -- No rule may use fields absent from method ABI. -- No private-state synthetic checks; defer to simulation. -- Local-clock-only timing checks are warning-only. - -## 7. Normalization Policy - -Allowed: - -- EIP-55 address checksumming. -- Empty-array canonicalization for `CampaignInfo.updateSelectedPlatform(selection=false)` because arrays are ignored on deselect. - -Disallowed: - -- Deduplication. -- String-to-bytes32 hashing. -- Sorting/reordering. -- Numeric coercion. - -## 8. State Reader - -Requirements: - -- One snapshot per run (`blockTag`) across all calls. -- Multicall batching where possible. -- Per-run memoization. -- Sender resolution for `preflight()` auth checks: `sender = options.effectiveSender ?? signer`. Auth checks compare on-chain role to sender. If sender is missing, emit `OAK-PF-COMMON-SENDER_UNAVAILABLE` warning and skip auth checks. - -## 9. Issue Code Scheme - -Format: `OAK-PF--` - -Scopes: `COMMON`, `CAMPAIGN`, `FACTORY`, `PAYMENT`, `AON`, `KWR`. - -Code IDs are immutable once released. - -## 10. V1 Method Coverage and Priority - -### 10.1 Priority A: Setup Guardrails - -These methods ship first. - -**GlobalParams.addToRegistry** - -- Blocking: `key != bytes32(0)`; sender authorized (`onlyOwner`). - -**GlobalParams.enlistPlatform** - -- Blocking: `platformHash != bytes32(0)`; `platformAdminAddress != address(0)`; sender authorized; platform not already listed. - -**GlobalParams.addPlatformData** - -- Blocking: `platformDataKey != bytes32(0)`; platform listed; sender is platform admin; key not already set. - -**GlobalParams.addTokenToCurrency** - -- Blocking: `currency != bytes32(0)`; `token != address(0)`; sender authorized. -- Warning: token already present for currency (non-blocking hygiene warning). - -**GlobalParams.setPlatformLineItemType** - -- Blocking: `typeId != bytes32(0)`; platform listed; sender is platform admin; boolean matrix constraints exactly as Solidity: if `countsTowardGoal`, require `!applyProtocolFee && canRefund && !instantTransfer`; if `!countsTowardGoal && instantTransfer`, require `!canRefund`. - -**TreasuryFactory.registerTreasuryImplementation** - -- Blocking: `implementation != address(0)`; sender is platform admin. -- Warning: overwrite existing `(platformHash, implementationId)` mapping. - -**TreasuryFactory.approveTreasuryImplementation** - -- Blocking: sender is protocol admin. -- Simulation-backed: implementation existence at `(platformHash, implementationId)` -- private mapping, no public getter. - -**CampaignInfoFactory.createCampaign** - -- Blocking: `creator != address(0)`; `platformDataKey.length == platformDataValue.length`; each `platformDataValue[i] != bytes32(0)`; `launchTime >= block.timestamp + campaignLaunchBuffer`; `deadline >= launchTime + minimumCampaignDuration`; each selected platform is listed; each platform data key is valid; identifier not already used; currency has at least one token. -- Warning: duplicate selected platform hash; duplicate platform data key; `identifierHash == bytes32(0)`; `goalAmount == 0`; empty `nftName` or `nftSymbol`; local-clock launch time likely past (when chain timestamp is unavailable). - -**TreasuryFactory.deploy** - -- Blocking: sender is platform admin; campaign has selected platform (`checkIfPlatformSelected`); `infoAddress != address(0)` for current supported treasury implementations. -- Simulation-backed: implementation approval and initialization paths that depend on private/internal state. - -### 10.2 Priority B: Core Transaction Paths - -**BasePaymentTreasury.createPayment** - -- Blocking: non-zero `paymentId`, `buyerId`, `itemId`; non-zero `paymentToken`; `amount > 0`; each line item has non-zero `typeId` and `amount > 0`; token accepted; payment ID not already used; `expiration > block.timestamp`; if max expiration configured: `expiration <= block.timestamp + max`; each line item type exists; campaign not paused/cancelled; sender is platform admin. -- Warning: expiration likely past (when chain timestamp is unavailable). - -**BasePaymentTreasury.createPaymentBatch** - -- Blocking: all eight arrays same length; batch non-empty; no duplicate `paymentIds`; per-index checks equivalent to `createPayment`. -- Warning: batch size risk threshold (gas). - -**BasePaymentTreasury.processCryptoPayment** - -- Blocking: non-zero ids, addresses, amount, line-item fields; token accepted; payment does not already exist; line-item types exist; campaign not paused/cancelled. -- Warning: ERC20 allowance insufficient; ERC20 balance insufficient. - -**AllOrNothing.addRewards** - -- Blocking: reward name non-zero; reward value > 0; reward arrays length parity; inner item arrays parity; no duplicate names in input; reward does not already exist on-chain; authorized sender; campaign/treasury not paused/cancelled. - -**AllOrNothing.pledgeForAReward** - -- Blocking: non-zero `backer`, `pledgeToken`; reward array non-empty; each reward entry non-zero; token accepted; campaign window active; reward exists; first reward is tier; campaign/treasury not paused/cancelled. - -**AllOrNothing.pledgeWithoutAReward** - -- Blocking: non-zero `backer`, `pledgeToken`; token accepted; campaign window active; campaign/treasury not paused/cancelled. -- Warning: pledge amount is zero (allowed but usually unintended). - -**KeepWhatsRaised.configureTreasury** - -- Blocking: `deadline > launchTime`; gross fee key/value array parity; sender is platform admin; campaign/treasury not paused/cancelled; `launchTime >= block.timestamp`. -- Warning: goal amount zero (advisory). - -**KeepWhatsRaised.addRewards, pledgeForAReward, pledgeWithoutAReward** - -- Apply analogous checks to AllOrNothing, plus: blocking check for processed pledge ID where readable via public mapping/getter. - -### 10.3 Deferred in V1 (Simulation-led) - -- Checks depending on private mappings/structs without public getters. -- Complex accounting-heavy confirm/withdraw/disburse eligibility paths. -- Config-lock and refund-window logic in KWR where private fields are required. - -## 11. Assumptions - -- SDK has reliable contract registry (address + ABI by chain/environment). -- `safe()` is the recommended write path for production. -- `safe()` requires signer availability and fails fast before execution if signer is missing. -- State read failures do not block in default mode; simulation remains the final guard. -- Any future API expansion keeps backward compatibility for `PreflightIssue` and code IDs. diff --git a/SDK_RFC.md b/SDK_RFC.md deleted file mode 100644 index c5bc87c..0000000 --- a/SDK_RFC.md +++ /dev/null @@ -1,457 +0,0 @@ -# 1. Executive Summary - -Oak Network exposes a growing set of on-chain protocol contracts that developers must interact with directly to build decentralized applications, integrations, automation, and analytics. - -Today, interacting with these contracts requires: - -* Manual ABI handling -* Ad-hoc contract instantiation -* Inconsistent error handling -* Repeated boilerplate for validation, simulation, and event parsing - -This RFC proposes **`@oak-network/contracts`**, a protocol-first smart contract client library whose sole responsibility is to provide safe, typed, and developer-friendly access to Oak protocol contracts. - -The library focuses on: - -* Type-safe contract access -* Preflight validation and developer warnings -* Graceful error translation before sending transactions on-chain -* Typed event querying and decoding -* Optional metrics and aggregation tooling -* Optional auth/wallet adapters (e.g. Privy), without binding developers to them - -The result is a pure protocol SDK that works in frontends, backends, scripts, and indexers — without any dependency on Oak backend services. - ---- - -# 2. Goals & Non-Goals - -### Goals - -* Make Oak protocol contracts easy, safe, and predictable to call -* Eliminate common on-chain revert causes before execution -* Provide typed read, write, and event interfaces -* Surface actionable developer warnings instead of opaque reverts -* Support multiple chains and environments explicitly -* Enable analytics and metrics without forcing a hosted indexer -* Allow optional tooling (Privy, metrics providers) without coupling - -### Non-Goals - -* No backend HTTP or API integration -* No mandatory wallet or auth provider -* No UI components or wallet UX -* No off-chain business logic orchestration -* No forced indexing infrastructure - ---- - -# 3. Package Scope & Structure - -**Package Name** -`@oak-network/contracts` - -**Subpath Exports (Logical Modules)** - -* `@oak-network/contracts` – core protocol client -* `@oak-network/contracts/preflight` – validation & warnings -* `@oak-network/contracts/events` – event querying & decoding -* `@oak-network/contracts/metrics` – aggregation helpers -* `@oak-network/contracts/privy` – optional Privy adapter - -> **Hard rule:** Core must never import optional modules or heavy dependencies. - ---- - -# 4. Core Design Principles - -### 4.1 Protocol-First Design - -The library mirrors the on-chain protocol surface, not application workflows. - -* Methods map 1:1 to Solidity functions -* No opinionated flows -* Developers compose logic externally - -### 4.2 Strong Typing Is Mandatory - -All public APIs must be: - -* Fully typed -* ABI-aligned -* Event-safe -* Compile-time verified - -No `any` types are allowed at the public boundary. - -### 4.3 Zero Backend Dependency - -The library must work in a fully decentralized environment. - -* No API keys -* No Oak service URLs -* No backend assumptions - ---- - -# 5. Contract Typing Strategy - -### 5.1 TypeChain as Source of Truth - -All contract bindings are generated from Solidity artifacts using TypeChain. - -* No handwritten wrappers -* ABI drift caught at compile time -* Events and return values strictly typed - -### 5.2 Runtime Support - -Bindings must support: - -* Viem -* Ethers v6 - -Adapters may exist, but the ABI typing pipeline is canonical. - ---- - -# 6. Contract Registry & Address Resolution - -### 6.1 Central Contract Registry - -The library maintains a registry mapping: - -* Contract name -* ABI/type reference -* Supported chains -* Environment-specific deployment addresses - -Example mapping: -`Vault → { sandbox → base → 0x..., production → base → 0x... }` - -### 6.2 Explicit Environment & Chain - -Instantiation requires: - -* **environment:** `sandbox` | `production` -* **chain:** e.g. `ethereum` | `polygon` | `base` - -No defaults. No guessing. - -### 6.3 Fail-Fast Safety - -If a contract is: - -* Not deployed -* Unsupported on the chain -* Mismatched with environment - -Instantiation fails immediately with a descriptive error. - ---- - -# 7. Client Construction Model - -### 7.1 Explicit Wiring - -The library does not manage wallets or RPC selection. Consumers must provide: - -* `publicClient` (read) -* Optional `signer` (write) - -```typescript -const oak = createOakContractsClient({ - environment: 'sandbox', - chain: 'base', - publicClient, - signer, -}); - -``` - -### 7.2 Read vs Write Separation - -* Read methods require only a public client -* Write methods require a signer -* Missing signer → fail fast before any RPC call - ---- - -# 8. Preflight Validation & Developer Warnings - -### 8.1 Motivation - -Many smart contract reverts are caused by predictable input mistakes: - -* Array length mismatch -* Incorrect ordering -* Invalid casing -* Duplicate values -* Sums not matching invariants (e.g. BPS) -* Malformed addresses - -These should be detected before simulation or transaction submission. - -### 8.2 Preflight Layer (Concept) - -The Preflight Layer performs: - -* Local validation -* Semantic checks -* Optional normalization -* Developer-facing warnings - -It runs before simulation and before sending transactions. - -### 8.3 Preflight Modes - -```typescript -preflight: { - mode: 'warn' | 'strict' | 'normalize', - collect: true -} - -``` - -| Mode | Behavior | -| --- | --- | -| **strict** | Any issue blocks execution | -| **warn** | Warnings surfaced, execution allowed | -| **normalize** | Safe canonical fixes applied + warnings | - -**Default:** `warn` - -### 8.4 Preflight Output - -```typescript -type PreflightIssue = { - code: string; - severity: 'error' | 'warn'; - message: string; - fieldPath?: string; - suggestion?: string; - normalized?: boolean; -}; - -type PreflightResult = - | { ok: true; normalized: T; warnings: PreflightIssue[] } - | { ok: false; issues: PreflightIssue[] }; - -``` - -Each write method exposes: - -* `method.preflight(input)` -* `method.safe(input)` - -### 8.5 What Preflight Validates - -**A. Structural Validation (Zero RPC)** - -* Address format & checksum -* Numeric bounds -* Empty arrays -* Enum correctness - -**B. Semantic Validation** - -* Array length equality -* Ordering constraints -* Duplicate detection -* Sum invariants (e.g. BPS = 10000) -* Required role presence - -**C. Canonical Normalization (Optional)** - -* Address checksum normalization -* Stable sorting (when protocol expects it) -* Duplicate removal (warn + normalize) - -Normalization is contract-method specific and opt-in. - -### 8.6 Developer Warnings (DX) - -Warnings are explicit and actionable (e.g., `ARRAY_ORDER_MISMATCH`, `BPS_SUM_INVALID`, `DUPLICATE_RECIPIENT`, `STRING_CASE_MISMATCH`). - -Warnings explain: - -* Why it matters -* What may revert -* How to fix - ---- - -# 9. Error Translation & Simulation - -### 9.1 Separation of Concerns - -* **Preflight:** Local, deterministic -* **Simulation:** RPC dry-run (`callStatic` / `simulateContract`) -* **Execution:** Actual transaction - -### 9.2 Error Taxonomy - -Errors are translated into typed Oak errors: - -* `InputValidationError` -* `EnvironmentMismatchError` -* `ContractNotDeployedError` -* `MissingSignerError` -* `SimulationRevertedError` -* `TransactionRevertedError` -* `RpcError` - -No raw RPC errors leak to the developer. - ---- - -# 10. Optional Privy Auth Adapter - -### 10.1 Purpose - -Some integrators want: - -* Embedded wallets -* Session-based signing -* Social login -Others do not. - -### 10.2 Design - -Privy support is provided as an optional adapter: `@oak-network/contracts/privy` - -```typescript -const { signer, publicClient } = await createPrivySignerAdapter({ - privyClient, - chain -}); - -const oak = createOakContractsClient({ - signer, - publicClient, - ... -}); - -``` - -### 10.3 Boundary Rules - -* Core never imports Privy -* Privy module depends on Privy SDK -* No opinionated auth flows - ---- - -# 11. Events Tooling - -### 11.1 Typed Event Queries - -Under `@oak-network/contracts/events`: - -* Typed filters -* Decoded logs -* Pagination helpers -* Block-range utilities - -```typescript -oak.events.Vault.Deposit.query({ fromBlock, toBlock, filter }); - -``` - -### 11.2 Normalized Event Format - -Events expose: - -* Name -* Args (typed) -* Tx hash -* Block number -* Optional timestamp (opt-in) - -Indexer-friendly by design. - ---- - -# 12. Metrics & Aggregations Tooling - -### 12.1 Objectives - -Provide common protocol metrics without forcing a hosted indexer. - -### 12.2 Two-Tier Model - -**Tier A: RPC-Based (Bounded)** - -* Contract reads -* Limited event scans -* Safe for dashboards & scripts -* *Examples:* TVL (if exposed), deposits in last N blocks, unique contributors (bounded). - -**Tier B: Indexer-Backed (Pluggable)** -Expose an interface: - -```typescript -interface OakMetricsProvider { - getVaultTVL(vaultId): Promise; - getVolume(range): Promise; -} - -``` - -Indexers can implement this without modifying core. - ---- - -# 13. Testing Strategy - -* Preflight rule unit tests -* Error translation tests -* Event decoding snapshots -* Metrics provider contract tests -* Forked-chain validation where needed -* **100% coverage required for library logic.** - ---- - -# 14. Versioning - -**Semantic Versioning:** - -* **MAJOR:** ABI or API breaking changes -* **MINOR:** New contracts, methods, tooling -* **PATCH:** Fixes, validation improvements - ---- - -# 15. Definition of Done - -A feature is complete only if: - -* Preflight validation exists (if write method) -* Errors are translated -* Events are typed -* Optional tooling remains isolated -* Documentation examples updated - ---- - -# 16. Implementation Roadmap (Proposed) - -**Phase 1** - -* Core registry & client -* TypeChain bindings -* Preflight framework -* Error taxonomy - -**Phase 2** - -* Event querying utilities -* Simulation wrappers -* Metrics (RPC-based) - -**Phase 3** - -* Privy adapter -* Indexer interfaces -* DX polish & docs \ No newline at end of file diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index a64c9b1..d6c8322 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -402,7 +402,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { // Reject treasury address as payer to prevent accounting inflation via self-transfer if (backer == address(this)) { - revert AllOrNothingInvalidInput(); + revert AllOrNothingInvalidInput("INVALID_BACKER"); } // If this is for a reward, pledgeAmount and shippingFee are in 18 decimals diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 3f73f80..c3c8ec7 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -1234,7 +1234,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa // Reject treasury address as payer to prevent accounting inflation via self-transfer if (tokenSource == address(this) || backer == address(this)) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("INVALID_BACKER"); } // If this is for a reward, pledgeAmount is in 18 decimals and needs to be denormalized @@ -1256,7 +1256,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa uint256 actualReceived = IERC20(pledgeToken).balanceOf(address(this)) - balanceBefore; if (actualReceived < tip) { - revert KeepWhatsRaisedInvalidInput(); + revert KeepWhatsRaisedInvalidInput("INSUFFICIENT_RECEIVED"); } uint256 actualPledgeAmount = actualReceived - tip; diff --git a/src/treasuries/PaymentTreasury.sol b/src/treasuries/PaymentTreasury.sol index 6de23e7..ae2a225 100644 --- a/src/treasuries/PaymentTreasury.sol +++ b/src/treasuries/PaymentTreasury.sol @@ -101,14 +101,14 @@ contract PaymentTreasury is BasePaymentTreasury { /** * @inheritdoc ICampaignPaymentTreasury */ - function claimRefund(bytes32 paymentId, address refundAddress) public override whenNotPaused whenNotCancelled { + function claimRefund(bytes32 paymentId, address refundAddress) public override whenNotPaused { super.claimRefund(paymentId, refundAddress); } /** * @inheritdoc ICampaignPaymentTreasury */ - function claimRefund(bytes32 paymentId) public override whenNotPaused whenNotCancelled { + function claimRefund(bytes32 paymentId) public override whenNotPaused { super.claimRefund(paymentId); } diff --git a/src/treasuries/TimeConstrainedPaymentTreasury.sol b/src/treasuries/TimeConstrainedPaymentTreasury.sol index e390761..e1ec643 100644 --- a/src/treasuries/TimeConstrainedPaymentTreasury.sol +++ b/src/treasuries/TimeConstrainedPaymentTreasury.sol @@ -126,7 +126,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker /** * @inheritdoc ICampaignPaymentTreasury */ - function claimRefund(bytes32 paymentId, address refundAddress) public override whenNotPaused whenNotCancelled { + function claimRefund(bytes32 paymentId, address refundAddress) public override whenNotPaused { _checkTimeIsAfterLaunch(); super.claimRefund(paymentId, refundAddress); } @@ -134,7 +134,7 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker /** * @inheritdoc ICampaignPaymentTreasury */ - function claimRefund(bytes32 paymentId) public override whenNotPaused whenNotCancelled { + function claimRefund(bytes32 paymentId) public override whenNotPaused { _checkTimeIsAfterLaunch(); super.claimRefund(paymentId); } diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index d21faad..c3b15aa 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -838,7 +838,7 @@ abstract contract BasePaymentTreasury is // Reject treasury address as payer to prevent accounting inflation via self-transfer if (buyerAddress == address(this)) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("INVALID_BUYER"); } if (lineItems.length > MAX_LINE_ITEMS || externalFees.length > MAX_EXTERNAL_FEES) { @@ -961,7 +961,7 @@ abstract contract BasePaymentTreasury is uint256 balanceBefore = IERC20(paymentToken).balanceOf(address(this)); IERC20(paymentToken).safeTransferFrom(buyerAddress, address(this), totalAmount); if (IERC20(paymentToken).balanceOf(address(this)) - balanceBefore < totalAmount) { - revert PaymentTreasuryInvalidInput(); + revert PaymentTreasuryInvalidInput("INSUFFICIENT_RECEIVED"); } s_payment[internalPaymentId] = PaymentInfo({ diff --git a/test/foundry/unit/KeepWhatsRaised.t.sol b/test/foundry/unit/KeepWhatsRaised.t.sol index a53b4fb..6c43d22 100644 --- a/test/foundry/unit/KeepWhatsRaised.t.sol +++ b/test/foundry/unit/KeepWhatsRaised.t.sol @@ -586,7 +586,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te rewardSelection[0] = TEST_REWARD_NAME; rewardSelection[1] = addOnRewardName; - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "REWARD_NOT_FOUND")); keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection); vm.stopPrank(); } From 8f2034fc338ff00b8597485fdcfc23cc45e6eb39 Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 15:15:50 +0600 Subject: [PATCH 49/61] Add pre campaign launch constraint to removeReward (OZ-20) (#40) * Add pre campaign launch time constraint to removeReward --- src/treasuries/AllOrNothing.sol | 1 + src/treasuries/KeepWhatsRaised.sol | 1 + 2 files changed, 2 insertions(+) diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index d6c8322..65677fd 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -244,6 +244,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { function removeReward(bytes32 rewardName) external onlyCampaignOwner + currentTimeIsLess(INFO.getLaunchTime()) whenCampaignNotPaused whenNotPaused whenCampaignNotCancelled diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index c3c8ec7..4e7705d 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -710,6 +710,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa function removeReward(bytes32 rewardName) external onlyCampaignOwner + currentTimeIsLess(getLaunchTime()) whenCampaignNotPaused whenNotPaused whenCampaignNotCancelled From d0c7a18b914f53c154bc9cf7c86b8adec5f7d1dd Mon Sep 17 00:00:00 2001 From: Adnan Date: Thu, 19 Mar 2026 15:19:33 +0600 Subject: [PATCH 50/61] Enforce campaign lifecycle for treasury onboarding and config updates (#57) --- src/CampaignInfo.sol | 13 +++-- test/foundry/unit/CampaignInfo.t.sol | 79 ++++++++++++++++++++++++++-- 2 files changed, 86 insertions(+), 6 deletions(-) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index cd88e53..c36b6d8 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -497,17 +497,22 @@ contract CampaignInfo is external override onlyOwner + currentTimeIsLess(getLaunchTime()) whenNotPaused whenNotCancelled whenNotLocked { uint256 deadline = getDeadline(); + uint256 campaignLaunchBuffer = + uint256(_getGlobalParams().getFromRegistry(DataRegistryKeys.CAMPAIGN_LAUNCH_BUFFER)); uint256 minimumCampaignDuration = uint256(_getGlobalParams().getFromRegistry(DataRegistryKeys.MINIMUM_CAMPAIGN_DURATION)); - // Ensure launch time is not in the past and deadline still meets minimum duration requirement - // Allow moving launch time closer to current time as long as minimum duration is maintained - if (launchTime < block.timestamp || deadline < launchTime + minimumCampaignDuration) { + // Keep launch-time updates aligned with the same creation-time buffer and duration checks. + if ( + launchTime < block.timestamp + campaignLaunchBuffer || deadline <= launchTime + || deadline < launchTime + minimumCampaignDuration + ) { revert CampaignInfoInvalidInput(); } @@ -522,6 +527,7 @@ contract CampaignInfo is external override onlyOwner + currentTimeIsLess(getLaunchTime()) whenNotPaused whenNotCancelled whenNotLocked @@ -545,6 +551,7 @@ contract CampaignInfo is external override onlyOwner + currentTimeIsLess(getLaunchTime()) whenNotPaused whenNotCancelled whenNotLocked diff --git a/test/foundry/unit/CampaignInfo.t.sol b/test/foundry/unit/CampaignInfo.t.sol index 42b3ed7..4b6490f 100644 --- a/test/foundry/unit/CampaignInfo.t.sol +++ b/test/foundry/unit/CampaignInfo.t.sol @@ -471,6 +471,76 @@ contract CampaignInfo_UnitTest is Test, Defaults { vm.stopPrank(); } + function test_UpdateLaunchTime_RespectsCampaignLaunchBuffer_Reverts() public { + vm.startPrank(admin); + globalParams.addToRegistry( + DataRegistryKeys.CAMPAIGN_LAUNCH_BUFFER, + bytes32(uint256(2 days)) + ); + vm.stopPrank(); + + vm.startPrank(campaignOwner); + vm.expectRevert(CampaignInfo.CampaignInfoInvalidInput.selector); + campaignInfo.updateLaunchTime(block.timestamp + 1 days); + vm.stopPrank(); + } + + function test_UpdateLaunchTime_AfterLaunch_Reverts() public { + vm.warp(campaignInfo.getLaunchTime()); + + vm.startPrank(campaignOwner); + vm.expectRevert(); + campaignInfo.updateLaunchTime(block.timestamp + 1 days); + vm.stopPrank(); + } + + function test_UpdateDeadline_AfterLaunch_Reverts() public { + vm.warp(campaignInfo.getLaunchTime()); + + vm.startPrank(campaignOwner); + vm.expectRevert(); + campaignInfo.updateDeadline(block.timestamp + 30 days); + vm.stopPrank(); + } + + function test_UpdateGoalAmount_AfterLaunch_Reverts() public { + vm.warp(campaignInfo.getLaunchTime()); + + vm.startPrank(campaignOwner); + vm.expectRevert(); + campaignInfo.updateGoalAmount(2000 * 10 ** 18); + vm.stopPrank(); + } + + function test_DeployTreasury_AfterDeadline_Reverts() public { + _selectPlatform1(); + + vm.warp(campaignInfo.getDeadline()); + + vm.startPrank(admin); + vm.expectRevert(TreasuryFactory.TreasuryFactorySettingPlatformInfoFailed.selector); + treasuryFactory.deploy(platformHash1, address(campaignInfo), 1); + vm.stopPrank(); + + assertFalse(campaignInfo.isLocked()); + assertFalse(campaignInfo.checkIfPlatformApproved(platformHash1)); + } + + function test_DeployTreasury_WhenCancelled_Reverts() public { + _selectPlatform1(); + + vm.prank(campaignOwner); + campaignInfo._cancelCampaign(keccak256("test cancel")); + + vm.startPrank(admin); + vm.expectRevert(TreasuryFactory.TreasuryFactorySettingPlatformInfoFailed.selector); + treasuryFactory.deploy(platformHash1, address(campaignInfo), 1); + vm.stopPrank(); + + assertFalse(campaignInfo.isLocked()); + assertFalse(campaignInfo.checkIfPlatformApproved(platformHash1)); + } + // ============ Transfer Ownership Tests ============ function test_TransferOwnership_Success() public { @@ -657,7 +727,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { // Deploy a treasury using the treasury factory - this will call setPlatformInfo vm.startPrank(admin); - address treasury = treasuryFactory.deploy( + treasuryFactory.deploy( platformHash1, address(campaignInfo), 1 // implementationId @@ -903,8 +973,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { } // Helper function to lock the campaign - function _lockCampaign() internal { - // First select a platform + function _selectPlatform1() internal { vm.startPrank(campaignOwner); bytes32[] memory dataKeys = new bytes32[](1); dataKeys[0] = platformDataKey1; @@ -913,6 +982,10 @@ contract CampaignInfo_UnitTest is Test, Defaults { campaignInfo.updateSelectedPlatform(platformHash1, true, dataKeys, dataValues); vm.stopPrank(); + } + + function _lockCampaign() internal { + _selectPlatform1(); // Then deploy a treasury (this locks the campaign) vm.startPrank(admin); From 9fcc553a38e98d6e38f9e9b6bf784e75c74851cb Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 15:38:21 +0600 Subject: [PATCH 51/61] Refactor error handling in BasePaymentTreasury contract (OZ-43) (#29) * Refactor error handling in BasePaymentTreasury contract - Updated revert statements to use `paymentId` instead of `internalPaymentId` for better clarity and consistency in error messages related to payment existence, confirmation, and claimability. * Refactor payment claim validation in BasePaymentTreasury to improve error handling. * Update tests in KeepWhatsRaised_UnitTest to utilize _resetTreasury for improved state management and error validation in treasury configuration scenarios. --------- Co-authored-by: rayedsikder --- src/utils/BasePaymentTreasury.sol | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index c3b15aa..dfb795b 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -1290,17 +1290,20 @@ abstract contract BasePaymentTreasury is uint256 tokenId = s_paymentIdToNFTId[internalPaymentId]; if (payment.buyerId == ZERO_BYTES) { - revert PaymentTreasuryPaymentNotExist(internalPaymentId); + revert PaymentTreasuryPaymentNotExist(paymentId); } if (!payment.isConfirmed) { - revert PaymentTreasuryPaymentNotConfirmed(internalPaymentId); + revert PaymentTreasuryPaymentNotConfirmed(paymentId); } if (amountToRefund == 0) { revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "ZERO_AMOUNT"); } // This function is for non-NFT payments only if (tokenId != 0) { - revert PaymentTreasuryCryptoPayment(internalPaymentId); + revert PaymentTreasuryCryptoPayment(paymentId); + } + if (availablePaymentAmount < amountToRefund) { + revert PaymentTreasuryPaymentNotClaimable(paymentId, "INSUFFICIENT_LIQUIDITY"); } // Use snapshots of line item type configuration from payment creation time From 9d290ec3f42219c77c8a35c899528a1699f880d2 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 16:03:50 +0600 Subject: [PATCH 52/61] Add item existence checks and removal functionality in ItemRegistry contract (OZ-51) (#35) * Add item existence checks and removal functionality in ItemRegistry contract - Introduced a mapping to track item existence for each owner. - Added error handling for adding duplicate items and removing non-existent items. - Implemented an event for item removal. - Updated addItem and removeItem functions to incorporate new checks and emit appropriate events. * Refactor item existence checks in ItemRegistry contract - Moved the item existence check for duplicates to occur after the initial loop, ensuring proper validation before adding items. - Maintained error handling for duplicate item IDs and existing items to enhance contract reliability. --- src/utils/ItemRegistry.sol | 46 ++++++++++++++++++++++++---- test/foundry/unit/CampaignInfo.t.sol | 2 +- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/src/utils/ItemRegistry.sol b/src/utils/ItemRegistry.sol index 6c1ebec..c3a33f3 100644 --- a/src/utils/ItemRegistry.sol +++ b/src/utils/ItemRegistry.sol @@ -11,6 +11,7 @@ import {IItem} from "../interfaces/IItem.sol"; */ contract ItemRegistry is IItem, Context { mapping(address => mapping(bytes32 => Item)) private Items; + mapping(address => mapping(bytes32 => bool)) private s_itemExists; /** * @dev Emitted when a new item is added to the registry. @@ -20,17 +21,36 @@ contract ItemRegistry is IItem, Context { */ event ItemAdded(address indexed owner, bytes32 indexed itemId, Item item); + /** + * @dev Emitted when an item is removed from the registry. + * @param owner The address of the item owner. + * @param itemId The unique identifier of the item. + */ + event ItemRemoved(address indexed owner, bytes32 indexed itemId); + /** * @dev Thrown when the input arrays have mismatched lengths. */ error ItemRegistryMismatchedArraysLength(); + /** + * @dev Thrown when attempting to add an item that already exists (overwrite not allowed). + * @param itemId The item identifier that already exists. + */ + error ItemRegistryItemAlreadyExists(bytes32 itemId); + /** * @dev Thrown when the batch contains duplicate itemIds. * @param itemId The duplicate item identifier. */ error ItemRegistryDuplicateItemId(bytes32 itemId); + /** + * @dev Thrown when attempting to remove an item that does not exist. + * @param itemId The item identifier. + */ + error ItemRegistryItemDoesNotExist(bytes32 itemId); + /** * @inheritdoc IItem */ @@ -42,7 +62,9 @@ contract ItemRegistry is IItem, Context { * @inheritdoc IItem */ function addItem(bytes32 itemId, Item calldata item) external override { + if (s_itemExists[_msgSender()][itemId]) revert ItemRegistryItemAlreadyExists(itemId); Items[_msgSender()][itemId] = item; + s_itemExists[_msgSender()][itemId] = true; emit ItemAdded(_msgSender(), itemId, item); } @@ -56,19 +78,31 @@ contract ItemRegistry is IItem, Context { revert ItemRegistryMismatchedArraysLength(); } + address owner = _msgSender(); for (uint256 i = 0; i < itemIds.length; i++) { bytes32 itemId = itemIds[i]; - // Reject duplicate itemIds within the batch to avoid duplicate event emissions for (uint256 j = 0; j < i; j++) { - if (itemIds[j] == itemId) { - revert ItemRegistryDuplicateItemId(itemId); - } + if (itemIds[j] == itemId) revert ItemRegistryDuplicateItemId(itemId); } + if (s_itemExists[owner][itemId]) revert ItemRegistryItemAlreadyExists(itemId); + Item calldata item = items[i]; - Items[_msgSender()][itemId] = item; - emit ItemAdded(_msgSender(), itemId, item); + Items[owner][itemId] = item; + s_itemExists[owner][itemId] = true; + emit ItemAdded(owner, itemId, item); } } + + /** + * @notice Removes an item from the caller's registry. + * @param itemId The unique identifier of the item to remove. + */ + function removeItem(bytes32 itemId) external { + if (!s_itemExists[_msgSender()][itemId]) revert ItemRegistryItemDoesNotExist(itemId); + delete Items[_msgSender()][itemId]; + s_itemExists[_msgSender()][itemId] = false; + emit ItemRemoved(_msgSender(), itemId); + } } diff --git a/test/foundry/unit/CampaignInfo.t.sol b/test/foundry/unit/CampaignInfo.t.sol index 4b6490f..0f8f68e 100644 --- a/test/foundry/unit/CampaignInfo.t.sol +++ b/test/foundry/unit/CampaignInfo.t.sol @@ -530,7 +530,7 @@ contract CampaignInfo_UnitTest is Test, Defaults { _selectPlatform1(); vm.prank(campaignOwner); - campaignInfo._cancelCampaign(keccak256("test cancel")); + campaignInfo.cancelCampaign(keccak256("test cancel")); vm.startPrank(admin); vm.expectRevert(TreasuryFactory.TreasuryFactorySettingPlatformInfoFailed.selector); From 770564e55fa7d74f9581d2f2a068cdd195a318eb Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 16:37:50 +0600 Subject: [PATCH 53/61] Refactor pledge processing in AllOrNothing and KeepWhatsRaised contracts (OZ-52) (#36) * Refactor pledge processing in AllOrNothing and KeepWhatsRaised contracts - Updated the _pledge function to ensure pledgeAmount and shippingFee are always in the token's native decimals, removing the need for denormalization by the caller. - Enhanced documentation for the _pledge function to clarify parameter requirements and processing logic. - Adjusted related calculations and state updates to reflect the new handling of pledge amounts and fees. * Add token acceptance checks in AllOrNothing and KeepWhatsRaised contracts - Implemented checks to ensure that the pledge token is accepted before processing pledges. - Added specific revert messages for each contract to improve error handling and clarity in case of unsupported tokens. * Block treasury deployment after deadline or when campaign cancelled Made-with: Cursor --------- Co-authored-by: adnanhq --- src/CampaignInfo.sol | 7 ++++- src/treasuries/AllOrNothing.sol | 46 ++++++++++++++---------------- src/treasuries/KeepWhatsRaised.sol | 39 ++++++++++++------------- 3 files changed, 46 insertions(+), 46 deletions(-) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index c36b6d8..49a3f5f 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -695,7 +695,12 @@ contract CampaignInfo is * @param platformHash The bytes32 identifier of the platform. * @param platformTreasuryAddress The address of the platform's treasury. */ - function setPlatformInfo(bytes32 platformHash, address platformTreasuryAddress) external whenNotPaused { + function setPlatformInfo(bytes32 platformHash, address platformTreasuryAddress) + external + whenNotPaused + whenNotCancelled + currentTimeIsLess(getDeadline()) + { Config memory config = getCampaignConfig(); if (_msgSender() != config.treasuryFactory) { revert CampaignInfoUnauthorized(); diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index 65677fd..44014fd 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -294,7 +294,12 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { } pledgeAmount += tempReward.rewardValue; } - _pledge(backer, pledgeToken, reward[0], pledgeAmount, shippingFee, reward); + if (!INFO.isTokenAccepted(pledgeToken)) { + revert AllOrNothingTokenNotAccepted(pledgeToken); + } + uint256 pledgeAmountInTokenDecimals = _denormalizeAmount(pledgeToken, pledgeAmount); + uint256 shippingFeeInTokenDecimals = _denormalizeAmount(pledgeToken, shippingFee); + _pledge(backer, pledgeToken, reward[0], pledgeAmountInTokenDecimals, shippingFeeInTokenDecimals, reward); } /** @@ -386,8 +391,16 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { return INFO.getTotalRaisedAmount() >= INFO.getGoalAmount(); } - /// @dev Mints a pledge NFT via `_safeMint`; reverts if `backer` is a contract - /// that does not implement `IERC721Receiver`. + /** + * @dev Processes a pledge: transfers tokens, mints NFT, and updates state. + * @dev Mints a pledge NFT via `_safeMint`; reverts if `backer` is a contract that does not implement `IERC721Receiver`. + * @param backer Recipient of the pledge NFT. + * @param pledgeToken Token used for the pledge. + * @param reward First reward tier (ZERO_BYTES for non-reward pledges). + * @param pledgeAmount Pledge amount in the token's native decimals (must be denormalized by caller). + * @param shippingFee Shipping fee in the token's native decimals (must be denormalized by caller; use 0 for non-reward). + * @param rewards Full reward selection (for event). + */ function _pledge( address backer, address pledgeToken, @@ -396,43 +409,26 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { uint256 shippingFee, bytes32[] memory rewards ) private { - // Validate token is accepted if (!INFO.isTokenAccepted(pledgeToken)) { revert AllOrNothingTokenNotAccepted(pledgeToken); } - - // Reject treasury address as payer to prevent accounting inflation via self-transfer if (backer == address(this)) { revert AllOrNothingInvalidInput("INVALID_BACKER"); } - - // If this is for a reward, pledgeAmount and shippingFee are in 18 decimals - // If not for a reward, amounts are already in token decimals - uint256 pledgeAmountInTokenDecimals; - uint256 shippingFeeInTokenDecimals; - - if (reward != ZERO_BYTES) { - // Reward pledge: denormalize from 18 decimals to token decimals - pledgeAmountInTokenDecimals = _denormalizeAmount(pledgeToken, pledgeAmount); - shippingFeeInTokenDecimals = _denormalizeAmount(pledgeToken, shippingFee); - } else { - // Non-reward pledge: already in token decimals; shippingFee is always 0 (from pledgeWithoutAReward) - pledgeAmountInTokenDecimals = pledgeAmount; - } - - uint256 totalAmount = pledgeAmountInTokenDecimals + shippingFeeInTokenDecimals; + // pledgeAmount and shippingFee are always in pledgeToken's native decimals (callers must denormalize) + uint256 totalAmount = pledgeAmount + shippingFee; uint256 balanceBefore = IERC20(pledgeToken).balanceOf(address(this)); IERC20(pledgeToken).safeTransferFrom(backer, address(this), totalAmount); uint256 actualReceived = IERC20(pledgeToken).balanceOf(address(this)) - balanceBefore; - if (actualReceived < shippingFeeInTokenDecimals) { + if (actualReceived < shippingFee) { revert AllOrNothingTransferFailed(); } - uint256 actualPledgeAmount = actualReceived - shippingFeeInTokenDecimals; + uint256 actualPledgeAmount = actualReceived - shippingFee; uint256 tokenId = INFO.mintNFTForPledge( - backer, reward, pledgeToken, actualPledgeAmount, shippingFeeInTokenDecimals, 0 + backer, reward, pledgeToken, pledgeAmount, shippingFee, 0 ); s_tokenToPledgedAmount[tokenId] = actualPledgeAmount; diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 4e7705d..cfee899 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -837,7 +837,11 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa } pledgeAmount += tempReward.rewardValue; } - _pledge(pledgeId, backer, pledgeToken, reward[0], pledgeAmount, tip, reward, tokenSource); + if (!INFO.isTokenAccepted(pledgeToken)) { + revert KeepWhatsRaisedTokenNotAccepted(pledgeToken); + } + uint256 pledgeAmountInTokenDecimals = _denormalizeAmount(pledgeToken, pledgeAmount); + _pledge(pledgeId, backer, pledgeToken, reward[0], pledgeAmountInTokenDecimals, tip, reward, tokenSource); } /** @@ -1216,8 +1220,18 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa return true; } - /// @dev Mints a pledge NFT via `_safeMint`; reverts if `backer` is a contract - /// that does not implement `IERC721Receiver`. + /** + * @dev Processes a pledge: transfers tokens, mints NFT, and updates state. + * @dev Mints a pledge NFT via `_safeMint`; reverts if `backer` is a contract that does not implement `IERC721Receiver`. + * @param pledgeId Unique identifier for the pledge. + * @param backer Recipient of the pledge NFT. + * @param pledgeToken Token used for the pledge. + * @param reward First reward tier (ZERO_BYTES for non-reward pledges). + * @param pledgeAmount Pledge amount in the token's native decimals (must be denormalized by caller). + * @param tip Tip amount in the token's native decimals. + * @param rewards Full reward selection (for event). + * @param tokenSource Address from which tokens are transferred. + */ function _pledge( bytes32 pledgeId, address backer, @@ -1228,29 +1242,14 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa bytes32[] memory rewards, address tokenSource ) private { - // Validate token is accepted if (!INFO.isTokenAccepted(pledgeToken)) { revert KeepWhatsRaisedTokenNotAccepted(pledgeToken); } - - // Reject treasury address as payer to prevent accounting inflation via self-transfer if (tokenSource == address(this) || backer == address(this)) { revert KeepWhatsRaisedInvalidInput("INVALID_BACKER"); } - - // If this is for a reward, pledgeAmount is in 18 decimals and needs to be denormalized - // If not for a reward (pledgeWithoutAReward), pledgeAmount is already in token decimals - // Tip is always in the pledgeToken's decimals (same token used for payment) - uint256 pledgeAmountInTokenDecimals; - if (reward != ZERO_BYTES) { - // Reward pledge: denormalize from 18 decimals to token decimals - pledgeAmountInTokenDecimals = _denormalizeAmount(pledgeToken, pledgeAmount); - } else { - // Non-reward pledge: already in token decimals - pledgeAmountInTokenDecimals = pledgeAmount; - } - - uint256 totalAmount = pledgeAmountInTokenDecimals + tip; + // pledgeAmount and tip are always in pledgeToken's native decimals (callers must denormalize) + uint256 totalAmount = pledgeAmount + tip; uint256 balanceBefore = IERC20(pledgeToken).balanceOf(address(this)); IERC20(pledgeToken).safeTransferFrom(tokenSource, address(this), totalAmount); From 4f3ebda67c3b88e673e5b962779598a88653de73 Mon Sep 17 00:00:00 2001 From: mahabubAlahi <32974385+mahabubAlahi@users.noreply.github.com> Date: Thu, 19 Mar 2026 16:52:31 +0600 Subject: [PATCH 54/61] Refactor error handling in treasury contracts (OZ-46) (#30) * Refactor error handling in treasury contracts - Introduced specific error messages for various invalid input scenarios in CampaignInfoFactory, AllOrNothing, KeepWhatsRaised, and BasePaymentTreasury contracts. - Enhanced clarity and granularity of error handling by replacing generic reverts with more descriptive custom errors, improving debugging and user feedback. * Update error handling in KeepWhatsRaised unit tests - Replaced generic revert messages with specific custom errors for invalid input scenarios in the KeepWhatsRaised contract tests, enhancing clarity and improving debugging capabilities. - Updated tests to reflect changes in error handling for launch time, first reward tier, and claim fund window conditions. --- src/CampaignInfoFactory.sol | 19 ++++--- src/treasuries/AllOrNothing.sol | 36 +++++++------ src/treasuries/KeepWhatsRaised.sol | 64 +++++++++++++---------- src/utils/BasePaymentTreasury.sol | 67 ++++++++++++++++--------- test/foundry/unit/KeepWhatsRaised.t.sol | 6 +-- 5 files changed, 117 insertions(+), 75 deletions(-) diff --git a/src/CampaignInfoFactory.sol b/src/CampaignInfoFactory.sol index 28a28b4..4f99356 100644 --- a/src/CampaignInfoFactory.sol +++ b/src/CampaignInfoFactory.sol @@ -22,6 +22,15 @@ contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, OwnableUpgr */ error CampaignInfoFactoryInvalidInput(); + /// @dev Reverts when initialOwner is the zero address. + error CampaignInfoFactoryZeroInitialOwner(); + /// @dev Reverts when globalParams is the zero address. + error CampaignInfoFactoryZeroGlobalParams(); + /// @dev Reverts when campaignImplementation is the zero address. + error CampaignInfoFactoryZeroCampaignImplementation(); + /// @dev Reverts when treasuryFactoryAddress is the zero address. + error CampaignInfoFactoryZeroTreasuryFactoryAddress(); + /** * @dev Emitted when campaign creation fails. */ @@ -54,12 +63,10 @@ contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, OwnableUpgr address campaignImplementation, address treasuryFactoryAddress ) public initializer { - if ( - address(globalParams) == address(0) || campaignImplementation == address(0) - || treasuryFactoryAddress == address(0) || initialOwner == address(0) - ) { - revert CampaignInfoFactoryInvalidInput(); - } + if (initialOwner == address(0)) revert CampaignInfoFactoryZeroInitialOwner(); + if (address(globalParams) == address(0)) revert CampaignInfoFactoryZeroGlobalParams(); + if (campaignImplementation == address(0)) revert CampaignInfoFactoryZeroCampaignImplementation(); + if (treasuryFactoryAddress == address(0)) revert CampaignInfoFactoryZeroTreasuryFactoryAddress(); __Ownable_init(initialOwner); __UUPSUpgradeable_init(); diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index 44014fd..5ec4a49 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -81,6 +81,19 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { */ error AllOrNothingInvalidInput(string reason); + /// @dev Reverts when reward name is zero bytes. + error AllOrNothingZeroRewardName(); + /// @dev Reverts when reward value is zero. + error AllOrNothingZeroRewardValue(); + /// @dev Reverts when reward item arrays have mismatched lengths. + error AllOrNothingRewardItemArrayLengthMismatch(); + /// @dev Reverts when backer address is zero. + error AllOrNothingZeroBacker(); + /// @dev Reverts when reward selection length exceeds number of rewards. + error AllOrNothingRewardSelectionLengthMismatch(); + /// @dev Reverts when first reward is not a reward tier. + error AllOrNothingFirstRewardNotTier(); + /** * @dev Emitted when a token transfer fails. */ @@ -213,18 +226,12 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { bytes32 rewardName = rewardNames[i]; Reward calldata reward = rewards[i]; - // Reward name must not be zero bytes and reward value must be non-zero - if (rewardName == ZERO_BYTES || reward.rewardValue == 0) { - revert AllOrNothingInvalidInput("ZERO_NAME_OR_VALUE"); - } + if (rewardName == ZERO_BYTES) revert AllOrNothingZeroRewardName(); + if (reward.rewardValue == 0) revert AllOrNothingZeroRewardValue(); // If there are any items, their arrays must match in length - if ( - (reward.itemId.length != reward.itemValue.length) - || (reward.itemId.length != reward.itemQuantity.length) - ) { - revert AllOrNothingInvalidInput("REWARD_ITEM_LENGTH_MISMATCH"); - } + if (reward.itemId.length != reward.itemValue.length) revert AllOrNothingRewardItemArrayLengthMismatch(); + if (reward.itemId.length != reward.itemQuantity.length) revert AllOrNothingRewardItemArrayLengthMismatch(); // Check for duplicate reward if (s_reward[rewardName].rewardValue != 0) { @@ -278,11 +285,10 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { { uint256 rewardLen = reward.length; Reward storage tempReward = s_reward[reward[0]]; - if ( - backer == address(0) || reward[0] == ZERO_BYTES || !tempReward.isRewardTier - ) { - revert AllOrNothingInvalidInput("INVALID_PLEDGE_INPUT"); - } + if (backer == address(0)) revert AllOrNothingZeroBacker(); + if (rewardLen > s_rewardCounter.current()) revert AllOrNothingRewardSelectionLengthMismatch(); + if (reward[0] == ZERO_BYTES) revert AllOrNothingInvalidInput("INVALID_PLEDGE_INPUT"); + if (!tempReward.isRewardTier) revert AllOrNothingFirstRewardNotTier(); uint256 pledgeAmount = tempReward.rewardValue; for (uint256 i = 1; i < rewardLen; i++) { if (reward[i] == ZERO_BYTES) { diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index cfee899..4f9c918 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -216,6 +216,29 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa /// @dev Emitted when the sum of gross percentage fees is >= PERCENT_DIVIDER (100%). error KeepWhatsRaisedAggregatePercentageExceedsMax(); + /// @dev Reverts when campaign launch time is in the past. + error KeepWhatsRaisedLaunchTimeInPast(); + /// @dev Reverts when campaign deadline is not after launch time. + error KeepWhatsRaisedDeadlineNotAfterLaunch(); + /// @dev Reverts when reward name is zero bytes. + error KeepWhatsRaisedZeroRewardName(); + /// @dev Reverts when reward value is zero. + error KeepWhatsRaisedZeroRewardValue(); + /// @dev Reverts when reward item arrays have mismatched lengths. + error KeepWhatsRaisedRewardItemArrayLengthMismatch(); + /// @dev Reverts when backer address is zero. + error KeepWhatsRaisedZeroBacker(); + /// @dev Reverts when reward selection length exceeds number of rewards. + error KeepWhatsRaisedRewardSelectionLengthMismatch(); + /// @dev Reverts when first reward is not a reward tier. + error KeepWhatsRaisedFirstRewardNotTier(); + /// @dev Reverts when refund amount is zero. + error KeepWhatsRaisedRefundAmountZero(); + /// @dev Reverts when insufficient available balance for refund. + error KeepWhatsRaisedInsufficientAvailableForRefund(uint256 tokenId); + /// @dev Reverts when claimFund is called before refund delay (cancelled) or withdrawal delay (not cancelled). + error KeepWhatsRaisedClaimFundWindowNotReached(); + /** * @dev Emitted when a token is not accepted for the campaign. */ @@ -554,12 +577,11 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenCampaignNotCancelled whenNotCancelled { + if (campaignData.launchTime < block.timestamp) revert KeepWhatsRaisedLaunchTimeInPast(); + if (campaignData.deadline <= campaignData.launchTime) revert KeepWhatsRaisedDeadlineNotAfterLaunch(); if (s_configured) { revert KeepWhatsRaisedAlreadyConfigured(); } - if (campaignData.launchTime < block.timestamp || campaignData.deadline <= campaignData.launchTime) { - revert KeepWhatsRaisedInvalidInput("INVALID_TIMING"); - } if (feeKeys.grossPercentageFeeKeys.length != feeValues.grossPercentageFeeValues.length) { revert KeepWhatsRaisedInvalidInput("FEE_LENGTH_MISMATCH"); } @@ -680,17 +702,12 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa Reward calldata reward = rewards[i]; // Reward name must not be zero bytes and reward value must be non-zero - if (rewardName == ZERO_BYTES || reward.rewardValue == 0) { - revert KeepWhatsRaisedInvalidInput("ZERO_NAME_OR_VALUE"); - } + if (rewardName == ZERO_BYTES) revert KeepWhatsRaisedZeroRewardName(); + if (reward.rewardValue == 0) revert KeepWhatsRaisedZeroRewardValue(); // If there are any items, their arrays must match in length - if ( - (reward.itemId.length != reward.itemValue.length) - || (reward.itemId.length != reward.itemQuantity.length) - ) { - revert KeepWhatsRaisedInvalidInput("REWARD_ITEM_LENGTH_MISMATCH"); - } + if (reward.itemId.length != reward.itemValue.length) revert KeepWhatsRaisedRewardItemArrayLengthMismatch(); + if (reward.itemId.length != reward.itemQuantity.length) revert KeepWhatsRaisedRewardItemArrayLengthMismatch(); // Check for duplicate reward if (s_reward[rewardName].rewardValue != 0) { @@ -821,11 +838,11 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa uint256 rewardLen = reward.length; Reward memory tempReward = s_reward[reward[0]]; - if ( - backer == address(0) || reward[0] == ZERO_BYTES || !tempReward.isRewardTier - ) { - revert KeepWhatsRaisedInvalidInput("INVALID_PLEDGE_INPUT"); - } + if (backer == address(0)) revert KeepWhatsRaisedZeroBacker(); + if (rewardLen > s_rewardCounter.current()) revert KeepWhatsRaisedRewardSelectionLengthMismatch(); + if (reward[0] == ZERO_BYTES) revert KeepWhatsRaisedInvalidInput("INVALID_REWARD_INPUT"); + if (!tempReward.isRewardTier) revert KeepWhatsRaisedFirstRewardNotTier(); + uint256 pledgeAmount = tempReward.rewardValue; for (uint256 i = 1; i < rewardLen; i++) { if (reward[i] == ZERO_BYTES) { @@ -1083,12 +1100,8 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa uint256 paymentFee = s_tokenToPaymentFee[tokenId]; uint256 netRefundAmount = amountToRefund - paymentFee; - if (netRefundAmount == 0) { - revert KeepWhatsRaisedNotClaimable(tokenId, "ZERO_AMOUNT"); - } - if (s_availablePerToken[pledgeToken] < netRefundAmount) { - revert KeepWhatsRaisedNotClaimable(tokenId, "INSUFFICIENT_LIQUIDITY"); - } + if (netRefundAmount == 0) revert KeepWhatsRaisedRefundAmountZero(); + if (s_availablePerToken[pledgeToken] < netRefundAmount) revert KeepWhatsRaisedInsufficientAvailableForRefund(tokenId); s_tokenToPledgedAmount[tokenId] = 0; s_tokenRaisedAmounts[pledgeToken] -= amountToRefund; @@ -1180,9 +1193,8 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa uint256 cancelLimit = s_cancellationTime + s_config.refundDelay; uint256 deadlineLimit = getDeadline() + s_config.withdrawalDelay; - if ((isCancelled && block.timestamp <= cancelLimit) || (!isCancelled && block.timestamp <= deadlineLimit)) { - revert KeepWhatsRaisedNotClaimableAdmin(); - } + if (isCancelled && block.timestamp <= cancelLimit) revert KeepWhatsRaisedClaimFundWindowNotReached(); + if (!isCancelled && block.timestamp <= deadlineLimit) revert KeepWhatsRaisedClaimFundWindowNotReached(); if (s_fundClaimed) { revert KeepWhatsRaisedAlreadyClaimed(); diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index dfb795b..adc4686 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -204,6 +204,23 @@ abstract contract BasePaymentTreasury is */ error PaymentTreasuryInvalidInput(string reason); + /// @dev Reverts when paymentId is zero. + error PaymentTreasuryZeroPaymentId(); + /// @dev Reverts when buyerId is zero. + error PaymentTreasuryZeroBuyerId(); + /// @dev Reverts when amount is zero. + error PaymentTreasuryZeroAmount(); + /// @dev Reverts when expiration is not in the future. + error PaymentTreasuryExpirationNotInFuture(); + /// @dev Reverts when itemId is zero. + error PaymentTreasuryZeroItemId(); + /// @dev Reverts when paymentToken is the zero address. + error PaymentTreasuryZeroPaymentToken(); + /// @dev Reverts when buyerAddress is the zero address. + error PaymentTreasuryZeroBuyerAddress(); + /// @dev Reverts when batch array lengths are inconsistent. + error PaymentTreasuryBatchArrayLengthMismatch(); + /** * @dev Throws an error indicating that the payment id already exists. */ @@ -634,12 +651,12 @@ abstract contract BasePaymentTreasury is ICampaignPaymentTreasury.LineItem[] calldata lineItems, ICampaignPaymentTreasury.ExternalFees[] calldata externalFees ) public virtual override onlyPlatformAdmin(PLATFORM_HASH) whenCampaignNotPaused whenCampaignNotCancelled { - if ( - buyerId == ZERO_BYTES || amount == 0 || expiration <= block.timestamp || paymentId == ZERO_BYTES - || itemId == ZERO_BYTES || paymentToken == address(0) - ) { - revert PaymentTreasuryInvalidInput("INVALID_PAYMENT_PARAMS"); - } + if (paymentId == ZERO_BYTES) revert PaymentTreasuryZeroPaymentId(); + if (buyerId == ZERO_BYTES) revert PaymentTreasuryZeroBuyerId(); + if (itemId == ZERO_BYTES) revert PaymentTreasuryZeroItemId(); + if (paymentToken == address(0)) revert PaymentTreasuryZeroPaymentToken(); + if (amount == 0) revert PaymentTreasuryZeroAmount(); + if (expiration <= block.timestamp) revert PaymentTreasuryExpirationNotInFuture(); if (lineItems.length > MAX_LINE_ITEMS || externalFees.length > MAX_EXTERNAL_FEES) { revert PaymentTreasuryArrayTooLong(); @@ -716,13 +733,14 @@ abstract contract BasePaymentTreasury is ) public virtual override onlyPlatformAdmin(PLATFORM_HASH) whenCampaignNotPaused whenCampaignNotCancelled { // Validate array lengths are consistent uint256 length = paymentIds.length; - if ( - length == 0 || length != buyerIds.length || length != itemIds.length || length != paymentTokens.length - || length != amounts.length || length != expirations.length || length != lineItemsArray.length - || length != externalFeesArray.length - ) { - revert PaymentTreasuryInvalidInput("BATCH_LENGTH_MISMATCH"); - } + if (length == 0) revert PaymentTreasuryBatchArrayLengthMismatch(); + if (length != buyerIds.length) revert PaymentTreasuryBatchArrayLengthMismatch(); + if (length != itemIds.length) revert PaymentTreasuryBatchArrayLengthMismatch(); + if (length != paymentTokens.length) revert PaymentTreasuryBatchArrayLengthMismatch(); + if (length != amounts.length) revert PaymentTreasuryBatchArrayLengthMismatch(); + if (length != expirations.length) revert PaymentTreasuryBatchArrayLengthMismatch(); + if (length != lineItemsArray.length) revert PaymentTreasuryBatchArrayLengthMismatch(); + if (length != externalFeesArray.length) revert PaymentTreasuryBatchArrayLengthMismatch(); if (length > MAX_BATCH_SIZE) { revert PaymentTreasuryArrayTooLong(); @@ -746,12 +764,12 @@ abstract contract BasePaymentTreasury is ICampaignPaymentTreasury.LineItem[] calldata lineItems = lineItemsArray[i]; // Validate individual payment parameters - if ( - buyerId == ZERO_BYTES || amount == 0 || expiration <= block.timestamp || paymentId == ZERO_BYTES - || itemId == ZERO_BYTES || paymentToken == address(0) - ) { - revert PaymentTreasuryInvalidInput("INVALID_PAYMENT_PARAMS"); - } + if (paymentId == ZERO_BYTES) revert PaymentTreasuryZeroPaymentId(); + if (buyerId == ZERO_BYTES) revert PaymentTreasuryZeroBuyerId(); + if (itemId == ZERO_BYTES) revert PaymentTreasuryZeroItemId(); + if (paymentToken == address(0)) revert PaymentTreasuryZeroPaymentToken(); + if (amount == 0) revert PaymentTreasuryZeroAmount(); + if (expiration <= block.timestamp) revert PaymentTreasuryExpirationNotInFuture(); if (lineItems.length > MAX_LINE_ITEMS || externalFeesArray[i].length > MAX_EXTERNAL_FEES) { revert PaymentTreasuryArrayTooLong(); @@ -829,12 +847,11 @@ abstract contract BasePaymentTreasury is ICampaignPaymentTreasury.LineItem[] calldata lineItems, ICampaignPaymentTreasury.ExternalFees[] calldata externalFees ) public virtual override nonReentrant whenCampaignNotPaused whenCampaignNotCancelled { - if ( - buyerAddress == address(0) || amount == 0 || paymentId == ZERO_BYTES || itemId == ZERO_BYTES - || paymentToken == address(0) - ) { - revert PaymentTreasuryInvalidInput("INVALID_PAYMENT_PARAMS"); - } + if (paymentId == ZERO_BYTES) revert PaymentTreasuryZeroPaymentId(); + if (buyerAddress == address(0)) revert PaymentTreasuryZeroBuyerAddress(); + if (itemId == ZERO_BYTES) revert PaymentTreasuryZeroItemId(); + if (paymentToken == address(0)) revert PaymentTreasuryZeroPaymentToken(); + if (amount == 0) revert PaymentTreasuryZeroAmount(); // Reject treasury address as payer to prevent accounting inflation via self-transfer if (buyerAddress == address(this)) { diff --git a/test/foundry/unit/KeepWhatsRaised.t.sol b/test/foundry/unit/KeepWhatsRaised.t.sol index 6c43d22..c116669 100644 --- a/test/foundry/unit/KeepWhatsRaised.t.sol +++ b/test/foundry/unit/KeepWhatsRaised.t.sol @@ -157,7 +157,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te KeepWhatsRaised.FeeValues memory feeValues = _createFeeValues(); - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "INVALID_TIMING")); + vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedLaunchTimeInPast.selector); vm.prank(users.platform2AdminAddress); keepWhatsRaised.configureTreasury(CONFIG, invalidCampaignData, FEE_KEYS, feeValues); } @@ -558,7 +558,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te bytes32[] memory rewardSelection = new bytes32[](1); rewardSelection[0] = TEST_REWARD_NAME; - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "INVALID_PLEDGE_INPUT")); + vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedFirstRewardNotTier.selector); keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection); vm.stopPrank(); } @@ -1145,7 +1145,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te _setupPledges(); vm.warp(DEADLINE + WITHDRAWAL_DELAY - 1); - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedNotClaimableAdmin.selector); + vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedClaimFundWindowNotReached.selector); vm.prank(users.platform2AdminAddress); keepWhatsRaised.claimFund(); } From 5e90e111e7bf4aa2d49d88e479cae6da0908fba9 Mon Sep 17 00:00:00 2001 From: Mahabub Alahi Date: Thu, 19 Mar 2026 17:09:35 +0600 Subject: [PATCH 55/61] Fix pledge amount calculation in AllOrNothing contract to use actual received amount minus shipping fee - This change ensures accurate NFT minting based on the net pledge amount. --- src/treasuries/AllOrNothing.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index 5ec4a49..f07fb08 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -434,7 +434,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { uint256 actualPledgeAmount = actualReceived - shippingFee; uint256 tokenId = INFO.mintNFTForPledge( - backer, reward, pledgeToken, pledgeAmount, shippingFee, 0 + backer, reward, pledgeToken, actualPledgeAmount, shippingFee, 0 ); s_tokenToPledgedAmount[tokenId] = actualPledgeAmount; From cfa314e40732d59ad8d63fba575111033fccfd5f Mon Sep 17 00:00:00 2001 From: rayedsikder Date: Thu, 19 Mar 2026 21:23:38 +0600 Subject: [PATCH 56/61] Fix frontrunning vulnerability with Permit2 signature-based approvals (OZ-01) (#74) * Add off-chain approval and args integrity validation for payment flows using Permit2 * Fix empty permit fallback in KWR, add Uniswap deps and update tests * Add permit2 submodule gitlink to fix CI builds * Use Mock Permit2 in tests to avoid solc mismatch * refactor: extract shared refund logic to helper function Reduces contract size across PaymentTreasury variants by removing duplicated refund logic. * Update _validatePaymentForAction function in BasePaymentTreasury contract to accept paymentId for improved clarity in revert messages. - This change enhances error handling by ensuring that the external payment ID is used in all relevant error scenarios, providing better feedback to users. --------- Co-authored-by: adnanhq Co-authored-by: Mahabub Alahi --- docs/src/src/TestUSD.sol/contract.TestUSD.md | 4 - src/CampaignInfo.sol | 7 + src/GlobalParams.sol | 10 + src/interfaces/ICampaignInfo.sol | 6 + src/interfaces/ICampaignPaymentTreasury.sol | 15 +- src/interfaces/IGlobalParams.sol | 6 + src/interfaces/IPermit2.sol | 119 +++++++ src/treasuries/AllOrNothing.sol | 123 +++++-- src/treasuries/KeepWhatsRaised.sol | 206 ++++++++--- src/treasuries/PaymentTreasury.sol | 15 +- .../TimeConstrainedPaymentTreasury.sol | 15 +- src/utils/BasePaymentTreasury.sol | 233 +++++-------- test/foundry/Base.t.sol | 47 ++- .../AllOrNothing/AllOrNothing.t.sol | 90 ++++- .../AllOrNothing/AllOrNothingFunction.t.sol | 60 ++-- .../KeepWhatsRaised/KeepWhatsRaised.t.sol | 91 ++++- .../KeepWhatsRaisedFunction.t.sol | 11 +- .../PaymentTreasury/PaymentTreasury.t.sol | 50 ++- .../PaymentTreasuryFunction.t.sol | 18 +- .../PaymentTreasuryLineItems.t.sol | 25 +- .../TimeConstrainedPaymentTreasury.t.sol | 31 ++ ...meConstrainedPaymentTreasuryFunction.t.sol | 124 ++++++- test/foundry/unit/KeepWhatsRaised.t.sol | 263 +++++++++----- test/foundry/unit/PaymentTreasury.t.sol | 80 ++++- .../unit/TimeConstrainedPaymentTreasury.t.sol | 146 ++++++-- test/mocks/MockPermit2.sol | 323 ++++++++++++++++++ 26 files changed, 1684 insertions(+), 434 deletions(-) create mode 100644 src/interfaces/IPermit2.sol create mode 100644 test/mocks/MockPermit2.sol diff --git a/docs/src/src/TestUSD.sol/contract.TestUSD.md b/docs/src/src/TestUSD.sol/contract.TestUSD.md index 0d401e6..011be3b 100644 --- a/docs/src/src/TestUSD.sol/contract.TestUSD.md +++ b/docs/src/src/TestUSD.sol/contract.TestUSD.md @@ -1,9 +1,5 @@ # TestUSD -<<<<<<< Updated upstream -[Git Source](https://github.com/ccprotocol/reference-client-sc/blob/32b7b1617200d0c6f3248845ef972180411f1f65/src/TestUSD.sol) -======= [Git Source](https://github.com/ccprotocol/ccprotocol-contracts-internal/blob/4245ef0ad7914158999986aa0d8b5d2614efc6c2/src/TestUSD.sol) ->>>>>>> Stashed changes **Inherits:** [ERC20](/src/.deps/npm/@openzeppelin/contracts/token/ERC20/ERC20.sol/abstract.ERC20.md), [Ownable](/src/.deps/npm/@openzeppelin/contracts/access/Ownable.sol/abstract.Ownable.md) diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index 49a3f5f..2448dbe 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -458,6 +458,13 @@ contract CampaignInfo is bufferTime = uint256(valueBytes); } + /** + * @inheritdoc ICampaignInfo + */ + function getPermit2Address() external view override returns (address) { + return _getGlobalParams().getPermit2Address(); + } + /** * @inheritdoc ICampaignInfo */ diff --git a/src/GlobalParams.sol b/src/GlobalParams.sol index 4468f54..f58a83a 100644 --- a/src/GlobalParams.sol +++ b/src/GlobalParams.sol @@ -19,6 +19,9 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU bytes32 private constant ZERO_BYTES = 0x0000000000000000000000000000000000000000000000000000000000000000; + /// @dev The canonical Permit2 deployment address (same on all EVM chains). + address private constant PERMIT2_ADDRESS = 0x000000000022D473030F116dDEE9F6B43aC78BA3; + /// @dev 100% in basis points; fee percentages must not exceed this and their sum must be below it. uint256 private constant PERCENT_DIVIDER = 10000; @@ -314,6 +317,13 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU value = $.dataRegistry[key]; } + /** + * @inheritdoc IGlobalParams + */ + function getPermit2Address() external pure returns (address) { + return PERMIT2_ADDRESS; + } + /** * @inheritdoc IGlobalParams */ diff --git a/src/interfaces/ICampaignInfo.sol b/src/interfaces/ICampaignInfo.sol index 4b1dbe4..882ea50 100644 --- a/src/interfaces/ICampaignInfo.sol +++ b/src/interfaces/ICampaignInfo.sol @@ -220,6 +220,12 @@ interface ICampaignInfo is IERC721 { */ function getBufferTime() external view returns (uint256 bufferTime); + /** + * @notice Returns the canonical Permit2 contract address from GlobalParams. + * @return The Permit2 contract address. + */ + function getPermit2Address() external view returns (address); + /** * @notice Retrieves a platform-specific line item type configuration from GlobalParams. * @param platformHash The identifier of the platform. diff --git a/src/interfaces/ICampaignPaymentTreasury.sol b/src/interfaces/ICampaignPaymentTreasury.sol index 1bffa62..95b77a0 100644 --- a/src/interfaces/ICampaignPaymentTreasury.sol +++ b/src/interfaces/ICampaignPaymentTreasury.sol @@ -1,6 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.22; +import {PermitData} from "./IPermit2.sol"; + /** * @title ICampaignPaymentTreasury * @notice An interface for managing campaign payment treasury contracts. @@ -121,14 +123,18 @@ interface ICampaignPaymentTreasury { /** * @notice Allows a buyer to make a direct crypto payment for an item. - * @dev This function transfers tokens directly from the buyer's wallet and confirms the payment immediately. + * @dev Tokens are transferred from `buyerAddress` via Permit2 `permitWitnessTransferFrom`. + * The permit's witness commits to `paymentId`, `itemId`, `buyerAddress`, `amount`, and + * a hash of `lineItems`, ensuring the caller cannot tamper with any of these values + * after the buyer has signed the permit. * @param paymentId The unique identifier of the payment. * @param itemId The identifier of the item being purchased. - * @param buyerAddress The address of the buyer making the payment. + * @param buyerAddress The address of the buyer making the payment (must be the permit signer). * @param paymentToken The token to use for the payment. - * @param amount The amount to be paid for the item. + * @param amount The amount to be associated with the NFT (in token's native decimals). * @param lineItems Array of line items associated with this payment. * @param externalFees Array of external fee metadata captured for this payment (informational only). + * @param permitData Permit2 permit data (nonce, deadline, signature) signed by `buyerAddress`. */ function processCryptoPayment( bytes32 paymentId, @@ -137,7 +143,8 @@ interface ICampaignPaymentTreasury { address paymentToken, uint256 amount, LineItem[] calldata lineItems, - ExternalFees[] calldata externalFees + ExternalFees[] calldata externalFees, + PermitData calldata permitData ) external; /** diff --git a/src/interfaces/IGlobalParams.sol b/src/interfaces/IGlobalParams.sol index 0f155eb..49eb0b1 100644 --- a/src/interfaces/IGlobalParams.sol +++ b/src/interfaces/IGlobalParams.sol @@ -135,6 +135,12 @@ interface IGlobalParams { */ function getFromRegistry(bytes32 key) external view returns (bytes32 value); + /** + * @notice Returns the canonical Permit2 contract address. + * @return The Permit2 contract address. + */ + function getPermit2Address() external pure returns (address); + /** * @notice Sets or updates a platform-specific line item type configuration. * @param platformHash The identifier of the platform. diff --git a/src/interfaces/IPermit2.sol b/src/interfaces/IPermit2.sol new file mode 100644 index 0000000..5ec0735 --- /dev/null +++ b/src/interfaces/IPermit2.sol @@ -0,0 +1,119 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.22; + +// ============================================================================ +// Inlined Permit2 interfaces (originally from Uniswap permit2 package) +// ============================================================================ + +/// @title IEIP712 +interface IEIP712 { + function DOMAIN_SEPARATOR() external view returns (bytes32); +} + +/// @title ISignatureTransfer +/// @notice Handles ERC20 token transfers through signature based actions +/// @dev Requires user's token approval on the Permit2 contract +interface ISignatureTransfer is IEIP712 { + /// @notice Thrown when the requested amount for a transfer is larger than the permissioned amount + /// @param maxAmount The maximum amount a spender can request to transfer + error InvalidAmount(uint256 maxAmount); + + /// @notice Thrown when the number of tokens permissioned to a spender does not match the number of tokens being transferred + error LengthMismatch(); + + /// @notice Emits an event when the owner successfully invalidates an unordered nonce. + event UnorderedNonceInvalidation(address indexed owner, uint256 word, uint256 mask); + + /// @notice The token and amount details for a transfer signed in the permit transfer signature + struct TokenPermissions { + address token; + uint256 amount; + } + + /// @notice The signed permit message for a single token transfer + struct PermitTransferFrom { + TokenPermissions permitted; + uint256 nonce; + uint256 deadline; + } + + /// @notice Specifies the recipient address and amount for batched transfers. + struct SignatureTransferDetails { + address to; + uint256 requestedAmount; + } + + /// @notice Used to reconstruct the signed permit message for multiple token transfers + struct PermitBatchTransferFrom { + TokenPermissions[] permitted; + uint256 nonce; + uint256 deadline; + } + + /// @notice A map from token owner address and a caller specified word index to a bitmap. + function nonceBitmap(address, uint256) external view returns (uint256); + + /// @notice Transfers a token using a signed permit message + function permitTransferFrom( + PermitTransferFrom memory permit, + SignatureTransferDetails calldata transferDetails, + address owner, + bytes calldata signature + ) external; + + /// @notice Transfers a token using a signed permit message with extra witness data + function permitWitnessTransferFrom( + PermitTransferFrom memory permit, + SignatureTransferDetails calldata transferDetails, + address owner, + bytes32 witness, + string calldata witnessTypeString, + bytes calldata signature + ) external; + + /// @notice Transfers multiple tokens using a signed permit message + function permitTransferFrom( + PermitBatchTransferFrom memory permit, + SignatureTransferDetails[] calldata transferDetails, + address owner, + bytes calldata signature + ) external; + + /// @notice Transfers multiple tokens using a signed permit message with extra witness data + function permitWitnessTransferFrom( + PermitBatchTransferFrom memory permit, + SignatureTransferDetails[] calldata transferDetails, + address owner, + bytes32 witness, + string calldata witnessTypeString, + bytes calldata signature + ) external; + + /// @notice Invalidates the bits specified in mask for the bitmap at the word position + function invalidateUnorderedNonces(uint256 wordPos, uint256 mask) external; +} + +// ============================================================================ +// Application-level types +// ============================================================================ + +/** + * @title IPermit2 + * @notice Re-exports ISignatureTransfer so that existing import paths work unchanged. + * @dev The canonical Permit2 deployment address is + * 0x000000000022D473030F116dDEE9F6B43aC78BA3 across all supported EVM chains. + */ +interface IPermit2 is ISignatureTransfer {} + +/** + * @notice Application-specific struct bundling the Permit2 fields a caller must + * supply alongside each signature-based token transfer. + * @param nonce Unique nonce preventing signature replay (managed by Permit2). + * @param deadline Unix timestamp after which the permit is no longer valid. + * @param signature EIP-712 signature produced by the token owner. + */ +struct PermitData { + uint256 nonce; + uint256 deadline; + bytes signature; +} diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index f07fb08..26a8233 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -9,6 +9,7 @@ import {ICampaignTreasury} from "../interfaces/ICampaignTreasury.sol"; import {ICampaignInfo} from "../interfaces/ICampaignInfo.sol"; import {BaseTreasury} from "../utils/BaseTreasury.sol"; import {IReward} from "../interfaces/IReward.sol"; +import {IPermit2, ISignatureTransfer, PermitData} from "../interfaces/IPermit2.sol"; /** * @title AllOrNothing @@ -30,6 +31,23 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { // Counter for reward tiers Counters.Counter private s_rewardCounter; + // --------------------------------------------------------------------------- + // Permit2 witness types for pledge functions + // --------------------------------------------------------------------------- + // pledgeForAReward witness – binds backer, reward array, and shipping fee + bytes32 internal constant AON_PLEDGE_FOR_REWARD_WITNESS_TYPEHASH = keccak256( + "PledgeForRewardWitness(address backer,bytes32 rewardsHash,uint256 shippingFee)" + ); + string internal constant AON_PLEDGE_FOR_REWARD_WITNESS_TYPE_STRING = + "PledgeForRewardWitness witness)PledgeForRewardWitness(address backer,bytes32 rewardsHash,uint256 shippingFee)TokenPermissions(address token,uint256 amount)"; + + // pledgeWithoutAReward witness – binds backer and pledge amount + bytes32 internal constant AON_PLEDGE_WITHOUT_REWARD_WITNESS_TYPEHASH = + keccak256("PledgeWithoutRewardWitness(address backer,uint256 pledgeAmount)"); + string internal constant AON_PLEDGE_WITHOUT_REWARD_WITNESS_TYPE_STRING = + "PledgeWithoutRewardWitness witness)PledgeWithoutRewardWitness(address backer,uint256 pledgeAmount)TokenPermissions(address token,uint256 amount)"; + + /** * @dev Emitted when a backer makes a pledge. * @param backer The address of the backer making the pledge. @@ -266,15 +284,23 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { } /** - * @notice Allows a backer to pledge for a reward. - * @dev The first element of the `reward` array must be a reward tier and the other elements can be either reward tiers or non-reward tiers. - * The non-reward tiers cannot be pledged for without a reward. - * @param backer The address of the backer making the pledge. + * @notice Allows a backer to pledge for a reward using a Permit2 signature. + * @dev Tokens are transferred from `backer` via Permit2 `permitWitnessTransferFrom`. + * The permit's witness commits to `backer`, the reward array hash, and `shippingFee`, + * so the caller cannot change those values after the backer has signed. + * @param backer The address of the backer making the pledge (must be the permit signer). * @param pledgeToken The token address to use for the pledge. * @param shippingFee The shipping fee amount. * @param reward An array of reward names. + * @param permitData Permit2 permit data (nonce, deadline, signature) signed by `backer`. */ - function pledgeForAReward(address backer, address pledgeToken, uint256 shippingFee, bytes32[] calldata reward) + function pledgeForAReward( + address backer, + address pledgeToken, + uint256 shippingFee, + bytes32[] calldata reward, + PermitData calldata permitData + ) external nonReentrant currentTimeIsWithinRange(INFO.getLaunchTime(), INFO.getDeadline()) @@ -300,21 +326,24 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { } pledgeAmount += tempReward.rewardValue; } - if (!INFO.isTokenAccepted(pledgeToken)) { - revert AllOrNothingTokenNotAccepted(pledgeToken); - } - uint256 pledgeAmountInTokenDecimals = _denormalizeAmount(pledgeToken, pledgeAmount); - uint256 shippingFeeInTokenDecimals = _denormalizeAmount(pledgeToken, shippingFee); - _pledge(backer, pledgeToken, reward[0], pledgeAmountInTokenDecimals, shippingFeeInTokenDecimals, reward); + _pledge(backer, pledgeToken, reward[0], pledgeAmount, shippingFee, reward, permitData); } /** - * @notice Allows a backer to pledge without selecting a reward. - * @param backer The address of the backer making the pledge. + * @notice Allows a backer to pledge without selecting a reward using a Permit2 signature. + * @dev Tokens are transferred from `backer` via Permit2 `permitWitnessTransferFrom`. + * The permit's witness commits to `backer` and `pledgeAmount`. + * @param backer The address of the backer making the pledge (must be the permit signer). * @param pledgeToken The token address to use for the pledge. - * @param pledgeAmount The amount of the pledge. + * @param pledgeAmount The amount of the pledge (in token's native decimals). + * @param permitData Permit2 permit data (nonce, deadline, signature) signed by `backer`. */ - function pledgeWithoutAReward(address backer, address pledgeToken, uint256 pledgeAmount) + function pledgeWithoutAReward( + address backer, + address pledgeToken, + uint256 pledgeAmount, + PermitData calldata permitData + ) external nonReentrant currentTimeIsWithinRange(INFO.getLaunchTime(), INFO.getDeadline()) @@ -325,7 +354,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { { bytes32[] memory emptyByteArray = new bytes32[](0); - _pledge(backer, pledgeToken, ZERO_BYTES, pledgeAmount, 0, emptyByteArray); + _pledge(backer, pledgeToken, ZERO_BYTES, pledgeAmount, 0, emptyByteArray, permitData); } /** @@ -413,7 +442,8 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { bytes32 reward, uint256 pledgeAmount, uint256 shippingFee, - bytes32[] memory rewards + bytes32[] memory rewards, + PermitData calldata permitData ) private { if (!INFO.isTokenAccepted(pledgeToken)) { revert AllOrNothingTokenNotAccepted(pledgeToken); @@ -421,27 +451,60 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { if (backer == address(this)) { revert AllOrNothingInvalidInput("INVALID_BACKER"); } - // pledgeAmount and shippingFee are always in pledgeToken's native decimals (callers must denormalize) - uint256 totalAmount = pledgeAmount + shippingFee; + if (permitData.signature.length == 0) { + revert AllOrNothingInvalidInput("EMPTY_SIGNATURE"); + } + + uint256 pledgeAmountInTokenDecimals; + uint256 shippingFeeInTokenDecimals; - uint256 balanceBefore = IERC20(pledgeToken).balanceOf(address(this)); - IERC20(pledgeToken).safeTransferFrom(backer, address(this), totalAmount); - uint256 actualReceived = IERC20(pledgeToken).balanceOf(address(this)) - balanceBefore; + if (reward != ZERO_BYTES) { + pledgeAmountInTokenDecimals = _denormalizeAmount(pledgeToken, pledgeAmount); + shippingFeeInTokenDecimals = _denormalizeAmount(pledgeToken, shippingFee); + } else { + pledgeAmountInTokenDecimals = pledgeAmount; + shippingFeeInTokenDecimals = shippingFee; + } - if (actualReceived < shippingFee) { - revert AllOrNothingTransferFailed(); + uint256 totalAmount = pledgeAmountInTokenDecimals + shippingFeeInTokenDecimals; + + bytes32 witness; + string memory witnessTypeString; + + if (reward != ZERO_BYTES) { + bytes32 rewardsHash = keccak256(abi.encodePacked(rewards)); + witness = keccak256( + abi.encode(AON_PLEDGE_FOR_REWARD_WITNESS_TYPEHASH, backer, rewardsHash, shippingFee) + ); + witnessTypeString = AON_PLEDGE_FOR_REWARD_WITNESS_TYPE_STRING; + } else { + witness = + keccak256(abi.encode(AON_PLEDGE_WITHOUT_REWARD_WITNESS_TYPEHASH, backer, pledgeAmountInTokenDecimals)); + witnessTypeString = AON_PLEDGE_WITHOUT_REWARD_WITNESS_TYPE_STRING; } - uint256 actualPledgeAmount = actualReceived - shippingFee; + + IPermit2(INFO.getPermit2Address()).permitWitnessTransferFrom( + ISignatureTransfer.PermitTransferFrom({ + permitted: ISignatureTransfer.TokenPermissions({token: pledgeToken, amount: totalAmount}), + nonce: permitData.nonce, + deadline: permitData.deadline + }), + ISignatureTransfer.SignatureTransferDetails({to: address(this), requestedAmount: totalAmount}), + backer, + witness, + witnessTypeString, + permitData.signature + ); uint256 tokenId = INFO.mintNFTForPledge( - backer, reward, pledgeToken, actualPledgeAmount, shippingFee, 0 + backer, reward, pledgeToken, pledgeAmountInTokenDecimals, shippingFeeInTokenDecimals, 0 ); - s_tokenToPledgedAmount[tokenId] = actualPledgeAmount; - s_tokenToTotalCollectedAmount[tokenId] = actualReceived; + s_tokenToPledgedAmount[tokenId] = pledgeAmountInTokenDecimals; + s_tokenToTotalCollectedAmount[tokenId] = totalAmount; s_tokenIdToPledgeToken[tokenId] = pledgeToken; - s_tokenRaisedAmounts[pledgeToken] += actualPledgeAmount; - s_tokenLifetimeRaisedAmounts[pledgeToken] += actualPledgeAmount; + s_tokenRaisedAmounts[pledgeToken] += pledgeAmountInTokenDecimals; + s_tokenLifetimeRaisedAmounts[pledgeToken] += pledgeAmountInTokenDecimals; emit Receipt(backer, pledgeToken, reward, pledgeAmount, shippingFee, tokenId, rewards); } diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index 4f9c918..f73618d 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -11,6 +11,7 @@ import {ICampaignTreasury} from "../interfaces/ICampaignTreasury.sol"; import {ICampaignInfo} from "../interfaces/ICampaignInfo.sol"; import {IReward} from "../interfaces/IReward.sol"; import {ICampaignData} from "../interfaces/ICampaignData.sol"; +import {IPermit2, ISignatureTransfer, PermitData} from "../interfaces/IPermit2.sol"; /** * @title KeepWhatsRaised @@ -28,7 +29,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa mapping(uint256 => uint256) private s_tokenToPaymentFee; // Mapping to store reward details by name mapping(bytes32 => Reward) private s_reward; - /// Tracks whether a pledge with a specific ID has already been processed + /// Tracks whether an external pledge ID has already been processed. mapping(bytes32 => bool) public s_processedPledges; /// Mapping to store payment gateway fees by unique pledge ID mapping(bytes32 => uint256) public s_paymentGatewayFees; @@ -102,6 +103,25 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa Config private s_config; CampaignData private s_campaignData; + // --------------------------------------------------------------------------- + // Permit2 witness types for direct user pledge functions + // (setFeeAndPledge is admin-only and uses standard ERC20 transferFrom) + // --------------------------------------------------------------------------- + // pledgeForAReward witness – binds pledgeId, backer, reward array, and tip + bytes32 internal constant KWR_PLEDGE_FOR_REWARD_WITNESS_TYPEHASH = keccak256( + "KWRPledgeForRewardWitness(bytes32 pledgeId,address backer,bytes32 rewardsHash,uint256 tip)" + ); + string internal constant KWR_PLEDGE_FOR_REWARD_WITNESS_TYPE_STRING = + "KWRPledgeForRewardWitness witness)KWRPledgeForRewardWitness(bytes32 pledgeId,address backer,bytes32 rewardsHash,uint256 tip)TokenPermissions(address token,uint256 amount)"; + + // pledgeWithoutAReward witness – binds pledgeId, backer, pledgeAmount, and tip + bytes32 internal constant KWR_PLEDGE_WITHOUT_REWARD_WITNESS_TYPEHASH = keccak256( + "KWRPledgeWithoutRewardWitness(bytes32 pledgeId,address backer,uint256 pledgeAmount,uint256 tip)" + ); + string internal constant KWR_PLEDGE_WITHOUT_REWARD_WITNESS_TYPE_STRING = + "KWRPledgeWithoutRewardWitness witness)KWRPledgeWithoutRewardWitness(bytes32 pledgeId,address backer,uint256 pledgeAmount,uint256 tip)TokenPermissions(address token,uint256 amount)"; + + /** * @dev Emitted when a backer makes a pledge. * @param backer The address of the backer making the pledge. @@ -773,29 +793,34 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa //Set Payment Gateway Fee setPaymentGatewayFee(pledgeId, fee); + PermitData memory emptyPermitData = PermitData({nonce: 0, deadline: 0, signature: ""}); + if (isPledgeForAReward) { - _pledgeForAReward(pledgeId, backer, pledgeToken, tip, reward, _msgSender()); // Pass admin as token source + _pledgeForAReward(pledgeId, backer, pledgeToken, tip, reward, _msgSender(), false, emptyPermitData); } else { - _pledgeWithoutAReward(pledgeId, backer, pledgeToken, pledgeAmount, tip, _msgSender()); // Pass admin as token source + _pledgeWithoutAReward(pledgeId, backer, pledgeToken, pledgeAmount, tip, _msgSender(), false, emptyPermitData); } } /** - * @notice Allows a backer to pledge for a reward. - * @dev The first element of the `reward` array must be a reward tier and the other elements can be either reward tiers or non-reward tiers. - * The non-reward tiers cannot be pledged for without a reward. + * @notice Allows a backer to pledge for a reward using a Permit2 signature. + * @dev Tokens are transferred from `backer` via Permit2 `permitWitnessTransferFrom`. + * The permit's witness commits to `pledgeId`, `backer`, the reward array hash, and + * `tip`, so the caller cannot tamper with those parameters after the backer has signed. * @param pledgeId The unique identifier of the pledge. - * @param backer The address of the backer making the pledge. + * @param backer The address of the backer making the pledge (must be the permit signer). * @param pledgeToken The token to use for the pledge. * @param tip An optional tip can be added during the process. * @param reward An array of reward names. + * @param permitData Permit2 permit data (nonce, deadline, signature) signed by `backer`. */ function pledgeForAReward( bytes32 pledgeId, address backer, address pledgeToken, uint256 tip, - bytes32[] calldata reward + bytes32[] calldata reward, + PermitData calldata permitData ) public nonReentrant @@ -805,31 +830,37 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenCampaignNotCancelled whenNotCancelled { - _pledgeForAReward(pledgeId, backer, pledgeToken, tip, reward, backer); // Pass backer as token source for direct calls + if (permitData.signature.length == 0) { + revert KeepWhatsRaisedInvalidInput("EMPTY_SIGNATURE"); + } + + _pledgeForAReward(pledgeId, backer, pledgeToken, tip, reward, address(0), true, permitData); } /** - * @notice Internal function that allows a backer to pledge for a reward with tokens transferred from a specified source. - * @dev The first element of the `reward` array must be a reward tier and the other elements can be either reward tiers or non-reward tiers. - * The non-reward tiers cannot be pledged for without a reward. - * This function is called internally by both public pledgeForAReward (with backer as token source) and - * setFeeAndPledge (with admin as token source). + * @notice Internal function that allows a backer to pledge for a reward. + * @dev Called by both the public `pledgeForAReward` (Permit2 transfer) and + * `setFeeAndPledge` (admin ERC20 transfer). * @param pledgeId The unique identifier of the pledge. * @param backer The address of the backer making the pledge (receives the NFT). * @param pledgeToken The token to use for the pledge. * @param tip An optional tip can be added during the process. * @param reward An array of reward names. - * @param tokenSource The address from which tokens will be transferred (either backer for direct calls or admin for setFeeAndPledge calls). + * @param tokenSource Token source address for the admin (ERC20) path. + * @param usePermit2 Whether to transfer tokens via Permit2 or direct ERC20 transfer. + * @param permitData Permit2 data for the direct user path. */ function _pledgeForAReward( bytes32 pledgeId, address backer, address pledgeToken, uint256 tip, - bytes32[] calldata reward, - address tokenSource + bytes32[] memory reward, + address tokenSource, + bool usePermit2, + PermitData memory permitData ) internal { - bytes32 internalPledgeId = keccak256(abi.encodePacked(pledgeId, _msgSender())); + bytes32 internalPledgeId = pledgeId; if (s_processedPledges[internalPledgeId]) { revert KeepWhatsRaisedPledgeAlreadyProcessed(internalPledgeId); @@ -854,27 +885,38 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa } pledgeAmount += tempReward.rewardValue; } - if (!INFO.isTokenAccepted(pledgeToken)) { - revert KeepWhatsRaisedTokenNotAccepted(pledgeToken); - } - uint256 pledgeAmountInTokenDecimals = _denormalizeAmount(pledgeToken, pledgeAmount); - _pledge(pledgeId, backer, pledgeToken, reward[0], pledgeAmountInTokenDecimals, tip, reward, tokenSource); + _pledge( + pledgeId, + backer, + pledgeToken, + reward[0], + pledgeAmount, + tip, + reward, + tokenSource, + usePermit2, + permitData + ); } /** - * @notice Allows a backer to pledge without selecting a reward. + * @notice Allows a backer to pledge without selecting a reward using a Permit2 signature. + * @dev Tokens are transferred from `backer` via Permit2 `permitWitnessTransferFrom`. + * The permit's witness commits to `pledgeId`, `backer`, `pledgeAmount`, and `tip`. * @param pledgeId The unique identifier of the pledge. - * @param backer The address of the backer making the pledge. + * @param backer The address of the backer making the pledge (must be the permit signer). * @param pledgeToken The token to use for the pledge. - * @param pledgeAmount The amount of the pledge. - * @param tip An optional tip can be added during the process. + * @param pledgeAmount The amount of the pledge (in token's native decimals). + * @param tip An optional tip (in token's native decimals). + * @param permitData Permit2 permit data (nonce, deadline, signature) signed by `backer`. */ function pledgeWithoutAReward( bytes32 pledgeId, address backer, address pledgeToken, uint256 pledgeAmount, - uint256 tip + uint256 tip, + PermitData calldata permitData ) public nonReentrant @@ -884,19 +926,25 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenCampaignNotCancelled whenNotCancelled { - _pledgeWithoutAReward(pledgeId, backer, pledgeToken, pledgeAmount, tip, backer); // Pass backer as token source for direct calls + if (permitData.signature.length == 0) { + revert KeepWhatsRaisedInvalidInput("EMPTY_SIGNATURE"); + } + + _pledgeWithoutAReward(pledgeId, backer, pledgeToken, pledgeAmount, tip, address(0), true, permitData); } /** - * @notice Internal function that allows a backer to pledge without selecting a reward with tokens transferred from a specified source. - * @dev This function is called internally by both public pledgeWithoutAReward (with backer as token source) and - * setFeeAndPledge (with admin as token source). + * @notice Internal function that allows a backer to pledge without a reward. + * @dev Called by both the public `pledgeWithoutAReward` (Permit2 transfer) and + * `setFeeAndPledge` (admin ERC20 transfer). * @param pledgeId The unique identifier of the pledge. * @param backer The address of the backer making the pledge (receives the NFT). * @param pledgeToken The token to use for the pledge. * @param pledgeAmount The amount of the pledge. - * @param tip An optional tip can be added during the process. - * @param tokenSource The address from which tokens will be transferred (either backer for direct calls or admin for setFeeAndPledge calls). + * @param tip An optional tip. + * @param tokenSource Token source address for the admin (ERC20) path. + * @param usePermit2 Whether to transfer tokens via Permit2 or direct ERC20 transfer. + * @param permitData Permit2 data for the direct user path. */ function _pledgeWithoutAReward( bytes32 pledgeId, @@ -904,9 +952,11 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa address pledgeToken, uint256 pledgeAmount, uint256 tip, - address tokenSource + address tokenSource, + bool usePermit2, + PermitData memory permitData ) internal { - bytes32 internalPledgeId = keccak256(abi.encodePacked(pledgeId, _msgSender())); + bytes32 internalPledgeId = pledgeId; if (s_processedPledges[internalPledgeId]) { revert KeepWhatsRaisedPledgeAlreadyProcessed(internalPledgeId); @@ -915,7 +965,18 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa bytes32[] memory emptyByteArray = new bytes32[](0); - _pledge(pledgeId, backer, pledgeToken, ZERO_BYTES, pledgeAmount, tip, emptyByteArray, tokenSource); + _pledge( + pledgeId, + backer, + pledgeToken, + ZERO_BYTES, + pledgeAmount, + tip, + emptyByteArray, + tokenSource, + usePermit2, + permitData + ); } /** @@ -1252,7 +1313,9 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa uint256 pledgeAmount, uint256 tip, bytes32[] memory rewards, - address tokenSource + address tokenSource, + bool usePermit2, + PermitData memory permitData ) private { if (!INFO.isTokenAccepted(pledgeToken)) { revert KeepWhatsRaisedTokenNotAccepted(pledgeToken); @@ -1260,17 +1323,68 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa if (tokenSource == address(this) || backer == address(this)) { revert KeepWhatsRaisedInvalidInput("INVALID_BACKER"); } - // pledgeAmount and tip are always in pledgeToken's native decimals (callers must denormalize) - uint256 totalAmount = pledgeAmount + tip; + if (usePermit2 && permitData.signature.length == 0) { + revert KeepWhatsRaisedInvalidInput("EMPTY_SIGNATURE"); + } + if (!usePermit2 && tokenSource == address(0)) { + revert KeepWhatsRaisedInvalidInput("ZERO_TOKEN_SOURCE"); + } + + uint256 pledgeAmountInTokenDecimals; + if (reward != ZERO_BYTES) { + pledgeAmountInTokenDecimals = _denormalizeAmount(pledgeToken, pledgeAmount); + } else { + pledgeAmountInTokenDecimals = pledgeAmount; + } + + uint256 totalAmount = pledgeAmountInTokenDecimals + tip; + uint256 actualPledgeAmount; - uint256 balanceBefore = IERC20(pledgeToken).balanceOf(address(this)); - IERC20(pledgeToken).safeTransferFrom(tokenSource, address(this), totalAmount); - uint256 actualReceived = IERC20(pledgeToken).balanceOf(address(this)) - balanceBefore; + if (usePermit2) { + bytes32 witness; + string memory witnessTypeString; - if (actualReceived < tip) { - revert KeepWhatsRaisedInvalidInput("INSUFFICIENT_RECEIVED"); + if (reward != ZERO_BYTES) { + bytes32 rewardsHash = keccak256(abi.encodePacked(rewards)); + witness = keccak256( + abi.encode(KWR_PLEDGE_FOR_REWARD_WITNESS_TYPEHASH, pledgeId, backer, rewardsHash, tip) + ); + witnessTypeString = KWR_PLEDGE_FOR_REWARD_WITNESS_TYPE_STRING; + } else { + witness = keccak256( + abi.encode( + KWR_PLEDGE_WITHOUT_REWARD_WITNESS_TYPEHASH, + pledgeId, + backer, + pledgeAmountInTokenDecimals, + tip + ) + ); + witnessTypeString = KWR_PLEDGE_WITHOUT_REWARD_WITNESS_TYPE_STRING; + } + + IPermit2(INFO.getPermit2Address()).permitWitnessTransferFrom( + ISignatureTransfer.PermitTransferFrom({ + permitted: ISignatureTransfer.TokenPermissions({token: pledgeToken, amount: totalAmount}), + nonce: permitData.nonce, + deadline: permitData.deadline + }), + ISignatureTransfer.SignatureTransferDetails({to: address(this), requestedAmount: totalAmount}), + backer, + witness, + witnessTypeString, + permitData.signature + ); + actualPledgeAmount = pledgeAmountInTokenDecimals; + } else { + uint256 balanceBefore = IERC20(pledgeToken).balanceOf(address(this)); + IERC20(pledgeToken).safeTransferFrom(tokenSource, address(this), totalAmount); + uint256 actualReceived = IERC20(pledgeToken).balanceOf(address(this)) - balanceBefore; + if (actualReceived < tip) { + revert KeepWhatsRaisedInvalidInput("INSUFFICIENT_RECEIVED"); + } + actualPledgeAmount = actualReceived - tip; } - uint256 actualPledgeAmount = actualReceived - tip; uint256 tokenId = INFO.mintNFTForPledge(backer, reward, pledgeToken, actualPledgeAmount, 0, tip); diff --git a/src/treasuries/PaymentTreasury.sol b/src/treasuries/PaymentTreasury.sol index ae2a225..328f771 100644 --- a/src/treasuries/PaymentTreasury.sol +++ b/src/treasuries/PaymentTreasury.sol @@ -5,6 +5,7 @@ import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeE import {BasePaymentTreasury} from "../utils/BasePaymentTreasury.sol"; import {ICampaignPaymentTreasury} from "../interfaces/ICampaignPaymentTreasury.sol"; +import {PermitData} from "../interfaces/IPermit2.sol"; contract PaymentTreasury is BasePaymentTreasury { using SafeERC20 for IERC20; @@ -67,9 +68,19 @@ contract PaymentTreasury is BasePaymentTreasury { address paymentToken, uint256 amount, ICampaignPaymentTreasury.LineItem[] calldata lineItems, - ICampaignPaymentTreasury.ExternalFees[] calldata externalFees + ICampaignPaymentTreasury.ExternalFees[] calldata externalFees, + PermitData calldata permitData ) public override whenNotPaused whenNotCancelled { - super.processCryptoPayment(paymentId, itemId, buyerAddress, paymentToken, amount, lineItems, externalFees); + super.processCryptoPayment( + paymentId, + itemId, + buyerAddress, + paymentToken, + amount, + lineItems, + externalFees, + permitData + ); } /** diff --git a/src/treasuries/TimeConstrainedPaymentTreasury.sol b/src/treasuries/TimeConstrainedPaymentTreasury.sol index e1ec643..7cd91cd 100644 --- a/src/treasuries/TimeConstrainedPaymentTreasury.sol +++ b/src/treasuries/TimeConstrainedPaymentTreasury.sol @@ -5,6 +5,7 @@ import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeE import {BasePaymentTreasury} from "../utils/BasePaymentTreasury.sol"; import {ICampaignPaymentTreasury} from "../interfaces/ICampaignPaymentTreasury.sol"; +import {PermitData} from "../interfaces/IPermit2.sol"; import {TimestampChecker} from "../utils/TimestampChecker.sol"; contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker { @@ -88,10 +89,20 @@ contract TimeConstrainedPaymentTreasury is BasePaymentTreasury, TimestampChecker address paymentToken, uint256 amount, ICampaignPaymentTreasury.LineItem[] calldata lineItems, - ICampaignPaymentTreasury.ExternalFees[] calldata externalFees + ICampaignPaymentTreasury.ExternalFees[] calldata externalFees, + PermitData calldata permitData ) public override whenNotPaused whenNotCancelled { _checkTimeWithinCampaignWindow(); - super.processCryptoPayment(paymentId, itemId, buyerAddress, paymentToken, amount, lineItems, externalFees); + super.processCryptoPayment( + paymentId, + itemId, + buyerAddress, + paymentToken, + amount, + lineItems, + externalFees, + permitData + ); } /** diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index adc4686..a36b9f9 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -7,6 +7,7 @@ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.s import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; import {ICampaignPaymentTreasury} from "../interfaces/ICampaignPaymentTreasury.sol"; +import {IPermit2, ISignatureTransfer, PermitData} from "../interfaces/IPermit2.sol"; import {CampaignAccessChecker} from "./CampaignAccessChecker.sol"; import {PausableCancellable} from "./PausableCancellable.sol"; import {DataRegistryKeys} from "../constants/DataRegistryKeys.sol"; @@ -30,6 +31,16 @@ abstract contract BasePaymentTreasury is uint256 internal constant STANDARD_DECIMALS = 18; address internal constant ZERO_ADDRESS = address(0); + // --------------------------------------------------------------------------- + // Permit2 witness type for processCryptoPayment + // --------------------------------------------------------------------------- + bytes32 internal constant CRYPTO_PAYMENT_WITNESS_TYPEHASH = keccak256( + "CryptoPaymentWitness(bytes32 paymentId,bytes32 itemId,address buyerAddress,uint256 amount,bytes32 lineItemsHash)" + ); + + string internal constant CRYPTO_PAYMENT_WITNESS_TYPE_STRING = + "CryptoPaymentWitness witness)CryptoPaymentWitness(bytes32 paymentId,bytes32 itemId,address buyerAddress,uint256 amount,bytes32 lineItemsHash)TokenPermissions(address token,uint256 amount)"; + /// @dev Maximum number of line items per payment. Ensures confirmPayment can always succeed if createPayment did. uint256 internal constant MAX_LINE_ITEMS = 50; /// @dev Maximum number of external fee entries per payment. @@ -340,11 +351,14 @@ abstract contract BasePaymentTreasury is /** * @dev Scopes a payment ID for on-chain crypto payments (processCryptoPayment). + * @dev Scoped by the buyer address (the Permit2 signer) rather than the tx sender, + * so the payment can be looked up by anyone using the stored creator address. * @param paymentId The external payment ID. + * @param owner The buyer/signer address. * @return The scoped internal payment ID. */ - function _getInternalPaymentIdForOnChain(bytes32 paymentId) internal view returns (bytes32) { - return keccak256(abi.encodePacked(paymentId, _msgSender())); + function _scopePaymentIdForOnChain(bytes32 paymentId, address owner) internal pure returns (bytes32) { + return keccak256(abi.encodePacked(paymentId, owner)); } /** @@ -845,15 +859,16 @@ abstract contract BasePaymentTreasury is address paymentToken, uint256 amount, ICampaignPaymentTreasury.LineItem[] calldata lineItems, - ICampaignPaymentTreasury.ExternalFees[] calldata externalFees + ICampaignPaymentTreasury.ExternalFees[] calldata externalFees, + PermitData calldata permitData ) public virtual override nonReentrant whenCampaignNotPaused whenCampaignNotCancelled { if (paymentId == ZERO_BYTES) revert PaymentTreasuryZeroPaymentId(); if (buyerAddress == address(0)) revert PaymentTreasuryZeroBuyerAddress(); if (itemId == ZERO_BYTES) revert PaymentTreasuryZeroItemId(); if (paymentToken == address(0)) revert PaymentTreasuryZeroPaymentToken(); if (amount == 0) revert PaymentTreasuryZeroAmount(); + if (permitData.signature.length == 0) revert PaymentTreasuryInvalidInput("EMPTY_SIGNATURE"); - // Reject treasury address as payer to prevent accounting inflation via self-transfer if (buyerAddress == address(this)) { revert PaymentTreasuryInvalidInput("INVALID_BUYER"); } @@ -883,8 +898,8 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryPaymentAlreadyExist(existingPaymentId); } - // Check if an on-chain payment with the same paymentId already exists for this caller - bytes32 internalPaymentId = _getInternalPaymentIdForOnChain(paymentId); + // Scope by buyerAddress so any relayer can call on behalf of the same buyer + bytes32 internalPaymentId = _scopePaymentIdForOnChain(paymentId, buyerAddress); if ( s_payment[internalPaymentId].buyerAddress != address(0) || s_payment[internalPaymentId].buyerId != ZERO_BYTES @@ -892,6 +907,9 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryPaymentAlreadyExist(internalPaymentId); } + // Compute lineItemsHash to bind line items in the Permit2 witness + bytes32 lineItemsHash = keccak256(abi.encode(lineItems)); + // Validate, calculate total, store, and process line items uint256 totalAmount = amount; address platformAdmin = INFO.getPlatformAdminAddress(PLATFORM_HASH); @@ -975,11 +993,22 @@ abstract contract BasePaymentTreasury is externalFeeMetadata.push(externalFees[i]); } - uint256 balanceBefore = IERC20(paymentToken).balanceOf(address(this)); - IERC20(paymentToken).safeTransferFrom(buyerAddress, address(this), totalAmount); - if (IERC20(paymentToken).balanceOf(address(this)) - balanceBefore < totalAmount) { - revert PaymentTreasuryInvalidInput("INSUFFICIENT_RECEIVED"); - } + bytes32 witness = keccak256( + abi.encode(CRYPTO_PAYMENT_WITNESS_TYPEHASH, paymentId, itemId, buyerAddress, amount, lineItemsHash) + ); + + IPermit2(INFO.getPermit2Address()).permitWitnessTransferFrom( + ISignatureTransfer.PermitTransferFrom({ + permitted: ISignatureTransfer.TokenPermissions({token: paymentToken, amount: totalAmount}), + nonce: permitData.nonce, + deadline: permitData.deadline + }), + ISignatureTransfer.SignatureTransferDetails({to: address(this), requestedAmount: totalAmount}), + buyerAddress, + witness, + CRYPTO_PAYMENT_WITNESS_TYPE_STRING, + permitData.signature + ); s_payment[internalPaymentId] = PaymentInfo({ buyerId: ZERO_BYTES, @@ -993,7 +1022,7 @@ abstract contract BasePaymentTreasury is }); s_paymentIdToToken[internalPaymentId] = paymentToken; - s_paymentIdToCreator[paymentId] = _msgSender(); // Store creator address for getPaymentData lookup + s_paymentIdToCreator[paymentId] = buyerAddress; // Scoped by buyer for getPaymentData lookup s_confirmedPaymentPerToken[paymentToken] += amount; s_lifetimeConfirmedPaymentPerToken[paymentToken] += amount; s_availableConfirmedPerToken[paymentToken] += amount; @@ -1028,7 +1057,7 @@ abstract contract BasePaymentTreasury is whenCampaignNotCancelled { bytes32 internalPaymentId = _getInternalPaymentIdForOffChain(paymentId); - _validatePaymentForAction(internalPaymentId); + _validatePaymentForAction(internalPaymentId, paymentId); address paymentToken = s_paymentIdToToken[internalPaymentId]; uint256 amount = s_payment[internalPaymentId].amount; @@ -1181,7 +1210,7 @@ abstract contract BasePaymentTreasury is whenCampaignNotCancelled { bytes32 internalPaymentId = _getInternalPaymentIdForOffChain(paymentId); - _validatePaymentForAction(internalPaymentId); + _validatePaymentForAction(internalPaymentId, paymentId); address paymentToken = s_paymentIdToToken[internalPaymentId]; uint256 paymentAmount = s_payment[internalPaymentId].amount; @@ -1249,7 +1278,7 @@ abstract contract BasePaymentTreasury is currentPaymentId = paymentIds[i]; bytes32 internalPaymentId = _getInternalPaymentIdForOffChain(currentPaymentId); - _validatePaymentForAction(internalPaymentId); + _validatePaymentForAction(internalPaymentId, currentPaymentId); currentToken = s_paymentIdToToken[internalPaymentId]; uint256 amount = s_payment[internalPaymentId].amount; @@ -1313,7 +1342,7 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryPaymentNotConfirmed(paymentId); } if (amountToRefund == 0) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "ZERO_AMOUNT"); + revert PaymentTreasuryPaymentNotClaimable(paymentId, "ZERO_AMOUNT"); } // This function is for non-NFT payments only if (tokenId != 0) { @@ -1323,115 +1352,9 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryPaymentNotClaimable(paymentId, "INSUFFICIENT_LIQUIDITY"); } - // Use snapshots of line item type configuration from payment creation time - // This prevents issues if line item type configuration changed after payment creation/confirmation - ICampaignPaymentTreasury.PaymentLineItem[] storage lineItems = s_paymentLineItems[internalPaymentId]; - uint256 protocolFeePercent = INFO.getProtocolFeePercent(); - - // Calculate total line item refund amount using snapshots - uint256 totalGoalLineItemRefundAmount = 0; - uint256 totalNonGoalLineItemRefundAmount = 0; - - for (uint256 i = 0; i < lineItems.length; i++) { - ICampaignPaymentTreasury.PaymentLineItem memory item = lineItems[i]; - - // Use snapshot flags instead of current configuration - if (!item.canRefund) { - continue; // Skip non-refundable line items (based on snapshot at creation time) - } - - if (item.countsTowardGoal) { - // Goal line items: full amount is refundable from goal tracking - totalGoalLineItemRefundAmount += item.amount; - } else { - // Non-goal line items: handle fees and instant transfers - // For instant transfer items, the net amount was already sent to platform admin - don't refund - // For non-instant items, only refund the net amount (after fees), not the fees themselves - if (item.instantTransfer) { - // Skip instant transfer items - they were already sent to platform admin - continue; - } - - uint256 feeAmount = 0; - if (item.applyProtocolFee) { - feeAmount = (item.amount * protocolFeePercent) / PERCENT_DIVIDER; - } - uint256 netAmount = item.amount - feeAmount; - - // Only refund the net amount (fees are not refundable) - totalNonGoalLineItemRefundAmount += netAmount; - } - } - - // Check that we have enough available balance for the total refund (BEFORE modifying state) - // Goal line items are in availableConfirmedPerToken, non-goal items need separate check - uint256 totalRefundAmount = amountToRefund + totalGoalLineItemRefundAmount + totalNonGoalLineItemRefundAmount; - - // For goal line items and base payment, check availableConfirmedPerToken - if (availablePaymentAmount < (amountToRefund + totalGoalLineItemRefundAmount)) { - revert PaymentTreasuryPaymentNotClaimable(paymentId, "INSUFFICIENT_GOAL_LIQUIDITY"); - } - - // For non-goal line items, check that we have enough claimable balance - // (only non-instant transfer items are refundable, and only their net amounts after fees) - if (totalNonGoalLineItemRefundAmount > 0) { - uint256 availableRefundable = s_nonGoalRefundableLineItemPerToken[paymentToken]; - if (availableRefundable < totalNonGoalLineItemRefundAmount) { - revert PaymentTreasuryPaymentNotClaimable(paymentId, "INSUFFICIENT_NON_GOAL_LIQUIDITY"); - } - } - - // Check that contract has enough actual balance to perform the transfer - uint256 contractBalance = IERC20(paymentToken).balanceOf(address(this)); - if (contractBalance < totalRefundAmount) { - revert PaymentTreasuryPaymentNotClaimable(paymentId, "INSUFFICIENT_CONTRACT_BALANCE"); - } - - // Update state: remove tracking for refundable line items using snapshots - for (uint256 i = 0; i < lineItems.length; i++) { - ICampaignPaymentTreasury.PaymentLineItem memory item = lineItems[i]; - - // Use snapshot flags instead of current configuration - if (!item.canRefund) { - continue; // Skip non-refundable line items (based on snapshot at creation time) - } - - if (item.countsTowardGoal) { - // Goal line items: remove from goal tracking - s_confirmedPaymentPerToken[paymentToken] -= item.amount; - s_availableConfirmedPerToken[paymentToken] -= item.amount; - } else { - // Non-goal line items: remove from non-goal tracking - // Note: instantTransfer items are skipped in the refund calculation above - if (item.instantTransfer) { - // Instant transfer items were already sent to platform admin; nothing tracked - continue; - } - - // Calculate fees and net amount using snapshot - uint256 feeAmount = 0; - if (item.applyProtocolFee) { - feeAmount = (item.amount * protocolFeePercent) / PERCENT_DIVIDER; - // Fees are NOT refunded - they remain in the protocol fee pool - } - - uint256 netAmount = item.amount - feeAmount; - - // Remove net amount from outstanding non-goal tracking - s_nonGoalLineItemConfirmedPerToken[paymentToken] -= netAmount; - - // Remove from refundable tracking (only net amount is refundable) - s_nonGoalRefundableLineItemPerToken[paymentToken] -= netAmount; - } - } - - delete s_payment[internalPaymentId]; - delete s_paymentIdToToken[internalPaymentId]; - delete s_paymentLineItems[internalPaymentId]; - delete s_paymentExternalFeeMetadata[internalPaymentId]; - - s_confirmedPaymentPerToken[paymentToken] -= amountToRefund; - s_availableConfirmedPerToken[paymentToken] -= amountToRefund; + uint256 totalRefundAmount = _executeRefund( + internalPaymentId, paymentToken, amountToRefund, availablePaymentAmount, paymentId + ); IERC20(paymentToken).safeTransfer(refundAddress, totalRefundAmount); emit RefundClaimed(paymentId, totalRefundAmount, refundAddress); @@ -1455,19 +1378,50 @@ abstract contract BasePaymentTreasury is uint256 tokenId = s_paymentIdToNFTId[internalPaymentId]; if (buyerAddress == address(0)) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "ZERO_ADDRESS"); + revert PaymentTreasuryPaymentNotClaimable(paymentId, "ZERO_ADDRESS"); } if (amountToRefund == 0) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "INSUFFICIENT_LIQUIDITY"); + revert PaymentTreasuryPaymentNotClaimable(paymentId, "INSUFFICIENT_LIQUIDITY"); } // NFT must exist for crypto payments if (tokenId == 0) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "NOT_NFT_PAYMENT"); + revert PaymentTreasuryPaymentNotClaimable(paymentId, "NOT_NFT_PAYMENT"); } // Get NFT owner before burning address nftOwner = INFO.ownerOf(tokenId); + uint256 totalRefundAmount = _executeRefund( + internalPaymentId, paymentToken, amountToRefund, availablePaymentAmount, paymentId + ); + + delete s_paymentIdToCreator[paymentId]; + + // Burn NFT (requires treasury approval from owner) + INFO.burn(tokenId); + + IERC20(paymentToken).safeTransfer(nftOwner, totalRefundAmount); + emit RefundClaimed(paymentId, totalRefundAmount, nftOwner); + } + + /** + * @dev Shared refund logic for both claimRefund overloads. + * Calculates refund amounts from line item snapshots, validates balances, + * updates state, removes common storage entries, and returns the total refund amount. + * @param internalPaymentId The scoped internal payment ID. + * @param paymentToken The token used for the payment. + * @param amountToRefund The base payment amount to refund. + * @param availablePaymentAmount The available confirmed amount for this token. + * @param revertId The payment ID to use in revert messages (preserves original error context). + * @return totalRefundAmount The total amount to transfer to the refund recipient. + */ + function _executeRefund( + bytes32 internalPaymentId, + address paymentToken, + uint256 amountToRefund, + uint256 availablePaymentAmount, + bytes32 revertId + ) private returns (uint256 totalRefundAmount) { // Use snapshots of line item type configuration from payment creation time // This prevents issues if line item type configuration changed after payment creation/confirmation ICampaignPaymentTreasury.PaymentLineItem[] storage lineItems = s_paymentLineItems[internalPaymentId]; @@ -1510,11 +1464,11 @@ abstract contract BasePaymentTreasury is // Check that we have enough available balance for the total refund (BEFORE modifying state) // Goal line items are in availableConfirmedPerToken, non-goal items need separate check - uint256 totalRefundAmount = amountToRefund + totalGoalLineItemRefundAmount + totalNonGoalLineItemRefundAmount; + totalRefundAmount = amountToRefund + totalGoalLineItemRefundAmount + totalNonGoalLineItemRefundAmount; // For goal line items and base payment, check availableConfirmedPerToken if (availablePaymentAmount < (amountToRefund + totalGoalLineItemRefundAmount)) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "INSUFFICIENT_GOAL_LIQUIDITY"); + revert PaymentTreasuryPaymentNotClaimable(revertId, "INSUFFICIENT_GOAL_LIQUIDITY"); } // For non-goal line items, check that we have enough claimable balance @@ -1522,14 +1476,14 @@ abstract contract BasePaymentTreasury is if (totalNonGoalLineItemRefundAmount > 0) { uint256 availableRefundable = s_nonGoalRefundableLineItemPerToken[paymentToken]; if (availableRefundable < totalNonGoalLineItemRefundAmount) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "INSUFFICIENT_NON_GOAL_LIQUIDITY"); + revert PaymentTreasuryPaymentNotClaimable(revertId, "INSUFFICIENT_NON_GOAL_LIQUIDITY"); } } // Check that contract has enough actual balance to perform the transfer uint256 contractBalance = IERC20(paymentToken).balanceOf(address(this)); if (contractBalance < totalRefundAmount) { - revert PaymentTreasuryPaymentNotClaimable(internalPaymentId, "INSUFFICIENT_CONTRACT_BALANCE"); + revert PaymentTreasuryPaymentNotClaimable(revertId, "INSUFFICIENT_CONTRACT_BALANCE"); } // Update state: remove tracking for refundable line items using snapshots @@ -1570,21 +1524,15 @@ abstract contract BasePaymentTreasury is } } + // Clean up common storage entries delete s_payment[internalPaymentId]; delete s_paymentIdToToken[internalPaymentId]; delete s_paymentLineItems[internalPaymentId]; delete s_paymentExternalFeeMetadata[internalPaymentId]; delete s_paymentIdToNFTId[internalPaymentId]; - delete s_paymentIdToCreator[paymentId]; // Clean up creator mapping for on-chain payments s_confirmedPaymentPerToken[paymentToken] -= amountToRefund; s_availableConfirmedPerToken[paymentToken] -= amountToRefund; - - // Burn NFT (requires treasury approval from owner) - INFO.burn(tokenId); - - IERC20(paymentToken).safeTransfer(nftOwner, totalRefundAmount); - emit RefundClaimed(paymentId, totalRefundAmount, nftOwner); } /** @@ -1825,10 +1773,11 @@ abstract contract BasePaymentTreasury is * - The payment has already been confirmed. * - The payment has already expired. * - The payment is a crypto payment - * @param paymentId The unique identifier of the payment to validate. + * @param internalPaymentId The scoped internal payment ID used for storage lookup. + * @param paymentId The external payment ID used in revert messages for caller clarity. */ - function _validatePaymentForAction(bytes32 paymentId) internal view { - PaymentInfo memory payment = s_payment[paymentId]; + function _validatePaymentForAction(bytes32 internalPaymentId, bytes32 paymentId) internal view { + PaymentInfo memory payment = s_payment[internalPaymentId]; if (payment.buyerId == ZERO_BYTES) { revert PaymentTreasuryPaymentNotExist(paymentId); diff --git a/test/foundry/Base.t.sol b/test/foundry/Base.t.sol index 91cae51..dec62e1 100644 --- a/test/foundry/Base.t.sol +++ b/test/foundry/Base.t.sol @@ -12,13 +12,21 @@ import {TreasuryFactory} from "src/TreasuryFactory.sol"; import {AllOrNothing} from "src/treasuries/AllOrNothing.sol"; import {KeepWhatsRaised} from "src/treasuries/KeepWhatsRaised.sol"; import {IGlobalParams} from "src/interfaces/IGlobalParams.sol"; +import {IPermit2, PermitData} from "src/interfaces/IPermit2.sol"; +import {MockPermit2} from "../mocks/MockPermit2.sol"; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import {DataRegistryKeys} from "src/constants/DataRegistryKeys.sol"; /// @notice Base test contract with common logic needed by all tests. abstract contract Base_Test is Test, Defaults { + bytes32 internal constant PERMIT2_TOKEN_PERMISSIONS_TYPEHASH = + keccak256("TokenPermissions(address token,uint256 amount)"); + string internal constant PERMIT2_WITNESS_TYPE_STRING_STUB = + "PermitWitnessTransferFrom(TokenPermissions permitted,address spender,uint256 nonce,uint256 deadline,"; + //Variables Users internal users; + mapping(address => uint256) internal userPrivateKeys; //Test Contracts - Multiple tokens for multi-token testing TestToken internal usdtToken; // 6 decimals - Tether @@ -35,6 +43,36 @@ abstract contract Base_Test is Test, Defaults { KeepWhatsRaised internal keepWhatsRaisedImplementation; CampaignInfo internal campaignInfo; + /// @dev Canonical Permit2 address used by the contracts under test. + address internal constant CANONICAL_PERMIT2_ADDRESS = 0x000000000022D473030F116dDEE9F6B43aC78BA3; + + function _buildSignedPermitData( + address owner, + address spender, + address token, + uint256 amount, + bytes32 witness, + string memory witnessTypeString, + uint256 nonce, + uint256 deadline + ) internal returns (PermitData memory) { + uint256 ownerPrivateKey = userPrivateKeys[owner]; + require(ownerPrivateKey != 0, "missing test private key"); + + bytes32 witnessTypeHash = + keccak256(bytes(string(abi.encodePacked(PERMIT2_WITNESS_TYPE_STRING_STUB, witnessTypeString)))); + bytes32 tokenPermissions = + keccak256(abi.encode(PERMIT2_TOKEN_PERMISSIONS_TYPEHASH, token, amount)); + bytes32 structHash = keccak256(abi.encode(witnessTypeHash, tokenPermissions, spender, nonce, deadline, witness)); + bytes32 digest = keccak256( + abi.encodePacked("\x19\x01", IPermit2(CANONICAL_PERMIT2_ADDRESS).DOMAIN_SEPARATOR(), structHash) + ); + + (uint8 v, bytes32 r, bytes32 s) = vm.sign(ownerPrivateKey, digest); + + return PermitData({nonce: nonce, deadline: deadline, signature: abi.encodePacked(r, s, v)}); + } + function setUp() public virtual { // Create users for testing. users = Users({ @@ -50,6 +88,10 @@ abstract contract Base_Test is Test, Defaults { vm.startPrank(users.contractOwner); + // Deploy our MockPermit2 (solc 0.8.22 compatible) at the canonical address + // so that treasury contracts (which use that address via GlobalParams) work in tests. + deployCodeTo("MockPermit2.sol:MockPermit2", CANONICAL_PERMIT2_ADDRESS); + // Deploy multiple test tokens with different decimals usdtToken = new TestToken("Tether USD", "USDT", 6); usdcToken = new TestToken("USD Coin", "USDC", 6); @@ -158,7 +200,10 @@ abstract contract Base_Test is Test, Defaults { /// @dev Generates a user, labels its address, and funds it with test assets. function createUser(string memory name) internal returns (address payable) { - address payable user = payable(makeAddr(name)); + uint256 privateKey = uint256(keccak256(abi.encodePacked("oak-network-test-user", name))); + address payable user = payable(vm.addr(privateKey)); + userPrivateKeys[user] = privateKey; + vm.label(user, name); vm.deal({account: user, newBalance: 100 ether}); return user; } diff --git a/test/foundry/integration/AllOrNothing/AllOrNothing.t.sol b/test/foundry/integration/AllOrNothing/AllOrNothing.t.sol index e1e7a90..367471c 100644 --- a/test/foundry/integration/AllOrNothing/AllOrNothing.t.sol +++ b/test/foundry/integration/AllOrNothing/AllOrNothing.t.sol @@ -9,12 +9,26 @@ import {AllOrNothing} from "src/treasuries/AllOrNothing.sol"; import {CampaignInfo} from "src/CampaignInfo.sol"; import {IReward} from "src/interfaces/IReward.sol"; import {LogDecoder} from "../../utils/LogDecoder.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {PermitData} from "src/interfaces/IPermit2.sol"; /// @notice Common testing logic needed by all AllOrNothing integration tests. abstract contract AllOrNothing_Integration_Shared_Test is IReward, LogDecoder, Base_Test { + bytes32 internal constant AON_PLEDGE_FOR_REWARD_WITNESS_TYPEHASH = keccak256( + "PledgeForRewardWitness(address backer,bytes32 rewardsHash,uint256 shippingFee)" + ); + string internal constant AON_PLEDGE_FOR_REWARD_WITNESS_TYPE_STRING = + "PledgeForRewardWitness witness)PledgeForRewardWitness(address backer,bytes32 rewardsHash,uint256 shippingFee)TokenPermissions(address token,uint256 amount)"; + bytes32 internal constant AON_PLEDGE_WITHOUT_REWARD_WITNESS_TYPEHASH = + keccak256("PledgeWithoutRewardWitness(address backer,uint256 pledgeAmount)"); + string internal constant AON_PLEDGE_WITHOUT_REWARD_WITNESS_TYPE_STRING = + "PledgeWithoutRewardWitness witness)PledgeWithoutRewardWitness(address backer,uint256 pledgeAmount)TokenPermissions(address token,uint256 amount)"; + address campaignAddress; address treasuryAddress; AllOrNothing internal allOrNothing; + mapping(address => uint256) internal aonNonceCounter; uint256 pledgeForARewardTokenId; @@ -157,13 +171,17 @@ abstract contract AllOrNothing_Integration_Shared_Test is IReward, LogDecoder, B vm.startPrank(caller); vm.recordLogs(); - testToken.approve(allOrNothingAddress, pledgeAmount + shippingFee); + // Approve MockPermit2 (at canonical address) instead of the treasury directly. + IERC20(token).approve(CANONICAL_PERMIT2_ADDRESS, type(uint256).max); vm.warp(launchTime); bytes32[] memory reward = new bytes32[](1); reward[0] = rewardName; - AllOrNothing(allOrNothingAddress).pledgeForAReward(caller, address(token), shippingFee, reward); + uint256 nonce = aonNonceCounter[caller]++; + PermitData memory permitData = _buildSignedAllOrNothingRewardPermitData(caller, address(token), shippingFee, reward, nonce, block.timestamp + 1 hours); + + AllOrNothing(allOrNothingAddress).pledgeForAReward(caller, address(token), shippingFee, reward, permitData); logs = vm.getRecordedLogs(); @@ -191,10 +209,14 @@ abstract contract AllOrNothing_Integration_Shared_Test is IReward, LogDecoder, B vm.startPrank(caller); vm.recordLogs(); - testToken.approve(allOrNothingAddress, pledgeAmount); + // Approve MockPermit2 (at canonical address) instead of the treasury directly. + IERC20(token).approve(CANONICAL_PERMIT2_ADDRESS, type(uint256).max); vm.warp(launchTime); - AllOrNothing(allOrNothingAddress).pledgeWithoutAReward(caller, address(token), pledgeAmount); + uint256 nonce = aonNonceCounter[caller]++; + PermitData memory permitData = _buildSignedAllOrNothingNoRewardPermitData(caller, address(token), pledgeAmount, nonce, block.timestamp + 1 hours); + + AllOrNothing(allOrNothingAddress).pledgeWithoutAReward(caller, address(token), pledgeAmount, permitData); logs = vm.getRecordedLogs(); @@ -283,4 +305,64 @@ abstract contract AllOrNothing_Integration_Shared_Test is IReward, LogDecoder, B return (logs, to, amount); } + + function _buildSignedAllOrNothingRewardPermitData( + address backer, + address token, + uint256 shippingFee, + bytes32[] memory rewardSelection, + uint256 nonce, + uint256 deadline + ) internal returns (PermitData memory) { + uint256 pledgeAmount; + for (uint256 i = 0; i < rewardSelection.length; i++) { + pledgeAmount += allOrNothing.getReward(rewardSelection[i]).rewardValue; + } + + uint256 totalAmount = _denormalizeForToken(token, pledgeAmount) + _denormalizeForToken(token, shippingFee); + bytes32 rewardsHash = keccak256(abi.encodePacked(rewardSelection)); + bytes32 witness = keccak256( + abi.encode(AON_PLEDGE_FOR_REWARD_WITNESS_TYPEHASH, backer, rewardsHash, shippingFee) + ); + + return _buildSignedPermitData( + backer, treasuryAddress, token, totalAmount, witness, AON_PLEDGE_FOR_REWARD_WITNESS_TYPE_STRING, nonce, deadline + ); + } + + function _buildSignedAllOrNothingNoRewardPermitData( + address backer, + address token, + uint256 pledgeAmount, + uint256 nonce, + uint256 deadline + ) internal returns (PermitData memory) { + bytes32 witness = + keccak256(abi.encode(AON_PLEDGE_WITHOUT_REWARD_WITNESS_TYPEHASH, backer, pledgeAmount)); + + return _buildSignedPermitData( + backer, + treasuryAddress, + token, + pledgeAmount, + witness, + AON_PLEDGE_WITHOUT_REWARD_WITNESS_TYPE_STRING, + nonce, + deadline + ); + } + + function _denormalizeForToken(address token, uint256 amount) internal view returns (uint256) { + uint8 decimals = IERC20Metadata(token).decimals(); + + if (decimals == 18) { + return amount; + } + + if (decimals < 18) { + return amount / (10 ** (18 - decimals)); + } + + return amount * (10 ** (decimals - 18)); + } } diff --git a/test/foundry/integration/AllOrNothing/AllOrNothingFunction.t.sol b/test/foundry/integration/AllOrNothing/AllOrNothingFunction.t.sol index 6037e12..2234d16 100644 --- a/test/foundry/integration/AllOrNothing/AllOrNothingFunction.t.sol +++ b/test/foundry/integration/AllOrNothing/AllOrNothingFunction.t.sol @@ -156,18 +156,20 @@ contract AllOrNothingFunction_Integration_Shared_Test is AllOrNothing_Integratio uint256 usdcShippingFee = getTokenAmount(address(usdcToken), SHIPPING_FEE); vm.startPrank(users.backer1Address); - usdcToken.approve(address(allOrNothing), usdcPledgeAmount + usdcShippingFee); + usdcToken.approve(CANONICAL_PERMIT2_ADDRESS, usdcPledgeAmount + usdcShippingFee); vm.warp(LAUNCH_TIME); bytes32[] memory reward1 = new bytes32[](1); reward1[0] = REWARD_NAME_1_HASH; - allOrNothing.pledgeForAReward(users.backer1Address, address(usdcToken), usdcShippingFee, reward1); + PermitData memory permitData1 = _buildSignedAllOrNothingRewardPermitData(users.backer1Address, address(usdcToken), usdcShippingFee, reward1, 0, block.timestamp + 1 hours); + allOrNothing.pledgeForAReward(users.backer1Address, address(usdcToken), usdcShippingFee, reward1, permitData1); vm.stopPrank(); // Pledge with cUSD (18 decimals) - no conversion needed vm.startPrank(users.backer2Address); - cUSDToken.approve(address(allOrNothing), PLEDGE_AMOUNT); - allOrNothing.pledgeWithoutAReward(users.backer2Address, address(cUSDToken), PLEDGE_AMOUNT); + cUSDToken.approve(CANONICAL_PERMIT2_ADDRESS, PLEDGE_AMOUNT); + PermitData memory permitData2 = _buildSignedAllOrNothingNoRewardPermitData(users.backer2Address, address(cUSDToken), PLEDGE_AMOUNT, 0, block.timestamp + 1 hours); + allOrNothing.pledgeWithoutAReward(users.backer2Address, address(cUSDToken), PLEDGE_AMOUNT, permitData2); vm.stopPrank(); // Verify balances @@ -188,9 +190,10 @@ contract AllOrNothingFunction_Integration_Shared_Test is AllOrNothing_Integratio // USDC pledge (6 decimals) uint256 usdcAmount = baseAmount / 1e12; vm.startPrank(users.backer1Address); - usdcToken.approve(address(allOrNothing), usdcAmount); + usdcToken.approve(CANONICAL_PERMIT2_ADDRESS, usdcAmount); vm.warp(LAUNCH_TIME); - allOrNothing.pledgeWithoutAReward(users.backer1Address, address(usdcToken), usdcAmount); + PermitData memory permitData3 = _buildSignedAllOrNothingNoRewardPermitData(users.backer1Address, address(usdcToken), usdcAmount, 0, block.timestamp + 1 hours); + allOrNothing.pledgeWithoutAReward(users.backer1Address, address(usdcToken), usdcAmount, permitData3); vm.stopPrank(); uint256 raisedAfterUSDC = allOrNothing.getRaisedAmount(); @@ -198,8 +201,9 @@ contract AllOrNothingFunction_Integration_Shared_Test is AllOrNothing_Integratio // cUSD pledge (18 decimals) vm.startPrank(users.backer2Address); - cUSDToken.approve(address(allOrNothing), baseAmount); - allOrNothing.pledgeWithoutAReward(users.backer2Address, address(cUSDToken), baseAmount); + cUSDToken.approve(CANONICAL_PERMIT2_ADDRESS, baseAmount); + PermitData memory permitData4 = _buildSignedAllOrNothingNoRewardPermitData(users.backer2Address, address(cUSDToken), baseAmount, 0, block.timestamp + 1 hours); + allOrNothing.pledgeWithoutAReward(users.backer2Address, address(cUSDToken), baseAmount, permitData4); vm.stopPrank(); uint256 raisedAfterCUSD = allOrNothing.getRaisedAmount(); @@ -212,15 +216,17 @@ contract AllOrNothingFunction_Integration_Shared_Test is AllOrNothing_Integratio // Pledge with USDC uint256 usdcAmount = getTokenAmount(address(usdcToken), PLEDGE_AMOUNT); vm.startPrank(users.backer1Address); - usdcToken.approve(address(allOrNothing), usdcAmount); + usdcToken.approve(CANONICAL_PERMIT2_ADDRESS, usdcAmount); vm.warp(LAUNCH_TIME); - allOrNothing.pledgeWithoutAReward(users.backer1Address, address(usdcToken), usdcAmount); + PermitData memory permitData5 = _buildSignedAllOrNothingNoRewardPermitData(users.backer1Address, address(usdcToken), usdcAmount, 0, block.timestamp + 1 hours); + allOrNothing.pledgeWithoutAReward(users.backer1Address, address(usdcToken), usdcAmount, permitData5); vm.stopPrank(); // Pledge with cUSD to meet goal vm.startPrank(users.backer2Address); - cUSDToken.approve(address(allOrNothing), GOAL_AMOUNT); - allOrNothing.pledgeWithoutAReward(users.backer2Address, address(cUSDToken), GOAL_AMOUNT); + cUSDToken.approve(CANONICAL_PERMIT2_ADDRESS, GOAL_AMOUNT); + PermitData memory permitData6 = _buildSignedAllOrNothingNoRewardPermitData(users.backer2Address, address(cUSDToken), GOAL_AMOUNT, 0, block.timestamp + 1 hours); + allOrNothing.pledgeWithoutAReward(users.backer2Address, address(cUSDToken), GOAL_AMOUNT, permitData6); vm.stopPrank(); uint256 protocolBalanceUSDCBefore = usdcToken.balanceOf(users.protocolAdminAddress); @@ -271,20 +277,23 @@ contract AllOrNothingFunction_Integration_Shared_Test is AllOrNothing_Integratio uint256 usdtAmount = getTokenAmount(address(usdtToken), PLEDGE_AMOUNT); vm.startPrank(users.backer1Address); - usdcToken.approve(address(allOrNothing), usdcAmount); + usdcToken.approve(CANONICAL_PERMIT2_ADDRESS, usdcAmount); vm.warp(LAUNCH_TIME); - allOrNothing.pledgeWithoutAReward(users.backer1Address, address(usdcToken), usdcAmount); + PermitData memory permitData7 = _buildSignedAllOrNothingNoRewardPermitData(users.backer1Address, address(usdcToken), usdcAmount, 0, block.timestamp + 1 hours); + allOrNothing.pledgeWithoutAReward(users.backer1Address, address(usdcToken), usdcAmount, permitData7); vm.stopPrank(); vm.startPrank(users.backer2Address); - usdtToken.approve(address(allOrNothing), usdtAmount); - allOrNothing.pledgeWithoutAReward(users.backer2Address, address(usdtToken), usdtAmount); + usdtToken.approve(CANONICAL_PERMIT2_ADDRESS, usdtAmount); + PermitData memory permitData8 = _buildSignedAllOrNothingNoRewardPermitData(users.backer2Address, address(usdtToken), usdtAmount, 0, block.timestamp + 1 hours); + allOrNothing.pledgeWithoutAReward(users.backer2Address, address(usdtToken), usdtAmount, permitData8); vm.stopPrank(); // Need cUSD pledge to meet goal vm.startPrank(users.backer1Address); - cUSDToken.approve(address(allOrNothing), GOAL_AMOUNT); - allOrNothing.pledgeWithoutAReward(users.backer1Address, address(cUSDToken), GOAL_AMOUNT); + cUSDToken.approve(CANONICAL_PERMIT2_ADDRESS, GOAL_AMOUNT); + PermitData memory permitData9 = _buildSignedAllOrNothingNoRewardPermitData(users.backer1Address, address(cUSDToken), GOAL_AMOUNT, 1, block.timestamp + 1 hours); + allOrNothing.pledgeWithoutAReward(users.backer1Address, address(cUSDToken), GOAL_AMOUNT, permitData9); vm.stopPrank(); // Disburse fees and withdraw @@ -314,16 +323,18 @@ contract AllOrNothingFunction_Integration_Shared_Test is AllOrNothing_Integratio // Backer1 pledges with USDC uint256 usdcAmount = getTokenAmount(address(usdcToken), PLEDGE_AMOUNT); vm.startPrank(users.backer1Address); - usdcToken.approve(address(allOrNothing), usdcAmount); + usdcToken.approve(CANONICAL_PERMIT2_ADDRESS, usdcAmount); vm.warp(LAUNCH_TIME); - allOrNothing.pledgeWithoutAReward(users.backer1Address, address(usdcToken), usdcAmount); + PermitData memory permitData10 = _buildSignedAllOrNothingNoRewardPermitData(users.backer1Address, address(usdcToken), usdcAmount, 0, block.timestamp + 1 hours); + allOrNothing.pledgeWithoutAReward(users.backer1Address, address(usdcToken), usdcAmount, permitData10); uint256 usdcTokenId = 1; // First pledge vm.stopPrank(); // Backer2 pledges with cUSD vm.startPrank(users.backer2Address); - cUSDToken.approve(address(allOrNothing), PLEDGE_AMOUNT); - allOrNothing.pledgeWithoutAReward(users.backer2Address, address(cUSDToken), PLEDGE_AMOUNT); + cUSDToken.approve(CANONICAL_PERMIT2_ADDRESS, PLEDGE_AMOUNT); + PermitData memory permitData11 = _buildSignedAllOrNothingNoRewardPermitData(users.backer2Address, address(cUSDToken), PLEDGE_AMOUNT, 0, block.timestamp + 1 hours); + allOrNothing.pledgeWithoutAReward(users.backer2Address, address(cUSDToken), PLEDGE_AMOUNT, permitData11); uint256 cUSDTokenId = 2; // Second pledge vm.stopPrank(); @@ -363,13 +374,14 @@ contract AllOrNothingFunction_Integration_Shared_Test is AllOrNothing_Integratio addRewards(users.creator1Address, address(allOrNothing), REWARD_NAMES, REWARDS); vm.startPrank(users.backer1Address); - unacceptedToken.approve(address(allOrNothing), PLEDGE_AMOUNT); + unacceptedToken.approve(CANONICAL_PERMIT2_ADDRESS, PLEDGE_AMOUNT); vm.warp(LAUNCH_TIME); + PermitData memory emptyPermit; vm.expectRevert( abi.encodeWithSelector(AllOrNothing.AllOrNothingTokenNotAccepted.selector, address(unacceptedToken)) ); - allOrNothing.pledgeWithoutAReward(users.backer1Address, address(unacceptedToken), PLEDGE_AMOUNT); + allOrNothing.pledgeWithoutAReward(users.backer1Address, address(unacceptedToken), PLEDGE_AMOUNT, emptyPermit); vm.stopPrank(); } } diff --git a/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaised.t.sol b/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaised.t.sol index aca9e9b..121fa0e 100644 --- a/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaised.t.sol +++ b/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaised.t.sol @@ -9,9 +9,23 @@ import {IReward} from "src/interfaces/IReward.sol"; import {ICampaignData} from "src/interfaces/ICampaignData.sol"; import {LogDecoder} from "../../utils/LogDecoder.sol"; import {Base_Test} from "../../Base.t.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {PermitData} from "src/interfaces/IPermit2.sol"; /// @notice Common testing logic needed by all KeepWhatsRaised integration tests. abstract contract KeepWhatsRaised_Integration_Shared_Test is IReward, LogDecoder, Base_Test { + bytes32 internal constant KWR_PLEDGE_FOR_REWARD_WITNESS_TYPEHASH = keccak256( + "KWRPledgeForRewardWitness(bytes32 pledgeId,address backer,bytes32 rewardsHash,uint256 tip)" + ); + string internal constant KWR_PLEDGE_FOR_REWARD_WITNESS_TYPE_STRING = + "KWRPledgeForRewardWitness witness)KWRPledgeForRewardWitness(bytes32 pledgeId,address backer,bytes32 rewardsHash,uint256 tip)TokenPermissions(address token,uint256 amount)"; + bytes32 internal constant KWR_PLEDGE_WITHOUT_REWARD_WITNESS_TYPEHASH = keccak256( + "KWRPledgeWithoutRewardWitness(bytes32 pledgeId,address backer,uint256 pledgeAmount,uint256 tip)" + ); + string internal constant KWR_PLEDGE_WITHOUT_REWARD_WITNESS_TYPE_STRING = + "KWRPledgeWithoutRewardWitness witness)KWRPledgeWithoutRewardWitness(bytes32 pledgeId,address backer,uint256 pledgeAmount,uint256 tip)TokenPermissions(address token,uint256 amount)"; + address campaignAddress; address treasuryAddress; KeepWhatsRaised internal keepWhatsRaised; @@ -309,13 +323,16 @@ abstract contract KeepWhatsRaised_Integration_Shared_Test is IReward, LogDecoder vm.startPrank(caller); vm.recordLogs(); - testToken.approve(keepWhatsRaisedAddress, pledgeAmount + tip); + // Approve MockPermit2 (at canonical address) instead of the treasury directly. + IERC20(token).approve(CANONICAL_PERMIT2_ADDRESS, type(uint256).max); vm.warp(launchTime); bytes32[] memory reward = new bytes32[](1); reward[0] = rewardName; - KeepWhatsRaised(keepWhatsRaisedAddress).pledgeForAReward(pledgeId, caller, token, tip, reward); + PermitData memory permitData = _buildSignedKeepWhatsRaisedRewardPermitData(caller, address(token), pledgeId, tip, reward, 0, block.timestamp + 1 hours); + + KeepWhatsRaised(keepWhatsRaisedAddress).pledgeForAReward(pledgeId, caller, token, tip, reward, permitData); logs = vm.getRecordedLogs(); @@ -345,10 +362,13 @@ abstract contract KeepWhatsRaised_Integration_Shared_Test is IReward, LogDecoder vm.startPrank(caller); vm.recordLogs(); - testToken.approve(keepWhatsRaisedAddress, pledgeAmount + tip); + // Approve MockPermit2 (at canonical address) instead of the treasury directly. + IERC20(token).approve(CANONICAL_PERMIT2_ADDRESS, type(uint256).max); vm.warp(launchTime); - KeepWhatsRaised(keepWhatsRaisedAddress).pledgeWithoutAReward(pledgeId, caller, token, pledgeAmount, tip); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(caller, address(token), pledgeId, pledgeAmount, tip, 0, block.timestamp + 1 hours); + + KeepWhatsRaised(keepWhatsRaisedAddress).pledgeWithoutAReward(pledgeId, caller, token, pledgeAmount, tip, permitData); logs = vm.getRecordedLogs(); @@ -495,6 +515,69 @@ abstract contract KeepWhatsRaised_Integration_Shared_Test is IReward, LogDecoder vm.stopPrank(); } + function _buildSignedKeepWhatsRaisedRewardPermitData( + address backer, + address token, + bytes32 pledgeId, + uint256 tip, + bytes32[] memory rewardSelection, + uint256 nonce, + uint256 deadline + ) internal returns (PermitData memory) { + uint256 pledgeAmount; + for (uint256 i = 0; i < rewardSelection.length; i++) { + pledgeAmount += keepWhatsRaised.getReward(rewardSelection[i]).rewardValue; + } + + uint256 totalAmount = _denormalizeForToken(token, pledgeAmount) + tip; + bytes32 rewardsHash = keccak256(abi.encodePacked(rewardSelection)); + bytes32 witness = keccak256( + abi.encode(KWR_PLEDGE_FOR_REWARD_WITNESS_TYPEHASH, pledgeId, backer, rewardsHash, tip) + ); + + return _buildSignedPermitData( + backer, treasuryAddress, token, totalAmount, witness, KWR_PLEDGE_FOR_REWARD_WITNESS_TYPE_STRING, nonce, deadline + ); + } + + function _buildSignedKeepWhatsRaisedNoRewardPermitData( + address backer, + address token, + bytes32 pledgeId, + uint256 pledgeAmount, + uint256 tip, + uint256 nonce, + uint256 deadline + ) internal returns (PermitData memory) { + bytes32 witness = + keccak256(abi.encode(KWR_PLEDGE_WITHOUT_REWARD_WITNESS_TYPEHASH, pledgeId, backer, pledgeAmount, tip)); + + return _buildSignedPermitData( + backer, + treasuryAddress, + token, + pledgeAmount + tip, + witness, + KWR_PLEDGE_WITHOUT_REWARD_WITNESS_TYPE_STRING, + nonce, + deadline + ); + } + + function _denormalizeForToken(address token, uint256 amount) internal view returns (uint256) { + uint8 decimals = IERC20Metadata(token).decimals(); + + if (decimals == 18) { + return amount; + } + + if (decimals < 18) { + return amount / (10 ** (18 - decimals)); + } + + return amount * (10 ** (decimals - 18)); + } + /** * @notice Deploys a fresh campaign and unconfigured KeepWhatsRaised treasury, * reassigning campaignAddress, treasuryAddress, and keepWhatsRaised. diff --git a/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol b/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol index fef7720..bf61976 100644 --- a/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol +++ b/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol @@ -10,6 +10,7 @@ import {Users} from "../../utils/Types.sol"; import {IReward} from "src/interfaces/IReward.sol"; import {KeepWhatsRaised} from "src/treasuries/KeepWhatsRaised.sol"; import {CampaignInfo} from "src/CampaignInfo.sol"; +import {PermitData} from "src/interfaces/IPermit2.sol"; contract KeepWhatsRaisedFunction_Integration_Shared_Test is KeepWhatsRaised_Integration_Shared_Test { function setUp() public virtual override { @@ -588,10 +589,11 @@ contract KeepWhatsRaisedFunction_Integration_Shared_Test is KeepWhatsRaised_Inte // Verify campaign is cancelled vm.startPrank(users.backer2Address); - testToken.approve(address(keepWhatsRaised), PLEDGE_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PLEDGE_AMOUNT); + PermitData memory emptyPermit1; vm.expectRevert(); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID_2, users.backer2Address, address(testToken), PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID_2, users.backer2Address, address(testToken), PLEDGE_AMOUNT, 0, emptyPermit1 ); vm.stopPrank(); } @@ -622,10 +624,11 @@ contract KeepWhatsRaisedFunction_Integration_Shared_Test is KeepWhatsRaised_Inte // Verify campaign is cancelled vm.startPrank(users.backer2Address); - testToken.approve(address(keepWhatsRaised), PLEDGE_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PLEDGE_AMOUNT); + PermitData memory emptyPermit2; vm.expectRevert(); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID_2, users.backer2Address, address(testToken), PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID_2, users.backer2Address, address(testToken), PLEDGE_AMOUNT, 0, emptyPermit2 ); vm.stopPrank(); } diff --git a/test/foundry/integration/PaymentTreasury/PaymentTreasury.t.sol b/test/foundry/integration/PaymentTreasury/PaymentTreasury.t.sol index 71004aa..c262413 100644 --- a/test/foundry/integration/PaymentTreasury/PaymentTreasury.t.sol +++ b/test/foundry/integration/PaymentTreasury/PaymentTreasury.t.sol @@ -9,9 +9,17 @@ import {CampaignInfo} from "src/CampaignInfo.sol"; import {ICampaignPaymentTreasury} from "src/interfaces/ICampaignPaymentTreasury.sol"; import {LogDecoder} from "../../utils/LogDecoder.sol"; import {TestToken} from "../../../mocks/TestToken.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {PermitData} from "src/interfaces/IPermit2.sol"; /// @notice Common testing logic needed by all PaymentTreasury integration tests. abstract contract PaymentTreasury_Integration_Shared_Test is LogDecoder, Base_Test { + bytes32 internal constant CRYPTO_PAYMENT_WITNESS_TYPEHASH = keccak256( + "CryptoPaymentWitness(bytes32 paymentId,bytes32 itemId,address buyerAddress,uint256 amount,bytes32 lineItemsHash)" + ); + string internal constant CRYPTO_PAYMENT_WITNESS_TYPE_STRING = + "CryptoPaymentWitness witness)CryptoPaymentWitness(bytes32 paymentId,bytes32 itemId,address buyerAddress,uint256 amount,bytes32 lineItemsHash)TokenPermissions(address token,uint256 amount)"; + address campaignAddress; address treasuryAddress; PaymentTreasury internal paymentTreasury; @@ -161,6 +169,8 @@ abstract contract PaymentTreasury_Integration_Shared_Test is LogDecoder, Base_Te /** * @notice Processes a crypto payment + * @dev `caller` must have pre-approved MockPermit2 for the token. + * The helper sets up the approval and builds a dummy PermitData automatically. */ function processCryptoPayment( address caller, @@ -172,9 +182,45 @@ abstract contract PaymentTreasury_Integration_Shared_Test is LogDecoder, Base_Te ICampaignPaymentTreasury.LineItem[] memory lineItems, ICampaignPaymentTreasury.ExternalFees[] memory externalFees ) internal { - vm.prank(caller); + // Compute total transfer amount to approve + uint256 totalAmount = amount; + for (uint256 i = 0; i < lineItems.length; i++) { + totalAmount += lineItems[i].amount; + } + + vm.startPrank(caller); + // Approve MockPermit2 (at canonical address) for the token. + IERC20(paymentToken).approve(CANONICAL_PERMIT2_ADDRESS, totalAmount); + + PermitData memory permitData = _buildSignedCryptoPaymentPermitData(buyerAddress, paymentToken, paymentId, itemId, amount, lineItems, 0, block.timestamp + 1 hours); + paymentTreasury.processCryptoPayment( - paymentId, itemId, buyerAddress, paymentToken, amount, lineItems, externalFees + paymentId, itemId, buyerAddress, paymentToken, amount, lineItems, externalFees, permitData + ); + vm.stopPrank(); + } + + function _buildSignedCryptoPaymentPermitData( + address buyer, + address paymentToken, + bytes32 paymentId, + bytes32 itemId, + uint256 amount, + ICampaignPaymentTreasury.LineItem[] memory lineItems, + uint256 nonce, + uint256 deadline + ) internal returns (PermitData memory) { + uint256 totalAmount = amount; + for (uint256 i = 0; i < lineItems.length; i++) { + totalAmount += lineItems[i].amount; + } + + bytes32 lineItemsHash = keccak256(abi.encode(lineItems)); + bytes32 witness = + keccak256(abi.encode(CRYPTO_PAYMENT_WITNESS_TYPEHASH, paymentId, itemId, buyer, amount, lineItemsHash)); + + return _buildSignedPermitData( + buyer, treasuryAddress, paymentToken, totalAmount, witness, CRYPTO_PAYMENT_WITNESS_TYPE_STRING, nonce, deadline ); } diff --git a/test/foundry/integration/PaymentTreasury/PaymentTreasuryFunction.t.sol b/test/foundry/integration/PaymentTreasury/PaymentTreasuryFunction.t.sol index 7a72f3a..d2b0d83 100644 --- a/test/foundry/integration/PaymentTreasury/PaymentTreasuryFunction.t.sol +++ b/test/foundry/integration/PaymentTreasury/PaymentTreasuryFunction.t.sol @@ -8,6 +8,7 @@ import "forge-std/Test.sol"; import {CampaignInfo} from "src/CampaignInfo.sol"; import {PaymentTreasury} from "src/treasuries/PaymentTreasury.sol"; import {TestToken} from "../../../mocks/TestToken.sol"; +import {PermitData} from "src/interfaces/IPermit2.sol"; /** * @title PaymentTreasuryFunction_Integration_Test @@ -512,22 +513,25 @@ contract PaymentTreasuryFunction_Integration_Test is PaymentTreasury_Integration uint256 amount = 1000e18; rejectedToken.mint(users.backer1Address, amount); - vm.prank(users.backer1Address); - rejectedToken.approve(treasuryAddress, amount); + vm.startPrank(users.backer1Address); + rejectedToken.approve(CANONICAL_PERMIT2_ADDRESS, amount); - // Try to process crypto payment with unaccepted token - vm.expectRevert(); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); - processCryptoPayment( - users.backer1Address, + PermitData memory emptyPermit; + + // Place vm.expectRevert right before the external call + vm.expectRevert(); + paymentTreasury.processCryptoPayment( PAYMENT_ID_1, ITEM_ID_1, users.backer1Address, address(rejectedToken), amount, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + emptyPermit ); + vm.stopPrank(); } function test_balanceTrackingAcrossMultipleTokens() public { diff --git a/test/foundry/integration/PaymentTreasury/PaymentTreasuryLineItems.t.sol b/test/foundry/integration/PaymentTreasury/PaymentTreasuryLineItems.t.sol index dc7dfcb..883811a 100644 --- a/test/foundry/integration/PaymentTreasury/PaymentTreasuryLineItems.t.sol +++ b/test/foundry/integration/PaymentTreasury/PaymentTreasuryLineItems.t.sol @@ -3,6 +3,7 @@ pragma solidity ^0.8.22; import "./PaymentTreasury.t.sol"; import {ICampaignPaymentTreasury} from "src/interfaces/ICampaignPaymentTreasury.sol"; +import {PermitData} from "src/interfaces/IPermit2.sol"; /// @notice Tests for PaymentTreasury with line items and expiration contract PaymentTreasuryLineItems_Test is PaymentTreasury_Integration_Shared_Test { @@ -228,11 +229,12 @@ contract PaymentTreasuryLineItems_Test is PaymentTreasury_Integration_Shared_Tes deal(address(testToken), users.backer1Address, totalAmount); vm.prank(users.backer1Address); - testToken.approve(treasuryAddress, totalAmount); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, totalAmount); ICampaignPaymentTreasury.LineItem[] memory lineItems = new ICampaignPaymentTreasury.LineItem[](1); lineItems[0] = ICampaignPaymentTreasury.LineItem({typeId: SHIPPING_FEE_TYPE_ID, amount: shippingFeeAmount}); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData(users.backer1Address, address(testToken), PAYMENT_ID_1, ITEM_ID_1, PAYMENT_AMOUNT_1, lineItems, 0, block.timestamp + 1 hours); vm.prank(users.backer1Address); paymentTreasury.processCryptoPayment( PAYMENT_ID_1, @@ -241,7 +243,8 @@ contract PaymentTreasuryLineItems_Test is PaymentTreasury_Integration_Shared_Tes address(testToken), PAYMENT_AMOUNT_1, lineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Payment should be confirmed immediately for crypto payments @@ -255,13 +258,14 @@ contract PaymentTreasuryLineItems_Test is PaymentTreasury_Integration_Shared_Tes deal(address(testToken), users.backer1Address, totalAmount); vm.prank(users.backer1Address); - testToken.approve(treasuryAddress, totalAmount); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, totalAmount); uint256 platformAdminBalanceBefore = testToken.balanceOf(users.platform1AdminAddress); ICampaignPaymentTreasury.LineItem[] memory lineItems = new ICampaignPaymentTreasury.LineItem[](1); lineItems[0] = ICampaignPaymentTreasury.LineItem({typeId: TIP_TYPE_ID, amount: tipAmount}); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData(users.backer1Address, address(testToken), PAYMENT_ID_1, ITEM_ID_1, PAYMENT_AMOUNT_1, lineItems, 0, block.timestamp + 1 hours); vm.prank(users.backer1Address); paymentTreasury.processCryptoPayment( PAYMENT_ID_1, @@ -270,7 +274,8 @@ contract PaymentTreasuryLineItems_Test is PaymentTreasury_Integration_Shared_Tes address(testToken), PAYMENT_AMOUNT_1, lineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Tip doesn't count toward goal, but payment amount does @@ -289,7 +294,7 @@ contract PaymentTreasuryLineItems_Test is PaymentTreasury_Integration_Shared_Tes deal(address(testToken), users.backer1Address, totalAmount); vm.prank(users.backer1Address); - testToken.approve(treasuryAddress, totalAmount); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, totalAmount); uint256 platformAdminBalanceBefore = testToken.balanceOf(users.platform1AdminAddress); uint256 tipNetAmount = tipAmount; // No protocol fee on tip @@ -299,6 +304,7 @@ contract PaymentTreasuryLineItems_Test is PaymentTreasury_Integration_Shared_Tes lineItems[1] = ICampaignPaymentTreasury.LineItem({typeId: TIP_TYPE_ID, amount: tipAmount}); lineItems[2] = ICampaignPaymentTreasury.LineItem({typeId: INTEREST_TYPE_ID, amount: interestAmount}); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData(users.backer1Address, address(testToken), PAYMENT_ID_1, ITEM_ID_1, PAYMENT_AMOUNT_1, lineItems, 0, block.timestamp + 1 hours); vm.prank(users.backer1Address); paymentTreasury.processCryptoPayment( PAYMENT_ID_1, @@ -307,7 +313,8 @@ contract PaymentTreasuryLineItems_Test is PaymentTreasury_Integration_Shared_Tes address(testToken), PAYMENT_AMOUNT_1, lineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Only payment amount + shipping fee count toward goal @@ -520,7 +527,7 @@ contract PaymentTreasuryLineItems_Test is PaymentTreasury_Integration_Shared_Tes deal(address(testToken), users.backer1Address, totalAmount); vm.prank(users.backer1Address); - testToken.approve(treasuryAddress, totalAmount); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, totalAmount); ICampaignPaymentTreasury.LineItem[] memory lineItems = new ICampaignPaymentTreasury.LineItem[](1); lineItems[0] = @@ -528,6 +535,7 @@ contract PaymentTreasuryLineItems_Test is PaymentTreasury_Integration_Shared_Tes bytes32 paymentId = keccak256("refundableFeePayment"); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData(users.backer1Address, address(testToken), paymentId, ITEM_ID_1, baseAmount, lineItems, 0, block.timestamp + 1 hours); vm.prank(users.backer1Address); paymentTreasury.processCryptoPayment( paymentId, @@ -536,7 +544,8 @@ contract PaymentTreasuryLineItems_Test is PaymentTreasury_Integration_Shared_Tes address(testToken), baseAmount, lineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); uint256 buyerBalanceAfterPayment = testToken.balanceOf(users.backer1Address); diff --git a/test/foundry/integration/TimeConstrainedPaymentTreasury/TimeConstrainedPaymentTreasury.t.sol b/test/foundry/integration/TimeConstrainedPaymentTreasury/TimeConstrainedPaymentTreasury.t.sol index b25a5ad..7b2ede4 100644 --- a/test/foundry/integration/TimeConstrainedPaymentTreasury/TimeConstrainedPaymentTreasury.t.sol +++ b/test/foundry/integration/TimeConstrainedPaymentTreasury/TimeConstrainedPaymentTreasury.t.sol @@ -6,12 +6,19 @@ import "forge-std/console.sol"; import {TimeConstrainedPaymentTreasury} from "src/treasuries/TimeConstrainedPaymentTreasury.sol"; import {CampaignInfo} from "src/CampaignInfo.sol"; import {ICampaignPaymentTreasury} from "src/interfaces/ICampaignPaymentTreasury.sol"; +import {PermitData} from "src/interfaces/IPermit2.sol"; import {LogDecoder} from "../../utils/LogDecoder.sol"; import {Base_Test} from "../../Base.t.sol"; import {DataRegistryKeys} from "src/constants/DataRegistryKeys.sol"; /// @notice Common testing logic needed by all TimeConstrainedPaymentTreasury integration tests. abstract contract TimeConstrainedPaymentTreasury_Integration_Shared_Test is LogDecoder, Base_Test { + bytes32 internal constant CRYPTO_PAYMENT_WITNESS_TYPEHASH = keccak256( + "CryptoPaymentWitness(bytes32 paymentId,bytes32 itemId,address buyerAddress,uint256 amount,bytes32 lineItemsHash)" + ); + string internal constant CRYPTO_PAYMENT_WITNESS_TYPE_STRING = + "CryptoPaymentWitness witness)CryptoPaymentWitness(bytes32 paymentId,bytes32 itemId,address buyerAddress,uint256 amount,bytes32 lineItemsHash)TokenPermissions(address token,uint256 amount)"; + address campaignAddress; address treasuryAddress; TimeConstrainedPaymentTreasury internal timeConstrainedPaymentTreasury; @@ -180,4 +187,28 @@ abstract contract TimeConstrainedPaymentTreasury_Integration_Shared_Test is LogD function advanceToAfterLaunch() internal { vm.warp(campaignLaunchTime + 1); } + + function _buildSignedCryptoPaymentPermitData( + address buyer, + address paymentToken, + bytes32 paymentId, + bytes32 itemId, + uint256 amount, + ICampaignPaymentTreasury.LineItem[] memory lineItems, + uint256 nonce, + uint256 deadline + ) internal returns (PermitData memory) { + uint256 totalAmount = amount; + for (uint256 i = 0; i < lineItems.length; i++) { + totalAmount += lineItems[i].amount; + } + + bytes32 lineItemsHash = keccak256(abi.encode(lineItems)); + bytes32 witness = + keccak256(abi.encode(CRYPTO_PAYMENT_WITNESS_TYPEHASH, paymentId, itemId, buyer, amount, lineItemsHash)); + + return _buildSignedPermitData( + buyer, treasuryAddress, paymentToken, totalAmount, witness, CRYPTO_PAYMENT_WITNESS_TYPE_STRING, nonce, deadline + ); + } } diff --git a/test/foundry/integration/TimeConstrainedPaymentTreasury/TimeConstrainedPaymentTreasuryFunction.t.sol b/test/foundry/integration/TimeConstrainedPaymentTreasury/TimeConstrainedPaymentTreasuryFunction.t.sol index f832b03..3fbddb0 100644 --- a/test/foundry/integration/TimeConstrainedPaymentTreasury/TimeConstrainedPaymentTreasuryFunction.t.sol +++ b/test/foundry/integration/TimeConstrainedPaymentTreasury/TimeConstrainedPaymentTreasuryFunction.t.sol @@ -11,6 +11,8 @@ import {ICampaignPaymentTreasury} from "src/interfaces/ICampaignPaymentTreasury. import {TimeConstrainedPaymentTreasury} from "src/treasuries/TimeConstrainedPaymentTreasury.sol"; import {CampaignInfo} from "src/CampaignInfo.sol"; import {TestToken} from "../../../mocks/TestToken.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {PermitData} from "src/interfaces/IPermit2.sol"; contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is TimeConstrainedPaymentTreasury_Integration_Shared_Test @@ -92,11 +94,21 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is function test_processCryptoPayment() external { advanceToWithinRange(); - // Approve tokens for the treasury + // Approve MockPermit2 (at canonical address) for the token. vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + PAYMENT_ID_1, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( PAYMENT_ID_1, @@ -105,7 +117,8 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Payment processed successfully @@ -146,9 +159,19 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is // Use processCryptoPayment which creates and confirms payment in one step vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + uniquePaymentId, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( uniquePaymentId, @@ -157,7 +180,8 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Payment created and confirmed successfully by processCryptoPayment @@ -174,9 +198,19 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is // Use processCryptoPayment for both payments which creates and confirms them vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData1 = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + uniquePaymentId1, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( uniquePaymentId1, @@ -185,13 +219,24 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData1 ); vm.prank(users.backer2Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_2); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_2); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems2 = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData2 = _buildSignedCryptoPaymentPermitData( + users.backer2Address, + address(testToken), + uniquePaymentId2, + ITEM_ID_2, + PAYMENT_AMOUNT_2, + emptyLineItems2, + 0, + block.timestamp + 1 hours + ); vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( uniquePaymentId2, @@ -200,7 +245,8 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is address(testToken), PAYMENT_AMOUNT_2, emptyLineItems2, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData2 ); // Payments created and confirmed successfully by processCryptoPayment @@ -217,9 +263,19 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is // Use processCryptoPayment which creates and confirms payment in one step vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + uniquePaymentId, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( uniquePaymentId, @@ -228,7 +284,8 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Advance to after launch to be able to claim refund @@ -256,9 +313,19 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is // Use processCryptoPayment which creates and confirms payment in one step vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + uniquePaymentId, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( uniquePaymentId, @@ -267,7 +334,8 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Advance to after launch to be able to disburse fees @@ -289,9 +357,19 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is // Use processCryptoPayment which creates and confirms payment in one step vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + uniquePaymentId, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( uniquePaymentId, @@ -300,7 +378,8 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Advance to after launch to be able to withdraw @@ -491,9 +570,19 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is // Use processCryptoPayment which creates and confirms payment in one step vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + uniquePaymentId, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( uniquePaymentId, @@ -502,7 +591,8 @@ contract TimeConstrainedPaymentTreasuryFunction_Integration_Shared_Test is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Advance to after launch time diff --git a/test/foundry/unit/KeepWhatsRaised.t.sol b/test/foundry/unit/KeepWhatsRaised.t.sol index c116669..5c52834 100644 --- a/test/foundry/unit/KeepWhatsRaised.t.sol +++ b/test/foundry/unit/KeepWhatsRaised.t.sol @@ -13,6 +13,7 @@ import {Defaults} from "../Base.t.sol"; import {IReward} from "src/interfaces/IReward.sol"; import {ICampaignData} from "src/interfaces/ICampaignData.sol"; import {TestToken} from "../../mocks/TestToken.sol"; +import {MockPermit2} from "../../mocks/MockPermit2.sol"; contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Test { // Test constants @@ -118,12 +119,13 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(keepWhatsRaised.getLaunchTime()); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); bytes32[] memory rewardSelection = new bytes32[](1); rewardSelection[0] = TEST_REWARD_NAME; - keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection); + PermitData memory permitData = _buildSignedKeepWhatsRaisedRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, 0, rewardSelection, 0, block.timestamp + 1 hours); + keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection, permitData); vm.stopPrank(); // Available amount should not include Colombian tax deduction at pledge time @@ -499,13 +501,14 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te // Pledge vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT + TEST_TIP_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT + TEST_TIP_AMOUNT); bytes32[] memory rewardSelection = new bytes32[](1); rewardSelection[0] = TEST_REWARD_NAME; + PermitData memory permitData = _buildSignedKeepWhatsRaisedRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, TEST_TIP_AMOUNT, rewardSelection, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeForAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_TIP_AMOUNT, rewardSelection + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_TIP_AMOUNT, rewardSelection, permitData ); vm.stopPrank(); @@ -522,20 +525,21 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT * 2); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT * 2); bytes32[] memory rewardSelection = new bytes32[](1); rewardSelection[0] = TEST_REWARD_NAME; // First pledge - keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection); + PermitData memory permitData1 = _buildSignedKeepWhatsRaisedRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, 0, rewardSelection, 0, block.timestamp + 1 hours); + keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection, permitData1); // Try to pledge with same ID - bytes32 internalPledgeId = keccak256(abi.encodePacked(TEST_PLEDGE_ID, users.backer1Address)); + PermitData memory permitData2 = _buildSignedKeepWhatsRaisedRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, 0, rewardSelection, 1, block.timestamp + 1 hours); vm.expectRevert( - abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedPledgeAlreadyProcessed.selector, internalPledgeId) + abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedPledgeAlreadyProcessed.selector, TEST_PLEDGE_ID) ); - keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection); + keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection, permitData2); vm.stopPrank(); } @@ -553,13 +557,14 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te // Try to pledge vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); bytes32[] memory rewardSelection = new bytes32[](1); rewardSelection[0] = TEST_REWARD_NAME; - vm.expectRevert(KeepWhatsRaised.KeepWhatsRaisedFirstRewardNotTier.selector); - keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection); + PermitData memory emptyPermit; + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "EMPTY_SIGNATURE")); + keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection, emptyPermit); vm.stopPrank(); } @@ -572,7 +577,6 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te Reward[] memory rewards = new Reward[](2); rewards[0] = _createTestReward(TEST_PLEDGE_AMOUNT, true, false); - // canBeAddOn: false — should be rejected when used as an add-on rewards[1] = _createTestReward(TEST_PLEDGE_AMOUNT / 2, false, false); vm.prank(users.creator1Address); @@ -580,14 +584,15 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT * 2); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT * 2); bytes32[] memory rewardSelection = new bytes32[](2); rewardSelection[0] = TEST_REWARD_NAME; rewardSelection[1] = addOnRewardName; - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "REWARD_NOT_FOUND")); - keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection); + PermitData memory emptyPermit2; + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "EMPTY_SIGNATURE")); + keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection, emptyPermit2); vm.stopPrank(); } @@ -600,9 +605,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te // Pledge vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), pledgeAmount + TEST_TIP_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, pledgeAmount + TEST_TIP_AMOUNT); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, pledgeAmount, TEST_TIP_AMOUNT, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), pledgeAmount, TEST_TIP_AMOUNT + TEST_PLEDGE_ID, users.backer1Address, address(testToken), pledgeAmount, TEST_TIP_AMOUNT, permitData ); vm.stopPrank(); @@ -618,20 +624,57 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT * 2); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT * 2); // First pledge + PermitData memory permitData1 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, TEST_PLEDGE_AMOUNT, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, permitData1 ); - // Try to pledge with same ID - internal pledge ID includes caller - bytes32 internalPledgeId = keccak256(abi.encodePacked(TEST_PLEDGE_ID, users.backer1Address)); + PermitData memory permitData2 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, TEST_PLEDGE_AMOUNT, 0, 1, block.timestamp + 1 hours); vm.expectRevert( - abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedPledgeAlreadyProcessed.selector, internalPledgeId) + abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedPledgeAlreadyProcessed.selector, TEST_PLEDGE_ID) ); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, permitData2 + ); + vm.stopPrank(); + } + + function testPledgeWithoutARewardRevertWhenPermitMissing() public { + vm.warp(LAUNCH_TIME); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "EMPTY_SIGNATURE")); + vm.prank(users.backer1Address); + PermitData memory emptyPermitData = PermitData({nonce: 0, deadline: 0, signature: ""}); + keepWhatsRaised.pledgeWithoutAReward( + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, emptyPermitData + ); + } + + function testPledgeWithoutARewardRevertWhenSignedPledgeIdIsTampered() public { + vm.warp(LAUNCH_TIME); + vm.startPrank(users.backer1Address); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); + + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData( + users.backer1Address, + address(testToken), + TEST_PLEDGE_ID, + TEST_PLEDGE_AMOUNT, + 0, + 55, + block.timestamp + 1 hours + ); + + vm.expectRevert(MockPermit2.InvalidSigner.selector); + keepWhatsRaised.pledgeWithoutAReward( + keccak256("tamperedPledgeId"), + users.backer1Address, + address(testToken), + TEST_PLEDGE_AMOUNT, + 0, + permitData ); vm.stopPrank(); } @@ -641,16 +684,18 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME - 1); vm.expectRevert(); vm.prank(users.backer1Address); + PermitData memory emptyPermit1; keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, emptyPermit1 ); // After deadline vm.warp(DEADLINE + 1); vm.expectRevert(); vm.prank(users.backer1Address); + PermitData memory emptyPermit2; keepWhatsRaised.pledgeWithoutAReward( - keccak256("newPledge"), users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + keccak256("newPledge"), users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, emptyPermit2 ); } @@ -663,14 +708,15 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te // Try to pledge vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT + TEST_TIP_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT + TEST_TIP_AMOUNT); bytes32[] memory rewardSelection = new bytes32[](1); rewardSelection[0] = TEST_REWARD_NAME; + PermitData memory emptyPermit; vm.expectRevert(); keepWhatsRaised.pledgeForAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_TIP_AMOUNT, rewardSelection + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_TIP_AMOUNT, rewardSelection, emptyPermit ); vm.stopPrank(); } @@ -826,8 +872,9 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), largePledge); - keepWhatsRaised.pledgeWithoutAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), largePledge, 0); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, largePledge); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, largePledge, 0, 0, block.timestamp + 1 hours); + keepWhatsRaised.pledgeWithoutAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), largePledge, 0, permitData); vm.stopPrank(); uint256 availableAfterPledge = keepWhatsRaised.getAvailableRaisedAmount(); @@ -869,9 +916,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, TEST_PLEDGE_AMOUNT, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, permitData ); vm.stopPrank(); @@ -912,9 +960,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, TEST_PLEDGE_AMOUNT, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, permitData ); uint256 tokenId = 1; // First token ID after pledge vm.stopPrank(); @@ -949,9 +998,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, TEST_PLEDGE_AMOUNT, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, permitData ); uint256 tokenId = 1; // First token ID after pledge vm.stopPrank(); @@ -969,9 +1019,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, TEST_PLEDGE_AMOUNT, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, permitData ); uint256 tokenId = 1; // First token ID after pledge vm.stopPrank(); @@ -1008,9 +1059,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, TEST_PLEDGE_AMOUNT, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, permitData ); uint256 tokenId = 0; vm.stopPrank(); @@ -1030,9 +1082,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, TEST_PLEDGE_AMOUNT, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, permitData ); uint256 tokenId = 0; vm.stopPrank(); @@ -1229,8 +1282,9 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.expectRevert(); vm.prank(users.backer1Address); + PermitData memory emptyPermit1; keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, emptyPermit1 ); } @@ -1245,8 +1299,9 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.expectRevert(); vm.prank(users.backer1Address); + PermitData memory emptyPermit2; keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, emptyPermit2 ); } @@ -1321,8 +1376,9 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), smallPledge); - keepWhatsRaised.pledgeWithoutAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), smallPledge, 0); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, smallPledge); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, smallPledge, 0, 0, block.timestamp + 1 hours); + keepWhatsRaised.pledgeWithoutAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), smallPledge, 0, permitData); vm.stopPrank(); vm.prank(users.platform2AdminAddress); @@ -1343,9 +1399,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, TEST_PLEDGE_AMOUNT, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, permitData ); vm.stopPrank(); @@ -1358,9 +1415,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), TEST_PLEDGE_ID, TEST_PLEDGE_AMOUNT, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0 + TEST_PLEDGE_ID, users.backer1Address, address(testToken), TEST_PLEDGE_AMOUNT, 0, permitData ); vm.stopPrank(); @@ -1413,11 +1471,12 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te ); vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT + TEST_TIP_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT + TEST_TIP_AMOUNT); bytes32[] memory rewardSelection = new bytes32[](1); rewardSelection[0] = TEST_REWARD_NAME; + PermitData memory permitData1 = _buildSignedKeepWhatsRaisedRewardPermitData(users.backer1Address, address(testToken), keccak256("pledge1"), TEST_TIP_AMOUNT, rewardSelection, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeForAReward( - keccak256("pledge1"), users.backer1Address, address(testToken), TEST_TIP_AMOUNT, rewardSelection + keccak256("pledge1"), users.backer1Address, address(testToken), TEST_TIP_AMOUNT, rewardSelection, permitData1 ); vm.stopPrank(); @@ -1427,8 +1486,9 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te users.platform2AdminAddress, address(keepWhatsRaised), keccak256("pledge2"), differentGatewayFee ); vm.startPrank(users.backer2Address); - testToken.approve(address(keepWhatsRaised), 2000e18); - keepWhatsRaised.pledgeWithoutAReward(keccak256("pledge2"), users.backer2Address, address(testToken), 2000e18, 0); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, 2000e18); + PermitData memory permitData2 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer2Address, address(testToken), keccak256("pledge2"), 2000e18, 0, 0, block.timestamp + 1 hours); + keepWhatsRaised.pledgeWithoutAReward(keccak256("pledge2"), users.backer2Address, address(testToken), 2000e18, 0, permitData2); vm.stopPrank(); // Verify total raised and available amounts @@ -1466,9 +1526,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), smallAmount); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, smallAmount); + PermitData memory permitData = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(testToken), keccak256("small"), smallAmount, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - keccak256("small"), users.backer1Address, address(testToken), smallAmount, 0 + keccak256("small"), users.backer1Address, address(testToken), smallAmount, 0, permitData ); vm.stopPrank(); @@ -1559,19 +1620,21 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te // Backer 1 pledge with reward vm.startPrank(users.backer1Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT + TEST_TIP_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT + TEST_TIP_AMOUNT); bytes32[] memory rewardSelection = new bytes32[](1); rewardSelection[0] = TEST_REWARD_NAME; + PermitData memory permitDataBacker1 = _buildSignedKeepWhatsRaisedRewardPermitData(users.backer1Address, address(testToken), keccak256("pledge1"), TEST_TIP_AMOUNT, rewardSelection, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeForAReward( - keccak256("pledge1"), users.backer1Address, address(testToken), TEST_TIP_AMOUNT, rewardSelection + keccak256("pledge1"), users.backer1Address, address(testToken), TEST_TIP_AMOUNT, rewardSelection, permitDataBacker1 ); vm.stopPrank(); // Backer 2 pledge without reward vm.startPrank(users.backer2Address); - testToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT + TEST_TIP_AMOUNT); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT + TEST_TIP_AMOUNT); + PermitData memory permitDataBacker2 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer2Address, address(testToken), keccak256("pledge2"), TEST_PLEDGE_AMOUNT, TEST_TIP_AMOUNT, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - keccak256("pledge2"), users.backer2Address, address(testToken), TEST_PLEDGE_AMOUNT, TEST_TIP_AMOUNT + keccak256("pledge2"), users.backer2Address, address(testToken), TEST_PLEDGE_AMOUNT, TEST_TIP_AMOUNT, permitDataBacker2 ); vm.stopPrank(); } @@ -1606,9 +1669,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - usdcToken.approve(address(keepWhatsRaised), usdcAmount); + usdcToken.approve(CANONICAL_PERMIT2_ADDRESS, usdcAmount); + PermitData memory permitData1 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(usdcToken), keccak256("usdc_pledge"), usdcAmount, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - keccak256("usdc_pledge"), users.backer1Address, address(usdcToken), usdcAmount, 0 + keccak256("usdc_pledge"), users.backer1Address, address(usdcToken), usdcAmount, 0, permitData1 ); vm.stopPrank(); @@ -1616,9 +1680,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te setPaymentGatewayFee(users.platform2AdminAddress, address(keepWhatsRaised), keccak256("cusd_pledge"), 0); vm.startPrank(users.backer2Address); - cUSDToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT); + cUSDToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); + PermitData memory permitData2 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer2Address, address(cUSDToken), keccak256("cusd_pledge"), TEST_PLEDGE_AMOUNT, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - keccak256("cusd_pledge"), users.backer2Address, address(cUSDToken), TEST_PLEDGE_AMOUNT, 0 + keccak256("cusd_pledge"), users.backer2Address, address(cUSDToken), TEST_PLEDGE_AMOUNT, 0, permitData2 ); vm.stopPrank(); @@ -1641,8 +1706,9 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); deal(address(usdcToken), users.backer1Address, usdcAmount); // Ensure enough tokens - usdcToken.approve(address(keepWhatsRaised), usdcAmount); - keepWhatsRaised.pledgeWithoutAReward(keccak256("usdc"), users.backer1Address, address(usdcToken), usdcAmount, 0); + usdcToken.approve(CANONICAL_PERMIT2_ADDRESS, usdcAmount); + PermitData memory permitData1 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(usdcToken), keccak256("usdc"), usdcAmount, 0, 0, block.timestamp + 1 hours); + keepWhatsRaised.pledgeWithoutAReward(keccak256("usdc"), users.backer1Address, address(usdcToken), usdcAmount, 0, permitData1); vm.stopPrank(); // Pledge with cUSD @@ -1650,8 +1716,9 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.startPrank(users.backer2Address); deal(address(cUSDToken), users.backer2Address, cUSDAmount); // Ensure enough tokens - cUSDToken.approve(address(keepWhatsRaised), cUSDAmount); - keepWhatsRaised.pledgeWithoutAReward(keccak256("cusd"), users.backer2Address, address(cUSDToken), cUSDAmount, 0); + cUSDToken.approve(CANONICAL_PERMIT2_ADDRESS, cUSDAmount); + PermitData memory permitData2 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer2Address, address(cUSDToken), keccak256("cusd"), cUSDAmount, 0, 0, block.timestamp + 1 hours); + keepWhatsRaised.pledgeWithoutAReward(keccak256("cusd"), users.backer2Address, address(cUSDToken), cUSDAmount, 0, permitData2); vm.stopPrank(); // Approve withdrawal @@ -1691,21 +1758,24 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te // USDC pledge vm.startPrank(users.backer1Address); - usdcToken.approve(address(keepWhatsRaised), usdcAmount); - keepWhatsRaised.pledgeWithoutAReward(keccak256("usdc"), users.backer1Address, address(usdcToken), usdcAmount, 0); + usdcToken.approve(CANONICAL_PERMIT2_ADDRESS, usdcAmount); + PermitData memory permitData1 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(usdcToken), keccak256("usdc"), usdcAmount, 0, 0, block.timestamp + 1 hours); + keepWhatsRaised.pledgeWithoutAReward(keccak256("usdc"), users.backer1Address, address(usdcToken), usdcAmount, 0, permitData1); vm.stopPrank(); // USDT pledge vm.startPrank(users.backer2Address); - usdtToken.approve(address(keepWhatsRaised), usdtAmount); - keepWhatsRaised.pledgeWithoutAReward(keccak256("usdt"), users.backer2Address, address(usdtToken), usdtAmount, 0); + usdtToken.approve(CANONICAL_PERMIT2_ADDRESS, usdtAmount); + PermitData memory permitData2 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer2Address, address(usdtToken), keccak256("usdt"), usdtAmount, 0, 0, block.timestamp + 1 hours); + keepWhatsRaised.pledgeWithoutAReward(keccak256("usdt"), users.backer2Address, address(usdtToken), usdtAmount, 0, permitData2); vm.stopPrank(); // cUSD pledge vm.startPrank(users.backer1Address); - cUSDToken.approve(address(keepWhatsRaised), PLEDGE_AMOUNT); + cUSDToken.approve(CANONICAL_PERMIT2_ADDRESS, PLEDGE_AMOUNT); + PermitData memory permitData3 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(cUSDToken), keccak256("cusd"), PLEDGE_AMOUNT, 0, 1, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - keccak256("cusd"), users.backer1Address, address(cUSDToken), PLEDGE_AMOUNT, 0 + keccak256("cusd"), users.backer1Address, address(cUSDToken), PLEDGE_AMOUNT, 0, permitData3 ); vm.stopPrank(); @@ -1760,9 +1830,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - usdcToken.approve(address(keepWhatsRaised), usdcAmount); + usdcToken.approve(CANONICAL_PERMIT2_ADDRESS, usdcAmount); + PermitData memory permitData1 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(usdcToken), keccak256("usdc_pledge"), usdcAmount, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - keccak256("usdc_pledge"), users.backer1Address, address(usdcToken), usdcAmount, 0 + keccak256("usdc_pledge"), users.backer1Address, address(usdcToken), usdcAmount, 0, permitData1 ); uint256 usdcTokenId = 1; // First pledge vm.stopPrank(); @@ -1771,9 +1842,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te setPaymentGatewayFee(users.platform2AdminAddress, address(keepWhatsRaised), keccak256("cusd_pledge"), 0); vm.startPrank(users.backer2Address); - cUSDToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT); + cUSDToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT); + PermitData memory permitData2 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer2Address, address(cUSDToken), keccak256("cusd_pledge"), TEST_PLEDGE_AMOUNT, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - keccak256("cusd_pledge"), users.backer2Address, address(cUSDToken), TEST_PLEDGE_AMOUNT, 0 + keccak256("cusd_pledge"), users.backer2Address, address(cUSDToken), TEST_PLEDGE_AMOUNT, 0, permitData2 ); uint256 cUSDTokenId = 2; // Second pledge vm.stopPrank(); @@ -1814,9 +1886,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te vm.warp(LAUNCH_TIME); vm.startPrank(users.backer1Address); - usdcToken.approve(address(keepWhatsRaised), usdcPledge + tipAmountUSDC); + usdcToken.approve(CANONICAL_PERMIT2_ADDRESS, usdcPledge + tipAmountUSDC); + PermitData memory permitData1 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(usdcToken), keccak256("usdc"), usdcPledge, tipAmountUSDC, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - keccak256("usdc"), users.backer1Address, address(usdcToken), usdcPledge, tipAmountUSDC + keccak256("usdc"), users.backer1Address, address(usdcToken), usdcPledge, tipAmountUSDC, permitData1 ); vm.stopPrank(); @@ -1824,9 +1897,10 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te setPaymentGatewayFee(users.platform2AdminAddress, address(keepWhatsRaised), keccak256("cusd"), 0); vm.startPrank(users.backer2Address); - cUSDToken.approve(address(keepWhatsRaised), TEST_PLEDGE_AMOUNT + tipAmountCUSD); + cUSDToken.approve(CANONICAL_PERMIT2_ADDRESS, TEST_PLEDGE_AMOUNT + tipAmountCUSD); + PermitData memory permitData2 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer2Address, address(cUSDToken), keccak256("cusd"), TEST_PLEDGE_AMOUNT, tipAmountCUSD, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - keccak256("cusd"), users.backer2Address, address(cUSDToken), TEST_PLEDGE_AMOUNT, tipAmountCUSD + keccak256("cusd"), users.backer2Address, address(cUSDToken), TEST_PLEDGE_AMOUNT, tipAmountCUSD, permitData2 ); vm.stopPrank(); @@ -1868,8 +1942,9 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te // USDC pledge vm.startPrank(users.backer1Address); - usdcToken.approve(address(keepWhatsRaised), usdcAmount); - keepWhatsRaised.pledgeWithoutAReward(keccak256("p1"), users.backer1Address, address(usdcToken), usdcAmount, 0); + usdcToken.approve(CANONICAL_PERMIT2_ADDRESS, usdcAmount); + PermitData memory permitData1 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(usdcToken), keccak256("p1"), usdcAmount, 0, 0, block.timestamp + 1 hours); + keepWhatsRaised.pledgeWithoutAReward(keccak256("p1"), users.backer1Address, address(usdcToken), usdcAmount, 0, permitData1); vm.stopPrank(); uint256 raisedAfterUSDC = keepWhatsRaised.getRaisedAmount(); @@ -1877,8 +1952,9 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te // USDT pledge vm.startPrank(users.backer2Address); - usdtToken.approve(address(keepWhatsRaised), usdtAmount); - keepWhatsRaised.pledgeWithoutAReward(keccak256("p2"), users.backer2Address, address(usdtToken), usdtAmount, 0); + usdtToken.approve(CANONICAL_PERMIT2_ADDRESS, usdtAmount); + PermitData memory permitData2 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer2Address, address(usdtToken), keccak256("p2"), usdtAmount, 0, 0, block.timestamp + 1 hours); + keepWhatsRaised.pledgeWithoutAReward(keccak256("p2"), users.backer2Address, address(usdtToken), usdtAmount, 0, permitData2); vm.stopPrank(); uint256 raisedAfterUSDT = keepWhatsRaised.getRaisedAmount(); @@ -1886,8 +1962,9 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te // cUSD pledge vm.startPrank(users.backer1Address); - cUSDToken.approve(address(keepWhatsRaised), cUSDAmount); - keepWhatsRaised.pledgeWithoutAReward(keccak256("p3"), users.backer1Address, address(cUSDToken), cUSDAmount, 0); + cUSDToken.approve(CANONICAL_PERMIT2_ADDRESS, cUSDAmount); + PermitData memory permitData3 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(cUSDToken), keccak256("p3"), cUSDAmount, 0, 1, block.timestamp + 1 hours); + keepWhatsRaised.pledgeWithoutAReward(keccak256("p3"), users.backer1Address, address(cUSDToken), cUSDAmount, 0, permitData3); vm.stopPrank(); uint256 finalRaised = keepWhatsRaised.getRaisedAmount(); @@ -1913,17 +1990,19 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te // USDT pledge vm.startPrank(users.backer1Address); - usdtToken.approve(address(keepWhatsRaised), usdtAmount); + usdtToken.approve(CANONICAL_PERMIT2_ADDRESS, usdtAmount); + PermitData memory permitData1 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer1Address, address(usdtToken), keccak256("usdt_pledge"), usdtAmount, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - keccak256("usdt_pledge"), users.backer1Address, address(usdtToken), usdtAmount, 0 + keccak256("usdt_pledge"), users.backer1Address, address(usdtToken), usdtAmount, 0, permitData1 ); vm.stopPrank(); // USDC pledge vm.startPrank(users.backer2Address); - usdcToken.approve(address(keepWhatsRaised), usdcAmount); + usdcToken.approve(CANONICAL_PERMIT2_ADDRESS, usdcAmount); + PermitData memory permitData2 = _buildSignedKeepWhatsRaisedNoRewardPermitData(users.backer2Address, address(usdcToken), keccak256("usdc_pledge"), usdcAmount, 0, 0, block.timestamp + 1 hours); keepWhatsRaised.pledgeWithoutAReward( - keccak256("usdc_pledge"), users.backer2Address, address(usdcToken), usdcAmount, 0 + keccak256("usdc_pledge"), users.backer2Address, address(usdcToken), usdcAmount, 0, permitData2 ); vm.stopPrank(); diff --git a/test/foundry/unit/PaymentTreasury.t.sol b/test/foundry/unit/PaymentTreasury.t.sol index 218da9a..90ac986 100644 --- a/test/foundry/unit/PaymentTreasury.t.sol +++ b/test/foundry/unit/PaymentTreasury.t.sol @@ -7,6 +7,8 @@ import {PaymentTreasury} from "src/treasuries/PaymentTreasury.sol"; import {BasePaymentTreasury} from "src/utils/BasePaymentTreasury.sol"; import {CampaignInfo} from "src/CampaignInfo.sol"; import {TestToken} from "../../mocks/TestToken.sol"; +import {PermitData} from "src/interfaces/IPermit2.sol"; +import {MockPermit2} from "../../mocks/MockPermit2.sol"; contract PaymentTreasury_UnitTest is Test, PaymentTreasury_Integration_Shared_Test { // Helper function to create payment tokens array with same token for all payments @@ -335,6 +337,32 @@ contract PaymentTreasury_UnitTest is Test, PaymentTreasury_Integration_Shared_Te assertEq(testToken.balanceOf(treasuryAddress), amount); } + function testProcessCryptoPaymentRevertWhenSignedItemIdIsTampered() public { + uint256 amount = 1500e18; + deal(address(testToken), users.backer1Address, amount); + + vm.prank(users.backer1Address); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, amount); + + ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, address(testToken), PAYMENT_ID_1, ITEM_ID_1, amount, emptyLineItems, 77, block.timestamp + 1 hours + ); + + vm.expectRevert(MockPermit2.InvalidSigner.selector); + vm.prank(users.platform1AdminAddress); + paymentTreasury.processCryptoPayment( + PAYMENT_ID_1, + ITEM_ID_2, + users.backer1Address, + address(testToken), + amount, + emptyLineItems, + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData + ); + } + function testProcessCryptoPaymentStoresExternalFees() public { uint256 amount = 1000e18; deal(address(testToken), users.backer1Address, amount); @@ -370,32 +398,38 @@ contract PaymentTreasury_UnitTest is Test, PaymentTreasury_Integration_Shared_Te } function testProcessCryptoPaymentRevertWhenZeroBuyerAddress() public { - vm.expectRevert(); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); - processCryptoPayment( - users.platform1AdminAddress, + PermitData memory permitData = PermitData({nonce: 0, deadline: block.timestamp + 1 hours, signature: new bytes(65)}); + + vm.expectRevert(BasePaymentTreasury.PaymentTreasuryZeroBuyerAddress.selector); + vm.prank(users.platform1AdminAddress); + paymentTreasury.processCryptoPayment( PAYMENT_ID_1, ITEM_ID_1, address(0), address(testToken), 1000e18, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); } function testProcessCryptoPaymentRevertWhenZeroAmount() public { - vm.expectRevert(); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); - processCryptoPayment( - users.platform1AdminAddress, + PermitData memory permitData = PermitData({nonce: 0, deadline: block.timestamp + 1 hours, signature: new bytes(65)}); + + vm.expectRevert(BasePaymentTreasury.PaymentTreasuryZeroAmount.selector); + vm.prank(users.platform1AdminAddress); + paymentTreasury.processCryptoPayment( PAYMENT_ID_1, ITEM_ID_1, users.backer1Address, address(testToken), 0, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); } @@ -404,7 +438,7 @@ contract PaymentTreasury_UnitTest is Test, PaymentTreasury_Integration_Shared_Te deal(address(testToken), users.backer1Address, amount * 2); vm.prank(users.backer1Address); - testToken.approve(treasuryAddress, amount * 2); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, amount * 2); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); processCryptoPayment( @@ -418,16 +452,23 @@ contract PaymentTreasury_UnitTest is Test, PaymentTreasury_Integration_Shared_Te new ICampaignPaymentTreasury.ExternalFees[](0) ); + // Build permit data with a unique nonce so Permit2 doesn't reject the nonce + // before reaching the "payment exists" check in the contract + PermitData memory permitData2 = _buildSignedCryptoPaymentPermitData( + users.backer1Address, address(testToken), PAYMENT_ID_1, ITEM_ID_1, amount, emptyLineItems, 1, block.timestamp + 1 hours + ); + vm.expectRevert(); - processCryptoPayment( - users.backer1Address, + vm.prank(users.backer1Address); + paymentTreasury.processCryptoPayment( PAYMENT_ID_1, ITEM_ID_1, users.backer1Address, address(testToken), amount, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData2 ); } @@ -467,8 +508,18 @@ contract PaymentTreasury_UnitTest is Test, PaymentTreasury_Integration_Shared_Te deal(address(testToken), users.backer1Address, totalAmount); vm.prank(users.backer1Address); - testToken.approve(treasuryAddress, totalAmount); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, totalAmount); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + PAYMENT_ID_1, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + lineItems, + 0, + block.timestamp + 1 hours + ); vm.prank(users.backer1Address); paymentTreasury.processCryptoPayment( PAYMENT_ID_1, @@ -477,7 +528,8 @@ contract PaymentTreasury_UnitTest is Test, PaymentTreasury_Integration_Shared_Te address(testToken), PAYMENT_AMOUNT_1, lineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); uint256 claimableAt = CampaignInfo(campaignAddress).getDeadline() + claimDelay; diff --git a/test/foundry/unit/TimeConstrainedPaymentTreasury.t.sol b/test/foundry/unit/TimeConstrainedPaymentTreasury.t.sol index 845d244..44fc876 100644 --- a/test/foundry/unit/TimeConstrainedPaymentTreasury.t.sol +++ b/test/foundry/unit/TimeConstrainedPaymentTreasury.t.sol @@ -7,6 +7,8 @@ import {TimeConstrainedPaymentTreasury} from "src/treasuries/TimeConstrainedPaym import {CampaignInfo} from "src/CampaignInfo.sol"; import {TestToken} from "../../mocks/TestToken.sol"; import {DataRegistryKeys} from "src/constants/DataRegistryKeys.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {PermitData} from "src/interfaces/IPermit2.sol"; contract TimeConstrainedPaymentTreasury_UnitTest is Test, @@ -219,12 +221,22 @@ contract TimeConstrainedPaymentTreasury_UnitTest is function testProcessCryptoPaymentWithinTimeRange() public { advanceToWithinRange(); - // Approve tokens for the treasury + // Approve MockPermit2 (at canonical address) for the token. vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); - vm.prank(users.platform1AdminAddress); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + PAYMENT_ID_1, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); + vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( PAYMENT_ID_1, ITEM_ID_1, @@ -232,7 +244,8 @@ contract TimeConstrainedPaymentTreasury_UnitTest is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Payment processed successfully @@ -242,9 +255,10 @@ contract TimeConstrainedPaymentTreasury_UnitTest is function testProcessCryptoPaymentRevertWhenBeforeLaunchTime() public { advanceToBeforeLaunch(); + ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory emptyPermit; vm.expectRevert(); vm.prank(users.platform1AdminAddress); - ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); timeConstrainedPaymentTreasury.processCryptoPayment( PAYMENT_ID_1, ITEM_ID_1, @@ -252,7 +266,8 @@ contract TimeConstrainedPaymentTreasury_UnitTest is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + emptyPermit ); } @@ -294,10 +309,20 @@ contract TimeConstrainedPaymentTreasury_UnitTest is // Use processCryptoPayment which creates and confirms payment in one step vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); - vm.prank(users.platform1AdminAddress); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + PAYMENT_ID_1, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); + vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( PAYMENT_ID_1, ITEM_ID_1, @@ -305,7 +330,8 @@ contract TimeConstrainedPaymentTreasury_UnitTest is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Payment created and confirmed successfully by processCryptoPayment @@ -325,10 +351,20 @@ contract TimeConstrainedPaymentTreasury_UnitTest is // Use processCryptoPayment for both payments which creates and confirms them vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); - vm.prank(users.platform1AdminAddress); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData1 = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + PAYMENT_ID_1, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); + vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( PAYMENT_ID_1, ITEM_ID_1, @@ -336,14 +372,25 @@ contract TimeConstrainedPaymentTreasury_UnitTest is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData1 ); vm.prank(users.backer2Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_2); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_2); - vm.prank(users.platform1AdminAddress); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems2 = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData2 = _buildSignedCryptoPaymentPermitData( + users.backer2Address, + address(testToken), + PAYMENT_ID_2, + ITEM_ID_2, + PAYMENT_AMOUNT_2, + emptyLineItems2, + 0, + block.timestamp + 1 hours + ); + vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( PAYMENT_ID_2, ITEM_ID_2, @@ -351,7 +398,8 @@ contract TimeConstrainedPaymentTreasury_UnitTest is address(testToken), PAYMENT_AMOUNT_2, emptyLineItems2, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData2 ); // Payments created and confirmed successfully by processCryptoPayment @@ -379,10 +427,20 @@ contract TimeConstrainedPaymentTreasury_UnitTest is // Use processCryptoPayment which creates and confirms payment in one step vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); - vm.prank(users.platform1AdminAddress); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + PAYMENT_ID_1, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); + vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( PAYMENT_ID_1, ITEM_ID_1, @@ -390,7 +448,8 @@ contract TimeConstrainedPaymentTreasury_UnitTest is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Advance to after launch to be able to claim refund @@ -422,10 +481,20 @@ contract TimeConstrainedPaymentTreasury_UnitTest is // Use processCryptoPayment which creates and confirms payment in one step vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); - vm.prank(users.platform1AdminAddress); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + PAYMENT_ID_1, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); + vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( PAYMENT_ID_1, ITEM_ID_1, @@ -433,7 +502,8 @@ contract TimeConstrainedPaymentTreasury_UnitTest is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Advance to after launch time @@ -460,10 +530,20 @@ contract TimeConstrainedPaymentTreasury_UnitTest is // Use processCryptoPayment which creates and confirms payment in one step vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); - vm.prank(users.platform1AdminAddress); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + PAYMENT_ID_1, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); + vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( PAYMENT_ID_1, ITEM_ID_1, @@ -471,7 +551,8 @@ contract TimeConstrainedPaymentTreasury_UnitTest is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Advance to after launch time @@ -612,10 +693,20 @@ contract TimeConstrainedPaymentTreasury_UnitTest is // Use processCryptoPayment which creates and confirms payment in one step vm.prank(users.backer1Address); - testToken.approve(address(timeConstrainedPaymentTreasury), PAYMENT_AMOUNT_1); + testToken.approve(CANONICAL_PERMIT2_ADDRESS, PAYMENT_AMOUNT_1); - vm.prank(users.platform1AdminAddress); ICampaignPaymentTreasury.LineItem[] memory emptyLineItems = new ICampaignPaymentTreasury.LineItem[](0); + PermitData memory permitData = _buildSignedCryptoPaymentPermitData( + users.backer1Address, + address(testToken), + PAYMENT_ID_1, + ITEM_ID_1, + PAYMENT_AMOUNT_1, + emptyLineItems, + 0, + block.timestamp + 1 hours + ); + vm.prank(users.platform1AdminAddress); timeConstrainedPaymentTreasury.processCryptoPayment( PAYMENT_ID_1, ITEM_ID_1, @@ -623,7 +714,8 @@ contract TimeConstrainedPaymentTreasury_UnitTest is address(testToken), PAYMENT_AMOUNT_1, emptyLineItems, - new ICampaignPaymentTreasury.ExternalFees[](0) + new ICampaignPaymentTreasury.ExternalFees[](0), + permitData ); // Advance to after launch time diff --git a/test/mocks/MockPermit2.sol b/test/mocks/MockPermit2.sol new file mode 100644 index 0000000..5e0e66c --- /dev/null +++ b/test/mocks/MockPermit2.sol @@ -0,0 +1,323 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.22; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import {ISignatureTransfer, IEIP712} from "../../src/interfaces/IPermit2.sol"; + +/** + * @title MockPermit2 + * @notice A solc 0.8.22-compatible re-implementation of Uniswap's Permit2 + * (SignatureTransfer only) for use in Foundry tests. + * @dev Faithfully reproduces the EIP-712 domain, struct hashing, nonce bitmap, + * signature verification, and token transfer logic of the canonical Permit2 + * so that tests exercise real cryptographic signing paths. + */ +contract MockPermit2 is ISignatureTransfer { + using SafeERC20 for IERC20; + + // ------------------------------------------------------------------------- + // EIP-712 domain + // ------------------------------------------------------------------------- + bytes32 private immutable _CACHED_DOMAIN_SEPARATOR; + uint256 private immutable _CACHED_CHAIN_ID; + + bytes32 private constant _HASHED_NAME = keccak256("Permit2"); + bytes32 private constant _TYPE_HASH = + keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); + + // ------------------------------------------------------------------------- + // PermitHash constants (mirrors permit2/src/libraries/PermitHash.sol) + // ------------------------------------------------------------------------- + bytes32 private constant _TOKEN_PERMISSIONS_TYPEHASH = + keccak256("TokenPermissions(address token,uint256 amount)"); + + bytes32 private constant _PERMIT_TRANSFER_FROM_TYPEHASH = keccak256( + "PermitTransferFrom(TokenPermissions permitted,address spender,uint256 nonce,uint256 deadline)TokenPermissions(address token,uint256 amount)" + ); + + bytes32 private constant _PERMIT_BATCH_TRANSFER_FROM_TYPEHASH = keccak256( + "PermitBatchTransferFrom(TokenPermissions[] permitted,address spender,uint256 nonce,uint256 deadline)TokenPermissions(address token,uint256 amount)" + ); + + string private constant _PERMIT_TRANSFER_FROM_WITNESS_TYPEHASH_STUB = + "PermitWitnessTransferFrom(TokenPermissions permitted,address spender,uint256 nonce,uint256 deadline,"; + + string private constant _PERMIT_BATCH_WITNESS_TRANSFER_FROM_TYPEHASH_STUB = + "PermitBatchWitnessTransferFrom(TokenPermissions[] permitted,address spender,uint256 nonce,uint256 deadline,"; + + // ------------------------------------------------------------------------- + // Errors (mirrors permit2/src/PermitErrors.sol & SignatureVerification.sol) + // ------------------------------------------------------------------------- + error SignatureExpired(uint256 signatureDeadline); + error InvalidNonce(); + error InvalidSignatureLength(); + error InvalidSignature(); + error InvalidSigner(); + error InvalidContractSignature(); + + // ------------------------------------------------------------------------- + // Nonce bitmap + // ------------------------------------------------------------------------- + /// @inheritdoc ISignatureTransfer + mapping(address => mapping(uint256 => uint256)) public nonceBitmap; + + // ------------------------------------------------------------------------- + // Constructor + // ------------------------------------------------------------------------- + constructor() { + _CACHED_CHAIN_ID = block.chainid; + _CACHED_DOMAIN_SEPARATOR = _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME); + } + + // ------------------------------------------------------------------------- + // IEIP712 + // ------------------------------------------------------------------------- + function DOMAIN_SEPARATOR() public view override returns (bytes32) { + return block.chainid == _CACHED_CHAIN_ID + ? _CACHED_DOMAIN_SEPARATOR + : _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME); + } + + // ------------------------------------------------------------------------- + // ISignatureTransfer — single-token functions + // ------------------------------------------------------------------------- + /// @inheritdoc ISignatureTransfer + function permitTransferFrom( + PermitTransferFrom memory permit, + SignatureTransferDetails calldata transferDetails, + address owner, + bytes calldata signature + ) external { + _permitTransferFrom(permit, transferDetails, owner, _hash(permit), signature); + } + + /// @inheritdoc ISignatureTransfer + function permitWitnessTransferFrom( + PermitTransferFrom memory permit, + SignatureTransferDetails calldata transferDetails, + address owner, + bytes32 witness, + string calldata witnessTypeString, + bytes calldata signature + ) external { + _permitTransferFrom( + permit, transferDetails, owner, _hashWithWitness(permit, witness, witnessTypeString), signature + ); + } + + // ------------------------------------------------------------------------- + // ISignatureTransfer — batch functions + // ------------------------------------------------------------------------- + /// @inheritdoc ISignatureTransfer + function permitTransferFrom( + PermitBatchTransferFrom memory permit, + SignatureTransferDetails[] calldata transferDetails, + address owner, + bytes calldata signature + ) external { + _permitBatchTransferFrom(permit, transferDetails, owner, _hash(permit), signature); + } + + /// @inheritdoc ISignatureTransfer + function permitWitnessTransferFrom( + PermitBatchTransferFrom memory permit, + SignatureTransferDetails[] calldata transferDetails, + address owner, + bytes32 witness, + string calldata witnessTypeString, + bytes calldata signature + ) external { + _permitBatchTransferFrom( + permit, transferDetails, owner, _hashWithWitness(permit, witness, witnessTypeString), signature + ); + } + + /// @inheritdoc ISignatureTransfer + function invalidateUnorderedNonces(uint256 wordPos, uint256 mask) external { + nonceBitmap[msg.sender][wordPos] |= mask; + emit UnorderedNonceInvalidation(msg.sender, wordPos, mask); + } + + // ========================================================================= + // Internal helpers + // ========================================================================= + + // ---- single-token transfer core ---- + function _permitTransferFrom( + PermitTransferFrom memory permit, + SignatureTransferDetails calldata transferDetails, + address owner, + bytes32 dataHash, + bytes calldata signature + ) private { + uint256 requestedAmount = transferDetails.requestedAmount; + + if (block.timestamp > permit.deadline) revert SignatureExpired(permit.deadline); + if (requestedAmount > permit.permitted.amount) revert InvalidAmount(permit.permitted.amount); + + _useUnorderedNonce(owner, permit.nonce); + _verify(signature, _hashTypedData(dataHash), owner); + + IERC20(permit.permitted.token).safeTransferFrom(owner, transferDetails.to, requestedAmount); + } + + // ---- batch-token transfer core ---- + function _permitBatchTransferFrom( + PermitBatchTransferFrom memory permit, + SignatureTransferDetails[] calldata transferDetails, + address owner, + bytes32 dataHash, + bytes calldata signature + ) private { + uint256 numPermitted = permit.permitted.length; + + if (block.timestamp > permit.deadline) revert SignatureExpired(permit.deadline); + if (numPermitted != transferDetails.length) revert LengthMismatch(); + + _useUnorderedNonce(owner, permit.nonce); + _verify(signature, _hashTypedData(dataHash), owner); + + unchecked { + for (uint256 i = 0; i < numPermitted; ++i) { + TokenPermissions memory permitted = permit.permitted[i]; + uint256 requestedAmount = transferDetails[i].requestedAmount; + + if (requestedAmount > permitted.amount) revert InvalidAmount(permitted.amount); + + if (requestedAmount != 0) { + IERC20(permitted.token).safeTransferFrom(owner, transferDetails[i].to, requestedAmount); + } + } + } + } + + // ---- EIP-712 ---- + function _buildDomainSeparator(bytes32 typeHash, bytes32 nameHash) private view returns (bytes32) { + return keccak256(abi.encode(typeHash, nameHash, block.chainid, address(this))); + } + + function _hashTypedData(bytes32 dataHash) private view returns (bytes32) { + return keccak256(abi.encodePacked("\x19\x01", DOMAIN_SEPARATOR(), dataHash)); + } + + // ---- struct hashing (mirrors PermitHash library) ---- + function _hashTokenPermissions(TokenPermissions memory permitted) private pure returns (bytes32) { + return keccak256(abi.encode(_TOKEN_PERMISSIONS_TYPEHASH, permitted)); + } + + function _hash(PermitTransferFrom memory permit) private view returns (bytes32) { + bytes32 tokenPermissionsHash = _hashTokenPermissions(permit.permitted); + return keccak256( + abi.encode(_PERMIT_TRANSFER_FROM_TYPEHASH, tokenPermissionsHash, msg.sender, permit.nonce, permit.deadline) + ); + } + + function _hash(PermitBatchTransferFrom memory permit) private view returns (bytes32) { + uint256 numPermitted = permit.permitted.length; + bytes32[] memory tokenPermissionHashes = new bytes32[](numPermitted); + + for (uint256 i = 0; i < numPermitted; ++i) { + tokenPermissionHashes[i] = _hashTokenPermissions(permit.permitted[i]); + } + + return keccak256( + abi.encode( + _PERMIT_BATCH_TRANSFER_FROM_TYPEHASH, + keccak256(abi.encodePacked(tokenPermissionHashes)), + msg.sender, + permit.nonce, + permit.deadline + ) + ); + } + + function _hashWithWitness( + PermitTransferFrom memory permit, + bytes32 witness, + string calldata witnessTypeString + ) private view returns (bytes32) { + bytes32 typeHash = + keccak256(abi.encodePacked(_PERMIT_TRANSFER_FROM_WITNESS_TYPEHASH_STUB, witnessTypeString)); + bytes32 tokenPermissionsHash = _hashTokenPermissions(permit.permitted); + return keccak256( + abi.encode(typeHash, tokenPermissionsHash, msg.sender, permit.nonce, permit.deadline, witness) + ); + } + + function _hashWithWitness( + PermitBatchTransferFrom memory permit, + bytes32 witness, + string calldata witnessTypeString + ) private view returns (bytes32) { + bytes32 typeHash = + keccak256(abi.encodePacked(_PERMIT_BATCH_WITNESS_TRANSFER_FROM_TYPEHASH_STUB, witnessTypeString)); + + uint256 numPermitted = permit.permitted.length; + bytes32[] memory tokenPermissionHashes = new bytes32[](numPermitted); + + for (uint256 i = 0; i < numPermitted; ++i) { + tokenPermissionHashes[i] = _hashTokenPermissions(permit.permitted[i]); + } + + return keccak256( + abi.encode( + typeHash, + keccak256(abi.encodePacked(tokenPermissionHashes)), + msg.sender, + permit.nonce, + permit.deadline, + witness + ) + ); + } + + // ---- nonce management ---- + function _useUnorderedNonce(address from, uint256 nonce) private { + (uint256 wordPos, uint256 bitPos) = _bitmapPositions(nonce); + uint256 bit = 1 << bitPos; + uint256 flipped = nonceBitmap[from][wordPos] ^= bit; + + if (flipped & bit == 0) revert InvalidNonce(); + } + + function _bitmapPositions(uint256 nonce) private pure returns (uint256 wordPos, uint256 bitPos) { + wordPos = uint248(nonce >> 8); + bitPos = uint8(nonce); + } + + // ---- signature verification (mirrors SignatureVerification library) ---- + bytes32 private constant _UPPER_BIT_MASK = + 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; + + function _verify(bytes calldata signature, bytes32 hash, address claimedSigner) private view { + bytes32 r; + bytes32 s; + uint8 v; + + if (claimedSigner.code.length == 0) { + if (signature.length == 65) { + (r, s) = abi.decode(signature, (bytes32, bytes32)); + v = uint8(signature[64]); + } else if (signature.length == 64) { + // EIP-2098 + bytes32 vs; + (r, vs) = abi.decode(signature, (bytes32, bytes32)); + s = vs & _UPPER_BIT_MASK; + v = uint8(uint256(vs >> 255)) + 27; + } else { + revert InvalidSignatureLength(); + } + address signer = ecrecover(hash, v, r, s); + if (signer == address(0)) revert InvalidSignature(); + if (signer != claimedSigner) revert InvalidSigner(); + } else { + (bool success, bytes memory result) = claimedSigner.staticcall( + abi.encodeWithSignature("isValidSignature(bytes32,bytes)", hash, signature) + ); + if (!success || result.length < 32 || abi.decode(result, (bytes4)) != bytes4(0x1626ba7e)) { + revert InvalidContractSignature(); + } + } + } +} From 8c894c943718c5e153357a3e8e1b8ada94513065 Mon Sep 17 00:00:00 2001 From: Adnan Date: Tue, 31 Mar 2026 16:21:21 +0600 Subject: [PATCH 57/61] Replace string errors with error code enums to reduce bytecode size (#77) * Replace string errors with error code enums to reduce bytecode size * update TreasuryErrors natspec * Update error codes --- src/errors/TreasuryErrors.sol | 44 +++++++++++++++++++ src/treasuries/AllOrNothing.sol | 29 ++++++------ src/treasuries/KeepWhatsRaised.sol | 43 +++++++++--------- src/utils/BasePaymentTreasury.sol | 43 +++++++++--------- .../KeepWhatsRaisedFunction.t.sol | 3 +- test/foundry/unit/KeepWhatsRaised.t.sol | 23 +++++----- 6 files changed, 117 insertions(+), 68 deletions(-) create mode 100644 src/errors/TreasuryErrors.sol diff --git a/src/errors/TreasuryErrors.sol b/src/errors/TreasuryErrors.sol new file mode 100644 index 0000000..9df2800 --- /dev/null +++ b/src/errors/TreasuryErrors.sol @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.22; + +/** + * @title TreasuryErrors + * @notice Shared error-code enums for all treasury contracts + */ +library TreasuryErrors { + /// @notice Codes for `InvalidInput` errors (input-validation failures). + enum InvalidInput { + INVALID_LINE_ITEM, + LINE_ITEM_TYPE_NOT_FOUND, + EMPTY_SIGNATURE, + INVALID_BUYER, + INVALID_BACKER, + CONFIRM_BATCH_LENGTH_MISMATCH, + ZERO_REFUND_ADDRESS, + ZERO_CLAIMABLE_AMOUNT, + REWARD_NOT_FOUND, + REWARD_LENGTH_MISMATCH, + INVALID_PLEDGE_INPUT, + ZERO_REWARD_NAME, + FEE_LENGTH_MISMATCH, + INVALID_DEADLINE, + ZERO_GOAL_AMOUNT, + INVALID_REWARD_INPUT, + ZERO_TOKEN_SOURCE, + ZERO_AMOUNT, + INSUFFICIENT_RECEIVED + } + + /// @notice Codes for `NotClaimable` errors (refund / claim-check failures). + enum NotClaimable { + ZERO_REFUND_AMOUNT, + INSUFFICIENT_LIQUIDITY, + ZERO_REFUND_ADDRESS, + NOT_NFT_PAYMENT, + INSUFFICIENT_GOAL_LIQUIDITY, + INSUFFICIENT_NON_GOAL_LIQUIDITY, + INSUFFICIENT_CONTRACT_BALANCE, + CAMPAIGN_SUCCESSFUL, + INVALID_REFUND_PERIOD + } +} diff --git a/src/treasuries/AllOrNothing.sol b/src/treasuries/AllOrNothing.sol index 26a8233..b6d0371 100644 --- a/src/treasuries/AllOrNothing.sol +++ b/src/treasuries/AllOrNothing.sol @@ -10,6 +10,7 @@ import {ICampaignInfo} from "../interfaces/ICampaignInfo.sol"; import {BaseTreasury} from "../utils/BaseTreasury.sol"; import {IReward} from "../interfaces/IReward.sol"; import {IPermit2, ISignatureTransfer, PermitData} from "../interfaces/IPermit2.sol"; +import {TreasuryErrors} from "../errors/TreasuryErrors.sol"; /** * @title AllOrNothing @@ -95,9 +96,9 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { /** * @dev Emitted when an invalid input is detected. - * @param reason A string code describing the specific validation failure (e.g., "REWARD_NOT_FOUND", "LENGTH_MISMATCH"). + * @param code Error code defined in {TreasuryErrors.InvalidInput}. */ - error AllOrNothingInvalidInput(string reason); + error AllOrNothingInvalidInput(TreasuryErrors.InvalidInput code); /// @dev Reverts when reward name is zero bytes. error AllOrNothingZeroRewardName(); @@ -140,9 +141,9 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { /** * @dev Emitted when claiming an unclaimable refund. * @param tokenId The ID of the token representing the pledge. - * @param reason A string code describing why the refund is not claimable (e.g., "CAMPAIGN_SUCCESSFUL", "ZERO_AMOUNT"). + * @param code Error code defined in {TreasuryErrors.NotClaimable}. */ - error AllOrNothingNotClaimable(uint256 tokenId, string reason); + error AllOrNothingNotClaimable(uint256 tokenId, TreasuryErrors.NotClaimable code); /** * @dev Constructor for the AllOrNothing contract. @@ -160,7 +161,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { */ function getReward(bytes32 rewardName) external view returns (Reward memory reward) { if (s_reward[rewardName].rewardValue == 0) { - revert AllOrNothingInvalidInput("REWARD_NOT_FOUND"); + revert AllOrNothingInvalidInput(TreasuryErrors.InvalidInput.REWARD_NOT_FOUND); } return s_reward[rewardName]; } @@ -237,7 +238,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { whenNotCancelled { if (rewardNames.length != rewards.length) { - revert AllOrNothingInvalidInput("REWARD_LENGTH_MISMATCH"); + revert AllOrNothingInvalidInput(TreasuryErrors.InvalidInput.REWARD_LENGTH_MISMATCH); } for (uint256 i = 0; i < rewardNames.length; i++) { @@ -276,7 +277,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { whenNotCancelled { if (s_reward[rewardName].rewardValue == 0) { - revert AllOrNothingInvalidInput("REWARD_NOT_FOUND"); + revert AllOrNothingInvalidInput(TreasuryErrors.InvalidInput.REWARD_NOT_FOUND); } delete s_reward[rewardName]; s_rewardCounter.decrement(); @@ -313,16 +314,16 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { Reward storage tempReward = s_reward[reward[0]]; if (backer == address(0)) revert AllOrNothingZeroBacker(); if (rewardLen > s_rewardCounter.current()) revert AllOrNothingRewardSelectionLengthMismatch(); - if (reward[0] == ZERO_BYTES) revert AllOrNothingInvalidInput("INVALID_PLEDGE_INPUT"); + if (reward[0] == ZERO_BYTES) revert AllOrNothingInvalidInput(TreasuryErrors.InvalidInput.INVALID_PLEDGE_INPUT); if (!tempReward.isRewardTier) revert AllOrNothingFirstRewardNotTier(); uint256 pledgeAmount = tempReward.rewardValue; for (uint256 i = 1; i < rewardLen; i++) { if (reward[i] == ZERO_BYTES) { - revert AllOrNothingInvalidInput("ZERO_REWARD_NAME"); + revert AllOrNothingInvalidInput(TreasuryErrors.InvalidInput.ZERO_REWARD_NAME); } tempReward = s_reward[reward[i]]; if (tempReward.rewardValue == 0 || !tempReward.canBeAddOn) { - revert AllOrNothingInvalidInput("REWARD_NOT_FOUND"); + revert AllOrNothingInvalidInput(TreasuryErrors.InvalidInput.REWARD_NOT_FOUND); } pledgeAmount += tempReward.rewardValue; } @@ -368,7 +369,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { whenNotPaused { if (block.timestamp >= INFO.getDeadline() && _checkSuccessCondition()) { - revert AllOrNothingNotClaimable(tokenId, "CAMPAIGN_SUCCESSFUL"); + revert AllOrNothingNotClaimable(tokenId, TreasuryErrors.NotClaimable.CAMPAIGN_SUCCESSFUL); } // Get NFT owner before burning @@ -379,7 +380,7 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { address pledgeToken = s_tokenIdToPledgeToken[tokenId]; if (amountToRefund == 0) { - revert AllOrNothingNotClaimable(tokenId, "ZERO_AMOUNT"); + revert AllOrNothingNotClaimable(tokenId, TreasuryErrors.NotClaimable.ZERO_REFUND_AMOUNT); } s_tokenToTotalCollectedAmount[tokenId] = 0; @@ -449,10 +450,10 @@ contract AllOrNothing is IReward, BaseTreasury, TimestampChecker { revert AllOrNothingTokenNotAccepted(pledgeToken); } if (backer == address(this)) { - revert AllOrNothingInvalidInput("INVALID_BACKER"); + revert AllOrNothingInvalidInput(TreasuryErrors.InvalidInput.INVALID_BACKER); } if (permitData.signature.length == 0) { - revert AllOrNothingInvalidInput("EMPTY_SIGNATURE"); + revert AllOrNothingInvalidInput(TreasuryErrors.InvalidInput.EMPTY_SIGNATURE); } uint256 pledgeAmountInTokenDecimals; diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index f73618d..acc5ea5 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -12,6 +12,7 @@ import {ICampaignInfo} from "../interfaces/ICampaignInfo.sol"; import {IReward} from "../interfaces/IReward.sol"; import {ICampaignData} from "../interfaces/ICampaignData.sol"; import {IPermit2, ISignatureTransfer, PermitData} from "../interfaces/IPermit2.sol"; +import {TreasuryErrors} from "../errors/TreasuryErrors.sol"; /** * @title KeepWhatsRaised @@ -223,9 +224,9 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa /** * @dev Emitted when an invalid input is detected. - * @param reason A string code describing the specific validation failure (e.g., "REWARD_NOT_FOUND", "INVALID_TIMING"). + * @param code Error code defined in {TreasuryErrors.InvalidInput}. */ - error KeepWhatsRaisedInvalidInput(string reason); + error KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput code); /// @dev Emitted when fee keys are not unique (duplicate or overlap between flat and percentage keys). error KeepWhatsRaisedDuplicateFeeKey(); @@ -315,9 +316,9 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa /** * @dev Emitted when a token or pledge is not eligible for claiming (e.g., claim period not reached or not valid). * @param tokenId The ID of the token that was attempted to be claimed. - * @param reason A string code describing why the claim failed (e.g., "INVALID_REFUND_PERIOD", "ZERO_AMOUNT", "INSUFFICIENT_LIQUIDITY"). + * @param code Error code defined in {TreasuryErrors.NotClaimable}. */ - error KeepWhatsRaisedNotClaimable(uint256 tokenId, string reason); + error KeepWhatsRaisedNotClaimable(uint256 tokenId, TreasuryErrors.NotClaimable code); /** * @dev Emitted when an admin attempts to claim funds that are not yet claimable according to the rules. @@ -408,7 +409,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa */ function getReward(bytes32 rewardName) external view returns (Reward memory reward) { if (s_reward[rewardName].rewardValue == 0) { - revert KeepWhatsRaisedInvalidInput("REWARD_NOT_FOUND"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.REWARD_NOT_FOUND); } return s_reward[rewardName]; } @@ -603,7 +604,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa revert KeepWhatsRaisedAlreadyConfigured(); } if (feeKeys.grossPercentageFeeKeys.length != feeValues.grossPercentageFeeValues.length) { - revert KeepWhatsRaisedInvalidInput("FEE_LENGTH_MISMATCH"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.FEE_LENGTH_MISMATCH); } if (config.withdrawalDelay < config.refundDelay) { revert KeepWhatsRaisedWithdrawalBeforeRefundEnd(config.withdrawalDelay, config.refundDelay); @@ -667,7 +668,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenNotCancelled { if (deadline <= getLaunchTime() || deadline <= block.timestamp) { - revert KeepWhatsRaisedInvalidInput("INVALID_DEADLINE"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.INVALID_DEADLINE); } s_campaignData.deadline = deadline; @@ -690,7 +691,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenNotCancelled { if (goalAmount == 0) { - revert KeepWhatsRaisedInvalidInput("ZERO_GOAL_AMOUNT"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.ZERO_GOAL_AMOUNT); } s_campaignData.goalAmount = goalAmount; emit KeepWhatsRaisedGoalAmountUpdated(goalAmount); @@ -714,7 +715,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenNotCancelled { if (rewardNames.length != rewards.length) { - revert KeepWhatsRaisedInvalidInput("REWARD_LENGTH_MISMATCH"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.REWARD_LENGTH_MISMATCH); } for (uint256 i = 0; i < rewardNames.length; i++) { @@ -754,7 +755,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenNotCancelled { if (s_reward[rewardName].rewardValue == 0) { - revert KeepWhatsRaisedInvalidInput("REWARD_NOT_FOUND"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.REWARD_NOT_FOUND); } delete s_reward[rewardName]; s_rewardCounter.decrement(); @@ -831,7 +832,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenNotCancelled { if (permitData.signature.length == 0) { - revert KeepWhatsRaisedInvalidInput("EMPTY_SIGNATURE"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.EMPTY_SIGNATURE); } _pledgeForAReward(pledgeId, backer, pledgeToken, tip, reward, address(0), true, permitData); @@ -871,17 +872,17 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa Reward memory tempReward = s_reward[reward[0]]; if (backer == address(0)) revert KeepWhatsRaisedZeroBacker(); if (rewardLen > s_rewardCounter.current()) revert KeepWhatsRaisedRewardSelectionLengthMismatch(); - if (reward[0] == ZERO_BYTES) revert KeepWhatsRaisedInvalidInput("INVALID_REWARD_INPUT"); + if (reward[0] == ZERO_BYTES) revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.INVALID_REWARD_INPUT); if (!tempReward.isRewardTier) revert KeepWhatsRaisedFirstRewardNotTier(); uint256 pledgeAmount = tempReward.rewardValue; for (uint256 i = 1; i < rewardLen; i++) { if (reward[i] == ZERO_BYTES) { - revert KeepWhatsRaisedInvalidInput("ZERO_REWARD_NAME"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.ZERO_REWARD_NAME); } tempReward = s_reward[reward[i]]; if (tempReward.rewardValue == 0 || !tempReward.canBeAddOn) { - revert KeepWhatsRaisedInvalidInput("REWARD_NOT_FOUND"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.REWARD_NOT_FOUND); } pledgeAmount += tempReward.rewardValue; } @@ -927,7 +928,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa whenNotCancelled { if (permitData.signature.length == 0) { - revert KeepWhatsRaisedInvalidInput("EMPTY_SIGNATURE"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.EMPTY_SIGNATURE); } _pledgeWithoutAReward(pledgeId, backer, pledgeToken, pledgeAmount, tip, address(0), true, permitData); @@ -1081,7 +1082,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa } } else { if (amount == 0) { - revert KeepWhatsRaisedInvalidInput("ZERO_AMOUNT"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.ZERO_AMOUNT); } if (amount > available) { revert KeepWhatsRaisedInsufficientFundsForWithdrawalAndFee( @@ -1150,7 +1151,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa revert KeepWhatsRaisedFundAlreadyClaimed(); } if (!_checkRefundPeriodStatus(false)) { - revert KeepWhatsRaisedNotClaimable(tokenId, "INVALID_REFUND_PERIOD"); + revert KeepWhatsRaisedNotClaimable(tokenId, TreasuryErrors.NotClaimable.INVALID_REFUND_PERIOD); } // Get NFT owner before burning @@ -1321,13 +1322,13 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa revert KeepWhatsRaisedTokenNotAccepted(pledgeToken); } if (tokenSource == address(this) || backer == address(this)) { - revert KeepWhatsRaisedInvalidInput("INVALID_BACKER"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.INVALID_BACKER); } if (usePermit2 && permitData.signature.length == 0) { - revert KeepWhatsRaisedInvalidInput("EMPTY_SIGNATURE"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.EMPTY_SIGNATURE); } if (!usePermit2 && tokenSource == address(0)) { - revert KeepWhatsRaisedInvalidInput("ZERO_TOKEN_SOURCE"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.ZERO_TOKEN_SOURCE); } uint256 pledgeAmountInTokenDecimals; @@ -1381,7 +1382,7 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa IERC20(pledgeToken).safeTransferFrom(tokenSource, address(this), totalAmount); uint256 actualReceived = IERC20(pledgeToken).balanceOf(address(this)) - balanceBefore; if (actualReceived < tip) { - revert KeepWhatsRaisedInvalidInput("INSUFFICIENT_RECEIVED"); + revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.INSUFFICIENT_RECEIVED); } actualPledgeAmount = actualReceived - tip; } diff --git a/src/utils/BasePaymentTreasury.sol b/src/utils/BasePaymentTreasury.sol index a36b9f9..af71445 100644 --- a/src/utils/BasePaymentTreasury.sol +++ b/src/utils/BasePaymentTreasury.sol @@ -11,6 +11,7 @@ import {IPermit2, ISignatureTransfer, PermitData} from "../interfaces/IPermit2.s import {CampaignAccessChecker} from "./CampaignAccessChecker.sol"; import {PausableCancellable} from "./PausableCancellable.sol"; import {DataRegistryKeys} from "../constants/DataRegistryKeys.sol"; +import {TreasuryErrors} from "../errors/TreasuryErrors.sol"; /** * @title BasePaymentTreasury @@ -211,9 +212,9 @@ abstract contract BasePaymentTreasury is /** * @dev Reverts when one or more provided inputs to the payment treasury are invalid. - * @param reason A string code describing the specific validation failure. + * @param code Error code defined in {TreasuryErrors.InvalidInput}. */ - error PaymentTreasuryInvalidInput(string reason); + error PaymentTreasuryInvalidInput(TreasuryErrors.InvalidInput code); /// @dev Reverts when paymentId is zero. error PaymentTreasuryZeroPaymentId(); @@ -280,9 +281,9 @@ abstract contract BasePaymentTreasury is /** * @dev Emitted when claiming an unclaimable refund. * @param paymentId The unique identifier of the refundable payment. - * @param reason A string code describing why the refund is not claimable. + * @param code Error code defined in {TreasuryErrors.NotClaimable}. */ - error PaymentTreasuryPaymentNotClaimable(bytes32 paymentId, string reason); + error PaymentTreasuryPaymentNotClaimable(bytes32 paymentId, TreasuryErrors.NotClaimable code); /** * @dev Emitted when an attempt is made to withdraw funds from the treasury but the payment has already been withdrawn. @@ -613,7 +614,7 @@ abstract contract BasePaymentTreasury is // Validate line item if (item.typeId == ZERO_BYTES || item.amount == 0) { - revert PaymentTreasuryInvalidInput("INVALID_LINE_ITEM"); + revert PaymentTreasuryInvalidInput(TreasuryErrors.InvalidInput.INVALID_LINE_ITEM); } // Get line item type configuration (single call per item) @@ -627,7 +628,7 @@ abstract contract BasePaymentTreasury is ) = INFO.getLineItemType(PLATFORM_HASH, item.typeId); if (!exists) { - revert PaymentTreasuryInvalidInput("LINE_ITEM_TYPE_NOT_FOUND"); + revert PaymentTreasuryInvalidInput(TreasuryErrors.InvalidInput.LINE_ITEM_TYPE_NOT_FOUND); } // Store line item with configuration snapshot @@ -867,10 +868,10 @@ abstract contract BasePaymentTreasury is if (itemId == ZERO_BYTES) revert PaymentTreasuryZeroItemId(); if (paymentToken == address(0)) revert PaymentTreasuryZeroPaymentToken(); if (amount == 0) revert PaymentTreasuryZeroAmount(); - if (permitData.signature.length == 0) revert PaymentTreasuryInvalidInput("EMPTY_SIGNATURE"); + if (permitData.signature.length == 0) revert PaymentTreasuryInvalidInput(TreasuryErrors.InvalidInput.EMPTY_SIGNATURE); if (buyerAddress == address(this)) { - revert PaymentTreasuryInvalidInput("INVALID_BUYER"); + revert PaymentTreasuryInvalidInput(TreasuryErrors.InvalidInput.INVALID_BUYER); } if (lineItems.length > MAX_LINE_ITEMS || externalFees.length > MAX_EXTERNAL_FEES) { @@ -921,7 +922,7 @@ abstract contract BasePaymentTreasury is // Validate line item if (item.typeId == ZERO_BYTES || item.amount == 0) { - revert PaymentTreasuryInvalidInput("INVALID_LINE_ITEM"); + revert PaymentTreasuryInvalidInput(TreasuryErrors.InvalidInput.INVALID_LINE_ITEM); } // Get line item type configuration (single call per item) @@ -935,7 +936,7 @@ abstract contract BasePaymentTreasury is ) = INFO.getLineItemType(PLATFORM_HASH, item.typeId); if (!exists) { - revert PaymentTreasuryInvalidInput("LINE_ITEM_TYPE_NOT_FOUND"); + revert PaymentTreasuryInvalidInput(TreasuryErrors.InvalidInput.LINE_ITEM_TYPE_NOT_FOUND); } // Accumulate total amount @@ -1261,7 +1262,7 @@ abstract contract BasePaymentTreasury is { // Validate array lengths must match if (buyerAddresses.length != paymentIds.length) { - revert PaymentTreasuryInvalidInput("CONFIRM_BATCH_LENGTH_MISMATCH"); + revert PaymentTreasuryInvalidInput(TreasuryErrors.InvalidInput.CONFIRM_BATCH_LENGTH_MISMATCH); } if (paymentIds.length > MAX_BATCH_SIZE) { @@ -1326,7 +1327,7 @@ abstract contract BasePaymentTreasury is whenCampaignNotCancelled { if (refundAddress == address(0)) { - revert PaymentTreasuryInvalidInput("ZERO_REFUND_ADDRESS"); + revert PaymentTreasuryInvalidInput(TreasuryErrors.InvalidInput.ZERO_REFUND_ADDRESS); } bytes32 internalPaymentId = _getInternalPaymentIdForOffChain(paymentId); PaymentInfo memory payment = s_payment[internalPaymentId]; @@ -1342,14 +1343,14 @@ abstract contract BasePaymentTreasury is revert PaymentTreasuryPaymentNotConfirmed(paymentId); } if (amountToRefund == 0) { - revert PaymentTreasuryPaymentNotClaimable(paymentId, "ZERO_AMOUNT"); + revert PaymentTreasuryPaymentNotClaimable(paymentId, TreasuryErrors.NotClaimable.ZERO_REFUND_AMOUNT); } // This function is for non-NFT payments only if (tokenId != 0) { revert PaymentTreasuryCryptoPayment(paymentId); } if (availablePaymentAmount < amountToRefund) { - revert PaymentTreasuryPaymentNotClaimable(paymentId, "INSUFFICIENT_LIQUIDITY"); + revert PaymentTreasuryPaymentNotClaimable(paymentId, TreasuryErrors.NotClaimable.INSUFFICIENT_LIQUIDITY); } uint256 totalRefundAmount = _executeRefund( @@ -1378,14 +1379,14 @@ abstract contract BasePaymentTreasury is uint256 tokenId = s_paymentIdToNFTId[internalPaymentId]; if (buyerAddress == address(0)) { - revert PaymentTreasuryPaymentNotClaimable(paymentId, "ZERO_ADDRESS"); + revert PaymentTreasuryPaymentNotClaimable(paymentId, TreasuryErrors.NotClaimable.ZERO_REFUND_ADDRESS); } if (amountToRefund == 0) { - revert PaymentTreasuryPaymentNotClaimable(paymentId, "INSUFFICIENT_LIQUIDITY"); + revert PaymentTreasuryPaymentNotClaimable(paymentId, TreasuryErrors.NotClaimable.INSUFFICIENT_LIQUIDITY); } // NFT must exist for crypto payments if (tokenId == 0) { - revert PaymentTreasuryPaymentNotClaimable(paymentId, "NOT_NFT_PAYMENT"); + revert PaymentTreasuryPaymentNotClaimable(paymentId, TreasuryErrors.NotClaimable.NOT_NFT_PAYMENT); } // Get NFT owner before burning @@ -1468,7 +1469,7 @@ abstract contract BasePaymentTreasury is // For goal line items and base payment, check availableConfirmedPerToken if (availablePaymentAmount < (amountToRefund + totalGoalLineItemRefundAmount)) { - revert PaymentTreasuryPaymentNotClaimable(revertId, "INSUFFICIENT_GOAL_LIQUIDITY"); + revert PaymentTreasuryPaymentNotClaimable(revertId, TreasuryErrors.NotClaimable.INSUFFICIENT_GOAL_LIQUIDITY); } // For non-goal line items, check that we have enough claimable balance @@ -1476,14 +1477,14 @@ abstract contract BasePaymentTreasury is if (totalNonGoalLineItemRefundAmount > 0) { uint256 availableRefundable = s_nonGoalRefundableLineItemPerToken[paymentToken]; if (availableRefundable < totalNonGoalLineItemRefundAmount) { - revert PaymentTreasuryPaymentNotClaimable(revertId, "INSUFFICIENT_NON_GOAL_LIQUIDITY"); + revert PaymentTreasuryPaymentNotClaimable(revertId, TreasuryErrors.NotClaimable.INSUFFICIENT_NON_GOAL_LIQUIDITY); } } // Check that contract has enough actual balance to perform the transfer uint256 contractBalance = IERC20(paymentToken).balanceOf(address(this)); if (contractBalance < totalRefundAmount) { - revert PaymentTreasuryPaymentNotClaimable(revertId, "INSUFFICIENT_CONTRACT_BALANCE"); + revert PaymentTreasuryPaymentNotClaimable(revertId, TreasuryErrors.NotClaimable.INSUFFICIENT_CONTRACT_BALANCE); } // Update state: remove tracking for refundable line items using snapshots @@ -1581,7 +1582,7 @@ abstract contract BasePaymentTreasury is uint256 claimableAmount = s_nonGoalLineItemClaimablePerToken[token]; if (claimableAmount == 0) { - revert PaymentTreasuryInvalidInput("ZERO_CLAIMABLE_AMOUNT"); + revert PaymentTreasuryInvalidInput(TreasuryErrors.InvalidInput.ZERO_CLAIMABLE_AMOUNT); } s_nonGoalLineItemClaimablePerToken[token] = 0; diff --git a/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol b/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol index bf61976..aa02a3a 100644 --- a/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol +++ b/test/foundry/integration/KeepWhatsRaised/KeepWhatsRaisedFunction.t.sol @@ -11,6 +11,7 @@ import {IReward} from "src/interfaces/IReward.sol"; import {KeepWhatsRaised} from "src/treasuries/KeepWhatsRaised.sol"; import {CampaignInfo} from "src/CampaignInfo.sol"; import {PermitData} from "src/interfaces/IPermit2.sol"; +import {TreasuryErrors} from "src/errors/TreasuryErrors.sol"; contract KeepWhatsRaisedFunction_Integration_Shared_Test is KeepWhatsRaised_Integration_Shared_Test { function setUp() public virtual override { @@ -560,7 +561,7 @@ contract KeepWhatsRaisedFunction_Integration_Shared_Test is KeepWhatsRaised_Inte removeReward(users.creator1Address, address(keepWhatsRaised), REWARD_NAMES[1]); // Verify reward is removed - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "REWARD_NOT_FOUND")); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, TreasuryErrors.InvalidInput.REWARD_NOT_FOUND)); keepWhatsRaised.getReward(REWARD_NAMES[1]); } diff --git a/test/foundry/unit/KeepWhatsRaised.t.sol b/test/foundry/unit/KeepWhatsRaised.t.sol index 5c52834..b6145fc 100644 --- a/test/foundry/unit/KeepWhatsRaised.t.sol +++ b/test/foundry/unit/KeepWhatsRaised.t.sol @@ -14,6 +14,7 @@ import {IReward} from "src/interfaces/IReward.sol"; import {ICampaignData} from "src/interfaces/ICampaignData.sol"; import {TestToken} from "../../mocks/TestToken.sol"; import {MockPermit2} from "../../mocks/MockPermit2.sol"; +import {TreasuryErrors} from "src/errors/TreasuryErrors.sol"; contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Test { // Test constants @@ -173,7 +174,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te KeepWhatsRaised.FeeValues memory mismatchedValues = _createFeeValues(); mismatchedValues.grossPercentageFeeValues = new uint256[](1); // Wrong length - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "FEE_LENGTH_MISMATCH")); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, TreasuryErrors.InvalidInput.FEE_LENGTH_MISMATCH)); vm.prank(users.platform2AdminAddress); keepWhatsRaised.configureTreasury(CONFIG, CAMPAIGN_DATA, mismatchedKeys, mismatchedValues); } @@ -326,7 +327,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testUpdateDeadlineRevertWhenDeadlineBeforeLaunchTime() public { - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "INVALID_DEADLINE")); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, TreasuryErrors.InvalidInput.INVALID_DEADLINE)); vm.prank(users.platform2AdminAddress); keepWhatsRaised.updateDeadline(LAUNCH_TIME - 1); } @@ -334,7 +335,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te function testUpdateDeadlineRevertWhenDeadlineBeforeCurrentTime() public { vm.warp(LAUNCH_TIME + 5 days); - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "INVALID_DEADLINE")); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, TreasuryErrors.InvalidInput.INVALID_DEADLINE)); vm.prank(users.platform2AdminAddress); keepWhatsRaised.updateDeadline(LAUNCH_TIME + 4 days); } @@ -377,7 +378,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testUpdateGoalAmountRevertWhenZero() public { - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "ZERO_GOAL_AMOUNT")); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, TreasuryErrors.InvalidInput.ZERO_GOAL_AMOUNT)); vm.prank(users.platform2AdminAddress); keepWhatsRaised.updateGoalAmount(0); } @@ -405,7 +406,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te bytes32[] memory rewardNames = new bytes32[](2); Reward[] memory rewards = new Reward[](1); - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "REWARD_LENGTH_MISMATCH")); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, TreasuryErrors.InvalidInput.REWARD_LENGTH_MISMATCH)); vm.prank(users.creator1Address); keepWhatsRaised.addRewards(rewardNames, rewards); } @@ -443,12 +444,12 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te keepWhatsRaised.removeReward(TEST_REWARD_NAME); // Verify removal - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "REWARD_NOT_FOUND")); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, TreasuryErrors.InvalidInput.REWARD_NOT_FOUND)); keepWhatsRaised.getReward(TEST_REWARD_NAME); } function testRemoveRewardRevertWhenRewardDoesNotExist() public { - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "REWARD_NOT_FOUND")); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, TreasuryErrors.InvalidInput.REWARD_NOT_FOUND)); vm.prank(users.creator1Address); keepWhatsRaised.removeReward(TEST_REWARD_NAME); } @@ -563,7 +564,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te rewardSelection[0] = TEST_REWARD_NAME; PermitData memory emptyPermit; - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "EMPTY_SIGNATURE")); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, TreasuryErrors.InvalidInput.EMPTY_SIGNATURE)); keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection, emptyPermit); vm.stopPrank(); } @@ -591,7 +592,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te rewardSelection[1] = addOnRewardName; PermitData memory emptyPermit2; - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "EMPTY_SIGNATURE")); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, TreasuryErrors.InvalidInput.EMPTY_SIGNATURE)); keepWhatsRaised.pledgeForAReward(TEST_PLEDGE_ID, users.backer1Address, address(testToken), 0, rewardSelection, emptyPermit2); vm.stopPrank(); } @@ -644,7 +645,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te function testPledgeWithoutARewardRevertWhenPermitMissing() public { vm.warp(LAUNCH_TIME); - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "EMPTY_SIGNATURE")); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, TreasuryErrors.InvalidInput.EMPTY_SIGNATURE)); vm.prank(users.backer1Address); PermitData memory emptyPermitData = PermitData({nonce: 0, deadline: 0, signature: ""}); keepWhatsRaised.pledgeWithoutAReward( @@ -1434,7 +1435,7 @@ contract KeepWhatsRaised_UnitTest is Test, KeepWhatsRaised_Integration_Shared_Te } function testGetRewardRevertWhenNotExists() public { - vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, "REWARD_NOT_FOUND")); + vm.expectRevert(abi.encodeWithSelector(KeepWhatsRaised.KeepWhatsRaisedInvalidInput.selector, TreasuryErrors.InvalidInput.REWARD_NOT_FOUND)); keepWhatsRaised.getReward(keccak256("nonexistent")); } From 8d787ab60a9f843abcef66d28293c7a51142fd43 Mon Sep 17 00:00:00 2001 From: Adnan Date: Wed, 1 Apr 2026 00:59:58 +0600 Subject: [PATCH 58/61] Remove redundant balance-delta checks from KeepWhatsRaised token transfers (#81) --- src/errors/TreasuryErrors.sol | 3 +-- src/treasuries/KeepWhatsRaised.sol | 7 +------ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/errors/TreasuryErrors.sol b/src/errors/TreasuryErrors.sol index 9df2800..67847b6 100644 --- a/src/errors/TreasuryErrors.sol +++ b/src/errors/TreasuryErrors.sol @@ -25,8 +25,7 @@ library TreasuryErrors { ZERO_GOAL_AMOUNT, INVALID_REWARD_INPUT, ZERO_TOKEN_SOURCE, - ZERO_AMOUNT, - INSUFFICIENT_RECEIVED + ZERO_AMOUNT } /// @notice Codes for `NotClaimable` errors (refund / claim-check failures). diff --git a/src/treasuries/KeepWhatsRaised.sol b/src/treasuries/KeepWhatsRaised.sol index acc5ea5..40daca5 100644 --- a/src/treasuries/KeepWhatsRaised.sol +++ b/src/treasuries/KeepWhatsRaised.sol @@ -1378,13 +1378,8 @@ contract KeepWhatsRaised is IReward, BaseTreasury, TimestampChecker, ICampaignDa ); actualPledgeAmount = pledgeAmountInTokenDecimals; } else { - uint256 balanceBefore = IERC20(pledgeToken).balanceOf(address(this)); IERC20(pledgeToken).safeTransferFrom(tokenSource, address(this), totalAmount); - uint256 actualReceived = IERC20(pledgeToken).balanceOf(address(this)) - balanceBefore; - if (actualReceived < tip) { - revert KeepWhatsRaisedInvalidInput(TreasuryErrors.InvalidInput.INSUFFICIENT_RECEIVED); - } - actualPledgeAmount = actualReceived - tip; + actualPledgeAmount = pledgeAmountInTokenDecimals; } uint256 tokenId = INFO.mintNFTForPledge(backer, reward, pledgeToken, actualPledgeAmount, 0, tip); From 6bd5dc9e3a807d4327a2560506db860b8e321f84 Mon Sep 17 00:00:00 2001 From: Adnan Date: Wed, 1 Apr 2026 01:59:02 +0600 Subject: [PATCH 59/61] Remove Ownable and use Protocol Admin as top level authority across the board (#79) * refactor core admin access around protocol admin * Remove redundant _msgSender() instances in core contracts --- script/DeployAll.s.sol | 1 - script/DeployAllAndSetupAllOrNothing.s.sol | 12 +----- script/DeployAllAndSetupKeepWhatsRaised.s.sol | 12 +----- script/DeployAllAndSetupPaymentTreasury.s.sol | 12 +----- ...dSetupTimeConstrainedPaymentTreasury.s.sol | 12 +----- script/DeployCampaignInfoFactory.s.sol | 1 - src/CampaignInfo.sol | 6 +-- src/CampaignInfoFactory.sol | 23 ++++++----- src/GlobalParams.sol | 40 ++++++++++++------- test/foundry/Base.t.sol | 1 - test/foundry/unit/CampaignInfo.t.sol | 1 - test/foundry/unit/CampaignInfoFactory.t.sol | 9 ++--- test/foundry/unit/GlobalParams.t.sol | 13 ++++++ test/foundry/unit/Upgrades.t.sol | 3 +- 14 files changed, 68 insertions(+), 78 deletions(-) diff --git a/script/DeployAll.s.sol b/script/DeployAll.s.sol index 1fb1876..c2c7fcc 100644 --- a/script/DeployAll.s.sol +++ b/script/DeployAll.s.sol @@ -80,7 +80,6 @@ contract DeployAll is DeployBase { // Prepare initialization data for CampaignInfoFactory bytes memory campaignFactoryInitData = abi.encodeWithSelector( CampaignInfoFactory.initialize.selector, - deployerAddress, IGlobalParams(address(globalParamsProxy)), address(campaignInfoImplementation), address(treasuryFactoryProxy) diff --git a/script/DeployAllAndSetupAllOrNothing.s.sol b/script/DeployAllAndSetupAllOrNothing.s.sol index 0f36e31..377d6f3 100644 --- a/script/DeployAllAndSetupAllOrNothing.s.sol +++ b/script/DeployAllAndSetupAllOrNothing.s.sol @@ -202,7 +202,6 @@ contract DeployAllAndSetupAllOrNothing is DeployBase { campaignInfoFactoryImplementation = address(campaignFactoryImpl); bytes memory campaignFactoryInitData = abi.encodeWithSelector( CampaignInfoFactory.initialize.selector, - deployerAddress, IGlobalParams(globalParams), campaignInfoImplementation, treasuryFactory @@ -358,13 +357,7 @@ contract DeployAllAndSetupAllOrNothing is DeployBase { console2.log("Transferring protocol admin rights to:", finalProtocolAdmin); GlobalParams(globalParams).updateProtocolAdminAddress(finalProtocolAdmin); - //Transfer admin rights to the final protocol admin - GlobalParams(globalParams).transferOwnership(finalProtocolAdmin); - console2.log("GlobalParams transferred to:", finalProtocolAdmin); - if (campaignInfoFactoryDeployed) { - CampaignInfoFactory(campaignInfoFactory).transferOwnership(finalProtocolAdmin); - console2.log("CampaignInfoFactory transferred to:", finalProtocolAdmin); - } + // CampaignInfoFactory reads admin from GlobalParams, no separate transfer needed } if (simulate) { @@ -436,8 +429,7 @@ contract DeployAllAndSetupAllOrNothing is DeployBase { console2.log("Protocol Admin:", finalProtocolAdmin); console2.log("Platform Admin:", finalPlatformAdmin); console2.log("Platform Adapter (Trusted Forwarder):", platformAdapter); - console2.log("GlobalParams owner:", GlobalParams(globalParams).owner()); - console2.log("CampaignInfoFactory owner:", CampaignInfoFactory(campaignInfoFactory).owner()); + console2.log("Protocol Admin (GlobalParams):", GlobalParams(globalParams).getProtocolAdminAddress()); console2.log("\n--- Supported Currencies & Tokens ---"); string memory currenciesConfig = vm.envOr("CURRENCIES", string("")); diff --git a/script/DeployAllAndSetupKeepWhatsRaised.s.sol b/script/DeployAllAndSetupKeepWhatsRaised.s.sol index 7670b84..0568164 100644 --- a/script/DeployAllAndSetupKeepWhatsRaised.s.sol +++ b/script/DeployAllAndSetupKeepWhatsRaised.s.sol @@ -198,7 +198,6 @@ contract DeployAllAndSetupKeepWhatsRaised is DeployBase { campaignInfoFactoryImplementation = address(campaignFactoryImpl); bytes memory campaignFactoryInitData = abi.encodeWithSelector( CampaignInfoFactory.initialize.selector, - deployerAddress, IGlobalParams(globalParams), campaignInfo, treasuryFactory @@ -354,13 +353,7 @@ contract DeployAllAndSetupKeepWhatsRaised is DeployBase { console2.log("Transferring protocol admin rights to:", finalProtocolAdmin); GlobalParams(globalParams).updateProtocolAdminAddress(finalProtocolAdmin); - //Transfer admin rights to the final protocol admin - GlobalParams(globalParams).transferOwnership(finalProtocolAdmin); - console2.log("GlobalParams transferred to:", finalProtocolAdmin); - if (campaignInfoFactoryDeployed) { - CampaignInfoFactory(campaignInfoFactory).transferOwnership(finalProtocolAdmin); - console2.log("CampaignInfoFactory transferred to:", finalProtocolAdmin); - } + // CampaignInfoFactory reads admin from GlobalParams, no separate transfer needed } if (simulate) { @@ -432,8 +425,7 @@ contract DeployAllAndSetupKeepWhatsRaised is DeployBase { console2.log("Protocol Admin:", finalProtocolAdmin); console2.log("Platform Admin:", finalPlatformAdmin); console2.log("Platform Adapter (Trusted Forwarder):", platformAdapter); - console2.log("GlobalParams owner:", GlobalParams(globalParams).owner()); - console2.log("CampaignInfoFactory owner:", CampaignInfoFactory(campaignInfoFactory).owner()); + console2.log("Protocol Admin (GlobalParams):", GlobalParams(globalParams).getProtocolAdminAddress()); console2.log("\n--- Supported Currencies & Tokens ---"); string memory currenciesConfig = vm.envOr("CURRENCIES", string("")); diff --git a/script/DeployAllAndSetupPaymentTreasury.s.sol b/script/DeployAllAndSetupPaymentTreasury.s.sol index c17cf9c..bd9e5b9 100644 --- a/script/DeployAllAndSetupPaymentTreasury.s.sol +++ b/script/DeployAllAndSetupPaymentTreasury.s.sol @@ -233,7 +233,6 @@ contract DeployAllAndSetupPaymentTreasury is DeployBase { campaignInfoFactoryImplementation = address(campaignFactoryImpl); bytes memory campaignFactoryInitData = abi.encodeWithSelector( CampaignInfoFactory.initialize.selector, - deployerAddress, IGlobalParams(globalParams), campaignInfoImplementation, treasuryFactory @@ -389,13 +388,7 @@ contract DeployAllAndSetupPaymentTreasury is DeployBase { console2.log("Transferring protocol admin rights to:", finalProtocolAdmin); GlobalParams(globalParams).updateProtocolAdminAddress(finalProtocolAdmin); - //Transfer admin rights to the final protocol admin - GlobalParams(globalParams).transferOwnership(finalProtocolAdmin); - console2.log("GlobalParams transferred to:", finalProtocolAdmin); - if (campaignInfoFactoryDeployed) { - CampaignInfoFactory(campaignInfoFactory).transferOwnership(finalProtocolAdmin); - console2.log("CampaignInfoFactory transferred to:", finalProtocolAdmin); - } + // CampaignInfoFactory reads admin from GlobalParams, no separate transfer needed } if (simulate) { @@ -468,8 +461,7 @@ contract DeployAllAndSetupPaymentTreasury is DeployBase { console2.log("Protocol Admin:", finalProtocolAdmin); console2.log("Platform Admin:", finalPlatformAdmin); console2.log("Platform Adapter (Trusted Forwarder):", platformAdapter); - console2.log("GlobalParams owner:", GlobalParams(globalParams).owner()); - console2.log("CampaignInfoFactory owner:", CampaignInfoFactory(campaignInfoFactory).owner()); + console2.log("Protocol Admin (GlobalParams):", GlobalParams(globalParams).getProtocolAdminAddress()); console2.log("\n--- Supported Currencies & Tokens ---"); string memory currenciesConfig = vm.envOr("CURRENCIES", string("")); diff --git a/script/DeployAllAndSetupTimeConstrainedPaymentTreasury.s.sol b/script/DeployAllAndSetupTimeConstrainedPaymentTreasury.s.sol index 8497841..baf9fc3 100644 --- a/script/DeployAllAndSetupTimeConstrainedPaymentTreasury.s.sol +++ b/script/DeployAllAndSetupTimeConstrainedPaymentTreasury.s.sol @@ -234,7 +234,6 @@ contract DeployAllAndSetupTimeConstrainedPaymentTreasury is DeployBase { campaignInfoFactoryImplementation = address(campaignFactoryImpl); bytes memory campaignFactoryInitData = abi.encodeWithSelector( CampaignInfoFactory.initialize.selector, - deployerAddress, IGlobalParams(globalParams), campaignInfoImplementation, treasuryFactory @@ -396,13 +395,7 @@ contract DeployAllAndSetupTimeConstrainedPaymentTreasury is DeployBase { console2.log("Transferring protocol admin rights to:", finalProtocolAdmin); GlobalParams(globalParams).updateProtocolAdminAddress(finalProtocolAdmin); - //Transfer admin rights to the final protocol admin - GlobalParams(globalParams).transferOwnership(finalProtocolAdmin); - console2.log("GlobalParams transferred to:", finalProtocolAdmin); - if (campaignInfoFactoryDeployed) { - CampaignInfoFactory(campaignInfoFactory).transferOwnership(finalProtocolAdmin); - console2.log("CampaignInfoFactory transferred to:", finalProtocolAdmin); - } + // CampaignInfoFactory reads admin from GlobalParams, no separate transfer needed } if (simulate) { @@ -475,8 +468,7 @@ contract DeployAllAndSetupTimeConstrainedPaymentTreasury is DeployBase { console2.log("Protocol Admin:", finalProtocolAdmin); console2.log("Platform Admin:", finalPlatformAdmin); console2.log("Platform Adapter (Trusted Forwarder):", platformAdapter); - console2.log("GlobalParams owner:", GlobalParams(globalParams).owner()); - console2.log("CampaignInfoFactory owner:", CampaignInfoFactory(campaignInfoFactory).owner()); + console2.log("Protocol Admin (GlobalParams):", GlobalParams(globalParams).getProtocolAdminAddress()); console2.log("\n--- Supported Currencies & Tokens ---"); string memory currenciesConfig = vm.envOr("CURRENCIES", string("")); diff --git a/script/DeployCampaignInfoFactory.s.sol b/script/DeployCampaignInfoFactory.s.sol index c2c5b0d..88e1bbc 100644 --- a/script/DeployCampaignInfoFactory.s.sol +++ b/script/DeployCampaignInfoFactory.s.sol @@ -28,7 +28,6 @@ contract DeployCampaignInfoFactory is DeployBase { // Prepare initialization data bytes memory initData = abi.encodeWithSelector( CampaignInfoFactory.initialize.selector, - deployer, IGlobalParams(globalParams), campaignInfo, treasuryFactory diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index 2448dbe..acb5718 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -158,7 +158,7 @@ contract CampaignInfo is /** * @notice Constructor passes empty strings to ERC721 */ - constructor() Ownable(_msgSender()) ERC721("", "") { + constructor() Ownable(msg.sender) ERC721("", "") { _disableInitializers(); } @@ -641,7 +641,7 @@ contract CampaignInfo is * @dev External function to cancel the campaign. */ function cancelCampaign(bytes32 message) external { - if (_msgSender() != getProtocolAdminAddress() && _msgSender() != owner()) { + if (msg.sender != getProtocolAdminAddress() && msg.sender != owner()) { revert CampaignInfoUnauthorized(); } _cancel(message); @@ -709,7 +709,7 @@ contract CampaignInfo is currentTimeIsLess(getDeadline()) { Config memory config = getCampaignConfig(); - if (_msgSender() != config.treasuryFactory) { + if (msg.sender != config.treasuryFactory) { revert CampaignInfoUnauthorized(); } bool selected = checkIfPlatformSelected(platformHash); diff --git a/src/CampaignInfoFactory.sol b/src/CampaignInfoFactory.sol index 4f99356..4afddc0 100644 --- a/src/CampaignInfoFactory.sol +++ b/src/CampaignInfoFactory.sol @@ -2,7 +2,6 @@ pragma solidity ^0.8.22; import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol"; -import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; @@ -16,14 +15,14 @@ import {DataRegistryKeys} from "./constants/DataRegistryKeys.sol"; * @notice Factory contract for creating campaign information contracts. * @dev UUPS Upgradeable contract with ERC-7201 namespaced storage */ -contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, OwnableUpgradeable, UUPSUpgradeable { +contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, UUPSUpgradeable { /** * @dev Emitted when invalid input is provided. */ error CampaignInfoFactoryInvalidInput(); - /// @dev Reverts when initialOwner is the zero address. - error CampaignInfoFactoryZeroInitialOwner(); + /// @dev Reverts when the caller is not the protocol admin. + error CampaignInfoFactoryUnauthorized(); /// @dev Reverts when globalParams is the zero address. error CampaignInfoFactoryZeroGlobalParams(); /// @dev Reverts when campaignImplementation is the zero address. @@ -43,6 +42,14 @@ contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, OwnableUpgr */ error CampaignInfoInvalidTokenList(); + modifier onlyProtocolAdmin() { + CampaignInfoFactoryStorage.Storage storage $ = CampaignInfoFactoryStorage._getCampaignInfoFactoryStorage(); + if (msg.sender != $.globalParams.getProtocolAdminAddress()) { + revert CampaignInfoFactoryUnauthorized(); + } + _; + } + /** * @dev Constructor that disables initializers to prevent implementation contract initialization */ @@ -52,23 +59,19 @@ contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, OwnableUpgr /** * @notice Initializes the CampaignInfoFactory contract. - * @param initialOwner The address that will own the factory * @param globalParams The address of the global parameters contract. * @param campaignImplementation The address of the campaign implementation contract. * @param treasuryFactoryAddress The address of the treasury factory contract. */ function initialize( - address initialOwner, IGlobalParams globalParams, address campaignImplementation, address treasuryFactoryAddress ) public initializer { - if (initialOwner == address(0)) revert CampaignInfoFactoryZeroInitialOwner(); if (address(globalParams) == address(0)) revert CampaignInfoFactoryZeroGlobalParams(); if (campaignImplementation == address(0)) revert CampaignInfoFactoryZeroCampaignImplementation(); if (treasuryFactoryAddress == address(0)) revert CampaignInfoFactoryZeroTreasuryFactoryAddress(); - __Ownable_init(initialOwner); __UUPSUpgradeable_init(); CampaignInfoFactoryStorage.Storage storage $ = CampaignInfoFactoryStorage._getCampaignInfoFactoryStorage(); @@ -81,7 +84,7 @@ contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, OwnableUpgr * @dev Function that authorizes an upgrade to a new implementation * @param newImplementation Address of the new implementation */ - function _authorizeUpgrade(address newImplementation) internal override onlyOwner {} + function _authorizeUpgrade(address newImplementation) internal override onlyProtocolAdmin {} /** * @inheritdoc ICampaignInfoFactory @@ -196,7 +199,7 @@ contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, OwnableUpgr /** * @inheritdoc ICampaignInfoFactory */ - function updateImplementation(address newImplementation) external override onlyOwner { + function updateImplementation(address newImplementation) external override onlyProtocolAdmin { if (newImplementation == address(0)) { revert CampaignInfoFactoryInvalidInput(); } diff --git a/src/GlobalParams.sol b/src/GlobalParams.sol index f58a83a..8d92291 100644 --- a/src/GlobalParams.sol +++ b/src/GlobalParams.sol @@ -1,7 +1,6 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.22; -import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; @@ -14,7 +13,7 @@ import {GlobalParamsStorage} from "./storage/GlobalParamsStorage.sol"; * @notice Manages global parameters and platform information. * @dev UUPS Upgradeable contract with ERC-7201 namespaced storage */ -contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSUpgradeable { +contract GlobalParams is Initializable, IGlobalParams, UUPSUpgradeable { using Counters for Counters.Counter; bytes32 private constant ZERO_BYTES = 0x0000000000000000000000000000000000000000000000000000000000000000; @@ -239,6 +238,11 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU _; } + modifier onlyProtocolAdmin() { + _onlyProtocolAdmin(); + _; + } + /** * @dev Constructor that disables initializers to prevent implementation contract initialization */ @@ -259,9 +263,10 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU bytes32[] memory currencies, address[][] memory tokensPerCurrency ) public initializer { - __Ownable_init(protocolAdminAddress); __UUPSUpgradeable_init(); + _revertIfAddressZero(protocolAdminAddress); + if (protocolFeePercent > PERCENT_DIVIDER) { revert GlobalParamsFeePercentExceedsMax(); } @@ -291,14 +296,14 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU * @dev Function that authorizes an upgrade to a new implementation * @param newImplementation Address of the new implementation */ - function _authorizeUpgrade(address newImplementation) internal override onlyOwner {} + function _authorizeUpgrade(address newImplementation) internal override onlyProtocolAdmin {} /** * @notice Adds a key-value pair to the data registry. * @param key The registry key. * @param value The registry value. */ - function addToRegistry(bytes32 key, bytes32 value) external onlyOwner { + function addToRegistry(bytes32 key, bytes32 value) external onlyProtocolAdmin { if (key == ZERO_BYTES) { revert GlobalParamsInvalidInput(); } @@ -430,7 +435,7 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU address platformAdminAddress, uint256 platformFeePercent, address platformAdapter - ) external onlyOwner notAddressZero(platformAdminAddress) { + ) external onlyProtocolAdmin notAddressZero(platformAdminAddress) { if (platformHash == ZERO_BYTES) { revert GlobalParamsInvalidInput(); } @@ -460,7 +465,7 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU * @notice Delists a platform. * @param platformHash The platform's identifier. */ - function delistPlatform(bytes32 platformHash) external onlyOwner platformIsListed(platformHash) { + function delistPlatform(bytes32 platformHash) external onlyProtocolAdmin platformIsListed(platformHash) { GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); $.platformIsListed[platformHash] = false; $.platformAdminAddress[platformHash] = address(0); @@ -523,7 +528,7 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU function updateProtocolAdminAddress(address protocolAdminAddress) external override - onlyOwner + onlyProtocolAdmin notAddressZero(protocolAdminAddress) { GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); @@ -534,7 +539,7 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU /** * @inheritdoc IGlobalParams */ - function updateProtocolFeePercent(uint256 protocolFeePercent) external override onlyOwner { + function updateProtocolFeePercent(uint256 protocolFeePercent) external override onlyProtocolAdmin { if (protocolFeePercent > PERCENT_DIVIDER) { revert GlobalParamsFeePercentExceedsMax(); } @@ -549,7 +554,7 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU function updatePlatformAdminAddress(bytes32 platformHash, address platformAdminAddress) external override - onlyOwner + onlyProtocolAdmin platformIsListed(platformHash) notAddressZero(platformAdminAddress) { @@ -592,7 +597,7 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU function setPlatformAdapter(bytes32 platformHash, address adapter) external override - onlyOwner + onlyProtocolAdmin platformIsListed(platformHash) { GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); @@ -603,7 +608,7 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU /** * @inheritdoc IGlobalParams */ - function addTokenToCurrency(bytes32 currency, address token) external override onlyOwner notAddressZero(token) { + function addTokenToCurrency(bytes32 currency, address token) external override onlyProtocolAdmin notAddressZero(token) { if (currency == ZERO_BYTES) { revert GlobalParamsInvalidInput(); } @@ -618,7 +623,7 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU function removeTokenFromCurrency(bytes32 currency, address token) external override - onlyOwner + onlyProtocolAdmin notAddressZero(token) { GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); @@ -775,6 +780,13 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU } } + function _onlyProtocolAdmin() private view { + GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); + if (msg.sender != $.protocolAdminAddress) { + revert GlobalParamsUnauthorized(); + } + } + /** * @dev Internal function to check if the sender is the platform administrator for a specific platform. * If the sender is not the platform admin, it reverts with GlobalParamsUnauthorized error. @@ -782,7 +794,7 @@ contract GlobalParams is Initializable, IGlobalParams, OwnableUpgradeable, UUPSU */ function _onlyPlatformAdmin(bytes32 platformHash) private view { GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); - if (_msgSender() != $.platformAdminAddress[platformHash]) { + if (msg.sender != $.platformAdminAddress[platformHash]) { revert GlobalParamsUnauthorized(); } } diff --git a/test/foundry/Base.t.sol b/test/foundry/Base.t.sol index dec62e1..e4e78bd 100644 --- a/test/foundry/Base.t.sol +++ b/test/foundry/Base.t.sol @@ -137,7 +137,6 @@ abstract contract Base_Test is Test, Defaults { CampaignInfoFactory campaignFactoryImpl = new CampaignInfoFactory(); bytes memory campaignFactoryInitData = abi.encodeWithSelector( CampaignInfoFactory.initialize.selector, - users.contractOwner, IGlobalParams(address(globalParams)), address(campaignInfo), address(treasuryFactory) diff --git a/test/foundry/unit/CampaignInfo.t.sol b/test/foundry/unit/CampaignInfo.t.sol index 0f8f68e..a4297fc 100644 --- a/test/foundry/unit/CampaignInfo.t.sol +++ b/test/foundry/unit/CampaignInfo.t.sol @@ -81,7 +81,6 @@ contract CampaignInfo_UnitTest is Test, Defaults { CampaignInfoFactory campaignInfoFactoryImpl = new CampaignInfoFactory(); bytes memory campaignInfoFactoryInitData = abi.encodeWithSelector( CampaignInfoFactory.initialize.selector, - admin, IGlobalParams(address(globalParams)), address(new CampaignInfo()), address(treasuryFactory) diff --git a/test/foundry/unit/CampaignInfoFactory.t.sol b/test/foundry/unit/CampaignInfoFactory.t.sol index 234379e..4ef85dd 100644 --- a/test/foundry/unit/CampaignInfoFactory.t.sol +++ b/test/foundry/unit/CampaignInfoFactory.t.sol @@ -55,7 +55,6 @@ contract CampaignInfoFactory_UnitTest is Test, Defaults { CampaignInfoFactory factoryImpl = new CampaignInfoFactory(); bytes memory factoryInitData = abi.encodeWithSelector( CampaignInfoFactory.initialize.selector, - address(this), IGlobalParams(address(globalParams)), address(campaignInfoImplementation), address(treasuryFactory) @@ -137,7 +136,8 @@ contract CampaignInfoFactory_UnitTest is Test, Defaults { // Deploy new implementation CampaignInfoFactory newImplementation = new CampaignInfoFactory(); - // Upgrade as owner (address(this)) + // Upgrade as protocol admin + vm.prank(admin); factory.upgradeToAndCall(address(newImplementation), ""); // Factory should still work after upgrade @@ -168,8 +168,8 @@ contract CampaignInfoFactory_UnitTest is Test, Defaults { // Deploy new implementation CampaignInfoFactory newImplementation = new CampaignInfoFactory(); - // Try to upgrade as non-owner (should revert) - vm.prank(admin); + // Try to upgrade as non-admin (should revert) + vm.prank(address(0xDEAD)); vm.expectRevert(); factory.upgradeToAndCall(address(newImplementation), ""); } @@ -178,7 +178,6 @@ contract CampaignInfoFactory_UnitTest is Test, Defaults { // Try to initialize again (should revert) vm.expectRevert(); factory.initialize( - address(this), IGlobalParams(address(globalParams)), address(campaignInfoImplementation), address(treasuryFactory) diff --git a/test/foundry/unit/GlobalParams.t.sol b/test/foundry/unit/GlobalParams.t.sol index 4fece93..5d3f3dc 100644 --- a/test/foundry/unit/GlobalParams.t.sol +++ b/test/foundry/unit/GlobalParams.t.sol @@ -304,6 +304,19 @@ contract GlobalParams_UnitTest is Test, Defaults { assertEq(tokens.length, 0); } + function testInitializerRevertOnZeroProtocolAdmin() public { + bytes32[] memory currencies = new bytes32[](0); + address[][] memory tokensPerCurrency = new address[][](0); + + GlobalParams zeroAdminImpl = new GlobalParams(); + bytes memory initData = abi.encodeWithSelector( + GlobalParams.initialize.selector, address(0), protocolFee, currencies, tokensPerCurrency + ); + + vm.expectRevert(GlobalParams.GlobalParamsInvalidInput.selector); + new ERC1967Proxy(address(zeroAdminImpl), initData); + } + function testInitializerRevertOnMismatchedArrays() public { bytes32[] memory currencies = new bytes32[](2); currencies[0] = USD; diff --git a/test/foundry/unit/Upgrades.t.sol b/test/foundry/unit/Upgrades.t.sol index 0dbb08e..0dbef1e 100644 --- a/test/foundry/unit/Upgrades.t.sol +++ b/test/foundry/unit/Upgrades.t.sol @@ -58,7 +58,6 @@ contract Upgrades_Test is Test, Defaults { CampaignInfoFactory campaignFactoryImpl = new CampaignInfoFactory(); bytes memory campaignFactoryInitData = abi.encodeWithSelector( CampaignInfoFactory.initialize.selector, - admin, IGlobalParams(address(globalParams)), address(campaignInfoImpl), address(treasuryFactory) @@ -294,7 +293,7 @@ contract Upgrades_Test is Test, Defaults { vm.expectRevert(); campaignFactory.initialize( - admin, IGlobalParams(address(globalParams)), address(campaignInfoImpl), address(treasuryFactory) + IGlobalParams(address(globalParams)), address(campaignInfoImpl), address(treasuryFactory) ); } From b153c8c6025b765c4ab429d6b775982ef7a5c5fc Mon Sep 17 00:00:00 2001 From: Adnan Date: Wed, 1 Apr 2026 02:27:56 +0600 Subject: [PATCH 60/61] add InvalidInput error codes for core contracts (#82) --- src/CampaignInfo.sol | 22 +++---- src/CampaignInfoFactory.sol | 18 +++--- src/GlobalParams.sol | 32 +++++----- src/errors/ProtocolErrors.sol | 47 +++++++++++++++ test/foundry/unit/CampaignInfo.t.sol | 66 +++++++++++++++++---- test/foundry/unit/CampaignInfoFactory.t.sol | 15 ++++- test/foundry/unit/GlobalParams.t.sol | 29 +++++++-- 7 files changed, 180 insertions(+), 49 deletions(-) create mode 100644 src/errors/ProtocolErrors.sol diff --git a/src/CampaignInfo.sol b/src/CampaignInfo.sol index acb5718..177cbbf 100644 --- a/src/CampaignInfo.sol +++ b/src/CampaignInfo.sol @@ -17,6 +17,7 @@ import {PausableCancellable} from "./utils/PausableCancellable.sol"; import {PledgeNFT} from "./utils/PledgeNFT.sol"; import {Counters} from "./utils/Counters.sol"; import {DataRegistryKeys} from "./constants/DataRegistryKeys.sol"; +import {ProtocolErrors} from "./errors/ProtocolErrors.sol"; /** * @title CampaignInfo @@ -118,8 +119,9 @@ contract CampaignInfo is /** * @dev Emitted when an invalid input is detected. + * @param code Which validation failed. */ - error CampaignInfoInvalidInput(); + error CampaignInfoInvalidInput(ProtocolErrors.CampaignInfoInvalidInput code); /** * @dev Emitted when a platform is not selected for the campaign. @@ -184,7 +186,7 @@ contract CampaignInfo is for (uint256 i = 0; i < len;) { address token = acceptedTokens[i]; if (s_isAcceptedToken[token]) { - revert CampaignInfoInvalidInput(); + revert CampaignInfoInvalidInput(ProtocolErrors.CampaignInfoInvalidInput.DUPLICATE_ACCEPTED_TOKEN); } s_acceptedTokens.push(token); s_isAcceptedToken[token] = true; @@ -430,7 +432,7 @@ contract CampaignInfo is function getPlatformData(bytes32 platformDataKey) external view override returns (bytes32) { bytes32 platformDataValue = s_platformData[platformDataKey]; if (platformDataValue == bytes32(0)) { - revert CampaignInfoInvalidInput(); + revert CampaignInfoInvalidInput(ProtocolErrors.CampaignInfoInvalidInput.PLATFORM_DATA_NOT_SET); } return platformDataValue; } @@ -520,7 +522,7 @@ contract CampaignInfo is launchTime < block.timestamp + campaignLaunchBuffer || deadline <= launchTime || deadline < launchTime + minimumCampaignDuration ) { - revert CampaignInfoInvalidInput(); + revert CampaignInfoInvalidInput(ProtocolErrors.CampaignInfoInvalidInput.INVALID_LAUNCH_TIME); } s_campaignData.launchTime = launchTime; @@ -544,7 +546,7 @@ contract CampaignInfo is uint256(_getGlobalParams().getFromRegistry(DataRegistryKeys.MINIMUM_CAMPAIGN_DURATION)); if (deadline < launchTime + minimumCampaignDuration) { - revert CampaignInfoInvalidInput(); + revert CampaignInfoInvalidInput(ProtocolErrors.CampaignInfoInvalidInput.INVALID_DEADLINE); } s_campaignData.deadline = deadline; @@ -564,7 +566,7 @@ contract CampaignInfo is whenNotLocked { if (goalAmount == 0) { - revert CampaignInfoInvalidInput(); + revert CampaignInfoInvalidInput(ProtocolErrors.CampaignInfoInvalidInput.ZERO_GOAL_AMOUNT); } s_campaignData.goalAmount = goalAmount; emit CampaignInfoGoalAmountUpdated(goalAmount); @@ -580,7 +582,7 @@ contract CampaignInfo is bytes32[] calldata platformDataValue ) external override onlyOwner currentTimeIsLess(getLaunchTime()) whenNotPaused whenNotCancelled { if (checkIfPlatformSelected(platformHash) == selection) { - revert CampaignInfoInvalidInput(); + revert CampaignInfoInvalidInput(ProtocolErrors.CampaignInfoInvalidInput.PLATFORM_SELECTION_UNCHANGED); } IGlobalParams globalParams = _getGlobalParams(); @@ -592,7 +594,7 @@ contract CampaignInfo is revert CampaignInfoPlatformAlreadyApproved(platformHash); } if (platformDataKey.length != platformDataValue.length) { - revert CampaignInfoInvalidInput(); + revert CampaignInfoInvalidInput(ProtocolErrors.CampaignInfoInvalidInput.PLATFORM_DATA_LENGTH_MISMATCH); } if (selection) { @@ -600,13 +602,13 @@ contract CampaignInfo is for (uint256 i = 0; i < platformDataKey.length; i++) { isValid = globalParams.checkIfPlatformDataKeyValid(platformDataKey[i]); if (!isValid) { - revert CampaignInfoInvalidInput(); + revert CampaignInfoInvalidInput(ProtocolErrors.CampaignInfoInvalidInput.INVALID_PLATFORM_DATA_KEY); } if (globalParams.getPlatformDataOwner(platformDataKey[i]) != platformHash) { revert CampaignInfoPlatformDataKeyNotOwnedByPlatform(platformHash, platformDataKey[i]); } if (platformDataValue[i] == bytes32(0)) { - revert CampaignInfoInvalidInput(); + revert CampaignInfoInvalidInput(ProtocolErrors.CampaignInfoInvalidInput.ZERO_PLATFORM_DATA_VALUE); } s_platformData[platformDataKey[i]] = platformDataValue[i]; diff --git a/src/CampaignInfoFactory.sol b/src/CampaignInfoFactory.sol index 4afddc0..4100195 100644 --- a/src/CampaignInfoFactory.sol +++ b/src/CampaignInfoFactory.sol @@ -9,6 +9,7 @@ import {IGlobalParams} from "./interfaces/IGlobalParams.sol"; import {ICampaignInfoFactory} from "./interfaces/ICampaignInfoFactory.sol"; import {CampaignInfoFactoryStorage} from "./storage/CampaignInfoFactoryStorage.sol"; import {DataRegistryKeys} from "./constants/DataRegistryKeys.sol"; +import {ProtocolErrors} from "./errors/ProtocolErrors.sol"; /** * @title CampaignInfoFactory @@ -18,8 +19,9 @@ import {DataRegistryKeys} from "./constants/DataRegistryKeys.sol"; contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, UUPSUpgradeable { /** * @dev Emitted when invalid input is provided. + * @param code Which validation failed. */ - error CampaignInfoFactoryInvalidInput(); + error CampaignInfoFactoryInvalidInput(ProtocolErrors.CampaignInfoFactoryInvalidInput code); /// @dev Reverts when the caller is not the protocol admin. error CampaignInfoFactoryUnauthorized(); @@ -113,10 +115,10 @@ contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, UUPSUpgrade string calldata contractURI ) external override { if (creator == address(0)) { - revert CampaignInfoFactoryInvalidInput(); + revert CampaignInfoFactoryInvalidInput(ProtocolErrors.CampaignInfoFactoryInvalidInput.ZERO_CREATOR); } if (platformDataKey.length != platformDataValue.length) { - revert CampaignInfoFactoryInvalidInput(); + revert CampaignInfoFactoryInvalidInput(ProtocolErrors.CampaignInfoFactoryInvalidInput.PLATFORM_DATA_LENGTH_MISMATCH); } CampaignInfoFactoryStorage.Storage storage $ = CampaignInfoFactoryStorage._getCampaignInfoFactoryStorage(); @@ -131,20 +133,20 @@ contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, UUPSUpgrade // Validate campaign timing constraints if (campaignData.launchTime < block.timestamp + campaignLaunchBuffer) { - revert CampaignInfoFactoryInvalidInput(); + revert CampaignInfoFactoryInvalidInput(ProtocolErrors.CampaignInfoFactoryInvalidInput.LAUNCH_TIME_TOO_SOON); } if (campaignData.deadline < campaignData.launchTime + minimumCampaignDuration) { - revert CampaignInfoFactoryInvalidInput(); + revert CampaignInfoFactoryInvalidInput(ProtocolErrors.CampaignInfoFactoryInvalidInput.DEADLINE_TOO_SOON); } bool isValid; for (uint256 i = 0; i < platformDataKey.length; i++) { isValid = globalParams.checkIfPlatformDataKeyValid(platformDataKey[i]); if (!isValid) { - revert CampaignInfoFactoryInvalidInput(); + revert CampaignInfoFactoryInvalidInput(ProtocolErrors.CampaignInfoFactoryInvalidInput.INVALID_PLATFORM_DATA_KEY); } if (platformDataValue[i] == bytes32(0)) { - revert CampaignInfoFactoryInvalidInput(); + revert CampaignInfoFactoryInvalidInput(ProtocolErrors.CampaignInfoFactoryInvalidInput.ZERO_PLATFORM_DATA_VALUE); } } address cloneExists = $.identifierToCampaignInfo[identifierHash]; @@ -201,7 +203,7 @@ contract CampaignInfoFactory is Initializable, ICampaignInfoFactory, UUPSUpgrade */ function updateImplementation(address newImplementation) external override onlyProtocolAdmin { if (newImplementation == address(0)) { - revert CampaignInfoFactoryInvalidInput(); + revert CampaignInfoFactoryInvalidInput(ProtocolErrors.CampaignInfoFactoryInvalidInput.ZERO_IMPLEMENTATION); } CampaignInfoFactoryStorage.Storage storage $ = CampaignInfoFactoryStorage._getCampaignInfoFactoryStorage(); $.implementation = newImplementation; diff --git a/src/GlobalParams.sol b/src/GlobalParams.sol index 8d92291..c8e4ad0 100644 --- a/src/GlobalParams.sol +++ b/src/GlobalParams.sol @@ -5,6 +5,7 @@ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Ini import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; import {IGlobalParams} from "./interfaces/IGlobalParams.sol"; +import {ProtocolErrors} from "./errors/ProtocolErrors.sol"; import {Counters} from "./utils/Counters.sol"; import {GlobalParamsStorage} from "./storage/GlobalParamsStorage.sol"; @@ -130,9 +131,10 @@ contract GlobalParams is Initializable, IGlobalParams, UUPSUpgradeable { event PlatformLineItemTypeRemoved(bytes32 indexed platformHash, bytes32 indexed typeId); /** - * @dev Throws when the input address is zero. + * @dev Throws when input validation fails. + * @param code Which validation failed. */ - error GlobalParamsInvalidInput(); + error GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput code); /** * @dev Throws when the platform is not listed. @@ -285,7 +287,7 @@ contract GlobalParams is Initializable, IGlobalParams, UUPSUpgradeable { for (uint256 j = 0; j < tokensPerCurrency[i].length; j++) { address token = tokensPerCurrency[i][j]; if (token == address(0)) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.ZERO_TOKEN); } $.currencyToTokens[currencies[i]].push(token); } @@ -305,7 +307,7 @@ contract GlobalParams is Initializable, IGlobalParams, UUPSUpgradeable { */ function addToRegistry(bytes32 key, bytes32 value) external onlyProtocolAdmin { if (key == ZERO_BYTES) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.ZERO_REGISTRY_KEY); } GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); $.dataRegistry[key] = value; @@ -437,7 +439,7 @@ contract GlobalParams is Initializable, IGlobalParams, UUPSUpgradeable { address platformAdapter ) external onlyProtocolAdmin notAddressZero(platformAdminAddress) { if (platformHash == ZERO_BYTES) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.ZERO_PLATFORM_HASH); } if (platformFeePercent > PERCENT_DIVIDER) { revert GlobalParamsFeePercentExceedsMax(); @@ -486,7 +488,7 @@ contract GlobalParams is Initializable, IGlobalParams, UUPSUpgradeable { onlyPlatformAdmin(platformHash) { if (platformDataKey == ZERO_BYTES) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.ZERO_PLATFORM_DATA_KEY); } GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); if ($.platformData[platformDataKey]) { @@ -508,7 +510,7 @@ contract GlobalParams is Initializable, IGlobalParams, UUPSUpgradeable { onlyPlatformAdmin(platformHash) { if (platformDataKey == ZERO_BYTES) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.ZERO_PLATFORM_DATA_KEY); } GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); if (!$.platformData[platformDataKey]) { @@ -610,7 +612,7 @@ contract GlobalParams is Initializable, IGlobalParams, UUPSUpgradeable { */ function addTokenToCurrency(bytes32 currency, address token) external override onlyProtocolAdmin notAddressZero(token) { if (currency == ZERO_BYTES) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.ZERO_CURRENCY); } GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); $.currencyToTokens[currency].push(token); @@ -679,25 +681,25 @@ contract GlobalParams is Initializable, IGlobalParams, UUPSUpgradeable { bool instantTransfer ) external platformIsListed(platformHash) onlyPlatformAdmin(platformHash) { if (typeId == ZERO_BYTES) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.ZERO_LINE_ITEM_TYPE_ID); } // Validation constraint 1: If countsTowardGoal is true, then applyProtocolFee must be false, canRefund must be true, and instantTransfer must be false if (countsTowardGoal) { if (applyProtocolFee) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.LINE_ITEM_GOAL_APPLIES_PROTOCOL_FEE); } if (!canRefund) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.LINE_ITEM_GOAL_NOT_REFUNDABLE); } if (instantTransfer) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.LINE_ITEM_GOAL_INSTANT_TRANSFER); } } // Validation constraint 2: Non-goal instant transfer items cannot be refundable if (!countsTowardGoal && instantTransfer && canRefund) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.LINE_ITEM_NON_GOAL_INSTANT_REFUNDABLE); } GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); @@ -726,7 +728,7 @@ contract GlobalParams is Initializable, IGlobalParams, UUPSUpgradeable { onlyPlatformAdmin(platformHash) { if (typeId == ZERO_BYTES) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.ZERO_LINE_ITEM_TYPE_ID); } GlobalParamsStorage.Storage storage $ = GlobalParamsStorage._getGlobalParamsStorage(); if (!$.platformLineItemTypes[platformHash][typeId].exists) { @@ -776,7 +778,7 @@ contract GlobalParams is Initializable, IGlobalParams, UUPSUpgradeable { */ function _revertIfAddressZero(address account) internal pure { if (account == address(0)) { - revert GlobalParamsInvalidInput(); + revert GlobalParamsInvalidInput(ProtocolErrors.GlobalParamsInvalidInput.ZERO_ADDRESS); } } diff --git a/src/errors/ProtocolErrors.sol b/src/errors/ProtocolErrors.sol new file mode 100644 index 0000000..513bfc8 --- /dev/null +++ b/src/errors/ProtocolErrors.sol @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.22; + +/** + * @title ProtocolErrors + * @notice Shared error-code enums for GlobalParams, CampaignInfo, and CampaignInfoFactory invalid-input reverts. + */ +library ProtocolErrors { + /// @notice Codes for `GlobalParamsInvalidInput` (input-validation failures). + enum GlobalParamsInvalidInput { + ZERO_TOKEN, + ZERO_REGISTRY_KEY, + ZERO_PLATFORM_HASH, + ZERO_PLATFORM_DATA_KEY, + ZERO_CURRENCY, + ZERO_LINE_ITEM_TYPE_ID, + LINE_ITEM_GOAL_APPLIES_PROTOCOL_FEE, + LINE_ITEM_GOAL_NOT_REFUNDABLE, + LINE_ITEM_GOAL_INSTANT_TRANSFER, + LINE_ITEM_NON_GOAL_INSTANT_REFUNDABLE, + ZERO_ADDRESS + } + + /// @notice Codes for `CampaignInfoInvalidInput` (input-validation failures). + enum CampaignInfoInvalidInput { + DUPLICATE_ACCEPTED_TOKEN, + PLATFORM_DATA_NOT_SET, + INVALID_LAUNCH_TIME, + INVALID_DEADLINE, + ZERO_GOAL_AMOUNT, + PLATFORM_SELECTION_UNCHANGED, + PLATFORM_DATA_LENGTH_MISMATCH, + INVALID_PLATFORM_DATA_KEY, + ZERO_PLATFORM_DATA_VALUE + } + + /// @notice Codes for `CampaignInfoFactoryInvalidInput` (input-validation failures). + enum CampaignInfoFactoryInvalidInput { + ZERO_CREATOR, + PLATFORM_DATA_LENGTH_MISMATCH, + LAUNCH_TIME_TOO_SOON, + DEADLINE_TOO_SOON, + INVALID_PLATFORM_DATA_KEY, + ZERO_PLATFORM_DATA_VALUE, + ZERO_IMPLEMENTATION + } +} diff --git a/test/foundry/unit/CampaignInfo.t.sol b/test/foundry/unit/CampaignInfo.t.sol index a4297fc..6d1c5d2 100644 --- a/test/foundry/unit/CampaignInfo.t.sol +++ b/test/foundry/unit/CampaignInfo.t.sol @@ -13,6 +13,7 @@ import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.s import {TestToken} from "../../mocks/TestToken.sol"; import {Defaults} from "../Base.t.sol"; import {DataRegistryKeys} from "src/constants/DataRegistryKeys.sol"; +import {ProtocolErrors} from "src/errors/ProtocolErrors.sol"; contract CampaignInfo_UnitTest is Test, Defaults { CampaignInfo internal campaignInfo; @@ -172,7 +173,11 @@ contract CampaignInfo_UnitTest is Test, Defaults { } function test_GetPlatformData_NotSet() public { - vm.expectRevert(CampaignInfo.CampaignInfoInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + CampaignInfo.CampaignInfoInvalidInput.selector, ProtocolErrors.CampaignInfoInvalidInput.PLATFORM_DATA_NOT_SET + ) + ); campaignInfo.getPlatformData(platformDataKey1); } @@ -252,7 +257,12 @@ contract CampaignInfo_UnitTest is Test, Defaults { campaignInfo.updateSelectedPlatform(platformHash1, true, dataKeys, dataValues); // Try to select again - should revert - vm.expectRevert(CampaignInfo.CampaignInfoInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + CampaignInfo.CampaignInfoInvalidInput.selector, + ProtocolErrors.CampaignInfoInvalidInput.PLATFORM_SELECTION_UNCHANGED + ) + ); campaignInfo.updateSelectedPlatform(platformHash1, true, dataKeys, dataValues); vm.stopPrank(); } @@ -267,7 +277,12 @@ contract CampaignInfo_UnitTest is Test, Defaults { bytes32[] memory dataValues = new bytes32[](1); dataValues[0] = platformDataValue1; - vm.expectRevert(CampaignInfo.CampaignInfoInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + CampaignInfo.CampaignInfoInvalidInput.selector, + ProtocolErrors.CampaignInfoInvalidInput.PLATFORM_DATA_LENGTH_MISMATCH + ) + ); campaignInfo.updateSelectedPlatform(platformHash1, true, dataKeys, dataValues); vm.stopPrank(); } @@ -281,7 +296,12 @@ contract CampaignInfo_UnitTest is Test, Defaults { bytes32[] memory dataValues = new bytes32[](1); dataValues[0] = platformDataValue1; - vm.expectRevert(CampaignInfo.CampaignInfoInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + CampaignInfo.CampaignInfoInvalidInput.selector, + ProtocolErrors.CampaignInfoInvalidInput.INVALID_PLATFORM_DATA_KEY + ) + ); campaignInfo.updateSelectedPlatform(platformHash1, true, dataKeys, dataValues); vm.stopPrank(); } @@ -295,7 +315,12 @@ contract CampaignInfo_UnitTest is Test, Defaults { bytes32[] memory dataValues = new bytes32[](1); dataValues[0] = bytes32(0); - vm.expectRevert(CampaignInfo.CampaignInfoInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + CampaignInfo.CampaignInfoInvalidInput.selector, + ProtocolErrors.CampaignInfoInvalidInput.ZERO_PLATFORM_DATA_VALUE + ) + ); campaignInfo.updateSelectedPlatform(platformHash1, true, dataKeys, dataValues); vm.stopPrank(); } @@ -335,7 +360,11 @@ contract CampaignInfo_UnitTest is Test, Defaults { vm.startPrank(campaignOwner); // Launch time in the past - vm.expectRevert(CampaignInfo.CampaignInfoInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + CampaignInfo.CampaignInfoInvalidInput.selector, ProtocolErrors.CampaignInfoInvalidInput.INVALID_LAUNCH_TIME + ) + ); campaignInfo.updateLaunchTime(block.timestamp - 1); vm.stopPrank(); @@ -359,7 +388,11 @@ contract CampaignInfo_UnitTest is Test, Defaults { // the duration would be less than 1 day, which violates the minimum uint256 newLaunchTime = currentDeadline - 12 hours; // Only 12 hours duration, less than 1 day minimum - vm.expectRevert(CampaignInfo.CampaignInfoInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + CampaignInfo.CampaignInfoInvalidInput.selector, ProtocolErrors.CampaignInfoInvalidInput.INVALID_LAUNCH_TIME + ) + ); campaignInfo.updateLaunchTime(newLaunchTime); vm.stopPrank(); @@ -464,7 +497,11 @@ contract CampaignInfo_UnitTest is Test, Defaults { function test_UpdateGoalAmount_ZeroAmount_Reverts() public { vm.startPrank(campaignOwner); - vm.expectRevert(CampaignInfo.CampaignInfoInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + CampaignInfo.CampaignInfoInvalidInput.selector, ProtocolErrors.CampaignInfoInvalidInput.ZERO_GOAL_AMOUNT + ) + ); campaignInfo.updateGoalAmount(0); vm.stopPrank(); @@ -479,7 +516,11 @@ contract CampaignInfo_UnitTest is Test, Defaults { vm.stopPrank(); vm.startPrank(campaignOwner); - vm.expectRevert(CampaignInfo.CampaignInfoInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + CampaignInfo.CampaignInfoInvalidInput.selector, ProtocolErrors.CampaignInfoInvalidInput.INVALID_LAUNCH_TIME + ) + ); campaignInfo.updateLaunchTime(block.timestamp + 1 days); vm.stopPrank(); } @@ -966,7 +1007,12 @@ contract CampaignInfo_UnitTest is Test, Defaults { // Now try to select the already approved platform again - should revert vm.startPrank(campaignOwner); - vm.expectRevert(CampaignInfo.CampaignInfoInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + CampaignInfo.CampaignInfoInvalidInput.selector, + ProtocolErrors.CampaignInfoInvalidInput.PLATFORM_SELECTION_UNCHANGED + ) + ); campaignInfo.updateSelectedPlatform(platformHash1, true, dataKeys, dataValues); vm.stopPrank(); } diff --git a/test/foundry/unit/CampaignInfoFactory.t.sol b/test/foundry/unit/CampaignInfoFactory.t.sol index 4ef85dd..cb3981d 100644 --- a/test/foundry/unit/CampaignInfoFactory.t.sol +++ b/test/foundry/unit/CampaignInfoFactory.t.sol @@ -12,6 +12,7 @@ import {Defaults} from "../Base.t.sol"; import {ICampaignData} from "src/interfaces/ICampaignData.sol"; import {CampaignInfo} from "src/CampaignInfo.sol"; import {DataRegistryKeys} from "src/constants/DataRegistryKeys.sol"; +import {ProtocolErrors} from "src/errors/ProtocolErrors.sol"; contract CampaignInfoFactory_UnitTest is Test, Defaults { CampaignInfoFactory internal factory; @@ -202,7 +203,12 @@ contract CampaignInfoFactory_UnitTest is Test, Defaults { }); vm.prank(admin); - vm.expectRevert(CampaignInfoFactory.CampaignInfoFactoryInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + CampaignInfoFactory.CampaignInfoFactoryInvalidInput.selector, + ProtocolErrors.CampaignInfoFactoryInvalidInput.LAUNCH_TIME_TOO_SOON + ) + ); factory.createCampaign( creator, CAMPAIGN_1_IDENTIFIER_HASH, @@ -235,7 +241,12 @@ contract CampaignInfoFactory_UnitTest is Test, Defaults { }); vm.prank(admin); - vm.expectRevert(CampaignInfoFactory.CampaignInfoFactoryInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + CampaignInfoFactory.CampaignInfoFactoryInvalidInput.selector, + ProtocolErrors.CampaignInfoFactoryInvalidInput.DEADLINE_TOO_SOON + ) + ); factory.createCampaign( creator, CAMPAIGN_1_IDENTIFIER_HASH, diff --git a/test/foundry/unit/GlobalParams.t.sol b/test/foundry/unit/GlobalParams.t.sol index 5d3f3dc..f53db6c 100644 --- a/test/foundry/unit/GlobalParams.t.sol +++ b/test/foundry/unit/GlobalParams.t.sol @@ -3,6 +3,7 @@ pragma solidity ^0.8.22; import "forge-std/Test.sol"; import {GlobalParams} from "src/GlobalParams.sol"; +import {ProtocolErrors} from "src/errors/ProtocolErrors.sol"; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import {Defaults} from "../Base.t.sol"; import {TestToken} from "../../mocks/TestToken.sol"; @@ -214,7 +215,12 @@ contract GlobalParams_UnitTest is Test, Defaults { vm.prank(admin); globalParams.enlistPlatform(platformHash, platformAdmin, 400, address(0)); - vm.expectRevert(GlobalParams.GlobalParamsInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + GlobalParams.GlobalParamsInvalidInput.selector, + ProtocolErrors.GlobalParamsInvalidInput.LINE_ITEM_GOAL_APPLIES_PROTOCOL_FEE + ) + ); vm.prank(platformAdmin); globalParams.setPlatformLineItemType( platformHash, @@ -235,7 +241,12 @@ contract GlobalParams_UnitTest is Test, Defaults { vm.prank(admin); globalParams.enlistPlatform(platformHash, platformAdmin, 450, address(0)); - vm.expectRevert(GlobalParams.GlobalParamsInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + GlobalParams.GlobalParamsInvalidInput.selector, + ProtocolErrors.GlobalParamsInvalidInput.LINE_ITEM_GOAL_NOT_REFUNDABLE + ) + ); vm.prank(platformAdmin); globalParams.setPlatformLineItemType( platformHash, @@ -256,7 +267,12 @@ contract GlobalParams_UnitTest is Test, Defaults { vm.prank(admin); globalParams.enlistPlatform(platformHash, platformAdmin, 300, address(0)); - vm.expectRevert(GlobalParams.GlobalParamsInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + GlobalParams.GlobalParamsInvalidInput.selector, + ProtocolErrors.GlobalParamsInvalidInput.LINE_ITEM_NON_GOAL_INSTANT_REFUNDABLE + ) + ); vm.prank(platformAdmin); globalParams.setPlatformLineItemType( platformHash, @@ -313,7 +329,12 @@ contract GlobalParams_UnitTest is Test, Defaults { GlobalParams.initialize.selector, address(0), protocolFee, currencies, tokensPerCurrency ); - vm.expectRevert(GlobalParams.GlobalParamsInvalidInput.selector); + vm.expectRevert( + abi.encodeWithSelector( + GlobalParams.GlobalParamsInvalidInput.selector, + ProtocolErrors.GlobalParamsInvalidInput.ZERO_ADDRESS + ) + ); new ERC1967Proxy(address(zeroAdminImpl), initData); } From 9fd091019149149b8c2a2a918e8304e5507380bc Mon Sep 17 00:00:00 2001 From: rayedsikder Date: Wed, 1 Apr 2026 17:36:04 +0600 Subject: [PATCH 61/61] Update readme and add ImmuneFi Audit Report --- README.md | 2 +- ...udit-Report-OakNetwork-PaymentTreasury.pdf | Bin 0 -> 2012895 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 audits/ImmuneFi-Audit-Report-OakNetwork-PaymentTreasury.pdf diff --git a/README.md b/README.md index a63df3b..789c122 100644 --- a/README.md +++ b/README.md @@ -179,7 +179,7 @@ Before contributing, please read our detailed [Contributing Guidelines](./CONTRI ### Community -Join our community on [Discord](https://discord.gg/tnBhVxSDDS) for questions and discussions. +Join our community on [Discord](https://discord.gg/NnPKaB2Qdr) for questions and discussions. Read our [Code of Conduct](./CODE_OF_CONDUCT.md) to keep our community approachable and respectful. diff --git a/audits/ImmuneFi-Audit-Report-OakNetwork-PaymentTreasury.pdf b/audits/ImmuneFi-Audit-Report-OakNetwork-PaymentTreasury.pdf new file mode 100644 index 0000000000000000000000000000000000000000..76b0ed0435b9418c6b6195345a054b7c78898fe6 GIT binary patch literal 2012895 zcmeF(Rajh2w!kG4jxW@2V04yI;cMmaNk3s*}p3l}FRSU>>L#nsu&$PUpHs{Y;L zhvh~LziZ8#TOp!lTkTipOan|?Mr+7y!!DD!UDZCQ+_wQ~X_%{X5UrnST04N2gd5mRKw-()TeLuXXhhNoDYvHkGCWs z3lpoIuYWAVjnY=|UM|kJ`IVZ5KaGq_|7?h>I=*MDs(JV$X!vkLX$@9oU?)9Wdn}I|r{F*SLPmz&gQ>Yh>8*06{Of?xPVN^P4aEl%UFLGVCe4<9iZ}Ymo@6r15 zwSl;8vKQTULylm0a%Wh1;^cqtNZR+_F3)*giBw!TEpw+7yytI(bN}U&nTeO~VEuYU z538m{>2N9kg2H=#*v%egK&wpKH4QD&K;&wM5W~0KqwF#BS4sQY*il&?;jdADuRwA) z$F>j@k^!9%=4^t6mt3o>zVV)(R)X-i=Qm&dZpt4n-+1)MN5HeZ58bLL(f0_;uQu-9 zT7F;(ehT1xNb#HH#H{|%@gu1cG?p*b3s%C`d{aV2Ym3z=hWM5xp&--28naw(6`#_> z>@z9*;XpJCIpaHV6)g@GY7)X#KA!<$jfBvnERB=I`KZTo9v=a*0ev(dmh6nyEd^_q z0so^qc5k%(=>^%g;txgPl^&RGWuHDVs2J%v35yA;=JIKs?AiHS2u~-tr{s9>VAhvM z!l;n`&g??btjWA=@l&KulZ(*TM#Co{H>iHY=eXDz;EN zQ}*d9CX4Moh5G=PIs+XQk6L?I$uh-XH&0k+8i7UOmt-TNp<9JXRMf=d$5wIBIik2FPN)~h z&gZEQwNh#ng(p??D-KOOHY+sl-noMaDg5w1yvM)GLnuocu(z-}$ne$qtk1m3WVyx8GX*W*OVYDzqe=nA=_)j=WM! z7Bz$TAnKBUT?$J6`m&fzFQt670u^ZyGl7EdHi=Q0Yf6xmqmO{cB_4T1}3gg z`Btn%gi93FC1O8aZqn6??G)S9v%c~3%l^L4^2w~oJiauJgNK@Unub0?Ohq^TW#lA` zTI0gfkD4-$X#ipwcE)2AMP(VMv2H!v28+^%pRsI#Ln`v$F&Ut;EM3j+wO}}oeYNg= zx7_o2Y9)d5F)|OPC|x~VVs2neF5qr$0|9T?o8=*6-6E~Xtm`sRI&{m=$TdvnRg+$l zM8L2N_vie?AEly|T|!`#$FGz`xE?7|E&&CJmK@MMUks>9d&KkPvO62_yvy*sbt;g% zdW7=Q>i4R&WU*>-Qs+X*)9SfK+3;({m~GB{)7F_@!JE^^s#3v$dcO2D&=QeA9%{dL zSj7+PM9{vXGS7CP`gwsCOAL9Hlz)et>?Amx#edT}lg_}zu|^UVwpV%o>6U3^YZzUi z_WQk8(eeUO24=M(j=Y%Dj71Z-L~V_Bwn)Nx1A%j_Y_W%g?pp(?)UqBwTh0el7!K za`0H<84k~wBDcXxnFxK+$w5L*v}YfAVs8Y1TV8kt;*p&rPQk-7U^i zFv3Vo#5tI|wRet~F^+SrZlNI@-8_cM*L*O%?wN=33&ZLiJj|)_lO~qV5&ksyL_Ir} z^nUZtY7r8(VLq2Zg_CKgp@bZBk>;Sn!i_UgR65n5!|6#;Y*8(Dv1hVpM;pDo?QlQS8v)wxwd7s;p%$Wu=L;pUeW!l@FCZZg1a2e`xBaOLq7r zMZNBQ{aN_OyIx8{H;}f&8^Q?A3eAaEU{__D- z3xR6Nuv-e4%uRq?=7dKU>%8t4)_)GB&;L0{J~YKg=Tv6kcprqZeaJjzNJBCKO>T19 zf$bniT$Yu={4#)Os25Rtur6t095KwFn<8Dhp9Wn+9CJ&ZQ(nte!6R_no|qBg zHHaKg+iKND1x(hTJUn@D1K0MWv$ZH>h;0!+!k-^K4L5hyE;(%M%W0n*st$?}Ut}ec zqj8WUHc7jnn&p-zQFfOKL7w^06_F`dztveHW<D zuXN;oUw|HSeUO458ukg74>txe>Y$`|P@m&IYagNSwd@DQ*(cd~)~b8#eCpeb!q3^k zpFOE)MKF~V&v5!qUc(l(ObJYRXxU zzU=aZUxDZDEtfu3v+xcQczb>=wJt&$a2zq&XbTf}97lSVCk?aXW5?IbY9N%zTk!TB zTZjJZD5Jyqjjwjet0N7YMLTq7Os?h~-ychGeYx13=6|l3%$7}&NWMGSa!|v6vv-%t z_0*-VPSgJRvoxpq`llyn&$en4Z_5C0M|b;?kRR0aVZ?nnI#b)+-Qz+#gZU%N$)viB zDL+Htr``ot=c~|;E-oRGy1an1%W7Bb2w>wFi=+3Sa*+H|V#nX;rk;}P%Nzap;RW5M zqru!#@2Q9`Z9Ck<&FMZxJype3+8=!yI^#ch?`~g=Y^1~+9lb_XEIlE1a_dah%%=5d zLPbfH*dDxGC83vy2{l<3z!+qsAA^g;O1;%<^pE_&nrY7>|OtP@;R+nL1dISGqo}jaqtA|GC@vo zFtdO;xmoleKj`2JN%0}4AQ}DNE|mm5<_gw@^g~Pn%&2DO=?Z3)wuAIZ zC-$!XMq&ZOsTL))VMcR}>_@@H`0+4C~(x-n;OEQDGp3j0AC0W4S ze~(zf%+FnWKFJ1VX8wD~4u*8~`RsE8T8hTjW+txxlqk}6%wW#{yhz%P1S#O&1o;z~_wWgqIu!8*95No0VMiboZ~zPfFcSa;fC4}P zpa4(+C;$`y3IGLw0zd(v08juZ02BZU00n>oKmnitPyi?Z6aWeU1%LuT0iXa-04M+y z015yFfC4}Ppa4(+C;$`y3IGLw0zd(v08juZ02BZU00n>oKmnitPyi?Z6aWeU1%LuT z0iXa-04M+y015yFfC4}Ppy2<6g0$B>ub#gO2y`A`7Yg$dm59r6tt03KZ~zPfFcSa; zfC4}Ppa4(+C;$`y3IGLw0zd(v08juZ02BZU00n>oKmnitPyi?Z6aWeU1%LuT0iXa- z04M+y015yFfC4}Ppa4(+C;$`y3IGLw0zd(v08juZ02BZU00n>oKmnitPyi?Z6aWeU z1%LuT0iXa-04M+y015yFfC4}Ppy24Sz!yCM z;|zS=8K3}A04M+y015yFfC4}Ppa4(+C;$`y3IGLw0zd(v08juZ02BZU00n>oKmnit zPyi?Z6aWeU1%LuT0iXa-04M+y015yFfC4}Ppa4(+C;$`y3IGLw0zd(v08juZ02BZU z00n>oKmnitPyi?Z6#RcG2oijyzXO6oG_yB#adkE`vU@&qFt$cyW(6~WpAY!>z>I2M zj%Hv+Ek$E%GZR-ZqpF*+>py3t?TjoSPiR`1x>|yn**RIjj8bM+7M8AHHZCxuw7sjD zv!jEpk*gWl)!EGqkx|sa*1=iT(a6LM%*+94Uj@>Zypf9yn3?lG{}Qosbx|^N7Im<5 zbg(zGcLhV5ku$Tmcy68v@*+kFD_cmTh>Q}?t%{kMIGCD&1q2ZP_T3Zeco_->1cLuj zeanf$1I`Ya?U03me+3o_1VKRq2mk*cgbs@!^#5yDDhuQ0&sPh=|7-6L%+vq5Q6;2~ z1d_x5Mf_s>AIC3d4%YvQU)&rV|FZzb^}h{Z+}vDD%uN6L5O&mh?L*X;{)^UBLauax z+d>Y6*OTQk3I!Iz;NFdff_pIxGECg6{x-{9H6>F(URCSYf{|qEHP&>^Ex7WuI8j&B2yVrwfz0t^;*rZ+`C!eq3v=;*P*p%A~m=*4O$MW1f&{B-GP<%8Pu09c2?MO z;xmzOoW)B|&yP~o5WkYB%A+kQqZmL-N>5KpXDNUZxAMjcd4FnGrV#UcLg9&o>a~>2 z+vPFEi6ps`(=1BU?<26VN;ZX1`X*TH-uh-+>gG8ONCoMb@qkMWIQqgcaJ(kd5wbB5Ivm>f}6TpoI4kCISp|q@Jlb+}H03 z%JFNhz90f^=<$=?xPB6Tr*BOiU^+BK zFVK1Oo)be+hIJrqWyHO3Xl{y z!9lV6&xy3#GU=`C;H~^ZFe1 zNGkIv@<~W|IkCP9>m6|Pr5Tf^Jqh+3n1`zqg-sQ{?cK_dtcEhRQ%ip& z-*s9#a(~K@Q`6zJ`*EZA(fca=tRR93{Tm_o=LyQBi^wFDNxwaR{qKC>QwrRS4yO9f zb+XL|Vtb|Its~*>E#a+0k@%L@M_j^OLc-kJ+g!&xO!rN{rG(FZTzV_|gg`50PwuW@3PyyCiH7cdbfN~!PZn)hL^sGTl-39OWS7_DYj?#n*4rhDA}>5d zM5lw@>Fot<(US#)5x36UwrTn1W&K(v-+X=@Y@SI`qraa@%vpeLA?{o}-h-saVhV~9 zQG2y2H6L>RKGvL<6*AVfC7>5|+DSQn%>R%xL>%^l9sltW3T4kV@EUql$P&bcH#9j_ z`(ntIQ_sSFfzeiHe^hErZfw|*T5LY>oGr~8c^uwxKw5%nV?(MpulPhllIeFeS+JF~ zwJNDXoCoQqe(cSMTWGo{rrfgEcthicy~DWC`+pW?>jIFk{0U^@DbNY_S&o^1v@2sh z&|(E`H+5n+p$jii;k6&MxN`FSamwo(v~kpygQf9$EjppU_r6dpcC`ZSNbP< zX}{0i9C5e=8hPAY)$eNgZ}?#9!v^I=Via(7!Je&&3cV;PwkR@dwP1W~w<&*8AHQm= za?$p7mvApJP=cxvB2UgIX7wBhl$b;Gb8}r2HuZ>f*$f?s?zSZ={xQ;@Xx}GE>QSgV zLt0a{`9qan1Uh3#JmoOk`C6;qI!cgrHudYDZ|#Tno}hWSp?lbR<@hgImbh;JkDVA<=WD=LL4!Ws_s60FIaR=+hnS<+a_wC*1CEY zAPtL`Coj{f@n7Nav=N%fA~4ECAMJ|{OI~qtl4A^0p;<|*8?VySQw8^R0OEoDJt6B< z4NFZebc@VMmMZI@iF>8=X9AC)5L_ZCwhjU+IuVInKbbJ<0dsbY7W5zUC-P(jo?GjU z9KJHzYhSAj9V`r>rojhT^{S=bgm?nhJhuixIp6bx+IPuO%R(gdg`!xTg5P6WZCt>} z7kWL>DC}?53sg*yB^p^e!}Rv)ZX&fwDxtroG`w#)6i1sW5mUoIC%G|VTIyUBB8;NESbi2`&jk;RS7YrT1anKx{Z3R zzff_?d?WFq`6Zq>*FNj4B_b3@-CLV_?&!O5o^hJyyYb@NIy*HJ>*ZAjOP>NS<8xGH z{2XbP2wA_L2i{x~GVCrJ$A-AQdHjf$=MR{y8YUQQJY*VZi}MJPOmOxvayqri2k8fSi(o&JzrA6C-6??v zvFYE@|H`z@EY3D5YDNL>Ic}nrqdq!^NM)f|tlF ztNU=^J`^PUps%HDWb*#_NFhzZKO8D@eWJWXk8NoqnKsB7-`FoA>y+!e{Crf!C?+h( zGEPToSGrA`W3>em$yQo+jtKu%`*P%U_ApngbQ=~(qcupP zFstU<9^4g(r@?AFHknILj3b|fNiNXe56cXcs1b-!E3)~``qb+-g!qbuw2mu>o0d4+ zo*~k}UYEhf%)N8=QaIh8mdUw1-W?e0t(!N+sk16JBH?>p7y4j~9RBTuGObY8ay|)p zyC*DT_&lXD(b(s6Qz2QO>7KKESbF;9*5Id57?AL87M@bcOE%xooIfVK)eT6ZLE-FC z^O*McyakD)R5X`~2Wib~yC)eWTtgFlTX2CAEJiYfQ)hX#1K%hcgzi!{#bIxw+lUv9 zd};4F%MtTbw%E#>3=P@>A(Q!AAWahX`@fS}UmNP+Ofl@wxFBpFVXq#Mq)eR+lqDHW zgzvAccazt79AZdc88!P$k|_7&C|H_w1y;B%0>7 z_qhb0yZ7i7e{i7g!k zmub?Dw4cw!r7LupO6-tRVy+KNttXsW{@hvK9D~WROpU;TcE@CT6%&e-=k(eP1Kdiko1n=)E z4KjsxvkpN&k81zGh#U&$?F*zAc-Lt?ed~{GfzBteTGc;UOZp}?b4p2#RbMHuT#UeL zxX9X%#9Pkg|8eql3fFPlmWaiAY47v!#Ui2+91Cj1rlnDhC z8(XHr(3?ydJ!3rsySYDcN+iP;xx18WcQ@KtNvfp+D5Y(?l}t|7kuS6PeJ56xnuAy} z!ZzJ4mm=P>xaEfXC~CjxJXXJN+h!v;Fv7v7kNo6s^AdydNvg05R`n zkUrEQ-f)$UNz-dhp(`}rA_R4UZ;k~pLbagrbND*@7h^(_43M=1cr+{QhOANh$ zGXU%A0C_O!qL{unlNLD>#$3|I@c zSZ}fny&65|Taq0HEuPy||NW<2eltB{zh2NW^<=fYT+nSEBq-l1$$3nusZs) ze`K7-`JrT$ZIBIgC4t{upG$^)p&THxoa)4H$}g!JreKJbN~_G!9>*yTr(9>rfOif) zMEkU4=!?sE_c0@{tho$ns1R%Qy52sONI`lZE14n)l%ccMs$=%myegw9qI2tn+ZTF?l@BRuri69wK766O z;Z$KW3H){%ZOo|lHrVPKN#cr@pF{WL z&;*9WX7xKpo!>2q>+@`>RExt{S~rjht$X7(EYtrtk7O(W8PgI?hC00T{t4|nLdJ_9 zBC#VZt7RzcLy_D1v5k%uGY}3FVdt|sPMx@waAqhMv?Us%%6&3%xlFD8@y)l=4_&-( zJTm%aDxAV~)o!N=wB}tq*o04|21#jh!#SCRd=ko2j)$E{6AkH2qSRR-!k zhX3$l;q+I?*O3K2{bbwVz-pf~`Nlrqh_!iEdP`YW)(QI3z%T`_=Dnn4w{JCbSa~>g ze-iv;szfJ$W?uVZBu?12sDnE;m;3t-&fy40eBLEa(tmozh_(LvbwRbXS&cHTWUpnF zCwuLWbm$8;NG*R+x1sgz?~1(UMimJEh7V0B>JMo$UztG+*BcyY%ViJJPaJY;^kb^> zZ{*v81e)b^6BC5@qg_XFiL&|WCe$|9rY~VNw=~}m`bDE6^3Thc1JP$p9rJ)eXR%s5^uKUz!yv+t_j zys5TqezYgYN(?y05RX7xBGKc=Cxd&PrL3aO=3I$y_N){=J^{3OT$?dH)j*L+r$a{}6MqMd)}55=LT5QqGw)nfSWd zI@CfDx7BY2F=BD{ruP+mdQe&;AY-=!x2OGf5j=X4B?6%*U8 zA5e&tqHQxVz)LhS7{Pqsv}16Sr0AB<@5bdh$tkfz6l>c5c~*x8aymXgHzR^vEnlx z)jAm6vcEqNMCf6MrUVZ>#$cxP?j|Z*B~SFLFh)St!x3HIF@W67pF`&i6dcNljKQJXBEFgEY=Q>@m*myFUqVtMTaTt;?8n4982WolNW-&lN-{nD|as|hsp1bip>_} z1+S)Ge1{=k7slc%1qDL&afvf<7#k8WygFYCRMiqwZ!!zXfLd6(9WdlJLTrJ9l-R9s z%JbC!rnmyM9n?#~SClJv1V0pD1ZJb&f>1=mRc2hK{Uz)yF%@Fs9uw<6I)aMm{v5<~KA@hSEA= z_#OEfAru4hJ~1$4MbW)X$4+G7EKl$#PaR&D3YM?j>wbA1%u;2e=6FOUzQ-JHv0V2g z9Mk1i9=edp!Q>_rR)MEcfTyPCWq(8eIt^}7n<3@^zK~##E|o6#uIuHLKV-D$B%ZG| zDkPz_L)AbW!uT5$AiFW9U*fvnQpY5!y!uHXoK~He{ZTS+pkcI>-bh&X={CbzhL&t} z{V2mh|FEGjnhpHs$P!Yo)4WalmKXI0!@H~JEZ}|ELLFhd)pyUu)hlVP6?*~09Z#e& zLhgy~GefqP`t#tRO?E_uo+xX5eDq=I#isU9xJO>T4HfI(GLDOCN8Vc_-5*89qe*)? z4_-%BsK%wuMLt+S7BR@?C1f90oc*iZzgZ@s1}Ix^7#G1TaKp7Qn(k)c;d{IDFNHTD<}E13aUi}h>D1We(}ZF6u#xWWCxQp+H%RAn*k z@{segtc%`|vtLuNEF7Ek{w9i`W2%1+$-RaD*wdE-|5vY@ZI|AT@7=?<3;Ov;s*>|U zg4ueM#Ou^o$QTLu6XqmcMcI*6sB(vuWmr;O$~a?TLji(^p~3R#}`SCPX@scPKOD8 zG*zjZ%_+MXtj@#x^HM3%MAwM#F@;6MCTOhfxfuKsR_1iVJjE6&y^W2H9y9;d5aP$Gy7m)NL0(zkeJ%W#dnb($D25cL zZm~K~Tr!bNs(-4}*4ReJT<7j(LKuSRWH50E+-@rZ(!z2-I|frIIMY^)6i&=s@Le?H|m(QG2NeyB@w^3OZ=Yovq6`p=sIRR=e- zpHH5s_io<`x-+t*FycwAJ?x{$aH!R(pCsEaM-=Y07;WC9!1`F#1T(|pG(M+Up0KqW z|FWm03JkKO(LY;Mnr+?dXV+ct=Ci~Uy6O(l8uurrFd4_mfkjbuP$Yord|ebxW@P4z zx3Cq@25pZt-+BStNI0?@jqojlI;pNxFxHyfw7k>NHDE_nXJm;fc zO44*ue`hI^EMlG}ofAu5%u1cXTV*1IB7P`yOv0MUl{>4ljM+&eK{{}F^g|gr+qyZ2 zSmN1Wj`ZsX`lV~(ynV@)!D~LvxP7FVPs?xPs3&ragfhMDKqGkB^4Osjtgt)J>FSPI z{a3kv)74Dnz)fc9(_=@Pl+C%E{!@@$3uf6m842Flb#A2huqp3?yBnaMGf1zl= zCCa-V?DV!jnoih)tcdDG6{pKUt%DKbFcf6983~dx)c(&FDC8c;XHd+jBkvLvZXe;5 zEGDM9Vu*!9>wBjARTRB~nPTZIFQ~XiO{1XMfFsk$K=bZeWd@4ZkzsDeEQJbjrU)LA zgA_^Oba?3cU%+aiU)f~{C33l)Q?yxXOP~qHhvAWQB)-L|zQsXtG9hE4K=h;$%9Ha? z@Qg+t-8n#m8NyXvtB0g=$MyY#3WNV{%Zfr7H?Ijs)V&yAaY+_H%hMa+TVXzd0?U+fqB*H1>VeTHArWmKp7fBGx}Ox~n}h%h_(CP*92YDkgzm=xVRjLV!f4 zp#A6Esg(l~VL_^pG#?~UsK8gXxpb5z7nH6Uh>Uy(zWWoHGPA!d8xjgq%(08lu*gjm zwnzd?yoTP^P9s@VxE7uWv~o^#OS`A&nH5P;L+QRCdPpf{QT)^ZS)1l2$QT(tK{i=y zyP<(1ccyPf$r$zBPBp1wGGu%xB4H1HF^?K9sU{q6|s z%WsllK5Nbf+ZL#ol)~aAzQWR`03{FCe71eG^JjilKpAJ6V1VAeWGFpIChLH>?nAWS zngf6SNCRmWDdQY>XXRQ2(JxTpSpnP%>~xQlbySIdtX6;9%jne->mM_ap??Rt3`i}( z+GmhR^L$5m4I2x*Y!Z7v1`kzN#Z8lAfvl75m%20%z=1XVU2)rLnc@aENdptdhaf`! ze1U7H|GSZ5#!kUJAVhs3-0x(#1UA$$u1|G;>j zY=v)!QlGX!HXg40i?D@7K$Z~&jH{fbx{&)#(+lp(n8?h1!@P+1lgNso1+I*Nx%V-c z`{+D{yhHCKRm)F)w|N!#g3*3xp{BSH6E!!6T|bVwT7aJp1q{$gdXQ zTN!L@!Q=MH&>~=n9J5qSm*-ORq%|W3-PIl}|^+_H@+ItQ-dAPb#7NqnJ z@1;h#f_x3uI~>A&_ZlZ-Gl_T$bH(7680d~Tq;&&NLW381=(sXzV<+O_f@5(ecsc^5 z?C{W_5xI>}@QMKRuPA$cHol&T1lOrf%gv}%tFEIoZ8gJ|1F6e(apLRv&M;H?PM0+& z$d2bUD^vUi>AB4hC+JS*8W;N$vfhNvc^hi}dDyETZ)Q-%HyTc2|bU?i1M#4Q)E_v2eE|WTBddTeYYazw49~LDk9z_Zt z{r1DKuHaOl#GWEt-B>|LE-tbm(}I4nL7xkVjSN||Fp#1%wq&=bluglE1OL~$;I_#( zD+U@6)6mDSJh&x_j<|EWY)CrcWoQw-q|I(Uy~mo-yn}L!HgvqYSw4gnKC~meQSzB% zX)7xZ2$F6T{8cK(?k!HfnNen@UfvbYt60T(P13)K#vhG9z9|jgR}xr~(3Xx)zK7{S zMC%(`)+-WcrWjDfq9M2U8gO;{TsAE&m_-tu7AHF66gJ^s45RVh9_OmT`0sr#38V=4 zuwAZ!V}(H0ArOgquI;~Z;R|g^Zyqg-DbMGibZVaCaaLgPYMGXs{12WHhf$SR6(|o` zTFHf`eX?z~x_Rd7ZusNEDx3+)%X@#4qbDCr_zKh@(I<47&zLN0;^XlCRO4^kdP;?HvgsU-$Eo9v7aHf9g(vD?Fq%g zYbRBAoP~j~0TSKH-G3Rper0}zT=%Yq+jgN~z^o5LZ+zfkyJ1dbs;+O;);`ydgFAOF zT&wXdsez0BN~6dmjWPPFM@!h&$pF@zkNo}9e5eqE$HRa6uM(5;iCI| zQ2Ka&hcCK@>(;;Iy_Dp+3_oP|VX)*NskR?#s60y((WqBMq9v*dMk}(-CN+?2&!(HR zF?ycMMn5TOQT`2YWzc;1*ylq^q`i55KeQ7ri2^l5ppNHVnH&VON9)*r&WT+m94oPG z%F&hbUa6n%ZpUSdF?|7l*tDYdlsdo0zk2Yn#M9lI{^=ZM@JLJbfS$Ab*&W|YU27Vf zfFt>^!B(T`vSkuEmorvUgibPA*u^>cLt`DkSRJliAK6_fpJ`yIx2aqu5zE}#~~f6O3| zc@?)kybEa@kOEUJn|Kv+aWpyU2o=8Em>S@>aC&blT3MnfTDT3_raPeuIzCF-7WwWp z3)wA2C`9*JE#Hav@7dF@SfsJEYgrhimFH`W9>?$E;Nfyi-`avDp@h+(3eGB1Rg&-t z3S%T39G9hh?Ka*;T9~4h`v9BlJE0eO96)mW@)4w!RozvdEDtM%Dp`^}X5ePbyiwy}yU z{<5etV?}M#kX)ZOn1NzOA66ssu)jArQtonHsq1fe`N5=IgE;D(^2elfT-{I}as;#l z+u#UXzf`pMQ9bDSCMSp{0Xyh#?xmj!y%+5CAvgTcNaZ%AmW7v|^mwQ@FMG-%Q96{t zpg#QRAeu?lA|A?)$eNfkRXU|}aGDKO_*}V$4wHAdgoRD8`}S4(?YD=6h}&u0iL0jp zho}D4Rz*j>l$nh}pXvKE?4P21ibXGEQbpCg$m&Bhb-X49WhwNHdjCuZ?`@IeQhKdz zHwIrI1xKZJ;}Y75y$aHlY7q%_dEFPuXWpOzf4DeHk) z&Y%;EI+uBGC;xDDCtxEVS6?~1GHznCS2N?LW%Iq_a`{`Yf~-mA*Q>hqXah_wlerpw zzf-%*iOb1^pBs^7u5Z6^C6sb)tG{NUy5Lr*2t3>rGkxsQVMi)mf|Sz=dNqmv%tJ_> zflLFw?y`)J&wYOYvV1!EGAtdykyrdis$YBAe7->J{;4+dO%*(@BCjt|n`xbw@k@NK z-Y7a;gOv+q>aC>VW)?OMDbG5UCY*1zFDD)ezadpLFO$4%_Mi>c>-~X6W&utD)rmaN zq(;E|6NKm0TzodkkV@S?)fiY`Q%6;HjwpDkfrnvba2kOj^1lDXI*x~Ta_2_tf&z|} z*xw#i*q~^2!Ipc;n0wBW`)J(_o={3}#SzP=wFX*DTwA&c=hcun%lU%F{Y1MYMmy5) zKOK6k=G^R-T-j{70eu>tBi;hrG_l_qUFTxi)6u30Q907$*cTN!ycOzsWf*khB%NPp z7Q2m9_6qAdEG=*wIz%q&+*R1|r_2c0xKvdX&(19EcGMJ)EiBks@!C;eA><#`EoFV# zZjyyDYEt+ye>_+Zn^CBI;=3{!rQbu{;3zi|p1_=;&Yj!O!CKbpd^|RZ0HL3FdSvtO zUP~+u(+YOd%hdSYtq%q-b^D;`={M6M`vZB|8V<<=+sZWQL6wh~LcdGK5J(9|Uf>&t zP4X*uIAvmuhrOi{Lgx1E&f_=~k7os25Wfra^*{RcN6}%3eB|yj@wj^JskpRQquwWc zkUZe-1AbU8S=Ug@Ve^3s!4k~_LH$GX#rbL%v+WhHtV^C&`?WToIcn2Fvfot*Gm zg3Ih5MLjH^*7@;|$vB6?XOWM+3llQLFF9M)pWw+I6}UEx=k57XZ3yNs&P<4jM`m(# zp{NwQDZjaTVmK#CPrhcaxKF5hGzl0})VusO&k(D_5IfI^sug$5HHOm6@N)r;SjnEN zWZq-NwWQxOzhBL@SIt$;!#K6>{&RkFx9@ghMcL3)x?^;a?b#cjfZ=8I>pE1g=9kNU zPLhhlD?d%_NUGhgwS9al^q6HmzO!p=9toJxy3zhvz@{+!W^dK}mY>vOzvdl1$!R&N zSn_VjhbgFSgj(l@i2gjp;UWso%v}cZMW@*3RVr2;ehBs7Rq7jb5haIx<{A_G$Brk8 zD##t1Bi_+La;yEZ95|GVylfSRqOG^0gPG=KnlK-BxqS;pXKqRjSKGf=E?r&w_9&}S?U1&JesZ=+_ePT1{dp113OZIj znaX6(k(gRp-F5R%SiKkbKN5D`tKI8(kg6GMB=3l_5woIYJn)2Czm-xW$T01H3$@s3 zy{UIX$$%0o+LDlaNAP@iW+=|&?a_V0y1>2mxmFOk2lKubg|Q6uF3+*c zXMI^7NtL!LJ+wcI)h2A)1hR9g2sX~+Smmtjjj0PQL-YynRynL5uqBnV3v2pTICt$GeBce{(w&L4N4-ZWS%sp6oRNe? zM^@rWh_}!lm-K3LYhxEse;KSpRsh-n9wg=FtN^*0O!egv{~U=LfGGSCaZkx-urS=jS;n+p_{P}PSa+RF`7 zee6(u(std;y?w|v%BkN|YPHH0`a?F6qW$Fi!IZIHCQAxCxSzI=XLgp)>ybZ~E2(S-IB~T)Do- zX^+{Dx9ORbD{5_qd=pzrA@~;adg`@Kdd?3sdUXa>OJ{7TdcW_D`8})e))`Qu+Sm_* zV_QbkSZ8ct^W5C#7f@-?avHMef9lhyK)25hKusM2pO^#NdTMF@+ z@64PcV%O%ksb!BvK4&qJ)>=pDcmYC}SonLCV~0gSlJB@+AGZqo_lYa{x3_FD|3T&1 z49(Zv;I5pFn8otBevkc$28|)MJDB1HK^|RDtB84Gm+tVC@u#LEB%#-uGM?8kCnG7S!HE+;_u0T>08>il=R5RlH8QBDV3UsPr$a z`zodDsjmL6fUfyV>pN41l`pHcESgCQnYeFF6wk7aq#jfUBZ9<144%jmC)POgjF1L zR`~LtGSVXmT@Jx^dsYE`+F#%Dv%bJfNy$Mako`fEVhS~cub+;uovzJYT7**f#E3SV zK`V7G5opPP%IRa>Nu7Z%^c|PD6;~R1>Jgo|v0$Yp%H!$HtHRzk%Ht45gO46>3z;U3 zJ{n~Dearh6`U69vZsXqSKb)tlsNygjKE6MqLw43#exIMokMSo5DNS8odY{}E<` zx`Cb%CnIdV9k>?8>pP9T5$Ni|oJWQ$8fP!|%wN@+KB)3#3ke)AAbPrdL;1o@5cth)cQZorC@d+wbS9bYnh^cC-2 zIb96GYCY6!eHthGntaZsJ~N#Qj7tcvn zQS^ar{^JI=om1quz0b{!B7V0um5!;~psH~TGkQfugSNMl6*|OB`qukc1r$_xHy9n z(Ck#a^pC1?RxYJ!x&61%(Y^$26pK7a>NXX$*x4nmbu$#w7u)%^GDeaJdE$vo1)XvI0Z*rV7jF5+Zo1zY^?Wsf z1B1!#U?S!nPB>CA*HFJ}u-_dYaK&SuftV{X;2iFACStDPSRmdJ?m2BQ&KK5}`mZ*a zs%y0srJCZanvzm=$z@&fG2`i|wqR)vzamRz;T#3pb(=JMBiijc-bL!2wu3J#H~V~U zDZl`2Zq>)4%?&{@JPAa?U}$*VYxF8d&=}cn+jhcp|q(M-Y(m4pHLYu;d`YU6N&AbJT*y-ey0(@cpH{P~_Y|)vq#Fm~D$XV{j3}`BKlXd@}LnPM6KMVSS zW-y$=84|_0#b5y=#uj_GEv^whh`~$_- zn*MOA-!~fbq=D7WZFI_^*w4Zzlb>hJ4p!k!!o0CzdVE z2y(vuKr-ch7aNCsW3ZRST!S%pqTAEo?d$9I_I7*vdOZU)#e3a}9;~|t`&{vU*FeG_ zuMSmnORcr`@>XL@owlk%RaUGo35n};SqAUQ@CMcPeWs&_b%*u{yN_#5A5ot^Vm#+p zubMEP;wO&vgub-)=gJNY(B?`_Eb4p!qXdE1m^GfYj;)7%XG?;WHG!IH>(yFoMY;a+ z70snGLs5`}RUr+hr?HGg`Ur7RtIP_|6krNWrvQzfjYm4f-Y{Wwr>o>)I>rR${y0#JP!d0K zRckYsuguC^%WJ}fL5j6r9) zYxR1sN=2V3z;%SunxMF3*m672;uG}*-Ea(tNH<)KX@`!-Bw6hBB?>^X)k^Po17)9v zM*qWC{|#5=n7OpgRMu#&YIL>qd-{^z#8BSwfFGehlKr04fM+D0H_{U78jOq$`Cu%& zmhg`adaotC*RdWCUK|}_ATn>f&lAVSm?uGZ80dA!`<;VvSEANipP9bwg7rd^sjX61Q)Z~%B<)-!u0C!$ zeOh(#ta$#Ebb7z?$VPt4Y4w?-%2T`4hdtaHyE?2SV-jgI`I6GJkLQX44AACEO)SoQ zpzFiyoVw84j@`#R=Px_UYwgv9woDE6rs@(^(IM$bgQc?BT-Ri-ZZuamn2;)(%;2)x zW=l=86-%UgU>a6h$T~?amg+W3RlBva*;ZO+yKvOHzd%!<7ff&_r=B4b?ja8~XU~)# zYQff+0*guk{2WM}uw9dX-mpVS=6Icaksk`$xdospejaFmBixT%Ri^9}LQak`JNE%h z8__`w_PHM&dJr9^4s6L!BO{*dj6dh~!88Ly4DIUAKo5ToQ{E(nO~si}eU&L|)qt%r?&?l>28O(YN$=2*XE@oI?-A=2EE-BTM-$F{ojme%DZ~zda*;`9;&IxVfdyT)#y+yh+${(NuCpQ+h#Nd>(Nf)kUZD z=QoSnkE>4{QJz?<+TzRIkS82;sq#tWBl%a2h(fHZPZ5G`nllP8K$|mFv3N3q9|+tj z)LM;mm2=Cf;H4^WO{1;8)zZ{rZfdqPHX7?240W}}DwxcUNr&nzRbBR`E_-vky#c8e zd)n$-tT3F_wOYYtV7J;q3j-#%qNJmKGXeUeRHy`Mja&p>c& z0=_1J>)}Q!!Z_*79YHWC>`%ei&s~+j5A^;a&{L=0@KLbq`_8g&+6#$=i%$1U>v6I~ zFS#-y4jG09ODj(PAHF6pFS$6$%}Z`ha`D2t6^eDdN~ORvL{7;GT3(E(Odkf@z9{Is z7fpTBRkT&Itx>zRFoHY*Xrxg;fgrNeBcZcL?s2li{}X#pb6qTm&7{BaTm_NGzjGYK zA9kDpo&6&+^ebEnyVWKVb#>b3TCcvw%0aUYdh`DNF9!* z4o72$y|LZi*kNnvv^Dlv8#}E{UFOD4Q)9cSzSGjsX{qlp)pna2x{VE8#@ZfZZJ(*W z%UIoMtY|l0X)|ALwU*S`E}nPnU#AZnBprEJ_SDR>jZ6Wiz@kyW%xiAA&iy{v8y58B zsWOQzL;?+g%XCUL$CEK=KlRta@bOc3wLNF0GCNzDnbU7PgfI?tYTyAmk^^`R-R}p{ z6pSx$jzZ7;lZEc$NN1@gC6(=B6Du;WO=UDPA2j{+B{65l`IPj)L&?AACH@fT{TuL{ zOedZCwxeQ;LUYY_`g^V_(Af-G&|pYK)DG(37#{hJuXT%La}qRD0nmVH0Z!btQrafy z5zzy__)3MK;sv81ec#&vP8>8J-=)*k7dl`CDjk(01{JbTIDg9&sg7?s(EWkn$#oeTAwR{=>2`ZzVr6N_0r}Yy8UJL(gt&Ny|KE~RC->2;exIZ zbaq~Q@s#e&aq0LO<*5R3gFAPlOV|-q?Q{vNL~eW#B5fjc@w@`D{ob?!4A9=R;*0eA z@H>D$j@D}Q?g||(3D(xyTkFkDHRjq1V|lf)vf5JFU?D8lVy$np)^}JM8mzT7#+pV` zO{1~8-QI)*K*K1raXK4kw3-$&Vz+X@QP&NRM?+P${%W(evddQ2X{+n9R`;80V&>XD zTV1cUrpH>{Ypv=um9`r$cNs2sSg({jPVct7Z5H(tjvwsDYLT{1R_sNt0Iqzyq|3uk z0feB>Y_J8U2a_ZPEM_uAEdjJzSU~VZ-JioLv$B+#S&iCV2rltySRPe0jCc;jf`(CP z#FGt-CXd6KD?BpefHQHzaXORBOA+i5x4;Q5!)_yYB6G;+lMoqA2(wStNtDG@vtdUt zR~cQQEKsQ4wO^DAHBr)+tV(*4Yp~D$SD@>Cf7?z()aR5gUghLOV490pu2V>dRwy@d zY6&wtP)5L$0V}8evA6C{s3m6JyL$QZPr}1P&NDhS^2PMGZO||BOB%MN~() zJ;IN7+5;BvPXQTlA@0`&P~B*>e+u@;j3;*rTk8FlV}XH`Cz0|DrabW^%xB)AVPA5{ zmxPz&pf5G(PsRNsh=)JmgUjMLnh{?||24vB7=7lyCIi~Ys#~_D=AQi6HSc>V@2w&4 zXg`LSx%&HD1Bl$%4`Z2|(wTP{K^*~TeZ}X_E8W_zv)Z%Tc@;5ZOnp!ac z#8^{fs;IJ5l;|%N>52-qMHjS%XEo6Tk|8Y^wK8_+(_hScete}^%}<(=l)_(WtpR{(o$b-si`oRSDDLet<}x8 zI;0j`U8}vmg?KR5wOJclosA`i%Wd#%v^B_F)=s<}k(%0EjaAMo=S`=MD);RXc5G8@ z-6`xis5#K&scp2?)R-$u4J8Lu2ewJu%1wn8hV!-N%U$NG9&=5PrMk~n-Dj!kF;#Zy zOFMLzJIojBT!%LsLOM~yljn*^aCDG=z1VNq{Ah42mrQ|~P+pF9;YucOaK{zODt zfQuunV?X!QxN=sgv$McxnvATk+0Okb*oVHo+}r<0XqfiyNC%Jh>KD;GXi#7}kfDqQ ziQwZWL+c|1H{DThc)L8}tWXSZQ5g2FFzpj;$9Ov})T`!}0@~QU=;#G07!lPTQRC({ z9$sbV1uM_{Iq?*4I+d&2s!$;azL={3qXE!1seFG9_J0!Ux)({*t2X>482fFY+e0k8 z&-;4h1_nG+a2{S)Vcg*t&Ey?>Q3Yr(MaEdpC+U9|?4xwnH)uL{h~LocuXrynanq9; zb0ZV$(!!F)E@>lo;?^>$f1+pVqb zmey8NLzAht-c(sw}v%az3R73Di?mz z#*5C{z}!}V0ovTIpZSEepzzYl92SiEIu5xZTAGlm@sjsv)R9S0ktu)~Re(g#1(MJ81M&s2sTV=nye!yAR zZ>#GAubFBvPOV2@(qlSPWZ4?fS_FlXdhE+TU-MCXmS?5_Q(z_)AY*wDBZTAsGuRFn z$Des>tl3LdnHk#b9Cb!cwPwqma0-?e3>3N-O@8Qa{aXn0RiR7&s=fL*j3+Pqb#h6` z@|i4yPl=1;U1~v-f#qetaas&~#S>D>9z7>ScI2A&EH@Ub!|RuevWe{#&kS*Jo_pc3 zZ#hb0mV-AeC%Y{N9h_tm1Ovxoe(Ixw@vK6>MWIv!(1;O@OfP*v6S)&fd>ZO{*LnHp zp1KDSIAM;iBNJ7>#O+DG7jq?s&G({-Z+mL-#DU(RXYxv!zvrU3iUs$!#(~-KP+1B6 z$uiC1PW$DrhZFDmhOWDZZh8_o-NPe+;Y2V#>`M*%MhKmO(flI_#)vcyWr49F;1~ro zj61{VGbAt?+33637a8_s@Eda0cDV+I0@o?lA2jh$PQYzju%_ z8Ul$7_PF{x9Gz{B_BLyKtAzksyQQJYTHRo+!XS~W`qE-uaj~JKNJjwexbnz(_1Tlg z3l=e`luU>aik~t`F!E?(1W6xSSLbitE$o~#KwH@LI}4>F52SG6lflR$uPv}|I1?%? zbAia}s?BxavMO^`wV|@nSR+UFpb;A7(2Ix@QrB*)@5J~rdqbD4xyRnr>uBzAGTC%o+{Fv>G#$5VJZ__L$9Tw&)V2;sf$}m{@qzV;yb<0U=tCDn7E_k z7RFvo0j9trSAZazN)$c_bfXXdb8nqBXPG7|N0X7Q&dOG2=Dg!5#@MCL^Aiv9F`B6- zY1;qSyn#gmXfkR|E@`Qs4ySY<02<*qVoIBP{-1QN>d~`&!Surm%i*hrE#%(z5}daHe+g(5AYvz1@}lN# zwGTD*OLudf{$#uPLfqN()xhw(zW5Dy{9W(R_2}qP^`5ps3uc!dM!-ftiP=b98ONav z6ecGC+V~2wozdjKHsre%4_)tB6&r{G*=``HNZdCv;6s3s6qfx+UaSxIlZ18f8ih4C zx-kiOLc#&E$JN*F=7O+siD)1L1&E}*2ZpYLmv&;*kx<# zv9Ust}FiXJ|BkGCc3@xZXg&5PD|!<#6%%&u2{FX zzsuL(<%;(>@x%!api*7V_8vE8cpM&Z^kQ`F3D=1YE7rEbh-Pm^!guxBoBHgH{jQdj zqvl7RrWW6hb!LZFL`;7A;BmfH0n0B_fGIFj3XmTGjyLf9Z-W4|)UW+@?jZMCWq)nac>HQA{J#L%%xv%;*`w zVk4*df^7<8k8UrrcX*`*TWD>*QdZ@X;ygezSXyDA`IWcDBmfEEv7t~2yub+>p0g=& z%i)z|!ZO~-ao_jWUUytFD?}A9sX5UjspxY<;{Eu-ZJW656O$QvXbLAv>fu74K;lvA zqJBXHXaXnZkmR`GJoQO9^~b zuMYvxFsuw_GT$gxh;@v{X(Uhu9&Pw%OWS?ai&W<_=3+qpNYNw585f z-(+g6GE`O>D@yfOF6)a*w1tI+!V9W%=XAwnqH44(xHIvZ0^R2Ixd-gZFq!0>z2>$8 z4AACw{mi@EfoKGS%CpsT?1a1Qtm(>SOIf9*s>)PXW2kD-SJm6=8lANl%xCxOcJ9@0 zIb_&VZok}St!=Ycw>hhOT@7(}bIjF%upWK3ramy5y`#t8-s5QRc6RhSI(yvR9f9`V z0OHUNcN0KE8U&_cR>vOCV7DjU;leZ`@m}9xk9UY9Pol@0?Dh{`wpN{07q@sjJA*@Y z_9fmrv1vd?N@6w z8({E~>GDcgno-*s4^xMZzQ;maZi#BY~gm{A_HDwNzv>E_D=@MMlwhZqt(dtXRw{62K*x=0wegJLh>ufhdR z{Fz}l_n7l{J1?FwR21p1mRc&yEtM6<${J&Bt+Be;UcA=0(U@!HmPlNdN|~kCWf@lS zYqkm7HgIpR;a6>zw(QsM-lN-b+I*_YRnqFN>vp&FIa_1S&R$1Xud}Pq6@y)@&o$KR z9qu7?Mp6#}w836)q89;?NW!NHvV(7^+lL*1X{lHsRpaeAWxi73=orlVO27YFjEv7s z!HWRFkzilza`tvRd%A7yUFPOqb93C*_MW>fX+Pg!-CLk{=p_vvH<71plXtfTT$!wB zOo7F%fP9(LZXD?na~Qe7bJu+5FctNkNNRVk%aF57m$hO~uIq>H;vcxKo)rSsnzujj zHPazWptBdIgT-?QjT15=V=QGNXf-Ez7Uoef)LC)$X(95Lym*{K1;>VfW|X{S7Nc&B*M|cjvKyebWbkG(?`A6R zRuU_<2^4r3r2tZAS#I;GmUyCb#_1;@Jli3(f85%t+(`_(Q-JEgO> zc1KH_y`=?!hM?A#wpwr9KIM)!cWaZmq1I4|@gtQ6#7VnSq9=@YNn3PIRk%U7hv)Ga zKnApp1v$Ict~d}>ufd>u+6Gt)nWL8i1GG6>G4m{2 z%PkdUmWoO%}7$|Ha0m?`ko=n7i<|C<( zn9|_Ro$B|G#_~q{0;7H2v6y$Hk9raGVHOfH8aIjIY%%vh+|?I%^!3@gI*iSorlui# zebQDMx1MRW?cZhy%5%`jQAF4;+B|EaEW1pB=T?C9X-RjOvkA(zCW{~_MLxI7zVAUa ziP@}SN1E*ba258eNKxqZGGs0*{(|JX{ zd19rey^(jVmrnEkcJt2fI4fvYXJB3coLL4m#Pk22yWGkNI-Wy#5G^NQ7#b1*G=&1N zHo<7Hb`bAJIN8IphOqdu-HW#0l~Y^sqwqz>O$S7qi%hnT$BERAM$BaFHJt)b40F({ zzwN2|B-Hs6e|?o<&o}a}e%*Gp-d%FReySr_c|^DSlB+1OIyIDsnai%F{MTVSLrMbB z@~$OA*Wrbj0H%#Y8Mutl*#w%slf+SZw^AXpf?)f^cJ`3b0BC?RI@`58=QWx3T86b@ z!fTjk4K9?v>+#U&c}q!)rzYlTX}8H1w3b#!69F`9dyT7lmulB0_11mLeV1*;RhIHf zLwT95^s4^y7478`b;$+Qr9HY68quU651Q0@>dm2?teZdQR zO{e#2Pi#`|UN3D83+qF|x>eHFx7E9L=?EkR`^l z5kMQEL6ZjJo>;;Wk2~W1wpgdRsn^;Vw>2i5HA!2^H{7LHom(6_vxpG`EPlv*Z?Y`^ zOo3-8K%T$AYN2o{r98b}DM;wX^*HvCXpNDPqnu|o#}_I?cf+k;M4BE%`u?Bj<@@3G z{|+UoVTdu>v~(t87idMMGb)#CaGZU!BQbA9F#FZONx^$s^2<~;!B$^VqG#izjO`Tn z#?EVDJ`;@`Mw#&j3_auchm7_R&Uhrt~qoq`e zI|4|BHk4AACm)y#v8(O-Vt1GFmZ8rzNy#zV&qmrC&T z#zMHP0#9&eHW-y{rOar6ASOyl8 zZD$yph81EL^9}d<;OhuFgAonubR$^Imn60`%4iRl-jV*$=n4Iq)j+TV8Wyn?Wb;p&P-iwDEYxF93JW_W@asy=dzj@G9Sr(ZBFQNdkJCF+- zmp2@PcnM?B`W*-11&25f`*Xdf%w@KWoJ#e&&!c@`T!_Vl z8cklQWB=@K|GfT`3`WCr-gC)_hWfgP{Dem@@N4pxsQ-fL5{O6Q43Ohp#BU_08v8iV zy8p;Cd!ZA*@HH18AV1xe-JggIkGvoWE@)8_M7>g9Z{GQ#udPkHJ!UvI`G`(-Y`^FF5vI;O0&5t?Qn5M!dI>l71M`Zj1!3rI3O*MuNA-@@|cV-W>_OE7Mt$ z&>37D!EU!eXA{niH_23JgwAM8eoUH%u>536X1JDP^-lsCT_M3k;$SrY(13p!yMfUL zA|o5cjpuA9x^1oPwn;`q2*;LIytTHrTH9OfO%2|VV+kPShsD^ z9NMHjTxPE-)?TT!RaIIl{(tt~!@rH}y!U>WMeG2kq4(Y!dlQS;sop43U6e#oV(%n~ z4g%~{UDssoIL&tKI5&12=O%XS*s;CUY4`oS_pf<>XNFYS?p^IJr3LqBb~qdi4$cgK z^PS)G{GMUm@UZ^oZQYF#?a)Q@Woe$GTvmNrdA8qh`I2^MP%}EH9vRdPUsd0{qPTup zK6qJieNZuULy5r1JH6U7l~i-wG_$4~-7$`V*TjXE@#^WMGZnYOS|1`>I)b(9e!lJhYc<=$>J81V;!Fh9`Xly4utX)OYR4#{XR z459dNN0NPpQfO!*cndN#by87%U3ritfsjP;c^cE+MP9g*praH&bWFeQTlk$Xao2oB zP7>Ns?J67P`0n?1D zL*Ci_w1?NuNR>1qmI+IOW)REBa&?7hYAC5jOdSDnD~@$kuZDj}(vjX{G_0&8-5U+` zp%%qK)E-(S7LE|n7G{meM4KZ^U@W#B)1GK! z&orv~q_kGXYHYH0YuQ1Qq|sVhZ{wv#0SBRbSOgMxNrTr)JT86GfR&*t=M{sORM#)51}`ZGFDS2GQeL~PxN=@~A*iVD(H^;Po&APsbX$L`q9|yT z*g{pAgk?2G7!9WSJfoo$8Zidpv(E&*jKnmO7IQtNnmx;Cd_W@{lh)A)qano6zL~&n zu8Q;x$5a#3z7mL}%&~-JIc8ai@oxN46KwzIV}|i<^Q|8`=eAt~bp{JZW{ zGy4LvBaj_|_Zb1qT_hqJcVWKkn&fBf>#b!LZEj&z33XFh?WZLU2D50}SIn1?P6a^2 zY#cnoPwY|s3hU1oaQ-+__!Mw~ZWBED%=!-nZ4)9IDPX-nGSP7E-b9XJVC^;Y^&xFd zr^F)EFMEnE|G2?_{J=fX+gj3}&`_+FchQHDJ}?b#jdF^TOBl68Y7$GO5)Ku)@TGz! z4T_+sLkh<)eJit?b}d{U@q@BmkAI$8CEFyTa#n}1TU1Ve$2a_@KhebMiFsEx4ejxW z?XFJ^j3Z_}yIpaoOV5a42mbpj-qj4kAl>&ep1VQ<+M4^p8o$1RyfZ$s z5jeKTWst@Qf)Rs#p2ZT5wH4c1(!QFouO{v5NmN6_b~}l3j62eCC+eWBrtBN@_DB!c z8?w$V85iL=O_~`|jsUb7*g2ABn4B?8PU^-c^^+6&nQ`OPxOuAIb*=b-F2HoOsV}No zhn&{gxK>MPgH_aID`{}c8p!1)D6;P!rR?ut{0L+L?TbGLFKQ1EU_skdfkw@V0N3MU znvN;Xju1eDYBoHo9Uj%)8r9#N)C|vP?i^DcmlbNxtFNA;`{Da~L3VjScKI}S@f6p8 zMm}&#HgHxx&?mpprx-Y=Jbzhv`I>6*g6*zG3{8-_|{MB`#Uwg@nAe< ziN(xdw8f~IZ>Gg%!~C*-B5l6?nq%~@+_%r_tK>B9Qf5W87xf~}_B%TQA2kA)6B9@D zAEOQ$&n#avUU*Rp{gkd3932q^u83z6lNCmQnLi)GPxgFh^U;0u<#rE$zf#iS05uO^T zCxgb1u38;MVdl21ePF}j4|^iSR4PN^670+8g)1DZrlOV7xIjS5$z z(t1d%RWta@UZCT<=#0OJA@uq=(}1So4S(dv?imZE#OC+g@uM#Jm-p|xfua(LjA1-d z&9|+?xCjSi4auh`etJ?Y!78)KG{MdK2p92ZO^ z&{4=l1D&C0^^9?9+AuKzK+}zn>&M3QqhtE98=f)A0a;Mm+OE2wn=a9A8N}J5$ zMq62vTiHONwnO%3zm7l_(Dv(@+3)?rcZf;usZ$-TWDnQKj#Vf+FX}Je(cHSJ85+^v z9?>Aa@%l~cm0OmpLzW9(soPAsE-5edahC?9*N)2vjw{X`XZwzGXHUq^o|K+GDL;Es z(RWgD4$D6Iz$L}iA>6z&4qeq>9ao+EQ{!MMRO+Gm-c-8LrQ!Y#!0J(oU4ICRNXN)5@TrfzF_X zc`_+~CgojCJ4iJ&?2xf?vHeX7*GoZGloy6f^snL=1)@0;ZXlNwI9`XvVpaej=u-U}%2RIz({BdT05mKy3BRvDjd}Plz0u$LQ?L6I zzww4JKNlwFpJsahvOo5*Lia>+`l4Pk=IS_K-?Cfhx&2aU9B zK-(BKoinl;gHq;EYV?c@DO3z8UX4sOp&|sKGoe@~F4k^^!^6n1pGqO5d? z4p~Iarm{w-w1Gj9hwP+fzh3ZJK-;fpX5aRUd?Cnb{XyN)Y6kLIcLmcKWVV;=xy`hA$hZl4b*9xJG4DjTyvxNV3+EcNfgwJ+(iZA;#}&Wy!EX7{DAag zpX}mU8S34iACO-dP+UU0BEK>xAO4!|_75Cm~T<4 zlt^g^cZ7vLfie`Q7BG#EV0;?Qz+z7|p2ZM3@OWcfu-SJa2s{(FuO#j1q!r~O*HhNj zn0X~?jz=wtgcX<;iJHSEIR_9 zWCZxPG^W1dzi^IWru|#r%CCLVw}LBgm#49Or#$&idF=JT>T70rO02&fSo$~jssFF) z`kVeC%=Y=o`4_JZeNo8sah{iF*nKfXU??E=J^fjzW-0Z_ubKw`*&7cjyZ+6$@^N0s z`|iVE1IV`9__pO%O^L$IsB{#klQ3F}hL@v?$Y+d{Vq_F&Q)spLO@atVFd9j0<|OoM z_VGWrPv~j(m;TfrDsG&R1z3jTq?}PIH**R(D@X7K&2TizTM<tn_Z(l}D8JXiw2yjc)9`O}k$TodJ|mJD zEEy5dNMafhwFra#8}`vd?4jGHQF!&Iojd$)>sOt(?Tnr|P{QPvNeie}S!>*riQCec zjl}J#gkvRPUx|5Ej_Z1^nJ+9G7XfIqpyUZEnVGDsWd&)m4Sn z)smKGNsEWBQBh`t#3?G^3J;X33biMcX9<)^FZU6*kjp@`i^|Ja)K_k(FU;wNZWxcA zV1l(G`z2$4)D}t_mlH-fD~6Wsi`R752lRuBo^aF!zx{O7x<=$P`zji$PVWNRQ-O{| zN)sBm?8$b4(U7sb5ppF%e%?0;pNiI%qy;ULvS#AeRNRz|8lwqQG-;2vh#}f1J$W4# zo&Jq2?Q!&HTYv76>B_IXD@)3bpSdFdx4lk2Uirvw^LWlXRl>dh2IGt9y8py7=#@x~ z6r-cy<;W@}tU@Bi%v>+ks9BXqse>yB;t~l&AQMe2p3-*ywR1`;SF~%qH`L8>ODp(J zkj->bNFmy*#@gH3EZ&+_lsIMeE(S$t`BU~0j1C$Xivn@plpn=pvVH?0Lnz63JX@ARm@1FZ>o3>XI zuKP*b&O^_`j5pOLJ+vIiYb>HismNg|GuvqU zfme!cV&6&qxgKdxo2;XjZS>QXPO;x4^61KpOd+QzR-V-!n>UZ)<0zz?pV!S#>kw`| zJFi=e*_SVvuIUPWO}d_$s-=W)BW7KT+1DZj(1dtJ-U-BsfJV~x04+`89)-kPUP0qC zaAB{sbyRb;MSm(;v!3?B3pbs#ry|z)q;V$XSXgl-S8TDkDTK0a)9y)pa>h*2xGoA` z$C!OKW0+bs+)3%KL=F8%RW)$r-sk5r+r8`vWJloRj{s(L6vbiMoG_h$Muutp5A0JA zM36uAb};oH6`}vBoO`Ey`Jdd&xFH`=9k%C{Iu8`b)m@m??;rZuu(0vzG66ES*++TQ`MI-E}GNPteW98 zwDhE`0#+pd=niig`%MxAC1S43V-_$?BG%A!ol<9FbX(@jYu2j|Ete}PwTxz@48?GA z)~s}^Rp>U-AvX=@l&E+^=#Dg8w7lV?F!9a;+LO0C#)YORB`w=FT_z`5e?4tEH>~QL zw=X7b@i_9$356{J%3?OYfzIrN(V}+pr-U_5GfS_GZVn?Pqgpc!ZS)#ol~ zk)DQFM?T7th-hPDy74>4XLm+<8iWF>IR%8%7qi z!_%f4@qs$3_w73P)}pt#vDzk1$q>7b%fSt##S9?7^;Npoz(bi0D`#H~|n zhN+a{R!V<0ZtQE4dNEEIFMKuf3;zH7_+=N_5y+0f3o-(`(-nTg4BG{mpNnU79dP-> ztos@hI9N&zab`^L{<9+TKNT~-^hOSq=!`i9hTK9;Zm}(|_!d{oPth?;7tHp*yx{XO z*pS2)evI8d+c6Z**InHy^yIH?qyOj*{hM!XUeWPW5(xK4bq{n#8uV7auo@U`?f2#B zV6n_zSXNU)`)HYol^JR2F`4Jr{?H%FW5{IuiF;Yi5GWJAH3+7`03F$CDz%rAzZF>d zui*6mRLs4GN@@)2;gq9>&Y0n7x4Nob;r@+(`M=6T%`!g%9g$r{8gUjzq@?ieL;feU z7v$ad8Fmxs$}vnpYWjs2g~+$!>QgtZCoh}(lb(3e8jahQ(4w|Qp3XvXdnm>OTEvF= zMhtWovqclm*rxm5mWxzCd*u4cw;R88LN+jAU-@R>D{=2q2YYCz`r$eOw6zShGw=P3 z5BB>zkjWsQ;nx-SCafL#JHwcM0MHVh z?uCs@iwJS#>1@F;vtXX=WxFTLqYHYtg^W+}A&wLJ@p0|Muz5;(z-FQ~xXv05PaCg9wbw^<{puoBVF~3_1}dmJdy&s7^1^AqIKMRim4cjC z^7C>F@^TAva}OMNrAQ;T_~nfUmB*XeQ;m}2jiST#lAfTb^^SfdYFM1tqYfj=eDI|h zL1%`!S;NANeretiUNS^Ug~$4}YFQ(lukUyEX9DYS$99zDlo2`ul<@(LnK*F^;T;_j z-^e$C&Uiq>ovZb@cm1||YODTUCU7s|xref7QR`~dnhxVm7d##VtK-(Wnev4oXEzj! z`*deleB+}veMZVQ<{L@rrV_@0bXfy5*#Iy(vlHX3)B#Vt6iqtEyZ$#!@RW>)_fj^RH9Bd8*GQQO2RWnKEfSM68oWe$cxc`r~J zu?`_Mt?`5ZLsuj9uW1n}i1uYy(}2A!&2&ngzx8kY+_yYtIP9ZqmIBiVl1W&@aa#z0 z209a#QF{pT8G;)T@ff#7GLBTj9^dh7-}5}U>wbh<)hnLNDdPoOaa9e|)kgJn&>i#M z*qZmjn)e*{30>#c{=iIVsaf#Hbo<>{HPfwU{cZpi&EmL!-Rc#mppdrd}3TFGd zv5UIv+yS$hs&v@ZD=wl7@(K$|rzqRr`-myP&bUCH>iuR3mOOKtV4>O@5{>DUCL zMeT@nBpGL*u-yVdZ=FF)gO>G=quq~64MSvG`Av}J1d6k^Ok-uW23~``j7kWdd_wzI|3hL z1c>6WJ6}PuU@?tJvW8*CR4s1>Gnjk-jeRVw>G_?Hgs#0A%q%N=y zK|LjXWaz`RoHqu1$rUsRPkmPh|@#n|6E7mO^YlCesuRIZfD zI8Gtu%$z(ZGuj!YlHy<>0#AMhMv)ZD;rob$-+!s+;k)sT6q_-f`v=$j_w2)CmXmeT zx;3PZ+9Gi)p|iMcAx0FmMLx0-3R);?Uxwv=f&f|)e)~J#`}aH#?|NSaf5j^{Mtuvn z+zaCfZw{`d{5u)Ynd|mC9Z*L@E+{EyZE-asM0{0~;#cUO_5=H7v$^jaLX3t? z*DtD0ERt!`1ORQ^FoO6-RIDD>-|m(lX9`SKNrS7b#SS_XA9RWi8M#JIqStd(3fjP5 zY^Z;Z3uE{4`xu{)*YWi>m-HqVJ3Z{$D8GS;> zSc?kE#KnrD0!eO8UMuGgYtP1&*TQJ3{t@K~AMMM}E6d3}@JdcDgtJ$21Ue(@MR{T; z6RhXD>nQ+QH|{}IG949kdnMCVO?BhBs;JIJx?|ijIb)oi2A%1rXQ1F4=14Qn&5}01 zU|0$n<4JR7$8&euJFP9&TWH-}E9c?ql>tCb}HEBddLwl^95pW}F8kTEG>qgSH zm9}ld7$gKQN81{5c=4wQq&Mt?%kmnU>@(T312Xtt81)YrH&n>qwGsn&^0l9oA zc0o3J+&%PBMFdCSV$V z<>k~Z{Atn9>C?(%#5xJr1kh6@Qm5!O(Z|ED1ocf}!`e(k-zxtPc<_+C9UkOUJUQRot zYWfrV?K9e1@-_bD1~h1kEW=o7<)7Jxzh}GiZOhdG&5)!+DBErDsorg| zm^~J=#b7TPF~^Yy7cwuP9_zAse$g}wMq4t>4eBmm)1C|I0cdat8J#eUfX+~;`mB7Q zNqL+rwmQVkuF_T_pNX5CWrti;w^h>UmDDOEM*cGpd5a7s%BIinyKlWLpzXU;vhO;C zF9?ZA;j5G#t)zPZXhcB+Pf5Bf6+MOd;{1YAu2d^3qSyn}nEpguH4s)^N-8g8)B`K} zOBZz~RK*&qYtB1sC^e}> zvYWo^DeqR?z8P~M-g}*IPoo(xs}Y|N;wSsI#A)7 zd z*g5@Ij*)RyLuH{6?Gx8vR`$@tS?u zAYoKAGp1?d9Yj}8alS3%z<*cFqx8cc%A?SBU$YK<&pC-eTo{Rr8;;|ckB|2F_+OG0 z%wh1_QIJ3*ll3b7xWV#W$E|OgF12unE||_|obi-39Np8-h=PXfGoYDcIqra=VkByh zB<-e9 z4-x1HK`m~}@U^Gc(%$WqYZZV75iKeBG&&Hh^a5{HL@Sy3Rytgk7s2c^@)6<(-LX9 zsv|)61QFjz_f*oom6Gmy#Sunq%FQj&6~m*WjV|Uo*#ER%g5Zrpyl#W|c zVclfRc5TXes*$zVP>z$b_K0bC%X;%LS1XsucR%s?&%S+hVzXVzj=+~=1fH6dLJcGK z31qe=VePa=L$i2$3aMs~2Ln5O&o%o-U==ZMzwoAx$SY*DR3W8qXXlMC_s{A5dVUZ=jxUpEV%mpz3)vJ=j_Yrf6Df_jIP$TM{D9z9Y`o!L{Eza`+rh=R0*U`33R?8- zVB*`3Q5h{G3fc!xkNM(gs7}ooIN4EkwS!Z!ltfNZJI21>`iM|_nsTh^&jI%kh>OTc zVA_wIGn>Y<|LR>t@xFd_6E5rzKK$d$|D{|Jk+-~9qT-|$rQ)2j>fd~+Z`lUFV!0HQ zRF6A`GY&X}pdj@;7%gsFB$;U7GT1gcmWg>I0W?(DiLJZVHe6dx9dM1~U*i>hGl8I~)E7>i{$_S+05!?zm1$tfGRCjTBm4@vNs@>69}KMoT)<3Fiv0 zqk++QKqJCg4DuPc49^?2MWVJS-+}0|WqH{W3R^-E0%!{Ww0Yws^3Fz0H~W;w7tQ07 z+Oa9^_?&k9w(<5sX=juEn2vUs6fOtT;wo#hm$leL&6ctzq@J;q)*v@aNi}l!&*dY&S%-8v1ahtcNQ#7Uy%i zGFLa--psYh#Il>pLrLZNnCg65b#X-5S1GP@a|dg<-WK|}hiS^mEwC}}IvU20uzzf? ze#~NQ=N_Q(Qrgqt21cWLs;MJBam!gv|Ezg-Mn5-gK%gV&jCh8S#5A7KrcE>BhDq4( zhYiUEL6IqVnoH@M>K3FCA)n|h@kDCrg%kh1hc z=d?DbKz1OvqKN&uC(i3B`w$|YXO{#(1AsiHv&UPWFQ)N_B}JcwpvuqaSw3Z-$r;}> z3E2fS=xBj;VSLc@w*w3Rx8lz4e1rFl11O*OW?&Wd8rIC0P|AS^v}dl__x^&5lZ4=c zwMfM@1ma3Kn(I|n-BdR>%FS!$%l}yseVY_dPyAP9zLxX=KiEIR#k)@pg zTGAe0bFHqz@x!^Eac-`8?r!+*ZJ;c*_g>n)y^4Bgq>*)OSqGr`prC=y?!pg*R5Y`# zfYFjJWVI(^wm2a&dy)h$+98|)&EVGfIK(j)bMRq}kk1?h%_6pN*t(1svMz-zi($)B z#Im?d6f{(+o}AMm2V}gBJ~&|=olxJIRFBRYMh~k_2B@Y0)oy2M405NOHMyBaM;YX^ zCQC_^gKd)2c4RgZ8ya%A3JXfks(1tHmkQ9xOM8)jvVis?pS{na?-CiM3TO`d>Fxm2 zSNLNysL&g+Q1yE zr;oasmfYMTH|?(laIsxgYUYT|*_G_;#R7O*t2Pr2$TDOzP=XJfSZ6}T`p#%tW?fYm;-~( zFzY@hw%JRH10|*2;?jP~zhORBE@BoH?Z5M{-PK<*94IlA6m*IWzw)K_x7PFAFil`3 zEFZT|i8&wia18!q=G~WoCUlR4IP$@bu-WIWLU=&qUlbIymEQ*vccceB1(FFx+b=w+ zw*oUKl;x0gKMtVbIwmt}!dd*ZT3A7*B!xst?uPo%+vTaZf-CQk3Vq?9y5~HMnG>_T zl{ymK@ZS1zeh1+T7^N~Oqg3W)W#6{k{+?~@o7OA$t(SeWx)t~?+T-A|sBJ!Gn~(1T znh@d`iQB_*0ni+YRaYkC%%q*GD-J{_uCICTuKVtT)Y8taRrgNXxs!5krrlfX05|^w z=xeLK`|xs1+S3W!3IHwTT3hh|(4dYXWHBDIMxz$gTw6wq@GWdb)?1jUW_$ykfe=Aw zF!_&ILt)UFb#d9c5VkDt0UFA}PS5Ga=kz0oxz=&}*r;-NN_S`2a@{XE*s45kDX4Iw zIJK;UWt0|~&naoLls1}+4_b>4+UQ0lXC#HuDOSO0IaY5@>zWCJcnau z0qr>q;>&voiI}k{D*fCs#5elso^tANC3Dm(J5*G_mE@~V$W9$EYwcDYE-7VwV$+iL z+=9G+QgtCv(&*>f8@Z#+pfjcys+pH-Igno*GtjC}@I+hSJpw`uQc@;*vRX)o?vzSzfbmWr91mt7nQ| zDXL~InaWhuc{lDvX6^<&Z-wfRyQGFhUFSy1eQ(q@J88SK9el9jeKqdcNw{`EXDR14 zPiG*q?F7NJO~Pw#Y=jZhPQn4t5Te8_=qICwD=|%9Tz4+68;A)_e<5KQS~m}!Q`Tu& zA&}tZy->2REIR`GdIT`1rL45{C*_l`2RFWMy`hxg_A!|gLydS`FKX`CW|* zS)srJvb&%D)U7mg;n0_mm zMs2k}wU4r5hJn!btUu&OJ;_V=cZ`&X(lD%zp^(nlH9a z6tqR6pxGA)purnNum^GQfCe4S5lgv}Y1c}|nI?edTw8Gg(00IO05mLxmT`g9pr-8* zaP!_@^=?5aOW4uUY1hW8XA7xk3F6Jj=ag9yHVHZlp#i}_X9UDZ1C&9tBV4u&u}s(j zF^$#*p3Wem%||Q?A@kgVaRwgyFa{aaUcI2ZFl8JWQC;s>o(_nbj_CURMJ*Ol4a^&T zOuJHMk}@iXwBAxuYbvcb6*odhGs%MZ_~RIrUg5SG{YIq&mG@pUKm&i$^b2f$k_EJv z?!)L)zaVmZ4tM9sJvx?FdKKMXsy7J#M$j2`xQacj5qol9DKIhqAlKR?ZG{I&(E*8{ zwautcPbe;S(udttQ=Rm16ML+dJ%Us+B$~mBzaYOX$kxHIv6jR%K9y_6%V+P3a)fP2 z6*!JYCR#V)HRx_kuV2(W;TWINPEV5HM$+K!h-9>R!~B9CuKS?@>vh)w?-kjl73=1z zCA|^2+onGT`^b})?)3`PM*~vrAY>6XN}wvDqmdOL+eXrPZ^<1$DL6W{7HLiS$i>U?2qZr#`S$M{kf>Ve_3-jVH%3) zhNI?7hjd;t<9k0xf=_+6vIoeHKz0N^bOgx98G$h9Wo}MZCDW>D83&U_IFRG(TZ~4N zKMM&Mh#uqTDA*!YkYZ@${je-8zNT&xg6ocmZDp_ImgVG><`!VfFTE>&Z5=^8ByxWs zUc4Dt1EvXkKKJ?memfu}LZJz-cW?cR0jS4%CBH&K4SAsZIGrImTzj404WWFU_soCS z#*buAJR_kq2xr6|L|7-a@OXMfe=^-=c4Kadedw%d;O^ZcHNz+NW?>I(rDWU+xKYEv(3Ox#-J*KnwJnl=h0rzM0 z9OskCx+v3+9g9El%zV{!Ic_*xuRWOY!J82k&=#WB**!pmJ;?{%dRaU_YErq$81D0i=bJ^66-vp&A}lAfEF^&hV-)& z#*sexsd?Sxf@b8F?tD3W=(>IMP}vDhq0cU^cbB%fsa6@IhQ*A5bJ>a;%q8_u(Cnqn zYSx91JsGQU$?G}FU{E;t+CaD}$ThZmo$;%Csk>z3?)Dew+Ijce>c#0fdYT2a7wU9< zE}bP=88G-Ivl^o;=wlBD*y9em*($25lpd+koDd(-iVEc###mCq$Y_&Ptd)yYow9~u zRsSG2a1ic}OlvE9w21+o@nRVOjX6|!Kpf-%Xx%lW!nF|G2zwBcfF`uZCLyp20ifYe z{BC4V1UgpJJpt-aC)c@P;sYItNeI%=rswptbNabOYv`0=z+W0Tu03{?IWnUgTQy}? z&1P2+4i|yZ`miw zj=*O*0tCH)U=oI7SQRS`$PB~k7LJmlUagd7)s(b`v8W}S6k6F6K}|$dG~y?MEDioH zEG538ZsJ9;&2EvU_?4XEoZOr)B0gY!vh6Z z5MmEP0B!fkLXow;_Db0RJb0W1meEy z9Ybc$*aIH&a`j)kCjZ{M(5$pmP|wJX!53~${jL}H>3=1|W0%SU411V%{o0rLv1jI0 z)5S&IsZPV;j5jI(TFg2ZxAP7mr1qHrXyG^yXrMDeK}$K32w6-zGOGYI_tu(c8u8fvZc`LU!$m_mg#O}j@B`~B&UpRuSIn;rmd`y z^~$On;j2${F+RRgkkWWSXi3C}yVl_l5^-&uP~X($S!R8)l=DI2N#5BL?F^Wfa-$JIgT#hq+yVJ)m2a74 z+9CR3eF4?<0r`?N<`uwg{dvJP+&J&a!K9v z2BzHpjkYpN@&A)soRbGYvlp;mv0k~(crg`+@#7nW4jyxvKrWAe{jiDsbA+bP_fP~t z_MTB#|H57`AuOJW2o@o*khc?g>U2Er=X+OnF^YdJ+yx!d-@K8pA8~N+wCi>~0`aXI#LH#Kq}+QUf_8xr(v*1F`Od4)yYF$3WOwS)iosH0}O( z-}+Cz^WQXInN=U_HJ(`Y3JThM%sQXg12ov|qXHVd906!(NoN8r?O91Wu#!r<*H+yE zpb;(;=nNEw1T?blLEIy@Z^xjWf#W>e86uzIK5!Cf20()`BPw6VkbP!Z2wUgE)_KyP zpxKtt!Zuzw+eI?~8iBH9!ez5z%S^~Jy=0zVGR`a;X2QDJ5#y~>(z7$B$sz6K8t%{) z!>!x8aYtFLuEb*z*E&iYJSB}*MGZqENLy{A8*GKG#*zkeQKOA&kRq^FOvxFol@7|p zptJX9c|^||r7B_SlEt&n`K^%!w9k3KUxcT_=Q;UUS2DVC#WAn!n3nbB<`v}R0-H(HJ27jIEnl~j>M((9mp-NRtNi)XU=ndXQXGEnBGPjd1u|w#dxI*4e5yaX?O;<1mmXR}WjP52X51VBSsG~y@%S&i=Y(T9%6j!c>6CW)Qn%#40= z#B#??RTzu3$5hA9$j{Qb-q;S$L9F*^b;%Lrf+a#j)i ztv~$>Z*pAQSt->bp$uvn!WN;c^(kwA6TI?faJf!u$210#112O&sBOG_Mlg*iXxNpx ztZsQD2t8$^waikQlUtILSDcgM7ExDqjyqfpFOiTk)`C{@@imt{x_Q^M|3&%r85|>s z^o1#C0$2f*b{mgrgquFb2=C(6-p)|IHos}Q@HgdS+qyIG@z~q`-a`qN3CAZLJD~_z7@2|L^t7~+A-XLtFLKq9`vLF%0i9vHo7MI!D%)k{ zYD)G|xA@2mnxGu{0w;j2{le$VI7nlIf=0E#G-**hps*d!UkFUBTYqsUM z4Hk~`N&8~bzKjI4gaZxrsgZp~THH=FFNkO>u2jkaKwDk&Y^`~rpz)E7U^Fk%(l-T0 z1EwLSG2?@>wy_FvjZhoz^sd1Ag9JB{ir7d!BSs%k(12YLUKGPRuawO#1KCKH8HBUB zkac$1G8+PynP-;4W#;Kc^Hj(*wPczK8>W`^(|wv_7xjHNbwg)lX9hJxL+Y^_s#R6w zw2Er%Wetw9dS`LHO;Jfxw30QEB4~xp#?pEV0v*fh6dWmhre_@GY`a{f{*X%xqnEvi zzK{{f0@@cc?EC&n@qVPtQkS1Q;*fRw-~v>p&CM;y$vsd|P*zsRP(=(~qR7uLDmuWr zWsYN9_a)hBDC`GShZ=P4&9Y;)6!5C8nrW+nf=0Jj$=c~Mg}9JuQ5>$LduvgLTBv$P zgS=q5&oAlrYPx-QJHi@C8XD?W6RnMuu4cMwQG$)__7&HR*d`{mbCWt^;ds$}jV)1~ z)Ezk|y>OQ8>*LOxX3w6Mo;%L<+*V&-HKsDA^?7edR=}3#9k^sT{B3V$+j@7+3P#&Z zIyPaX59^P(XDi{^N_y8JsO<$eK8|waS9n0<6Vr%82p$r(rDOJV%$CMV#F~g0CsUT8 z2++(x8gkHL`hkdkAOzbG!;K}wOw4fgyrLe)$mC-%dq;EMzX7rxe4$6+sriHm**jI7 zY1Vq=xT=-|f`Pe6YCOa7=p_@gHJs&?vQ`1x5Qde}$W5bkoK#9Q4d@p9^qDxo(bv?Z zQ1!q2RvXJqqMV#EC}^+bx{KK#x#s@PG4p$$;03We)qe^KoM@Fg7Z z=_3e_;-8nN!l&djQl%RG!EyF_f_1Y0kfOSsu~xEX4K33#tQ_PID=vYicE1>iC%kZv z6jvZ9Yu0e=^*|aIo|7~37d95;E9B|=eRzmKWlz0rpL!EKwe_W3#XA+@dHmO_0Hp8w ziY2IOl}YUs8&db+MEumd@Q;CgpYb6p@|v0DyS5>1B%W{sy86% z)RuY<6o^WSBu-s`DOQvgi1Ui_Bx1Q);b_+$J#9EsuBoADDZ@yEmP56&j#{d%if*lA zI_j8C7gKd0zl1B1Hp_eJKxd?N?BN)%nh`p~7JwUR{0b4*cnxk(YlC43d)QM}cSh4U zrk@?vPEToPri}B$*1=QKll_Xzr@3=yq2e)T&qz+6;rfnCIwFopN}o=7Hrv&`1^GGl zLe9=$s4iyAdVoIk&u75QG!@7C}=DtMw}yrGY<8nIEs_e*ptGn zSSn^%n)s9B1C6ES*mg(N2xa8A{r4O2OLP{@TfXjil%zY@#M-R0g9KIl--02&_k zOK)nJ@q@7b-Iw^f=_<08cohuUh0mNa@F1bW$8^S<>hq9DdcqSKJUq$4`By=n{TH6d z>wyev65<;ZXilIRq8zc#TZMqp98uUXCY*7Q8j6=C z-78qeV9e-D0@)Dy2yt!2g}k%OiaVXOCzFm8LL&LPW(3U$pn=X1$GA&jL?9Cw4XPP7 z@^Or0BN_>4w9YIcrjdj-PK9{wEMz8_wq%$LquJ&vn2KKYksHbzmsMALRmV(Hv!yKP z64g0N>l`95TCGpqpp)A18K|RO*0O_UXlHP7EUkl8h)vqSPzsJxdz4K|3Tj$bY~6Qn zl`Np`yHoN-cZj@C!CjQbhr7yUHZRj!K^>_QAFeJtRw?bY%PWhE>5^i}fr7$UUdi_< zs>&4=7L7~E>Md%gM^h8f)$3(ezq%D}ja5_!5zFX~a%roRtM<|LjWiTAl)C1P^kEf3 z8X+|S*2oG`(+H`NKt~eUxaTNBLL#wqZ;)+kpj*c+Gh^E6QSJDIetN;SaELwFO7$LN z`cJWar?|5NigN?1{*%&9+-QoLR^q12qH|GM$Q0$}_RA{Y3Z{PI+<0VrxN6@{@qQo) zHvnz7B|RHSH*(Y7185#zJ97ijwxafxs4Wq(CWRKZ#v|rX(tI0$Mxq=^Bk~zp8qSCG z=NGiYY1`sM>+lI>fWON}zJ{|u*%8Q&z-KrDn6r|}8yp%L77`dS{NNLP$ZUZFcI{poef8BFJd%%*0Mh04pLNR(r) zJh$lYU9=_3EP*m;yb>{*jH03DQbEdOmC5l3l4Zu< zVc6aGGkpKN7>6eBauSV91sP*ovE>NmY?L~1@8y}^^K%*{OBrbSckJUoc7@iBXL;h@ z=utY?{F58@g%lFdb^#4G`^0Hq05m=m4asQBaVP3lhht7cYRF0>Nn}vOP*K_uiwZ07 z{UDK$JcxnCNV*xRa~(xMBP>U3%OtYV9$K~{t&G4|#5#+%Y{fbl?a5N0vt`Q+_CZ^= z&MaG|!vUD^*N&i{^;6xXK}_0h%Eb z%~e(#pbsKf1vdapY`_X@{gMV#Nj;VTG&|j_WNi$s&@*nc)cw8=APF{X)L1C-3vrW?F zRn{6fQ-i$WkmOLEsHMEDv0Bj*pj+#i&IY<0`Dm~WsiC^i>R_`^ch&OiJe~23#zPsO zeMa)pNb1>RKm)#!5J$4Hf(6IHb-&wR+IZ76Hm;k#qZ=F5jgK3rj_FR+tD4TrFZQwL zj;T&o6j#?u8hTa7@2IaY>LLkqdd0cYENd<-%8}$0JhWW-jW_l~`~5ZRgNzf5wwd&7 zCID#O4J@$^GY~$S5sb!HJ#*hpfzI5-U7z2wg&Jy6TPkW>iP)0Mws_bYjaZiB=3%0p z8O{sKsNsCna3QL{7|~x?)((dBQ|peIKXZ(E7`@<;x&N<&Y!9;|@ZydDe{Y>sI&0Ng zrKHLfU`V@4EGNaQ1co>hFDV zC@GlH!9xGdzAI0F9Qc8wB0C9j3 zn&eQTY6NaRWK|D>swi1lN12<8O{c{E7S_d)dS1``;L||LNZMsy__XwK6?zf#Qxq=r zZ;r~l&*(cc&iRxT{*4PLSB*xz90fqzHQR^l{*y)kjpV6;wop_W)W+wj!KmLs=!`TQ zX+$r>Uw4-w2xl=nikb-ljk`*jpqGKp2%wpPV`POi>;`<>V>GN2he;r$WiDl&kC~>U zj@d!oxncRaqnh?=uHn4uRy%j3MSZlgxW`@^a0AUsYMrIE?$TPnw2@Sxrf4fwYcDzo zE;AR`SxV|1l7n_d6-y};j2d^>NlZcZT6*S^*%!ZL0c~HLhUeJ{GBJ6oeS$+HB0yr5 zIxD$0zXX8RfgDm7S07;8s>*s1?pUvEmx{QeBC)!}*evO&XWR9xp-NfZ%(OR)+nU5} z2gQe~l`YybM-A6jPw0$zhLG4rKDe=(Y9|UB)m24-&YnnVB(jm|s3d4cs0}%2d_Ee9 zauix6FpU(g?(vITPACVa42W`^7}1SQ=%+4Nt}BXl1M2<@%Jbdwo+I+3{i+K+)R9w6 z&#Y-GWyxf$=_S{=s)Q*m$aNQSzpq&N7ti{(Mh6sQrEIpvJ zdnxY@7;O*Gh))PAsYPt5u!YcB7?mY0p%@f2Bk1e`&2WJT7r7$P26In(1 z2LNcI+}vJ?Yf9PXE}(72;y|(F0u}h7eP%bfZcj1!05td@=y6jeiMv2ziRv{p;_PC*LVg zpk&^Zwo@*qrD8D@G&Dd3A9;(sGqHOeADESJz171e+3 zobFY)4Jf6Kn-K5kj{Y&;Brm}(!gr}eBawDdjzfj!<8)9@@(7;!!G{5YmJ!F?#5#ZC zS~@BYQbi>XOc!xpzGc4M$yTIYlNsv*As`#jY%%U2fJT}FCCT8oPb~L$w~*~5iHt-l z@=F41LaG}16(F|6vzV|B;S5{I#)u6bAi%C&G$TYt8sRl~IYzDXD3cwvF2qQi2P(#G z^D!H?z~gZ?Y5|%p0L_xfq%dR4#C6rcgz{p-Fm^=Q?quAj6hj9^EoW2%{(?GNSrGA! z@CI>~)HzD3UD6uFeB$%WNw>JlnjBPvgQ+vIK{abcfH$rjHLcSzmaKgC%oVe5e#rvb zzBv`ot0VZxBDdN0+9x|Ks$Q~gy2e%7=8?B386(Rwdd^cXf&SHPXUjFLAxPIZm31`G zom#owtME2)oh_oyMsZuCxT8thp(rylWeS5RP|J4LO1hz%5rK@r7nU70un>{9SISyz z9GzCB#(~V8(CdW*ZRf=ja z<7-tMs;8RHD=%N+E}xe6n`ujyIT8opiJ34rBXe6K zp-Chn65J>j8ELLd>D1B+#4{qH2m|2dMKZvfNm_)8S+a0 z)-nH95atgXbz&P`SkhRcnAg?!(e6MIXUQw7moUC!aj;n0BvDPu5AjgIBf}q!D({7e zPqjs$1E9fY(*(MCn$hq?A4psLpLUsu@6XfgpS*{>aQUPUk9Dr60F9iB_l|%7O~Q8U zz$;?wKXS~T6dS)`z4S^)&UsZPy8-jzvcPArDV3&RjjOrvBqE5=pG9O7I%<|}eq zikk*d*2tX$BDaa>^vC|i6CIV-|IjsaLgo*^v;WJ=XhakjGnF!PSE;R=@;VUCM+S)p zx4n-B9?(eOax>@r2UqBr#82mmHVpm3IqK$oo34p9>wFRl8u$osWG73sh@BKEi`thE znuzukqY>=F7LXS<@(8xOh2KclAMcC`)Zj1P_k&l;cr=R=E(4SiB8$S#(Tp7yVwU9u zvf;pVwxtA`bs=G!Td^)>O!KSexiqZxO=JD4-d=ItvgX>BZhYM|bxd`lQF`>78#|f<=QIQR$Zy1l4$^) zHHo?d%0@Y-uHc$m#GQvq+nYu0wXzlq=dRE+`gH|JYo^sr8?tw2Jf%u; zah@Ts^lOfr-*w&Hu{}yV;lD%xjb}8Xpz-mIL{@__NXosFa^KqpG?cU^rPEOAdMn{r z3tN-R)>zmYiCB^RI~O%xi5V|N43}d(qw(??4`_&TG+bFklp{*BS!e#2Yq3>kC&|s( zpX>-^N8mFa0ep_ZBG1n%owSN3K5u*ik3_7J(3dsk0Y;^OaU+Xai{iSW`Rle}jRcnZ z46H%m88WVEu@%t8uM|Wpz;sPNU^w%k0eT?C$*LX^#0bee-{KKq$8VhIjA#wv}-v8L$W) zrijwOB<)gm1}i{bNP^}&0CmU508MEYbS)?nNYLQmyT*1eBSW-w4T(JMGdM*;#9%ep zqhT~scLeh@3=)k~EO-@FOeVt<4B?4aFpd0@Y2+u4?I}7N%6uYs0OEbbPtr4*J*YQ= z(P$-QtH4|?@Nx-1c*GxN4fxo?oD2B+Y1d}`+I_glmnW*Za?+vny+8@!Jho1s7}vm& zBYelf^Tw_PmTMsM+O;Z-hL)RBQw})y1_{S2-ai1%!peL!G<6vqRBxokEVfP=Hb`LGvd-j!}b#>peaco*YG_D?*Rs*K#C81-OsqH7L z=J=WcZDq4IuR@zs$YVU)<&Q-#6|8cEy$%9JJ0nF45F zk_KVa@CrvlcD=4`Nk2EMo1WKCFX(6Hg}HIpxU4ocYpOb#HXoK|i51#)4J};dw9t2G zJi2Ro{$<eFM0=b6Mg(h!(Vj=vXO{^8%?f}P z1m#A*8PaypG#3Q@MycN~^&v)+dK5qdG(%=+exYwu=-(6;kIkDuaBPieQXaQr{>=5l z>k3`Bz%$YUV5ifgOU|byAT=~EqQvcmp$T|sv=Vd{V-QIS?0FcHrfJfx)mmsh*!u`1 z`+4)wYo_r+m8^>*Vk2&BTI(S^7Kl#zHOb#fnp7;308fCz?*2<+uu5%#xWhToM45`s zj#eG%YcELQo#5h8UihevynvJsKmV(BymFN%($M+Ul~M8e0as3W-(^Dxd?khdgynfs z;PH|iAG^vWprM1`07oC5JKwi04iN5RL&Ll_JD{!ky?5^qKL4BEz<+px-?uG1FE+!G zVL*GsgRIZOHfXR^0PPqQ7k}@C*w*1IKCI>i!$Pd;-D=k5A~=pBNs>jq4kvPH`y5|d zLAn?<1>y~mqXDBan3_YTlQ5`OutR|k=dq`>zsqF&aked;O=9GA6 zk64@`IWd0Oe ze z>W)Z!26U$ALxL@v2P?|LOXtMdY2EaketO<8GY_IP<6Mi}>{2`P8PL9#>vh##s-{-D zx}B{Jn*4W6cVD#JeUNluh)STMq9Kagi_Vdk?RQQs4-UY2KEM}}ohi;60m?2}3`ISA z0eROyPoU^{ch7z=XgS_d+=GDQT+mh6l?Fm$Pe1}R8}N&LeyJBRngoCbqy{pzzAbTJ zLqB$8-u#kv;jb;@JenoF{$01gbqjptEdXyWMoq9VLP6fQ9}Z676$ctV5R1yra$1t+ z35sDD1Ic~czIb2m`jTaEj7s{FJo>u(WSJ|Ey79STLjjEL{=;|rqP1P2GlXX6Xy85j zE7Pba0n3Y{@?y!XSk)Ap{#!RlQqTb(4~0GLDoO#~iI|>t;yZ4?M4K=i0pPs*nm#-? ze2I%TylkkaIrO+Z0Igga`kkMCg^4b=Jh2KFd*LcjY$!h}kFo^s`g;MsbX!|=PiSeQ z%?&E?4e!xgK5*#af5QtdI#0iEo&T|O9pa;1s5o8%nj%5-9RZ-d$ml$&z)730)hvF$bMNS4YPG7TTe3qi|r5a`Uj><0%O ziX08aj1EiFkolORk%&|u0nk8LhA>TWCjw$MFd0L<2HV3*k7zG!IZt3>2G(TA%1p5@ z13KFXnE}l<_skmyrtJgM*0E{#)UvZ}?5!ePNil38Y40{bY}wK_EPqzpcqWa!CV?x_ z(LJ%ZRhz44wN6TIPpr`qtjy?SMyqF7j-e=uWH}OK|2V`3!5IxDii{27Q-hEZpq~J5 zG>FlFU7>9+g=iqFr4!i;X*qw~SM*C{rtr)-QadrlPs|#o=Jaz5hPheue4eJ1y{#+ZOFF2|4y?VM zZLB5A7tJgC=EJ+@vsauil(8l1=xF-(%|goda^l%t%S#8g=YhGxI*mw!(RuDsKZKy{ ze#miu-*JD>9!@Xp*&l>#;A#J88?4X3JqRSEMm`ggM}kPp5$Fu1075gQ;;2}q_3cOl z8-^jU^Sx(Y_?~^mg>#>xo^V~%>lXM_w*Y#9J!#|yZ!|RPq{ed@+vhDq_sxTexcY0R zq1O}Fe&bsGMPg`{&HkQk`8&4xTc5izBSN6+Q}DDO5^BQZ`LJ4DSVr@zG;F>d?@Pda zQ3-`{*f(v{=-~75|085^F=+o7HX;BC%WlGjgi9+$dYpg&uij&+!T^HKLK%W!@qFC- zUMqDzT1JQj>VMu#khxsBnjyMq_;MG3l^gP2^e?%1mIYCZkh}gOnRKJQ~LA z9bY|qhPN<+jgvt_^t8tuIF7{$9R+}vuiS;x-?>2)e&-kN16MqmlpyU$qlfZhzzk_Q zU;#i|1|gc_N>N#Yy%>DrL5ODF+BI*%QgIT3Y|{ePbw3!aSvM4oM{pzpejUS3^}~RM zz%A?+68VP&H~uz7^$}c=m^MSEjYA`(tz+}{9nb2JCchLnCdaY*Tk&i}R5q2gXdL>o zW97T%)xWiDZkW1@wLZ|q<`|kLFfB&eNwZtDbU24cZ0r5zg+^&0Rab1$I88d6q%(pm zS|m?|Np+;wO@KcTj?iH$a7YtYlD!0B_#3xVsT^i_$7a6X`N_1vHK2Vm?fxmbDw=bK z?*SUzpag5k`x%KDd8boKktkzoLav)g!AVl1(X%+0qt7d0E4gS*mZmrx0|)ycJFCuB z*Ayf)U}=bGKAPOcZ@9cGWm@-}cHK@V9S!;mC3C#14KP!EMNW zNC);8ARXGDKd?PGu)TOX6rJ@O_mOhUyJd%q@%)E*Jk%o01s9ozk?s5v@0|c* zK%KwKF3T2XC4^MJ^Pc?9gRHJDE^&FxyI%=&7GwpbeQG}8x;$DVRE#U>U0v~Y)F$XE z-?7YwwB-+^<`<2fRS7t3{E>aVmrTlvr}J@b8ph7CId6JFYjGdE;zQqfRqXhU`v3~? zMXC2&mMK^Pub#kVNWT%OI3B|C0?@*N@WSOm*MiK$I-X<+)~qQmi|3e5CCN%^T7p75B{AS%W{Z{99310x+YnlFY`7XBasl21G&DY37j?4iRol6z_*Ig^h^#j0*aSku5K>T)puzG|nx-&X|F+m4kSC7KD=(Wt@K<;_ zqkoNP&v@6rF5YLg1;X=A@M?n*-nOa!&)$_kcmof_9=GatA7kCs7XQ?_eb>-vzZsVh zaq~6H2n@4-<=OM843kN@ms*Y>MuB1Z?>qcM*rBc^GT~XhH(rb z42(+^OgLYLhpEa&v@5(4KI~%sFTxHIA^kpS?=tiE2WSc;hRXm;l&1n*k6-<LFxjB9^g~)E#J}itn*(r4g+idz`i)nr;U)=Q(X2h5)b}>=xq1D zQZ_)>5sLT6r0qYaYyg)2)_n|RP-34c)@Mk3cJ!tf813k-q&=`rQwkG?$E$6A*1~!O zP;pe_XL9F;zCt2l;LUbwGT-!szzD9Gc5*ZW22(&O?*J;gvH z-naShI09!*{|Q>|-?1OuaU9;YADr4khgSbSFq-1GA7p122>@+<-vpYCn}^0txZ;Ms zvxzpR(>xs!h2MxO#gku1oPWi>(=Bz`<7AuKW+yyuF4e_)-1@|3OY@mCcvlR)B%Yku zPO7A;B5T>ayf>@cnbXZpYUf6@Q=Q@nn4y8PW1`NRrYlU<7b~WD&^|a#aIkzVb{@2z zOgT9MBxs+GKJyND`Lnm{8qhv__w>WA(dBy&F&c|$(!_L{;$W^XM^{Kj@`>t950?TH zc|Oipj@K9Ab)`&0nko-Mq!p^Fa;XZt*2fY$iLv1Y5SJk|LjlyV3Lof3VtMo8^n`YD zOglEF9UUlp&S-flWADR!2}8ti!??lAJK{)Xq^4@tW}bFP;sm|~-% z6QUx2=-2`ffMebbIDACMC|3{DS$G*P%sH~5@?RtvtcDN%OYDQ>L1Fp;V0qnxcnVGg zT)o)-epZm|?A+-hlA}E(tB1S;2Pma|+L2G)uGIJJH}1plS!aIdnfi0m>RZU^{n4qR zepZ+II}b!LJAw}IJI^7w)(4>&;M<>5HsAE^{lK>PbLaLSk^+BB@`I!d>JC*_BxrCL zNYE|-&36c9Xm0~FC^_m0V8B?#x^-#@42+v_+D2(5Fd(AXFPKOFk0n1+@p2HCmQ zm}&FKxO*lCPVD|sv0sX@)#@vQ=8a=>;Er|g#0utPyT_)$p>g-v7(6nEPAtJwi~j&Q z%-;YU1G}?*%lf`$?ZCW#h|=1TY30bcb_Vti#?cLZjWr%uMMg2VRCQWkP#)fvr%O~- zGUm?I7mS#vwk-bpDG#Py)0uSYwr%ZD*xMHm4usH&DLC(#Gvme%p?6MNp3=`wXy?Yb zsbPMiM5rYRa44|@OrnnXKTTzI(YdhMBMfoni}W^To& zpdg_1?xhp0l!bt&9VdNsx+BKric6MhlZIteG+8-VSs`9ioKRmLUsaS)UBuQ|Xdg{$ zQ^edBeR~Vt-i&wDW9^k#N4`*>Bo=U_fMbkLmzj%MCPK8IZPIYR&uGXVYPAAi5 z9es0h->|lQC2{U7dH>jYbYed}fJoNfvwiQKy`;18#5s3DVlkVvZXXGncKotGAg_Yk zrJytnjHW0$g03Ub*#Mv!Xgq>`BY4{1MVK~tWLmr{FMYu{$cDcsPyMQV3i`wU>>`FO zC1BR^@rg&crI&a0a`=I^C^36rr?T;~@s!iiJn-d7m%FZ4K9Uwd4Sm_zXyP6i4e5&6 zDgIC1r9b;Nm)HVFRO~3}xi2)dtE9|$N_QjjSOzbSXRmwrz43B%^vzO629JE;Yh6)t z15r!h|4CW;gDe(4VVIce=r$=jg52zSu0FP+e*zUABhQ?mapUl78X{lOQ6aMFK7M7H}I_x_Hq z=pP-+|Czi40#n7{?hI%hP7Eic*_Z?dXaH--PY4*Jg&Qi|EJ_nWBcJ_?dpnmhfdLUj zbI{|2h2S$a7Lj28#y_WCf;W<3?YPkHtdRTTAW*M{uD+FYS z0BiYaE;ceYJ~}>=w(eL5QRp#aMxla+{8e zio$N;qo$e_p*ua+SI*V9a;@XW>1A>KMBaH|KD=)^Xrd|_rTksP(yo3ZAZ-Mt&5*pY zAkCLC)ot=%9oaD;4vp$25TLP>ZG5Me5O5T<0TRT}1A86u+PsodR_j zj^Jrrd$HyE-)E==t^w^Cx*5-WQA~vBWxWub1tPtI28KYozy>Xm$|Wh%&e#i?$^xQ1 zUtL+0P?LvOIO$|?^r52-9Hmb-V zN!NOm7&=SZXw$UKITjX0ux=YDW*g_z19#o`P91lUF`E7U5!j>IUpjF=2&5h7arqT= z%D$ubSY8PVE4$)MK!RA+!$HJopy)UlkOuvT(FPPiL!Lvn#J(fb{HeVB74wXU93wyT zxBR+*@1g||TcKMSMy>D(PrS9~8^c7W{DH<-SAJ;Q6VJSI%=PLAYJscGdrr)VnPDIU z)9l!)P!FT@2jYM`3hO0oeocN+44EE_$+x1vW*!F>xPSK^C&$aTZbru5h)jy*PUQB# zvn>2EDfoYrSN`9Wg+KWMLv&umt*F>Y1ZZy{snB0Qo_A!84|Hyr3*H%OF4*UsfRt0v z`qR@T9D(T>f(|7r^ardaoQ`rp37Mgx^caO*ZhYIW%krF;IedV!3}^Dl0dS#zbp>CQ zyMC28{Cn>f+-smPP;}fkRR440#-EcxMz#+kQ2?&Dl0t8x_5HVe2XM;QO{0H=y}ljD z83{(cr+{N&B2yUc@J;1NI8m`j13!NnoZPWv<@Qx(~@xdYc^2-$o{H% z;Lpih|DCc7jhTgu0B8^cLh^U;eA4!V=VRly>3kt(Q!}y+I=F~89CUq95jWLl?5SqM#$$Hto zeBfBjq+PvSGX$r;CkJ0K9zU=ie!+73vh%0_FPO9r9E*$VhSd#WX+xTu)(;Qx1MQmr z8nQN@D9XaJn%SNq?f57+*3NZlFc8v`ice6=pp{6H(b5Kybs!@Z)HIhp1+BpB6nGK2 z-1Jz}eMo$MZ(ju&~n64BFvmTSO#A-cdhRHoJQRN^~37c3d)Hc$cO+0Gf?SNhK;lWCr3hSSI160BaDgI+Z9WV=Kq` znK2$da|)e-F&Z!$KR%?NsL|JX)yZ{CV;$Dgpl+>YTAHnW$%I>VBZ|IFXK6Cp^({x% zl~;WytBK2bTy-T`H*25Xvd$GJ)aK)b!}`_&yu`#59QcloT=(`J$ie0q2s}k z>;6&ty-L0$H(vLWZSdGQu`A34#OZ)I9FT?p%>dB+A^;jC8dU- zv|wThW+q{`(rD;~GEn|g@_B^W-mwtZJKt*ygxeX&ENr)OaXPwh=m$Y>|0Qt`rrA?t znQ}s3hZ}s+>eSo#uDBs#`JL}DEkTZojEIhih`kX3{?@w5G#KRncgp(zO=@ z<_YKq@GLiCDeCB0O$?)p;mxtyUZJ3pPUd1%WNbo%P`hv40%b)AXVxbTB@!7_jL}M_ zNilZnrjW{I=D3T=1krCB|GIf8Xqe1V7v;%i6R z#BL3#M|L9U1EfjSd31zGk(|Uj(Ja&>O@lr=kP@JUKB^yFP`M|M-IR~&a-XSuuL12d zbvr-G%D^)Q5jI#7ynMj>F9F6kgo^SS%E8ehLz5=nWWdZRbZ)7>%81)Yj06`V6-=jt zOu3l(gU=0+9PQ?OO@>$RqC}*0=rAmh?8I;Voj8n~A zL#Zl%!8Ytk@RaDvgT7-W8rloU1HThOTHo7u-amBRKkz-@qN_}cp}%AuJTp!Cg_)o< zrT`ieqFn+SFq)$7*t;q8f-jLX)7pJ$xKEQ0O?o{R|0w(H$B{RD-2k;H2yM*BF5aDK z$Y`+EbXXb&Z0$4l{u$fgtYv7yI^)~83)Ft&KXO0owlq*lb5Z@a4}ASFfiZ; z8iLdyQv2vWlpjZHd@8O1tt{Y_K+@rX+(RKI8my?3DC55-?p2aT2gNxkc1)A^zicbN zN<=ad7?8j2*-MENZbdv7bt59?#?APM$Xd(|aucvl`X}dd9qzt)<3{AoTTv0u{m`)) zCIVP~LJ6V4I{@0-#b4rqTt?eJ+W@OFSw5KNIgDusV| zVz@40Q?-k7!s!ny2nSrIi&{TC{o<56_oceu0h%TI|CHnh`?CL&vH^hhFV0;!r7FQ; ziBc!W)7dd}xmwdnSbLeoVuBkWlA+3AS@!4TmDl7!xC#i}z`G-;GAg8otknR@z&!}k zbp&VoNue;ET`(F*&=B_i-gj2TdU%Y|;G}>t$)rZ0IXy*LNG6@oCK5bHGIovLN%9`j zC=nc3PJ!JJn(zU)AxK#bBskD(!NLH#@b&M>EdWge+Kg8l2t;ZK(9~)OE$27a!rTJf z!S7h-$jG=YW9^x-tCvffu$J(*$(Y!f+woCsEPIr_wjhtT={wuCbrVA0k#+ecoBzIj zZPzxOL^$Jb$3@1e^7WaoB+j;|YwfY=)tZJbx~&5_C2MJ=T0w6IQYY8mqi?IxR8`|; zWBT?DX(S+w?F!R=!_=uTwr}dS$7}5*KVj&7(YD{kwIuVlJHGuBX?KmE9c0?tnaXaq zri-qx;qvGhN*^Z~<3tB$tmmuSH1$22wjQRXhw1BO`n$RIZmy|I+u5vX$>R!S&VoE* zf&@(s!!3If<0 zLv;;kpPo(tJ^bzI<10Qq$)t*~=sXOr4?k|8&+HZpSR7)&;)%NCY>0`b$+v2pV3!L1 zf{L`2Rq7rOnT(!H#B|C?7L9-~pFXwUG}_A#b!&%vxZ!qT$jxWbIGL(R^~U75urgAu z1ug@>{aS)2)TE2aNJA=)$Oa9Z?I+_UNmwzcIA#zi8d|S7JPKNlV0{LHGwtYrW_Uz5 zHpq?jYbQswOX#v{vLc(v%%?LJ-97k?gdXSczUu)*LkmI-Yu8!Gd5VIj+3z1XUO4dHE7ugI z#9((FJqPkcPy$yW=UR>+N4wB+gcTGbZByvp7KY9&Yj?$w0WJ%*2_m#>O8fY_@%y_H z^j&nHl&&0JhmQ`-XKQJ_SCdpCmh_rCmu(YUmf3ZAZbO=17v@&Qxpl)FtZa$%uw_%4 z-;w6GrMX>cE@YhFHO=i=77nfR$M(4$)6k^cP@zxNfn_&HreW?wd0N69mEG|-9h+a8Vt+R3lMh+y_Uk;!f#g;?iV|iJ4y%{LRZ%bE*Q>%rPZ(9hamoVE9vmx zy@x4rhFdp2ck8+5Vs1pnL`3Ls#r(5#=dPjCbDITfi;Rr82}WoUH~!wf8RmscH2CCJ z!XWbmTDd6FIq4_`KBtL`U02USJOx^aKe8{v3W%8=2<>2s1sDlI@4cY7=>Jc}JtMdQ0Ykzs7<+*< zUw5BwX)4lVux`>`5vw~8YQJJ0EF*Q@WD=b6pWc~YC2s${Z3!|5>q0mS^5w*0`p@@3PwmS7AF zGp^11MdI3zoQpnE1`!(QIs%$e1jDNt7pCRF4Kk9fU3A;?-uoH&2dWev%zvP|K)WD? z#>>YV4OU?MK|qs%BaAPaNB-3n0%_*2-A9Hv(uDC+JYAtlTC;W@xJKIz6$V15j!h_$ z3#E8*D5v}L>A|mB1K+Uhe$BM?nsMzbmbK?S3k`Cq`Zh+z(mTmxomhQlTxlgy+e)@I zldVluO9R!^NH#W*jm=aeNYlEttv$MyMy9%vC?DeL*Nh{(#_2<8WL<1Y=bh$Q`4FUa z;$}MTG-8Gcd1RRz9Hg5%n5qt@rj@Gfr0W`V3aBORLI zF3o7GaooY#Oq}dhXW6L&OvQkb7>hAH#p5c{!{#8bAXo_~H$w7ZAVDilRhMNDRUSOA zO4B^1n*ubRsEE566CD{9cQZc4kP@hT^{)G`4~!@K zmeZj5WY2VTU=9R~!A)s*$LjC2cd2eNGG{l(xH`;Z`vcoT z-^v4;He&S60JIU?&`OMO+$By{UHEGPG-3 zhM+bZ;>x`5ULz0%Z#KlcveoL6&5f=jTQb1Y+M%xr-c7@p;adtF7l;(unX{1>V z2{Xyc^QTDB(9Kpdz2a{Mc)8Ai@5#Vji`u7 zF7oD&?dz3l2gFLd6&Z0W;^xiBn~^u3`?h0AA%&}m@v*L7aLQl2=sEZ(boNjPb>;Lh z=^z3ERXw1Lc{=ruzG)bD{hKQYCRd>N2P59MbJhpmf(oW&qLdJMcMNZNGI=RXgbMjs zMXnYD=n{h5{SwJTQB9%Pzg1RNm@KFlFc+MDXsB()#jlu0+SO^9YMm`sRgz%*t!MMU zlIC9$dw*bCfwR!*$Uh87(87K~z}Y^Mroo?zn|*Neh>p1^@WWcva9$myG0<8FO#Btg zcoL)Mas1fS1>!k4-Hg#10>5kO`?II_Ezjzi)J-blGXOM=8vm+g0w{7+Tco^^P-p!t z{h&57$>j((LQy|{-&KQro&acSfEHX(6U&Z*SH#{oya#aKGgZ1JuKceoL*Fq?eOVm* z8{_y_&9nDYN7ro)54>}O+H%J&Z5EllX4># zN^Y4pHO!kkXH1>rmgW&lZNH_q&s0}p%%d@e#0j9YunR{kVX0K57ZW)aGLaxa_X*~s zK=(;4P$mOuLOM_%Ul+Rmc)gzur`0~0bKqIJie};UkM99Pl!Zn$a)GwN$CZK? zM|h9A#C(o4Kp3GkDyM<0tnouBdoes51nTr z$4O90A;)RZb{evr9+>YP*q+}_S~tdlK|#_3+xWgX0(1u6LO|CM04*SgEz!V>#IJ!1yFZACur1lp(AQsI$wjie$h3#X(cV7u()hkToV>{q~%>{X-8W0%gcUoAtIr!ffi2*Icr7}D4@{PX5E2t2L0Ne2nY$#-n?x+oP$%A%gT5&gO6ZbwAO zG4bF(q>wR1KKC2~v>OpOBSDOI<6CwFXv!!(JU;)pmtjCqu;s~@z9fjNE3kfSILs>_~K!LEK@QBF5R|%KxN%`KfE`A|F(vA3HX_ZJ7b~QB2Ixwfx$O1uh3fEi-I>nOaPVQtfEVPxW<^RQ7)$ z6FFp12213~QE}s`1VlUc=m-Ke06oa|qA(Ay4jcESIy1xo#kIe1Z~V+TQqO@GN9;B0 z)c@|7xE7HW*&7*e>tv|Fc{gZw9yPm~yO%WeOcvQAYt|6%JeLouH`Y;&4OD##)!ae1cF`RJOm83CRl`>M zAXs7)X~q(d9BZeNe~@TeFm;nrDlcUo=etI!wqBxffN1C^n?}giaZOjXrZh3ZFekRI zaXlN{;3C(x!gsIoolAWClBQ#dYa3?jYPf88r{Um^7JPmnN88{(U&`lm^T_ffHj}3f zI?9M+z^QNq>*ai$n)?`sAD^kd`msGh*MRo1HT4I+5cKd*642oC@Zto!(_AvIoapf} zCE#k`E9A4J7G4FJRCW_x+oEmMks=Ix;O$T(6j!nBCc^q~oC|^gG#)}rN=+B)DmwYG z7VSVMJKm|CEE8JB;o&22D*TTesjF$w|o2L}?e~f}rinL+ghA zJ;TIH*2!GLPE+)`-rNW79M>6q*ew9h8VnQQW5!qw&N6GwxMOt3v9@DenKevJ=q6XC z*yub%P7K?s;AJ zhJJWk8Vky^2hzfkxO}Kz+&3)j>ZiaqAtX#6h~sypsTZWVSLLa1+UAbUE!Fx&9r#RE z#Lyq(C-uW_(Pt??cn`r86RidpF5uQodAFfg6EgGRD3&E@fuQ%S%^N~(J|=$6Itm^n zAm$fHi+C=xpUZ3iH!+4t=WN^T$(Jp)y@SESA>*Fpi# ze(ByXN#J+1;2vb-C(iAkyEdV+KXGjTTO#-gK^MKa1T+QMrX4HtFYw=}I1KTDHY|eH zw_h5a=)D69u|Ib1{=ha{9M9X-YBNE6-8%ECdC1DsI+A55QVW)7oaogUMVw$shN5YX ze5ofqUAXW-@Dtt@?>|>F2hEpSl)gl>hs;P}` z?<0Hqw4D`(N;;0jBJoN0)Jx8@32rDW+BRh9u*R_ChPpMbzY{O%ph}0BnqjiBkErR# zO2;)-y=?Z1wq=EFUDmb_u$7%`bvswn%0jAYq^ldqvMMG!o$^^pyFf@hX5etpWzrBV z&2a`jZ_+VxmRMpV-89&aV1$oLk_qWUYwOQaFMO8jat&zD(%pFHvcPNWlLWNz7Xd`% zdfbpl)Ra>FCfaP&cpwNhl*`AsI@rcGt~FVk0_LdjPE3&s%D4uJFe!j`{?0vrAt2DB z@(m@en!zURV7F$Xho7nxnna9A6jEpcJcNL!JBq_Kgo@A-`c%3Yq-H+65E#ve75iX` z7y7UwaJHXA)FrAiOPH!r{Un5F9Mg=C>c?xO79(z?NrM)XOH2ih1i4x0UAEj=a~_ZS z*7dmY#?6S^k?}d&!euK!nSWW@UNA1N8#Y0dR%35rZj*Dip=NDc1ziHZn37_$+coV6 z);lMbyTE7%mQ%DepB*Gl381wyJ5;RzG|7@78W+d zr9s2MuzqkA49(=lRdIe*TG%iy>=>7WD0I#SM9&GytNYS=$ha6V&MoN&#x-rdOie%A zI-~2I(e{mMJBHZSc|%`6*VN0_53o(ZYdiATfpO*l#A>>kO@3m7AKKOrhJ=YTaqcB? z`pfdf_nb>d*49$q2Ej)aGYu%;!*PuAXq`V_A6F}Vy03#8ORY*J#Fx$E;8!2UgyGf% z@fm?rJi)nWgNxw4<(U0fS71t4G@;Md?6!YA3{LNcu zhR(R>Zr+Z#2~M-4!AA(Bi08g;p9u?no;Xnd7&a;l@^*xIxaEQ}E^#Bg0!$RfqRSOT zI^ly~_nf^E#x&3A&zvBKg6)7gaN=Wt26*yhLV4E}M>!}}c;X5w(!0*;@hXF58MsUg z*XZk}iLV-ml=X03fVp7hG^nYp#F)RgEyAB56a#ZJ#T^Q8I;!kNl@Xv_XgLC%fubWg z2?0QRr?M%*7tV@e89C~K^7<}Z3X@?d7SSM(|n|EUR(O6XZ!cw zy-`i-v8f#sJ>BGvZe&e6xWHwky&+Ab`_CRMHE(&`DJub4O`ZsZ64RPjT<@!3^kpGnmS!Ym8PtS z%}?c$wWL5$EJXqMb2i>;(pWi|d{WZ_siO&2X{5(*!S&zIP77QE+Ou;np8b-5^#;hl z;H4)p_B^^ZjV_}hz6K@0z{Wu7yR{&}Z)+90dDy~YW-+PSPz^IVh$~?L^vDnVj5CD- z09t>Gw!cd=(j$&ISf7s2T6A6<#Ao0hRz))~)uYBl(wst;`qaff3;|ja7@&bA8dd_9 zXb=!B3$IG2N)zKVCZri~5;CrvY&W$zX-~Q(kBil12sxfubEl(qSXf>+-dmTC)@;X< zsat%!0b&(JN5*F8bNz`2%fil*ys;r|ZAsfzhURoCeao=W%l0>Go41lz){<9_Q~h_{ zC#UwqeaGIuWB<^;x98aNTS9(gXj8wo&9D0T-DC0Sc~2-`ZOqk}Pn@9TI2sheqa#?N zp#*dm5XW{62+-C{!wqb%jxfNdmINg$X8gww!9_H&WXJ>L{1%1 zII3w~HBJSsYX{cdeUpFBv=cJ<{ie+mTM*Kob<=NIo|cB%nCectYFi$#D}mF1a6uCi!uC|qSc;L_$J}V2-pe7t zRZZzDz%}2l)Ph84NYxQ}V*r;#16=YyI9C7GGJBw}|0f3$oh-A(J-lh(P!S%|=OkEf z-*_(SxrnIG-H3~f)I>&hYTQu~x8iQzjJp|iJ2Eo*=FON}x4vr!30hdy?I9q%52pAi zPdR5FsMjTep*nhzXz6mx?r$waP&PoeaI<^_<%FD3QVMWh9_1>q{yqT> zP6WIHo55F%9Y3_Kyd-s;2+c~RP@YOVARW%%`%ZqHc<_?kq%hYpa;NV-0zgx)`^eo? zlsrL#77l*~bOxA)Q10SLSh-wBC&DG*0DxR)0%pYsNG1%sV{BjK3cg|<`;lYqZ>;kv zv{6TrU0gck^D9qajxV??wY?zsfLaMngQ^~>^j7o^P~HQuxD4p`>3t?YT8*1 zq~b_6)e}uMR6`|IS4r1b(X~xXeXUrfzDaU1Tm@gSXdHdX9+=V$_0iRxc(E~xw5XVR zte{6zKPwJw2@|VAcPpEn60c8;6THzu>wSb!tqMXg|=ekDu$#P>O&1wydx!K;OQ|nQ@ zCuJ@R93F(!XQ3F5u3*+0u#F99Wg{3wMWtnU;NYH@Ml#lE)d9VM+6zcpI zfM6G+WyaL(s9AE3Y={#Z`pHfG%!+P&O4m2S_st5Eo5BM4V_cEJAL9}jmmP>}C*nHj zF^0^ui&Ec+uC8C(IAQ2n1~pgP(vfNVz~nzL?d};jgQksuaXnz#+BUB3S$2=i!9%nE z*c?1D@10uxtERageM=`-G0C^?nx;-{OUI`9Bjen$GFY5;j-&5?0fH~%Kg@2WDS=BQG?M037SKKmkkatwAW1Sil2wG*R0bilwnyY z`H9>AtHgb9@%JByT<&DVn{Gx%ATzYjMQ~Bk=BOAc<~D>hqHf*-ulwLUB<9xb_*>Cm zat^%HxxxOq9y`hMc zl!}C50=N?o6Rv^#cxQ{NxVdxU!{1KpePrhxL0CCuV zC2#y8$qyd&L61>6Gu2{);2en@cJD!?WN|ki-7exnok}MvSmvgc-+^ z38s)>Uo!Or7=p{tR9d77+(PQUVV?&!gbY6~_ZSdoKm=>#Z~xIxM%a!LI`N~M-}__n z89M`-0{{fPE#WwAqYUX9d4?Ew5BjVxmVY;DUF_47GJjQ{hj;d@4ZJqPTK!o^2WDQ zmcQ#={;qrJyPlP=xo3}TT^r{1kY#Y4Zyx8$8t6P{yiK2=t>&_u*pdt;6XJ4$ff`s< zz|uyV@;Hxy)bXU|y4yU<-ToTTp5?pqY?TeY{$a{qVJwx3!}uJbi^omyxd=c4DmCShSprEGFMxZEoaG`6@+4n_wcZDUGs>l&h&G8+~NzygC0YNGl4(!jPJ{nA)qr6(pW&82#Av#;z%b~SEH}k zwT|xShb@>Spp&Bre9hPSvErE z?SOe}*Rr`|Uf(sX?^w3hjY~o6_P*7>XZ7z}0{do2p(E4Yp?N>(2+W$NYnkd=qG(3w zJ+d#}0dbqWaU!mr>X+~87avFyUo}nr!hN`DE(WIo$htz2on23$zmML7Cf89y!#MO- zL-D4-28LMCl`2lu&xUlx;1!J}7&F5S81jGMSXRd2XXy#1sGE_uZba&%W6KiQR$Oqz z#`hA=Z&)S|4V~M3gFQNqjEwp_=bU1q^@#!6+tdypV!{PnJcOVy0RcW-&=BH_3oN?I z8exZxh-F}Wdq-an1R6HWQUK>X!|=HmS9$w&-_4e*7djGZ~DM7`_qJ>mu-mhSMq^nSO*fepbW1j2$8&_DVo)% znK829|1Wz@Tla@QRx&3?rs6pZ+gdqhD=SL>=Q0GPS z3%Du)J|fqQ_V6`;9%$q|8tmao2vWIisQbBV{-@6Ee~0_%J^rn7H-F~_`R_@#+Fs6= zv`|&;Y<)M|Jg)7W)DCo+TC(Y^eckA(rf*BzpQuXQHFed+Wm)2cVpY}<(+I{30b$gy z8{gumw+*wKx~WxRt_H72$5ZvBiHg-3qD{{Dr?)`)bOgQJ76fBH)M=aDPOmYf73Gad1Lq2jpMHxhCVM1?g%Z(v_of* z9i+WZEI<*^aAeR3?>wu@l23XWl9sdvu(N*HYS(MeSPNVO+B0@Tp6TKsL_>^*R2|`G zW|CZ*92nLp4u8=`D{JmHjSOn0JGG90v05o{10-$MeeGXHRtVSu7DED&3iDaHTq0p%+ zN+L?r@QO^VIuEN&j?ZZ{x7m46k~GzLx{SEl%33@sZ-c(8jq5MMD|@W{%Vz(aCAetX zS(W??#z2p8ES=BHaHO~?$GY#H-*z-5Ok}EZ4ABNBEqWNqtumyky~R{!GhfqVsGkx# zSH+PDvAvefEK^zLxY92gN5cb{16^%qyf!FxeqILU2@IMOej>emm2^`N-ArJeu0ar=v=?Oo$|4_DX3G|kv%LWz4J z%fY^JFJ$!Zn|621Ys=DPz`C(#-U(QCcB~t_mi2%INNodlg{(V3XF;n!Wby9-%^^(N z+cO9EEqnWx{R8{H-?cR%O*XMjU2NluJbK5nc_ghJi%Um_=~Kh_i{j8vo&GP{2kfK< zN29Xq-v?-c^Cu6De32*uS8Ew|&RE?nWP&?Kh!_ICL?AdFg<;)%{u{otH+-iV0BBK> z+Nj%YYN<`7&%3Qoyd6JEdJxuK4Da7eMj)f;&OI_dzdBZb2G$?Jhf5-Z6@agBf;zc#Xg?zX@Ts9@oM_L#f^B){ro>;YqfSFCotR{iZ zOlrc6;Z~f~BfSw6hni9&Pkan0=FzmCrVJPjahZiq!Ef%j6I3D?fMc z{>-@x=CL4b{gwORf4la+ZXQ3=H_UTcDFjuRAkA_WuZW|6B@ge29d^cpYiTnrnh6=r zdz0WH1eaC1QYMMTNP!bU!Ra$_yFaT{xCXS(>Ye@Q>jmQ(ELkd`QQT_yDb%LIO{}>> zY_G&RN}0xNs;pO-=;lZJ48sHBc)xzKT{GIK9je#%HEa4>K);dhsWvwfVEat4Rzori zYK;U59&s50+>3)Oo-}EkseDzkrp%?y(UE2x(@GjgzEGEo*XHB(c|;?m0=zMeEwLIr z3?Wo|8q?(rtKO8(C0A)W>$SbjY!A4Ztrwb>O@RedXvG*>5kkHC>2dAYk$t0=Yp0@B z*+Q8+CP^1Zix`&_@9Pr#X6;M6zQY6W*-_#Pr}h_*EiWF(caOxgGwJxQ<@m%Jnlkm| zkWMiM&yLqDamCG)wk%#BG&Q{_jNTWvPuyF!SfNZxKJrZ;%d;VIKA@l9631u7jy(aX zuOGUXiq%yE*0DaKrI^Tunxff0_@*SlCq-$_>&3^=0*d4WTAs!A1D38$adJhPoDl{m z4LwVS;XT8`nQ8M#oZHvW?wOaCO(Pxp+8Q=<)z-Ey4uhkQNpWn$u^FlfM|ea3=ES&XaPEp0B7*SLF>Ac&jB!bGwCcn-VzZRLEVh0P2lsRvGiMU z?&ySBIs;VK-~eUN4$k4jBlGa6{_4>E;d*#@uSn${Zu|h$c1{ogR^f>w1ry#+&f$VR zwhZU_h8KyP!gTYd_wXN3OtF0=C_Gn;L|g_54ST)*_nqx{r3WS6-ZbBeHxR6l7 z<>u!8auXmS$^HJ0-!rr4$g;6yL-@X!SYlYu*`1x4ot>STXWsXHUH~+JHOSFGe+*}5 zLf8f2i^kjvI|5MdD+J7_whH~~h$4p(V4Aq;>&5_@L#6_9 zLMYAfnHu>H?z?DJZXeR+UNfB_U6gjzZ&FE#aFF3G7SSs;AATe(dOn&%xK-GXQ0JdzE6@C| zJahl^)|o2?Lr*rZq^k5+Si-1QDnQ ztouTlL9Sgpc|_Z9^WS@=1vUZNz49i$di5YnK{=z*$z4Rrk**8rCbUp1HSX4xET*s(;-FE0ojRt@}v7@_0{qtxtdZrtB0|wL2g&DYETM;b%Yhd z**%U>Ig@DRYJ=3OW{nWB(XDLkW=mX#%v{ahLP>2ATT{f;mM}Hh>OB&nY_~agw?5w} zHwLt>1KQ*JgopMkj@3$!?~(2+U<>=rQv-(Zup!)Um@QV<1E5{jk1Pkm7L~_s%1|Zi zoC4cn`^oXZ!lL`?qV1st%hfsarCIZ(MbqV3^E84Fr9XFAmqE*ylrz*^na~ z0{#L<1GchGPJr6cGC5+zDrse>`Q(aoa@jPzsA+#td*Y{#i66Pf8kO0^B_Ua!-L!c7O23tVR^{;x z5TlJeViLsSU&&mn^3sw|&(U zvND>RHe=`qe?S(*qCKQPv?&N#J800UR7jeU=;Vkb0)}HB4XI0?aD)Yxmv79GxDTkZo8%Skx?=|w#YN&>hcrb8#YJ^YSp&PbL0VPE zmNlp<_bKyiX--S3@zGiOvu61NwSvROCs^DwO#L6p%L;vO+2ONWI zb-d*_Xy9PlYwpl1t|`dT-U3GRuDs=41Y~=Ypti;59G$fiM^+j;C@p=+)Yxl0Xkd(3 zSV4ToLOn?+kqID3BOYdDklC(nwaxfF)&iRV?H+p}U!Ce;DMN*33PvLlsfi~1jpZSh zH&TUI?a`+1H6PojCSt5==1>J(gvgKY(;Tld)E8uHqMS(XU|wCsswc-%D!>yaG|L{ zBGw03&k6g9(Ttf{+vPdSrD^l!2^_8G=gb!t%oi5TD~slfE9Qq5&5zC)FHY)~MsyRM znvQP8>2YPlb!+Rhj_%X)f<3G)S8m7?=%2Ko`I@=w3CnQE(7am|G$->LjpbJzy#uPo zqp}lWYsajv6QqB0{z;qAm!T_Y)V3a#*2ws3Xk-BDZjw6wzxoD%X$Wf#yg8h8wDf7( z+SM(cn$x4Yvn%?(d410r?fy!6x-Cg-<{5JJyAE3Rce^{Mz0;F{k>mE}aesKud4A5Z zJm*}RaV&-$^C5dUY@eO6&CJ?o<`B1qCd{LdngOG6unXvnipi$PPrxxEN<*^n3<+H03CWK%Kg)Bg797dZATM(va?NgKP@k7dkb?SYSj*d&#p{u&)ujv|Ic1>gTcwD|q z%7+okrugj3={wjdA>SbdXLMLYHxcYrXZ|KQ|6Xuq7tazK8yCBU_@svKv$Pn(4f2So zg{}ax!soxylT#58}o5#FeO~^x0K+07KKgo^AVOh7&#uqq*Vv|5*p@9>k;U`6E zj6w+CD;Sx`gbJH&fHjv$bD#`ApSdUC&=BtehUCv$Iwq8rnQ5jX>GqTQie}^97Q=ydb8WL> ze~~E5ovJq{D|ZMTHHw{$vivjh>eJHdMyB$pxcsoVxL#O%LbRt%w(pekK)xbNooeWC z9`7<9v84tLVn^H-figvXM1G)&J=iKaSfwgSPE1uK>rW|;?H5*_5LdNI_veYzQ@1AY zUDoAG<61vUZNz4I=6hs0cR!GEZvf)QpGm&K?pci(o#7Z4w z0)@U`xy>!luu6Su#wZtSS&@RcvnEpzqlW#NSfOUs3X#+%Ggp~PGqib5O;9bd7{s<5 zRav>VCP%VA-`G-aJX2z6%Fva$G}|*x`JeRo3@;rGhYe8 zwV7>s%64wbaxQFv>e|wzA>5`Lt(BhGBd$IuE;}i%IK`GVGnL)aeFM_{bIQ7(JEt)D zzGxqr*B#Ch7;?n!UfqF<`qK}a#(QZn6fyMXPSzXtd zv9&}I@T3~k`Mz57!5&xNJbWwI=I3n-^VWrseQwG%A9l?{a7JWjuEnsEoSe1+oy~>q zGX#8DAwip-u#AqGhQ>`}Q)UR!ICKW#8WI4S%>vNP5FAJD0zgBUwuW&Rcki?XI1T~$ z4&?k3Ve>eVsX0Rf_JQN7hNG&QdCSp9t&LBbT0rginrE(CQ;ww?S)`GDll%P-tw89t z3C#M(|3JY)mc@HjneV29M15sPnkg2Z&fo+sCN_y2x2A55JuTnK>Hcxx2+KcCezXBt zAZdK(utUBwX;00l~Gk=k9tpF1Yw@+6=Gbq0#LW<2pt(8AjXqC&Lwav(Qy zfg+SIOqs$Vok(tXYB7R_K5tm9=Xb1~P+oo6HL;-CcYvpP-o|;gjxhxq_NO(^Cwkmypu+ATerq{9FI zcrX7~%7L^RHi<>BAeFI07-g`o_?YjBYw=A8H8(W$sJC7-MHkk@WoCm+= zIsGk1|8v&=TTSuO;41d!)cHKU{V(l8VHq@&tbHv*{d`q6tQzOqmCM#=XOB*ER z4NU0~K~aa~U^lzJU0%IUo8@MmM}2#3Jg-ZZ<&vc*#iUjUvm2!~b&^U)sx2`o(ZX|_ zl-1PpD^4?e3&dIct%>3|{%O;mr%f%_4IRfsyGt2M9cyosZvT;E=vUr(fHJsBf7>_v zTmQ@l{@LIACqD`dBYYC*|8t=KPl5iA0|OrihJNoK|G+m3@fkE8>8C;Z>T8~GuYA`L z)_dL1_^7e5Q0g|yloCR`CXzsBn~zQfHChN6H~;S47T5%6_wKv->eLJq1R=8(NGSF9 zjmhH1#1WZq=$1558^XQ~vA(C%52I5Ur2?6TRY?RQyTaz;`&3CPWxPtqGbt04j%3F! zw%C{C_oeR07gg+Gj@GEoHoHbzJOf94r>%@vBXDFG@}m}PO?vM^;` zm@+R&m2Ual$r_FlC#cCJK#nVJDy& z4UUDdV`17xFj~kKCc2K!IV702hbE!uXai@+#Do2y4Q zM3D_hve^aj2|$|Ym#VC+?8XrE4|FnQf{(FEne}eQ0+h{mq?xyF*&6#m44_#OT%m2* zlCot>8PCE&6$;bH$gny}thc16W=bp5%F^HX!7RsN3T{=;#cx{Mub0XHlk;4yxDhWR z@_Sf+_$gCkpCmhqYwl3zXtFQ(P^+UZ8kWYtU_Ki(7ky>q#eK`teu8m;G4B`d5F*2} z+&kgHyQvI?mj0EWI7TgrDNX=1Vs}QQX24}e0?^Qpi4uK`@``9pwk zR6^I0aubpM_9N$D6|1Qi?f9Xye?nX3k!Xx!8N_Gsz6!}K(3un{mh3)#S*wQ6l@ICI zH}~buU$?fvCP2HjMK*tbu@)fn1dsy0xK&-p4Zc1y)es{O45R`^A=5BIz%wPr4THpx z%kC*r9x9X76e{+6nQcCSH^ATNOUujuNoq^PB{qJ*%gfDESNYkTTF>cBRi0LB)G0hpg-0j1RND@M z)nU>+J8qsE2QC9TGcQkC<|i$S!}_^S<>*O$N0+YdWzY0$p4p!`$G>hmIj$%PE32;R zj(@{)`p1sppE^fpl~pU6+DUcsh^FKRj)6D5^NmbKsn|MiYdNny3zmsC_2FvUE^$&? zp~>HB+uN+K?$Mn%XP$q=c5d3a7!YNgwKh#FTZ^Q*;8_B6B>?SCgIBb1F}jKwpj|jJ zATt!Xar5uCEr5p7GA5JEMz#^iQU@JXpcEO-7(2T41Kp;!W4is@7;m9``&nD-m}6?v zx-gCY0QL`b4Ex-KBRuJtnRJAwfxMv5=v)9gn}O_%h|d7o<|b`ngelt$4YSj>`5D{7 zjBP$-4MzoPRE}l`A|s$|$~HY|MJZF0mdPo=E^?gU!Zf%aDKrB*BhokEGBZJHA=oz3 zGZ3!L`sPs2y=?xNVgDQ6S*#&{Y`= zoT~2dO>P3TJ2cSd<-2MD81vxE6iJ0@04}=vy}R3>;7GhtGeqAWy7xk%iqYl>%W`=K z^4YyAuqr}(Qlzy@Tpn4LCoRjJ9PkT#S-ikr+1|slLkFdG2c`RiY>;KaO{A=|AKS@f z<(Uii>JC)NYHF0V+2Vp6MR~RScqOwxpD8S7_NU9XOIW2-xmz!@XBc<12D`^Sp;7DP zkSRQ7nwzrBPnZ@4jZhd1^=JmWZD)7!(jPaSeb&--T$t4;@}JYxK504qrk9u)zvaaS z*UGQFV{dxfUiVA^yUlA4Ueq6i-uO%Iu^gdppEPH|*$Y=GbEfWARc(PRqjkzXowCv&IES#p{JOPWOvFd`^&jSbAaDiQ z|Dm7JKiU`spy9v0iU>g4nP!UF5)%&z8UbiqQn$pU#cat;RsG6O#Ov=y2_?7%|7Ta} zt7qs6YGq1UF|01YND>X73&O14g~;c+@e3p-WpSJHSM{~8x~IVPeNnp)po4pm^(%0r zl1PbU)Hv(&RRA}x4PPvi^=n8fvnl}no~>s@wR=Rq>v>yO4o}uD$=>+JySPf;4yiu? zntR+NVhuteq-I8e5K=P^nsG-6)HFm5`)>cZp$ux<+@9Xu-u5q*4z0yC7-4K8XAo8tt{(yU*4W}ywfps&4RKl!qI3YUIp@4cd{Th>-Tq(AnUvGF-u z_m7>!&)K`bW9?eh9hg*C_DJ^>r+O*`S$*^^h4QX4`iUhm*C5KKbYMFRRHh)L0yqFi4 z8n-1bL*Tw>YIxLm0*sD+k>Q%H`2~CLxUv-Vyyz{z^H2RP2wc|lzXYIlej4b4?CfKI z-=F*g|KsofAOFCg{DU~s0D#s9CwD72niD4bXl&I z*#TQBcuS*m2RCxw?hfvp0J`-I0+Fau6$QCSl`Gm)$Um4ZuYiRw1`o2+13|oi)rfUA zsmCwROc!RUM~VoIHQ7uzY9Q zo}Hq~98pEFrA`5>Gscue z{XE7V@*R**gf2h+@#h7b%mLMochi^N@h|UAGgE*D!C7q50}rId#0X-y8WNMAclJ;r zS_DeKS|0<#2CH{U4~PWB12RoX#+GQf8~n1Gn2X%aEnh6nO$Ff@2V}(H?oDqPwdHUV z+*NPzr1YU~Q#5yPG>6+HSj}@a<$77Iru;`Dv=l;!_Z@p%El>TZr6D~lR`G2rn z4wJs)KL>z@ZAYC5=uB+5fzE`mK?6nuK+|HryX*dnj;;}kyb}0By!)H(I`?}%Aze1W z@Rkr*V*LQj0plvMKyp;M19n@#a7}f~ij48XVv!lp>|56EGJ&;3WcrzN3~%#Cj=?9* z&3M<~sDF!os@(LAcg;a{{DcGwDZlOL9M@GIRpxk;t;M3?B}@Ga-p=RzeNWn2j)}4l z%69f?4jdEZ@sbr5#uHZ8k0=flrdq0v6&a~niLptVBqi+B+LZ@XTUFJvJa3vRAvRW# zqMS3=!Mk*+z~>O?9=Er^7WI<$2+$b{{as-4FM%#-E&h!jKPAeIfM8TcMztJiyceMC zV}Cy&+b2Yz*84~Q;KzRGI(7ls{l+_r$K?9+QO@MYkzx^-$*}=!C78_``biUYV(jeC`zhGPyLr0Hj zj}yQl7pe2bRRyX0z3fi1wjxYwRQ(>QsdNa#uSI6B(d|DZJ#`bsu->^-c zu}!>d+V@b%a(UFaGN7Iv(Tp`|js;UJbJ{~snOfS|U9WqHulRdEGtxoUH=^ z7;fSlf)Zz_MF!bz(aAJxO7O<`jC6DSROQ{iOVG0 zJ9G`brsm_ynoL2aJ;l-?FT ze$yTFO>7>bEkL*IXurdOWn@x`B17ptsXTR7ak@)$_OSlQHbG$AF+6RX8naIk-B;)$ z0+dmuM2OFb1Pw=W1{5DKF#}SAG!5u%KI~YW0~WI_FWQz@tjmk`r3Ks45{|B=B?RZv zBHX1pm*!})SqRtc3v>2GB4Tqa%-I&^tP8|fwH4m3Ay6Y6BVp6rye;Guxszk#vsv$= zGc<38h;2G#27H48BneZ*W^H1|Ha!Poe|M-xy8nB&k?ZDGy--OX8BcjrpNY1^{qyga z^7t5|NQ>=L?)Xh`5dbY40PTU8cw&0CHF?VeXsZw?9cA zoXah8{7mJ!YD6kS3nD2$|C8QYfz_gEi8me==kX%o`0P#3?02jkLuq8CGb2CYDB8U ziyevi72}awVOC*^_p+(s4d3W50wdF!+QZ`A=S@e=NybEh-qX{XN+JmtgO2d<$5U;2B?W zhZ;n#mz?7d>rdn-DbNUTt|t+~nnJ9CM|9GXq*ZTfS=zjthktqtYyz}@`YX70<*gi0;9~-d@mr4qYlvy2ys<5YX$u@q` zIJIJ$oY3`+IJ*O4w=+o>HXQ0u6&=+SJA`%-6jumg2nJ3%N3B1A;tEKapgE%vO4d(x ze|NOV(-U1Fq7eiea+%zzaJD!a;SukwseIZ47!L!(Gg&c z3ly(K02&k>AxeWB4LEDwwzObfp0_V7yB4RMGo7~124iETrm{elo2%NDugWb~6;>)r zsug>x6_r);J!P`8GFfSvysSdCr%rRQ%W`(gIk@PVUbKf7%;B(kVa~V=A(~pC7N#WI zQzj$sNaS6=so-u8mAoS=`}-E#YiQE?Ji z?MVIUBXC8p-f|-W_l%#bi1jPOJq4+7wA~`*;^$8sLyzc>e$#rkPr7qX1wX<${jxl) za-$9uBKJ}NzIyv=g*S>Ia|8f1DnXNIfyjW%2tX6*=#juQ$`p z;A8=Ltm|X|8wW~OOC-G+52B4p@(qSdzV1U@wPAYYwz%Hyu<(DoA|&t`HpuA z!0ji_epoaBzLDNSHei?E@GLxQ>Dednbju2%4~a`l+M~^~+(AusQoPtCwuUwPXElfN zQiE;UW74fmTx^^!P3=~A<748P)U??61W%g&c}I7l!(dG%)>WCRj%aEMG=*Xz<5g@=7vu$b z1%6&ZK#=F>=ce=XGWhucQ9fWA0GeNw4JAyA#%~g*yEU1tSPs8wP1dFiUQUj#bhqem zk1;f(?(fytx{{a%$@cHsI_K4UIdm48Ug;$Jo`328^N(Vy3i{rEB_m-Uw7&ls9DBnv z{tZjZE3QepoZzPNbI&{bt5{#1^3aTKEMy9`8k&nGyXO7951K<4^-~Lmu~tK8zpi&! z+gdE$AxRN8N{i>Mhud{!)zTbr1hXPW4o!qRSrtVlGvGK*40+%5oX`896tWOOEL=l~ zBy6@i`;4*mwEFaEO>>*}Orx>ED{v0l`(Yq9X`3RJV#HVsCS$NZ13<$OpEuDN!5#~x*|ov&A?C@dn2kIl@}lvJ4Z)jEzGx1Vfro@sSo4fCfqpRM~m@UuK^Nb$GanjkaqGXBZ0l!^j5x|MlqU`~cF=(yIl{rB<#;_8pNIIyi ze#gJ`zCV0XchoMBKJIOM)jg9Zu-a0@&)NIl@h$$yKKQ8N$iw=B*G(rMF&qIdqtda( z-v`DaxB6QU5-4tF2h0J3{qP?HV;}ft;BM@f?n!usMi1oPCgNkN@`FO}gND;MGp?xW z(w7^P)NpEcNV4ne#->tUpj=iYh)s*%n!v`3FuBLa#wI5x#>XeO$O@mebq7<-nR4~0 zsuZ0HT?=w9cy{<*AoSN@-~R?90PSx?vylKX3eyG%MnjxC(vxd{Qkcf2Bp3}y?E^m~ zgUb->zvLJ>uc@v|Q)k5SGZOhuqGT&p3b3C`e0hIK3?b3Cvia|q*8-aW?aOP+&78hK z3y{f3CQ(ROsaPbzYEsSUbHsbIgnP-Ni1J|ESYvV%7k3o$V3($3wI+!TPJ~&J#HmP6 z7Zj!o3VecmpCB*5%MJ4L{D=tiGx&v>f?~764`VimF5Ssw>7{O#5$786io$0o;59xbH z^c|JPl0-qmHb&oMEIKPKSkTw27+J2ubJf&T0j&)mB1)r{XmDXh z(3x#+7M{^S)##qB(bXDLjl9@2MUtXiTRE6Hy|U}k%b8DJPJil3@R=)tXRi95x#E51 zviF&b-ls44p1Ray>t%igCS^nK%@z*EZ^54ZV;JgN+Fs(iOLf6O($pj$d;SlG_n zo}8G>CL}j%Di@&xX`BIb2;8Dkj5ZN66H-SA(TJ}!g3*8|!w;Lgp0%~vzy`;GvzwPR z_v@Sg$DfWwvfr#m9f$OaL0b{iuWmBfwht z^V!9G1R79`_Svf&oFS!f3q?d|*dXyum!fx(leBuPHRSSH{dv<}w1$xqf90K<)t1kw z%D_VKx+e_vZ~D9&+o0W)8(k7dU|00nN$FhOZaqc;+UI)AXtp<%OCOo2Wn#%1eMhSa zQ2GjV%$_!%J;C_5r--t_<0P=x3hY%v+qN`GA*;Azstc>ie?m-qkQh$JSMR+;B>KFB zv=b6EqkvTtoyG`2gX}CKM5E5pWSamj^05+|vZJb804})n3NmJakof6d3txfaG^|X` z%3vkIh^0ZX0T!L_`RCs7&II}5R&&8GeKUi~Jw`rnMqT}3F!Yjh?4qt3;X(a@=d5iI zoZ(fz>sy8z45u_m#7}+*tuVg>;6SAi8?Yq&(Lel$z~mdAN!&vHK~sU6Z~6O!2h%ALKPUI!U$0sHx1(FRvb4}**+%7&- z%+tJJgA{MzCyo&aYN3jQ6~*5I{r?;6g#p^9q%stpaXO7_5gEm3QS3$}YZ2^5#ch$r ziNE)wz|gzCMM(Xi#(70odsJZC5zkAHOZBD*!50c;S}Dx?qo8+f!~WyLbs}3Lqqz$CQCz5=2Y+mnlzyzl~*dae#_BmV|C@KZP;FW$vtsUz8xBm>vppUJfjV> zZle42LbOrvFYPh{k&ICp)DDZ>c0$*DN`AUY-F#Zr(xz^0)}L_kZ5`$|a4k++2|6P% zjgzARpiz6YDL6YLLbMs!pv_w6;kSCiH=QZl&Bn-rDyJ$*e%x~G%C;x3_@27rdHS;F z`bF=xi{9%OeTaPhg7=AwzH2z1_dSkq!T0z%@8cJ|*DiUH{>cY3o>|!awVnFn*u)gO z#6Rs`T+z+eurXDCM{!O>%^=TijD}O zB}*UH%mDSofHS(sai6~XFZHo^$c+CUoZ$dk?3S2>2ev3<6Lhf&KxdMzTlI;FPncRc zk`VgslLbEw>#p9(RmxG%jWbxrM`6VVD2e0-h(Xax1k`*Ul+%Oc5H0jZo@>sm ztvpGIIzxttYPYjlLvY$F_FUH0zD5)sS84VMcv&ZhNN!yHSC6ZYgGeM$VHu4hH*yzu z+&J62yoxdTytW2BPIwmX7Wz<7)I9e?2w4CJ+~F(w`e)5&-U}@LHaPoUVCfr{wniq< zAohLVJ}{%I#vo7YwzhFT8(-V7kw@Tc&?rFT$Qy|b+Nux@NDUG+us5uB+neFY>goF; zLgZ&c(E)h?l*li+#&=20(01f>M7RdR5i&Kn=8+MXXW)XC%^2$5@hu@N=?}Q1%roAO z*W9yv7<;);_r8DrJ>TT4rld#if7DR-ZA&Y3V;~oM&%f~B{_&6eg9MZj1Voq;5$BW! z|Llj~F|rMd86Vn)9|cDKD=_mbq7sRnTOvzEH~7B2Zy(?PGw1XRw%$|n-A0~JpP+#_ z%$H({k53EmHOX6&goz0$vH07X7?;o@%X`q+EulVt3Jd}# zVj+S3UKB@(K?w5ti+=zo2^^z9?9%{QY>@Lr~sEh_*J3kvc9%?K{z=Td-{1IR}79@$*%uwle^N;2|HH4>-}ilwE_ z14e1kBP(c0WszR!|@$!A`Y>M`=So+XS0uHfRAl z;gBASj)v)-FJ}2NpCZ#BG5b{MO`7HtlBN@irdCzU8CB~^%}H;Xv)$S@WerWk^o(FM zB1hwVmT>|#pf-xmW@aEhgMT#Vw3o?Bh!s>a8D}k(+k_eO-iw!APXU*m_g*{ae`Lk~ z*oyD5^ZqB!`yWR*2T+E9i2sQd{}ao;#}RP#lK1)*_fro6*5y9sQEW>}N;zrkx@roy zse6+Xl6VQpMwxCRvu}zB(H27bFepT3OyPOMECAY=b2Mxln>A0&TE=F) zwH=lll+18*&fTDY+~p-A%MVJFuLmcw#?DWJr9V+_)W#<2x5ml0#>!%1EJ;aETF$O+ z%g}G1BZWMNp~FanM@gRIXM$DP4wMrhvYU8~sP zMkJaK$$8@pNzEx}no{MTGgSZBIr65LFeZ)KOCL3yE8g{Kja;sjA~FXrM(Bc{*cz%{_K(5CGG- z^O2uXj0SWzNERd%tYHuNlfb}7_p2E08K~; zR`>z}a!G@)yI{MYd*eUx**5{&Ke6$@f<=>w114Z%>PCaBKNi1Ikxb60#C%vw5qmK* zic%!E@dI*eXG}&;NtTn@4R2`3N+Oh57%w#XP}17bc;l>Cp(I~cwnI>qDS!|SnvJxwLWwt}@}%8L7xX9iRUU1_SaG|wxp znI}!n802XnODt}p|3hGuZle*4U0^YS%LqWD10zLh7()L>wAP6N%o~LD@rD-70daeI{&MSg5Tg06L4wA?G#ruUg8%VLzOP?$ zKmB0fdT(%&O<*gfM<1~*oG>2aCnSneQ&V|~l9V(s$((U^hMeJ$d3M&Y08_PoOLv}Z z_n2*9);tC+$2nN2nP=xseJ?orJd6q-)P47^|F1kSX-1Dk_ImmR1!(4^m>7^ZD!0b# zw#I9=#;aoD)LUa8G90Dr_8UV7Mvv72gd0Zak>CQHhczqU*bnU8zydTSj$GJa+0U)~ z3C;q9p?7VZn7c|+qHZKTIYv+qii_52HLE)SB8nw(7g6K9YB>6k^(Yjm-u5lL;+lHU zx$hh1X8h#fTQuj}R*x%%6v_cH?m@WY&Cu))_1UnL+ZIiRC?Z@82w%P#DAtw{5BYVHvk6yrRQv&^^BR$4!6&LO_d^#NuP)$ zMnV7PnlKAl6%ZNF*$se3&>08NB%9wX`GoPs0gn+IG$~&SJsCca@H!5{`5K=u z0RuFaA7W`hq<+yc3=D!7G@&fJW@>4d7BtFs7Kk)w*loWHj=%4lS<#kVHdMp+*{?id zc!+r0yYNQ>VF-$$GO}LaBY-mSB2pm~;t)lFxSj~4C^{qT98h=sG}!lXaOi#i!m48( zbcRE+%t`eD$X<7*c?3xUO_G4OH6I%*Y#MIiQIq>S98vOCoQzb;oIQW4!M0w>n}-su)0GUP!!(JjjJ zu)D#m2RR2&UY4v_&$o~f`mQ$;VO&-yDb5xaXYum3Ns9t(u2+!l~Uex209x;__Kcq11Z%>82Ec|_`|^5Ywj7&wF(vkxcxcTz)pUkSKl_Q z>KRmZ4J*4x6=$X$tr-%7ctZMZWxr(e6ykHj&m zM1jn$ncsXbca`cTVk{!)jM7}(s3cdtRe*Mf+*U_LlzvHf`0Lgd)E^WFd(({c5;DI- z4mVeCwcHz#n-hGl-0qw>+Q{c#a>8jKc~i7F7$Omj_Nr&{H~!`K1M`4pFepakKQqQY zOrQ8LeF_-uy}-gRUHy~l(sKsFm5TItsw#O$w20M|D*$K~z8F-EgjXMCXhe1v5uXtj zN1+&c603cY&aF3ouAaXiA_R`1HTZ-@Uj!n3GK2$~5d}~&pC{#mQw(}GB33MtiKHb8 zjYqCP}CSXT~06+x5Mb!ui z9|(;QNg2UAH+Ek!#S?iJQ7?oLji4l=@kq!OgF`TRc-C_EO)uoF=f30aE?1k*8|oj? zpEk!SQ{z+l@oCazo;aDgWN3cbHJ#71CC9~yl9S@%;~gS-Az#-Z_P|XxKoigt^cz13 zlBETThL{W`askSX*!9JE7^Y!c7?%+LO91N)1TG#q0-ZsEh6JAk2LI$Af*Whp7S;ZH zpzjZUaIQi|yzqV7KuIzS6-R%H5Gsz4prIcEm%(qfO2p#0xdVK!eOa3T?OuB$U!nS} zS^iP$T><<=O7s#7k%a+UL4A>;to5IWEPF5}IN9B9DF7OSpHNoJkX2atnQNx0^)rZG z0jXn=v?xzlvWu6$O`dC%`n-}{F8~@ZH^9qF7v`B*KlqA3!<(th&ry~!47T0mUe#_D zMe^LjH219f@O4w`c}*QQmNEHa2}I!)CgO!Z2ccSkkr@LZ(GSPQ6d4c6C`!;7 z0@>s8W85D2dtm63;KaXsX28u09T+YL#CN55&T3ANse8vYeWQx@FYz z)tRbfUb!`I+&vi5wob^;Ov+kj6o)Su8wzv*Gph;fP^ELj+A8cQ-l<8WEwcGw(ccbh~lkDti<=HlU!wz-sQBy;$W}h|9MpzszGq6FM=EP@I z#gSq(P=$bdA3B6EKnu^>76H&sInOdN!U|=km#?XomoIxBI`4WEvNHg*i{8gC5{woJ zh~o_47)56QXowI|8VB5Pgn1gmCC|01=}(=obeIz?M-2xTNb z(WUQix3=$7Rqa#lZ#33Apk877!6vEmiUBTS^kTTk>WJHD_Jms|6{4a|JFt#?sfv8b;6nQM&O>%MvAPuBU-a8o`vCtL3lDnmyz0?J4v zYCeMqhfpGs+gA0KB50aO`iJ%Ps4$rEe(4GQ$T0-j8GK7cA<24`iJa$(rpE}1i9*gh z+;~fUKJQPI_)W^?LfZjlMM~!Y8cw3E0L10|E&=HKv6 z7xPV&JPJ47v8s{GX(^G!|K^&sMFE;o5Yckv#AgQLx?0RaJ{0Yt_c1^tU`!@p%cS13 zs)82f4)6_PNx(_a#6*IIw{M0!N!VOQN)FTvaPm}-3 z3(ov;s5QP|>i}&&y6Bsp&|99dPlH{+TvT?}$LTi`6h;C75yeVt5DX6Tt`*gV@U>AqHA}3d;6EdXI4X&G?A(EJ$=^b5!(PnKOEC@kO?=gCSmti`F!NEboB zF+a!_xWwr?)&e&vAd1XVM@g0UFen zR?bMuk7UG3}_OVA(r8ZkulOo-~LJYQCmIz3nK#f_7(xa(js^ z5K!8b5`|M@`lhV|3{(VbY}5=lwaMlWt_9G4D7B@)CrRHUug=yLiA0Q7?mH$wdt7?v zl%(~5sYc4EOAX~!nhI^Qy35`<36En|g2kpGJ|hye>1js@)Q%(8(FyA$Bxo>0o3Sk{ zI+sto&&uNXs)V%NBJaF+ZprnvbMA-F`5wC9``RVnqZhr8T_gr*REP$dT2#N0qB8(A z5-!r?>KPcXUG`m{&3w?3WIJSTy5jxDvhCVA+w~F8g-oHoMc>?^?r+z0p4D`oHl3+a z*B8mkf_!g_xhV`2c>847GBali&+6yH=HVCYeE~+bX;$zhdqY6fb_XCS> zc*E`TUDxau$0 zpmPx|i6}+m7f#-iFUerdAF$zW>9#UqNwJ`$R9x-rB?kn;1oBs+ zOE3a}#)VG346}JuXDKrE4=F1T$g8Hb19PU~3gsR)o`1wuHRlN} zS}x3+9}c-58cAQS_q60`3U+CI=?araW%kHS88U}mu2r(K3|9A;wUwIju6gXu=v}k` z**Bp5C#cFOQifegn4?x3O{HB znuTyAZqcU4ER&sdZ4kNWC4?atgV#>mI+ufwTy;Ht-g*6k?eUOn*)Pzw=vul|y&dY# zc6CRaroC6!*K6u+(jDK+mX}D%+Z|_S>|^t$*?Gg_ycsT5L$$I1x30U3cG^s`P76eb z9t$ISB}f2TK9*N8Thn6V#4&L{ag4p~4gb_RRGOxBB&BNO67}(E-W0wgIi*#)gGgj< z*m>Pp&*MB+{#e@Orbvp#QtWRN_BsF3_pI$?NgrL$uNjEG7=$6vfS@M=$0#TxNQ#`n zQ&8YQ;M-~(DC~AcbJdPifG~|jq)saj8;^!nW$yWp2fH8tNT zPAjufg1gLTZL(;dT!n8O>7%W{j_euB=_5i%xj_F*_YA!eX;24pq&9#nFFJ=nA(A6D zxl;HqItMYBzY7jP|H6NyhkxuC8`G4KCZ&njmV3K6O?H#}wiPf!IE50mNDRV81kPPG zh#a+Wh$a+){2baR_>VAR(1{aMCvXWAOEBTmIXBuJZ_`^b5#Nl)Hb{G$+y8l|P|uqy zPO2ghsD;uBd1j?NT@D>}G=vBiXJ8$~ngkBKpbIJnKvRH?kd>%eiC!*MiJ4k;0OpW* zI|q2yQ!;NzRrp_l@!$Gpfl#mk%NeP?>znx`(Dm0~7lc-DW=b*I4QR%x5w1CM6FtE} z*oMV=9|;pde5o2<#EKOZevPDay=bwLXC- zi%lBUlw3D8=BDW|M7Wdqg(=D(*!w^a!l~JO;s>ujoJ~{P_GnpHY(Pg5=!^zhB7tex zE+(syRmc_vmAHgJeE(Z@}o6(f+j6keOe zAreSPHsp^xa)UBiL94}98=EZ!ivup*$WR~`8q|zcNQP&ey>WqNa^rx(8#0kfrmRd@ zzDH2GTbau;D!(SjtK2Ezv2NWqEn|k?G)5%dEiJ54R7ph=M$9-B84iWdq_EgT<}qDW zc9MQbRRryHZnEZP?ce#Q0MI_6h>WVHQ?*6{$}mVq^c#u30c?9C2yXa)gX8aEIYegg zNWgaMlBTvom^WwaZ`B-UW7!&0RoK21Hm@vL&o5aoEm|Ia$b98V=YtnKQ^!>WgXV)h zy5cOME=OqFYYZA$73`qpbfb%SqTc-bJS~9!#O*BjB^mjKJu->XD0fvFj#Ub3tBti* zsmY}cllG-0BA&lHaBNq>hcV* zu}Nm0>cPN;3(m_c?#nCQ%jbMo&ifv^=za8p_puAGK_hash`j9f&MBlt!TId6Sv+Bxs!>07kTUCN#=O-H+?yO`};#XmV<~s*~mKYP0923jN#D3q|`*YXm3%0&s zJYN%+B#%jS#WBy?I=*S^{J9(Avs)n##sqF)!OqXmoa2SbvN=r^5lcZp6PzV5>h`w~ zpb@?IE)flZU=)0TE0W4_xSu2+t`vH8%};K;S~L2s7Q{gqf?|*cEx^gqo^doT=_>vs zI0=jf7g4V|8^B%vwvUqttlqnEggn>npv}g2t#_5njZ~60BO)Y3n=TT0C$Mx_Xn)dn zh8DeAI(HX&I(p0U8+kK_81J;E3WBrW2Is-Ik8sV@^q`@hOGDAzdNtwBuNHkH*~{*6 zk5C4H1_>Gh%+QDvG#bItBx0ljAutFB&@kl@bS4xxs`4+IPHq>QHq=8Sb0qyEb0z-& zN=+6wA++cs0G4N@CGgZ@z%w|b7BUhph+sJ-lnW&;Mx$jIg-Gm_%7QXkt2{8Qt^g1N z`Nq@c)33TG{}3E`!vlaefY%MEf≪p9VXj;>ZCs$kC$63*sk&!Z4L{01fykx)V#L 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

&H_ZmC4<0jco-YN-LnrWXxLfS)?au7C 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

SeYM$Y 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 z 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

xIqA*!oM1G;E2o} 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 z zoYHDFp_}l(_VeMN#;&vkYfu~S5vK&gm)Pt>RQ0gLx&Hp@UH9Aysz3+asV`mU56Jcc z!h)2EiT1u3X?V9Zu}7ZVFO43T7oL{)KBKQhjF7HdooZ*l+?SEl6{CBCpB(c~kNYP_ z_=#aZ_NPYq$zgE<-{azJmtFy-p^K3O`T#Wd+eS*eMl96zA1+6IKXF$cF%cZ z?X0lxIKMJ0kAZt<63~YBL>(c$_v>9He<#bHz?yvh+p>LJ22(7|*#$Z0icq{jC}3LH zd#-%Q186*C78@{nF|6*~;_ z9FUNlBJIG6#EB*{`U&w6p`m8NJY_CmtSsqX$o|K=(5p-BF|0K91IMe?WJK*| zK=fF=EsB~XYND)wi4It9mzy~po_i_0|Hp1v~FtvNBVW*iNR(dGLa6yzM*`uJt+BqW|8&tO{nfaiM*K%X3o3qfo&o@w>04OPxJrFWsK&?J-&t}2xt%i;PdllU=dbMgA-nHS3e9N$+n7DoW-Z?IfR(OWh2I02h3h1EJlfl zB?c6d5YWu-x?EP@VFDTqYJ?NgVlV-X+($thSx&nV z*!#oqnUCG$AG^okY6#=bJHaE+FJazAWLdA@JuCDa^XCuybF2RJf-kyX?Mf;ZLJd@2 zg+3YV#6hF$F=P0exdhwUW6I#~6VE{@y~rn$eq$#@vn_y`fY1b;{`O#-uXSfLS+K|# z5uS#$)3&{F*cZC$tiYB>o|evm?>n&Qt-+`VC=%G|ZU^?hX)gm*gqfj9Py*pWV-I?O zuhG|WC>d_9i6s~WiFG6^PvZ}QCqTXE(^JX>p6eaQ!yxpN+`nZ@tc8CnFcN7N$9UvT zxCD}`325-ZtU`i-g@cf_(jJFk1z8X7G>ck+t)J8hXU)+Q%Amzpft2fG8SLTJ2{RIl)PZ7RUn~iir_7Ueu;vvsN%6pl}?7 zfHvpLwKOz0Z*RNd9L4RI?YS4M3Fy$gqW&=f4fopqW5GwhsHv3f!!qm-= zB4^YN4~UP}x*jov3Bj|RVoo>=L;BX8z*?-KsocCCJa9@IdLy*@in$6`SWqC+ZT}{Y zk#%`WNCsMc@NdU_&WM~M_-LP|Tyj}|&YYSS?4nNw_CApCAtHgKvF<=R!#5&8LCH@! zlklS;$Vb{p8Aii`Mg~6k#t_{OIGv`3#y&0tg`U^@-dP&9TefmLn%{{dfR|Kin8v*c z-xI#@zBi)#lTFG$r(VVJLqZoaNt-+U-=r_1!d^Wwc(KnK{1y!2t7ai5s#!_zQJr2r z03>8xL^K&@Y>($4O4$4ZoKH@fl!vGJ=_zGqUYgz|%ulM5h)N)yqRLR!=6pKjpVqRV z0aWswH3H-cOuV$**9mU($Iww|*fHCa4atwRt;(2^&C21h9!jY3kmSH^60UJIf42LV zvf&J;iAbw$!XpUg58`!^M~rfFz_}3>0~12JaX9<+nEA3*>alvpjlSdh)E;SW6jlbK zc-&YzrS4hsFHD2E<;TYOnX*1bQWZE$TI@(h6A*7l&O$=B1g+Y>UbvKa4MS}!CWLfB z?G5^a$R&pxDW@2)p{!DY>j{X#YU7Yx22PiZQl?*yb4HO5&M1kJVj`e2qnJ@e2fnc@ zsE(w%yo!|8F0Yw@pyco_ST8Ad8-f$um9buEk{q|}7b$MBYIP;9BX{edRqQlefUF|8 z@=9>!rQqVA5Q6I_5}f%(z)-<$LBTiWbEcFCV4$EGl{CYSD9MDDGnJ65#`AiAQLc>0 zQxn|$c*ksC(^&V;N^jFZFE`L@441|EiZGuL3uu7NKGnmt7H>j#ID4P_HY*FqPza#b z$xj>jT{Qy)Ytp-Js6G!?2lP0jL_7$+|95|Yz)&`OdgZx*A4bxRC9t}KDj;S5z2&kx z<1UY7-Pj1MrMyE#S0uxWJ!EyddgZv4?=fNDnzSzu_af%ayYZFD2ezo@Dy`iKExB1=)8*`? zIzVJ;ITaNtY7FAR{Vv{E{-(d^R#$QdHN;4wCF>tp@TlSFaoFSh7LPe_nE%H-rP)-6 z2_z^bY$1$jL`*FB2@4>yX&^nHBxoTCcH~ae?*#aO!XXD=olaQ))$8@(9VRHDx=}rh za!7E-Foh`{I6%zeMTRd}kU1Ht3FpkI-S*NEYxkPEXSZ*1w7D|hKD;6g!-I4_Hhwm; zFlzL{+67Ekf!7oTA*D*Ekl&?E&I`l6dO0oUb7~e&k0e-o-LkH3ID$>|%iVJBus*%S z4dg^e!L&j12BCpgl=v!8X(XaCL|U3PswLLj-Ol-a#~|65*;;`0Ia~yt=o~Y8YTZ- z0vcEaye~Y63PRxB$nig=FVCq3IOBPW0%~2(zhHKQZG+U{f=R5!cXsSS@>SQbv3l=Z*2QGau(8%$NbRHWMgz=&p+T7p$yxw z4Rcbr-|l63s0$4gfOf}r=E-O~J*P*2IvT|$y#rVp2>;p99&7OfbK|63`6}`#JR4sM z%=L)YF?|@RA}|M1W_u2Pz*2(O3oVdLY~Yb1-~ukzP%UQsPM&vTf|>H$Y0gXt`T?!y zj5Umm28WbBq=JG;?zVdn5GWu&9P`E&N=1v%LWjuK^W-PY332uC}N z3kXDuLRZta7I2%417#1VYqqpEH!H2a=S*b6A}$vjh}pByp?pY!fC};0`!izsqwvvx zNxh2Dr%?qF8D2Ma*rHxBGmvDFNwzkxVa~#$=zk{p-Y%{D(xK8jI~hVwcM z-)QBR-6bYxVTj$S-W%})Vq^OsnH>sm^iPTBrhGA6fc^Sq-q64#gE4+q8U2(z0PBo8 z!Kk7;DtdIi0vU{{#~u0*k4M$Vm9#xd2fpPqbl`$}jPlk$5} zFSZmD(e*3((yNp)?KTqIp_eh(-wU6VcC^@y65uj^m3XSNS@<7`XFx4zd?sYwsc^mK z54q!240t9dq+a0b{xNm=5xESyf_X77M#xu#W**P$a1KUsA7r6Mybc$xB~FFL;WACyW`sq3IcW78j6kM3y)Y!O&xa&>M+&i=3`S#D@ewENR7+Sf_) zE}+$c^*gcXIckS*(l7MtA+TUfOkpeoCRWB_R-25PjkVo|RTIY`_o@@}_>4F`BhBuT zXBNcSUDAAB=w!SoZo#OmG7}h`P^R4sAN8~`14^vwsK$Eb-ld-&xbB0I4?zQq0yxEp zXsxA2vA8VSL+1jk%fpz^E~VBXN*MkJ!*$Ld~NKxG^^l^VVcXyxm9~k z7XdYZf3P$;F(6bZAw-bDixAG7Q^wRub?Uf0k`x0gf%ya4>NGbpD~`>!PmVW_6!>m0 z=pO6`ROw)<5tRwP30_ru?3E+hZdVFY6GC<)2O+I!_2#sENC{a`eKT8|t%r(%-fpvp zIbwlJ0o7uI(Lze8NJU_GN@{{v0*IAEel&n@00$lpBm|d&0+|KQCzzrf)byBUr;R|$ zuy;iZha;6`J-=)gx};!SF`jbgKTV$hD1PSqu@g7LYZpQ@mLOV|me8Gqrh(rRk!*@& zbjV`B9Z@NEjW{$I2jS9a$wDxscJ=5Jqr%DrH$5xNc8dKuxo^B>cCu-DqJ3dpT$ogr zCbapIKAqG0;|g*og~+Z78K$bFC92ri9o`Z29Z+Iw;Of*?L?8dqrz-YiQBWlq(LARq z?X{?X%n@n+xHNx&U)Zb6?Ga~=$xHjgb8?4z!dcpD zPM~vLCo&qGm@q~ovRyHdzi(`WA0PCO4+#^)*!YP-VQfGc9uP(c+(9Hm2Y~^#6AA>p z7rD~{6H<>=Vgnj*Ayn1Wjf9=VWrb)@m!6#xhWGha4vTvZDEqqYURXl!sx*3}Af@}8 zN_|EVlK^{xO&S8P1r1?Jhz0>a0!+^T4et8GXgFrF%7la*a&y3 zxp_U%;}H7B)R9Skc+gkr@pXlK4yJMZqv?w|8H4G@#0Y&#&~FZjl~d}0r}bk{D^2hv z1PQ_%k9gaV02ElwH&+)2wimMe@|&r zpZk5{;(}hJr#$Sy$E)&Z9l|IE1K_Rff5^O0YBzzNffewd5>H<-DCz2YF5-_`_U8Eg>ljyAWY1>qP!jGpW5P=B2wO?Z97LdnX%^=agEu({oCYu8&^nS{YO zUwEk@v2oLmp^gXyH1M(DV6h!hD|};%*@lwaSlyTt%ik}c{S8(Ow$^_VI}T31&MWNL zw(XijImJ9y1UnDEeH1^N6tu76PyI{!WpIppOj4cINRV4Lx{)3id6)3kKaM{t@9-@N zX)xz-j{0Nr(owSy9fTFOz9*Er;_! zn>%FmLp#lwG{U3XFO-SPVL)fESc~8c;kJYp13z;}?s411&!cBQ37_`fl<4bW>463k zs3$7uNen8=tt{v>$f zi_n=53CaH`#5CCTkbLKwx%ffo7#RWph7Ti}XFeci@8)G^1xVoA04vk5V|ybUDtA=0 zAo}Px>8E;HwUb6Ka2lDJ02QE$0R6kqXa6GpB%@(6si12Bh~WunMB6#o(MU`~XCXB2 zMRN*xfZwJs^@`Ejm?fL6OHMFCr_NDLC%9JqcM7BOPYztO!J9>7&STPxbM$ z=y{|eK-k@f!DCm9U9}OnVdS#$=n?syu~{Faf9KA34i=hEHg5D#M#FUK|Hxm9HL28H zOhhBre9P8!yZq#7CMy`$o(0N`Cft~iMgc)E}D>`lRO98;w z``)XuVhOLZc00Y=N6}MLKKMM`hVky_k;frJ9aJk=L13x@d%s`rLp{-ec#tPxLh{Nr z`Jb~UVa*5OElOR;`3{*8)Ckzmvr+|V6aSpN3?U2khkbURk~8&UaXy?G7e(hcF z2nLmxv$OTR;NkCwj-*?q-)DfVLL^s{(a>ui0o-^iyl=PB9Yp>k2vX3Pg9^x>knkrk z)(Altt0`H9YJ39*8*FntG6qdA2s5+F)Gm2;Spq}2>vVLF1!opk1d$Wt7NBPh@am5e z=kWBm!h3-_NOlUG^tcaPLp!yf-YmN#M zLusopFu+>vyi#lB;V7ge9VOJxdw&^Ugk4Byex)dP?+Gqdl%mQ@m~RVuW;W2<1Gi7W zIRf+$jR4L^_NV-bljhz%dS67A!cG|IJE%{HKMCsqh8i1(%qU$hHH zGX$D(5X}r5+IZPWn!%JADqHEf;J~C=SP56=V*`0J+8@X)g@&f3LasIFw&I!(lKOka z(E)LMOqd$;P0Y5B&vnd<3-dG5t}$!2=s@2-Qbg)!wG@zI0N6+7CLZ+S2_!W7(79xm zWgq;l@dDK&>;K$!mU?LY>4(_&uBUHEL9zg$5||bD7D9EvQB!eDDc~S&0*CNJkh*u6 zU0=Pa`ltTr+BsZ{T@Vu47c|}|DI-1VE{!+W-QewZKm%ff9+)8rT?>{~M@n$gGgBc< zr-3W!;p_(QE_6QUB1lS!gC;k71-h7Shu@%+JrSN=kjG}E!6WLzVR80=ID3enKdP^E zimA91Ep`-Ad?BhOOc|kuk%Scmo@2LO=;Qmk+Pe#Fg#+Z4k9F|K%=kI%oW`pM~a3KVn{%uazJ(Sa=OgJyK;W7w6tXG!Zoak zs!d9@<+!{U8*1qr(TAaOVJ}4ydK*9NozOJ`+;l_m+hkG@&f<_``q@z*-S+F(EFod8bM)589FgN1EBlCM& z&LQ(VVo@ofhWBc$er(^X>H7Mv-=}7ThxcS~?4Z4SueNW$x%*IluOX>`b=CX^yiyq_ z=?yb_e@xz{V3m}f1!Mkr_|RNpN)ae@PJsLbkRQEsmoS$1XQteN2#>UDGJIK860VS} z1Af=3rRaQ4MZQ8XsCOzxxW-tAw`(`hfCaP5%*CW2u#$;W!)aJufiS5AqjHq? zk^aMPK<);x4>GNx07o^Rb>Sk@rj@8=%<-;jjxfVvW1vxi*{J^hL z&vg1UKp255xNRSJSzlf+pkc{7X^(hZ6~t69%hcE8UAC^j^=!;$v1a&`7J0;iNTsl&FwV-4Xf=# zSW#oYyr%a!Z*l+5Zxn?$dOdugPl`f~{M-05 ze@b1t6kNJ9C3F5gR@ck=44@=X^0JtVwa8#EDPd6NDq>z>FhaNLKKYaA$=A)5RW1z_ zIGEceI$|FNPrYc*BU=h-Oo{BsjRQUYMI7<+=p$-XD9;7B^RYJpLvvItgWUp3445cX zKHkbtiiuA`CqD_F@?MlmAwqkI54#H3#eIIK;uEz0YI1J8BcR>!Z)9j8_*u(a zU80<5dM|lA0zX89h3HqY$ARzhVQ}q~*nL6nKcFDjw%_2yBC_WQ!2y3T&YLi$^~vsv zKfcfw+0&8Q=S%P5QltJTNptK2g$ekFF41~EI0ngazuNg}2$`?X9G1!;9&q@?;1NYu zcNo9N*nT?9PS6G0ke~OgI`moSG>m#cm3+<^yJqdWW$$^-nt#(;Li{F>A0Rh*!~kkR zV}2Gny(s5SXah)>cG=l=N*j2_n*KWe^oOzI*>>dzp@U)rMX1q-)nS@XGWm;uRe|9H zVG28+hR(bl*atT-2;(rHfrDk+8vqmdMeGR#q$9L2DcI|~2VJl68lanrpQI_m>ppHt z??XMI5C9y|fCMc)@}Vz)8sXB0tlaMg_J0yOiu44pn~SJC8+Sw!^^wSS?mcq1bg=Py zob_(G>&Ep5>!+#**FE~K%P`5%RD&`xNcYO!@OC5ljM|U>Hf-B^F$fPO8o#IplaFrw zI{CEL;n87 zrRh~^W>uc=F$(Z;VNxAQb^*~IQ}QSDu}7@&0V6#X$lHXG=oM2f3c?2%Y2u66oX(Dd z>Ggg=VFk%b>oEs*ITPb*0oj&-DFL^cRdE`i1e5xZE=zIbcoJZTA`y(u2Keh$6@4y% z!z?RVn84_%WVon5o#X~^iQP))EnI$CI|czCI4_QKU(3&2f2w6|HLRaG47w5^3Tl( zyJp1233+Z@o*5CR2c)rXr8gmE;U?z@0jSMs9cE%Vb>Dxd59mq}5uO87|1AF<&32`9bmRu6Y_6Sq^q`7_mxnZv2 zZ}OM*kr`oeRGA;PCnIt=W&jYTuW0u5YD4|}aG4wI_m7pikv?gpUm6~eMn}YnadB)) zogA~LhTO4XcOq|hf}6J$*H8lU)@V`BC)H?0DV5E#={I}yR9p_~YQWaQ7$#`6UH160 zFh1|h8iJQ$f$2j?nB`(ZWW23^42Y(+h_Jg~jI}Pl0MnXQ5nu)AMcjCA_f^~BJN}@N zIAO{jVdx(lALad`c7);=&T1uBjNQ}B-%?R{nnx}l;sn=29H%3OyT6N=*T}Vm@K;) zxkw}9;aqrn(C80~VMNt2#uGK6;ehEB-#B9MMiO|Ty%WQ8W%572>k< ztJG6<0Szp~&*D#3IQN@0WkUw8!u!EvY^AI66*zcUudtus!B{d{mjTO;V7K2Q2Y2@MH$!^^tsRH$9@v;Xk?<*H z^3(9?vvLKH`=|rfS+H$2vFqV?n1IG&i(ayqYQh=)ZP>c~tpH-sXh8?ZQeV)&YX<__ z?NzI=XcWOML$La5`nAi!W!BR41u_}50&8;T|DC`7lh_5T(RVv|24Vj=UydQ!86HYvX8y(#)}+VQ zg0(@wSE0>-&l_Wh-g+;x*1o;zX?qf`fbR#7doRm~%`1$Rc)u@3?f8m{MyW|Jbyx;wAN5^Dsh_~ZN`Gp})*@a{ztv)K`_W4p{9pO&6HTn$*iEQ*?Xt0g*4T>S;rydc5 zd(|9p@_(Ov4uVpsQP{p^Tl2O?-;S0@lRVH78TTdAEe5hk6R+p-{cHy$w|!f~V0-kI zedw%ENjFMnqc7AXrkk~{R&|66z8^UPHWkW$qA_@OksXbgYG5FMsu`|3*i>+RWOD(d zyPHoh`jeDq*DIg#nHRL_|CPJR0R4a{4)6q$_-+Lc?Glo3y~BP@IwKhk%q`+EK@vz^ z9rGg2YF&fgawVszrd{Bv&@92akK;-rbOM)t9e)~@npM4oQ*%m=nOAOo6?^P}lsl@H zei%P<&76hIj%qX3^bV)Gj<6q6Ozz`8tgW1UGs>_t2l*6dOCPxqI-Y-pf9!k0E{&<*c7u9z&$S0DcxbtH8m}90mj;82-<~XNTItfG9*) z{yzEQU($f@d;W2IG}a;7JYtqtRy#3)97-iwoL zi=KTYuyR%&gY5H^Ha#LlvZ@2V2tx)F3nEvqhWFwc$V&J|GeS7}D0F1G0|MGrh)yFN zv7<@_CI2n^Hq7oGMhyj#Wv{_oyR+5)ICL7a=NtCEM2q%G9Kf@lL5j3eX#7PnqwQ$< zY3w{+87_`Y5+u(?YLq$s8AyqGdcEff@;gW}|V zab{VZ-VJrVIDc5#m6y`UoUF@$y$-F}BTwj4Z`rFKhK^mZrwtLAwjeQq!Wfa!A2JPr zS&@BUGYp*r9yR!31-1-?W#Kr&YM^c%boy7E-Sg6LpOr!GW8~YN(MCsF#{e1`bCQ5n zeA1oWuk>X(Vjf7`qleH_kUJH8Lcd-riFq9mg5IO6G)@?DAdD_GKcmd-R#wYqC26NL z!8YYU*33kW7_`0t4Mr{ln~Z3BFhYusP-wh`BN^jPw~bux#DU{c?4|IHpJXsX&8Z5q z-yBev5SeB22E;ft8r~=l$E%ldFhheX!5qRy|13$ujoGCS>?nQWh%XrCVRO$=~j z1OBlQVRlrU8(R;J5tac|g#2p5be*HK2 zpcjB)q5`)V?h3J# zR*FfTNO;YxB)A`M4}KuL7F|jxanm0dP$v5PQzd>XE_A^$52|A%wu9sjUyhKGKwrd_ zOwkw^P^bFkxjt#WPnhZA#=3>EB0ttAPWDSP6=AktoX(1+fDl3KlFbJY7?o7={l=i^ z+h9Z^`roa%9&LD*AKE1iA+h*`T$<$vr~Q=~ZeqTDvcmVbHg{xw#R1>+Q2Y3Z zI-O9nWox9|-Z#Jx_QREt$6aG1#$?eb=e5q9o=I!zjF!r2nXHBc<-pPpy9x|Ix+=<& zpu*a?SD)(;6J^;+sYuRLl< zNF8c75JI@W7a`=nPi8{{UOs>eAW%nJjH-g8@U|fa0T)TBC-6*a5qLqVD#7x@h6^PU zi6^KR6R7a*{qml|B$xUFS@oI66`OR(){aA%Vrr&pYHfV#LlUh>`|Lit5*#M1=tEl9 zE@Lz#2PGKHAd88nCIagG_3hiktbI`7U`9Tm6*!5RJtJI?Skgb)AYx*4+A9eQPw zPp?n&DYSppr*8{lzM4OaoCO<$?I~*%L3UT{UAF^Az-s<|0vaO`EV11_8+oX^J8WeB zD7AYojD)ejpVfrQE7-o>mfu(%9YmLsPE~>0f+6d>#}Fn{45Ul9^b+zP3K8 z&4Ic7N%S1Vb}*~pPQhpXJpRO(-$sfkbP!nL^)ec+0o(jd>SAVt1&x%3{c?I($hpFu z=@jIJIQnbB-M@-G39|@bKfzBTtR8jy&&=zCK1Xln+8UaoKB>alNRW+cdn5W@PIcpm z-h7;{yXGz-%lqjyi^mDqOW5?v^#`kLGwO`;F;N`Sdz-hDG))~uf3^Y29T@2~ybih- zFQT{jR-~T)%)t~zevHotCQmCP>uOl9z~(zB;oHnhFqC+!0cLSvsJ;^cAm^RyG2_h( z>4QQqTqq%B9~6rh-C6JHxV^r!OY3w*{l|&NVM2P$7=6tm{0$cFgx032ei%79$HhJ2 z0-BjaQjZ5|i?iNLyZ)i~-Ou4QZ=8^aCd3S~zp0#21Z&B|}$7eQUWh(C42 z7*?QN#9BlHg)6J^-=<#ppE-oZ5qKkHqOW65o)sxz?I+R4qs_ucaRR#e8^uCW-fa*h zL?^sH^gOv{4Hhm`9#M^;s4+2)U^I|4jA$t8f9J1XvX<3`mQN$6yd*EUk;E~!G5L!u zXm>VdP=lBT0Sz0oqrL2niyOgxQcD}~SGR9%;C43k_}u+!@tV6AY3#_>%%CP=0c3h7 zh-r6Zw9n!v(>pkb!=UXiqUWWZEr-SOuVYWlh_OJsZ?Bv`r;YwKODV$FZ*1X!j7c4Y ztrvjviV#;!4YmbQ>2_ihb}lU&V6e!;n7$yFARlGmyft@Lo;fDX9+#%hiF4=lg+VbL zP=U`FdOR=*N%?8yg)u6VYBnYW0aAe}8#5T2O6y;coW-s{=ZZeJUtT?^95|@%UzV3A z^vNEplGV$7=E$@>IWLZnxWi#J`lv zrQqTPM{;_!dF{$|qt|Hf;EXR`Q3%WJQ`OS_6m@gZ3K1 zXR@pYOc&{}Q&Q-VQF+ta{hoXDvbFMzxqtxq^XAkMW9XzgcGMVO*2*(Vp(rPlq8kz1 zfDkZb6R6$Dm1gsfC53G{0i+(Lr@`SX~&B=ZB;jNLVBO z*#U04;u{@qA5XRxdZp5;xU#}8P74c@;@pHZKcvhLXp?=wAyfzRYAL04MwGZMx=^75 zx`b*@Z%Ax1?chJXtS4*N`;m5N0{QRtp{j!DWO#M@HH7@E<5#_k5|atI@{pVg3%QVx z4$A2epAP=N)V+seTi2N<8nIUZw|Dg334jDZqL3g6l3-JpY*ky9WXVOAZP|`(xyO<% z*>QTD#CDw6PLC&LW-^(~&hFdtc6R@%_xsKTKvKntQ(ktVEAZgnbI(2Z)bICI96}<% z$NfUgC&#^VETxrmMk%kCJW`OoI>=z+Aq0dVVme2~*tA-j4-kDs2>T>xIl^;3#*){NELGGsQB#RNcWZPqpedFj>IwH$M2|w- z5L%9IB{I$Dw#4-uKegzoXJkleqo$~b^?-lKlQQza9jtyd*+PoQOUY5w*41#Eu}@^Dv)&|&fl_hZ0G#!6qF1%JZtE$o!Kxd;9Q7? zH`&vGc<{`ajoXdpcHZ)N(!HsGPQ#MNVa+jkkDCu7ptiwzb+{w}^-9fxQfX3w|KpV- z7zPOE2T%Aaq8-v&L}E2a+|bund5zAY$N@iwC2}8=?Dg$=(xLVw>{Wc{|b#N7ANdT|=WVrDs%4=g}Y%-Va|m zV9bD2K4wjy*QzM+ruSZTe8h%kAQkLKd@g{7%r@_IjZggL01a&glvLHD=R7sQf#1Z) zSpG%-K^ib@bYXWhB)KNVVXNXB5@0nCg`D3fUj$eAy~ue3hGkgSoc!aS75Gc}mj4vw zo~8_(qBo3qj`O`Ay?E8yXE_l~j|TU&=mCiZk_qINjlv$*T8S}L7#f=#fLYY=XkY&U zG5eo0uYsmofX4J238RhZhnyLR&tM_)hWpSH>f%!>h>#S7{!onZh-yMqiVi(L zX+nODc?x}C*qYgvAgIQUp-Vgw{4a|E2#FBg41uj*FxFs)g>yl0(AL$YJ$NvNzzEH$?z%I(AmqF}0W@k5 z_Q7It%Bp-2dJt6Zd2%ILl0x zhZE77(+@Tm(kRyc-u>J=SN@+9SN+4hKH|zxm|qQ_#*I5y=_5k!34IM`urU5Z{OK7n zOr$p{8zKIb_^fXq%w4fupu!lC-wU2OFTsfQOJ}tv92WgH{S1a8h95&`G-WVQ0n?y= z7#b1Y37!UU#t6UWJ8F$`KS?}}x1%MLxlFm?IjQxJLNOBHj!id0XEq}1!8H8D`0N~= zGF7Ok0w;PYkSG z|3mu4XZ1CN-oU$m5PB#*!o3%M;Jv_^8BU#d_@VkcKkoTX=sd2nM(&J2yaE~uCjsj| zj9jt=H6knLLq$ZvgC&{{?JPu<;>3vHPD=hMDVSBE0H#6Jyr?CcMs7u$Ue`+NdZ}(^ zN=7v6j>OGS(g=oSw@)_V;61_n5rQEqf$O$6oztMp7i<{iX*rZPf)U+o zLTUlM8QA0+!61xg;9vwXvFeb9%djh$ji>=qCLPRR>J z*W#3(1@#4m9}rz`$Ri-3lY^)IE6{2*4|8rer-La65(S8r80-XqP$Ugo z<}v|fBrJ~Qidk*ytH4t=tyNJQWqH2L)#hCFiff_noL_J()}76|qg8jU)VbxVvsK}i zYWzw?SglBFHE9F>JqqT+oYI0ji?muw$hm+NGbJA=a~K&hG1CqXcITD4Z`OU&&Wm>5 zcqhr%z490RrN`MrWmhrXTJ-+1QN(^x%07+nT?Yx!oM=*z;%3lDF{+rAN~})%F(i7x zIES|uL-c@Rgbf|&Wau|SR){FrIu|lHfMP#gj}$2W-r$b2+^>t=DJFg_7Br)s||(mZc$2 zylgC${PUJ*rQKOe2sOlNO{&L*#GG2lDscoX3n=cS8B2_2f^rNUFJE=VlR`!0v+X3*GY90b^4rQX*6t70I|lx8(Q}f5O}0io3-cf7cx_ zV~^^=pd65SJtC&EGHKnAWc@GwVD{tFD+dWmV?4kT))IWsp|$uB#L#ww&^4Ov9De|nLH|M6_Oe3l9!FtBjp8+d z)S!Op<-=*IVA86BmtzMB__V0v%P2l*zk~gy@MhIWpHFOTspY&Dn{^jz?q(jIB6uJ2 zvMIA&TlOq^1U@;{^NTdXN!v67krwv;^?vaDYi_6y*`SHOcajtMc|x4C%>`ikeOaB^ zl&0cN^*^P_5FYmC052dd{*8E;9fAaY!0;2K4t7a+6)R7Ki3~LAMo|y!>DwVe>wq{s zg&x#B?4P^8Zz4)^QSv|QUxUy5U&WsSG4pERFq5uQ4`RRppv?-wi|$HbTm;ntvgEgM z*w(%Fuy+yA45%C%(t?!uRqUzvgJ)j$9|UI6RXreipYv|O<^DmXh$vU+aE;?{gzf=# z1o8<46%6z7ERgp0EY z=K^RnYaLvOlX61}LYt)>@ZF(QCw&NlRv?U~<~tFyd6044*kLD^U!hv8_O zTShF+T7?&CX7rp|e8Q})u~^kViac^qn%ai|)-2EfG!j9nUeTBK@>AxZWB3aL1O0uY z{r%3NVaL$W;NbAUz{tqJkT5hd+BYz~rw=H=F*G{S2PcpNBYi^?eZyk^sMtRNj04y^ z*pFD%0|UeT-Z5^@6*wxD&geBrOrErwuLU-NtP|r3T-(ravOyXX0Rf<)v#$FNLQNMW zC3@|@r(cH*VqwC7tr^bP0t?Iq)}iD)1k~(*&t5xhl=05&aAY*!NvU2N%P$I39x|P# zb&t(l=-hB;J@elWpNHHH-uSUuSS}fq?Y9FDtT{X@T)-NbyyiOqytXbR{!8Yy|CzaU z{&q+5u1URfg5N3Kp>n(T+COhE;f~op>!iKl;QOb^#}C1s=ineo<{3~!m@RlJ08MT$ z4lqO=92k1jf9yY|XrBHOkYvn6Rq1LM$K9#sy-MDAJ9ZqAsi_$m9WbW{L9y??Bb+&E~h7@pCth(I_u%?hxTfCYvQ+w=bDq|$B9Swa|M223@ji#8kM1A>c+Ri z_ZKJh-=`2^4Q_ScJYmjb-he8CW^hDQu|N@XfK&v5t*#y5(+7pr6DEWU)S3LV^cxUMLJ04xv zj$N2W2A+2MWyXt~EgkxDppj)!_bI-pno5YVxWktlj;*WnRqu=m z1}|cMNmAL9oe30GMVSd#W*x;-@={Tq&bq^JXoD!sLCp;!4wMFn0OF=$CjnUi_LkFt z$Y9p2FUl*6TziRIT~O9NN=y~pMR{&jTwfEm5GerRWyzZ~r~;dLOWzbuC~r>9s&n(s z>bzrq%2$9HKCH?7nzs>bu1a-}%MQ$KuR!($!iy2b0-k(b-e@aF5GroVyRjKw+aFvx z8eVJr=krP|BKkB5{_jaTMS4p3XHP)ZqHGr8i=jn2&kp2u%1hev3b(%KT&avNWQTL5 zNdVQY7T;PC)>nj;C2<*kJYXi)P}T^?smn83HKWgj$n8Ah>XOSBHrcmp{eMu3 z!WJ_knfZ0;tnGIF*od(Q5%Ms)l&;e#v@tBfA1E!7dvi_Z-MR#kYs9BSgJuep&#HWi(a(svnqK3etXaZLic`R$2=R zbkEY35l$#@J`*%##23(^(+z?_<-LA23^mTQSuS|0GghOhH_KY9BrlbuW>IY7dsb-9 zic9!Lx*{~^<(0CxDXYqir!vp26pfk&KQq1@z(vhmNT|uIJXNtOd1a~~BIaEnE2n3i z1;o|DuxCTJ_oiIKsBfujfQ0tWf`JEzmdkh*HoAT|xp>rprw-DMsuEOUGJksMg z^qy7LcfG>@qy%n(rR2O>y&a%oAQ-&biq9da^psli3M`I1ji|rfhh7BCB17^b3{@}_hGa3mL|h#%qdHzFj(aJ6N(Z7Ep?b2 z2m#;`G=$QImrG0b>4HD2rx$`1V8f6WS`zjjkd7S{_mzYSoa@p`WtUIWolSX0@}2f# z7u%)^hz^+|ov7=cgCB+-+IeYr`oV$jhY?;7-m65dq{YA-KCdoDWH0Ta2zV`r!Au4Z8T34n^vrOH2pBr(3@DcO zBj@&VVYnIjdf@c;1NC(u$9n`<)3s>p5Fj$pmh-R^ zj6VlWEuu4l&TN22ZWa(g3fg7Yf&SPmrB{8DYv3gMpAuh$3CuP3zK4~%f5`cYd*3IK3-gn1=+k1XvWc@j&AY>R=b1m6 zrWtXUW9Pkh%kvrMQ9VFNLXrO?d;OE-CB&8;BaKHiEF8NIw50;-|7rY5Cju|_4{kX# zSc{Mu#(gV}$VZ8X(VJMZkOwDsFH_q;*`*t=NAIB)q_zZ+>N;X(Zc*Mww*NQ#7VOUS z0mntpV#(zOnEqJlh$ozV8rJ~a>}q2@{A%cwGBkNc19m3$$UCAl8r63>$k`)A z#wm!oUv5pt-tdqKFj!Ca)9p3QMrZanCK0BLec&of*l3PI7GBckmz)8#36|@o({~c; zsp)I)1|Qt-OruQJp7z*7M_`42<6qM+z=qB{fmWq4v!h3-A2F8f=0zHwvb^Mg-KL~z zz^I(?Y+&Du{zESY51(__pAYW+ZR!~qrD6r9iltxwS?mf#t3(I0#foM!9mKDO)CQt4 zj{*q}uPU;vNFg<_?pxj;YA1B&qeFm931Ktjx!`ov2vkDFvNPKlpQ}0(ro-H)H;)?a z1IGNiHaDkbgR&RK4&dM_vI2QQOpi5<)*6&;T&oDkyX0y&U9EyOguUND=s&pQ-RW z5xEeOasf;YA&QUzn&5$3NDi)RNW6jO#dZvE4Jb{#Q$~WKk?9}E(kuSGHv=bm$nBZQ z-u9dP#VO1iUX)E)1LFc@ybVhg=t;^!uNLy_shBaH^VFuzg;~8-lUJ+UYMEb}g9jL{ zIma)};t&?+L>rpXH-R;25%z|2;$qEQ3hSw;k*ag;3fGDo1w@BW>4gv%o%JuMyj~Ai z=iG(7k<~_J2!E^2LfI%$>>K**8eec@xT>s|xI9gL=Op9Ea4GLJL$SzfliVG`dsnNF zcOW@yBu&8tO9#yfB}|$Ho#J;rW!H_ne*kpEr1+eghuPHbD^wCpz~HOL%Xy1d4Z5b7 zn77pbmRtTBKX<+?RiQKAG3+@rF6SV_#puDvhj$bx8S*YIrOuS(A|lOEGyKgy_F9BT zvxGAtg*M#FNihp?KJ0>5eVa)o2V4n-*sPk13Q<_~(qeYk4@!bK2CkGOV7joDfHp7k zqHriN!hX4`rH{E6z7#$@CnO<(5qVf2YocUMxwEV0+CKTnVc|qu+6&W8+9KGJ+Uptw zZFw(_P(j<&0^6a8ez>eQKB3TN+n08xu|+O9<1ic;>FXpJlZ^Z78j7fughSGv|TrYh;{Ln>p9+WQAX6k#%yMJfNjQ>m(0LAqs z>&P*3PIwI`zY;iQj!m%rl+vmpvQ3wxzwxX^uCwVPxHK)U&#(!^)u*A;%pONjZm(UBS3G>H7 zb01|sWG+lnNQ03*5P1#_e>HsnhtUV+kx2ly+N2+3Ir1atRcq@>qivJf>@|1RWLMfQ z_QmiaYC-n#2-3T;Gye|_iS3+rQCKS=V;b)#I5XHkmY?tlcjg z#Nb=CQ+cdf_VMfZ^Yc#f56O_@O_--O#=W0JAG@u&wjaH-8g?3yL14xh8gjgsz$4zm zK)PS4hsH$&ss_gf(kK-EUhv`!r~fQP&<~y)O$eDm#8B8@=Y~0hVaAwFT~Znw zuEf04Z4SGR%F`&E@r&*(LAx7913;rA4Qt#NmmRU!+()p|5(*=%*EP>%;k|Jl0eK~5z=F)QF|UEU zf;Y9n6*SxfImIWow8yxRsx16h?aw8jyTIu zPX$CHFZ7b%^c{*EIxg;A7Z%5d$Gnr)L1F!{&_2Yk9T9MB95MFRtm>?HcFD7}sIE3# zi}TKA)!C?Wt){Epa;~(T%ULB4%XHG(Ql}bXYYBoUq1_VOkg^qwavsVydZns2R*elr z@2xqia}#q_zML?oV9OtsBd`q0yQ@0IFT>{!6dl%Ni17eg$-IftJD^Kx+v~~>iT>(* z=zKR#f2mFG@UgQwIEN#t=aUd2%Bi3dgYyBnp^$i+{s$S;E2~p0JdlxtJFeId>1Djb zv;OXOa!z5>|)@*1-hdm@Rw5;ordf}P++&= z@_YDjP)J9_d`u}O)Y-INDYzF3{${~j&jw41XvFknMk^ys8w3^}J_O4knS&!2z%KL} zQK>ZaI%FXYSg;XzC#)AWH|I-9>71M`sQGDiDxt^1YRDs#yBLw&n^Vu)%?(V^QnTQG zw6#3R8veR%4z37%Xoxczt(sG7aBwkW&X zjH{UAbJX=TBDg6b^yR>*uldfj`5Z+>BjKF@7f&$GMG!_<>V~bzyw%<>9^9*JMfoh) z#+}}xr$EFb{$uKeorD3l9!BTfI6=<$Ku+A5et;Ix)TF)#4)GkYP7;=8^^d^VKkqUh(Uz_S;SigE6%>D{Ik#*v!1Yb-slA1m39zzfdq{KG?Jj9df1?``Pv75_R_Z` zP^;tKnKd;D10t}3p=|Tp#IqUFBHr#lB!R30ypFva;xm|C{4PNzNC&~7MrZ`agu)hoP$3xOEVK%a7~=KtgScYJoY{?W0HdLnX@mu*-i^_q_XuT3cn%>ijwAZ!Wc*$KeP8n(2ReJvSbIWg+^ZF2MD~MA za1I-R6j!Z+(<+SWQ{Mc(ure%o{O!{CLNJbM?VP>#1|1RY{r@c%!FTtd^KH+w^CX9DD|Yj|v+f3Sbg zU_YXrK`9dP&Y;*hIJhZheiFI#`@{?14BmI%oZlHhbAur! zLbJgcM%JEd)&cMk5K9^z1i2^EN~Pd*jR`ku0)Wd0MO2OY9B`)fkrXBpkpn@!je+GK22Yg!*BTxJS5LvQsyz< z_BoT+14l4x>`Am^I@=?Bd(!Q=bhne8NwIq(+@AT4+5X7Mo!x<&pu%4Xo(_ym9?&wQ z10%xV*axwTpohJqE+~|y$7E;~Vlly8ze+q+o$vzu+9iC(Td)?m@qFkY8&1SNnbm{8 z$y~v`JMXfyp#tz$wBQW+$M_?1=@&6l0%sNLEKT@H;3#&%%c&==y8RR13~5qp|5M`X z!X!!1*nu-Q7Ds(Q3}3oaU)db)USHB>~#qPJ~pn^r7+})KL}q$;m{|C zZ0<$o%@QaqNe=h0uag#s!HFL-OF9fWs1%-(Ya@GxPf61shcA5Hf8t?j7Rv=Lu{ERv z(2xcQ0&2TtF2OeQ`w=|i#%pkZL& zess_oEno2Q_}UtmeARsza}($ck49-7AjTwRbcV^!Y*AVdui1+s=FXP`_pWlmk0K92 z^%R0LXk64MqrXqR^l|vnH78=#z05k7h94Rb2U`SgycxI`d(%l}j&%pF(vZW^P1rwg z0z%G6A)Cg)!~|{Oc8Uma3{1Bc2w-PCm^W*Mdl3J0{Z# zPVkEU{hs9wwFvKsx}xFRP)th!ScAK6^cF9`86I4I@Ip)r=Y27FX5MEVT<06^A#HeQ zL>^VQ#P$LBLlD{r#I*y$`d)DZI({XtT!S}4IEqIEUe|IRF7nh`Q(A9v>n(nzZY;?z zchNuNlY@xW+ftTW%1TSZcWYT)UR9P?pf-lRMrl{zI#MW4iBoYQ0u8Q!6e=mRb#b|- zw87RU+NC1`*xucUyn%-?UMkBo2!f0>YbZ9ocIG0IjL5TF$Sz_R6O)pir~GV%-*F?$ z0KC8+Zo@-Xw%r}w`rQ6F6w!riJ4*W-ByX+opY;fkt#IH;4!wJ~!>R?oEEJFfoLl2; z2*%98gj8B8=A}wenJ=r&S(xS-%Qa)QVlJ1>#ez{w>&2j)g8dW>%0$?7yI_+@1R?ZQ zNMi?nMA=S(6m=DS?0x|+2b41cI%$Yn9+x5+DVCEGc_}d^#A94I!1)cAp>c4*Cj+yf z43tSF*&nL7E6RI+lDzyu?7^CnK=HkI`AZUZ6){t?TA?bos;)JRaEx}i->hT2cynEu?>SdY`#ob6wY~z0F~Xc zdo`df&nJbZJvG*SD3yW6Ke6;bI~%Z4$jCEAVG3p1%Oe=2aEudzOFR()6NyuY_k|z^)^=e%1aS}j^U-GP4iUGfFr2oK-p-wB;8jala8Sa?!; zH+m*9AqFEj0FU=bRM@!O~Vh6n4*kt8$;T^r*TPCF4OF#HUO!gh9I4=#0!gY?=oY z7i4xw+sxZ9`%XL{mS6H5kOwB0Wj_Ggv*w1<=TQ15J{Lg4-~eftmAun}w;=i8Ffb{Y zbHi3~PzO3I4ZDTG$^I`4j`xiuN0l;UYF!tOwj2%Uj3j9A6N1E$0Zquw$pl=WeA#>N zHTV9fwdQl$>Un)mcS$~8E{S@O#kPP|W>mJOdGFkqwK(o=PI?<+Ak1v-ZC)%|QgOe#vwQm21mpZ$W8ivV=n08f=dsw5R@25G7#-h z^m@^|aYmm#s^sIN^2p#&e_ub@Ou=Xh5wZ8|8Ti7Uk0TF(#Qk;RseezuOmYDxL4&`D zea;vIXyjLc4hGGj<<*vAuLq8zLmP66EgZC#`bG1YtJLDBJ+cu}cX=KL`F++?hl~KX zoHcE&NU+SXCb&|f^|iq9FZ=JE8kZ2u`=(TofU=Z%W(Z6i3&L+8;NaeSIY zG&H-|n-5C$w<2(GihHSqyC0bQZ$0T>w`V9C>#VO~)9tvCtqfghSGSOF2hUv5TmN$h zu19{mC0S$AT^m{s0V#f*yv#6qKpv#=4S6v;UR~!huY2x6u@HNq zC`^hTK%)f7(d+}$kP_@9Rh9WaxrR`N?*`z{1a$yFyS^zWCMPB~q|{lx^tS&n3@~jO z8B=b=@=hN65hDYJ5D=wi6p7@wb2O6mYVJTNjo;8>QL`^42vd3mq2vR`hu#pMRS zup}%jiAyb^wJ0@PTzf@bPwGjH(~@FtR;n%rmtmwc9V~cdaBsXxIXbJB%iL_iS;#xn zSw|AV0uo9j%18Zt5a#M$!50&gMRj&TSy|*)8+?0#Z<9*_QZ~oY`M4ZJ$=E*F-Mo6j z-=6Wpm7h(eY-h7`BYuhsag1a~iRuo+jJTA^silfuZy1Zq)=FDnN4GWDy2^Yoz1z{W|c)awaA*e03XhK<~*W1ZpL#~7O~yi>U?0toa1sSImOUf z@7;I22n59z1SeRE7kG+w z9CF^ZG0_D{DUwxE(4d3v9CYo7`lN?2Wk%L#C?soS)9N&!I=lE;6}zpbf5j6_SC&)^ zNP9Id#!B22f{f5uWA$ZE`ZMd+xvlql+YvYu*8K@Xj3|1 zIBiay&6n8j2=*vyY&0+aXq=f>@`&HfUIl09I_p%(YREQ?I+X%P!eUK{d&0ViU>0!p z#D~<_vUg)cS@lq;IQuCsxUqr+jqUOvB#4TzDGHnc2N;|0?K_u!=C_HfT>lt+EPOk9 zJTs|}j}4|=o?j-O+{b5Dq{umAHaN+T3_u4AW@=KFg6|CM6Grb>s1au4V z9TT6C1dUNRjAYo+}A(0XXtYQG&Zg< zb)d$;I0!B-!5b9-v>_9Y97CfjWM?=6Bf{*cEk0vG&~^*aY_JA>$o!CgU^4w~;J&xL z_q<|mURLT)tF4P##p0BZtob=L!x_~HGw1L^uNwljAa5XOwFg@j3HNCZt1kEw@gC8N zuXzuCJ$O1I>j6Po6=F}Q4Mdv$B>dF>6o`jupRacfU3mcghLppI0B%tK)rP1K3C$y@Iyp}g6j?) zEoM{*2?z!x!n6J={>3Q)mff9?&MS|qjs5(bSF$|nE)_@krg*?p|7r9x%0FW^KHm%?UTr(hs7KuO*ZK6zR0a* z;yj9d7?Tw95{{%e>BH#5IEiI}&3e0%yY9krvB|{{3>r__iNEX-Wk2ql;j=+rf6BiP z=&zfN1{DI{EpbsyO#3`;X-$N`M@ry$5M}s`diE|M8*cwa@=9RH`Lds)Y{1>+_agUi zDaj2nNtI_osDB>2GCS%0N|-$8UiTk`=?eBbxN8IXYpWhTt*^am9>Ud&>Y{I)zZN(M zx$^~O_RF5*i1cTRuDa-~Ba{c^c_VmqdQw5qiceEdr6%-4QvN?OZ`l|J?^T_Mz?BL{ zbq}CnX#(=P1)ACGRS%#c!7`AZHrBL1q+VQeC0}|Hv%X|m&OGQj zw(M9~)#t@w4Q7~=gA>d0{C<9QueiD;E+3Q-Z+dZ_udnjU%R;LqEH|arGPl}N+6Wg* zbTt@&ylyI9lxc`Y+z3S6ei%3>-O-GkEQVji!(S@VEC@sVB0*osdQQuvgKy@(j8BSWF+HfbPv|v#2BOX?lwCLuf@LRwga4iU} zs@~eRef2IUcV_szr*~8v$sNCT)Qr(#j7UQZu!FMFs?10_g` z=FaumQ8lVD4n~tu$KgLX0h(6|AnNxFKV1|`)8cfD6d>IaGoPd)8O6zNqhH-mHw~(# zL+jXQ$UJkuUIt-?+4_ukFC2AtL~QiLKj%ZY5meza?(&R2pV!MNV=Ag8gA^7auaWPjG8)bf>%tI(#pMwr0Fq*hXh^%ugR>dXqNaCdc8?{)0A>bx5p@Smqd+~>f`jr#~M66kipr$<4Ziy|^0`6lgs=rRuYn`Oc^1}`z; zT>_w1ND7lBAg=G~IV=ds07Xw&Awz)<9!Qj=6^$71A&j^vE=|*xtl6qs0KWy##|T2= z*$_wzPzxR2FVfwE2#LELAIB~Y?;-c%Pk0utxSL^@c-oi;hZaUjFPIze`cIuzYjDm0 z6gJS04|K+0N;2RY95E(&Sg!T=_esNJ-;Y6m22{g6DPw7e*Ig zB+wVRN0!$0{KL}9W9mjl%7MFplNK+2lDG`!c2}XXL;nDmF-;-jLWAJJs(4YGZ@GfL z5m(HqKw@=KUw{=qUURT-;PV2sT|?02iVMc#n7=dx*B>T7;vCpBEDShi#z>&nm6zSY z3=J5KdFI!Tx~9JEzwaI2vFG*nWp&{hb@{wD3$@R6DbeCX(=L5^%-rBYenG)PBtW^H zC#z(^DR_7UtqebAG`=4`_mjw@9|q4OJb_=9VE6a5*7#=NT3{)FpMd}R z&?Mq3u`x!WazU>Gpb@qrEiBlSk^Kv((;tQ}e$l(E4vmo)NBZn>>=~r7l(_+cDf);3 zI`ZxU`g6k>B7jDI7|0<56816g@*U=<;a(uhTisO?cF5vYYx9IqBP$g^)g2$8S4hwZ zpe0{CZkBB}4aeMPEh(9QNxb;$#5305L~dMu+kN;Exe41Yh9>A`ZyU+C%yDWNcHDCQ z*74uX*318S6StS&Im4#^jd#OmQX||$YUMt$@RCJN6mkBHvN*73WT=1O&Cqe2>GtN$ zr}XxF;S225?piGC_nVjeD>T_${JJp(u!BO-kC4TnDAq)~ZpST`wdMoT+y!<1tHJy5 z%1lbw8B44{tOKv?(`QnW_Xnv*y7i$9|CWAfMTox}dJw!OyV(~fqVEMC!X-N!zW?Z9 z--z!mDYNJZL$MQs3IhqM2qmZWcI*U37t3?woK~#~!QW<{{ioz}9vHUL+K!!_UsvH@ zZRN%$Aqgg`>6clg_7Jg=OxB z3o4F>Fca;`)x%}o1o#*@idrP4unM0~d{j zsxzbyNjZn-+oAi>T$shkZ1Y&2F*lW=(O<-_+^r)JwGaU-J2Q`VTh}2S`qi|XpajJD z{$>1fM1;F?HN<<48MUtkPQ4qtf7O#$G}R@T>v|pSZ;9G8g5l~R0Y(Q?Z9Rd>Bmz#yhNCa@JJaS~($X9MU&7rSe$+Yn@$GqKN#-pwPbVW3EDXf?!@>xw2du6b_89wcOfh9;%ZO^t z<#Wz_!I3Gtie-fHbu|~pR~H@ansd4CXg4RE?)&F}E+m!YWvI|OVHYo>Yrew+PVQcr z&%T29hUS+&FYxk~#e0FI5YieUuwfdO_Y_OsD&SSkYE-rPd3~{|v|9RViq8zeYIs8Q z@mYw&5S)4zLNtB>LbQt5s7UyR91V%Zs<4CzdI>$3(5DbGyUuOYxOPsd!!JriNhOtR zP>ms!{G4YYFzj8mwj#qu*5zLiW~5GlxlYsH@)~Fe_|j?W&7wR*))@3bqiv6zTk_j2 zjP^__p&%F3m5!rSTXx2J16?i{;vWg4hGJp*(GYU$(kzSz;bNAgQ=QRbj}6isM1++Au|T);PmsI(AkO&cY|jbb;`;}EVrYZO!p1&&|0J{^?W-UuTzjx*;EI8+l0zaM+&#^Utq2d?HK|c z`*Pp_$iJ@#?)y>Xv6I5wlq7vCaPop&IU{8g6EZAxh6dpFZonL$9NRNE*55yh7*l<4 zaz6QluZ6jc?b4=LdXMN5FgM-_-xD6?{-xuC?&f*5Q4=ke&35=|QhAsF8K)awL)Y@CfNg0^6noWQHD*4P&Z5DzO)CweoebWB^UhI5u z!~w7AkYxQK`7&(7jgD_0#;l@I;Y!O&S@Tro0IY!!QaLaAJ&5z*f_EnVX7Ij8%~e{7 zAjZcKg>2NN+^d(*i_4E0`yxV!;WHQf7{KKq$ap3x+a`OuIzq6uX8K`%N)0@cEO+Dl*c-f*ZoTS|9b624PcXxre36zOm$}RvtFt z*AW1XVKf79tatQIlHASNujFf54x1H)66(M z5#G#zf5rQz#85?yT{2f*@$7ru+V_t4=ywD6Aq4HuBbR>~yBt*vx1w(u(=|A=0tW)X z*2TjuWKoGti{Ycj3{V@I3th>&n*bUc+aQuVk|Pjui0upG7Z{A7E77xO^_p{dd~^@^ z4HWs?j{eYcBp5CCCPP>#jm8iA294JNRv1*5&DB|_IX`KT%Nyn^#ML*9CqfR3PKU!B z`$o{fKzT>`%nu_EgYpEoAG;X7F?il|A9>Zc@2a`)m$55x^51KJV4J~R)aOr&wYUVY zv!qni``7>txDxIT*7PK9VWb%LSjS!?3o;lgwdUYNc0&C$aiz^Af0=lSMYyp2!vmu3 z9Lcx91pCr0C+(j*@A}KrcYH*LJA_{QZscro#05DioMA#)8q*x>5*+eu@cF?#{be=q z?;Wukdhjiv5=2X60j%#_ti8OTgg3&+VG)#&yg!QD=3wx=@%mQ+$ANm#EXdGXi0lL= z8l*NgE)X8o;S-*%PWDpSV`SZYCww0q_w9GXV+NIg1KCj8ac%y%3M(g)tl_ARMcxfw zV5hjDyAe!(*^{^ih#Uq+wANwm)ey^(T>h+TpQ;mi*rkD5cyw}L0Z zizrL*qKqvHI|aX{=CQK9VI4wv3sej>JRnacCdJo0dvACSJ)taO4BJqMNzgh1dIq>i zM1_;!EMY=D=&5*z#P3BPpyiRRqASkK5}&}m0BAkU##;bd2c0q3`plCC=}+DaoH!-b zUh?cm8onhrxb#(PKPm?ANdSOdT-Fh#p#ry@>HWkdJo*>WClPHBvkawSHUa&yYGbK{ zM@qUE?{YP~PaB%J;k)PS{*z#=q5kl>ge3yf$}dC%QamnArMT&=260b$3Q@O=TE?g*^-@^L`{jgNM64?>Y*OF_ zqN}&oTi5M`{f);Fr3XbWLJ}nS z-i^bZ(ak@kUTG`LH6I-3Jbla^}Y z(u`U2h~bh7r#fvYPgca`1dJzm-6uyfz5;Yq+%i0w7VC1c%{Tp{Mnjs)a#6cE?)DO_ z%Umfz)7+<`v=J4}6cie$ZqD(D>{=Y1VL= zDJ_;&)5I#-U0sjhpVsFgghfGgW%t#)mi|}1fUZUS3$Tn-SlE%2k!pg~iu}L*RUU<+ zFt9P;*}8|9{Jif;vwYVBm=m=N>uimE(15xv8&}R1D%2Q0>6)f0#+WZ8hO|wLmL5JgCJ8os?TO<6UQuo zeuZ$}x5D69hmh!r8!*xCNH*Z)`;iC7`i7xF_dygaVxrdI_-k$=@UrJ12+{hu{*YdY zAfi+sBxrla`-Xg@6C?0?*EcviG;EG=m&_K(9*`DrodMEo_ftCb&zqq`@o^CWf*I9x zU!HdEYUf8U1Aw&9o!%CHM}6J*ehtr>p3`2OLY5;PbNolpy?gPp-HlWo~I zUJo5Y=+d7j9=D029(KdeXS`c2F@|W!AmQMi@shWVre~cAt10?`<+x zxwm|rT#`dFX`6HB%+>{~iTu!b0YC!}%FXMiwdzCa`UCED@H(ic;USq5K1y5yQUG~l zQ#<(XptJPL;6F3T+AF9)dcy4*9tE}Yw&&h+YIS^YIPR3ss&lZx|8oHvjVZiRfKz72 zJn+^C%d*0-l^%k#eR$Wmrg4xb5JG2NP{s_8vFug~BqO4@T;NAK(_5_qjza2OQl|M8NNNyVzp})HHur2$z`A*a_wO*6(F%gvWyfYG=l(G}<(`E&80d>RCopE==S;%m=OMjK~y$al# zu;B)1-S?yCGo$=NO69UvpK}-=g&)GD|INV8Gy3}Y(9o7u{5VOL3kD1Ljmm-PV z)Z17d?I-@PDOxab7uKklV2UpOd)q1jH~u4Y=KuDS#7rqicZU2PnR&6rSbVl*> zG0$Eisc2Mii!#i_uD_)3{f7TE8UYQ9+Ag>PC#39GeaFu7MF^w<+f1kSgZs@FUn0w0Fu-gq!*>FvD0orx8G?A_~yM3FF#1<`(K$Day} z30XJNa10Z)qGDf^q$!jbK&cke?=9W(tE>%cwoG-d(P*bAWRc-6h74^RGv#ZzM~i9W@p zP8a+n`Gij(-8@^t5oFu9BWJNJptdX+<(FOnWk8z03~lxA8BREi*WHJ{8#s4Ds2os= zMJ-m)q6Iza69e$34{oU-8M^A_A;l8Jj5l$wXWfTTA&{1kiaUv%K>Fi_5t-s4|_q1n;c`T_Usk~iIuV_yrx>C=%1<@On6>wbCfgW~3XZocL!G{r_r z&NCAjTC{d8TfL?2^C#HOO2x4caj=n~leUR6ouzkVSG&2`&+a|=fd(P0%E&L;qp1Y? zCL{|XBNIBX?Cc~+Cg3A@xd#@5MwVX=N7Q86$W7_RygoOhRA2)Ic|<{wHCLg zEyNmDLZ%dfAO>OrIMV~oi6`2%wd;1*?+&GkilIJO>xnqjINb*mb~0$9igjM^&P9;Q zp`C%fm_1;@)+5=LR#X-Q!{0kn748jqnwa~%SzegdipK9E6#qg7NkBfIDOT# znno~-Ti)*uH`%A4@u20T0+Yf}8}vTtCJMKWN`d*m^Fl8NOQ3Dxd3(W?-LK9WynjZ@ zwe>3W=%^(7E~Fe>SV$mZI}h^V@Asi4hz`4ISoUb;L(}ate{CrC72b4XYL;4cevX=#YTSTYWLAD2ZqEn!bIw8i~iN7 z+1lsXw{C9C`_|HCzMx`6txdZT;LLL1h1duWDG2*+(yB{y5XI3%z(L5sg#atzgcer> zE2ab^asW&-NfG^~2`QSTs|yGoq4^L(1^nD@YkV9h*er#;b?Kej! zuUNKG3{gQKU9biB9)!)Y2M@0Y4kP~5zosdQ6C#kFlBySVcoZS-F%H~IJM102h3rIR zHeJ1a2Ib#~92$Z%haGMl0nqj-36xAkII|zO(HS1`YH&Y{4q&E%m%^qDel;G-YI~z$ zL?5$Ss62=Pcw?^0#9d)si(bHA&M)X&Ucc!QzZyP+muf0;Ly&4pOo1@e#ic~gq83Mw zAu=iJIj5hu?pGHc);2e-d0Ntt2_~X0;e*IU(Doqd8T|vDMjNS-iX$X<#57L5`g-7q zcZAw5QRe(3!neYw!6AP{ng6o^8r}$ppH~6UAU-R=J!3~?)?F+7bf`q;2epe*^}XP^SIw1=NS-mrSNx~OC}Bi?ho66w$H$xA6!+(akWy9>9j0(mt6IWi;H^1&Z z!5W!zUa^)Ic>hag`9S#yhb{&jnpJxh`zZQ|e}wx==-%^seU`V*EBP%xc12&oY+^Dg z3P^z`?mXCx-af;sN3hE-u*wG)oJpnt2|aLTmdk>yAx(HK^~wj~3kVm2nxJ8S5`V1b z@O>10lwcuw;FUSdo=Ealn4ZUcGhbY#ZyqxfYnxl_X?i;pWVS-(p|<({;oX>G~8 z`Lb^>-#?O@a6jwWdQfk?;N6ebJ`$+tif-zj_0$5)zC>9HE1{~p0A<6V6^tuEw-lAY zI0ay$Et`=mM3#$r?@Ypp0M+T5x2jIMhes#+`v>7&)|}8c#pR>Y)?t3*5WjjzSlO?% zqe2Sunu=0eP@1ITCAQkeMo3N&(L)+>v?_FKPBa4%2N0?fkb(9bSr{vVG^foj@QZb+ zjtHs+?{o%AU*2TYh}M10re`^=XB9wc+3*@64g56RL5Pwoh~f7`4?Lr9K5OlJ(K`Hs zb^Lkj)M2v{mHhkU18sg|L0|XEF^-hnSj*YV*`N81TKDeUPIXV&TP}M!I)&H72PX*= zu&1*Vl*9?_w3LBbfclh}_7MFb4prKi&a0J#RE|mclsuhL${Be!t5ouOZN|MY?Ow=P z)s$LJs541*I-+DCETeGPydlAygem(G>gZ5nr~o~LD)M>eAq=j03mPIapV8ih68oodL2B^nSzMF`8$1!cA}S(Ityo5HK3nQ^p2>AO4*Zddn+fj*`gTm%JP!3vtUO;uKs3Ht z6P9O!5XmHNoEV>qFU9Ga*Gyo@^Qq-5UBopW+<(&dR_G>;%v8MI(k_yk;p9yW~ zJ@6kRjLXTnrreOB6=e@YdgZ%)2q*)f<&_!6LqN7&{etO+QL0POTkdwspQeWYyM1V2Q@69ph-rwn!Z*S+`^5+<%xbpl z^?Nm?H?XVz$E)vJH%r6_ow^1~_7*~oIR0clN$+{P5_lx_tRFrwrTP416_CHquPiF- z1+nh4{H77~yAuJ)lQ7a=IYOfvt2r+R)d&Q6xRGwA#Rr1}o*dPb9NtnYPe)H2Qy168 z{9$+f*wkj(U$$hwBucuhWz5(abMbM{rbQ5s7W1HJ{xo?7TN0y8hyeKP0}R_`XKbvm z|HmwfH1@1dVvh#K`Rau4TJT_K!0|sa*Ycwp1ZdEMEKJJH33q-}KP;w#!;`;bem{C- z4EAOFq3r3jE!u>{>;41zNe#CD_=(BBpU++QlEZLlnAlug?2mT=Xh3AW!_EVw#=u(k zjr+B^9pH?x3&`rW1lb(fed9*#+Uy{?-b=x~1>Wd31)fV+krR|gP*k3BuYe37$w=S? zJX)h4Xxur-t`H`F&-o4<)e8V<-w5CT|55iIY;qh|mMGD_s>`JJSy|q@Hs!0m_YDui z6W&|G5snUYpp{6G6rJcqCsHIujX2Wm%<9dX{r2trsdpl>y3qg{AjH+|%oY;aSy`Ep z5s_i;iF@z4NFl|V0a30?QDU3Tc)LF3k@9u@k*NN`P`y{1p!^lkcu zf7^PgyNfp_5C@RcKr#%Y5m1sKF6s$w3aU4|o z{*XKm!pxmgZBB{)W9I5Vrmp@zaqhdsd61ZnNMi0-x z7u795yezn^VKxl+$)+{!-WK-)n@1q6V7u7b+?sa^xpo;*sDZQePWP{4`;iEm1e6YV z-Dqie^`v=FLr0teM#F0jyP2TV`+8`XySdpmkBoP4h;x12+yM3upgAgDLdqrb=butA zdW6u3xAx=}a{>f(5G=nJeRX#ISAw^#x3i%GoiZw*WsjrUr8pT&-U zo;+PtK#xYI(f}(yZLPha4WnWFG4)um-Ro#=fl(azMFC*n4Ij$1OW&q1qVzSU^vp2XqTA^5YOjQMB84RlNW&xmXO>1A=&D}2;eWWttJ9Sq)WZvZ%3Ke-yw3zS z(mFxuZk3&kHUtkocV3(NK7nOn`zJC+k*DOaCyzi&crSJYCd!y^_V|YX2N|I3G35E( z^1yC+5b0388yPwP1inr_`dV=J3%+d!l|i4=Gt4GvLnW!<5j63}0n))&oP_cVMK~Rt z98lx`LS5%*3x6ij>3!0_!M+UkpCz|{yV?uTfe@KwHh_f;!@nOt_JqFnIcp12KpV!z zU&PMTJB?G?z!q;F4UZVyQeD+DBEtx?gtG_^0(<{nq41mNp+Kv+TOUGkux()r69k|U z6UU{CZ|TmK&k!YA28>3~YQa?U**BwmgHHbK$lkZ3`@7xJb>G}>p?FLg1jr=;Deh~~ zXrne8pdo##al27wLlaEqf8+_zt*t&o7qg)m9{pYN{5mH0qJKN8-5%cetNoYESvq%+ z!5p=*0LwI|^kWubxJkMGo%9Y{zxm>)@iP`AOhQ)@e2bgT90=2BKU-!h9>pSvi$aVxl4i4PQa-EvprH9Anxgt~}_x zL`>y0ui34Z+#Q^|-Gg}IZO!1*0y=ARwmbU*#fns}3-!9ET!rh9yBO?Dbha^)OV&G0 ze@7t2XLE8_*5A!}CD4uqwGcuWn*u@=WAzX65LF&QO+;Lc;GYg3c%!HmdW2G)D-ZGg z8E-M^jYr#it6YCVPFJ=5KIr4*jYWA(lr++ih`$jvkHnHb%OdvTKO`@&W4ibICJsmo zN9Bc+;@TlkkLr}`e67Ow^{@k@!I^*z+w8x~2lJt=@WD`bYZzRSv@Pn}KQ3KhUrW9b zpaGE^0<+FpegqB^6Dg^;Tdd`jT2RV{R>T1anL&Un3)CC&DPkd+rAz8`=B|pwpt4wcJ%<7y0B?3YJ z4NP1QZ~Qua{8xe9@N$LF0$-T26bFqb9CIMFq7@O(8nSdC z$cz@?tq2#%N!hwo8MOKnTD(h0jc~<+Cpo3oQerS6nzPc>3_CT&&8E3t1Y}1Epi%_g zr6C34QZ}RXCX~ELfG1c`i7$^R2tLh%N)%F>Na8MOP{l;k4?CDm^ zb#bE3f|eg#{Qzh~G6#oHQ4>rsj`mo^l$`a8!R}xW3O=Cqb@L$4w+l}Gtn#5%LZ)d3 zYudpvWikrNbW%(A{4^2-Kx5Us(uL)eRWHRrp>igcR#yELC(%Ig>wu7*l8fl$-9~;= zpHiUjBYhtmd0TK}tV;t1yW~-OueAOn&!Y{9jHa;|m#{Jq$rrqEJ~RVAWBR!eSv|V{ zhtwt2p{;%y)zs43@UiM4bL{i@Svu{$2!p*4>m%vk?`^D}=!&ys0PQhLMXs;c)rSD+ zb$%i$cgvs%02;$`8~F1@r8iPT&7%?EO2tR_$@Re}rt&YxCg={!U02-eA=gbp9Cqwxh zh_=K2;AmV3BUy;wxW*R6F`=Upu1DsJf)7$0o{KY-{tK)E&z}iSVG-$t@Mgp{gRlA) zql!6zzDm*?U_UY|=OCreYrQHjE&96Pi`2uIS;-gS$os;TcvU{kllJSU_ZEcoUTJ!_ zIY(kxH2M^a(8CZ*06P99^E9<=gl9dh=AQd?^Z??@UGmMso(+rh$CbVhBL@M{o-pQ) zi~T#L?plWl~0n?;S` zRig3S3~l4u7}F_?dm}rz;=Cu7cNn0lXvOYEnN6VsMA!0kyK+{s%9T`@2wRD^h zEx^rT=>A>rWHG&k*22i^|tIUx_u z^Qi?fg+@+$&~gVSz3D$=Th73p2N(g+?|_28N}ee>r6Y3nhPiN5>bsD{m#>Xhu}+_!U7J@^0m3blaQZeb6=Zxg+6rS#0w_`0i+GFEWwSf${Zh8fxyV z#@uV6UEq+xn!{f}{`c`6fdh zuD|3SpH#X?XNPFcGJAdfpT|y|Q~|8W8kDVg+QR48^5J=J;!o+zfHp`Fdu(()0f4Ik z(CqWTR*xA|So}GsPrBNiSE6%RsyZf(_Itzsn7wj;fCkV+G-z~L30>gr*j|69@MdHW zxJD~(<)Bj8DHb*gIlOVeHyeUA_8HP;u-RE!KBiyo43mMe7eBj$Tg(avCSyOLrdDHQWk zwWto1wV{eO+C^|#HK&4>tve!S!&1VMqb5j|Sz<^A?-)o!L?{A$CbRU4DRadkEe4tE z?QGGn_YoZ*pwx}T@rQ}1@jTm8;Cj$zNZV*+g8X!!gvf6sJFv)sMPhDJ8y=JT3u1FNNjAaWN=Bt8#ChEyLFgdN;g&)C4uv!U3{GYR10a&K0rag3lPsg*kIp z>A_Oc&FI6Qr;fc7-Tg`Y*ptBxM}6ZDYqbq>b+g>RAop!h2DfQbTlAT=#_Y5{J*AD- zjcUp49?<%S)q!!je^4)5f?hDQi@y0Gd8|+Gj~LJnQ^z8j8S-@GiM}TKrXb!o96Hgl zfXAnT#pfbBe@H*}UhL2jb85jHK*cJ8F7cXA4%IYh)5c5uNEs%M?0Anp2;>&TBQYCc@G}L za0tdE3zkm+!AlA2^O&RGh#ra(uRzk9R$l%$9AgQFK{dkEb)Z)m$_agOu@|AHiHZSU zy~MB_s}~%it0b%}v0)%Ii>L$Y!c9y;%w-m zxo}WhYifio&!_pnPM-hw{IfU0+epVFJq}B*+=F@$%+9Ub| zu73nx3wc|p5}44Hn(q8YRgihJqgm3iKGNk z1pDQaHv;P);feb;p7llYbk-xi6F*=JlSE9qCqN^!@QUp=4ce=b-I();reg`6;V+Iy zg)p9iyRcf0oa4Y2ke-dMFR(uRgs+gAU;v5f8!Odm31QIr_o4?NxxwG3PXTi&sYASd zjO~7r@09~n!F)h4K%~iw(oirxqJ+B;jS%{3@}7x-0qULHKyMSg{G?ntuCJZY>d=qa zqo2h~A0&=LSc0AoG7?>gCX2&gq|c;9pTt3lj>X$+5br;U9QiDI?Cs#5OX~PZvHzSl z1b;EOJH6`P0hhF&4bW)oXCk~-cluYV%$95#SJ$IaB^otxBsBZ#Id%M<(B3QB6ad=u zzD=(Ox78H5#F~prs)zTFNa6L~ytmbxZ1sW@{zc!0m#vM9d}>Neto25tjImyd$DKl3 zQyX4d)TzSi58hs$X2*VI04`~NNL=_naSq0QXOzKb%=MqePJEZR@Okw3Kc=ohuK|~_ zS7KY6o7*C8_L4RNkXUv3+nS-&1tM#KM`T+Q#387@npzNE>meIr;b2Ys8fAR!^7 zR#(j%eB8I;m%+Wiji0>X-?*L6123cI(J+1)+~aTOXxIoeD$=ZA>*#OuAWmG&t$v+4 zXG_0SN%0h*6Qp{wPd^R=OW-xoFk)o`3NN&-uM%gIw*xej5gx@X=I!Yd2y1I&sHK!m zC#*4O(B6w3$Vp_m2JHyL_W*CbA31<)#T z+x-sR?PmbApK;giw=9n*E1$mH{a?bn`(5&E!Kp%VcEg-UtA5;=iF?G3HV5zGeNOJ9 z#Hnu+m!%dj;!jbDngGu~WiIDC8r$>;Ff`SQO#7HJK3Ax8v|-BSR&Mv&f}(%9X#;%zvA_5N&h67TNJ) zaJRu?wV8}BIVtq3_`Vyyb#%;p4r>}1;+{0tO?rcaj0Immim+@-4I2~P^7EpKD&nMu zc$90|1gJ%l4!`LTU`TmN9qH|~z6OQSeKlwRXlU^0EEu?eVm^o;3v>$aM)#x5PYB@& zZ+NSinPro7>B9zS4O~V6V?(uPgEH)wH()M${8YhhtrhdoL}TTOjFSYW5o61*5~sHc zy*I6gaSZ6UJg~nPKC<4E$BRSys0Vb1U&Z!utHG|0x*iN!78{dTD%Y#2tZ6z(C8+jAJ1Ge#^XXE#cHi()Cm#yDQWvZ|

K#^&?b4j4*ug^9nh~ca#IZ?X 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

Tqf^gkSAJA_{9oE{e4anY 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%0A(AvY&0Uc3>Xbm+7Ql-lMP%pQF;@3u%z@Sgejv1 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

3H1xK1O(g)UgNV=tZh{|!P9<00r(;%$xc$qjq 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°V@`>Bi7M~M$zJnVLkG9+bIqXf}@ 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


*3@+y4~)JAQXOLxfJU1JzFBw(G?4 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

Tb?)i!zKFERB&yAX;3kD7Z5=;y0u3pSl9@LI~F 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�Q;cbt?R+!`SC{*LI{k);292MxJANN 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

KT^4a!kN^fBJbJx0Wq^0+kD|snDH5Pm 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

!?h-%(C4RgjFNCtw)}5f6Q~h`` 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

8`D{sMUeb@d3z` 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�!+(oQtxehj+qKN*l-oUu%P zWp%UId>cpWaWAmGYY6y;goms0pl(6V$i*bQr>IApFk#H)O2wZ{l&BV;c5riYD;NtC z?~B+&MrjRa@+?4gAoPCKdmqV7t|uwt0-K#ad77hziWd-j2gNkyCguW}=J)&jhvNCbb%Oi!ZrB2 z<#fUtrzbC148gC;F?g|*_a<|!5uZyOhFu8h5f1at%pBIsOV!|7tFwiXwb)XF!&Mf# zTY*J5Y-w_Q#q`Sij>@keY4NMEz62~l!i+H{VXcF!YS6Dc9l7OWDeH|_cpjNnM;qF9 zI`6~a+4Culx0&I%ZLm}vQYm1&uT_=>vthvvO{j=%Qo@X=qAR(XUXbnNpcx*-s24H5 znrEI*6C(iCa8-Y&u>PhQ6p&~vqgvq0cM~#Wlne5RQ;%T~2BO7DMguT`SF3cj9Sgn{ z6MCHkj2A-h)g>4rM(@nY#PS^X($$8e3FaJ2bKKkxn*F&1*-zjmijLX)S+Sog82tmP>3$&4!nBX88ucE%vF_|?fQqf@5wW79~~Qv3Hg9913v zMB@z55pbCdM(dg5!@adaPlWSy{ed~~);t$CKMs;ZM z3(4riHG{S%$=~3IVp?lI#*8wb*w1L(abvQgccTbF06NZ3AB>-<`>#rx+nEUj1l;tF z-0Cw$1Do|}!$K>fu)5NBzV4W*uk%?VktE40#K|vt-XUWGq;+dfA>9&8+ zp`IykvEow2u?sf3z_w0*q_G@7A@E%pY!{@{NvoapmR^nfE4k@S|mt(Cr8(!QLZFNFQihU1suNceI9>Mat2>aQq( zDpfktt3zjxdxAp%(+xNb(Bl~fInh{5+c4Fwks#iOA0hrTTQ!CXJPh%oHKwdO9+QAZP)M=|lo_4-pN zZZisN?w@bx^4NI#xT&@Ie*doJ*|y`Rbw4DTPGvlo!YE!SfRMFv{J1pF-nzStNR^af zwBpbs<$5uZ8uf}V)ed1L_!>)d)A8O)B<&vEIa!=T)BAO-RRa|=-KZ8YhH@qyU=*t)E7H=zBF-KGV$<)e4BWmv}^FjI=@j>W{i zd!bA{k@?3<*SAwTha~h>x#4%FzAbDhz3AF_ujm}s$-~I)5UK@=IhI~jI;X(Sp;Sa9(=-RX~R6P##hs7)C<2F z0m|?5|ld6pNqu~}Q?5{$o(B798#xs9}@=<&&%8#({b}2{PG$ozu zbfpvimMH9LkaWaM!^*5&B25a9Z|djy<^k3u#bV5;?DhM*`j;LIRCekWWlgvz4Z@^D z15uB&nhEe_R45ARN#Au1?Vo2d+{%&asl{RI5QOSi#+wxHZbE)WhSUNrA@HwV zR^e4aML=Sn9BtYJZcRIZLY_n*%793HU=E4vHMQh7`O=2xEnU{xiJ$4&lnAM?)IwCp z>2pGP#lu$iV?=P0w$d)69?FeGFzY9#!J#eUKhRvzQ&e{Zz@m@xWyECaUe)XEMR*OS z!t8LWS7US;fKTZm_D|}*7Q%;+0VN3l)BPZ(>5UmbgJfRSoLRFPp)nM;g(&h#6)1!@#i1Jl*%AWJa*$+2<@#HrC4##-rR2 z>OYhPakeqTjwJJi1huV;0y&cjPTu)369B=5`|H+`wU7+#Gr=&^l7Mq(duQ5ki;90=`grZGcTV-1)hPS2}{w6?`zuEt>M3X@6TZOo7f_ zTxQ&{H5*QyOji-rWnipG+;=2~EYe%cdf_CS@*)e%pB;pF>!07#hf?w-Fh$)?~|W zYl7{ROWU@B$a^TGsQNV}0r18slaexfwj7PZy(DDTNDyY!Fk0m{>n@vYG19D9w+YTy zH;q^#BgN7@d)OlA20cqP5nPgyBiW1X*zI#H5xu;UF$Levx<`ajFp@$uzr9^|UGTW# zh=CL7vST+{gUy_cgm&mO2NA`%+Eo!c;P{d=3%X64`PGpUm20f|kMQi|O8(|1^} z85Hqav7j=6mn)1K7e1J2TBR0hr}lcTH6}C5Ty&S98MFXy>z7R5Zg$qqeJ;z^I(9+> zWF!+gI}A+x31{jJb5sQPBiA#% z<|CA2J_uHamgQmdzOqlI?XKg}3Px33Ts1I@A<)B>6PQde!UUQDdi)BHKfV8q=(! zXqPu!bhF=2?<;&YqvlA0LmyGL)hi(_=QEqR-qMuYlJlxe_T?1@VYX7U$@bdk?7B zfm6XpEIbZUC?EXE2mZI=s6dXVlGb0{VXNj?_?3^Bn5Z~_cl4aPIfE{&x823jSAn+A1qYEW1(wlGe?1!# zl&(25u7c=34g&);94&x%`Z;YO#2Mev81kp#s|>7V@=?%F$zzWeRSwpGNYAgI+V=$* zwn6I|3X?#3$q~;vU$ut%9DE^8ocpZ=cs*i4Yt8cp_j30;cjb^&3X?yqLX1rYxxOW- zHlt)ifV77+^?1W$0u|HdT|KAmUoi|1zId(6k(!6+Rq|5ApHZoAoxQlT5}wKaU4EJK6b@SRfdjmExjTk{Y8Q+vmkD9`_iwDG zpZVWbAZ;yG8;sHME-nmGs!ecd)I8=qwxyN$`4ln>!x7k^VRDfXAUn}3KSykJKIN1v zly}w~8p138iolNQjlEVA0bN;Fy(4TSQe6MCpy~gVu`a@?EqK6Xw92#COm19YQWYs; z6XGhajHkkT)Ym>TQ~^A${COds$VEpmHLK=XwVh`Ab}5n!N8%P{*eJWw5i&@kHazGa zU)Jdo1zfH4_me0ka`Cc}<>z~CAU1LwWwmpVkC-(T)2S#xU#pS9pQUL9+N`kKSPyd4 zuwaLpID%~mPtm*msB9Zh=c>r7AZVyBuD0s$p85ElS=!UhMePr4$+5K9w-r07roynB zUWR9_r2X1_J`Q3Y04^0fZ5cr@I|BQ%G-2n)?fhB^~<9oeR-8Wq6J|i z4C6L)L{p@Y6#1CD$xGJeWx3zQ5IW-&HAayc3KHu+0E>cOi8e?#+Fez%)Rol-+Lu&O zgww7jA9DT!ju>3k&X!uPK`p>$N>6h$B05a3?HdLCAu3K7Oy})+R2b7u<%sLPcLd4h z!vasU2p)9|ZUtZzH=>6uqd--z3KUg!tel@Rj1KUTPo?QlKLhLy4yI@#cZk{-;Hgn-P zs9dk!ZfUOS1{DW7yjA@{)E0;Jcv* zxlhZ!bCe7i;Qn_Ob3bbDB~&oLnR}|BawuJ!cPm=9F_M1Ua7L2d5^g@Zjwgg8%v|5a zZMGvlLHkX)SZf!(Xi~YIxvdlF5&RSnxV}v>(7caH<}uc#2{%K$R(^a%<&C}VRkI~g5 z2S!m<8L)TDFa8nGK%+`@y6;MW5FjqevL)ZfEyQT;U!33CC*3Rn1K2oHPp(VSVFbd1 zT7~l3aE5;(W}~~CL;Eqw%-I{?csR8jPE7_y_l_VoE!4z~= z1y?TSt@4o4p4ro99h5WbP6-;wiqDiz<6?mS3Q+b+nNTSosrANL=xs(#Re|t$`e-Dva3y-x`xB^ zuXvpHU%W=h_;2MwgS2{o=|GUnT9Ai9g9v}njt`TMFPwCF5Hk{bD_$tfWJ){5-!+wx znS*4v7)4!^j7Y+hqpdT+p_T9_#1{n2{Vap`V>ogYL%{EBF9pqm_UjRYDIxANJ7|Cg zxz#4FR+8Z^)g&VTuW%}eC51$)&`1qpJ=7lXr^^?gwQ-Swg`*Bgj>>BwVQh@EXhx?d zBle@PEH+K?NAlx1VuH??WMyGMlFEknD;seUVN8?4t$#x&0B=49q-tDA+m<>8!VBct z#-2^4Auz)sWV2IYkqwCHBt;|8kzISl8(4?2{~F1wCz`SgFVV3kYc?tUIdoC?Wdo#K zl93GASNg9{x(Xe4I4Ysl%w>**aQ)OmNHs&wlzqM!Q3|}Tw`sK~7Gq6)i6SQ&0NJAP zZ2e{hCRsNHX8#WoR|>_v2z|@xd)pprz5UNsF;P|z^@A6&IpV=5WfQ3{-x(skesLSt zJejx<6edZL;K*?iD@Hl0J`?P5ikE7sn3Es@sJ{s3FOGfA%KQvfKoAUVNkNzl#=CYO zoD9w^<-}KQ;5WoARKa<6d|IoW z;r&~!v?A+K<=sdL%)mk*Q*QKrwx<)5(O- zx#N(_T+mAdGMe#qKsfWFi3=4ee@Pl>Z|!lX#y|eGtTN}d-84|WOI=}(YYM^X7*pgL zY~w$9kQ7TFN*o!K(5uRWQc;Wu{G%pn`I{BDzy5~ppy*6aY=wGQZNjB~_DE2V~aHo#MHj>aU6N)ZPyOTCy=HW9&>kYPZ z`}tZ2Z8fwwGH85Z@)dl|-qfTBYyflk)fZ7GUX?&()N1TjqYr+FG^`Ef6S&cf6?zRrZt%j-2#Y6e1NllP+Z~WZb*;jRM_@PYT686q}1XDBUQ?EnLXq8d<7Pz^A=0 z{z|&Q&Q$bh{rJSFL2#r9rnR2HfgsA_$T1X*05b_A)V{9e%ye?JL2;{AgFGRWbC6>X zye=~7;M!nlcbzPU^@`*vf#dP+up_D2zQfPtst{ZpBe+`EZb};-#4m;RKP{Aos18ro7v;w}u zDSfc$VJ=qWv)?wKlAyx|His^>Oh{6W2T?bB#gjdd_AISJpNvY?+x-t8)89d~!=FNV zpn3{pF%yenKgD8V97`-Jte>vv8xUMX^(RaR4GVcQktGz0bOJDTN$1OL zcD{{yp#9D3Nh;rmWMqj|HHuX)0)722%2<5?zR;qvQDdK7b&&p2?fK z>qAfIk()`CVc^vITHvvN3UIX|G7BKySIZ@iiIxWIH_XEFE6ldTkR;RDa4e(YFs63^ z1WtmX%?bxZbEvY_kopci6YNJ}I@2I`3BIcq8(B=qGoV-|l#Mpzy974S zQSBf&o4G9P24& z*dxmE$2dXyLu7gVZ=C*#7ZB)Sk+U7Cq>VAxX6Rvm*ke0H`EkC23DiOMe%ciuL!Be~ zL_vw8s}=do4iik}7U`9A)+a33LDQZ{wOjZ^Rvn|spyy!)eGT27fUYWM90ybPJ9JkB zSp**ZO1^N``z>`yIAAP3v4XuT75cA|IY2Qj5TRvo66*;1ZXs0Yg{VXReeG#!n$y#= zK<{MkDF`@#5`s7-SQx2QRrtt$pT`y!sq{BguI((d>~5V7_YGR zsR(mvijGfJ$-+Z_rAv^9-`>G0jrzw5!R{Ail}gO!ae=|WOLnI8I1oGwN~|QaS}CVz z;br3qKXgWZQ(|8}J2>9|(=fQK6vcZnXIOpV4`Vq~$f)5aT~)x-)Nu9n^$P47h-4+b z>eV%;$iTtSm`@`Y6C!VYZN-wa&0m(evE5FU#v32Rv)DFW)c(jq@}qG|z8&?Xi5JLzHh$w_{td>A(JQgTer}0)^u1 z>xF4|uRP|Pq8?>8_%s?-{%#O_$$bVA6eE7|#%MR8-EWzCv(gNM947DBSMVlvJq1Rr z7GE=K+FgMV^&q4Ne(N-cNk(j9I2mmk<3}y<#fky zC42TaIgBDlxaoWwNxzc%#NXdj?N)-`B{Xxy!XtIW<-ZxNuhKIdi+DGsH!uS6B?GFY z*Io{2`*4b&=e5%iBl2rW!siuGzutXpDB1S{`jp67JX=_6miyBIVcVQV*~g&Yg1Zbj z^GvdW;johV1ILQFPs$HM2H)+%KbkfFK$Oge%AuHWIkNR83*ZX>J)r#U<;Mrn}Xt}6iMA5ME zgnezq#EIep)Q;ZuZeDR+ScM z7QNIzKLSs^uJOJ@Aj}Clp8f-1nh`QdYC9*j)h;aXBpkvm-|^*Eh&jAx7HX?;Nh;n4^Kws)^yXm2 z-Npc7J31)45+Eh+^xAKfiD^OhJep_Na`n)}PnCSA*BL$l0|*l}pD-o@hb)++qIuKq zm6Uv@Icr>2y4})O`{pOV*wPG&Uq&zJdNfroE6r{mm*6$EE-QB2?H?UO4P---@;kv- z#dM0>`gnQm{GJ}xEsGN(^>{%qzJOsEn$v5E9Kal|9GtYKzZKlo6ktN$FA?Xh1=G+S zol1Ihr(55Ni5^||Ib4g|Hr>8-a80 zl0q@hy2@n)ON={Jsgf;4aO5Aj>{AWyKuO%V9QGTPnZ#1$_^f>Qg#o93RK9rzad_vp z2*K(Sha`HZXXs2PACr{Z)nVdtcpljD7hl}jQKq7k{?&-??c(CSGo|4_PM^AS47DZ9 zm{ioz4!~&)7Xp%ZPqeMC$!B$LEz|jVd6oXtsaR)`;^XP06|}j1(Hzyeo{sFz-A`k4 zkf&WSe{*`n?TqGWR`Gegx^8v-LGne}zJ7%@_fH`F{)2S7yGUVTFe=xl0~j4U7+pL? zMfvQ%A)>j8rCUie=am=NCyF%by&;e!DWB}rgpi_^YQLI$H6n>rF`5|F%d-i3i)lnV zQeC_%BW+lJA;QLVN!@#nR@)j`vj6y`0A}4i(mZyGhkvj1`YgB)HHw@xxPN-P6`MEc zENezAp_0<{3|e%3OsssrAN&Nn>3sJ}La)^NUvO3We@~bA|A4E~{|Bzh@Grjd-*DA` zQI?Vh`X)MjR?fI;|ER(Qpu=TmrPKJj*vekV-r%d~zj0NDeG1{{^7_8;ts&04n7FVSfLIZ~b3bRNViSMg1?^ z{fk9q_$T&D$M7#EmEoUE>i@8(4FBlw|1sa^D>66SI z)$TuTNL2JZ=_&!-Dho#^@DoO#;m5P*wORyO16LH`ZAN+lnwpK}t?ZYq?aOT^iEer) zzs`)Foz0NJw;vNpZVG-QB4Ox+uhzsGgjboaOD$cot8kU;j0s?O*0rtOos5=vl8oXD zbQC4DSPzun#>mB(=eash1vE!de;R{rhqW{>Hn=2}z>Au$SU!U***^g63(_-rL7%m81{knD$G~PI zv^=kI%1f~;PBFn_yy_dg%F&ZbbGYD3ta8lagh6+agy-3Cp`P;Lyb6_Yt~lsH1Qekl&s|S zZ2P&(u4(aRLiDQ25+^U;kYDyt5=cUv|yvLG1`dq@hsy zR_VHkv+yb9J>|Y7^-ciyEDihj>}fc&VE^z12V-Nu^WySjy>tBh^|R^os`vf1^X=|1 zbGbK?d*k!zR!Zt-)1t6Wuo=Bu`xLvu`_VaFcv3ug!(68bd*XLwRO3~V$+Uq(V9>Z$ z8g{oXK6V8Lwu6QRa@mvPW^Z;WQg5wVySvx(#f`*5S?h%iG_J=7SB{KBWXAzqQl>`- z)nvjY&89}iaEjNB)G3@WY6&K3^H%Cq`OssfLdY)|FU9ow}Et~{w(46vuM-vE=7 zlm{*d*;B7ub^#-vsI~RqGnB#)v!juXahMJhoG&4ES5;}>Rjk)syH{a_kkfwINs^<8 zIOrz%d93TcrT`e)B|nXyaa#O8JNP97q#As`mz1DuO{AzvV_YompJ#wgaiml@A+NJ{ zC(r#MO`emp5bv@fB_$x)$LK9i5eDl>gDgA=*($HVQFgV^<@P`Fg&2hRo>+QkLv-Y8 zSQJoFY0n}F-{vr$d&1K1z+!N<5b8}IWRSHzu0V7ZFhifF0MXVQyUQsBuRP1C>g%ZR zIE%auGWw#7&<uaQF=IySfxw zQ4uQO*}8zEcBngh_oPH-=_HqoH`4J-UUY;Pt2-WTBk^yyj@%=%5gkk}_$f?}5@;_o zWG+-ikkb7TzrEs5CI6=p^v5DF_i9wA2PGfu1y@waijk{|{!~=Zwz(s&ks|~(Jlq1= zhigw#9|}Zd7(?~MBq>4tDJJAaI2_`T(ntg2jgUY*P(eSZ@k*lsfrO45Pn%V;ml8NF z9lSqSa@Gn#m99CE2`rjWO8I;4xIwezk)SMoBAE6s zN!lJH_`wDM*RBu=2t z3I3qA|FNFPZF|1EHoh)N3~tDXHrjJh5G+&$0StWXEuCp&Nsw}Bg(_NXHvY#{DKS5u z`g|S-?b>dWt5#osF>NKd(?H}3-;GRkwY5Hh9-&h~5Q;)HNkjd?b{kEOSV@Nq++66T zo-cV1Pb#KbIuywE{Uf0T|BJ3D{22l$KCK=i4u};L*Lk)jos{HX@?)q7B_Cy~1wN|j zm#Ei{ajAqgWzWaVKqR zyIe$NqZFq~ksIill0n|0ps*Exd5xIk^M4RDq!OO5FrHI3mnQ=|sC6ZowA8DjL_Aqj zb>o)T_?S+UZXKKMtVFB7uD*gej$t96H9AA0P5Y}nha8Wg7q%zk`6~?LD!U~?j`qjE za$HNxkAS@7+B8`iS`(9&pP;`MT7_~YN3h#}1k6^M$Ov4oGnD3C;IX;>lJL#QpX2`? zE6=OcC4InyEzWldk4#H#z@Yiv7jJ_RbpR^)Wuw}}zy_w+iUWF}$xuQGPq#$RL5h#vr{3;=G7m@dci?Se4Uz5FjSF?_U@ z<{v^a5dwlcb@an;Ye=-p{vha=*|u$G*YRJ-+%s$4HFJN?zgU^MWA7E2xnl2#=X)Q91HMo@D@QO4h#WSxkLDEY>RBxb zgUp?81z~1I6yUbE%UkwOD8352ePz;5F~xLa#N%o|ql%nN5f6hkQ872v8|s$Kq7uBg zI6h|dJ&qZvd}VmqQ0^p{&;-v0*rA*PgPH04@3#av)EKnVsMDOCsgdBt$d>1%mRKMu z2k|Gs7TMe%vW-fM08W+cRlxQfEM<&O=Ct)hy{7A@8exl2V)27RkC?P7_wStym zEB6y!1xR2`m4Z-orB5WWc$&}IqkH!=oX_By#(QR6nsX*K@&mNoS;n7)#*ix|vH|A5p$8&exj zCY(`ELO4|aSH*M+I<|?nN8K?4n z|7T!2Q)@f7vuA^5{39_c-LK)$6sY;2gO+RP6%~v{5QV-aD26)|>Yq5Ua*Dn0v$yz2H1%(>u1vZ)4Q=n~P<>i@qX=AZw!BU{5hOiW%6pis5Bh!od$a*UGi0{|q50Zq9 zmVt^XXSU&PTYw`NBeph`a{R&ZkX7GRaGBL6I$mU}ri|y7&4Pf;G|1bNLrGTMUQC{j ze-N+E%_B`8>$lDLpVIua>EM0ST(%| z0@TWP<}IPW`iMsMB*b2DZ_!v7fA$fdoT3*6BGHxB+|mCjCS`$w2q>RPuh7+m7abj-XoD`> zzg=g(Db3{Q!dc$4Dbq=!rNZ);6gITXjr73-Mt0iLxOkAWAu~{tY|u&yR;+)`2zEnR zgAHDuWqKmO&qw0 zwP^9|W98I`F??Q@bm@~RChC~NyQC{)Ge%uM7ihqo8!C^Hsm$Xq4NGIVWT65-<-hjo zNRP6SbZFj11(?#7EnG6AC1ndztDteZU}5E_mdH0L7Q5O>O_+%^QL|5Cdk)P#C2@_8 zZI~~2(Q!lw5=~)*Jtv0AEn_!ZlPK%S9Fccykk2Onqj=rp2a#nHI#f=^`}Bi9P^@7S zNlmu*Bxz)Ons+@|@`Pu3lWPERo4I?3#2s|4gJ@3)cmIKms;Fl$i9XW_v{7U9uY_t# zL<&YcNpZqMfMihox;lE5zc-g<)5IX!l^23B1joBIL=h8c@SwZH^h%2+$XmQJ{rVYc zlF(1LOfx+Y4?n;>1(IGg8lEhjiZLdC7wA0+2J`q1Ofk7E{no}`I$|P~3_3h$pTHKQ zv;2lcz?qflg?cx_c(vQTaxi6+XcIpfAUV4W9q6u|IlgayhS(>$y7NFA#{98KYJ~%~(Uf6ksydYX0-b3+8{%YDb>5i+9tQ9tLOf3> z4oJyH2tsZ&zTYq*zB0I+ZIYX$cI`%s2*miobf;e>ZS}-+Nb)-q>C^Gz$Od#t^M@RD zB96XHyJ?pRosyl# zqms8ksT#(sxr(RY197;j+Qo>cbHEQ2-M+X^zYgILK5J)j+XU~p96G6JV{4&jwfjbv zi=pX=Kec6z2Fn_`(#p|~+FEFqAi{BGW)}H~EtHL@VC8J|f`d%yHSAma_e`mdx*k+l zVdNa9ZMv(kwLw_Qc?N7S&Co=f4i4*{-aJLgI(Xg-U$voN(cg zl`q7o7nnf{*GJMN~#Hy&Vt$}(B71xJeO)F0lxGq(`(8c*RvhYhqpdKU{ zg9b7jT&|UxV>9>^9C=bTA_DlMO^Rg%DzI(m60Tws`Lx0^kwkE%V&KnX9qmXGSb6JP zK9f8)_N|PSdjkp26i&El4wS~&k)OCVMsA)B6Da7&ckbgc8Ix`hDj)h z1-FYyb>XDz@rTG2Ih(-2a{U2&@mlsJs#+X}df|rYvqzvTKZO^fk2%>dEMgtjcgtR_ zgda7CDI`Bze4TM7>ne&-r5fRFaac1Z3}!Nj>ld#u8>uwM;!`F~bTKZYz~Y6^65i{! zFTcsF5Yiuy9*T)IVmK4vKibR!9adYyyqbXklpna-L|L4XyEYr7i0H07q7x<+6=%6% z+ng*_rP&X-Vv$|ezRoJ-p=y)xfY$0l9Sft$p*n|j7Es}|2mcy?k?=SPumQQ2|A&@! zau6NYOJ|r!zCWF2VzJdp)#Ek(R+iE%UV*A6$_*@8tsC=#7{_`FQiCWd{SoC0a{{Z` zz2R7rl;Ad}Q%>qeSea7B&($!t2KJGb#n1M)k9b_2NmqL%sM2VJ(etUip?HhU`9gGk z1XY-t!P70>);(G++N_vL$X)MrzLrgid}he+dpWhSz6WgmE+67;T8j|Kz^KO$ujiC*=rlMr_eTx4B~)%6>) zb-&DBB-p@h-SQ80<~AitbgLVoB$ywHGt`5s7%L2D5Bc>Wn&T_%+DmFqeUbv){w#cL)#-7>k5&qYEi7**M{ zJ@|njytqa0sVVMKG(rXl^`=p)=MK7rHp_DN>)j2UBZNLJ0U&iu`Y;OrB4Olg^7IbQ z!`!3IZao#nQcWW>@9K>*JZ0^|#Wd5Ay z`xtpr&hPEwpmGP#$WxI03AokZvI&qe%V+=`^zV3P{gZR6WP0o)8jXgw-LVs7q<0D* zRRzUGTz^8T2B`cfpHgMc3r5fAlYRq9@ljXHM$k3zXn8OOE#`2k^!|{D*G`|JQIScO z45*+IvBA%wJD)7iAuZ;jhFS_ZyfDX$YO{epKD>eGKm0YY{e8RV8H(v0VUC`vr&nOV zOQ{O+N0%-4=#U`Qd{hT5nP(Phmi!)a@03BulD*@WYp<1AZO#v({cLx5Z^f~Itilvv@tE5N($rf3)b$EoXJ z`p-Ip@cLNPMnU75&kH`{C9Oklnvyg}^YU>%;we!8Wt-VYc9wZaga2Ly;Ky&Le~8SN zS}j~?p}mdPMrZuUnU%u}Q^!U6rtvadg*4|#=?8wGqLkv!APJB~(Axy>Y0o+5-dly0 z=-cHDgdNE5J7C7?buAxa9;>9B=FHahlManxHbOtWlIXUSReub={h*hb^55e@}^E z{U&JM#Jfl#`%}$_iG#CX%_pt~XAYxoop#OC6=y!!u)1S}kWTD94U5Rjq4D__0s; zq=9@GRuCcKWWKQfLAiTr5%QQ1TXSq_epE(_1M{BFL=oP|4l;W2Z__EUJ<)gdZp$rV zSEl7&_ASP`rZ(HIy1pR-r>;Nhs9HL-jGW1UawkEU(n#lF2SB;LzhZZ>F#5N~;^YEN z8SPMq?4^m7WEsbnJ=toJLSwQjo4Re9bz_(kw3;uuXIh?{zY_VY5?Z9&gW}xx3?amR z4~k^m+6*fLGZsc_^vgL{xlr=W1D8og$8nRN1oV4?-hARVq?@ui=yxO$oJK#f4YG0~ zC4h|%;B!#tJLu+%0@Uo6FZ*uGBR6Zc46V>1}Wvd)&+TPIbV26wesdggJ?0({Cjxg*!TPLgqxzsOuHT_u`r3o zsh0$o5oDWgvDraMBvYemh8|VtwiLP9VzIauJ1tE8p1Tp9%R-bN14vU77}lkRRsytJ zi^UQ_KJJ2A&~@@%d7J6&eE82FP(o82SLI5N-e#aej^~3e9{NMQhjUI$;UVP_BXil* zl*3P&%nyobE-K~(s1Mduy=oD1mA%ErI!ZkN6{xckh$i#8(j+Vu$qn-WU_w2*a``5W z$z^PDe7>a3XlKZo;dPRy@tv~a-SuR~4*F55!$MI@?oZ#^KrKB^SDEqzmyVDEB@JVR zu<2;6>|sW3f)92Ub==5cZ*uMOpW~ELxUe`YAlC$J%vv}1bAx}Q}6zviFR2$(`|# zBL2Dk*e1G3+a_KVmdr!1?MR8i`H+;W8C)PiH-~M?N&yMgiHnLRj42eb`2kY;+^KT7 zjG4qq1MYIRob3VYk9J3p*}oVm7yGhiPRAEAoq}SIjlc+GfuPtj4&g>o@=%HA;#tIU z7dG_Up|A_E1YpdpV$8vT7|bEDASc4kTMmhJ->1V65W=;DY~NA~QWh`NT0_y-{C-R+ zB3Yf|&VqI26ss_#<|*3qP@J6+?ic|WtdMgg;>GeA{t)yD7`WgZ!I1)4_z9!t%&`Gb zCX=;(lo`mB>XaM(&h- z{S7-O<3g&e&`l*?$~8*^SVvqt2|bD=Ih^bh2VQS-nRPju4Tqhklye!_w9ATSv<(L! z7^m?0f!4^K$qE;QK6*S|Crt?344yWTTGXL;ljX`e&2hG#!f9_qrf`WZ1;3(`bt_~^ z^t_f~87sSzMz*PDUcw#UW3*K#%@F8NYg$HGqS<01K3;C>C`b`=n}m$oTu9eb)d9d8>H!4-awYTDCROj%{9y}U@ctWwP{51scA ziCIG)A~D;EO9)qmT=L_bK0ecx3ryrb+vtX~1mWtYZ9ckILo*NA)@nd_%e&a~Pe{^_ zkcA=~*C%ft3Kkidr7TcN6m0rt9C?sQS)CBTX(8$Zhse?nn`d}s{F0=eg#uQ7OQy2- z2yw7B60E64Scz$3CL`fzANxM8qPPx>_sPy@zRniz0x=Q^OGbf zaX~`*SGsfQe2FYqHs1EFT|0;Zi1F1rzqH4Kl$$?dRqIOTls5%q*J+87vWv`KVuNxA+z6VI%#Mj+?I?9iu z>Es{fextv&xHqFdiC^hVz*dn^ZL?qtbeU=BgfFal*y?*Kiw1Ua@*uDAPh%!`S*^N zzooX(Xg?MgnXdo-7FEi#3lf8-La{?SPaJkeRTbI`mdE5{>+O$Hf8&V?i>hX*=94^R zvm6spbU1+h2~RwP{TQGnov1ANs$Iq1Jwd01wxv;^Bqk?oGcE>Ea#6cr{K2E2%FbHm zG?QVMFa^s89W`MNT>Dd1UT~0H#l2hQS%!hOl2rL{ggnh-#Yv^>SpA>fG^VX=^~|iA zPQzE2)Rjn04 zwW^6_%0p_0^s9ePz_2jl-faaLmqXZOC;jWkKN{1+F5<=_WXrv|+tJ-imnQDHLf)e*vUNs3#O zt~E!+IZoLXgFdK3;wi{5B?OOl72=b zik(zy3qA{u+GYh*8ySKtD%aQj;2B1U9;=K=H0;HL@+3e-a|RW!JE#sX2xPrn<`Q;K zCaXcpuPb`!GB6Z7O;ptM&lVo^psq?lPK6H10|B}FuFR?Kq=l#5loDg-lw(lp_k*E5 zdUv-g*8$}%JZ*_&jOkZg=dnPxi!YSR3OUFA<1X&Gg`FccG$#S)NPhIPab6lc317zM zEnZS11_LG*w>5NRdJ-}D3A$=hLC=}bY}uLEvJ|6OtwgOmbPY!3QG<%tlVvbYQC^E*XG9K zL96RJFi;r{aB=Sbrae{9^I&a9#Fou=Yqc<6ZO4%p+}W5o^Z~(VFm|2u3H(%}Q>Rnu6OjZo(n^Tte77s&k#Yf%dS)(S}MX zh(fz0WkYRrjqzOMvsl_Rt<37rB-Ri1pikz~vEvE!;+PB_9efBA9g~g8?lIT+D~-vf zNNvdDafHjLtN5lcBmjRZil{3mcjrvAt>Jbys4F@u1u)Z#i^6$hf%!1>Stpz-RKufq z0T!OVzj1u=wj7!*jhe-*DO!u|j>}=HBQdC|^Ri72n}6X>d*XnGpsx5tdY#~c6cO{- z)wI+;iAA2h_2zmhdY}%11GicS7zLZg*z`Ic#$f$K4Mm6|0)8k8pL$y=lFx6RRc6t7 z5=nrr)$p_LH<}aw-m0R>LK}2h;g2q5AjRU8dSrLyiO$&icZ5VX=>sOm#1vH(c?J1I z)T}j>CcOzv+xSgahm+~chV`){&ENNEKBzUC=b@IAlF4AcQv8Hc6ZWo^(1cEa5Upn! zm+^>LT{-CqR8mxWg0jV~(F%%|?W@pn^Rn*hEhP;&L00DY$kB3%a5rJ`a@f15^sJGa zq(3@}zAQ6Y5IpBd;di$4@7xjXm||QOK`}= z>Pm#|uh&@DQ`p&Yrz|0Y+vXB&D-oIsRlw^+9FJfgLz03tKGek6I%&Vcx*3=Wv z!+F9)iPnI}n51PbWyc}Rk`nAM%PaE9pY+`M;(5#SV|jw%iCwm!5_S05f4rI7ZH2KGs%yC2h;Mn zmhj8`O0=jgE~2OX1L12tIvd*|Zde7HAa1bP0Lg+E&UkzIB{lTQEV(MDmFBX=s%F?i zVHQU9vRh$_EHIt$n~SJuO2j)ylsDefmE*vIpXFq!l2|OpCP<@#urx;6T{u=pk?AQV zZ_5FL^waECYc0@|J$3Kg8itcJj+KFsA035CY+cHt-tM`p9k4j&g95d`nVA~+LatIY zPNGueD+}hY&+0q$cw=V>Co_N;UM`GgB@W(oNmLKVgt#&CdDprj&MKC2ElV3T(<=__ zIE#X*1O#UQ2{3ZbL$Q}3;>`m`vBDBD>Cf$eD9mMqhNV~zs(&-QW?Ya6Z2)0i)}mp> zU!Bf6+ud1|<(z2_9UFQwr<^a=QwB)kx{222wmW5^Yps}+)p9drHK>RfMoPc*qFKaF z#I9Q#h_-Jbmu#C2mp7tm_15cu|GP;*#og%W^=WUV#}e2P{D|9qo8AN7r`L=vm-g=Z zy$ya65i;C&$3}sCz1@Am#m&fZh$GH8lvMBx5QF|4Ao-o4aPEMR7&p2$P=fL3kAqnh zo(w9qv2tkY`RME67bIl9NMaI}NEiEvQA{3(w)inqLIBh8>y@Ivd0gYk)J=TMKhaC~ z)#fbsYh);kqHRwh=Wt-AivHSq?8!#rZ^bKKqC48t$)AK+`>s2bn(lht>f!P|R~wW4 z)I>ZFSA5niA{p=KxMV%e4gd3_=)*N{+2P)VOG;lD@2a{?4{n?vm4$(RQqbWZAx9`F z{jpCdQP8owwX}gXjv?q^dzLiRU+frTQU#j#UkTKaOg6dS=|p+R3iCpEWcRp~Rk_T> zt=z*db98OftJM<*z}EqhaG5x$MX;zqPVlV(?h@~q*b z!=BDU>jiiU$Z|Ap*_WjUGwG-1KzXC(?tz@Xzxr8ya(Ow~BfNg~au%)Nxo)2>cgk{} zhq5>#3k^M7=+%_rJ%;42qBt=TsNL$^Y1&MkKJj8*z?>(A=o{9LW4O%KbPccM`4H#0 zajeebsTbvvd@EEkdVE&4>>OfAa$0UD7bDkp=}H;@Mylji&WE^X&}a(Uma;vP{^XOx z>lH4Vw?$THRLKz(!<+ab{{DPv>3R&z0jbBv0FnBByEPQrPC2rI$|zAz>!GP`V$bb^ z_Y{P~-QinOh+`-&?Q7>=EbDvvKbGV%ueV964rSgNyi9LBMYMXgo_}#4NP=6v|0Wgu zzTSS#c6%GY3LhXE9|?b*1Ys`ylc^K_>Lo0ybFxJK*ZGf#Wq&*g))JP-q_rnup^u;<;FvoR4R>bM4;vdwXEyw4GnN<5~Z)68+;TFUaiVrfmP=#Q2}s;s1s-1+e{>-$TX4$<^3J z(a_1%?ptH>t<+#rHg&dlbuu>nmYT5rm*L}ok*5ENGk&9$|L3GB`~RR-|2t{=-znJt zpNdfc-v$)6|A~>Za1wL=PaO)&e?w3K0AjBH8X*Y)^Z&w5{~vA?R@na!2g-j_to$D% zsQ)>r|AnBk{|}TG!2Vw-D*OLHQU4c$%KqPf3;(YODuDUB+&8Y?wxrnh>$Co?`OW;{3dwKiZAKu;$WV zEBIOUeAb?H-elPOz3cH-ZK?dh53v7=$o0u?SCchT$64>i;mwjOyRy z`t0~{Fs4fNC}11w+v#`f>9?G3o&#>JKgOBl1Y1){VtHZdk3So)EYHn%7g+O&jaHZ* zit(tPt-J;eaT)b4TjES~R^!|hbp7uC4#h%E8vHY~{aZ9)R z(!TEN_92^66tc=p|8Sjdug6(8wfKzkktnd?>-jN$#p+>{^*+hP2)85#pYnDkvpDhw zaAQ?nnRPF`YW&5Kqp>%A^KBEMoV`qWUij_k+4+xelCLS%BZrgc@89S3=ZACiOy7@a z^PcR~cDYIX&NtK%!Y{DNRmk;4jy{>J!)F}$s@!f@{66Acs)p{b%j?EJfJX68^2siK zG^wsfAxv7IP}!ncH^JSK-0knvphMb8a}{#Uqg9Te@ppa{REW10M*H>>+d9?twtvN_ z@E{y+ex#nv_7a=6`t8pa+i$eI9m_mi=}RnqG39352>*Tj@_Cs2$L9BT{G1S{V716k~aIG72!I{3`q8 zCr8%gBW-oZVJLcB_5BKlz&)BJPrpMri(`^dWx?d77+hoYjL}By#i!P3z%N%AeB`=xP)&^C!ux9K@CPq2dqA#xwLepUsS&R>|>4s|&}C=uK5_ zTz6fKa{meeg(1f9=lYx$5$Yc#Dk1z_4kO9Z&QRn|z(M!+%;B@zCDYnt;CnmM>*n+e zPLwKGs7uzOr=7`MprUlG1BK_|Q_aJ`nr)RCcLSeSN3@6qH?bCK?^V&WC2E2GVf4mK zA~t?o_+;@Y!wD{Nr}M9}xNa~QK2dqUR4S!r!9r7}4)^}Hg2qN&dcw^ZqTQInv)D^v zh_H~0JM+#QUZs?w`}u&OIlU2TdHa+hKJIvIvXRz5$swLE@znTVzB%Zyi~wGe#>1r^ zWwX<8{o(#G`{B`D{1&4T=j>CE;nYMeER1G&&7}xBk(A)5DRIX=sOwyARDpN0gAE0x z#Xtewys6`RpsCS~8=pM`wDJ%O^~K@KE&({L+f_*8=fbx5{EU)TS)F@X+}fm1r&?^t z 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

olfB@tr%_k=yGt>*PNZ>!B_e?cnr%E^No1| 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%0AW(akB9qlK%5oX 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�#89daVg}A$$k9@M*2BI+!RlVyWGYABAk&D#H<@^lni!932AC<+VheS_5|5{QAh$@+Juj6? z+j?+Ppb;h%eyg7LR4n48?8SG+i9HJ9t-yHv5ClQ0ub8VNj;uHf3K^fc#QPM;C4uml zAo@)usF^D7Vh9@+pkF5IaZrZgI})#-EQ@-uU%8I~Imhivf_=-4eRmhL9J4_;Z9 zTyY=pUYh+(UL)Uq?M-rjU2-BK*!d=+47Bl9a+024DgmAA)OT}mYB)oS%+NPVlANgx zZJ)sGT)-A3HAb9WJfWnO#8RfI%&lHJg;$wn&BId6+gxQYeWP4B%Sm-~&#P8ggc7!j zypfLs1_}O@6xORlnzl;|o*wJmf}D;F%SeV{EK5J)J%B;P_~0N0?UApj%{&k|?T5aQ zIte>Xo~GL{(K^t{d{EH<7I2r1-a>b+U6HG_tk|Hta@;Z2IqOu}Rdo#^!q#T@xSoY4 zIaT*K9r^q-p4zK`E)wx!^0xFK@W(SeJ(=6rU7#A6M-AWu37@j|KtuyUlq;B!6&LlR;;DeU+6v>l1}?F3p%X$P)GZrJHS)^ZV*mS9xWLn3&iVf`=a zta!O@-bfSNiM&roX_AN3sXl8)D^sc!QqzD~4$Fdj^i-78A>7=bsNbOcP}78ofD@f9 zSBUOFgDfz=G@dd&b|HsxyGt zW|*U<2PXV3FM@)|Bc<<$h)^(1-6!iLNL!-hAs8_T0P+68Uyu`@Rk7si(Zq|`S?)>h)tUeB^I_}rK7Cow)};ExOwa4JB&F>&80?dyQ00kQ z{pRc?Qm=*j;Pi}^%ScgVaE`aXxtix_Foh)-F$eW3LfI`JqJEA`v`C~3s=NTr;!f); z{=hDtwfo^p{Zp3#e8wHJ5#h^UMCl^CqfjSfAd1Hjib&g;YIe?c&Ef0@uLNp-9 -*@u`KCM|WeSB~x4uua?@ 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
$!v6Y)mb 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 SxaiaGU;XM=zx(6wU;P*GvEx7h literal 0 HcmV?d00001