UNPKG

@river-build/web3

Version:

Dapps for our Space and Registry contracts

65 lines 2.52 kB
import { NoopRuleData } from './entitlement'; export const Permission = { /** No permission required. */ Undefined: 'Undefined', /** Read event permission. */ Read: 'Read', /** Write event permission. */ Write: 'Write', /** Invite user permission. */ Invite: 'Invite', /** Join space permission. */ JoinSpace: 'JoinSpace', /** Redact events permission. */ Redact: 'Redact', /** Modify or ban user permission. */ ModifyBanning: 'ModifyBanning', /** Pin/unpin events permission. */ PinMessage: 'PinMessage', /** Add or remove channels permission. */ AddRemoveChannels: 'AddRemoveChannels', /** Modify space settings permission. */ ModifySpaceSettings: 'ModifySpaceSettings', /** React to a message permission. */ React: 'React', }; /** * Supported entitlement modules */ export var EntitlementModuleType; (function (EntitlementModuleType) { EntitlementModuleType["UserEntitlement"] = "UserEntitlement"; EntitlementModuleType["RuleEntitlement"] = "RuleEntitlement"; EntitlementModuleType["RuleEntitlementV2"] = "RuleEntitlementV2"; })(EntitlementModuleType || (EntitlementModuleType = {})); export function isLegacyMembershipType(object) { return typeof object.requirements.ruleData === typeof NoopRuleData; } export function isCreateLegacySpaceParams(object) { return typeof object.membership.requirements.ruleData === typeof NoopRuleData; } export function isRuleDataV1(ruleData) { return ruleData.checkOperations.length === 0 || 'threshold' in ruleData.checkOperations[0]; } export function isPermission(permission) { return Object.values(Permission).includes(permission); } export function isUserEntitlement(entitlement) { return entitlement.moduleType === EntitlementModuleType.UserEntitlement; } export function isRuleEntitlement(entitlement) { return entitlement.moduleType === EntitlementModuleType.RuleEntitlement; } export function isRuleEntitlementV2(entitlement) { return entitlement.moduleType === EntitlementModuleType.RuleEntitlementV2; } export const isUpdateChannelStatusParams = (params) => { return ('disabled' in params && !('roleIds' in params || 'channelName' in params || 'channelDescription' in params)); }; export function isStringArray( // eslint-disable-next-line @typescript-eslint/no-explicit-any args) { return Array.isArray(args) && args.length > 0 && args.every((arg) => typeof arg === 'string'); } //# sourceMappingURL=ContractTypes.js.map