gitextract_k8lm443i/ ├── .editorconfig ├── .eslintignore ├── .eslintrc.yaml ├── .gas-snapshot ├── .gitattributes ├── .github/ │ ├── composite-actions/ │ │ └── setup/ │ │ └── action.yml │ └── workflows/ │ ├── dispatch_docs.yml │ ├── lint.yml │ ├── prettier.yml │ ├── slither.yml │ └── tests.yml ├── .gitignore ├── .gitmodules ├── .npmignore ├── .prettierignore ├── .prettierrc ├── .solhint.json ├── .solhintignore ├── CODE_OF_CONDUCT.md ├── LICENSE.md ├── README.md ├── audit-reports/ │ └── preliminary-audits/ │ └── airdroperc20-claimable.md ├── contracts/ │ ├── base/ │ │ ├── ERC1155Base.sol │ │ ├── ERC1155DelayedReveal.sol │ │ ├── ERC1155Drop.sol │ │ ├── ERC1155LazyMint.sol │ │ ├── ERC1155SignatureMint.sol │ │ ├── ERC20Base.sol │ │ ├── ERC20Drop.sol │ │ ├── ERC20DropVote.sol │ │ ├── ERC20SignatureMint.sol │ │ ├── ERC20SignatureMintVote.sol │ │ ├── ERC20Vote.sol │ │ ├── ERC721Base.sol │ │ ├── ERC721DelayedReveal.sol │ │ ├── ERC721Drop.sol │ │ ├── ERC721LazyMint.sol │ │ ├── ERC721Multiwrap.sol │ │ ├── ERC721SignatureMint.sol │ │ ├── Staking1155Base.sol │ │ ├── Staking20Base.sol │ │ └── Staking721Base.sol │ ├── eip/ │ │ ├── ERC1155.sol │ │ ├── ERC1271.sol │ │ ├── ERC165.sol │ │ ├── ERC721A.sol │ │ ├── ERC721AUpgradeable.sol │ │ ├── ERC721AVirtualApprove.sol │ │ ├── ERC721AVirtualApproveUpgradeable.sol │ │ ├── interface/ │ │ │ ├── IERC1155.sol │ │ │ ├── IERC1155Enumerable.sol │ │ │ ├── IERC1155Metadata.sol │ │ │ ├── IERC1155Receiver.sol │ │ │ ├── IERC1155Supply.sol │ │ │ ├── IERC165.sol │ │ │ ├── IERC20.sol │ │ │ ├── IERC20Metadata.sol │ │ │ ├── IERC20Permit.sol │ │ │ ├── IERC2981.sol │ │ │ ├── IERC4906.sol │ │ │ ├── IERC721.sol │ │ │ ├── IERC721A.sol │ │ │ ├── IERC721Enumerable.sol │ │ │ ├── IERC721Metadata.sol │ │ │ ├── IERC721Receiver.sol │ │ │ └── IERC721Supply.sol │ │ └── queryable/ │ │ ├── ERC721AQueryable.sol │ │ ├── ERC721AQueryableUpgradeable.sol │ │ ├── ERC721AStorage.sol │ │ ├── ERC721AUpgradeable.sol │ │ ├── ERC721A__Initializable.sol │ │ ├── ERC721A__InitializableStorage.sol │ │ ├── IERC721AQueryable.sol │ │ ├── IERC721AQueryableUpgradeable.sol │ │ └── IERC721AUpgradeable.sol │ ├── extension/ │ │ ├── AppURI.sol │ │ ├── BatchMintMetadata.sol │ │ ├── BurnToClaim.sol │ │ ├── ContractMetadata.sol │ │ ├── DelayedReveal.sol │ │ ├── Drop.sol │ │ ├── Drop1155.sol │ │ ├── DropSinglePhase.sol │ │ ├── DropSinglePhase1155.sol │ │ ├── Initializable.sol │ │ ├── LazyMint.sol │ │ ├── LazyMintWithTier.sol │ │ ├── Multicall.sol │ │ ├── NFTMetadata.sol │ │ ├── OperatorFilterToggle.sol │ │ ├── OperatorFilterer.sol │ │ ├── OperatorFiltererUpgradeable.sol │ │ ├── Ownable.sol │ │ ├── Permissions.sol │ │ ├── PermissionsEnumerable.sol │ │ ├── PlatformFee.sol │ │ ├── PrimarySale.sol │ │ ├── Proxy.sol │ │ ├── ProxyForUpgradeable.sol │ │ ├── Royalty.sol │ │ ├── SeaportEIP1271.sol │ │ ├── SeaportOrderParser.sol │ │ ├── SharedMetadata.sol │ │ ├── SignatureAction.sol │ │ ├── SignatureActionUpgradeable.sol │ │ ├── SignatureMintERC1155.sol │ │ ├── SignatureMintERC1155Upgradeable.sol │ │ ├── SignatureMintERC20.sol │ │ ├── SignatureMintERC20Upgradeable.sol │ │ ├── SignatureMintERC721.sol │ │ ├── SignatureMintERC721Upgradeable.sol │ │ ├── SoulboundERC721A.sol │ │ ├── Staking1155.sol │ │ ├── Staking1155Upgradeable.sol │ │ ├── Staking20.sol │ │ ├── Staking20Upgradeable.sol │ │ ├── Staking721.sol │ │ ├── Staking721Upgradeable.sol │ │ ├── TokenBundle.sol │ │ ├── TokenStore.sol │ │ ├── Upgradeable.sol │ │ ├── interface/ │ │ │ ├── IAccountPermissions.sol │ │ │ ├── IAppURI.sol │ │ │ ├── IBurnToClaim.sol │ │ │ ├── IBurnableERC1155.sol │ │ │ ├── IBurnableERC20.sol │ │ │ ├── IBurnableERC721.sol │ │ │ ├── IClaimCondition.sol │ │ │ ├── IClaimConditionMultiPhase.sol │ │ │ ├── IClaimConditionsSinglePhase.sol │ │ │ ├── IClaimableERC1155.sol │ │ │ ├── IClaimableERC721.sol │ │ │ ├── IContractFactory.sol │ │ │ ├── IContractMetadata.sol │ │ │ ├── IDelayedReveal.sol │ │ │ ├── IDelayedRevealDeprecated.sol │ │ │ ├── IDrop.sol │ │ │ ├── IDrop1155.sol │ │ │ ├── IDropSinglePhase.sol │ │ │ ├── IDropSinglePhase1155.sol │ │ │ ├── IERC2771Context.sol │ │ │ ├── ILazyMint.sol │ │ │ ├── ILazyMintWithTier.sol │ │ │ ├── IMintableERC1155.sol │ │ │ ├── IMintableERC20.sol │ │ │ ├── IMintableERC721.sol │ │ │ ├── IMulticall.sol │ │ │ ├── INFTMetadata.sol │ │ │ ├── IOperatorFilterRegistry.sol │ │ │ ├── IOperatorFilterToggle.sol │ │ │ ├── IOwnable.sol │ │ │ ├── IPermissions.sol │ │ │ ├── IPermissionsEnumerable.sol │ │ │ ├── IPlatformFee.sol │ │ │ ├── IPrimarySale.sol │ │ │ ├── IRoyalty.sol │ │ │ ├── IRoyaltyEngineV1.sol │ │ │ ├── IRoyaltyPayments.sol │ │ │ ├── IRulesEngine.sol │ │ │ ├── ISharedMetadata.sol │ │ │ ├── ISharedMetadataBatch.sol │ │ │ ├── ISignatureAction.sol │ │ │ ├── ISignatureMintERC1155.sol │ │ │ ├── ISignatureMintERC20.sol │ │ │ ├── ISignatureMintERC721.sol │ │ │ ├── IStaking1155.sol │ │ │ ├── IStaking20.sol │ │ │ ├── IStaking721.sol │ │ │ ├── ITokenBundle.sol │ │ │ └── plugin/ │ │ │ ├── IContext.sol │ │ │ ├── IPluginMap.sol │ │ │ └── IRouter.sol │ │ ├── plugin/ │ │ │ ├── ContractMetadataLogic.sol │ │ │ ├── ContractMetadataStorage.sol │ │ │ ├── ERC2771ContextConsumer.sol │ │ │ ├── ERC2771ContextLogic.sol │ │ │ ├── ERC2771ContextStorage.sol │ │ │ ├── ERC2771ContextUpgradeableLogic.sol │ │ │ ├── ERC2771ContextUpgradeableStorage.sol │ │ │ ├── PermissionsEnumerableLogic.sol │ │ │ ├── PermissionsEnumerableStorage.sol │ │ │ ├── PermissionsLogic.sol │ │ │ ├── PermissionsStorage.sol │ │ │ ├── PlatformFeeLogic.sol │ │ │ ├── PlatformFeeStorage.sol │ │ │ ├── PluginMap.sol │ │ │ ├── ReentrancyGuardLogic.sol │ │ │ ├── ReentrancyGuardStorage.sol │ │ │ ├── Router.sol │ │ │ ├── RouterImmutable.sol │ │ │ └── RoyaltyPayments.sol │ │ └── upgradeable/ │ │ ├── AccountPermissions.sol │ │ ├── BatchMintMetadata.sol │ │ ├── BurnToClaim.sol │ │ ├── ContractMetadata.sol │ │ ├── DelayedReveal.sol │ │ ├── Drop.sol │ │ ├── ERC2771Context.sol │ │ ├── ERC2771ContextConsumer.sol │ │ ├── ERC2771ContextUpgradeable.sol │ │ ├── Initializable.sol │ │ ├── LazyMint.sol │ │ ├── OperatorFilterToggle.sol │ │ ├── OperatorFiltererUpgradeable.sol │ │ ├── Ownable.sol │ │ ├── Permissions.sol │ │ ├── PermissionsEnumerable.sol │ │ ├── PlatformFee.sol │ │ ├── PrimarySale.sol │ │ ├── ReentrancyGuard.sol │ │ ├── Royalty.sol │ │ ├── RoyaltyPayments.sol │ │ ├── RulesEngine.sol │ │ ├── SharedMetadataBatch.sol │ │ ├── impl/ │ │ │ ├── ContractMetadataImpl.sol │ │ │ ├── MetaTx.sol │ │ │ ├── PermissionsEnumerableImpl.sol │ │ │ └── PlatformFeeImpl.sol │ │ └── init/ │ │ ├── ContractMetadataInit.sol │ │ ├── ERC2771ContextInit.sol │ │ ├── ERC721AInit.sol │ │ ├── ERC721AQueryableInit.sol │ │ ├── OwnableInit.sol │ │ ├── PermissionsEnumerableInit.sol │ │ ├── PermissionsInit.sol │ │ ├── PlatformFeeInit.sol │ │ ├── PrimarySaleInit.sol │ │ ├── ReentrancyGuardInit.sol │ │ └── RoyaltyInit.sol │ ├── external-deps/ │ │ └── openzeppelin/ │ │ ├── ERC1155PresetUpgradeable.sol │ │ ├── cryptography/ │ │ │ └── EIP712ChainlessDomain.sol │ │ ├── finance/ │ │ │ └── PaymentSplitterUpgradeable.sol │ │ ├── governance/ │ │ │ └── utils/ │ │ │ └── IVotes.sol │ │ ├── metatx/ │ │ │ ├── ERC2771Context.sol │ │ │ └── ERC2771ContextUpgradeable.sol │ │ ├── proxy/ │ │ │ ├── Clones.sol │ │ │ ├── ERC1967/ │ │ │ │ ├── ERC1967Proxy.sol │ │ │ │ └── ERC1967Upgrade.sol │ │ │ ├── IERC1822Proxiable.sol │ │ │ ├── Proxy.sol │ │ │ ├── beacon/ │ │ │ │ └── IBeacon.sol │ │ │ └── utils/ │ │ │ └── Initializable.sol │ │ ├── security/ │ │ │ ├── ReentrancyGuard.sol │ │ │ └── ReentrancyGuardUpgradeable.sol │ │ ├── token/ │ │ │ ├── ERC1155/ │ │ │ │ ├── IERC1155Receiver.sol │ │ │ │ └── utils/ │ │ │ │ ├── ERC1155Holder.sol │ │ │ │ └── ERC1155Receiver.sol │ │ │ ├── ERC20/ │ │ │ │ ├── ERC20.sol │ │ │ │ ├── extensions/ │ │ │ │ │ ├── ERC20Permit.sol │ │ │ │ │ └── ERC20Votes.sol │ │ │ │ └── utils/ │ │ │ │ └── SafeERC20.sol │ │ │ └── ERC721/ │ │ │ ├── IERC721Receiver.sol │ │ │ └── utils/ │ │ │ └── ERC721Holder.sol │ │ └── utils/ │ │ ├── Base64.sol │ │ ├── Context.sol │ │ ├── Counters.sol │ │ ├── Create2.sol │ │ ├── ERC1155/ │ │ │ ├── ERC1155Holder.sol │ │ │ └── ERC1155Receiver.sol │ │ ├── ERC721/ │ │ │ └── ERC721Holder.sol │ │ ├── EnumerableSet.sol │ │ ├── cryptography/ │ │ │ ├── ECDSA.sol │ │ │ └── EIP712.sol │ │ ├── math/ │ │ │ ├── Math.sol │ │ │ ├── SafeCast.sol │ │ │ └── SafeMath.sol │ │ └── structs/ │ │ └── EnumerableSet.sol │ ├── infra/ │ │ ├── ContractPublisher.sol │ │ ├── TWFactory.sol │ │ ├── TWFee.sol │ │ ├── TWMinimalFactory.sol │ │ ├── TWMultichainRegistry.sol │ │ ├── TWProxy.sol │ │ ├── TWRegistry.sol │ │ ├── TWStatelessFactory.sol │ │ ├── forwarder/ │ │ │ ├── Forwarder.sol │ │ │ ├── ForwarderChainlessDomain.sol │ │ │ └── ForwarderConsumer.sol │ │ ├── interface/ │ │ │ ├── IContractDeployer.sol │ │ │ ├── IContractPublisher.sol │ │ │ ├── ITWFee.sol │ │ │ ├── ITWMultichainRegistry.sol │ │ │ ├── ITWRegistry.sol │ │ │ ├── IThirdwebContract.sol │ │ │ └── IWETH.sol │ │ └── registry/ │ │ ├── entrypoint/ │ │ │ └── TWMultichainRegistryRouter.sol │ │ └── registry-extension/ │ │ ├── TWMultichainRegistryLogic.sol │ │ └── TWMultichainRegistryStorage.sol │ ├── lib/ │ │ ├── Address.sol │ │ ├── BitMaps.sol │ │ ├── BytesLib.sol │ │ ├── CurrencyTransferLib.sol │ │ ├── FeeType.sol │ │ ├── MerkleProof.sol │ │ ├── NFTMetadataRenderer.sol │ │ ├── StorageSlot.sol │ │ ├── StringSet.sol │ │ └── Strings.sol │ ├── package.json │ └── prebuilts/ │ ├── account/ │ │ ├── dynamic/ │ │ │ ├── DynamicAccount.sol │ │ │ └── DynamicAccountFactory.sol │ │ ├── interfaces/ │ │ │ ├── IAccount.sol │ │ │ ├── IAccountCore.sol │ │ │ ├── IAccountExecute.sol │ │ │ ├── IAccountFactory.sol │ │ │ ├── IAccountFactoryCore.sol │ │ │ ├── IAggregator.sol │ │ │ ├── IEntryPoint.sol │ │ │ ├── INonceManager.sol │ │ │ ├── IOracle.sol │ │ │ ├── IPaymaster.sol │ │ │ ├── IStakeManager.sol │ │ │ └── PackedUserOperation.sol │ │ ├── managed/ │ │ │ ├── ManagedAccount.sol │ │ │ └── ManagedAccountFactory.sol │ │ ├── non-upgradeable/ │ │ │ ├── Account.sol │ │ │ └── AccountFactory.sol │ │ ├── token-bound-account/ │ │ │ ├── TokenBoundAccount.sol │ │ │ └── erc6551-utils/ │ │ │ ├── ERC6551AccountLib.sol │ │ │ ├── ERC6551BytecodeLib.sol │ │ │ └── IERC6551Account.sol │ │ ├── token-paymaster/ │ │ │ ├── BasePaymaster.sol │ │ │ └── TokenPaymaster.sol │ │ └── utils/ │ │ ├── AccountCore.sol │ │ ├── AccountCoreStorage.sol │ │ ├── AccountExtension.sol │ │ ├── AccountSeaportBulkSigSupport.sol │ │ ├── BaseAccount.sol │ │ ├── BaseAccountFactory.sol │ │ ├── EntryPoint.sol │ │ ├── Exec.sol │ │ ├── Helpers.sol │ │ ├── NonceManager.sol │ │ ├── OracleHelper.sol │ │ ├── SenderCreator.sol │ │ ├── StakeManager.sol │ │ ├── TokenCallbackHandler.sol │ │ ├── UniswapHelper.sol │ │ └── UserOperationLib.sol │ ├── airdrop/ │ │ └── Airdrop.sol │ ├── drop/ │ │ ├── DropERC1155.sol │ │ ├── DropERC20.sol │ │ ├── DropERC721.sol │ │ ├── DropERC721C.sol │ │ └── drop.md │ ├── evolving-nfts/ │ │ ├── EvolvingNFT.sol │ │ ├── EvolvingNFTLogic.sol │ │ └── extension/ │ │ └── RulesEngineExtension.sol │ ├── interface/ │ │ ├── ILoyaltyCard.sol │ │ ├── ILoyaltyPoints.sol │ │ ├── IMultiwrap.sol │ │ ├── IPack.sol │ │ ├── IPackVRFDirect.sol │ │ ├── airdrop/ │ │ │ ├── IAirdropERC1155.sol │ │ │ ├── IAirdropERC1155Claimable.sol │ │ │ ├── IAirdropERC20.sol │ │ │ ├── IAirdropERC20Claimable.sol │ │ │ ├── IAirdropERC721.sol │ │ │ └── IAirdropERC721Claimable.sol │ │ ├── drop/ │ │ │ ├── IDropClaimCondition.sol │ │ │ ├── IDropERC1155.sol │ │ │ ├── IDropERC20.sol │ │ │ └── IDropERC721.sol │ │ ├── marketplace/ │ │ │ └── IMarketplace.sol │ │ ├── staking/ │ │ │ ├── IEditionStake.sol │ │ │ ├── INFTStake.sol │ │ │ └── ITokenStake.sol │ │ └── token/ │ │ ├── ITokenERC1155.sol │ │ ├── ITokenERC20.sol │ │ └── ITokenERC721.sol │ ├── loyalty/ │ │ └── LoyaltyCard.sol │ ├── marketplace/ │ │ ├── IMarketplace.sol │ │ ├── direct-listings/ │ │ │ ├── DirectListingsLogic.sol │ │ │ └── DirectListingsStorage.sol │ │ ├── english-auctions/ │ │ │ ├── EnglishAuctionsLogic.sol │ │ │ └── EnglishAuctionsStorage.sol │ │ ├── entrypoint/ │ │ │ └── MarketplaceV3.sol │ │ ├── marketplace-v3.md │ │ └── offers/ │ │ ├── OffersLogic.sol │ │ └── OffersStorage.sol │ ├── marketplace-legacy/ │ │ ├── Marketplace.sol │ │ └── marketplace.md │ ├── multiwrap/ │ │ ├── Multiwrap.sol │ │ └── multiwrap.md │ ├── open-edition/ │ │ ├── OpenEditionERC721.sol │ │ └── OpenEditionERC721FlatFee.sol │ ├── split/ │ │ └── Split.sol │ ├── staking/ │ │ ├── EditionStake.sol │ │ ├── NFTStake.sol │ │ └── TokenStake.sol │ ├── token/ │ │ ├── TokenERC1155.sol │ │ ├── TokenERC20.sol │ │ ├── TokenERC721.sol │ │ └── signatureMint.md │ ├── unaudited/ │ │ ├── airdrop/ │ │ │ ├── AirdropERC1155.sol │ │ │ ├── AirdropERC1155Claimable.sol │ │ │ ├── AirdropERC20.sol │ │ │ ├── AirdropERC20Claimable.sol │ │ │ ├── AirdropERC721.sol │ │ │ └── AirdropERC721Claimable.sol │ │ ├── burn-to-claim-drop/ │ │ │ ├── BurnToClaimDropERC721.sol │ │ │ └── extension/ │ │ │ ├── BurnToClaimDrop721Logic.sol │ │ │ └── BurnToClaimDrop721Storage.sol │ │ ├── contract-builder/ │ │ │ ├── CoreRouter.sol │ │ │ └── extension/ │ │ │ └── PermissionOverride.sol │ │ └── loyalty/ │ │ └── LoyaltyPoints.sol │ └── vote/ │ └── VoteERC20.sol ├── foundry.toml ├── funding.json ├── gasreport.txt ├── package.json ├── release.sh ├── scripts/ │ ├── deploy-prebuilt-deterministic/ │ │ ├── bootstrap-on-a-chain.ts │ │ ├── bootstrap-verify.ts │ │ ├── constants.ts │ │ ├── deploy-deterministic-std-chains.ts │ │ └── verify.ts │ ├── package-release.ts │ └── release/ │ ├── add_implementations_from_release.ts │ ├── approve_implementations_from_release.ts │ └── constants.ts ├── slither.config.json ├── src/ │ └── test/ │ ├── ContractPublisher.t.sol │ ├── EvolvingNFT.t.sol │ ├── Forwarder.t.sol │ ├── ForwarderChainlessDomain.t.sol │ ├── LoyaltyCard.t.sol │ ├── LoyaltyPoints.t.sol │ ├── Multicall.t.sol │ ├── Multiwrap.t.sol │ ├── OpenEditionERC721.t.sol │ ├── OpenEditionERC721FlatFee.t.sol │ ├── TWFactory.t.sol │ ├── TWMultichainRegistry.t.sol │ ├── TWRegistry.t.sol │ ├── airdrop/ │ │ ├── Airdrop.t.sol │ │ ├── AirdropERC1155.t.sol │ │ ├── AirdropERC1155Claimable.t.sol │ │ ├── AirdropERC20.t.sol │ │ ├── AirdropERC20Claimable.t.sol │ │ ├── AirdropERC721.t.sol │ │ └── AirdropERC721Claimable.t.sol │ ├── benchmark/ │ │ ├── AccountBenchmark.t.sol │ │ ├── AirdropBenchmark.t.sol │ │ ├── AirdropERC1155Benchmark.t.sol │ │ ├── AirdropERC20Benchmark.t.sol │ │ ├── AirdropERC721Benchmark.t.sol │ │ ├── DropERC1155Benchmark.t.sol │ │ ├── DropERC20Benchmark.t.sol │ │ ├── DropERC721Benchmark.t.sol │ │ ├── EditionStakeBenchmark.t.sol │ │ ├── MultiwrapBenchmark.t.sol │ │ ├── NFTStakeBenchmark.t.sol │ │ ├── TokenERC1155Benchmark.t.sol │ │ ├── TokenERC20Benchmark.t.sol │ │ ├── TokenERC721Benchmark.t.sol │ │ └── TokenStakeBenchmark.t.sol │ ├── burn-to-claim-drop/ │ │ └── BurnToClaimDropERC721.t.sol │ ├── burn-to-claim-drop-BTT/ │ │ ├── BurnToClaimDropERC721.t.sol │ │ ├── logic/ │ │ │ ├── burn-and-claim/ │ │ │ │ ├── burnAndClaim.t.sol │ │ │ │ └── burnAndClaim.tree │ │ │ ├── lazy-mint/ │ │ │ │ ├── lazyMint.t.sol │ │ │ │ └── lazyMint.tree │ │ │ ├── other-functions/ │ │ │ │ ├── other.t.sol │ │ │ │ └── other.tree │ │ │ └── reveal/ │ │ │ ├── reveal.t.sol │ │ │ └── reveal.tree │ │ └── router/ │ │ ├── initialize/ │ │ │ ├── initialize.t.sol │ │ │ └── initialize.tree │ │ └── other-functions/ │ │ ├── other.t.sol │ │ └── other.tree │ ├── drop/ │ │ ├── DropERC1155.t.sol │ │ ├── DropERC20.t.sol │ │ ├── DropERC721.t.sol │ │ ├── drop-erc1155/ │ │ │ ├── _beforeClaim/ │ │ │ │ ├── _beforeClaim.t.sol │ │ │ │ └── _beforeClaim.tree │ │ │ ├── _beforeTokenTransfer/ │ │ │ │ ├── _beforeTokenTransfer.sol │ │ │ │ └── _beforeTokenTransfer.tree │ │ │ ├── _canSetFunctions/ │ │ │ │ ├── _canSetFunctions.sol │ │ │ │ └── _canSetFunctions.tree │ │ │ ├── burnBatch/ │ │ │ │ ├── burnBatch.t.sol │ │ │ │ └── burnBatch.tree │ │ │ ├── collectPriceOnClaim/ │ │ │ │ ├── collectPriceOnClaim.t.sol │ │ │ │ └── collectPriceOnClaim.tree │ │ │ ├── freezeBatchBaseURI/ │ │ │ │ ├── freezeBatchBaseURI.t.sol │ │ │ │ └── freezeBatchBaseURI.tree │ │ │ ├── initialize/ │ │ │ │ ├── initialize.t.sol │ │ │ │ └── initialize.tree │ │ │ ├── miscellaneous/ │ │ │ │ ├── miscellaneous.t.sol │ │ │ │ └── miscellaneous.tree │ │ │ ├── setMaxTotalSupply/ │ │ │ │ ├── setMaxTotalSupply.t.sol │ │ │ │ └── setMaxTotalSupply.tree │ │ │ ├── setSaleRecipientForToken/ │ │ │ │ ├── setSaleRecipientForToken.t.sol │ │ │ │ └── setSaleRecipientForToken.tree │ │ │ ├── transferTokensOnClaim/ │ │ │ │ ├── transferTokensOnClaim.t.sol │ │ │ │ └── transferTokensOnClaim.tree │ │ │ └── updateBatchBaseURI/ │ │ │ ├── updateBatchBaseURI.t.sol │ │ │ └── updateBatchBaseURI.tree │ │ ├── drop-erc20/ │ │ │ ├── _beforeClaim/ │ │ │ │ ├── _beforeClaim.t.sol │ │ │ │ └── _beforeClaim.tree │ │ │ ├── _canSetFunctions/ │ │ │ │ ├── _canSetFunctions.t.sol │ │ │ │ └── _canSetFunctions.tree │ │ │ ├── _collectPriceOnClaim/ │ │ │ │ ├── _collectPriceOnClaim.t.sol │ │ │ │ └── _collectPriceOnClaim.tree │ │ │ ├── initialize/ │ │ │ │ ├── initialize.t.sol │ │ │ │ └── intialize.tree │ │ │ ├── miscellaneous/ │ │ │ │ ├── miscellaneous.t.sol │ │ │ │ └── miscellaneous.tree │ │ │ └── setMaxTotalSupply/ │ │ │ ├── setMaxTotalSupply.t.sol │ │ │ └── setMaxTotalSupply.tree │ │ └── drop-erc721/ │ │ ├── _beforeClaim/ │ │ │ ├── _beforeClaim.t.sol │ │ │ └── _beforeClaim.tree │ │ ├── _canSetFunctions/ │ │ │ ├── _canSetFunctions.t.sol │ │ │ └── _canSetFunctions.tree │ │ ├── _collectPriceOnClaim/ │ │ │ ├── _collectPriceOnClaim.t.sol │ │ │ └── _collectPriceOnClaim.tree │ │ ├── _transferTokensOnClaim/ │ │ │ ├── _tranferTokensOnClaim.tree │ │ │ └── _transferTokensOnClaim.t.sol │ │ ├── freezeBatchBaseURI/ │ │ │ ├── freezeBatchBaseURI.t.sol │ │ │ └── freezeBatchBaseURI.tree │ │ ├── initalizer/ │ │ │ ├── initializer.t.sol │ │ │ └── initializer.tree │ │ ├── lazyMint/ │ │ │ ├── lazyMint.t.sol │ │ │ └── lazyMint.tree │ │ ├── miscellaneous/ │ │ │ ├── miscellaneous.t.sol │ │ │ └── miscellaneous.tree │ │ ├── reveal/ │ │ │ ├── reveal.t.sol │ │ │ └── reveal.tree │ │ ├── setMaxTotalSupply/ │ │ │ ├── setMaxTotalSupply.t.sol │ │ │ └── setMaxTotalSupply.tree │ │ └── updateBatchBaseURI/ │ │ ├── updateBatchBaseURI.t.sol │ │ └── updateBatchBaseURI.tree │ ├── marketplace/ │ │ ├── DirectListings.t.sol │ │ ├── EnglishAuctions.t.sol │ │ ├── Offers.t.sol │ │ ├── direct-listings/ │ │ │ ├── _payout/ │ │ │ │ ├── _payout.t.sol │ │ │ │ └── _payout.tree │ │ │ ├── _transferListingTokens/ │ │ │ │ ├── _transferListingTokens.t.sol │ │ │ │ └── _transferListingTokens.tree │ │ │ ├── _validateERC20BalAndAllowance/ │ │ │ │ ├── _validateERC20BalAndAllowance.t.sol │ │ │ │ └── _validateERC20BalAndAllowance.tree │ │ │ ├── _validateNewListing/ │ │ │ │ ├── _validateNewListing.t.sol │ │ │ │ └── _validateNewListing.tree │ │ │ ├── _validateOwnershipAndApproval/ │ │ │ │ ├── _validateOwnershipAndApproval.t.sol │ │ │ │ └── _validateOwnershipAndApproval.tree │ │ │ ├── approveBuyerForListing/ │ │ │ │ ├── approveBuyerForListing.t.sol │ │ │ │ └── approveBuyerForListing.tree │ │ │ ├── approveCurrencyForListing/ │ │ │ │ ├── approveCurrencyForListing.t.sol │ │ │ │ └── approveCurrencyForListing.tree │ │ │ ├── buyFromListing/ │ │ │ │ ├── buyFromListing.t.sol │ │ │ │ └── buyFromListing.tree │ │ │ ├── cancelListing/ │ │ │ │ ├── cancelListing.t.sol │ │ │ │ └── cancelListing.tree │ │ │ ├── createListing/ │ │ │ │ ├── createListing.t.sol │ │ │ │ └── createListing.tree │ │ │ └── updateListing/ │ │ │ ├── updateListing.t.sol │ │ │ └── updateListing.tree │ │ └── english-auctions/ │ │ ├── _payout/ │ │ │ ├── _payout.t.sol │ │ │ └── _payout.tree │ │ ├── _transferAuctionTokens/ │ │ │ ├── _transferAuctionTokens.t.sol │ │ │ └── _transferAuctionTokens.tree │ │ ├── _validateNewAuction/ │ │ │ ├── _validateNewAuction.t.sol │ │ │ └── _validateNewAuction.tree │ │ ├── bidInAuction/ │ │ │ ├── bidInAuction.t.sol │ │ │ └── bidInAuction.tree │ │ ├── cancelAuction/ │ │ │ ├── cancelAuction.t.sol │ │ │ └── cancelAuction.tree │ │ ├── collectAuctionPayout/ │ │ │ ├── collectAuctionPayout.t.sol │ │ │ └── collectAuctionPayout.tree │ │ ├── collectAuctionTokens/ │ │ │ ├── collectAuctionTokens.t.sol │ │ │ └── collectAuctionTokens.tree │ │ └── createAuction/ │ │ ├── createAuction.t.sol │ │ └── createAuction.tree │ ├── minimal-factory/ │ │ └── MinimalFactory.t.sol │ ├── mocks/ │ │ ├── Mock.sol │ │ ├── MockContractPublisher.sol │ │ ├── MockERC1155.sol │ │ ├── MockERC1155NonBurnable.sol │ │ ├── MockERC20.sol │ │ ├── MockERC20CustomDecimals.sol │ │ ├── MockERC20NonCompliant.sol │ │ ├── MockERC721.sol │ │ ├── MockERC721NonBurnable.sol │ │ ├── MockRoyaltyEngineV1.sol │ │ ├── MockThirdwebContract.sol │ │ ├── TestOracle2.sol │ │ ├── TestUniswap.sol │ │ └── WETH9.sol │ ├── open-edition/ │ │ ├── _beforeTokenTransfers/ │ │ │ ├── _beforeTokenTransfers.t.sol │ │ │ └── _beforeTokenTransfers.tree │ │ ├── _canSetFunctions/ │ │ │ ├── _canSetFunctions.t.sol │ │ │ └── _canSetFunctions.tree │ │ ├── _collectPriceOnClaim/ │ │ │ ├── _collectPriceOnClaim.t.sol │ │ │ └── _collectPriceOnClaim.tree │ │ ├── _transferTokensOnClaim/ │ │ │ ├── _transferTokensOnClaim.t.sol │ │ │ └── _transferTokensOnClaim.tree │ │ ├── initialize/ │ │ │ ├── initialize.t.sol │ │ │ └── initialize.tree │ │ └── misc/ │ │ ├── misc.t.sol │ │ └── misc.tree │ ├── open-edition-flat-fee/ │ │ ├── _beforeTokenTransfers/ │ │ │ ├── _beforeTokenTransfers.t.sol │ │ │ └── _beforeTokenTransfers.tree │ │ ├── _canSetFunctions/ │ │ │ ├── _canSetFunctions.t.sol │ │ │ └── _canSetFunctions.tree │ │ ├── _collectPriceOnClaim/ │ │ │ ├── _collectPriceOnClaim.t.sol │ │ │ └── _collectPriceOnClaim.tree │ │ ├── _transferTokensOnClaim/ │ │ │ ├── _transferTokensOnClaim.t.sol │ │ │ └── _transferTokensOnClaim.tree │ │ ├── initialize/ │ │ │ ├── initialize.t.sol │ │ │ └── initialize.tree │ │ └── misc/ │ │ ├── misc.t.sol │ │ └── misc.tree │ ├── plugin/ │ │ ├── Map.t.sol │ │ ├── Router.t.sol │ │ └── RouterImmutable.t.sol │ ├── scripts/ │ │ ├── generateRoot.ts │ │ ├── generateRootAirdrop.ts │ │ ├── generateRootAirdrop1155.ts │ │ ├── getCloneAddress.ts │ │ ├── getProof.ts │ │ ├── getProofAirdrop.ts │ │ └── getProofAirdrop1155.ts │ ├── sdk/ │ │ ├── base/ │ │ │ ├── BaseUtilTest.sol │ │ │ ├── ERC1155Base.t.sol │ │ │ ├── ERC1155DelayedReveal.t.sol │ │ │ ├── ERC1155Drop.t.sol │ │ │ ├── ERC1155LazyMint.t.sol │ │ │ ├── ERC1155SignatureMint.t.sol │ │ │ ├── ERC20Base.t.sol │ │ │ ├── ERC20Drop.t.sol │ │ │ ├── ERC20DropVote.t.sol │ │ │ ├── ERC20SignatureMint.t.sol │ │ │ ├── ERC20SignatureMintVote.t.sol │ │ │ ├── ERC20Vote.t.sol │ │ │ ├── ERC721Base.t.sol │ │ │ ├── ERC721DelayedReveal.t.sol │ │ │ ├── ERC721Drop.t.sol │ │ │ ├── ERC721LazyMint.t.sol │ │ │ ├── ERC721Multiwrap.t.sol │ │ │ └── ERC721SignatureMint.t.sol │ │ └── extension/ │ │ ├── BatchMintMetadata.t.sol │ │ ├── ContractMetadata.t.sol │ │ ├── DelayedReveal.t.sol │ │ ├── DropSinglePhase.t.sol │ │ ├── DropSinglePhase1155.t.sol │ │ ├── ExtensionUtilTest.sol │ │ ├── LazyMint.t.sol │ │ ├── NFTMetadata.t.sol │ │ ├── Ownable.t.sol │ │ ├── Permissions.t.sol │ │ ├── PermissionsEnumerable.t.sol │ │ ├── PlatformFee.t.sol │ │ ├── PrimarySale.t.sol │ │ ├── Royalty.t.sol │ │ ├── SignatureMintERC1155.t.sol │ │ ├── SignatureMintERC20.t.sol │ │ ├── SignatureMintERC721.t.sol │ │ ├── StakingExtension.t.sol │ │ ├── TokenBundle.t.sol │ │ ├── TokenStore.t.sol │ │ ├── batch-mint-metadata/ │ │ │ ├── batch-mint-metadata/ │ │ │ │ ├── _batchMintMetadata.t.sol │ │ │ │ └── _batchMintMetadata.tree │ │ │ ├── freeze-base-uri/ │ │ │ │ ├── _freezeBaseURI.t.sol │ │ │ │ └── _freezeBaseURI.tree │ │ │ ├── get-base-uri/ │ │ │ │ ├── _getBaseURI.t.sol │ │ │ │ └── _getBaseURI.tree │ │ │ ├── get-batch-id/ │ │ │ │ ├── _getBatchId.t.sol │ │ │ │ └── _getBatchId.tree │ │ │ ├── get-batch-start-id/ │ │ │ │ ├── _getBatchStartId.t.sol │ │ │ │ └── _getBatchStartId.tree │ │ │ └── set-base-uri/ │ │ │ ├── _setBaseURI.t.sol │ │ │ └── _setBaseURI.tree │ │ ├── burn-to-claim/ │ │ │ ├── burn-tokens-on-origin/ │ │ │ │ ├── _burnTokensOnOrigin.t.sol │ │ │ │ └── _burnTokensOnOrigin.tree │ │ │ ├── set-burn-to-claim-info/ │ │ │ │ ├── setBurnToClaimInfo.t.sol │ │ │ │ └── setBurnToClaimInfo.tree │ │ │ └── verify-burn-to-claim/ │ │ │ ├── verifyBurnToClaim.t.sol │ │ │ └── verifyBurnToClaim.tree │ │ ├── contract-metadata/ │ │ │ └── set-contract-uri/ │ │ │ ├── setContractURI.t.sol │ │ │ └── setContractURI.tree │ │ ├── delayed-reveal/ │ │ │ ├── get-reveal-uri/ │ │ │ │ ├── getRevealURI.t.sol │ │ │ │ └── getRevealURI.tree │ │ │ └── set-encrypted-data/ │ │ │ ├── _setEncryptedData.t.sol │ │ │ └── _setEncryptedData.tree │ │ ├── drop/ │ │ │ ├── claim/ │ │ │ │ ├── claim.t.sol │ │ │ │ └── claim.tree │ │ │ ├── get-active-claim-condition-id/ │ │ │ │ ├── getActiveClaimConditionId.t.sol │ │ │ │ └── getActiveClaimConditionId.tree │ │ │ ├── set-claim-conditions/ │ │ │ │ ├── setClaimConditions.t.sol │ │ │ │ └── setClaimConditions.tree │ │ │ └── verify-claim/ │ │ │ ├── verifyClaim.t.sol │ │ │ └── verifyClaim.tree │ │ ├── lazy-mint/ │ │ │ └── lazy-mint/ │ │ │ ├── lazyMint.t.sol │ │ │ └── lazyMint.tree │ │ ├── ownable/ │ │ │ └── set-owner/ │ │ │ ├── setOwner.t.sol │ │ │ └── setOwner.tree │ │ ├── royalty/ │ │ │ ├── set-default-royalty-info/ │ │ │ │ ├── setDefaultRoyaltyInfo.t.sol │ │ │ │ └── setDefaultRoyaltyInfo.tree │ │ │ └── set-royalty-info-for-token/ │ │ │ ├── setRoyaltyInfoForToken.t.sol │ │ │ └── setRoyaltyInfoForToken.tree │ │ └── upgradeable/ │ │ ├── batch-mint-metadata/ │ │ │ ├── batch-mint-metadata/ │ │ │ │ ├── _batchMintMetadata.t.sol │ │ │ │ └── _batchMintMetadata.tree │ │ │ ├── freeze-base-uri/ │ │ │ │ ├── _freezeBaseURI.t.sol │ │ │ │ └── _freezeBaseURI.tree │ │ │ ├── get-base-uri/ │ │ │ │ ├── _getBaseURI.t.sol │ │ │ │ └── _getBaseURI.tree │ │ │ ├── get-batch-id/ │ │ │ │ ├── _getBatchId.t.sol │ │ │ │ └── _getBatchId.tree │ │ │ ├── get-batch-start-id/ │ │ │ │ ├── _getBatchStartId.t.sol │ │ │ │ └── _getBatchStartId.tree │ │ │ └── set-base-uri/ │ │ │ ├── _setBaseURI.t.sol │ │ │ └── _setBaseURI.tree │ │ ├── burn-to-claim/ │ │ │ ├── burn-tokens-on-origin/ │ │ │ │ ├── _burnTokensOnOrigin.t.sol │ │ │ │ └── _burnTokensOnOrigin.tree │ │ │ ├── set-burn-to-claim-info/ │ │ │ │ ├── setBurnToClaimInfo.t.sol │ │ │ │ └── setBurnToClaimInfo.tree │ │ │ └── verify-burn-to-claim/ │ │ │ ├── verifyBurnToClaim.t.sol │ │ │ └── verifyBurnToClaim.tree │ │ ├── contract-metadata/ │ │ │ └── set-contract-uri/ │ │ │ ├── setContractURI.t.sol │ │ │ └── setContractURI.tree │ │ ├── delayed-reveal/ │ │ │ ├── get-reveal-uri/ │ │ │ │ ├── getRevealURI.t.sol │ │ │ │ └── getRevealURI.tree │ │ │ └── set-encrypted-data/ │ │ │ ├── _setEncryptedData.t.sol │ │ │ └── _setEncryptedData.tree │ │ ├── drop/ │ │ │ ├── claim/ │ │ │ │ ├── claim.t.sol │ │ │ │ └── claim.tree │ │ │ ├── get-active-claim-condition-id/ │ │ │ │ ├── getActiveClaimConditionId.t.sol │ │ │ │ └── getActiveClaimConditionId.tree │ │ │ ├── set-claim-conditions/ │ │ │ │ ├── setClaimConditions.t.sol │ │ │ │ └── setClaimConditions.tree │ │ │ └── verify-claim/ │ │ │ ├── verifyClaim.t.sol │ │ │ └── verifyClaim.tree │ │ ├── lazy-mint/ │ │ │ └── lazy-mint/ │ │ │ ├── lazyMint.t.sol │ │ │ └── lazyMint.tree │ │ ├── ownable/ │ │ │ └── set-owner/ │ │ │ ├── setOwner.t.sol │ │ │ └── setOwner.tree │ │ └── royalty/ │ │ ├── set-default-royalty-info/ │ │ │ ├── setDefaultRoyaltyInfo.t.sol │ │ │ └── setDefaultRoyaltyInfo.tree │ │ └── set-royalty-info-for-token/ │ │ ├── setRoyaltyInfoForToken.t.sol │ │ └── setRoyaltyInfoForToken.tree │ ├── smart-wallet/ │ │ ├── Account.t.sol │ │ ├── AccountVulnPOC.t.sol │ │ ├── DynamicAccount.t.sol │ │ ├── ManagedAccount.t.sol │ │ ├── account-core/ │ │ │ ├── isValidSigner.t.sol │ │ │ └── isValidSigner.tree │ │ ├── account-permissions/ │ │ │ ├── setPermissionsForSigner.t.sol │ │ │ └── setPermissionsForSigner.tree │ │ ├── token-paymaster/ │ │ │ └── TokenPaymaster.t.sol │ │ └── utils/ │ │ ├── AABenchmarkArtifacts.sol │ │ ├── AABenchmarkPrepare.sol │ │ ├── AABenchmarkTest.t.sol │ │ ├── AATestArtifacts.sol │ │ ├── AATestBase.sol │ │ ├── BasePaymaster.sol │ │ ├── MessageHashUtils.sol │ │ └── VerifyingPaymaster.sol │ ├── split-BTT/ │ │ ├── distribute-erc20/ │ │ │ ├── distribute.t.sol │ │ │ └── distribute.tree │ │ ├── distribute-native-token/ │ │ │ ├── distribute.t.sol │ │ │ └── distribute.tree │ │ ├── initialize/ │ │ │ ├── initialize.t.sol │ │ │ └── initialize.tree │ │ ├── other-functions/ │ │ │ ├── other.t.sol │ │ │ └── other.tree │ │ ├── release-erc20/ │ │ │ ├── release.t.sol │ │ │ └── release.tree │ │ ├── release-native-token/ │ │ │ ├── release.t.sol │ │ │ └── release.tree │ │ └── set-contract-uri/ │ │ ├── setContractURI.t.sol │ │ └── setContractURI.tree │ ├── staking/ │ │ ├── EditionStake.t.sol │ │ ├── EditionStake_EthReward.t.sol │ │ ├── NFTStake.t.sol │ │ ├── NFTStake_EthReward.t.sol │ │ ├── TokenStake.t.sol │ │ ├── TokenStake_EthReward.t.sol │ │ └── TokenStake_EthStake.t.sol │ ├── token/ │ │ ├── TokenERC1155.t.sol │ │ ├── TokenERC20.t.sol │ │ └── TokenERC721.t.sol │ ├── tokenerc1155-BTT/ │ │ ├── burn/ │ │ │ ├── burn.t.sol │ │ │ └── burn.tree │ │ ├── burn-batch/ │ │ │ ├── burnBatch.t.sol │ │ │ └── burnBatch.tree │ │ ├── initialize/ │ │ │ ├── initialize.t.sol │ │ │ └── initialize.tree │ │ ├── mint-to/ │ │ │ ├── mintTo.t.sol │ │ │ └── mintTo.tree │ │ ├── mint-with-signature/ │ │ │ ├── mintWithSignature.t.sol │ │ │ └── mintWithSignature.tree │ │ ├── other-functions/ │ │ │ ├── other.t.sol │ │ │ └── other.tree │ │ ├── owner/ │ │ │ ├── owner.t.sol │ │ │ └── owner.tree │ │ ├── set-contract-uri/ │ │ │ ├── setContractURI.t.sol │ │ │ └── setContractURI.tree │ │ ├── set-default-royalty-info/ │ │ │ ├── setDefaultRoyaltyInfo.t.sol │ │ │ └── setDefaultRoyaltyInfo.tree │ │ ├── set-flat-platform-fee-info/ │ │ │ ├── setFlatPlatformFeeInfo.t.sol │ │ │ └── setFlatPlatformFeeInfo.tree │ │ ├── set-owner/ │ │ │ ├── setOwner.t.sol │ │ │ └── setOwner.tree │ │ ├── set-platform-fee-info/ │ │ │ ├── setPlatformFeeInfo.t.sol │ │ │ └── setPlatformFeeInfo.tree │ │ ├── set-platform-fee-type/ │ │ │ ├── setPlatformFeeType.t.sol │ │ │ └── setPlatformFeeType.tree │ │ ├── set-primary-sale-recipient/ │ │ │ ├── setPrimarySaleRecipient.t.sol │ │ │ └── setPrimarySaleRecipient.tree │ │ ├── set-royalty-info-for-token/ │ │ │ ├── setRoyaltyInfoForToken.t.sol │ │ │ └── setRoyaltyInfoForToken.tree │ │ ├── uri/ │ │ │ ├── tokenURI.t.sol │ │ │ └── tokenURI.tree │ │ └── verify/ │ │ ├── verify.t.sol │ │ └── verify.tree │ ├── tokenerc20-BTT/ │ │ ├── initialize/ │ │ │ ├── initialize.t.sol │ │ │ └── initialize.tree │ │ ├── mint-to/ │ │ │ ├── mintTo.t.sol │ │ │ └── mintTo.tree │ │ ├── mint-with-signature/ │ │ │ ├── mintWithSignature.t.sol │ │ │ └── mintWithSignature.tree │ │ ├── other-functions/ │ │ │ ├── other.t.sol │ │ │ └── other.tree │ │ ├── set-contract-uri/ │ │ │ ├── setContractURI.t.sol │ │ │ └── setContractURI.tree │ │ ├── set-platform-fee-info/ │ │ │ ├── setPlatformFeeInfo.t.sol │ │ │ └── setPlatformFeeInfo.tree │ │ ├── set-primary-sale-recipient/ │ │ │ ├── setPrimarySaleRecipient.t.sol │ │ │ └── setPrimarySaleRecipient.tree │ │ └── verify/ │ │ ├── verify.t.sol │ │ └── verify.tree │ ├── tokenerc721-BTT/ │ │ ├── burn/ │ │ │ ├── burn.t.sol │ │ │ └── burn.tree │ │ ├── initialize/ │ │ │ ├── initialize.t.sol │ │ │ └── initialize.tree │ │ ├── mint-to/ │ │ │ ├── mintTo.t.sol │ │ │ └── mintTo.tree │ │ ├── mint-with-signature/ │ │ │ ├── mintWithSignature.t.sol │ │ │ └── mintWithSignature.tree │ │ ├── other-functions/ │ │ │ ├── other.t.sol │ │ │ └── other.tree │ │ ├── owner/ │ │ │ ├── owner.t.sol │ │ │ └── owner.tree │ │ ├── set-contract-uri/ │ │ │ ├── setContractURI.t.sol │ │ │ └── setContractURI.tree │ │ ├── set-default-royalty-info/ │ │ │ ├── setDefaultRoyaltyInfo.t.sol │ │ │ └── setDefaultRoyaltyInfo.tree │ │ ├── set-owner/ │ │ │ ├── setOwner.t.sol │ │ │ └── setOwner.tree │ │ ├── set-platform-fee-info/ │ │ │ ├── setPlatformFeeInfo.t.sol │ │ │ └── setPlatformFeeInfo.tree │ │ ├── set-primary-sale-recipient/ │ │ │ ├── setPrimarySaleRecipient.t.sol │ │ │ └── setPrimarySaleRecipient.tree │ │ ├── set-royalty-info-for-token/ │ │ │ ├── setRoyaltyInfoForToken.t.sol │ │ │ └── setRoyaltyInfoForToken.tree │ │ ├── token-uri/ │ │ │ ├── tokenURI.t.sol │ │ │ └── tokenURI.tree │ │ └── verify/ │ │ ├── verify.t.sol │ │ └── verify.tree │ ├── utils/ │ │ ├── BaseTest.sol │ │ ├── Console.sol │ │ ├── SignatureMint1155Utils.sol │ │ └── Wallet.sol │ └── vote-BTT/ │ ├── initialize/ │ │ ├── initialize.t.sol │ │ └── initialize.tree │ ├── other-functions/ │ │ ├── other.t.sol │ │ └── other.tree │ ├── propose/ │ │ ├── propose.t.sol │ │ └── propose.tree │ └── set-contract-uri/ │ ├── setContractURI.t.sol │ └── setContractURI.tree ├── tsconfig.build.json └── tsconfig.json