├── .env.example ├── .gas-snapshot ├── .github └── workflows │ ├── subtree-sync.yml │ └── tests.yml ├── .gitignore ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── deployments └── addresses.json ├── foundry.toml ├── script ├── Deploy.s.sol ├── ScriptUtils.sol ├── Seed.s.sol ├── WriteAddresses.s.sol ├── deploy.sh └── generate-hook.sh ├── soldeer.lock ├── src ├── custom │ ├── README.md │ └── actions │ │ ├── BaseCafe │ │ └── BaseCafe.sol │ │ └── BaseGirlsScout │ │ └── BaseGirlsScout.sol ├── hooks │ ├── actions │ │ ├── Allowlisted │ │ │ └── Allowlisted.sol │ │ ├── ERC20Gated │ │ │ ├── ERC20Gated.sol │ │ │ └── types │ │ │ │ └── ERC20Gate.sol │ │ ├── ERC20Mint │ │ │ ├── ERC20Mint.sol │ │ │ ├── types │ │ │ │ └── ERC20Data.sol │ │ │ └── utils │ │ │ │ └── ERC20Mint_BaseToken.sol │ │ ├── ERC721Mint │ │ │ ├── ERC721Mint.sol │ │ │ ├── types │ │ │ │ └── ERC721Data.sol │ │ │ └── utils │ │ │ │ └── ERC721Mint_BaseToken.sol │ │ ├── NFTGated │ │ │ ├── NFTGated.sol │ │ │ └── types │ │ │ │ └── NFTGate.sol │ │ ├── README.md │ │ └── actions.sol │ ├── pricing │ │ ├── README.md │ │ ├── TieredDiscount │ │ │ ├── NFTDiscount │ │ │ │ └── NFTDiscount.sol │ │ │ ├── TieredDiscount.sol │ │ │ └── types │ │ │ │ └── DiscountParams.sol │ │ ├── VRGDA │ │ │ ├── LinearVRGDAPrices │ │ │ │ └── LinearVRGDAPrices.sol │ │ │ ├── LogisticVRGDAPrices │ │ │ │ └── LogisticVRGDAPrices.sol │ │ │ ├── VRGDAPrices.sol │ │ │ └── types │ │ │ │ ├── LinearProductParams.sol │ │ │ │ ├── LinearVRGDAParams.sol │ │ │ │ ├── LogisticProductParams.sol │ │ │ │ └── LogisticVRGDAParams.sol │ │ └── pricing.sol │ └── pricingActions │ │ ├── FirstForFree │ │ ├── FirstForFree.sol │ │ ├── types │ │ │ ├── ProductParams.sol │ │ │ └── TokenCondition.sol │ │ └── utils │ │ │ └── ITokenERC1155.sol │ │ ├── README.md │ │ └── pricingActions.sol ├── interfaces │ ├── IHookRegistry.sol │ ├── IProductAction.sol │ └── IProductPrice.sol └── utils │ ├── ProductAction.sol │ ├── ProductPrice.sol │ ├── ProductPriceAction.sol │ ├── RegistryProductAction.sol │ ├── RegistryProductPrice.sol │ ├── RegistryProductPriceAction.sol │ └── math │ └── SignedWadMath.sol └── test ├── actions ├── Allowlisted │ └── Allowlisted.t.sol ├── ERC20Gated │ ├── ERC20Gated.t.sol │ └── mocks │ │ └── MockERC20Gated.sol ├── ERC20Mint │ └── ERC20Mint.t.sol ├── ERC721Mint │ └── ERC721Mint.t.sol └── NFTGated │ ├── NFTGated.t.sol │ └── mocks │ └── MockNFTGated.sol ├── pricing ├── TieredDiscount │ └── NFTDiscount.t.sol └── VRGDA │ ├── LinearVRGDA.t.sol │ ├── LogisticVRGDA.t.sol │ ├── correctness │ ├── LinearVRGDACorrectness.t.sol │ └── python │ │ ├── VRGDA.py │ │ ├── compute_price.py │ │ └── requirements.txt │ └── mocks │ ├── MockLinearVRGDAPrices.sol │ └── MockLogisticVRGDAPrices.sol ├── pricingActions └── FirstForFree │ └── FirstForFree.t.sol └── utils ├── HookRegistryTest.sol ├── HookTest.sol ├── ProductActionTest.sol ├── ProductPriceActionTest.sol ├── ProductPriceTest.sol ├── RegistryProductActionTest.sol ├── RegistryProductPriceActionTest.sol ├── RegistryProductPriceTest.sol ├── mocks ├── MockERC1155.sol ├── MockERC20.sol ├── MockERC721.sol └── MockProductsModule.sol └── murky ├── Merkle.sol └── MurkyBase.sol /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/.env.example -------------------------------------------------------------------------------- /.gas-snapshot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/.gas-snapshot -------------------------------------------------------------------------------- /.github/workflows/subtree-sync.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/.github/workflows/subtree-sync.yml -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/.github/workflows/tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/.gitignore -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/README.md -------------------------------------------------------------------------------- /deployments/addresses.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/deployments/addresses.json -------------------------------------------------------------------------------- /foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/foundry.toml -------------------------------------------------------------------------------- /script/Deploy.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/script/Deploy.s.sol -------------------------------------------------------------------------------- /script/ScriptUtils.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/script/ScriptUtils.sol -------------------------------------------------------------------------------- /script/Seed.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/script/Seed.s.sol -------------------------------------------------------------------------------- /script/WriteAddresses.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/script/WriteAddresses.s.sol -------------------------------------------------------------------------------- /script/deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/script/deploy.sh -------------------------------------------------------------------------------- /script/generate-hook.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/script/generate-hook.sh -------------------------------------------------------------------------------- /soldeer.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/soldeer.lock -------------------------------------------------------------------------------- /src/custom/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/custom/README.md -------------------------------------------------------------------------------- /src/custom/actions/BaseCafe/BaseCafe.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/custom/actions/BaseCafe/BaseCafe.sol -------------------------------------------------------------------------------- /src/custom/actions/BaseGirlsScout/BaseGirlsScout.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/custom/actions/BaseGirlsScout/BaseGirlsScout.sol -------------------------------------------------------------------------------- /src/hooks/actions/Allowlisted/Allowlisted.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/Allowlisted/Allowlisted.sol -------------------------------------------------------------------------------- /src/hooks/actions/ERC20Gated/ERC20Gated.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/ERC20Gated/ERC20Gated.sol -------------------------------------------------------------------------------- /src/hooks/actions/ERC20Gated/types/ERC20Gate.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/ERC20Gated/types/ERC20Gate.sol -------------------------------------------------------------------------------- /src/hooks/actions/ERC20Mint/ERC20Mint.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/ERC20Mint/ERC20Mint.sol -------------------------------------------------------------------------------- /src/hooks/actions/ERC20Mint/types/ERC20Data.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/ERC20Mint/types/ERC20Data.sol -------------------------------------------------------------------------------- /src/hooks/actions/ERC20Mint/utils/ERC20Mint_BaseToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/ERC20Mint/utils/ERC20Mint_BaseToken.sol -------------------------------------------------------------------------------- /src/hooks/actions/ERC721Mint/ERC721Mint.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/ERC721Mint/ERC721Mint.sol -------------------------------------------------------------------------------- /src/hooks/actions/ERC721Mint/types/ERC721Data.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/ERC721Mint/types/ERC721Data.sol -------------------------------------------------------------------------------- /src/hooks/actions/ERC721Mint/utils/ERC721Mint_BaseToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/ERC721Mint/utils/ERC721Mint_BaseToken.sol -------------------------------------------------------------------------------- /src/hooks/actions/NFTGated/NFTGated.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/NFTGated/NFTGated.sol -------------------------------------------------------------------------------- /src/hooks/actions/NFTGated/types/NFTGate.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/NFTGated/types/NFTGate.sol -------------------------------------------------------------------------------- /src/hooks/actions/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/README.md -------------------------------------------------------------------------------- /src/hooks/actions/actions.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/actions/actions.sol -------------------------------------------------------------------------------- /src/hooks/pricing/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricing/README.md -------------------------------------------------------------------------------- /src/hooks/pricing/TieredDiscount/NFTDiscount/NFTDiscount.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricing/TieredDiscount/NFTDiscount/NFTDiscount.sol -------------------------------------------------------------------------------- /src/hooks/pricing/TieredDiscount/TieredDiscount.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricing/TieredDiscount/TieredDiscount.sol -------------------------------------------------------------------------------- /src/hooks/pricing/TieredDiscount/types/DiscountParams.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricing/TieredDiscount/types/DiscountParams.sol -------------------------------------------------------------------------------- /src/hooks/pricing/VRGDA/LinearVRGDAPrices/LinearVRGDAPrices.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricing/VRGDA/LinearVRGDAPrices/LinearVRGDAPrices.sol -------------------------------------------------------------------------------- /src/hooks/pricing/VRGDA/LogisticVRGDAPrices/LogisticVRGDAPrices.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricing/VRGDA/LogisticVRGDAPrices/LogisticVRGDAPrices.sol -------------------------------------------------------------------------------- /src/hooks/pricing/VRGDA/VRGDAPrices.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricing/VRGDA/VRGDAPrices.sol -------------------------------------------------------------------------------- /src/hooks/pricing/VRGDA/types/LinearProductParams.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricing/VRGDA/types/LinearProductParams.sol -------------------------------------------------------------------------------- /src/hooks/pricing/VRGDA/types/LinearVRGDAParams.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricing/VRGDA/types/LinearVRGDAParams.sol -------------------------------------------------------------------------------- /src/hooks/pricing/VRGDA/types/LogisticProductParams.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricing/VRGDA/types/LogisticProductParams.sol -------------------------------------------------------------------------------- /src/hooks/pricing/VRGDA/types/LogisticVRGDAParams.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricing/VRGDA/types/LogisticVRGDAParams.sol -------------------------------------------------------------------------------- /src/hooks/pricing/pricing.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricing/pricing.sol -------------------------------------------------------------------------------- /src/hooks/pricingActions/FirstForFree/FirstForFree.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricingActions/FirstForFree/FirstForFree.sol -------------------------------------------------------------------------------- /src/hooks/pricingActions/FirstForFree/types/ProductParams.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricingActions/FirstForFree/types/ProductParams.sol -------------------------------------------------------------------------------- /src/hooks/pricingActions/FirstForFree/types/TokenCondition.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricingActions/FirstForFree/types/TokenCondition.sol -------------------------------------------------------------------------------- /src/hooks/pricingActions/FirstForFree/utils/ITokenERC1155.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricingActions/FirstForFree/utils/ITokenERC1155.sol -------------------------------------------------------------------------------- /src/hooks/pricingActions/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricingActions/README.md -------------------------------------------------------------------------------- /src/hooks/pricingActions/pricingActions.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/hooks/pricingActions/pricingActions.sol -------------------------------------------------------------------------------- /src/interfaces/IHookRegistry.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/interfaces/IHookRegistry.sol -------------------------------------------------------------------------------- /src/interfaces/IProductAction.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.30; 3 | 4 | import "slice/interfaces/hooks/IProductAction.sol"; 5 | -------------------------------------------------------------------------------- /src/interfaces/IProductPrice.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/interfaces/IProductPrice.sol -------------------------------------------------------------------------------- /src/utils/ProductAction.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.30; 3 | 4 | import "slice/utils/hooks/ProductAction.sol"; 5 | -------------------------------------------------------------------------------- /src/utils/ProductPrice.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/utils/ProductPrice.sol -------------------------------------------------------------------------------- /src/utils/ProductPriceAction.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/utils/ProductPriceAction.sol -------------------------------------------------------------------------------- /src/utils/RegistryProductAction.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/utils/RegistryProductAction.sol -------------------------------------------------------------------------------- /src/utils/RegistryProductPrice.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/utils/RegistryProductPrice.sol -------------------------------------------------------------------------------- /src/utils/RegistryProductPriceAction.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/utils/RegistryProductPriceAction.sol -------------------------------------------------------------------------------- /src/utils/math/SignedWadMath.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/src/utils/math/SignedWadMath.sol -------------------------------------------------------------------------------- /test/actions/Allowlisted/Allowlisted.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/actions/Allowlisted/Allowlisted.t.sol -------------------------------------------------------------------------------- /test/actions/ERC20Gated/ERC20Gated.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/actions/ERC20Gated/ERC20Gated.t.sol -------------------------------------------------------------------------------- /test/actions/ERC20Gated/mocks/MockERC20Gated.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/actions/ERC20Gated/mocks/MockERC20Gated.sol -------------------------------------------------------------------------------- /test/actions/ERC20Mint/ERC20Mint.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/actions/ERC20Mint/ERC20Mint.t.sol -------------------------------------------------------------------------------- /test/actions/ERC721Mint/ERC721Mint.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/actions/ERC721Mint/ERC721Mint.t.sol -------------------------------------------------------------------------------- /test/actions/NFTGated/NFTGated.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/actions/NFTGated/NFTGated.t.sol -------------------------------------------------------------------------------- /test/actions/NFTGated/mocks/MockNFTGated.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/actions/NFTGated/mocks/MockNFTGated.sol -------------------------------------------------------------------------------- /test/pricing/TieredDiscount/NFTDiscount.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/pricing/TieredDiscount/NFTDiscount.t.sol -------------------------------------------------------------------------------- /test/pricing/VRGDA/LinearVRGDA.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/pricing/VRGDA/LinearVRGDA.t.sol -------------------------------------------------------------------------------- /test/pricing/VRGDA/LogisticVRGDA.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/pricing/VRGDA/LogisticVRGDA.t.sol -------------------------------------------------------------------------------- /test/pricing/VRGDA/correctness/LinearVRGDACorrectness.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/pricing/VRGDA/correctness/LinearVRGDACorrectness.t.sol -------------------------------------------------------------------------------- /test/pricing/VRGDA/correctness/python/VRGDA.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/pricing/VRGDA/correctness/python/VRGDA.py -------------------------------------------------------------------------------- /test/pricing/VRGDA/correctness/python/compute_price.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/pricing/VRGDA/correctness/python/compute_price.py -------------------------------------------------------------------------------- /test/pricing/VRGDA/correctness/python/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/pricing/VRGDA/correctness/python/requirements.txt -------------------------------------------------------------------------------- /test/pricing/VRGDA/mocks/MockLinearVRGDAPrices.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/pricing/VRGDA/mocks/MockLinearVRGDAPrices.sol -------------------------------------------------------------------------------- /test/pricing/VRGDA/mocks/MockLogisticVRGDAPrices.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/pricing/VRGDA/mocks/MockLogisticVRGDAPrices.sol -------------------------------------------------------------------------------- /test/pricingActions/FirstForFree/FirstForFree.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/pricingActions/FirstForFree/FirstForFree.t.sol -------------------------------------------------------------------------------- /test/utils/HookRegistryTest.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/HookRegistryTest.sol -------------------------------------------------------------------------------- /test/utils/HookTest.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/HookTest.sol -------------------------------------------------------------------------------- /test/utils/ProductActionTest.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/ProductActionTest.sol -------------------------------------------------------------------------------- /test/utils/ProductPriceActionTest.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/ProductPriceActionTest.sol -------------------------------------------------------------------------------- /test/utils/ProductPriceTest.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/ProductPriceTest.sol -------------------------------------------------------------------------------- /test/utils/RegistryProductActionTest.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/RegistryProductActionTest.sol -------------------------------------------------------------------------------- /test/utils/RegistryProductPriceActionTest.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/RegistryProductPriceActionTest.sol -------------------------------------------------------------------------------- /test/utils/RegistryProductPriceTest.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/RegistryProductPriceTest.sol -------------------------------------------------------------------------------- /test/utils/mocks/MockERC1155.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/mocks/MockERC1155.sol -------------------------------------------------------------------------------- /test/utils/mocks/MockERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/mocks/MockERC20.sol -------------------------------------------------------------------------------- /test/utils/mocks/MockERC721.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/mocks/MockERC721.sol -------------------------------------------------------------------------------- /test/utils/mocks/MockProductsModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/mocks/MockProductsModule.sol -------------------------------------------------------------------------------- /test/utils/murky/Merkle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/murky/Merkle.sol -------------------------------------------------------------------------------- /test/utils/murky/MurkyBase.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slice-so/hooks/HEAD/test/utils/murky/MurkyBase.sol --------------------------------------------------------------------------------