import * as Data from 'effect/Data'; import * as Schema from 'effect/Schema'; export const SignatureWithRecovery = Schema.Struct({ hex: Schema.String, recovery: Schema.Number, }); export type SignatureWithRecovery = Schema.Schema.Type; export const ConnectAuthPayload = Schema.Struct({ expiry: Schema.Number, encryptionPublicKey: Schema.String, appId: Schema.String, }); export type ConnectAuthPayload = Schema.Schema.Type; export const ConnectCallbackResult = Schema.Struct({ appIdentityAddress: Schema.String, appIdentityAddressPrivateKey: Schema.String, accountAddress: Schema.String, permissionId: Schema.String, signaturePublicKey: Schema.String, signaturePrivateKey: Schema.String, encryptionPublicKey: Schema.String, encryptionPrivateKey: Schema.String, sessionToken: Schema.String, sessionTokenExpires: Schema.Date, privateSpaces: Schema.Array(Schema.Struct({ id: Schema.String })), publicSpaces: Schema.Array(Schema.Struct({ id: Schema.String })), }); export type ConnectCallbackResult = Schema.Schema.Type; export const ConnectCallbackDecryptedData = Schema.Struct({ ...ConnectCallbackResult.fields, sessionTokenExpires: Schema.Number, expiry: Schema.Number, }); export type ConnectCallbackDecryptedData = Schema.Schema.Type; export class FailedToParseConnectAuthUrl extends Data.TaggedError('FailedToParseConnectAuthUrl')<{ message: string; }> {} export class FailedToParseAuthCallbackUrl extends Data.TaggedError('FailedToParseAuthCallbackUrl')<{ message: string; }> {}