@towns-protocol/contracts 0.0.302
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/LICENSE.txt +21 -0
- package/README.md +206 -0
- package/docs/permitAndStake_integration_guide.md +266 -0
- package/docs/swap_integration_guide.md +591 -0
- package/package.json +57 -0
- package/scripts/common/DeployBase.s.sol +26 -0
- package/scripts/common/DeployFacet.s.sol +7 -0
- package/scripts/common/Deployer.s.sol +33 -0
- package/scripts/common/Interaction.s.sol +51 -0
- package/scripts/deployments/diamonds/DeployAppRegistry.s.sol +168 -0
- package/scripts/deployments/diamonds/DeployBaseRegistry.s.sol +263 -0
- package/scripts/deployments/diamonds/DeployRiverAirdrop.s.sol +203 -0
- package/scripts/deployments/diamonds/DeployRiverMigration.s.sol +129 -0
- package/scripts/deployments/diamonds/DeployRiverRegistry.s.sol +175 -0
- package/scripts/deployments/diamonds/DeploySpace.s.sol +285 -0
- package/scripts/deployments/diamonds/DeploySpaceFactory.s.sol +416 -0
- package/scripts/deployments/diamonds/DeploySpaceOwner.s.sol +183 -0
- package/scripts/deployments/diamonds/DeploySwapRouter.s.sol +176 -0
- package/scripts/deployments/diamonds/IDiamondInitHelper.sol +11 -0
- package/scripts/deployments/facets/DeployAppAccount.s.sol +51 -0
- package/scripts/deployments/facets/DeployAppRegistryFacet.s.sol +69 -0
- package/scripts/deployments/facets/DeployArchitect.s.sol +51 -0
- package/scripts/deployments/facets/DeployAttestationRegistry.s.sol +36 -0
- package/scripts/deployments/facets/DeployBanning.s.sol +30 -0
- package/scripts/deployments/facets/DeployChannels.s.sol +35 -0
- package/scripts/deployments/facets/DeployCreateSpace.s.sol +42 -0
- package/scripts/deployments/facets/DeployDropFacet.s.sol +49 -0
- package/scripts/deployments/facets/DeployERC721A.s.sol +48 -0
- package/scripts/deployments/facets/DeployERC721ANonTransferable.s.sol +49 -0
- package/scripts/deployments/facets/DeployERC721AQueryable.s.sol +30 -0
- package/scripts/deployments/facets/DeployEntitlementChecker.s.sol +49 -0
- package/scripts/deployments/facets/DeployEntitlementDataQueryable.s.sol +29 -0
- package/scripts/deployments/facets/DeployEntitlementsManager.s.sol +33 -0
- package/scripts/deployments/facets/DeployExecutorFacet.s.sol +60 -0
- package/scripts/deployments/facets/DeployFeatureManager.s.sol +38 -0
- package/scripts/deployments/facets/DeployGuardianFacet.s.sol +39 -0
- package/scripts/deployments/facets/DeployImplementationRegistry.s.sol +36 -0
- package/scripts/deployments/facets/DeployMainnetDelegation.s.sol +43 -0
- package/scripts/deployments/facets/DeployMembership.s.sol +77 -0
- package/scripts/deployments/facets/DeployMembershipMetadata.s.sol +30 -0
- package/scripts/deployments/facets/DeployMembershipToken.s.sol +47 -0
- package/scripts/deployments/facets/DeployMerkleAirdrop.s.sol +37 -0
- package/scripts/deployments/facets/DeployMetadata.s.sol +39 -0
- package/scripts/deployments/facets/DeployMockLegacyArchitect.s.sol +33 -0
- package/scripts/deployments/facets/DeployNodeOperator.s.sol +49 -0
- package/scripts/deployments/facets/DeployNodeRegistry.s.sol +37 -0
- package/scripts/deployments/facets/DeployOperatorRegistry.s.sol +36 -0
- package/scripts/deployments/facets/DeployPartnerRegistry.s.sol +41 -0
- package/scripts/deployments/facets/DeployPlatformRequirements.s.sol +75 -0
- package/scripts/deployments/facets/DeployPrepayFacet.s.sol +31 -0
- package/scripts/deployments/facets/DeployPricingModules.s.sol +36 -0
- package/scripts/deployments/facets/DeployReferrals.s.sol +34 -0
- package/scripts/deployments/facets/DeployReviewFacet.s.sol +31 -0
- package/scripts/deployments/facets/DeployRewardsDistributionV2.s.sol +76 -0
- package/scripts/deployments/facets/DeployRiverConfig.s.sol +41 -0
- package/scripts/deployments/facets/DeployRoles.s.sol +48 -0
- package/scripts/deployments/facets/DeploySchemaRegistry.s.sol +35 -0
- package/scripts/deployments/facets/DeploySignerFacet.s.sol +47 -0
- package/scripts/deployments/facets/DeploySimpleApp.s.sol +10 -0
- package/scripts/deployments/facets/DeploySpaceDelegation.s.sol +43 -0
- package/scripts/deployments/facets/DeploySpaceEntitlementGated.s.sol +31 -0
- package/scripts/deployments/facets/DeploySpaceFactoryInit.s.sol +33 -0
- package/scripts/deployments/facets/DeploySpaceOwnerFacet.s.sol +71 -0
- package/scripts/deployments/facets/DeployStreamRegistry.s.sol +50 -0
- package/scripts/deployments/facets/DeploySwapFacet.s.sol +33 -0
- package/scripts/deployments/facets/DeploySwapRouterFacet.s.sol +38 -0
- package/scripts/deployments/facets/DeployTipping.s.sol +31 -0
- package/scripts/deployments/facets/DeployTokenMigration.s.sol +40 -0
- package/scripts/deployments/facets/DeployTownsPoints.s.sol +53 -0
- package/scripts/deployments/facets/DeployTreasury.s.sol +30 -0
- package/scripts/deployments/facets/DeployUpgradeableBeacon.s.sol +34 -0
- package/scripts/deployments/facets/DeployWalletLink.s.sol +56 -0
- package/scripts/deployments/facets/DeployXChain.s.sol +35 -0
- package/scripts/deployments/utils/DeployAccountFactory.s.sol +40 -0
- package/scripts/deployments/utils/DeployEntitlementGatedExample.s.sol +23 -0
- package/scripts/deployments/utils/DeployEntrypoint.s.sol +28 -0
- package/scripts/deployments/utils/DeployMember.s.sol +95 -0
- package/scripts/deployments/utils/DeployMockDiamond.s.sol +7 -0
- package/scripts/deployments/utils/DeployMockERC20.s.sol +24 -0
- package/scripts/deployments/utils/DeployMockERC721A.s.sol +45 -0
- package/scripts/deployments/utils/DeployMockLegacyMembership.s.sol +29 -0
- package/scripts/deployments/utils/DeployMockMessenger.s.sol +42 -0
- package/scripts/deployments/utils/DeployMockNFT.s.sol +86 -0
- package/scripts/deployments/utils/DeployPoapEntitlement.s.sol +16 -0
- package/scripts/deployments/utils/DeployProxyBatchDelegation.s.sol +112 -0
- package/scripts/deployments/utils/DeploySpaceProxyInitializer.s.sol +28 -0
- package/scripts/deployments/utils/DeployTieredLogPricingV2.s.sol +23 -0
- package/scripts/deployments/utils/DeployTieredLogPricingV3.s.sol +23 -0
- package/scripts/deployments/utils/DeployTownsBase.s.sol +95 -0
- package/scripts/deployments/utils/DeployTownsMainnet.s.sol +66 -0
- package/scripts/deployments/utils/DeployTownsMulti.s.sol +53 -0
- package/scripts/deployments/utils/DeployWrappedTowns.s.sol +52 -0
- package/scripts/deployments/utils/LibLayerZeroValues.sol +34 -0
- package/scripts/deployments/utils/pricing/TieredLogPricing.s.sol +45 -0
- package/scripts/interactions/InteractAirdrop.s.sol +57 -0
- package/scripts/interactions/InteractAlphaPost.s.sol +32 -0
- package/scripts/interactions/InteractAlphaSparse.s.sol +173 -0
- package/scripts/interactions/InteractBaseAlpha.s.sol +84 -0
- package/scripts/interactions/InteractBaseBridge.s.sol +48 -0
- package/scripts/interactions/InteractBridgeLayerZero.s.sol +102 -0
- package/scripts/interactions/InteractClaimCondition.s.sol +56 -0
- package/scripts/interactions/InteractCreateSpace.s.sol +50 -0
- package/scripts/interactions/InteractDiamondCut.s.sol +47 -0
- package/scripts/interactions/InteractDropFacet.s.sol +32 -0
- package/scripts/interactions/InteractEnableNewSnapshotFormat.s.sol +27 -0
- package/scripts/interactions/InteractEnableNode2NodeAuth.s.sol +27 -0
- package/scripts/interactions/InteractMembership.s.sol +42 -0
- package/scripts/interactions/InteractMockERC721A.s.sol +20 -0
- package/scripts/interactions/InteractNodeOperators.s.sol +41 -0
- package/scripts/interactions/InteractPostDeploy.s.sol +59 -0
- package/scripts/interactions/InteractPrepay.s.sol +30 -0
- package/scripts/interactions/InteractRegisterApp.s.sol +61 -0
- package/scripts/interactions/InteractRiverAlpha.s.sol +30 -0
- package/scripts/interactions/InteractRiverAlphaSparse.s.sol +117 -0
- package/scripts/interactions/InteractRiverMainnet.s.sol +27 -0
- package/scripts/interactions/InteractRiverRegistry.s.sol +36 -0
- package/scripts/interactions/InteractRiverRegistrySetBlocklist.s.sol +30 -0
- package/scripts/interactions/InteractRiverRegistrySetFreq.s.sol +27 -0
- package/scripts/interactions/InteractRiverRegistrySetRepl.s.sol +30 -0
- package/scripts/interactions/InteractSetDefaultUri.s.sol +20 -0
- package/scripts/interactions/InteractSetDefaultUriLocalhost.s.sol +19 -0
- package/scripts/interactions/InteractTransferOwnership.s.sol +21 -0
- package/scripts/interactions/InteractUpdateMbRecencyCheck.s.sol +27 -0
- package/scripts/interactions/InteractUpdateMediaChunkCount.s.sol +27 -0
- package/scripts/interactions/InteractUpdateMediaChunkSize.s.sol +27 -0
- package/scripts/interactions/helpers/AlphaHelper.sol +149 -0
- package/scripts/interactions/helpers/RiverConfigValues.sol +22 -0
- package/scripts/interactions/interfaces/IL1StandardBridge.sol +35 -0
- package/scripts/interactions/interfaces/IL2StandardBridge.sol +69 -0
- package/src/airdrop/drop/DropBase.sol +210 -0
- package/src/airdrop/drop/DropClaim.sol +55 -0
- package/src/airdrop/drop/DropFacet.sol +176 -0
- package/src/airdrop/drop/DropGroup.sol +111 -0
- package/src/airdrop/drop/DropStorage.sol +23 -0
- package/src/airdrop/drop/IDropFacet.sol +136 -0
- package/src/airdrop/points/CheckIn.sol +71 -0
- package/src/airdrop/points/ITownsPoints.sol +64 -0
- package/src/airdrop/points/TownsPoints.sol +196 -0
- package/src/airdrop/points/TownsPointsStorage.sol +22 -0
- package/src/apps/BaseApp.sol +62 -0
- package/src/apps/ITownsApp.sol +28 -0
- package/src/apps/SchemaResolver.sol +170 -0
- package/src/apps/facets/attest/AttestationBase.sol +335 -0
- package/src/apps/facets/attest/AttestationLib.sol +64 -0
- package/src/apps/facets/attest/AttestationRegistry.sol +39 -0
- package/src/apps/facets/attest/AttestationStorage.sol +35 -0
- package/src/apps/facets/attest/IAttestationRegistry.sol +43 -0
- package/src/apps/facets/registry/AppRegistryBase.sol +403 -0
- package/src/apps/facets/registry/AppRegistryFacet.sol +173 -0
- package/src/apps/facets/registry/AppRegistryStorage.sol +53 -0
- package/src/apps/facets/registry/IAppRegistry.sol +159 -0
- package/src/apps/facets/schema/ISchema.sol +14 -0
- package/src/apps/facets/schema/SchemaBase.sol +88 -0
- package/src/apps/facets/schema/SchemaLib.sol +14 -0
- package/src/apps/facets/schema/SchemaRegistry.sol +51 -0
- package/src/apps/facets/schema/SchemaStorage.sol +34 -0
- package/src/apps/helpers/ISimpleApp.sol +51 -0
- package/src/apps/helpers/SimpleApp.sol +97 -0
- package/src/apps/helpers/SimpleAppStorage.sol +27 -0
- package/src/base/registry/facets/checker/EntitlementChecker.sol +237 -0
- package/src/base/registry/facets/checker/EntitlementCheckerStorage.sol +28 -0
- package/src/base/registry/facets/checker/IEntitlementChecker.sol +95 -0
- package/src/base/registry/facets/delegation/ISpaceDelegation.sol +69 -0
- package/src/base/registry/facets/delegation/SpaceDelegationFacet.sol +250 -0
- package/src/base/registry/facets/delegation/SpaceDelegationStorage.sol +35 -0
- package/src/base/registry/facets/distribution/v1/IRewardsDistribution.sol +51 -0
- package/src/base/registry/facets/distribution/v1/RewardsDistribution.sol +439 -0
- package/src/base/registry/facets/distribution/v1/RewardsDistributionStorage.sol +32 -0
- package/src/base/registry/facets/distribution/v2/DelegationProxy.sol +53 -0
- package/src/base/registry/facets/distribution/v2/IRewardsDistribution.sol +372 -0
- package/src/base/registry/facets/distribution/v2/RewardsDistributionBase.sol +299 -0
- package/src/base/registry/facets/distribution/v2/RewardsDistributionStorage.sol +37 -0
- package/src/base/registry/facets/distribution/v2/RewardsDistributionV2.sol +392 -0
- package/src/base/registry/facets/distribution/v2/StakingRewards.sol +466 -0
- package/src/base/registry/facets/mainnet/ICrossDomainMessenger.sol +58 -0
- package/src/base/registry/facets/mainnet/IMainnetDelegation.sol +127 -0
- package/src/base/registry/facets/mainnet/MainnetDelegation.sol +119 -0
- package/src/base/registry/facets/mainnet/MainnetDelegationBase.sol +274 -0
- package/src/base/registry/facets/mainnet/MainnetDelegationStorage.sol +36 -0
- package/src/base/registry/facets/operator/INodeOperator.sol +91 -0
- package/src/base/registry/facets/operator/NodeOperatorFacet.sol +189 -0
- package/src/base/registry/facets/operator/NodeOperatorStorage.sol +39 -0
- package/src/base/registry/facets/xchain/IXChain.sol +54 -0
- package/src/base/registry/facets/xchain/XChain.sol +158 -0
- package/src/base/registry/facets/xchain/XChainCheckLib.sol +105 -0
- package/src/base/registry/facets/xchain/XChainLib.sol +46 -0
- package/src/diamond/facets/beacon/UpgradeableBeacon.sol +38 -0
- package/src/diamond/facets/beacon/UpgradeableBeaconFacet.sol +34 -0
- package/src/diamond/facets/governance/votes/Checkpoints.sol +642 -0
- package/src/diamond/facets/governance/votes/Votes.sol +63 -0
- package/src/diamond/facets/governance/votes/VotesBase.sol +274 -0
- package/src/diamond/facets/governance/votes/VotesStorage.sol +21 -0
- package/src/diamond/facets/governance/votes/enumerable/IVotesEnumerable.sol +38 -0
- package/src/diamond/facets/governance/votes/enumerable/VotesEnumerable.sol +39 -0
- package/src/diamond/facets/governance/votes/enumerable/VotesEnumerableLib.sol +102 -0
- package/src/diamond/facets/metadata/IMetadata.sol +27 -0
- package/src/diamond/facets/metadata/MetadataFacet.sol +71 -0
- package/src/diamond/facets/token/ERC5643/ERC5643.sol +51 -0
- package/src/diamond/facets/token/ERC5643/ERC5643Base.sol +48 -0
- package/src/diamond/facets/token/ERC5643/ERC5643Storage.sol +26 -0
- package/src/diamond/facets/token/ERC5643/IERC5643.sol +44 -0
- package/src/diamond/facets/token/ERC721A/ERC721A.sol +270 -0
- package/src/diamond/facets/token/ERC721A/ERC721ABase.sol +829 -0
- package/src/diamond/facets/token/ERC721A/ERC721ANonTransferable.sol +21 -0
- package/src/diamond/facets/token/ERC721A/ERC721AStorage.sol +115 -0
- package/src/diamond/facets/token/ERC721A/IERC721A.sol +283 -0
- package/src/diamond/facets/token/ERC721A/extensions/ERC721AQueryable.sol +134 -0
- package/src/diamond/facets/token/ERC721A/extensions/IERC721AQueryable.sol +83 -0
- package/src/diamond/utils/Context.sol +19 -0
- package/src/factory/SpaceFactoryInit.sol +17 -0
- package/src/factory/facets/architect/Architect.sol +98 -0
- package/src/factory/facets/architect/ArchitectBase.sol +95 -0
- package/src/factory/facets/architect/ArchitectStorage.sol +28 -0
- package/src/factory/facets/architect/IArchitect.sol +155 -0
- package/src/factory/facets/architect/ImplementationStorage.sol +42 -0
- package/src/factory/facets/architect/pricing/IPricingModules.sol +41 -0
- package/src/factory/facets/architect/pricing/PricingModulesBase.sol +89 -0
- package/src/factory/facets/architect/pricing/PricingModulesFacet.sol +40 -0
- package/src/factory/facets/architect/pricing/PricingModulesStorage.sol +30 -0
- package/src/factory/facets/create/CreateSpace.sol +107 -0
- package/src/factory/facets/create/CreateSpaceLib.sol +335 -0
- package/src/factory/facets/create/ICreateSpace.sol +70 -0
- package/src/factory/facets/feature/FeatureConditionLib.sol +53 -0
- package/src/factory/facets/feature/FeatureManagerFacet.sol +66 -0
- package/src/factory/facets/feature/FeatureManagerLib.sol +168 -0
- package/src/factory/facets/feature/IFeatureManagerFacet.sol +73 -0
- package/src/factory/facets/partner/IPartnerRegistry.sol +56 -0
- package/src/factory/facets/partner/PartnerRegistry.sol +57 -0
- package/src/factory/facets/partner/PartnerRegistryBase.sol +132 -0
- package/src/factory/facets/partner/PartnerRegistryStorage.sol +40 -0
- package/src/factory/facets/platform/requirements/IPlatformRequirements.sol +143 -0
- package/src/factory/facets/platform/requirements/PlatformRequirementsBase.sol +124 -0
- package/src/factory/facets/platform/requirements/PlatformRequirementsFacet.sol +122 -0
- package/src/factory/facets/platform/requirements/PlatformRequirementsStorage.sol +41 -0
- package/src/factory/facets/registry/IImplementationRegistry.sol +46 -0
- package/src/factory/facets/registry/ImplementationRegistry.sol +64 -0
- package/src/factory/facets/registry/ImplementationRegistryStorage.sol +28 -0
- package/src/factory/facets/wallet-link/IWalletLink.sol +218 -0
- package/src/factory/facets/wallet-link/WalletLink.sol +108 -0
- package/src/factory/facets/wallet-link/WalletLinkBase.sol +492 -0
- package/src/factory/facets/wallet-link/interfaces/IDelegateRegistry.sol +63 -0
- package/src/factory/facets/wallet-link/interfaces/IDelegateRegistryV1.sol +35 -0
- package/src/factory/facets/wallet-link/interfaces/ISCL_EIP6565.sol +24 -0
- package/src/factory/facets/wallet-link/libraries/SolanaUtils.sol +161 -0
- package/src/factory/facets/wallet-link/libraries/WalletLib.sol +62 -0
- package/src/river/registry/facets/config/IRiverConfig.sol +117 -0
- package/src/river/registry/facets/config/RiverConfig.sol +174 -0
- package/src/river/registry/facets/node/INodeRegistry.sol +69 -0
- package/src/river/registry/facets/node/NodeRegistry.sol +143 -0
- package/src/river/registry/facets/operator/IOperatorRegistry.sol +28 -0
- package/src/river/registry/facets/operator/OperatorRegistry.sol +86 -0
- package/src/river/registry/facets/stream/IStreamRegistry.sol +184 -0
- package/src/river/registry/facets/stream/StreamRegistry.sol +396 -0
- package/src/river/registry/libraries/RegistryErrors.sol +24 -0
- package/src/river/registry/libraries/RegistryStorage.sol +181 -0
- package/src/router/ISwapRouter.sol +226 -0
- package/src/router/Permit2Hash.sol +92 -0
- package/src/router/SwapRouter.sol +463 -0
- package/src/router/SwapRouterStorage.sol +21 -0
- package/src/spaces/entitlements/ICrossChainEntitlement.sol +22 -0
- package/src/spaces/entitlements/IEntitlement.sol +61 -0
- package/src/spaces/entitlements/PolymarketEntitlement.sol +79 -0
- package/src/spaces/entitlements/poap/IPOAP.sol +26 -0
- package/src/spaces/entitlements/poap/PoapEntitlement.sol +56 -0
- package/src/spaces/entitlements/rule/IRuleEntitlement.sol +174 -0
- package/src/spaces/entitlements/rule/RuleEntitlement.sol +183 -0
- package/src/spaces/entitlements/rule/RuleEntitlementV2.sol +219 -0
- package/src/spaces/entitlements/user/IUserEntitlement.sol +24 -0
- package/src/spaces/entitlements/user/UserEntitlement.sol +273 -0
- package/src/spaces/facets/DependencyLib.sol +60 -0
- package/src/spaces/facets/Entitled.sol +172 -0
- package/src/spaces/facets/Permissions.sol +21 -0
- package/src/spaces/facets/account/AppAccount.sol +93 -0
- package/src/spaces/facets/account/AppAccountBase.sol +275 -0
- package/src/spaces/facets/account/AppAccountStorage.sol +63 -0
- package/src/spaces/facets/account/IAppAccount.sol +71 -0
- package/src/spaces/facets/account/SignerFacet.sol +26 -0
- package/src/spaces/facets/banning/Banning.sol +41 -0
- package/src/spaces/facets/banning/BanningBase.sol +33 -0
- package/src/spaces/facets/banning/BanningStorage.sol +23 -0
- package/src/spaces/facets/banning/IBanning.sol +35 -0
- package/src/spaces/facets/channels/ChannelBase.sol +87 -0
- package/src/spaces/facets/channels/ChannelService.sol +177 -0
- package/src/spaces/facets/channels/ChannelStorage.sol +34 -0
- package/src/spaces/facets/channels/Channels.sol +80 -0
- package/src/spaces/facets/channels/IChannel.sol +98 -0
- package/src/spaces/facets/dispatcher/DispatcherBase.sol +86 -0
- package/src/spaces/facets/dispatcher/DispatcherStorage.sol +21 -0
- package/src/spaces/facets/dispatcher/IDispatcher.sol +6 -0
- package/src/spaces/facets/entitlements/EntitlementsManager.sol +49 -0
- package/src/spaces/facets/entitlements/EntitlementsManagerBase.sol +87 -0
- package/src/spaces/facets/entitlements/EntitlementsManagerService.sol +142 -0
- package/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol +34 -0
- package/src/spaces/facets/entitlements/IEntitlementsManager.sol +67 -0
- package/src/spaces/facets/entitlements/extensions/EntitlementDataQueryable.sol +153 -0
- package/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol +32 -0
- package/src/spaces/facets/executor/ExecutorBase.sol +564 -0
- package/src/spaces/facets/executor/ExecutorFacet.sol +178 -0
- package/src/spaces/facets/executor/ExecutorStorage.sol +99 -0
- package/src/spaces/facets/executor/GroupLib.sol +128 -0
- package/src/spaces/facets/executor/IExecutor.sol +287 -0
- package/src/spaces/facets/executor/hooks/HookBase.sol +172 -0
- package/src/spaces/facets/executor/hooks/HookLib.sol +38 -0
- package/src/spaces/facets/executor/hooks/IHookBase.sol +48 -0
- package/src/spaces/facets/gated/EntitlementGated.sol +59 -0
- package/src/spaces/facets/gated/EntitlementGatedBase.sol +324 -0
- package/src/spaces/facets/gated/EntitlementGatedStorage.sol +29 -0
- package/src/spaces/facets/gated/IEntitlementGated.sol +55 -0
- package/src/spaces/facets/guardian/GuardianBase.sol +80 -0
- package/src/spaces/facets/guardian/GuardianFacet.sol +43 -0
- package/src/spaces/facets/guardian/GuardianStorage.sol +27 -0
- package/src/spaces/facets/guardian/IGuardian.sol +54 -0
- package/src/spaces/facets/membership/IMembership.sol +216 -0
- package/src/spaces/facets/membership/MembershipBase.sol +272 -0
- package/src/spaces/facets/membership/MembershipFacet.sol +191 -0
- package/src/spaces/facets/membership/MembershipStorage.sol +40 -0
- package/src/spaces/facets/membership/join/MembershipJoin.sol +547 -0
- package/src/spaces/facets/membership/metadata/IMembershipMetadata.sol +9 -0
- package/src/spaces/facets/membership/metadata/MembershipMetadata.sol +32 -0
- package/src/spaces/facets/membership/pricing/IMembershipPricing.sol +18 -0
- package/src/spaces/facets/membership/pricing/fixed/FixedPricing.sol +29 -0
- package/src/spaces/facets/membership/pricing/fixed/FixedPricingStorage.sol +27 -0
- package/src/spaces/facets/membership/pricing/tiered/TieredLogPricingOracleV2.sol +148 -0
- package/src/spaces/facets/membership/pricing/tiered/TieredLogPricingOracleV3.sol +137 -0
- package/src/spaces/facets/membership/token/MembershipToken.sol +25 -0
- package/src/spaces/facets/owner/ISpaceOwner.sol +85 -0
- package/src/spaces/facets/owner/SpaceOwner.sol +174 -0
- package/src/spaces/facets/owner/SpaceOwnerBase.sol +121 -0
- package/src/spaces/facets/owner/SpaceOwnerStorage.sol +41 -0
- package/src/spaces/facets/owner/SpaceOwnerUriBase.sol +54 -0
- package/src/spaces/facets/points/PointsBase.sol +35 -0
- package/src/spaces/facets/prepay/IPrepay.sol +43 -0
- package/src/spaces/facets/prepay/PrepayBase.sol +27 -0
- package/src/spaces/facets/prepay/PrepayFacet.sol +59 -0
- package/src/spaces/facets/prepay/PrepayStorage.sol +26 -0
- package/src/spaces/facets/proxy/ISpaceProxyInitializer.sol +21 -0
- package/src/spaces/facets/proxy/SpaceProxy.sol +15 -0
- package/src/spaces/facets/proxy/SpaceProxyInitializer.sol +55 -0
- package/src/spaces/facets/referrals/IReferrals.sol +98 -0
- package/src/spaces/facets/referrals/ReferralsBase.sol +81 -0
- package/src/spaces/facets/referrals/ReferralsFacet.sol +65 -0
- package/src/spaces/facets/referrals/ReferralsStorage.sol +36 -0
- package/src/spaces/facets/review/IReview.sol +50 -0
- package/src/spaces/facets/review/ReviewFacet.sol +105 -0
- package/src/spaces/facets/review/ReviewStorage.sol +29 -0
- package/src/spaces/facets/roles/IRoles.sol +197 -0
- package/src/spaces/facets/roles/Roles.sol +123 -0
- package/src/spaces/facets/roles/RolesBase.sol +420 -0
- package/src/spaces/facets/roles/RolesStorage.sol +132 -0
- package/src/spaces/facets/swap/ISwapFacet.sol +91 -0
- package/src/spaces/facets/swap/SwapFacet.sol +290 -0
- package/src/spaces/facets/swap/SwapFacetStorage.sol +24 -0
- package/src/spaces/facets/tipping/ITipping.sol +80 -0
- package/src/spaces/facets/tipping/TippingBase.sol +73 -0
- package/src/spaces/facets/tipping/TippingFacet.sol +123 -0
- package/src/spaces/facets/treasury/ITreasury.sol +64 -0
- package/src/spaces/facets/treasury/Treasury.sol +82 -0
- package/src/spaces/facets/xchain/SpaceEntitlementGated.sol +62 -0
- package/src/tokens/Member.sol +246 -0
- package/src/tokens/lock/ILock.sol +42 -0
- package/src/tokens/lock/LockBase.sol +64 -0
- package/src/tokens/lock/LockFacet.sol +44 -0
- package/src/tokens/lock/LockStorage.sol +26 -0
- package/src/tokens/mainnet/claimer/AuthorizedClaimerStorage.sol +26 -0
- package/src/tokens/mainnet/claimer/AuthorizedClaimers.sol +84 -0
- package/src/tokens/mainnet/claimer/IAuthorizedClaimers.sol +36 -0
- package/src/tokens/mainnet/delegation/ProxyBatchDelegation.sol +86 -0
- package/src/tokens/migration/ITokenMigration.sol +35 -0
- package/src/tokens/migration/TokenMigrationFacet.sol +86 -0
- package/src/tokens/migration/TokenMigrationStorage.sol +27 -0
- package/src/tokens/towns/base/IERC7802.sol +30 -0
- package/src/tokens/towns/base/IOptimismMintableERC20.sol +31 -0
- package/src/tokens/towns/base/ISemver.sol +13 -0
- package/src/tokens/towns/base/Towns.sol +283 -0
- package/src/tokens/towns/base/TownsDeployer.sol +32 -0
- package/src/tokens/towns/base/TownsLib.sol +31 -0
- package/src/tokens/towns/base/versions/TownsV2.sol +15 -0
- package/src/tokens/towns/mainnet/ITowns.sol +56 -0
- package/src/tokens/towns/mainnet/Towns.sol +220 -0
- package/src/tokens/towns/mainnet/libs/TokenInflationLib.sol +89 -0
- package/src/tokens/towns/multichain/Towns.sol +19 -0
- package/src/tokens/towns/multichain/wTowns.sol +18 -0
- package/src/utils/Airdrop.sol +156 -0
- package/src/utils/airdrop/merkle/IMerkleAirdrop.sol +55 -0
- package/src/utils/airdrop/merkle/MerkleAirdrop.sol +118 -0
- package/src/utils/airdrop/merkle/MerkleAirdropStorage.sol +29 -0
- package/src/utils/interfaces/AggregatorV3Interface.sol +37 -0
- package/src/utils/interfaces/IMulticall.sol +10 -0
- package/src/utils/interfaces/IWETH.sol +10 -0
- package/src/utils/libraries/BasisPoints.sol +24 -0
- package/src/utils/libraries/Create2Utils.sol +74 -0
- package/src/utils/libraries/CurrencyTransfer.sol +99 -0
- package/src/utils/libraries/CustomRevert.sol +49 -0
- package/src/utils/libraries/Factory.sol +66 -0
- package/src/utils/libraries/StringSet.sol +190 -0
- package/src/utils/libraries/Validator.sol +31 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
// interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/IDiamond.sol";
|
|
6
|
+
|
|
7
|
+
// libraries
|
|
8
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
9
|
+
import {DynamicArrayLib} from "solady/utils/DynamicArrayLib.sol";
|
|
10
|
+
|
|
11
|
+
// contracts
|
|
12
|
+
import {SpaceDelegationFacet} from "src/base/registry/facets/delegation/SpaceDelegationFacet.sol";
|
|
13
|
+
|
|
14
|
+
library DeploySpaceDelegation {
|
|
15
|
+
using DynamicArrayLib for DynamicArrayLib.DynamicArray;
|
|
16
|
+
|
|
17
|
+
function selectors() internal pure returns (bytes4[] memory res) {
|
|
18
|
+
DynamicArrayLib.DynamicArray memory arr = DynamicArrayLib.p().reserve(7);
|
|
19
|
+
arr.p(SpaceDelegationFacet.addSpaceDelegation.selector);
|
|
20
|
+
arr.p(SpaceDelegationFacet.removeSpaceDelegation.selector);
|
|
21
|
+
arr.p(SpaceDelegationFacet.getSpaceDelegation.selector);
|
|
22
|
+
arr.p(SpaceDelegationFacet.getSpaceDelegationsByOperator.selector);
|
|
23
|
+
arr.p(SpaceDelegationFacet.getTotalDelegation.selector);
|
|
24
|
+
arr.p(SpaceDelegationFacet.setSpaceFactory.selector);
|
|
25
|
+
arr.p(SpaceDelegationFacet.getSpaceFactory.selector);
|
|
26
|
+
|
|
27
|
+
bytes32[] memory selectors_ = arr.asBytes32Array();
|
|
28
|
+
assembly ("memory-safe") {
|
|
29
|
+
res := selectors_
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function makeCut(
|
|
34
|
+
address facetAddress,
|
|
35
|
+
IDiamond.FacetCutAction action
|
|
36
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
37
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function deploy() internal returns (address) {
|
|
41
|
+
return LibDeploy.deployCode("SpaceDelegationFacet", "");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
// interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/Diamond.sol";
|
|
6
|
+
|
|
7
|
+
// libraries
|
|
8
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
9
|
+
|
|
10
|
+
// contracts
|
|
11
|
+
import {EntitlementGated} from "src/spaces/facets/gated/EntitlementGated.sol";
|
|
12
|
+
|
|
13
|
+
library DeploySpaceEntitlementGated {
|
|
14
|
+
function selectors() internal pure returns (bytes4[] memory res) {
|
|
15
|
+
res = new bytes4[](3);
|
|
16
|
+
res[0] = EntitlementGated.postEntitlementCheckResult.selector;
|
|
17
|
+
res[1] = EntitlementGated.postEntitlementCheckResultV2.selector;
|
|
18
|
+
res[2] = EntitlementGated.getRuleData.selector;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function makeCut(
|
|
22
|
+
address facetAddress,
|
|
23
|
+
IDiamond.FacetCutAction action
|
|
24
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
25
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function deploy() internal returns (address) {
|
|
29
|
+
return LibDeploy.deployCode("SpaceEntitlementGated.sol", "");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.19;
|
|
3
|
+
|
|
4
|
+
//interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/IDiamond.sol";
|
|
6
|
+
|
|
7
|
+
//libraries
|
|
8
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
9
|
+
|
|
10
|
+
//contracts
|
|
11
|
+
import {SpaceFactoryInit} from "src/factory/SpaceFactoryInit.sol";
|
|
12
|
+
|
|
13
|
+
library DeploySpaceFactoryInit {
|
|
14
|
+
function selectors() internal pure returns (bytes4[] memory _selectors) {
|
|
15
|
+
_selectors = new bytes4[](1);
|
|
16
|
+
_selectors[0] = SpaceFactoryInit.initialize.selector;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function makeCut(
|
|
20
|
+
address facetAddress,
|
|
21
|
+
IDiamond.FacetCutAction action
|
|
22
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
23
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function makeInitData(address _proxyInitializer) internal pure returns (bytes memory) {
|
|
27
|
+
return abi.encodeCall(SpaceFactoryInit.initialize, (_proxyInitializer));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function deploy() internal returns (address) {
|
|
31
|
+
return LibDeploy.deployCode("SpaceFactoryInit.sol", "");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
//interfaces
|
|
5
|
+
import {IVotes} from "@openzeppelin/contracts/governance/utils/IVotes.sol";
|
|
6
|
+
import {IERC6372} from "@openzeppelin/contracts/interfaces/IERC6372.sol";
|
|
7
|
+
import {IDiamond} from "@towns-protocol/diamond/src/Diamond.sol";
|
|
8
|
+
|
|
9
|
+
//libraries
|
|
10
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
11
|
+
import {DynamicArrayLib} from "solady/utils/DynamicArrayLib.sol";
|
|
12
|
+
import {DeployERC721A} from "./DeployERC721A.s.sol";
|
|
13
|
+
|
|
14
|
+
//contracts
|
|
15
|
+
import {SpaceOwner} from "src/spaces/facets/owner/SpaceOwner.sol";
|
|
16
|
+
|
|
17
|
+
library DeploySpaceOwnerFacet {
|
|
18
|
+
using DynamicArrayLib for DynamicArrayLib.DynamicArray;
|
|
19
|
+
|
|
20
|
+
function selectors() internal pure returns (bytes4[] memory res) {
|
|
21
|
+
DynamicArrayLib.DynamicArray memory arr = DynamicArrayLib.p().reserve(33);
|
|
22
|
+
arr.p(SpaceOwner.setFactory.selector);
|
|
23
|
+
arr.p(SpaceOwner.getFactory.selector);
|
|
24
|
+
arr.p(SpaceOwner.setDefaultUri.selector);
|
|
25
|
+
arr.p(SpaceOwner.getDefaultUri.selector);
|
|
26
|
+
arr.p(SpaceOwner.nextTokenId.selector);
|
|
27
|
+
arr.p(SpaceOwner.mintSpace.selector);
|
|
28
|
+
arr.p(SpaceOwner.getSpaceInfo.selector);
|
|
29
|
+
arr.p(SpaceOwner.getSpaceByTokenId.selector);
|
|
30
|
+
arr.p(SpaceOwner.updateSpaceInfo.selector);
|
|
31
|
+
|
|
32
|
+
// Votes
|
|
33
|
+
arr.p(IERC6372.clock.selector);
|
|
34
|
+
arr.p(IERC6372.CLOCK_MODE.selector);
|
|
35
|
+
arr.p(IVotes.getVotes.selector);
|
|
36
|
+
arr.p(IVotes.getPastVotes.selector);
|
|
37
|
+
arr.p(IVotes.getPastTotalSupply.selector);
|
|
38
|
+
arr.p(IVotes.delegates.selector);
|
|
39
|
+
arr.p(IVotes.delegate.selector);
|
|
40
|
+
arr.p(IVotes.delegateBySig.selector);
|
|
41
|
+
|
|
42
|
+
{
|
|
43
|
+
bytes4[] memory selectors_ = DeployERC721A.selectors();
|
|
44
|
+
for (uint256 i; i < selectors_.length; ++i) {
|
|
45
|
+
arr.p(selectors_[i]);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
bytes32[] memory selectors__ = arr.asBytes32Array();
|
|
49
|
+
assembly ("memory-safe") {
|
|
50
|
+
res := selectors__
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function makeCut(
|
|
55
|
+
address facetAddress,
|
|
56
|
+
IDiamond.FacetCutAction action
|
|
57
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
58
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function makeInitData(
|
|
62
|
+
string memory name,
|
|
63
|
+
string memory symbol
|
|
64
|
+
) internal pure returns (bytes memory) {
|
|
65
|
+
return abi.encodeCall(SpaceOwner.__SpaceOwner_init, (name, symbol));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function deploy() internal returns (address) {
|
|
69
|
+
return LibDeploy.deployCode("SpaceOwner.sol", "");
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
// interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/IDiamond.sol";
|
|
6
|
+
import {IStreamRegistry} from "src/river/registry/facets/stream/IStreamRegistry.sol";
|
|
7
|
+
|
|
8
|
+
// libraries
|
|
9
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
10
|
+
import {DynamicArrayLib} from "solady/utils/DynamicArrayLib.sol";
|
|
11
|
+
|
|
12
|
+
// contracts
|
|
13
|
+
|
|
14
|
+
library DeployStreamRegistry {
|
|
15
|
+
using DynamicArrayLib for DynamicArrayLib.DynamicArray;
|
|
16
|
+
|
|
17
|
+
function selectors() internal pure returns (bytes4[] memory res) {
|
|
18
|
+
DynamicArrayLib.DynamicArray memory arr = DynamicArrayLib.p().reserve(14);
|
|
19
|
+
arr.p(IStreamRegistry.allocateStream.selector);
|
|
20
|
+
arr.p(IStreamRegistry.addStream.selector);
|
|
21
|
+
arr.p(IStreamRegistry.getStream.selector);
|
|
22
|
+
arr.p(IStreamRegistry.getStreamWithGenesis.selector);
|
|
23
|
+
arr.p(IStreamRegistry.setStreamLastMiniblockBatch.selector);
|
|
24
|
+
arr.p(IStreamRegistry.placeStreamOnNode.selector);
|
|
25
|
+
arr.p(IStreamRegistry.removeStreamFromNode.selector);
|
|
26
|
+
arr.p(IStreamRegistry.setStreamReplicationFactor.selector);
|
|
27
|
+
arr.p(IStreamRegistry.getStreamCount.selector);
|
|
28
|
+
arr.p(IStreamRegistry.getPaginatedStreams.selector);
|
|
29
|
+
arr.p(IStreamRegistry.isStream.selector);
|
|
30
|
+
arr.p(IStreamRegistry.getStreamCountOnNode.selector);
|
|
31
|
+
arr.p(IStreamRegistry.getPaginatedStreamsOnNode.selector);
|
|
32
|
+
arr.p(IStreamRegistry.syncNodesOnStreams.selector);
|
|
33
|
+
|
|
34
|
+
bytes32[] memory selectors_ = arr.asBytes32Array();
|
|
35
|
+
assembly ("memory-safe") {
|
|
36
|
+
res := selectors_
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function makeCut(
|
|
41
|
+
address facetAddress,
|
|
42
|
+
IDiamond.FacetCutAction action
|
|
43
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
44
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function deploy() internal returns (address) {
|
|
48
|
+
return LibDeploy.deployCode("StreamRegistry.sol", "");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
// interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/Diamond.sol";
|
|
6
|
+
import {ISwapFacet} from "src/spaces/facets/swap/ISwapFacet.sol";
|
|
7
|
+
|
|
8
|
+
// libraries
|
|
9
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
10
|
+
|
|
11
|
+
// contracts
|
|
12
|
+
|
|
13
|
+
library DeploySwapFacet {
|
|
14
|
+
function selectors() internal pure returns (bytes4[] memory res) {
|
|
15
|
+
res = new bytes4[](5);
|
|
16
|
+
res[0] = ISwapFacet.setSwapFeeConfig.selector;
|
|
17
|
+
res[1] = ISwapFacet.executeSwap.selector;
|
|
18
|
+
res[2] = ISwapFacet.executeSwapWithPermit.selector;
|
|
19
|
+
res[3] = ISwapFacet.getSwapFees.selector;
|
|
20
|
+
res[4] = ISwapFacet.getSwapRouter.selector;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function makeCut(
|
|
24
|
+
address facetAddress,
|
|
25
|
+
IDiamond.FacetCutAction action
|
|
26
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
27
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function deploy() internal returns (address) {
|
|
31
|
+
return LibDeploy.deployCode("SwapFacet.sol", "");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
// interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/Diamond.sol";
|
|
6
|
+
import {ISwapRouter} from "../../../src/router/ISwapRouter.sol";
|
|
7
|
+
|
|
8
|
+
// libraries
|
|
9
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
10
|
+
|
|
11
|
+
// contracts
|
|
12
|
+
import {SwapRouter} from "../../../src/router/SwapRouter.sol";
|
|
13
|
+
|
|
14
|
+
library DeploySwapRouterFacet {
|
|
15
|
+
function selectors() internal pure returns (bytes4[] memory res) {
|
|
16
|
+
res = new bytes4[](5);
|
|
17
|
+
res[0] = ISwapRouter.executeSwap.selector;
|
|
18
|
+
res[1] = ISwapRouter.executeSwapWithPermit.selector;
|
|
19
|
+
res[2] = ISwapRouter.getETHInputFees.selector;
|
|
20
|
+
res[3] = ISwapRouter.getPermit2Nonce.selector;
|
|
21
|
+
res[4] = ISwapRouter.getPermit2MessageHash.selector;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function makeCut(
|
|
25
|
+
address facetAddress,
|
|
26
|
+
IDiamond.FacetCutAction action
|
|
27
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
28
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function makeInitData(address spaceFactory) internal pure returns (bytes memory) {
|
|
32
|
+
return abi.encodeCall(SwapRouter.__SwapRouter_init, spaceFactory);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function deploy() internal returns (address) {
|
|
36
|
+
return LibDeploy.deployCode("SwapRouter.sol", "");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.24;
|
|
3
|
+
|
|
4
|
+
// interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/Diamond.sol";
|
|
6
|
+
import {ITipping} from "src/spaces/facets/tipping/ITipping.sol";
|
|
7
|
+
|
|
8
|
+
// libraries
|
|
9
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
10
|
+
|
|
11
|
+
library DeployTipping {
|
|
12
|
+
function selectors() internal pure returns (bytes4[] memory res) {
|
|
13
|
+
res = new bytes4[](5);
|
|
14
|
+
res[0] = ITipping.tip.selector;
|
|
15
|
+
res[1] = ITipping.tipsByCurrencyAndTokenId.selector;
|
|
16
|
+
res[2] = ITipping.tippingCurrencies.selector;
|
|
17
|
+
res[3] = ITipping.totalTipsByCurrency.selector;
|
|
18
|
+
res[4] = ITipping.tipAmountByCurrency.selector;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function makeCut(
|
|
22
|
+
address facetAddress,
|
|
23
|
+
IDiamond.FacetCutAction action
|
|
24
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
25
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function deploy() internal returns (address) {
|
|
29
|
+
return LibDeploy.deployCode("TippingFacet.sol", "");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
//interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/Diamond.sol";
|
|
6
|
+
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
7
|
+
|
|
8
|
+
//libraries
|
|
9
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
10
|
+
|
|
11
|
+
//contracts
|
|
12
|
+
import {TokenMigrationFacet} from "src/tokens/migration/TokenMigrationFacet.sol";
|
|
13
|
+
|
|
14
|
+
library DeployTokenMigration {
|
|
15
|
+
function selectors() internal pure returns (bytes4[] memory res) {
|
|
16
|
+
res = new bytes4[](3);
|
|
17
|
+
res[0] = TokenMigrationFacet.migrate.selector;
|
|
18
|
+
res[1] = TokenMigrationFacet.emergencyWithdraw.selector;
|
|
19
|
+
res[2] = TokenMigrationFacet.tokens.selector;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function makeCut(
|
|
23
|
+
address facetAddress,
|
|
24
|
+
IDiamond.FacetCutAction action
|
|
25
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
26
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function makeInitData(address oldToken, address newToken) internal pure returns (bytes memory) {
|
|
30
|
+
return
|
|
31
|
+
abi.encodeCall(
|
|
32
|
+
TokenMigrationFacet.__TokenMigrationFacet_init,
|
|
33
|
+
(IERC20(oldToken), IERC20(newToken))
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function deploy() internal returns (address) {
|
|
38
|
+
return LibDeploy.deployCode("TokenMigrationFacet.sol", "");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
// interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/IDiamond.sol";
|
|
6
|
+
|
|
7
|
+
// libraries
|
|
8
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
9
|
+
import {DynamicArrayLib} from "solady/utils/DynamicArrayLib.sol";
|
|
10
|
+
|
|
11
|
+
// contracts
|
|
12
|
+
import {TownsPoints} from "src/airdrop/points/TownsPoints.sol";
|
|
13
|
+
|
|
14
|
+
library DeployTownsPoints {
|
|
15
|
+
using DynamicArrayLib for DynamicArrayLib.DynamicArray;
|
|
16
|
+
|
|
17
|
+
function selectors() internal pure returns (bytes4[] memory res) {
|
|
18
|
+
DynamicArrayLib.DynamicArray memory arr = DynamicArrayLib.p().reserve(11);
|
|
19
|
+
arr.p(TownsPoints.mint.selector);
|
|
20
|
+
arr.p(TownsPoints.batchMintPoints.selector);
|
|
21
|
+
arr.p(TownsPoints.getPoints.selector);
|
|
22
|
+
arr.p(TownsPoints.balanceOf.selector);
|
|
23
|
+
arr.p(TownsPoints.totalSupply.selector);
|
|
24
|
+
arr.p(TownsPoints.name.selector);
|
|
25
|
+
arr.p(TownsPoints.symbol.selector);
|
|
26
|
+
arr.p(TownsPoints.decimals.selector);
|
|
27
|
+
|
|
28
|
+
// CheckIn
|
|
29
|
+
arr.p(TownsPoints.checkIn.selector);
|
|
30
|
+
arr.p(TownsPoints.getCurrentStreak.selector);
|
|
31
|
+
arr.p(TownsPoints.getLastCheckIn.selector);
|
|
32
|
+
|
|
33
|
+
bytes32[] memory selectors_ = arr.asBytes32Array();
|
|
34
|
+
assembly ("memory-safe") {
|
|
35
|
+
res := selectors_
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function makeCut(
|
|
40
|
+
address facetAddress,
|
|
41
|
+
IDiamond.FacetCutAction action
|
|
42
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
43
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function makeInitData(address spaceFactory) internal pure returns (bytes memory) {
|
|
47
|
+
return abi.encodeCall(TownsPoints.__TownsPoints_init, (spaceFactory));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function deploy() internal returns (address) {
|
|
51
|
+
return LibDeploy.deployCode("TownsPoints.sol", "");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
// interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/Diamond.sol";
|
|
6
|
+
import {ITreasury} from "src/spaces/facets/treasury/ITreasury.sol";
|
|
7
|
+
|
|
8
|
+
// libraries
|
|
9
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
10
|
+
|
|
11
|
+
library DeployTreasury {
|
|
12
|
+
function selectors() internal pure returns (bytes4[] memory res) {
|
|
13
|
+
res = new bytes4[](4);
|
|
14
|
+
res[0] = ITreasury.withdraw.selector;
|
|
15
|
+
res[1] = ITreasury.onERC721Received.selector;
|
|
16
|
+
res[2] = ITreasury.onERC1155Received.selector;
|
|
17
|
+
res[3] = ITreasury.onERC1155BatchReceived.selector;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function makeCut(
|
|
21
|
+
address facetAddress,
|
|
22
|
+
IDiamond.FacetCutAction action
|
|
23
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
24
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function deploy() internal returns (address) {
|
|
28
|
+
return LibDeploy.deployCode("Treasury.sol", "");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
// interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/IDiamond.sol";
|
|
6
|
+
|
|
7
|
+
// libraries
|
|
8
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
9
|
+
|
|
10
|
+
// contracts
|
|
11
|
+
import {UpgradeableBeaconFacet} from "src/diamond/facets/beacon/UpgradeableBeaconFacet.sol";
|
|
12
|
+
|
|
13
|
+
library DeployUpgradeableBeacon {
|
|
14
|
+
function selectors() internal pure returns (bytes4[] memory _selectors) {
|
|
15
|
+
_selectors = new bytes4[](2);
|
|
16
|
+
_selectors[0] = UpgradeableBeaconFacet.upgradeTo.selector;
|
|
17
|
+
_selectors[1] = UpgradeableBeaconFacet.implementation.selector;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function makeCut(
|
|
21
|
+
address facetAddress,
|
|
22
|
+
IDiamond.FacetCutAction action
|
|
23
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
24
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function makeInitData(address implementation) internal pure returns (bytes memory) {
|
|
28
|
+
return abi.encodeCall(UpgradeableBeaconFacet.__UpgradeableBeacon_init, implementation);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function deploy() internal returns (address) {
|
|
32
|
+
return LibDeploy.deployCode("UpgradeableBeaconFacet.sol", "");
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
// interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/IDiamond.sol";
|
|
6
|
+
|
|
7
|
+
// libraries
|
|
8
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
9
|
+
import {DynamicArrayLib} from "solady/utils/DynamicArrayLib.sol";
|
|
10
|
+
|
|
11
|
+
// contracts
|
|
12
|
+
import {WalletLink} from "src/factory/facets/wallet-link/WalletLink.sol";
|
|
13
|
+
|
|
14
|
+
library DeployWalletLink {
|
|
15
|
+
using DynamicArrayLib for DynamicArrayLib.DynamicArray;
|
|
16
|
+
|
|
17
|
+
function selectors() internal pure returns (bytes4[] memory res) {
|
|
18
|
+
DynamicArrayLib.DynamicArray memory arr = DynamicArrayLib.p().reserve(16);
|
|
19
|
+
arr.p(WalletLink.linkCallerToRootKey.selector);
|
|
20
|
+
arr.p(WalletLink.linkWalletToRootKey.selector);
|
|
21
|
+
arr.p(WalletLink.removeLink.selector);
|
|
22
|
+
arr.p(WalletLink.getWalletsByRootKey.selector);
|
|
23
|
+
arr.p(WalletLink.getRootKeyForWallet.selector);
|
|
24
|
+
arr.p(WalletLink.checkIfLinked.selector);
|
|
25
|
+
arr.p(WalletLink.getLatestNonceForRootKey.selector);
|
|
26
|
+
arr.p(WalletLink.removeCallerLink.selector);
|
|
27
|
+
arr.p(WalletLink.setDefaultWallet.selector);
|
|
28
|
+
arr.p(WalletLink.getDefaultWallet.selector);
|
|
29
|
+
arr.p(WalletLink.getDependency.selector);
|
|
30
|
+
arr.p(WalletLink.setDependency.selector);
|
|
31
|
+
arr.p(WalletLink.getAllWalletsByRootKey.selector);
|
|
32
|
+
arr.p(WalletLink.linkNonEVMWalletToRootKey.selector);
|
|
33
|
+
arr.p(WalletLink.removeNonEVMWalletLink.selector);
|
|
34
|
+
arr.p(WalletLink.checkIfNonEVMWalletLinked.selector);
|
|
35
|
+
|
|
36
|
+
bytes32[] memory selectors_ = arr.asBytes32Array();
|
|
37
|
+
assembly ("memory-safe") {
|
|
38
|
+
res := selectors_
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function makeCut(
|
|
43
|
+
address facetAddress,
|
|
44
|
+
IDiamond.FacetCutAction action
|
|
45
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
46
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function makeInitData(address sclEip6565) internal pure returns (bytes memory) {
|
|
50
|
+
return abi.encodeCall(WalletLink.__WalletLink_init, (sclEip6565));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function deploy() internal returns (address) {
|
|
54
|
+
return LibDeploy.deployCode("WalletLink.sol", "");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
//interfaces
|
|
5
|
+
import {IDiamond} from "@towns-protocol/diamond/src/IDiamond.sol";
|
|
6
|
+
|
|
7
|
+
//libraries
|
|
8
|
+
import {LibDeploy} from "@towns-protocol/diamond/src/utils/LibDeploy.sol";
|
|
9
|
+
|
|
10
|
+
//contracts
|
|
11
|
+
import {XChain} from "src/base/registry/facets/xchain/XChain.sol";
|
|
12
|
+
|
|
13
|
+
library DeployXChain {
|
|
14
|
+
function selectors() internal pure returns (bytes4[] memory res) {
|
|
15
|
+
res = new bytes4[](3);
|
|
16
|
+
res[0] = XChain.postEntitlementCheckResult.selector;
|
|
17
|
+
res[1] = XChain.isCheckCompleted.selector;
|
|
18
|
+
res[2] = XChain.provideXChainRefund.selector;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function makeCut(
|
|
22
|
+
address facetAddress,
|
|
23
|
+
IDiamond.FacetCutAction action
|
|
24
|
+
) internal pure returns (IDiamond.FacetCut memory) {
|
|
25
|
+
return IDiamond.FacetCut(facetAddress, action, selectors());
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function makeInitData() internal pure returns (bytes memory) {
|
|
29
|
+
return abi.encodeCall(XChain.__XChain_init, ());
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function deploy() internal returns (address) {
|
|
33
|
+
return LibDeploy.deployCode("XChain.sol", "");
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
//interfaces
|
|
5
|
+
|
|
6
|
+
//libraries
|
|
7
|
+
|
|
8
|
+
//contracts
|
|
9
|
+
import {EntryPoint} from "account-abstraction/core/EntryPoint.sol";
|
|
10
|
+
import {SimpleAccountFactory} from "account-abstraction/samples/SimpleAccountFactory.sol";
|
|
11
|
+
import {Deployer} from "scripts/common/Deployer.s.sol";
|
|
12
|
+
|
|
13
|
+
contract DeployAccountFactory is Deployer {
|
|
14
|
+
function versionName() public pure override returns (string memory) {
|
|
15
|
+
return "utils/accountFactory";
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function __deploy(address deployer) internal override returns (address) {
|
|
19
|
+
if (!isAnvil()) revert("not supported");
|
|
20
|
+
|
|
21
|
+
address entrypoint = getDeployment("entrypoint");
|
|
22
|
+
|
|
23
|
+
bytes32 salt = bytes32(uint256(1));
|
|
24
|
+
bytes32 initCodeHash = hashInitCode(
|
|
25
|
+
type(SimpleAccountFactory).creationCode,
|
|
26
|
+
abi.encode(entrypoint)
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
address soonToBe = computeCreate2Address(salt, initCodeHash);
|
|
30
|
+
|
|
31
|
+
vm.broadcast(deployer);
|
|
32
|
+
SimpleAccountFactory factory = new SimpleAccountFactory{salt: salt}(
|
|
33
|
+
EntryPoint(payable(entrypoint))
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
require(address(factory) == soonToBe, "address mismatch");
|
|
37
|
+
|
|
38
|
+
return address(factory);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
//interfaces
|
|
5
|
+
import {IEntitlementChecker} from "src/base/registry/facets/checker/IEntitlementChecker.sol";
|
|
6
|
+
|
|
7
|
+
//libraries
|
|
8
|
+
|
|
9
|
+
//contracts
|
|
10
|
+
import {Deployer} from "scripts/common/Deployer.s.sol";
|
|
11
|
+
import {MockEntitlementGated} from "test/mocks/MockEntitlementGated.sol";
|
|
12
|
+
|
|
13
|
+
contract DeployEntitlementGatedExample is Deployer {
|
|
14
|
+
function versionName() public pure override returns (string memory) {
|
|
15
|
+
return "utils/entitlementGatedExample";
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function __deploy(address deployer) internal override returns (address) {
|
|
19
|
+
vm.broadcast(deployer);
|
|
20
|
+
return
|
|
21
|
+
address(new MockEntitlementGated(IEntitlementChecker(getDeployment("baseRegistry"))));
|
|
22
|
+
}
|
|
23
|
+
}
|