@artblocks/contracts 1.3.2 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -10
- package/artifacts/contracts/AdminACLV0RoyaltyRegistry.sol/AdminACLV0RoyaltyRegistry.json +193 -0
- package/artifacts/contracts/AdminACLV0RoyaltyRegistry.sol/IRoyaltyRegistry.json +35 -0
- package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
- package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.json +2 -2
- package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2_Web3Call.sol/BytecodeStorageReaderContractV2_Web3Call.json +2 -2
- package/artifacts/contracts/BytecodeStorageV2Writer.sol/BytecodeStorageV2Writer.json +2 -2
- package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +210 -2
- package/artifacts/contracts/GenArt721CoreV3_Curated.sol/GenArt721CoreV3_Curated.json +235 -20
- package/artifacts/contracts/GenArt721CoreV3_Curated_Flex.sol/GenArt721CoreV3_Curated_Flex.json +3197 -0
- package/artifacts/contracts/GenArt721CoreV3_Explorations_Flex.sol/GenArt721CoreV3_Explorations_Flex.json +3192 -0
- package/artifacts/contracts/OwnedCreate2FactoryV0.sol/OwnedCreate2FactoryV0.json +2 -2
- package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +27 -2
- package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +27 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV4.sol/MinterDALinV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV4.sol/MinterHolderV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +25 -0
- package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSEA/MinterSEAV0.sol/MinterSEAV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
- package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +28 -2
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +239 -20
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +267 -48
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +27 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +27 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +25 -0
- package/artifacts/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol/AbstractTransferHook.json +79 -0
- package/artifacts/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol/OwnerHistoryTransferHook.json +315 -0
- package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/GenArt721GeneratorV0.json +2 -2
- package/artifacts/contracts/interfaces/v0.8.x/IClaimMinter.sol/IClaimMinter.json +189 -0
- package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +149 -0
- package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +26 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +25 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +25 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +123 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +123 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +25 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +25 -0
- package/artifacts/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol/IOwnerHistoryTransferHook.json +299 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISRHooks.sol/ISRHooks.json +432 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +0 -13
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol/ISharedMinterTieredAllowV0.json +94 -0
- package/artifacts/contracts/interfaces/v0.8.x/ITransferHook.sol/ITransferHook.json +63 -0
- package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/ENSLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/IUniversalResolver.json +45 -0
- package/artifacts/contracts/libs/v0.8.x/EnumerableSetUint16.sol/EnumerableSetUint16.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/FeistelWalkLib.sol/FeistelWalkLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/ImmutableUint16Array.sol/ImmutableUint16Array.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/V3EngineLib.sol/V3EngineLib.json +163 -0
- package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/V3TransferHookLib.sol/V3TransferHookLib.json +79 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol/OnChainAllowlistLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol/MinterSetPriceOnChainAllowV0.json +522 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol/MinterSetPriceTieredAllowV1.json +715 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol/MinterSlidingScaleV0.json +431 -0
- package/artifacts/contracts/minter-suite/Minters/one-off/ClaimMinter.sol/ClaimMinter.json +502 -0
- package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol/MinterSetPriceTieredOnChainAllowV0.json +673 -0
- package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +6 -19
- package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +2 -2
- package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
- package/artifacts/contracts/mock/ENSLibMock.sol/ENSLibMock.json +30 -0
- package/artifacts/contracts/mock/EnumerableSetUint16Mock.sol/EnumerableSetUint16Mock.json +146 -0
- package/artifacts/contracts/mock/FeistelWalkLibMock.sol/FeistelWalkLibMock.json +142 -0
- package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +2 -2
- package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
- package/artifacts/contracts/mock/ImmutableUint16ArrayMock.sol/ImmutableUint16ArrayMock.json +89 -0
- package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
- package/artifacts/contracts/mock/MockGenArt721V3Core.sol/MockGenArt721V3Core.json +490 -0
- package/artifacts/contracts/mock/MockPMP.sol/MockPMP.json +523 -0
- package/artifacts/contracts/mock/MockTransferHook.sol/MockTransferHook.json +453 -0
- package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockBatchTransferrer.json +39 -0
- package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockForwardingERC721Receiver.json +71 -0
- package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockSpoofingCore.json +94 -0
- package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/IBatchMinter.json +64 -0
- package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/ReentrancyBatchMockShared.json +113 -0
- package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/MockTarget.json +74 -0
- package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorPartialRevertsTestHelper.json +138 -0
- package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorTestHelper.json +119 -0
- package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
- package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
- package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
- package/artifacts/contracts/relay/RelayExecutor.sol/RelayExecutor.json +101 -0
- package/artifacts/contracts/relay/RelayExecutorPartialReverts.sol/RelayExecutorPartialReverts.json +120 -0
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol/GenArt721RoyaltyOverrideSplits.json +263 -0
- package/artifacts/contracts/utils/MintMulticallUtil.sol/IMinterSetPriceV5.json +40 -0
- package/artifacts/contracts/utils/MintMulticallUtil.sol/MintMulticallUtil.json +163 -0
- package/artifacts/contracts/web3call/PMPV0.sol/PMPV0.json +2 -2
- package/artifacts/contracts/web3call/PMPV1.sol/PMPV1.json +648 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBaseGasFee.sol/InjectBaseGasFee.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeight.sol/InjectBlockHeight.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol/InjectBlockHeightAndArtistProjectOverrides.json +226 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol/InjectBlockHeightAndNumOwnedProjectTokens.json +182 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.json +226 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol/InjectBlockTimestamp.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBytesPerToken.sol/InjectBytesPerToken.json +358 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/InjectChromieSquiggleFloorPrice.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol/InjectIsNounsDaoMember.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol/InjectIsProjectFullyMinted.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol/InjectPolyptychTokenHash.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol/InjectTokenHashSeed.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwner.sol/InjectTokenOwner.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol/InjectTokenOwnerEthBalance.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol/InjectUSDCTotalSupply.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/SRHooks.sol/SRHooks.json +899 -0
- package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IGenArt721V0_Minimal.json +30 -0
- package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IRelic.json +35 -0
- package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/LiftHooks.json +256 -0
- package/artifacts/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol}/AbstractPMPConfigureHook.json +1 -1
- package/artifacts/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol/PMPConfigureLockHook.json +195 -0
- package/contracts/AdminACLV0RoyaltyRegistry.sol +142 -0
- package/contracts/DependencyRegistryV0.sol +143 -13
- package/contracts/GenArt721CoreV3_Curated.sol +1 -1
- package/contracts/GenArt721CoreV3_Curated_Flex.sol +173 -0
- package/contracts/GenArt721CoreV3_Explorations_Flex.sol +159 -0
- package/contracts/engine/V3/EngineFactoryV0.sol +20 -1
- package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +286 -299
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +292 -301
- package/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol +101 -0
- package/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol +291 -0
- package/contracts/generator/GenArt721GeneratorV0.sol +145 -47
- package/contracts/helpers/ERC1967ProxyImport.sol +5 -0
- package/contracts/interfaces/v0.8.x/IArtblocksRoyaltyOverride.sol +1 -1
- package/contracts/interfaces/v0.8.x/IClaimMinter.sol +70 -0
- package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +95 -0
- package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +15 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +21 -2
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +72 -0
- package/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol +119 -0
- package/contracts/interfaces/v0.8.x/ISRHooks.sol +229 -0
- package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +0 -6
- package/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol +69 -0
- package/contracts/interfaces/v0.8.x/ITransferHook.sol +48 -0
- package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +12 -0
- package/contracts/libs/v0.8.x/ENSLib.sol +85 -0
- package/contracts/libs/v0.8.x/EnumerableSetUint16.sol +429 -0
- package/contracts/libs/v0.8.x/FeistelWalkLib.sol +221 -0
- package/contracts/libs/v0.8.x/ImmutableUint16Array.sol +201 -0
- package/contracts/libs/v0.8.x/V3EngineLib.sol +490 -0
- package/contracts/libs/v0.8.x/V3TransferHookLib.sol +251 -0
- package/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol +165 -0
- package/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol +632 -0
- package/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol +871 -0
- package/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol +493 -0
- package/contracts/minter-suite/Minters/one-off/ClaimMinter.sol +595 -0
- package/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol +894 -0
- package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +59 -41
- package/contracts/mock/ENSLibMock.sol +25 -0
- package/contracts/mock/EnumerableSetUint16Mock.sol +88 -0
- package/contracts/mock/FeistelWalkLibMock.sol +81 -0
- package/contracts/mock/ImmutableUint16ArrayMock.sol +62 -0
- package/contracts/mock/MockGenArt721V3Core.sol +416 -0
- package/contracts/mock/MockPMP.sol +287 -0
- package/contracts/mock/MockTransferHook.sol +160 -0
- package/contracts/mock/MockTransferHookTestHelpers.sol +96 -0
- package/contracts/mock/ReentrancyBatchMockShared.sol +53 -0
- package/contracts/mock/RelayExecutorTestHelper.sol +44 -0
- package/contracts/relay/RelayExecutor.sol +61 -0
- package/contracts/relay/RelayExecutorPartialReverts.sol +79 -0
- package/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol +130 -0
- package/contracts/utils/MintMulticallUtil.sol +103 -0
- package/contracts/web3call/PMPV1.sol +1204 -0
- package/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectBaseGasFee.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectBlockHeight.sol +57 -0
- package/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol +310 -0
- package/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol +141 -0
- package/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol +326 -0
- package/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol +57 -0
- package/contracts/web3call/augment-hooks/InjectBytesPerToken.sol +279 -0
- package/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectTokenOwner.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol +1 -1
- package/contracts/web3call/augment-hooks/SRHooks.sol +1722 -0
- package/contracts/web3call/combined-hooks/LiftHooks.sol +304 -0
- package/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol} +1 -1
- package/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol +107 -0
- package/package.json +39 -24
|
@@ -416,23 +416,33 @@ contract SeaDropXArtBlocksShim is
|
|
|
416
416
|
// --- external functions from ISeaDropTokenContractMetadata ---
|
|
417
417
|
|
|
418
418
|
/**
|
|
419
|
-
* @notice Sets the base URI for the token metadata
|
|
420
|
-
*
|
|
419
|
+
* @notice Sets the base URI for the token metadata.
|
|
420
|
+
* Warning - baseURI is a no-op on this shim contract, and the baseURI must be configured
|
|
421
|
+
* on the Art Blocks core contract. This function is included for compatibility with the
|
|
422
|
+
* SeaDropTokenContractMetadata interface to prevent unnecessary reverts. No-op is preferred
|
|
423
|
+
* over reverting.
|
|
421
424
|
*/
|
|
422
|
-
function setBaseURI(string calldata /*tokenURI*/) external
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
425
|
+
function setBaseURI(string calldata /*tokenURI*/) external view {
|
|
426
|
+
// CHECKS
|
|
427
|
+
_onlyArtistOrSelf(msg.sender);
|
|
428
|
+
|
|
429
|
+
// EFFECTS
|
|
430
|
+
// no-op
|
|
426
431
|
}
|
|
427
432
|
|
|
428
433
|
/**
|
|
429
434
|
* @notice Sets the contract URI for contract metadata.
|
|
430
|
-
*
|
|
435
|
+
* Warning - contractURI is a no-op on this shim contract, and the contractURI must be configured
|
|
436
|
+
* on the Art Blocks core contract. This function is included for compatibility with the
|
|
437
|
+
* SeaDropTokenContractMetadata interface to prevent unnecessary reverts. No-op is preferred
|
|
438
|
+
* over reverting.
|
|
431
439
|
*/
|
|
432
|
-
function setContractURI(string calldata /*newContractURI*/) external
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
440
|
+
function setContractURI(string calldata /*newContractURI*/) external view {
|
|
441
|
+
// CHECKS
|
|
442
|
+
_onlyArtistOrSelf(msg.sender);
|
|
443
|
+
|
|
444
|
+
// EFFECTS
|
|
445
|
+
// no-op
|
|
436
446
|
}
|
|
437
447
|
|
|
438
448
|
/**
|
|
@@ -449,9 +459,15 @@ contract SeaDropXArtBlocksShim is
|
|
|
449
459
|
_onlyArtistOrSelf(msg.sender);
|
|
450
460
|
|
|
451
461
|
// ensure maxSupply lte project's max invocations on core contract
|
|
452
|
-
(
|
|
453
|
-
|
|
454
|
-
|
|
462
|
+
(
|
|
463
|
+
,
|
|
464
|
+
uint256 maxInvocationsOnCoreContract
|
|
465
|
+
) = _getInvocationsDataFromCore();
|
|
466
|
+
if (newMaxSupply > maxInvocationsOnCoreContract) {
|
|
467
|
+
// @dev revert if not special case of OpenSea OpenEdition (200M) and Art Blocks OpenEdition (1M)
|
|
468
|
+
require(
|
|
469
|
+
newMaxSupply == 200_000_000 &&
|
|
470
|
+
maxInvocationsOnCoreContract == 1_000_000,
|
|
455
471
|
"SeaDropXArtBlocksShim: Only newMaxSupply lte max invocations on the Art Blocks core contract"
|
|
456
472
|
);
|
|
457
473
|
}
|
|
@@ -459,27 +475,37 @@ contract SeaDropXArtBlocksShim is
|
|
|
459
475
|
// EFFECTS
|
|
460
476
|
// set the local max supply
|
|
461
477
|
localMaxSupply = newMaxSupply;
|
|
462
|
-
emit
|
|
478
|
+
emit MaxSupplyUpdated(newMaxSupply);
|
|
463
479
|
}
|
|
464
480
|
|
|
465
481
|
/**
|
|
466
|
-
* @notice Sets the provenance hash
|
|
467
|
-
*
|
|
482
|
+
* @notice Sets the provenance hash.
|
|
483
|
+
* Warning - provenanceHash is a no-op on this shim contract, and the provenanceHash is not supported
|
|
484
|
+
* on the Art Blocks core contract. This function is included for compatibility with the
|
|
485
|
+
* SeaDropTokenContractMetadata interface to prevent unnecessary reverts. No-op is preferred
|
|
486
|
+
* over reverting.
|
|
468
487
|
*/
|
|
469
|
-
function setProvenanceHash(bytes32 /*newProvenanceHash*/) external
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
488
|
+
function setProvenanceHash(bytes32 /*newProvenanceHash*/) external view {
|
|
489
|
+
// CHECKS
|
|
490
|
+
_onlyArtistOrSelf(msg.sender);
|
|
491
|
+
|
|
492
|
+
// EFFECTS
|
|
493
|
+
// no-op
|
|
473
494
|
}
|
|
474
495
|
|
|
475
496
|
/**
|
|
476
497
|
* @notice Sets the address and basis points for royalties.
|
|
477
|
-
*
|
|
498
|
+
* Warning - royalties are a no-op on this shim contract, and the royalties must be configured
|
|
499
|
+
* on the Art Blocks core contract. This function is included for compatibility with the
|
|
500
|
+
* SeaDropTokenContractMetadata interface to prevent unnecessary reverts. No-op is preferred
|
|
501
|
+
* over reverting.
|
|
478
502
|
*/
|
|
479
|
-
function setRoyaltyInfo(RoyaltyInfo calldata /*newInfo*/) external
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
503
|
+
function setRoyaltyInfo(RoyaltyInfo calldata /*newInfo*/) external view {
|
|
504
|
+
// CHECKS
|
|
505
|
+
_onlyArtistOrSelf(msg.sender);
|
|
506
|
+
|
|
507
|
+
// EFFECTS
|
|
508
|
+
// no-op
|
|
483
509
|
}
|
|
484
510
|
|
|
485
511
|
// --- external functions from https://github.com/ProjectOpenSea/seadrop/blob/main/src/ERC721SeaDrop.sol ---
|
|
@@ -488,13 +514,8 @@ contract SeaDropXArtBlocksShim is
|
|
|
488
514
|
* @notice Configure multiple properties at a time.
|
|
489
515
|
* Note: The individual configure methods should be used to unset or reset any properties to zero, as this method
|
|
490
516
|
* will ignore zero-value properties in the config struct.
|
|
491
|
-
* The following parameters are not supported in this function,
|
|
492
|
-
* Art Blocks core contract directly:
|
|
493
|
-
* - maxSupply
|
|
517
|
+
* The following parameters are not supported in this function, and will be ignored/no-op:
|
|
494
518
|
* - baseURI
|
|
495
|
-
* - allowedFeeRecipients
|
|
496
|
-
* - disallowedFeeRecipients
|
|
497
|
-
* The following parameters are not supported by Art Blocks contracts and will cause revert:
|
|
498
519
|
* - contractURI
|
|
499
520
|
* - provenanceHash
|
|
500
521
|
* @dev logic for supported operations is taken from example SeaDrop implementation, and was tested end-to-end, and
|
|
@@ -510,14 +531,12 @@ contract SeaDropXArtBlocksShim is
|
|
|
510
531
|
this.setMaxSupply(config.maxSupply);
|
|
511
532
|
}
|
|
512
533
|
if (bytes(config.baseURI).length != 0) {
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
);
|
|
534
|
+
// @dev this is a no-op on this shim contract
|
|
535
|
+
this.setBaseURI(config.baseURI);
|
|
516
536
|
}
|
|
517
537
|
if (bytes(config.contractURI).length != 0) {
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
);
|
|
538
|
+
// @dev this is a no-op on this shim contract
|
|
539
|
+
this.setContractURI(config.contractURI);
|
|
521
540
|
}
|
|
522
541
|
if (
|
|
523
542
|
config.publicDrop.startTime != 0 || config.publicDrop.endTime != 0
|
|
@@ -537,9 +556,8 @@ contract SeaDropXArtBlocksShim is
|
|
|
537
556
|
);
|
|
538
557
|
}
|
|
539
558
|
if (config.provenanceHash != bytes32(0)) {
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
);
|
|
559
|
+
// @dev this is a no-op on this shim contract
|
|
560
|
+
this.setProvenanceHash(config.provenanceHash);
|
|
543
561
|
}
|
|
544
562
|
if (config.allowedFeeRecipients.length > 0) {
|
|
545
563
|
for (uint256 i = 0; i < config.allowedFeeRecipients.length; ) {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity 0.8.22;
|
|
5
|
+
|
|
6
|
+
import {ENSLib} from "../libs/v0.8.x/ENSLib.sol";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title ENSLibMock
|
|
10
|
+
* @notice Mock contract to expose ENSLib functions for testing
|
|
11
|
+
* @dev This contract is only used for testing and should not be deployed in production
|
|
12
|
+
* @author Art Blocks Inc.
|
|
13
|
+
*/
|
|
14
|
+
contract ENSLibMock {
|
|
15
|
+
/**
|
|
16
|
+
* @notice Wrapper for ENSLib.getEnsName to enable testing
|
|
17
|
+
* @param ownerAddress The address to resolve the ENS name for
|
|
18
|
+
* @return The ENS name for the address, or empty string if not found/invalid
|
|
19
|
+
*/
|
|
20
|
+
function getEnsName(
|
|
21
|
+
address ownerAddress
|
|
22
|
+
) external view returns (string memory) {
|
|
23
|
+
return ENSLib.getEnsName(ownerAddress);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
// Created By: Art Blocks Inc.
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import {EnumerableSetUint16} from "../libs/v0.8.x/EnumerableSetUint16.sol";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title EnumerableSetUint16Mock
|
|
10
|
+
* @author Art Blocks Inc.
|
|
11
|
+
* @notice Mock contract for testing EnumerableSetUint16 library
|
|
12
|
+
*/
|
|
13
|
+
contract EnumerableSetUint16Mock {
|
|
14
|
+
using EnumerableSetUint16 for EnumerableSetUint16.Uint16Set;
|
|
15
|
+
|
|
16
|
+
EnumerableSetUint16.Uint16Set private _set;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @dev Add a value to the set. Returns true if added, false if already present.
|
|
20
|
+
*/
|
|
21
|
+
function add(uint16 value) external returns (bool) {
|
|
22
|
+
return _set.add(value);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @dev Remove a value from the set. Returns true if removed, false if not present.
|
|
27
|
+
*/
|
|
28
|
+
function remove(uint16 value) external returns (bool) {
|
|
29
|
+
return _set.remove(value);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @dev Check if a value is in the set.
|
|
34
|
+
*/
|
|
35
|
+
function contains(uint16 value) external view returns (bool) {
|
|
36
|
+
return _set.contains(value);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @dev Get the number of values in the set.
|
|
41
|
+
*/
|
|
42
|
+
function length() external view returns (uint256) {
|
|
43
|
+
return _set.length();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @dev Get the value at a specific index.
|
|
48
|
+
*/
|
|
49
|
+
function at(uint256 index) external view returns (uint16) {
|
|
50
|
+
return _set.at(index);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @dev Get all values in the set.
|
|
55
|
+
*/
|
|
56
|
+
function values() external view returns (uint256[] memory) {
|
|
57
|
+
return _set.values();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @dev Add multiple values at once for testing.
|
|
62
|
+
*/
|
|
63
|
+
function addMultiple(uint16[] calldata valuesToAdd) external {
|
|
64
|
+
for (uint256 i = 0; i < valuesToAdd.length; i++) {
|
|
65
|
+
_set.add(valuesToAdd[i]);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @dev Remove multiple values at once for testing.
|
|
71
|
+
*/
|
|
72
|
+
function removeMultiple(uint16[] calldata valuesToRemove) external {
|
|
73
|
+
for (uint256 i = 0; i < valuesToRemove.length; i++) {
|
|
74
|
+
_set.remove(valuesToRemove[i]);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @dev Clear all values from the set.
|
|
80
|
+
*/
|
|
81
|
+
function clear() external {
|
|
82
|
+
uint256 len = _set.length();
|
|
83
|
+
for (uint256 i = 0; i < len; i++) {
|
|
84
|
+
uint16 value = _set.at(0);
|
|
85
|
+
_set.remove(value);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import {FeistelWalkLib} from "../libs/v0.8.x/FeistelWalkLib.sol";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title FeistelWalkLibMock
|
|
8
|
+
* @notice Mock contract for testing FeistelWalkLib library functionality
|
|
9
|
+
*/
|
|
10
|
+
contract FeistelWalkLibMock {
|
|
11
|
+
using FeistelWalkLib for FeistelWalkLib.Plan;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @notice Build a Feistel permutation plan
|
|
15
|
+
* @param seed Arbitrary seed
|
|
16
|
+
* @param N Domain size
|
|
17
|
+
* @return N The domain size
|
|
18
|
+
* @return M The next power of two >= N
|
|
19
|
+
* @return logM The log2 of M (precomputed)
|
|
20
|
+
* @return rounds The number of Feistel rounds (always 2)
|
|
21
|
+
* @return k0 First round key
|
|
22
|
+
* @return k1 Second round key
|
|
23
|
+
*/
|
|
24
|
+
function makePlan(
|
|
25
|
+
bytes32 seed,
|
|
26
|
+
uint256 N
|
|
27
|
+
)
|
|
28
|
+
external
|
|
29
|
+
pure
|
|
30
|
+
returns (uint256, uint256, uint256, uint256, uint64, uint64)
|
|
31
|
+
{
|
|
32
|
+
FeistelWalkLib.Plan memory p = FeistelWalkLib.makePlan(seed, N);
|
|
33
|
+
return (p.N, p.M, p.logM, p.rounds, p.k0, p.k1);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @notice Get the k-th index in the permutation
|
|
38
|
+
* @param seed Arbitrary seed
|
|
39
|
+
* @param N Domain size
|
|
40
|
+
* @param k The index in the permutation sequence
|
|
41
|
+
* @return The permuted index
|
|
42
|
+
*/
|
|
43
|
+
function index(
|
|
44
|
+
bytes32 seed,
|
|
45
|
+
uint256 N,
|
|
46
|
+
uint256 k
|
|
47
|
+
) external pure returns (uint256) {
|
|
48
|
+
FeistelWalkLib.Plan memory p = FeistelWalkLib.makePlan(seed, N);
|
|
49
|
+
return FeistelWalkLib.index(p, k);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @notice Sample K indices from the permutation
|
|
54
|
+
* @param seed Arbitrary seed
|
|
55
|
+
* @param N Domain size
|
|
56
|
+
* @param K Number of samples to take
|
|
57
|
+
* @return Array of K permuted indices
|
|
58
|
+
*/
|
|
59
|
+
function sample(
|
|
60
|
+
bytes32 seed,
|
|
61
|
+
uint256 N,
|
|
62
|
+
uint256 K
|
|
63
|
+
) external pure returns (uint256[] memory) {
|
|
64
|
+
FeistelWalkLib.Plan memory p = FeistelWalkLib.makePlan(seed, N);
|
|
65
|
+
return FeistelWalkLib.sample(p, K);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @notice Get all N indices in the permutation (full traversal)
|
|
70
|
+
* @param seed Arbitrary seed
|
|
71
|
+
* @param N Domain size
|
|
72
|
+
* @return Array of all N permuted indices
|
|
73
|
+
*/
|
|
74
|
+
function fullTraversal(
|
|
75
|
+
bytes32 seed,
|
|
76
|
+
uint256 N
|
|
77
|
+
) external pure returns (uint256[] memory) {
|
|
78
|
+
FeistelWalkLib.Plan memory p = FeistelWalkLib.makePlan(seed, N);
|
|
79
|
+
return FeistelWalkLib.sample(p, N);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
import {ImmutableUint16Array} from "../libs/v0.8.x/ImmutableUint16Array.sol";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @title ImmutableUint16ArrayMock
|
|
8
|
+
* @notice Mock contract for testing ImmutableUint16Array library functionality
|
|
9
|
+
*/
|
|
10
|
+
contract ImmutableUint16ArrayMock {
|
|
11
|
+
using ImmutableUint16Array for ImmutableUint16Array.Uint16Array;
|
|
12
|
+
|
|
13
|
+
ImmutableUint16Array.Uint16Array private uint16Array;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @notice Store an array of uint16 values
|
|
17
|
+
* @param values The array of uint16 values to store
|
|
18
|
+
*/
|
|
19
|
+
function store(uint16[] memory values) external {
|
|
20
|
+
uint16Array.store(values);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @notice Clear the stored array
|
|
25
|
+
*/
|
|
26
|
+
function clear() external {
|
|
27
|
+
uint16Array.clear();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @notice Check if the array is empty
|
|
32
|
+
* @return Whether the array is empty
|
|
33
|
+
*/
|
|
34
|
+
function isEmpty() external view returns (bool) {
|
|
35
|
+
return uint16Array.isEmpty();
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @notice Get the length of the stored array
|
|
40
|
+
* @return The number of uint16 values stored
|
|
41
|
+
*/
|
|
42
|
+
function length() external view returns (uint256) {
|
|
43
|
+
return uint16Array.length();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @notice Get a uint16 value at a specific index
|
|
48
|
+
* @param index The index to retrieve
|
|
49
|
+
* @return The uint16 value at the given index
|
|
50
|
+
*/
|
|
51
|
+
function get(uint256 index) external view returns (uint16) {
|
|
52
|
+
return uint16Array.get(index);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @notice Get all stored uint16 values
|
|
57
|
+
* @return An array containing all stored uint16 values
|
|
58
|
+
*/
|
|
59
|
+
function getAll() external view returns (uint16[] memory) {
|
|
60
|
+
return uint16Array.getAll();
|
|
61
|
+
}
|
|
62
|
+
}
|