@river-build/web3
Version:
Dapps for our Space and Registry contracts
65 lines • 2.52 kB
JavaScript
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