UNPKG

@river-build/web3

Version:

Dapps for our Space and Registry contracts

192 lines 10.7 kB
import { BasicRoleInfo, ChannelDetails, ChannelMetadata, MembershipInfo, LegacyMembershipStruct, MembershipStruct, Permission, PricingModuleStruct, RoleDetails, TotalSupplyInfo } from './ContractTypes'; import { XchainConfig } from './entitlement'; import { WalletLink as WalletLinkV3 } from './v3/WalletLink'; import { BigNumber, BytesLike, ContractReceipt, ContractTransaction, ethers } from 'ethers'; import { SpaceInfo } from './types'; import { IRolesBase, Space, SpaceRegistrar, IRuleEntitlementBase, IRuleEntitlementV2Base, RiverAirdropDapp } from './v3'; import { PricingModules } from './v3/PricingModules'; import { BaseChainConfig } from './IStaticContractsInfo'; import { PlatformRequirements } from './v3/PlatformRequirements'; import { TipEventObject } from '@river-build/generated/dev/typings/ITipping'; export type SignerType = ethers.Signer; export interface CreateLegacySpaceParams { spaceName: string; uri: string; channelName: string; membership: LegacyMembershipStruct; shortDescription?: string; longDescription?: string; } export interface CreateSpaceParams { spaceName: string; uri: string; channelName: string; membership: MembershipStruct; shortDescription?: string; longDescription?: string; prepaySupply?: number; } export interface UpdateChannelMetadataParams { spaceId: string; channelId: string; channelName: string; channelDescription: string; roleIds: number[]; disabled?: boolean; } export interface UpdateChannelAccessParams { spaceId: string; channelId: string; disabled: boolean; } export type UpdateChannelParams = UpdateChannelMetadataParams | UpdateChannelAccessParams; export interface RemoveChannelParams { spaceId: string; channelId: string; } export interface LegacyUpdateRoleParams { spaceNetworkId: string; roleId: number; roleName: string; permissions: Permission[]; users: string[]; ruleData: IRuleEntitlementBase.RuleDataStruct; } export interface UpdateRoleParams { spaceNetworkId: string; roleId: number; roleName: string; permissions: Permission[]; users: string[]; ruleData: IRuleEntitlementV2Base.RuleDataV2Struct; } export interface SetChannelPermissionOverridesParams { spaceNetworkId: string; channelId: string; roleId: number; permissions: Permission[]; } export interface ClearChannelPermissionOverridesParams { spaceNetworkId: string; channelId: string; roleId: number; } export interface TransactionOpts { retryCount?: number; } type TransactionType = ContractTransaction; export type ContractEventListener = { wait: () => Promise<{ success: boolean; error?: Error | undefined; [x: string]: unknown; }>; }; export interface ISpaceDapp { readonly provider: ethers.providers.Provider; readonly config: BaseChainConfig; readonly spaceRegistrar: SpaceRegistrar; readonly walletLink: WalletLinkV3; readonly pricingModules: PricingModules; readonly platformRequirements: PlatformRequirements; readonly airdrop: RiverAirdropDapp | undefined; isLegacySpace: (spaceId: string) => Promise<boolean>; addRoleToChannel: (spaceId: string, channelNetworkId: string, roleId: number, signer: SignerType) => Promise<TransactionType>; banWalletAddress: (spaceId: string, walletAddress: string, signer: SignerType) => Promise<TransactionType>; unbanWalletAddress: (spaceId: string, walletAddress: string, signer: SignerType) => Promise<TransactionType>; walletAddressIsBanned: (spaceId: string, walletAddress: string) => Promise<boolean>; bannedWalletAddresses: (spaceId: string) => Promise<string[]>; createLegacySpace: (params: CreateLegacySpaceParams, signer: SignerType, txnOpts?: TransactionOpts) => Promise<TransactionType>; createSpace: (params: CreateSpaceParams, signer: SignerType, txnOpts?: TransactionOpts) => Promise<TransactionType>; createChannel: (spaceId: string, channelName: string, channelDescription: string, channelNetworkId: string, roleIds: number[], signer: SignerType, txnOpts?: TransactionOpts) => Promise<TransactionType>; createChannelWithPermissionOverrides: (spaceId: string, channelName: string, channelDescription: string, channelNetworkId: string, roles: { roleId: number; permissions: Permission[]; }[], signer: SignerType, txnOpts?: TransactionOpts) => Promise<TransactionType>; legacyCreateRole(spaceId: string, roleName: string, permissions: Permission[], users: string[], ruleData: IRuleEntitlementBase.RuleDataStruct, signer: SignerType, txnOpts?: TransactionOpts): Promise<TransactionType>; createRole(spaceId: string, roleName: string, permissions: Permission[], users: string[], ruleData: IRuleEntitlementV2Base.RuleDataV2Struct, signer: SignerType, txnOpts?: TransactionOpts): Promise<TransactionType>; waitForRoleCreated(spaceId: string, txn: ContractTransaction): Promise<{ roleId: number | undefined; error: Error | undefined; }>; createLegacyUpdatedEntitlements(space: Space, params: LegacyUpdateRoleParams): Promise<IRolesBase.CreateEntitlementStruct[]>; createUpdatedEntitlements(space: Space, params: UpdateRoleParams): Promise<IRolesBase.CreateEntitlementStruct[]>; deleteRole(spaceId: string, roleId: number, signer: SignerType, txnOpts?: TransactionOpts): Promise<TransactionType>; refreshMetadata(spaceId: string, signer: ethers.Signer, txnOpts?: TransactionOpts): Promise<ContractTransaction>; encodedUpdateChannelData(space: Space, params: UpdateChannelParams): Promise<BytesLike[]>; getChannels: (spaceId: string) => Promise<ChannelMetadata[]>; getChannelDetails: (spaceId: string, channelId: string) => Promise<ChannelDetails | null>; getPermissionsByRoleId: (spaceId: string, roleId: number) => Promise<Permission[]>; getChannelPermissionOverrides(spaceId: string, roleId: number, channelId: string): Promise<Permission[]>; getRole: (spaceId: string, roleId: number) => Promise<RoleDetails | null>; getRoles: (spaceId: string) => Promise<BasicRoleInfo[]>; getSpaceInfo: (spaceId: string) => Promise<SpaceInfo | undefined>; isEntitledToSpace: (spaceId: string, user: string, permission: Permission) => Promise<boolean>; isEntitledToChannel: (spaceId: string, channelId: string, user: string, permission: Permission, xchainConfig: XchainConfig) => Promise<boolean>; getEntitledWalletForJoiningSpace: (spaceId: string, wallet: string, xchainConfig: XchainConfig) => Promise<string | undefined>; parseAllContractErrors: (args: { spaceId?: string; error: unknown; }) => Error; parseSpaceFactoryError: (error: unknown) => Error; parseSpaceError: (spaceId: string, error: unknown) => Error; parseSpaceLogs: (spaceId: string, logs: ethers.providers.Log[]) => Promise<(ethers.utils.LogDescription | undefined)[]>; updateChannel: (params: UpdateChannelParams, signer: SignerType, txnOpts?: TransactionOpts) => Promise<TransactionType>; removeChannel: (params: RemoveChannelParams, signer: SignerType, txnOpts?: TransactionOpts) => Promise<TransactionType>; legacyUpdateRole: (params: LegacyUpdateRoleParams, signer: SignerType, txnOpts?: TransactionOpts) => Promise<TransactionType>; updateRole: (params: UpdateRoleParams, signer: SignerType, txnOpts?: TransactionOpts) => Promise<TransactionType>; setChannelPermissionOverrides: (params: SetChannelPermissionOverridesParams, signer: SignerType, txnOpts?: TransactionOpts) => Promise<TransactionType>; clearChannelPermissionOverrides: (params: ClearChannelPermissionOverridesParams, signer: SignerType, txnOpts?: TransactionOpts) => Promise<TransactionType>; updateSpaceInfo: (spaceId: string, name: string, uri: string, shortDescription: string, longDescription: string, signer: SignerType, txnOpts?: TransactionOpts) => Promise<TransactionType>; setSpaceAccess: (spaceId: string, disabled: boolean, signer: SignerType) => Promise<TransactionType>; setChannelAccess: (spaceId: string, channelId: string, disabled: boolean, signer: SignerType) => Promise<TransactionType>; getSpace(spaceId: string): Space | undefined; getSpaceMembershipTokenAddress: (spaceId: string) => Promise<string>; getJoinSpacePriceDetails: (spaceId: string) => Promise<{ price: ethers.BigNumber; prepaidSupply: ethers.BigNumber; remainingFreeSupply: ethers.BigNumber; }>; joinSpace: (spaceId: string, recipient: string, signer: SignerType) => Promise<{ issued: true; tokenId: string; } | { issued: false; tokenId: undefined; }>; hasSpaceMembership: (spaceId: string, wallet: string) => Promise<boolean>; getMembershipSupply: (spaceId: string) => Promise<TotalSupplyInfo>; getMembershipInfo: (spaceId: string) => Promise<MembershipInfo>; getWalletLink: () => WalletLinkV3; getSpaceAddress: (receipt: ContractReceipt, senderAddress: string) => string | undefined; listPricingModules: () => Promise<PricingModuleStruct[]>; setMembershipPrice: (spaceId: string, price: string, signer: SignerType) => Promise<TransactionType>; setMembershipPricingModule: (spaceId: string, moduleId: string, signer: SignerType) => Promise<TransactionType>; setMembershipLimit: (spaceId: string, limit: number, signer: SignerType) => Promise<TransactionType>; prepayMembership: (spaceId: string, supply: number, signer: SignerType) => Promise<TransactionType>; getPrepaidMembershipSupply: (spaceId: string) => Promise<BigNumber>; setMembershipFreeAllocation: (spaceId: string, freeAllocation: number, signer: SignerType) => Promise<TransactionType>; listenForMembershipEvent: (spaceId: string, receiver: string, abortController?: AbortController) => Promise<{ issued: true; tokenId: string; } | { issued: false; tokenId: undefined; }>; getMembershipFreeAllocation: (spaceId: string) => Promise<BigNumber>; withdrawSpaceFunds: (spaceId: string, recipient: string, signer: SignerType) => Promise<TransactionType>; tip: (args: { spaceId: string; tokenId: string; currency: string; amount: bigint; messageId: string; channelId: string; receiver: string; }, signer: SignerType) => Promise<TransactionType>; getLinkedWallets: (wallet: string) => Promise<string[]>; getTokenIdOfOwner: (spaceId: string, owner: string) => Promise<string | undefined>; getTipEvent: (spaceId: string, receipt: ContractReceipt, senderAddress: string) => TipEventObject | undefined; } export {}; //# sourceMappingURL=ISpaceDapp.d.ts.map