@towns-labs/web3 3.2.0 → 3.3.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/dist/cache/KVCacheStorage.d.ts +3 -3
- package/dist/cache/KVCacheStorage.d.ts.map +1 -1
- package/dist/cache/KVCacheStorage.js +10 -103
- package/dist/cache/KVCacheStorage.js.map +1 -1
- package/dist/cache/Keyable.d.ts +2 -3
- package/dist/cache/Keyable.d.ts.map +1 -1
- package/dist/cache/Keyable.js +1 -2
- package/dist/cache/Keyable.js.map +1 -1
- package/dist/eip-712/EIP-712.d.ts +16 -6
- package/dist/eip-712/EIP-712.d.ts.map +1 -1
- package/dist/eip-712/EIP-712.js +20 -8
- package/dist/eip-712/EIP-712.js.map +1 -1
- package/dist/index.d.ts +2 -77
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -77
- package/dist/index.js.map +1 -1
- package/dist/test-helpers/MockERC1155.d.ts +1 -1
- package/dist/test-helpers/MockERC1155.d.ts.map +1 -1
- package/dist/test-helpers/MockERC20.d.ts +1 -1
- package/dist/test-helpers/MockERC20.d.ts.map +1 -1
- package/dist/types/ContractTypes.d.ts +0 -170
- package/dist/types/ContractTypes.d.ts.map +1 -1
- package/dist/types/ContractTypes.js +0 -32
- package/dist/types/ContractTypes.js.map +1 -1
- package/dist/utils/ut.d.ts +1 -4
- package/dist/utils/ut.d.ts.map +1 -1
- package/dist/utils/ut.js +2 -14
- package/dist/utils/ut.js.map +1 -1
- package/dist/utils/web3Env.js +1 -1
- package/dist/utils/web3Env.js.map +1 -1
- package/dist/utils/xchain.d.ts +21 -0
- package/dist/utils/xchain.d.ts.map +1 -0
- package/dist/{space/entitlements/XChainConfig.js → utils/xchain.js} +45 -29
- package/dist/utils/xchain.js.map +1 -0
- package/dist/web3Types.d.ts +33 -0
- package/dist/web3Types.d.ts.map +1 -0
- package/dist/web3Types.js +89 -0
- package/dist/web3Types.js.map +1 -0
- package/package.json +3 -5
- package/dist/BaseContractShim.d.ts +0 -57
- package/dist/BaseContractShim.d.ts.map +0 -1
- package/dist/BaseContractShim.js +0 -224
- package/dist/BaseContractShim.js.map +0 -1
- package/dist/airdrop/IDropFacetShim.d.ts +0 -9
- package/dist/airdrop/IDropFacetShim.d.ts.map +0 -1
- package/dist/airdrop/IDropFacetShim.js +0 -9
- package/dist/airdrop/IDropFacetShim.js.map +0 -1
- package/dist/airdrop/IRiverPointsShim.d.ts +0 -9
- package/dist/airdrop/IRiverPointsShim.d.ts.map +0 -1
- package/dist/airdrop/IRiverPointsShim.js +0 -9
- package/dist/airdrop/IRiverPointsShim.js.map +0 -1
- package/dist/airdrop/RiverAirdropDapp.d.ts +0 -16
- package/dist/airdrop/RiverAirdropDapp.d.ts.map +0 -1
- package/dist/airdrop/RiverAirdropDapp.js +0 -30
- package/dist/airdrop/RiverAirdropDapp.js.map +0 -1
- package/dist/app-registry/AppRegistryDapp.d.ts +0 -68
- package/dist/app-registry/AppRegistryDapp.d.ts.map +0 -1
- package/dist/app-registry/AppRegistryDapp.js +0 -182
- package/dist/app-registry/AppRegistryDapp.js.map +0 -1
- package/dist/app-registry/IAppFactoryShim.d.ts +0 -9
- package/dist/app-registry/IAppFactoryShim.d.ts.map +0 -1
- package/dist/app-registry/IAppFactoryShim.js +0 -9
- package/dist/app-registry/IAppFactoryShim.js.map +0 -1
- package/dist/app-registry/IAppInstallerShim.d.ts +0 -9
- package/dist/app-registry/IAppInstallerShim.d.ts.map +0 -1
- package/dist/app-registry/IAppInstallerShim.js +0 -9
- package/dist/app-registry/IAppInstallerShim.js.map +0 -1
- package/dist/app-registry/IAppRegistryShim.d.ts +0 -9
- package/dist/app-registry/IAppRegistryShim.d.ts.map +0 -1
- package/dist/app-registry/IAppRegistryShim.js +0 -9
- package/dist/app-registry/IAppRegistryShim.js.map +0 -1
- package/dist/app-registry/IIdentityRegistryShim.d.ts +0 -9
- package/dist/app-registry/IIdentityRegistryShim.d.ts.map +0 -1
- package/dist/app-registry/IIdentityRegistryShim.js +0 -9
- package/dist/app-registry/IIdentityRegistryShim.js.map +0 -1
- package/dist/app-registry/IReputationRegistryShim.d.ts +0 -9
- package/dist/app-registry/IReputationRegistryShim.d.ts.map +0 -1
- package/dist/app-registry/IReputationRegistryShim.js +0 -9
- package/dist/app-registry/IReputationRegistryShim.js.map +0 -1
- package/dist/app-registry/SimpleAppShim.d.ts +0 -9
- package/dist/app-registry/SimpleAppShim.d.ts.map +0 -1
- package/dist/app-registry/SimpleAppShim.js +0 -9
- package/dist/app-registry/SimpleAppShim.js.map +0 -1
- package/dist/base-registry/BaseRegistry.d.ts +0 -32
- package/dist/base-registry/BaseRegistry.d.ts.map +0 -1
- package/dist/base-registry/BaseRegistry.js +0 -67
- package/dist/base-registry/BaseRegistry.js.map +0 -1
- package/dist/base-registry/IEntitlementCheckerShim.d.ts +0 -9
- package/dist/base-registry/IEntitlementCheckerShim.d.ts.map +0 -1
- package/dist/base-registry/IEntitlementCheckerShim.js +0 -9
- package/dist/base-registry/IEntitlementCheckerShim.js.map +0 -1
- package/dist/base-registry/INodeOperatorShim.d.ts +0 -9
- package/dist/base-registry/INodeOperatorShim.d.ts.map +0 -1
- package/dist/base-registry/INodeOperatorShim.js +0 -9
- package/dist/base-registry/INodeOperatorShim.js.map +0 -1
- package/dist/base-registry/ISpaceDelegationShim.d.ts +0 -9
- package/dist/base-registry/ISpaceDelegationShim.d.ts.map +0 -1
- package/dist/base-registry/ISpaceDelegationShim.js +0 -9
- package/dist/base-registry/ISpaceDelegationShim.js.map +0 -1
- package/dist/base-registry/RewardsDistributionShim.d.ts +0 -9
- package/dist/base-registry/RewardsDistributionShim.d.ts.map +0 -1
- package/dist/base-registry/RewardsDistributionShim.js +0 -9
- package/dist/base-registry/RewardsDistributionShim.js.map +0 -1
- package/dist/delegate-registry/DelegateRegistry.d.ts +0 -3
- package/dist/delegate-registry/DelegateRegistry.d.ts.map +0 -1
- package/dist/delegate-registry/DelegateRegistry.js +0 -72
- package/dist/delegate-registry/DelegateRegistry.js.map +0 -1
- package/dist/erc-721/IERC721AQueryableShim.d.ts +0 -9
- package/dist/erc-721/IERC721AQueryableShim.d.ts.map +0 -1
- package/dist/erc-721/IERC721AQueryableShim.js +0 -9
- package/dist/erc-721/IERC721AQueryableShim.js.map +0 -1
- package/dist/erc-721/IERC721AShim.d.ts +0 -9
- package/dist/erc-721/IERC721AShim.d.ts.map +0 -1
- package/dist/erc-721/IERC721AShim.js +0 -9
- package/dist/erc-721/IERC721AShim.js.map +0 -1
- package/dist/platform-requirements/PlatformRequirements.d.ts +0 -12
- package/dist/platform-requirements/PlatformRequirements.d.ts.map +0 -1
- package/dist/platform-requirements/PlatformRequirements.js +0 -18
- package/dist/platform-requirements/PlatformRequirements.js.map +0 -1
- package/dist/pricing-modules/IPricingShim.d.ts +0 -9
- package/dist/pricing-modules/IPricingShim.d.ts.map +0 -1
- package/dist/pricing-modules/IPricingShim.js +0 -9
- package/dist/pricing-modules/IPricingShim.js.map +0 -1
- package/dist/pricing-modules/PricingModules.d.ts +0 -13
- package/dist/pricing-modules/PricingModules.d.ts.map +0 -1
- package/dist/pricing-modules/PricingModules.js +0 -23
- package/dist/pricing-modules/PricingModules.js.map +0 -1
- package/dist/pricing-modules/helpers.d.ts +0 -16
- package/dist/pricing-modules/helpers.d.ts.map +0 -1
- package/dist/pricing-modules/helpers.js +0 -35
- package/dist/pricing-modules/helpers.js.map +0 -1
- package/dist/readContractRetryer.d.ts +0 -10
- package/dist/readContractRetryer.d.ts.map +0 -1
- package/dist/readContractRetryer.js +0 -68
- package/dist/readContractRetryer.js.map +0 -1
- package/dist/river-registry/IOperatorRegistryShim.d.ts +0 -9
- package/dist/river-registry/IOperatorRegistryShim.d.ts.map +0 -1
- package/dist/river-registry/IOperatorRegistryShim.js +0 -9
- package/dist/river-registry/IOperatorRegistryShim.js.map +0 -1
- package/dist/river-registry/IStreamRegistryShim.d.ts +0 -9
- package/dist/river-registry/IStreamRegistryShim.d.ts.map +0 -1
- package/dist/river-registry/IStreamRegistryShim.js +0 -9
- package/dist/river-registry/IStreamRegistryShim.js.map +0 -1
- package/dist/river-registry/RiverRegistry.d.ts +0 -18
- package/dist/river-registry/RiverRegistry.d.ts.map +0 -1
- package/dist/river-registry/RiverRegistry.js +0 -42
- package/dist/river-registry/RiverRegistry.js.map +0 -1
- package/dist/river-registry/RiverRegistryFactory.d.ts +0 -5
- package/dist/river-registry/RiverRegistryFactory.d.ts.map +0 -1
- package/dist/river-registry/RiverRegistryFactory.js +0 -5
- package/dist/river-registry/RiverRegistryFactory.js.map +0 -1
- package/dist/space/IAppAccountShim.d.ts +0 -9
- package/dist/space/IAppAccountShim.d.ts.map +0 -1
- package/dist/space/IAppAccountShim.js +0 -9
- package/dist/space/IAppAccountShim.js.map +0 -1
- package/dist/space/IBanningShim.d.ts +0 -9
- package/dist/space/IBanningShim.d.ts.map +0 -1
- package/dist/space/IBanningShim.js +0 -9
- package/dist/space/IBanningShim.js.map +0 -1
- package/dist/space/IChannelShim.d.ts +0 -9
- package/dist/space/IChannelShim.d.ts.map +0 -1
- package/dist/space/IChannelShim.js +0 -9
- package/dist/space/IChannelShim.js.map +0 -1
- package/dist/space/IEntitlementDataQueryableShim.d.ts +0 -11
- package/dist/space/IEntitlementDataQueryableShim.d.ts.map +0 -1
- package/dist/space/IEntitlementDataQueryableShim.js +0 -9
- package/dist/space/IEntitlementDataQueryableShim.js.map +0 -1
- package/dist/space/IEntitlementsShim.d.ts +0 -13
- package/dist/space/IEntitlementsShim.d.ts.map +0 -1
- package/dist/space/IEntitlementsShim.js +0 -19
- package/dist/space/IEntitlementsShim.js.map +0 -1
- package/dist/space/IMembershipMetadataShim.d.ts +0 -9
- package/dist/space/IMembershipMetadataShim.d.ts.map +0 -1
- package/dist/space/IMembershipMetadataShim.js +0 -9
- package/dist/space/IMembershipMetadataShim.js.map +0 -1
- package/dist/space/IMembershipShim.d.ts +0 -33
- package/dist/space/IMembershipShim.d.ts.map +0 -1
- package/dist/space/IMembershipShim.js +0 -139
- package/dist/space/IMembershipShim.js.map +0 -1
- package/dist/space/IMulticallShim.d.ts +0 -13
- package/dist/space/IMulticallShim.d.ts.map +0 -1
- package/dist/space/IMulticallShim.js +0 -15
- package/dist/space/IMulticallShim.js.map +0 -1
- package/dist/space/IReviewShim.d.ts +0 -64
- package/dist/space/IReviewShim.d.ts.map +0 -1
- package/dist/space/IReviewShim.js +0 -102
- package/dist/space/IReviewShim.js.map +0 -1
- package/dist/space/IRolesShim.d.ts +0 -10
- package/dist/space/IRolesShim.d.ts.map +0 -1
- package/dist/space/IRolesShim.js +0 -9
- package/dist/space/IRolesShim.js.map +0 -1
- package/dist/space/ITippingShim.d.ts +0 -39
- package/dist/space/ITippingShim.d.ts.map +0 -1
- package/dist/space/ITippingShim.js +0 -76
- package/dist/space/ITippingShim.js.map +0 -1
- package/dist/space/ITreasuryShim.d.ts +0 -9
- package/dist/space/ITreasuryShim.d.ts.map +0 -1
- package/dist/space/ITreasuryShim.js +0 -9
- package/dist/space/ITreasuryShim.js.map +0 -1
- package/dist/space/OwnableFacetShim.d.ts +0 -12
- package/dist/space/OwnableFacetShim.d.ts.map +0 -1
- package/dist/space/OwnableFacetShim.js +0 -19
- package/dist/space/OwnableFacetShim.js.map +0 -1
- package/dist/space/Space.d.ts +0 -107
- package/dist/space/Space.d.ts.map +0 -1
- package/dist/space/Space.js +0 -511
- package/dist/space/Space.js.map +0 -1
- package/dist/space/TokenPausableFacetShim.d.ts +0 -9
- package/dist/space/TokenPausableFacetShim.d.ts.map +0 -1
- package/dist/space/TokenPausableFacetShim.js +0 -9
- package/dist/space/TokenPausableFacetShim.js.map +0 -1
- package/dist/space/entitlements/ConvertersEntitlements.d.ts +0 -14
- package/dist/space/entitlements/ConvertersEntitlements.d.ts.map +0 -1
- package/dist/space/entitlements/ConvertersEntitlements.js +0 -193
- package/dist/space/entitlements/ConvertersEntitlements.js.map +0 -1
- package/dist/space/entitlements/RuleBuilder.d.ts +0 -83
- package/dist/space/entitlements/RuleBuilder.d.ts.map +0 -1
- package/dist/space/entitlements/RuleBuilder.js +0 -86
- package/dist/space/entitlements/RuleBuilder.js.map +0 -1
- package/dist/space/entitlements/RuleEntitlementShim.d.ts +0 -353
- package/dist/space/entitlements/RuleEntitlementShim.d.ts.map +0 -1
- package/dist/space/entitlements/RuleEntitlementShim.js +0 -40
- package/dist/space/entitlements/RuleEntitlementShim.js.map +0 -1
- package/dist/space/entitlements/RuleEntitlementV2Shim.d.ts +0 -353
- package/dist/space/entitlements/RuleEntitlementV2Shim.d.ts.map +0 -1
- package/dist/space/entitlements/RuleEntitlementV2Shim.js +0 -40
- package/dist/space/entitlements/RuleEntitlementV2Shim.js.map +0 -1
- package/dist/space/entitlements/UserEntitlementShim.d.ts +0 -13
- package/dist/space/entitlements/UserEntitlementShim.d.ts.map +0 -1
- package/dist/space/entitlements/UserEntitlementShim.js +0 -45
- package/dist/space/entitlements/UserEntitlementShim.js.map +0 -1
- package/dist/space/entitlements/XChainConfig.d.ts +0 -14
- package/dist/space/entitlements/XChainConfig.d.ts.map +0 -1
- package/dist/space/entitlements/XChainConfig.js.map +0 -1
- package/dist/space/entitlements/entitlement.d.ts +0 -147
- package/dist/space/entitlements/entitlement.d.ts.map +0 -1
- package/dist/space/entitlements/entitlement.js +0 -940
- package/dist/space/entitlements/entitlement.js.map +0 -1
- package/dist/space/entitlements/validateAndParseXChainConfig.d.ts +0 -6
- package/dist/space/entitlements/validateAndParseXChainConfig.d.ts.map +0 -1
- package/dist/space/entitlements/validateAndParseXChainConfig.js +0 -34
- package/dist/space/entitlements/validateAndParseXChainConfig.js.map +0 -1
- package/dist/space-dapp/SpaceDapp.d.ts +0 -223
- package/dist/space-dapp/SpaceDapp.d.ts.map +0 -1
- package/dist/space-dapp/SpaceDapp.js +0 -1260
- package/dist/space-dapp/SpaceDapp.js.map +0 -1
- package/dist/space-dapp/SpaceDappFactory.d.ts +0 -5
- package/dist/space-dapp/SpaceDappFactory.d.ts.map +0 -1
- package/dist/space-dapp/SpaceDappFactory.js +0 -8
- package/dist/space-dapp/SpaceDappFactory.js.map +0 -1
- package/dist/space-dapp/wrapTransaction.d.ts +0 -4
- package/dist/space-dapp/wrapTransaction.d.ts.map +0 -1
- package/dist/space-dapp/wrapTransaction.js +0 -99
- package/dist/space-dapp/wrapTransaction.js.map +0 -1
- package/dist/space-owner/GuardianFacetShim.d.ts +0 -9
- package/dist/space-owner/GuardianFacetShim.d.ts.map +0 -1
- package/dist/space-owner/GuardianFacetShim.js +0 -9
- package/dist/space-owner/GuardianFacetShim.js.map +0 -1
- package/dist/space-owner/SpaceOwner.d.ts +0 -48
- package/dist/space-owner/SpaceOwner.d.ts.map +0 -1
- package/dist/space-owner/SpaceOwner.js +0 -81
- package/dist/space-owner/SpaceOwner.js.map +0 -1
- package/dist/space-registrar/ICreateSpaceShim.d.ts +0 -11
- package/dist/space-registrar/ICreateSpaceShim.d.ts.map +0 -1
- package/dist/space-registrar/ICreateSpaceShim.js +0 -9
- package/dist/space-registrar/ICreateSpaceShim.js.map +0 -1
- package/dist/space-registrar/ILegacySpaceArchitectShim.d.ts +0 -10
- package/dist/space-registrar/ILegacySpaceArchitectShim.d.ts.map +0 -1
- package/dist/space-registrar/ILegacySpaceArchitectShim.js +0 -9
- package/dist/space-registrar/ILegacySpaceArchitectShim.js.map +0 -1
- package/dist/space-registrar/ISpaceArchitectShim.d.ts +0 -10
- package/dist/space-registrar/ISpaceArchitectShim.d.ts.map +0 -1
- package/dist/space-registrar/ISpaceArchitectShim.js +0 -39
- package/dist/space-registrar/ISpaceArchitectShim.js.map +0 -1
- package/dist/space-registrar/SpaceRegistrar.d.ts +0 -27
- package/dist/space-registrar/SpaceRegistrar.d.ts.map +0 -1
- package/dist/space-registrar/SpaceRegistrar.js +0 -58
- package/dist/space-registrar/SpaceRegistrar.js.map +0 -1
- package/dist/test-helpers/LocalhostWeb3Provider.d.ts +0 -19
- package/dist/test-helpers/LocalhostWeb3Provider.d.ts.map +0 -1
- package/dist/test-helpers/LocalhostWeb3Provider.js +0 -80
- package/dist/test-helpers/LocalhostWeb3Provider.js.map +0 -1
- package/dist/test-helpers/MockCrossChainEntitlement.d.ts +0 -6
- package/dist/test-helpers/MockCrossChainEntitlement.d.ts.map +0 -1
- package/dist/test-helpers/MockCrossChainEntitlement.js +0 -104
- package/dist/test-helpers/MockCrossChainEntitlement.js.map +0 -1
- package/dist/test-helpers/MockERC721AShim.d.ts +0 -9
- package/dist/test-helpers/MockERC721AShim.d.ts.map +0 -1
- package/dist/test-helpers/MockERC721AShim.js +0 -9
- package/dist/test-helpers/MockERC721AShim.js.map +0 -1
- package/dist/test-helpers/TestCrossChainEntitlement.d.ts +0 -14
- package/dist/test-helpers/TestCrossChainEntitlement.d.ts.map +0 -1
- package/dist/test-helpers/TestCrossChainEntitlement.js +0 -99
- package/dist/test-helpers/TestCrossChainEntitlement.js.map +0 -1
- package/dist/test-helpers/TestGatingERC1155.d.ts +0 -17
- package/dist/test-helpers/TestGatingERC1155.d.ts.map +0 -1
- package/dist/test-helpers/TestGatingERC1155.js +0 -100
- package/dist/test-helpers/TestGatingERC1155.js.map +0 -1
- package/dist/test-helpers/TestGatingERC20.d.ts +0 -17
- package/dist/test-helpers/TestGatingERC20.d.ts.map +0 -1
- package/dist/test-helpers/TestGatingERC20.js +0 -149
- package/dist/test-helpers/TestGatingERC20.js.map +0 -1
- package/dist/test-helpers/TestGatingNFT.d.ts +0 -17
- package/dist/test-helpers/TestGatingNFT.d.ts.map +0 -1
- package/dist/test-helpers/TestGatingNFT.js +0 -137
- package/dist/test-helpers/TestGatingNFT.js.map +0 -1
- package/dist/test-helpers/TestGatingUtils.d.ts +0 -15
- package/dist/test-helpers/TestGatingUtils.d.ts.map +0 -1
- package/dist/test-helpers/TestGatingUtils.js +0 -112
- package/dist/test-helpers/TestGatingUtils.js.map +0 -1
- package/dist/test-helpers/utils.d.ts +0 -22
- package/dist/test-helpers/utils.d.ts.map +0 -1
- package/dist/test-helpers/utils.js +0 -30
- package/dist/test-helpers/utils.js.map +0 -1
- package/dist/towns-token/TownsToken.d.ts +0 -17
- package/dist/towns-token/TownsToken.d.ts.map +0 -1
- package/dist/towns-token/TownsToken.js +0 -33
- package/dist/towns-token/TownsToken.js.map +0 -1
- package/dist/types/typechain.d.ts +0 -4
- package/dist/types/typechain.d.ts.map +0 -1
- package/dist/types/typechain.js +0 -2
- package/dist/types/typechain.js.map +0 -1
- package/dist/utils/ContractHelpers.d.ts +0 -14
- package/dist/utils/ContractHelpers.d.ts.map +0 -1
- package/dist/utils/ContractHelpers.js +0 -54
- package/dist/utils/ContractHelpers.js.map +0 -1
- package/dist/wallet-link/WalletLink.d.ts +0 -58
- package/dist/wallet-link/WalletLink.d.ts.map +0 -1
- package/dist/wallet-link/WalletLink.js +0 -226
- package/dist/wallet-link/WalletLink.js.map +0 -1
- package/dist/wallet-link/WalletLinkShim.d.ts +0 -9
- package/dist/wallet-link/WalletLinkShim.d.ts.map +0 -1
- package/dist/wallet-link/WalletLinkShim.js +0 -9
- package/dist/wallet-link/WalletLinkShim.js.map +0 -1
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { SpaceAddressFromSpaceId } from '../utils/ut';
|
|
2
|
-
import { ISpaceArchitectShim } from './ISpaceArchitectShim';
|
|
3
|
-
import { ILegacySpaceArchitectShim } from './ILegacySpaceArchitectShim';
|
|
4
|
-
import { ICreateSpaceShim } from './ICreateSpaceShim';
|
|
5
|
-
import { Space } from '../space/Space';
|
|
6
|
-
import { ethers } from 'ethers';
|
|
7
|
-
import { LRUCache } from 'lru-cache';
|
|
8
|
-
/**
|
|
9
|
-
* A class to manage the creation of space stubs
|
|
10
|
-
* converts a space network id to space address and
|
|
11
|
-
* creates a space object with relevant addresses and data
|
|
12
|
-
*/
|
|
13
|
-
export class SpaceRegistrar {
|
|
14
|
-
config;
|
|
15
|
-
provider;
|
|
16
|
-
spaceArchitect;
|
|
17
|
-
legacySpaceArchitect;
|
|
18
|
-
createSpace;
|
|
19
|
-
spaces;
|
|
20
|
-
createStorageFn;
|
|
21
|
-
constructor(config, provider, createStorageFn) {
|
|
22
|
-
this.spaces = new LRUCache({
|
|
23
|
-
max: 100,
|
|
24
|
-
});
|
|
25
|
-
this.config = config;
|
|
26
|
-
this.provider = provider;
|
|
27
|
-
this.spaceArchitect = new ISpaceArchitectShim(config.addresses.spaceFactory, provider);
|
|
28
|
-
this.legacySpaceArchitect = new ILegacySpaceArchitectShim(config.addresses.spaceFactory, provider);
|
|
29
|
-
this.createSpace = new ICreateSpaceShim(config.addresses.spaceFactory, provider);
|
|
30
|
-
this.createStorageFn = createStorageFn;
|
|
31
|
-
}
|
|
32
|
-
get CreateSpace() {
|
|
33
|
-
return this.createSpace;
|
|
34
|
-
}
|
|
35
|
-
get SpaceArchitect() {
|
|
36
|
-
return this.spaceArchitect;
|
|
37
|
-
}
|
|
38
|
-
get LegacySpaceArchitect() {
|
|
39
|
-
return this.legacySpaceArchitect;
|
|
40
|
-
}
|
|
41
|
-
getSpace(spaceId) {
|
|
42
|
-
// aellis 10/2024 we don't really need to cache spaces, but they instantiate a lot of objects
|
|
43
|
-
// for the contracts and it's worth not wasting memory if we need to access the same space multiple times
|
|
44
|
-
// this code is also used on the server so we don't want to cache spaces for too long
|
|
45
|
-
const space = this.spaces.get(spaceId);
|
|
46
|
-
if (!space) {
|
|
47
|
-
const spaceAddress = SpaceAddressFromSpaceId(spaceId);
|
|
48
|
-
if (!spaceAddress || spaceAddress === ethers.constants.AddressZero) {
|
|
49
|
-
return undefined;
|
|
50
|
-
}
|
|
51
|
-
const space = new Space(spaceAddress, spaceId, this.config, this.provider, this.createStorageFn);
|
|
52
|
-
this.spaces.set(spaceId, space);
|
|
53
|
-
return space;
|
|
54
|
-
}
|
|
55
|
-
return space;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=SpaceRegistrar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpaceRegistrar.js","sourceRoot":"","sources":["../../src/space-registrar/SpaceRegistrar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGpC;;;;GAIG;AACH,MAAM,OAAO,cAAc;IACP,MAAM,CAAiB;IACtB,QAAQ,CAA2B;IACnC,cAAc,CAAqB;IACnC,oBAAoB,CAA2B;IAC/C,WAAW,CAAkB;IAC7B,MAAM,CAAyB;IAC/B,eAAe,CAAsC;IAEtE,YACI,MAAuB,EACvB,QAAmC,EACnC,eAAqD;QAErD,IAAI,CAAC,MAAM,GAAG,IAAI,QAAQ,CAAgB;YACtC,GAAG,EAAE,GAAG;SACX,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,cAAc,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QACtF,IAAI,CAAC,oBAAoB,GAAG,IAAI,yBAAyB,CACrD,MAAM,CAAC,SAAS,CAAC,YAAY,EAC7B,QAAQ,CACX,CAAA;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAChF,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IAC1C,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,WAAW,CAAA;IAC3B,CAAC;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,cAAc,CAAA;IAC9B,CAAC;IAED,IAAW,oBAAoB;QAC3B,OAAO,IAAI,CAAC,oBAAoB,CAAA;IACpC,CAAC;IAEM,QAAQ,CAAC,OAAe;QAC3B,6FAA6F;QAC7F,yGAAyG;QACzG,qFAAqF;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,YAAY,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;YACrD,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;gBACjE,OAAO,SAAS,CAAA;YACpB,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,KAAK,CACnB,YAAY,EACZ,OAAO,EACP,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,eAAe,CACvB,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC/B,OAAO,KAAK,CAAA;QAChB,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;CACJ"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ethers } from 'ethers';
|
|
2
|
-
import { BaseChainConfig } from '../utils/web3Env';
|
|
3
|
-
import { Address } from '../types/ContractTypes';
|
|
4
|
-
export declare class LocalhostWeb3Provider extends ethers.providers.JsonRpcProvider {
|
|
5
|
-
wallet: ethers.Wallet;
|
|
6
|
-
get isMetaMask(): boolean;
|
|
7
|
-
get signer(): ethers.Signer;
|
|
8
|
-
constructor(rpcUrl: string, wallet?: ethers.Wallet);
|
|
9
|
-
fundWallet(walletToFund?: ethers.Wallet | string): Promise<boolean>;
|
|
10
|
-
mintMockNFT(config: BaseChainConfig): Promise<ethers.ContractTransaction>;
|
|
11
|
-
request({ method, params, }: {
|
|
12
|
-
method: string;
|
|
13
|
-
params?: unknown[];
|
|
14
|
-
}): Promise<any>;
|
|
15
|
-
}
|
|
16
|
-
export declare function mintMockNFT(provider: ethers.providers.Provider, config: BaseChainConfig, fromWallet: ethers.Wallet, toAddress: string): Promise<ethers.ContractTransaction>;
|
|
17
|
-
export declare function balanceOfMockNFT(config: BaseChainConfig, provider: ethers.providers.Provider, address: Address): Promise<ethers.BigNumber>;
|
|
18
|
-
export declare function getTestGatingNftAddress(_chainId: number): Promise<Address>;
|
|
19
|
-
//# sourceMappingURL=LocalhostWeb3Provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LocalhostWeb3Provider.d.ts","sourceRoot":"","sources":["../../src/test-helpers/LocalhostWeb3Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAMhD,qBAAa,qBAAsB,SAAQ,MAAM,CAAC,SAAS,CAAC,eAAe;IAEhE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAA;IAE5B,IAAW,UAAU,YAEpB;IAED,IAAW,MAAM,IAAI,MAAM,CAAC,MAAM,CAEjC;gBAEW,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM;IAMrC,UAAU,CAAC,YAAY,GAAE,MAAM,CAAC,MAAM,GAAG,MAAoB;IAY7D,WAAW,CAAC,MAAM,EAAE,eAAe;IAInC,OAAO,CAAC,EACjB,MAAM,EACN,MAAwB,GAC3B,EAAE;QACC,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KACrB;CAqBJ;AAED,wBAAgB,WAAW,CACvB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EACzB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAOrC;AAED,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,OAAO,EAAE,OAAO,6BAQnB;AAED,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhF"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { ethers } from 'ethers';
|
|
2
|
-
import { dlogger } from '@towns-labs/utils';
|
|
3
|
-
import { MockERC721AShim } from './MockERC721AShim';
|
|
4
|
-
import { getTestGatingNFTContractAddress } from './TestGatingNFT';
|
|
5
|
-
const logger = dlogger('csb:LocalhostWeb3Provider');
|
|
6
|
-
// Behaves like a metamask provider
|
|
7
|
-
export class LocalhostWeb3Provider extends ethers.providers.JsonRpcProvider {
|
|
8
|
-
// note to self, the wallet contains a reference to a provider, which is a circular ref back this class
|
|
9
|
-
wallet;
|
|
10
|
-
get isMetaMask() {
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
get signer() {
|
|
14
|
-
return this.wallet;
|
|
15
|
-
}
|
|
16
|
-
constructor(rpcUrl, wallet) {
|
|
17
|
-
super(rpcUrl);
|
|
18
|
-
this.wallet = (wallet ?? ethers.Wallet.createRandom()).connect(this);
|
|
19
|
-
logger.log('initializing web3 provider with wallet', this.wallet.address);
|
|
20
|
-
}
|
|
21
|
-
async fundWallet(walletToFund = this.wallet) {
|
|
22
|
-
const amountInWei = ethers.BigNumber.from(100).pow(18).toHexString();
|
|
23
|
-
const address = typeof walletToFund === 'string' ? walletToFund : walletToFund.address;
|
|
24
|
-
const result = this.send('anvil_setBalance', [address, amountInWei]);
|
|
25
|
-
logger.log('fundWallet tx', result, amountInWei, address);
|
|
26
|
-
const receipt = await result;
|
|
27
|
-
logger.log('fundWallet receipt', receipt);
|
|
28
|
-
const balance = await this.getBalance(address);
|
|
29
|
-
logger.log('fundWallet balance', balance.toString());
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
async mintMockNFT(config) {
|
|
33
|
-
return mintMockNFT(this, config, this.wallet, this.wallet.address);
|
|
34
|
-
}
|
|
35
|
-
async request({ method, params = [], }) {
|
|
36
|
-
if (method === 'eth_requestAccounts') {
|
|
37
|
-
return [this.wallet.address];
|
|
38
|
-
}
|
|
39
|
-
else if (method === 'eth_accounts') {
|
|
40
|
-
return [this.wallet.address];
|
|
41
|
-
}
|
|
42
|
-
else if (method === 'personal_sign') {
|
|
43
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
44
|
-
const [message, address] = params;
|
|
45
|
-
if (ethers.utils.isHexString(message)) {
|
|
46
|
-
// the json rpc provider will hexify the message, so we need to unhexify it
|
|
47
|
-
const m1 = ethers.utils.arrayify(message);
|
|
48
|
-
const m2 = ethers.utils.toUtf8String(m1);
|
|
49
|
-
return this.wallet.signMessage(m2);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
return this.wallet.signMessage(message);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return
|
|
57
|
-
return this.send(method, params);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
export function mintMockNFT(provider, config, fromWallet, toAddress) {
|
|
62
|
-
if (!config.addresses.utils.mockNFT) {
|
|
63
|
-
throw new Error('No mock ERC721 address provided');
|
|
64
|
-
}
|
|
65
|
-
const mockNFTAddress = config.addresses.utils.mockNFT;
|
|
66
|
-
const mockNFT = new MockERC721AShim(mockNFTAddress, provider);
|
|
67
|
-
return mockNFT.write(fromWallet).mintTo(toAddress);
|
|
68
|
-
}
|
|
69
|
-
export function balanceOfMockNFT(config, provider, address) {
|
|
70
|
-
if (!config.addresses.utils.mockNFT) {
|
|
71
|
-
throw new Error('No mock ERC721 address provided');
|
|
72
|
-
}
|
|
73
|
-
const mockNFTAddress = config.addresses.utils.mockNFT;
|
|
74
|
-
const mockNFT = new MockERC721AShim(mockNFTAddress, provider);
|
|
75
|
-
return mockNFT.read.balanceOf(address);
|
|
76
|
-
}
|
|
77
|
-
export async function getTestGatingNftAddress(_chainId) {
|
|
78
|
-
return await getTestGatingNFTContractAddress();
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=LocalhostWeb3Provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LocalhostWeb3Provider.js","sourceRoot":"","sources":["../../src/test-helpers/LocalhostWeb3Provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MockCrossChainEntitlement.d.ts","sourceRoot":"","sources":["../../src/test-helpers/MockCrossChainEntitlement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAyGlC,eAAO,MAAM,yBAAyB;;;CAGrC,CAAA"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
const abi = [
|
|
2
|
-
{
|
|
3
|
-
type: 'function',
|
|
4
|
-
name: 'isEntitled',
|
|
5
|
-
inputs: [
|
|
6
|
-
{
|
|
7
|
-
name: 'users',
|
|
8
|
-
type: 'address[]',
|
|
9
|
-
internalType: 'address[]',
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
name: 'data',
|
|
13
|
-
type: 'bytes',
|
|
14
|
-
internalType: 'bytes',
|
|
15
|
-
},
|
|
16
|
-
],
|
|
17
|
-
outputs: [
|
|
18
|
-
{
|
|
19
|
-
name: '',
|
|
20
|
-
type: 'bool',
|
|
21
|
-
internalType: 'bool',
|
|
22
|
-
},
|
|
23
|
-
],
|
|
24
|
-
stateMutability: 'view',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
type: 'function',
|
|
28
|
-
name: 'isEntitledByUserAndId',
|
|
29
|
-
inputs: [
|
|
30
|
-
{
|
|
31
|
-
name: '',
|
|
32
|
-
type: 'bytes32',
|
|
33
|
-
internalType: 'bytes32',
|
|
34
|
-
},
|
|
35
|
-
],
|
|
36
|
-
outputs: [
|
|
37
|
-
{
|
|
38
|
-
name: '',
|
|
39
|
-
type: 'bool',
|
|
40
|
-
internalType: 'bool',
|
|
41
|
-
},
|
|
42
|
-
],
|
|
43
|
-
stateMutability: 'view',
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
type: 'function',
|
|
47
|
-
name: 'parameters',
|
|
48
|
-
inputs: [],
|
|
49
|
-
outputs: [
|
|
50
|
-
{
|
|
51
|
-
name: '',
|
|
52
|
-
type: 'tuple[]',
|
|
53
|
-
internalType: 'struct ICrossChainEntitlement.Parameter[]',
|
|
54
|
-
components: [
|
|
55
|
-
{
|
|
56
|
-
name: 'name',
|
|
57
|
-
type: 'string',
|
|
58
|
-
internalType: 'string',
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
name: 'primitive',
|
|
62
|
-
type: 'string',
|
|
63
|
-
internalType: 'string',
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
name: 'description',
|
|
67
|
-
type: 'string',
|
|
68
|
-
internalType: 'string',
|
|
69
|
-
},
|
|
70
|
-
],
|
|
71
|
-
},
|
|
72
|
-
],
|
|
73
|
-
stateMutability: 'pure',
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
type: 'function',
|
|
77
|
-
name: 'setIsEntitled',
|
|
78
|
-
inputs: [
|
|
79
|
-
{
|
|
80
|
-
name: 'id',
|
|
81
|
-
type: 'uint256',
|
|
82
|
-
internalType: 'uint256',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'user',
|
|
86
|
-
type: 'address',
|
|
87
|
-
internalType: 'address',
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
name: 'entitled',
|
|
91
|
-
type: 'bool',
|
|
92
|
-
internalType: 'bool',
|
|
93
|
-
},
|
|
94
|
-
],
|
|
95
|
-
outputs: [],
|
|
96
|
-
stateMutability: 'nonpayable',
|
|
97
|
-
},
|
|
98
|
-
];
|
|
99
|
-
const bytecode = '0x608060405234801561001057600080fd5b50610531806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806316089f65146100515780637addd58714610079578063890357301461009c578063b48900e8146100b1575b600080fd5b61006461005f3660046102af565b610118565b60405190151581526020015b60405180910390f35b610064610087366004610374565b60006020819052908152604090205460ff1681565b6100a46101cc565b60405161007091906103d3565b6101166100bf366004610492565b604080516001600160a01b038416602082015290810184905260009060600160408051808303601f1901815291815281516020928301206000908152918290529020805460ff191692151592909217909155505050565b005b60008061012783850185610374565b905060005b858110156101bd576000878783818110610148576101486104d7565b905060200201602081019061015d91906104ed565b604080516001600160a01b039092166020830152810184905260600160408051601f19818403018152918152815160209283012060008181529283905291205490915060ff16156101b457600193505050506101c4565b5060010161012c565b5060009150505b949350505050565b60408051600180825281830190925260609160009190816020015b61020b60405180606001604052806060815260200160608152602001606081525090565b8152602001906001900390816101e75790505090506040518060600160405280604051806040016040528060028152602001611a5960f21b8152508152602001604051806040016040528060078152602001663ab4b73a191a9b60c91b8152508152602001604051806060016040528060218152602001610510602191398152508160008151811061029f5761029f6104d7565b6020908102919091010152919050565b600080600080604085870312156102c557600080fd5b843567ffffffffffffffff808211156102dd57600080fd5b818701915087601f8301126102f157600080fd5b81358181111561030057600080fd5b8860208260051b850101111561031557600080fd5b60209283019650945090860135908082111561033057600080fd5b818701915087601f83011261034457600080fd5b81358181111561035357600080fd5b88602082850101111561036557600080fd5b95989497505060200194505050565b60006020828403121561038657600080fd5b5035919050565b6000815180845260005b818110156103b357602081850181015186830182015201610397565b506000602082860101526020601f19601f83011685010191505092915050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561046857603f198984030185528151606081518186526104228287018261038d565b915050888201518582038a87015261043a828261038d565b91505087820151915084810388860152610454818361038d565b9689019694505050908601906001016103fc565b509098975050505050505050565b80356001600160a01b038116811461048d57600080fd5b919050565b6000806000606084860312156104a757600080fd5b833592506104b760208501610476565b9150604084013580151581146104cc57600080fd5b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156104ff57600080fd5b61050882610476565b939250505056fe53696d706c6520706172616d65746572207479706520666f722074657374696e67';
|
|
100
|
-
export const MockCrossChainEntitlement = {
|
|
101
|
-
abi,
|
|
102
|
-
bytecode,
|
|
103
|
-
};
|
|
104
|
-
//# sourceMappingURL=MockCrossChainEntitlement.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MockCrossChainEntitlement.js","sourceRoot":"","sources":["../../src/test-helpers/MockCrossChainEntitlement.ts"],"names":[],"mappings":"AAGA,MAAM,GAAG,GAAQ;IACb;QACI,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,WAAW;gBACjB,YAAY,EAAE,WAAW;aAC5B;YACD;gBACI,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,OAAO;aACxB;SACJ;QACD,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,MAAM;aACvB;SACJ;QACD,eAAe,EAAE,MAAM;KAC1B;IACD;QACI,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aAC1B;SACJ;QACD,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,MAAM;aACvB;SACJ;QACD,eAAe,EAAE,MAAM;KAC1B;IACD;QACI,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,2CAA2C;gBACzD,UAAU,EAAE;oBACR;wBACI,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,QAAQ;wBACd,YAAY,EAAE,QAAQ;qBACzB;oBACD;wBACI,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,QAAQ;wBACd,YAAY,EAAE,QAAQ;qBACzB;oBACD;wBACI,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,QAAQ;wBACd,YAAY,EAAE,QAAQ;qBACzB;iBACJ;aACJ;SACJ;QACD,eAAe,EAAE,MAAM;KAC1B;IACD;QACI,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aAC1B;YACD;gBACI,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aAC1B;YACD;gBACI,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,MAAM;aACvB;SACJ;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAChC;CACK,CAAA;AAEV,MAAM,QAAQ,GACV,sqFAAsqF,CAAA;AAE1qF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACrC,GAAG;IACH,QAAQ;CACX,CAAA"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ethers } from 'ethers';
|
|
2
|
-
import { BaseContractShim } from '../BaseContractShim';
|
|
3
|
-
import { MockERC721A__factory } from '@towns-labs/generated/dev/typings/factories/MockERC721A__factory';
|
|
4
|
-
declare const connect: typeof MockERC721A__factory.connect;
|
|
5
|
-
export declare class MockERC721AShim extends BaseContractShim<typeof connect> {
|
|
6
|
-
constructor(address: string, provider: ethers.providers.Provider);
|
|
7
|
-
}
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=MockERC721AShim.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MockERC721AShim.d.ts","sourceRoot":"","sources":["../../src/test-helpers/MockERC721AShim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kEAAkE,CAAA;AAEvG,QAAA,MAAa,OAAO,qCAAyB,CAAA;AAE7C,qBAAa,eAAgB,SAAQ,gBAAgB,CAAC,OAAO,OAAO,CAAC;gBACrD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;CAGnE"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { BaseContractShim } from '../BaseContractShim';
|
|
2
|
-
import { MockERC721A__factory } from '@towns-labs/generated/dev/typings/factories/MockERC721A__factory';
|
|
3
|
-
const { abi, connect } = MockERC721A__factory;
|
|
4
|
-
export class MockERC721AShim extends BaseContractShim {
|
|
5
|
-
constructor(address, provider) {
|
|
6
|
-
super(address, provider, connect, abi);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=MockERC721AShim.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MockERC721AShim.js","sourceRoot":"","sources":["../../src/test-helpers/MockERC721AShim.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kEAAkE,CAAA;AAEvG,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAA;AAE7C,MAAM,OAAO,eAAgB,SAAQ,gBAAgC;IACjE,YAAY,OAAe,EAAE,QAAmC;QAC5D,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;IAC1C,CAAC;CACJ"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Hex } from 'viem';
|
|
2
|
-
import { Address } from '../types/ContractTypes';
|
|
3
|
-
declare function getContractAddress(tokenName: string): Promise<Address>;
|
|
4
|
-
declare function setIsEntitled(contractName: string, userAddress: Address, id: bigint, entitled: boolean): Promise<void>;
|
|
5
|
-
declare function isEntitled(customEntitlementContractName: string, userAddresses: Address[], id: bigint): Promise<boolean>;
|
|
6
|
-
declare function encodeIdParameter(id: bigint): Hex;
|
|
7
|
-
export declare const TestCrossChainEntitlement: {
|
|
8
|
-
getContractAddress: typeof getContractAddress;
|
|
9
|
-
encodeIdParameter: typeof encodeIdParameter;
|
|
10
|
-
setIsEntitled: typeof setIsEntitled;
|
|
11
|
-
isEntitled: typeof isEntitled;
|
|
12
|
-
};
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=TestCrossChainEntitlement.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestCrossChainEntitlement.d.ts","sourceRoot":"","sources":["../../src/test-helpers/TestCrossChainEntitlement.ts"],"names":[],"mappings":"AAAA,OAAO,EAOH,GAAG,EACN,MAAM,MAAM,CAAA;AAKb,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAShD,iBAAe,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBrE;AAED,iBAAe,aAAa,CACxB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,OAAO,EACpB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,OAAO,GAClB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED,iBAAe,UAAU,CACrB,6BAA6B,EAAE,MAAM,EACrC,aAAa,EAAE,OAAO,EAAE,EACxB,EAAE,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAaD,iBAAS,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAK1C;AAED,eAAO,MAAM,yBAAyB;;;;;CAKrC,CAAA"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { createTestClient, http, publicActions, walletActions, parseEther, encodeAbiParameters, } from 'viem';
|
|
2
|
-
import { foundry } from 'viem/chains';
|
|
3
|
-
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
4
|
-
import { MockCrossChainEntitlement } from './MockCrossChainEntitlement';
|
|
5
|
-
import { deployContract, Mutex } from './TestGatingUtils';
|
|
6
|
-
import { dlogger } from '@towns-labs/utils';
|
|
7
|
-
const logger = dlogger('csb:TestGatingCrossChainEntitlement');
|
|
8
|
-
const mockCrossChainEntitlementContracts = new Map();
|
|
9
|
-
const mockCrossChainEntitlementsMutex = new Mutex();
|
|
10
|
-
async function getContractAddress(tokenName) {
|
|
11
|
-
try {
|
|
12
|
-
await mockCrossChainEntitlementsMutex.lock();
|
|
13
|
-
if (!mockCrossChainEntitlementContracts.has(tokenName)) {
|
|
14
|
-
const contractAddress = await deployContract(tokenName, MockCrossChainEntitlement.abi, MockCrossChainEntitlement.bytecode);
|
|
15
|
-
mockCrossChainEntitlementContracts.set(tokenName, contractAddress);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
catch (e) {
|
|
19
|
-
logger.error('Failed to deploy contract', e);
|
|
20
|
-
throw new Error(
|
|
21
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
22
|
-
`Failed to get contract address: ${tokenName}`);
|
|
23
|
-
}
|
|
24
|
-
finally {
|
|
25
|
-
mockCrossChainEntitlementsMutex.unlock();
|
|
26
|
-
}
|
|
27
|
-
return mockCrossChainEntitlementContracts.get(tokenName);
|
|
28
|
-
}
|
|
29
|
-
async function setIsEntitled(contractName, userAddress, id, entitled) {
|
|
30
|
-
const privateKey = generatePrivateKey();
|
|
31
|
-
const throwawayAccount = privateKeyToAccount(privateKey);
|
|
32
|
-
const client = createTestClient({
|
|
33
|
-
chain: foundry,
|
|
34
|
-
mode: 'anvil',
|
|
35
|
-
transport: http(),
|
|
36
|
-
account: throwawayAccount,
|
|
37
|
-
})
|
|
38
|
-
.extend(publicActions)
|
|
39
|
-
.extend(walletActions);
|
|
40
|
-
await client.setBalance({
|
|
41
|
-
address: throwawayAccount.address,
|
|
42
|
-
value: parseEther('1'),
|
|
43
|
-
});
|
|
44
|
-
const contractAddress = await getContractAddress(contractName);
|
|
45
|
-
logger.log(`Setting cross chain entitlement to ${entitled} for user ${userAddress} ` +
|
|
46
|
-
`with id ${id} on contract ${contractName} at address ${contractAddress}`);
|
|
47
|
-
const txnReceipt = await client.writeContract({
|
|
48
|
-
address: contractAddress,
|
|
49
|
-
abi: MockCrossChainEntitlement.abi,
|
|
50
|
-
functionName: 'setIsEntitled',
|
|
51
|
-
args: [id, userAddress, entitled],
|
|
52
|
-
account: throwawayAccount,
|
|
53
|
-
});
|
|
54
|
-
await client.waitForTransactionReceipt({ hash: txnReceipt });
|
|
55
|
-
}
|
|
56
|
-
async function isEntitled(customEntitlementContractName, userAddresses, id) {
|
|
57
|
-
const contractAddress = await getContractAddress(customEntitlementContractName);
|
|
58
|
-
const privateKey = generatePrivateKey();
|
|
59
|
-
const throwawayAccount = privateKeyToAccount(privateKey);
|
|
60
|
-
const client = createTestClient({
|
|
61
|
-
chain: foundry,
|
|
62
|
-
mode: 'anvil',
|
|
63
|
-
transport: http(),
|
|
64
|
-
account: throwawayAccount,
|
|
65
|
-
})
|
|
66
|
-
.extend(publicActions)
|
|
67
|
-
.extend(walletActions);
|
|
68
|
-
const encodedId = encodeIdParameter(id);
|
|
69
|
-
const result = await client.readContract({
|
|
70
|
-
address: contractAddress,
|
|
71
|
-
abi: MockCrossChainEntitlement.abi,
|
|
72
|
-
functionName: 'isEntitled',
|
|
73
|
-
args: [userAddresses, encodedId],
|
|
74
|
-
});
|
|
75
|
-
return result;
|
|
76
|
-
}
|
|
77
|
-
const mockCrossChainEntitlementParamsAbi = {
|
|
78
|
-
components: [
|
|
79
|
-
{
|
|
80
|
-
name: 'id',
|
|
81
|
-
type: 'uint256',
|
|
82
|
-
},
|
|
83
|
-
],
|
|
84
|
-
name: 'params',
|
|
85
|
-
type: 'tuple',
|
|
86
|
-
};
|
|
87
|
-
function encodeIdParameter(id) {
|
|
88
|
-
if (id < 0n) {
|
|
89
|
-
throw new Error(`Invalid id ${id}: must be nonnegative`);
|
|
90
|
-
}
|
|
91
|
-
return encodeAbiParameters([mockCrossChainEntitlementParamsAbi], [{ id }]);
|
|
92
|
-
}
|
|
93
|
-
export const TestCrossChainEntitlement = {
|
|
94
|
-
getContractAddress,
|
|
95
|
-
encodeIdParameter,
|
|
96
|
-
setIsEntitled,
|
|
97
|
-
isEntitled,
|
|
98
|
-
};
|
|
99
|
-
//# sourceMappingURL=TestCrossChainEntitlement.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestCrossChainEntitlement.js","sourceRoot":"","sources":["../../src/test-helpers/TestCrossChainEntitlement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Address } from '../types/ContractTypes';
|
|
2
|
-
export declare enum TestTokenId {
|
|
3
|
-
Gold = 1,
|
|
4
|
-
Silver = 2,
|
|
5
|
-
Bronze = 3
|
|
6
|
-
}
|
|
7
|
-
declare function getContractAddress(tokenName: string): Promise<Address>;
|
|
8
|
-
declare function publicMint(tokenName: string, toAddress: Address, tokenId: TestTokenId): Promise<void>;
|
|
9
|
-
declare function balanceOf(tokenName: string, address: Address, tokenId: TestTokenId): Promise<number>;
|
|
10
|
-
export declare const TestERC1155: {
|
|
11
|
-
TestTokenId: typeof TestTokenId;
|
|
12
|
-
getContractAddress: typeof getContractAddress;
|
|
13
|
-
balanceOf: typeof balanceOf;
|
|
14
|
-
publicMint: typeof publicMint;
|
|
15
|
-
};
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=TestGatingERC1155.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestGatingERC1155.d.ts","sourceRoot":"","sources":["../../src/test-helpers/TestGatingERC1155.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAQhD,oBAAY,WAAW;IACnB,IAAI,IAAI;IACR,MAAM,IAAI;IACV,MAAM,IAAI;CACb;AAED,iBAAe,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBrE;AAED,iBAAe,UAAU,CACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED,iBAAe,SAAS,CACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,MAAM,CAAC,CAoBjB;AAED,eAAO,MAAM,WAAW;;;;;CAKvB,CAAA"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { createTestClient, http, publicActions, walletActions, parseEther } from 'viem';
|
|
2
|
-
import { foundry } from 'viem/chains';
|
|
3
|
-
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
4
|
-
import { MockERC1155 } from './MockERC1155';
|
|
5
|
-
import { deployContract, Mutex } from './TestGatingUtils';
|
|
6
|
-
import { dlogger } from '@towns-labs/utils';
|
|
7
|
-
const logger = dlogger('csb:TestGatingERC1155');
|
|
8
|
-
const erc1155Contracts = new Map();
|
|
9
|
-
const erc1155ContractsMutex = new Mutex();
|
|
10
|
-
export var TestTokenId;
|
|
11
|
-
(function (TestTokenId) {
|
|
12
|
-
TestTokenId[TestTokenId["Gold"] = 1] = "Gold";
|
|
13
|
-
TestTokenId[TestTokenId["Silver"] = 2] = "Silver";
|
|
14
|
-
TestTokenId[TestTokenId["Bronze"] = 3] = "Bronze";
|
|
15
|
-
})(TestTokenId || (TestTokenId = {}));
|
|
16
|
-
async function getContractAddress(tokenName) {
|
|
17
|
-
try {
|
|
18
|
-
await erc1155ContractsMutex.lock();
|
|
19
|
-
if (!erc1155Contracts.has(tokenName)) {
|
|
20
|
-
const contractAddress = await deployContract(tokenName, MockERC1155.abi, MockERC1155.bytecode);
|
|
21
|
-
erc1155Contracts.set(tokenName, contractAddress);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
catch (e) {
|
|
25
|
-
logger.error('Failed to deploy contract', e);
|
|
26
|
-
throw new Error(
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
28
|
-
`Failed to get contract address: ${tokenName}`);
|
|
29
|
-
}
|
|
30
|
-
finally {
|
|
31
|
-
erc1155ContractsMutex.unlock();
|
|
32
|
-
}
|
|
33
|
-
return erc1155Contracts.get(tokenName);
|
|
34
|
-
}
|
|
35
|
-
async function publicMint(tokenName, toAddress, tokenId) {
|
|
36
|
-
const privateKey = generatePrivateKey();
|
|
37
|
-
const throwawayAccount = privateKeyToAccount(privateKey);
|
|
38
|
-
const client = createTestClient({
|
|
39
|
-
chain: foundry,
|
|
40
|
-
mode: 'anvil',
|
|
41
|
-
transport: http(),
|
|
42
|
-
account: throwawayAccount,
|
|
43
|
-
})
|
|
44
|
-
.extend(publicActions)
|
|
45
|
-
.extend(walletActions);
|
|
46
|
-
await client.setBalance({
|
|
47
|
-
address: throwawayAccount.address,
|
|
48
|
-
value: parseEther('1'),
|
|
49
|
-
});
|
|
50
|
-
const contractAddress = await getContractAddress(tokenName);
|
|
51
|
-
let functionName;
|
|
52
|
-
switch (tokenId) {
|
|
53
|
-
case TestTokenId.Gold:
|
|
54
|
-
functionName = 'mintGold';
|
|
55
|
-
break;
|
|
56
|
-
case TestTokenId.Silver:
|
|
57
|
-
functionName = 'mintSilver';
|
|
58
|
-
break;
|
|
59
|
-
case TestTokenId.Bronze:
|
|
60
|
-
functionName = 'mintBronze';
|
|
61
|
-
break;
|
|
62
|
-
default:
|
|
63
|
-
throw new Error(`Invalid token id: ${tokenId}`);
|
|
64
|
-
}
|
|
65
|
-
const txn = await client.writeContract({
|
|
66
|
-
address: contractAddress,
|
|
67
|
-
abi: MockERC1155.abi,
|
|
68
|
-
functionName,
|
|
69
|
-
args: [toAddress],
|
|
70
|
-
account: throwawayAccount,
|
|
71
|
-
});
|
|
72
|
-
await client.waitForTransactionReceipt({ hash: txn });
|
|
73
|
-
}
|
|
74
|
-
async function balanceOf(tokenName, address, tokenId) {
|
|
75
|
-
const contractAddress = await getContractAddress(tokenName);
|
|
76
|
-
const privateKey = generatePrivateKey();
|
|
77
|
-
const throwawayAccount = privateKeyToAccount(privateKey);
|
|
78
|
-
const client = createTestClient({
|
|
79
|
-
chain: foundry,
|
|
80
|
-
mode: 'anvil',
|
|
81
|
-
transport: http(),
|
|
82
|
-
account: throwawayAccount,
|
|
83
|
-
})
|
|
84
|
-
.extend(publicActions)
|
|
85
|
-
.extend(walletActions);
|
|
86
|
-
const balance = await client.readContract({
|
|
87
|
-
address: contractAddress,
|
|
88
|
-
abi: MockERC1155.abi,
|
|
89
|
-
functionName: 'balanceOf',
|
|
90
|
-
args: [address, tokenId],
|
|
91
|
-
});
|
|
92
|
-
return Number(balance);
|
|
93
|
-
}
|
|
94
|
-
export const TestERC1155 = {
|
|
95
|
-
TestTokenId,
|
|
96
|
-
getContractAddress,
|
|
97
|
-
balanceOf,
|
|
98
|
-
publicMint,
|
|
99
|
-
};
|
|
100
|
-
//# sourceMappingURL=TestGatingERC1155.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestGatingERC1155.js","sourceRoot":"","sources":["../../src/test-helpers/TestGatingERC1155.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Address } from '../types/ContractTypes';
|
|
2
|
-
declare function getContractAddress(tokenName: string): Promise<Address>;
|
|
3
|
-
declare function publicMint(tokenName: string, toAddress: Address, amount: number): Promise<void>;
|
|
4
|
-
declare function totalSupply(contractName: string): Promise<number>;
|
|
5
|
-
declare function balanceOf(contractName: string, address: Address): Promise<number>;
|
|
6
|
-
declare function transfer(contractName: string, to: Address, privateKey: `0x${string}`, amount: bigint): Promise<{
|
|
7
|
-
transactionHash: string;
|
|
8
|
-
}>;
|
|
9
|
-
export declare const TestERC20: {
|
|
10
|
-
getContractAddress: typeof getContractAddress;
|
|
11
|
-
balanceOf: typeof balanceOf;
|
|
12
|
-
totalSupply: typeof totalSupply;
|
|
13
|
-
publicMint: typeof publicMint;
|
|
14
|
-
transfer: typeof transfer;
|
|
15
|
-
};
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=TestGatingERC20.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestGatingERC20.d.ts","sourceRoot":"","sources":["../../src/test-helpers/TestGatingERC20.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAQhD,iBAAe,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBrE;AAED,iBAAe,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD9F;AAED,iBAAe,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBhE;AAED,iBAAe,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBhF;AAED,iBAAe,QAAQ,CACnB,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,KAAK,MAAM,EAAE,EACzB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,CA0BtC;AAED,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAA"}
|