@wireapp/core-crypto 9.0.0 → 9.1.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wireapp/core-crypto",
3
- "version": "9.0.0",
3
+ "version": "9.1.0",
4
4
  "author": "Wire CoreCrypto team <team.corecrypto@wire.com>",
5
5
  "repository": {
6
6
  "type": "git",
@@ -159,6 +159,8 @@ export const __wbg_databasekey_free: (a: number, b: number) => void;
159
159
  export const databasekey_new: (a: number, b: number) => [number, number, number];
160
160
  export const migrateDatabaseKeyTypeToBytes: (a: number, b: number, c: number, d: number, e: number) => any;
161
161
  export const updateDatabaseKey: (a: number, b: number, c: number, d: number) => any;
162
+ export const __wbg_database_free: (a: number, b: number) => void;
163
+ export const openDatabase: (a: number, b: number, c: number) => any;
162
164
  export const __wbg_decryptedmessage_free: (a: number, b: number) => void;
163
165
  export const __wbg_get_decryptedmessage_isActive: (a: number) => number;
164
166
  export const __wbg_get_decryptedmessage_hasEpochChanged: (a: number) => number;
@@ -244,12 +246,12 @@ export const __wbg_get_decryptedmessage_senderClientId: (a: number) => number;
244
246
  export const __wbg_get_decryptedmessage_identity: (a: number) => number;
245
247
  export const __wbg_get_decryptedmessage_commitDelay: (a: number) => [number, bigint];
246
248
  export const __wbg_get_decryptedmessage_message: (a: number) => [number, number];
249
+ export const secretkey_new: (a: number, b: number) => number;
250
+ export const keypackage_new: (a: number, b: number) => number;
247
251
  export const welcome_new: (a: number, b: number) => number;
248
- export const externalsenderkey_new: (a: number, b: number) => number;
249
252
  export const conversationid_new: (a: number, b: number) => number;
250
253
  export const groupinfo_new: (a: number, b: number) => number;
251
- export const secretkey_new: (a: number, b: number) => number;
252
- export const keypackage_new: (a: number, b: number) => number;
254
+ export const externalsenderkey_new: (a: number, b: number) => number;
253
255
  export const __wbg_proteusautoprekeybundle_free: (a: number, b: number) => void;
254
256
  export const __wbg_welcome_free: (a: number, b: number) => void;
255
257
  export const __wbg_mlstransportdata_free: (a: number, b: number) => void;
@@ -268,8 +270,8 @@ export const __wbindgen_free: (a: number, b: number, c: number) => void;
268
270
  export const __wbindgen_export_6: WebAssembly.Table;
269
271
  export const __externref_drop_slice: (a: number, b: number) => void;
270
272
  export const __externref_table_dealloc: (a: number) => void;
271
- export const closure1016_externref_shim: (a: number, b: number, c: any) => void;
272
- export const closure2577_externref_shim: (a: number, b: number, c: any) => void;
273
- export const closure2883_externref_shim: (a: number, b: number, c: any) => void;
274
- export const closure2981_externref_shim: (a: number, b: number, c: any, d: any) => void;
273
+ export const closure2587_externref_shim: (a: number, b: number, c: any) => void;
274
+ export const closure2899_externref_shim: (a: number, b: number, c: any) => void;
275
+ export const closure1021_externref_shim: (a: number, b: number, c: any) => void;
276
+ export const closure3000_externref_shim: (a: number, b: number, c: any, d: any) => void;
275
277
  export const __wbindgen_start: () => void;
@@ -14,11 +14,15 @@ export function ciphersuiteDefault(): Ciphersuite;
14
14
  * Updates the key of the CoreCrypto database.
15
15
  * To be used only once, when moving from CoreCrypto <= 5.x to CoreCrypto 6.x.
16
16
  */
17
- export function migrateDatabaseKeyTypeToBytes(name: string, old_key: string, new_key: DatabaseKey): Promise<void>;
17
+ export function migrateDatabaseKeyTypeToBytes(path: string, old_key: string, new_key: DatabaseKey): Promise<void>;
18
18
  /**
19
19
  * Updates the key of the CoreCrypto database.
20
20
  */
21
21
  export function updateDatabaseKey(name: string, old_key: DatabaseKey, new_key: DatabaseKey): Promise<void>;
22
+ /**
23
+ * Open or create a [Database].
24
+ */
25
+ export function openDatabase(name: string, key: DatabaseKey): Promise<Database>;
22
26
  /**
23
27
  * MLS ciphersuites.
24
28
  */
@@ -142,6 +146,7 @@ export enum WirePolicy {
142
146
  export class AcmeChallenge {
143
147
  private constructor();
144
148
  free(): void;
149
+ [Symbol.dispose](): void;
145
150
  /**
146
151
  * Contains raw JSON data of this challenge. This is parsed by the underlying Rust library hence should not be accessed
147
152
  */
@@ -159,6 +164,7 @@ export class AcmeChallenge {
159
164
  declare class AcmeDirectory {
160
165
  private constructor();
161
166
  free(): void;
167
+ [Symbol.dispose](): void;
162
168
  /**
163
169
  * URL for fetching a new nonce. Use this only for creating a new account.
164
170
  */
@@ -179,6 +185,7 @@ declare class AcmeDirectory {
179
185
  declare class BufferedDecryptedMessage {
180
186
  private constructor();
181
187
  free(): void;
188
+ [Symbol.dispose](): void;
182
189
  /**
183
190
  * Decrypted plaintext
184
191
  */
@@ -227,6 +234,7 @@ export class BuildMetadata {
227
234
  */
228
235
  toString(): string;
229
236
  free(): void;
237
+ [Symbol.dispose](): void;
230
238
  /**
231
239
  * Build Timestamp
232
240
  */
@@ -273,6 +281,7 @@ export class BuildMetadata {
273
281
  */
274
282
  export class ClientId {
275
283
  free(): void;
284
+ [Symbol.dispose](): void;
276
285
  /**
277
286
  * Instantiate a client id from a byte array.
278
287
  */
@@ -284,6 +293,7 @@ export class ClientId {
284
293
  }
285
294
  declare class ConversationConfiguration {
286
295
  free(): void;
296
+ [Symbol.dispose](): void;
287
297
  /**
288
298
  * Construct a `ConversationConfiguration` from its parts.
289
299
  */
@@ -309,6 +319,7 @@ declare class ConversationConfiguration {
309
319
  */
310
320
  export class ConversationId {
311
321
  free(): void;
322
+ [Symbol.dispose](): void;
312
323
  /**
313
324
  * Construct a new instance, transferring data from the client layer to Rust.
314
325
  */
@@ -323,6 +334,7 @@ export class ConversationId {
323
334
  declare class CoreCryptoContext {
324
335
  private constructor();
325
336
  free(): void;
337
+ [Symbol.dispose](): void;
326
338
  /**
327
339
  * See [core_crypto::transaction_context::TransactionContext::e2ei_new_enrollment]
328
340
  */
@@ -592,6 +604,7 @@ declare class CoreCryptoContext {
592
604
  }
593
605
  declare class CrlRegistration {
594
606
  free(): void;
607
+ [Symbol.dispose](): void;
595
608
  /**
596
609
  * Contstruct a CRL registration from its fields
597
610
  */
@@ -614,6 +627,7 @@ declare class CrlRegistration {
614
627
  */
615
628
  export class CustomConfiguration {
616
629
  free(): void;
630
+ [Symbol.dispose](): void;
617
631
  /**
618
632
  * Construct a `CustomConfiguration` from its parts.
619
633
  */
@@ -639,11 +653,20 @@ export class CustomConfiguration {
639
653
  */
640
654
  set wirePolicy(value: WirePolicy | null | undefined);
641
655
  }
656
+ /**
657
+ * The database acting as a core crypto keystore.
658
+ */
659
+ export class Database {
660
+ private constructor();
661
+ free(): void;
662
+ [Symbol.dispose](): void;
663
+ }
642
664
  /**
643
665
  * The key used to encrypt the database.
644
666
  */
645
667
  export class DatabaseKey {
646
668
  free(): void;
669
+ [Symbol.dispose](): void;
647
670
  /**
648
671
  * Construct a new instance from a byte vector.
649
672
  */
@@ -652,6 +675,7 @@ export class DatabaseKey {
652
675
  declare class DecryptedMessage {
653
676
  private constructor();
654
677
  free(): void;
678
+ [Symbol.dispose](): void;
655
679
  /**
656
680
  * Decrypted plaintext
657
681
  */
@@ -700,6 +724,7 @@ declare class DecryptedMessage {
700
724
  */
701
725
  export class ExternalSenderKey {
702
726
  free(): void;
727
+ [Symbol.dispose](): void;
703
728
  /**
704
729
  * Construct a new instance, transferring data from the client layer to Rust.
705
730
  */
@@ -714,6 +739,7 @@ export class ExternalSenderKey {
714
739
  declare class FfiWireE2EIdentity {
715
740
  private constructor();
716
741
  free(): void;
742
+ [Symbol.dispose](): void;
717
743
  /**
718
744
  * See [core_crypto::e2e_identity::E2eiEnrollment::directory_response]
719
745
  */
@@ -791,6 +817,7 @@ declare class FfiWireE2EIdentity {
791
817
  */
792
818
  export class GroupInfo {
793
819
  free(): void;
820
+ [Symbol.dispose](): void;
794
821
  /**
795
822
  * Construct a new instance, transferring data from the client layer to Rust.
796
823
  */
@@ -804,6 +831,7 @@ export class GroupInfo {
804
831
  }
805
832
  declare class KeyPackage {
806
833
  free(): void;
834
+ [Symbol.dispose](): void;
807
835
  /**
808
836
  * Construct a new instance, transferring data from the client layer to Rust.
809
837
  */
@@ -821,6 +849,7 @@ declare class KeyPackage {
821
849
  */
822
850
  export class MlsTransportData {
823
851
  free(): void;
852
+ [Symbol.dispose](): void;
824
853
  /**
825
854
  * Construct `MlsTransportData` by providing data
826
855
  */
@@ -839,6 +868,7 @@ export class MlsTransportData {
839
868
  export class NewAcmeAuthz {
840
869
  private constructor();
841
870
  free(): void;
871
+ [Symbol.dispose](): void;
842
872
  /**
843
873
  * DNS entry associated with those challenge
844
874
  */
@@ -861,6 +891,7 @@ export class NewAcmeAuthz {
861
891
  export class NewAcmeOrder {
862
892
  private constructor();
863
893
  free(): void;
894
+ [Symbol.dispose](): void;
864
895
  /**
865
896
  * Opaque raw json value
866
897
  */
@@ -873,6 +904,7 @@ export class NewAcmeOrder {
873
904
  declare class ProteusAutoPrekeyBundle {
874
905
  private constructor();
875
906
  free(): void;
907
+ [Symbol.dispose](): void;
876
908
  /**
877
909
  * Prekey id (automatically incremented)
878
910
  */
@@ -889,6 +921,7 @@ declare class ProteusAutoPrekeyBundle {
889
921
  */
890
922
  export class SecretKey {
891
923
  free(): void;
924
+ [Symbol.dispose](): void;
892
925
  /**
893
926
  * Construct a new instance, transferring data from the client layer to Rust.
894
927
  */
@@ -908,6 +941,7 @@ export class SecretKey {
908
941
  */
909
942
  export class Welcome {
910
943
  free(): void;
944
+ [Symbol.dispose](): void;
911
945
  /**
912
946
  * Construct a new instance, transferring data from the client layer to Rust.
913
947
  */
@@ -925,6 +959,7 @@ export class Welcome {
925
959
  export class WelcomeBundle {
926
960
  private constructor();
927
961
  free(): void;
962
+ [Symbol.dispose](): void;
928
963
  /**
929
964
  * Identifier of the joined conversation
930
965
  */
@@ -941,6 +976,7 @@ export class WelcomeBundle {
941
976
  export class WireIdentity {
942
977
  private constructor();
943
978
  free(): void;
979
+ [Symbol.dispose](): void;
944
980
  /**
945
981
  * Unique client identifier e.g. `T4Coy4vdRzianwfOgXpn6A:6add501bacd1d90e@whitehouse.gov`
946
982
  */
@@ -971,6 +1007,7 @@ export class WireIdentity {
971
1007
  export class X509Identity {
972
1008
  private constructor();
973
1009
  free(): void;
1010
+ [Symbol.dispose](): void;
974
1011
  /**
975
1012
  * user handle e.g. `john_wire`
976
1013
  */
@@ -1020,11 +1057,15 @@ interface ConversationConfiguration$1 {
1020
1057
  */
1021
1058
  wirePolicy?: WirePolicy;
1022
1059
  }
1023
- export interface CoreCryptoRichError {
1060
+ /**
1061
+ * The error structure produced by our rust code.
1062
+ **/
1063
+ export interface CoreCryptoRichError<T extends ErrorType> {
1024
1064
  message: string;
1025
1065
  error_name?: string;
1026
1066
  error_stack?: string[];
1027
- proteus_error_code?: number;
1067
+ type?: T;
1068
+ context?: ErrorContext[T];
1028
1069
  }
1029
1070
  /**
1030
1071
  * Error wrapper that takes care of extracting rich error details across the FFI (through JSON parsing)
@@ -1035,15 +1076,219 @@ export interface CoreCryptoRichError {
1035
1076
  *
1036
1077
  * Please note that in this case the extra properties will not be available.
1037
1078
  */
1038
- export declare class CoreCryptoError extends Error {
1079
+ export declare class CoreCryptoError<T extends ErrorType> extends Error {
1039
1080
  errorStack: string[];
1040
- proteusErrorCode: number | null;
1081
+ context?: ErrorContext[T];
1082
+ type?: T;
1041
1083
  private constructor();
1042
1084
  private static fallback;
1043
- static build(msg: string, ...params: unknown[]): CoreCryptoError;
1044
- static fromStdError(e: Error): CoreCryptoError;
1045
- static asyncMapErr<T>(p: Promise<T>): Promise<T>;
1085
+ static build<E extends ErrorType>(msg: string, ...params: unknown[]): CoreCryptoError<E>;
1086
+ static fromStdError(e: Error): CoreCryptoError<ErrorType>;
1087
+ static asyncMapErr<T, E extends ErrorType>(p: Promise<T>): Promise<T>;
1088
+ }
1089
+ /**
1090
+ * Helper type to ensure that error contexts match their type
1091
+ */
1092
+ export type ErrorTypeWithContext<T> = {
1093
+ [K in keyof T]: {
1094
+ type: K;
1095
+ context: T[K];
1096
+ };
1097
+ }[keyof T];
1098
+ /**
1099
+ * Variants of core crypto errors
1100
+ */
1101
+ export declare enum ErrorType {
1102
+ Mls = "Mls",
1103
+ Proteus = "Proteus",
1104
+ E2ei = "E2ei",
1105
+ TransactionFailed = "TransactionFailed",
1106
+ Other = "Other"
1046
1107
  }
1108
+ export declare function isCcError<E extends ErrorType>(error: unknown, errorType: E): error is CoreCryptoError<E>;
1109
+ /**
1110
+ * Structured core crypto error
1111
+ */
1112
+ export interface ErrorContext {
1113
+ [ErrorType.Mls]: ErrorTypeWithContext<MlsErrorContext>;
1114
+ [ErrorType.Proteus]: ErrorTypeWithContext<ProteusErrorContext>;
1115
+ [ErrorType.E2ei]: {
1116
+ e2eiError: string;
1117
+ };
1118
+ [ErrorType.TransactionFailed]: {
1119
+ error: string;
1120
+ };
1121
+ [ErrorType.Other]: {
1122
+ msg: string;
1123
+ };
1124
+ }
1125
+ export declare function isE2eiError(error: unknown): error is CoreCryptoError<ErrorType.E2ei>;
1126
+ export declare function isTransactionFailedError(error: unknown): error is CoreCryptoError<ErrorType.TransactionFailed>;
1127
+ export declare function isOtherError(error: unknown): error is CoreCryptoError<ErrorType.Other>;
1128
+ /**
1129
+ * Variants of core crypto mls errors
1130
+ */
1131
+ export declare enum MlsErrorType {
1132
+ ConversationAlreadyExists = "ConversationAlreadyExists",
1133
+ DuplicateMessage = "DuplicateMessage",
1134
+ BufferedFutureMessage = "BufferedFutureMessage",
1135
+ WrongEpoch = "WrongEpoch",
1136
+ BufferedCommit = "BufferedCommit",
1137
+ MessageEpochTooOld = "MessageEpochTooOld",
1138
+ SelfCommitIgnored = "SelfCommitIgnored",
1139
+ UnmergedPendingGroup = "UnmergedPendingGroup",
1140
+ StaleProposal = "StaleProposal",
1141
+ StaleCommit = "StaleCommit",
1142
+ /**
1143
+ * This happens when the DS cannot flag KeyPackages as claimed or not. In this scenario, a client
1144
+ * requests their old KeyPackages to be deleted but one has already been claimed by another client to create a Welcome.
1145
+ * In that case the only solution is that the client receiving such a Welcome tries to join the group
1146
+ * with an External Commit instead
1147
+ */
1148
+ OrphanWelcome = "OrphanWelcome",
1149
+ MessageRejected = "MessageRejected",
1150
+ Other = "Other"
1151
+ }
1152
+ /**
1153
+ * Structured core crypto mls error (embedded in a core crypto error)
1154
+ */
1155
+ export interface MlsErrorContext {
1156
+ [MlsErrorType.ConversationAlreadyExists]: {
1157
+ conversationId: Array<number>;
1158
+ };
1159
+ [MlsErrorType.DuplicateMessage]: Record<string, never>;
1160
+ [MlsErrorType.BufferedFutureMessage]: Record<string, never>;
1161
+ [MlsErrorType.WrongEpoch]: Record<string, never>;
1162
+ [MlsErrorType.BufferedCommit]: Record<string, never>;
1163
+ [MlsErrorType.MessageEpochTooOld]: Record<string, never>;
1164
+ [MlsErrorType.SelfCommitIgnored]: Record<string, never>;
1165
+ [MlsErrorType.UnmergedPendingGroup]: Record<string, never>;
1166
+ [MlsErrorType.StaleProposal]: Record<string, never>;
1167
+ [MlsErrorType.StaleCommit]: Record<string, never>;
1168
+ [MlsErrorType.OrphanWelcome]: Record<string, never>;
1169
+ [MlsErrorType.MessageRejected]: {
1170
+ reason: string;
1171
+ };
1172
+ [MlsErrorType.Other]: {
1173
+ msg: string;
1174
+ };
1175
+ }
1176
+ export declare function isMlsError<E extends MlsErrorType>(error: unknown, errorType: E): error is CoreCryptoError<ErrorType.Mls> & {
1177
+ context: Extract<ErrorContext[ErrorType.Mls], {
1178
+ type: E;
1179
+ }>;
1180
+ };
1181
+ export declare function isMlsConversationAlreadyExistsError(error: unknown): error is CoreCryptoError<ErrorType.Mls> & {
1182
+ context: Extract<ErrorContext[ErrorType.Mls], {
1183
+ type: MlsErrorType.ConversationAlreadyExists;
1184
+ }>;
1185
+ };
1186
+ export declare function isMlsDuplicateMessageError(error: unknown): error is CoreCryptoError<ErrorType.Mls> & {
1187
+ context: Extract<ErrorContext[ErrorType.Mls], {
1188
+ type: MlsErrorType.DuplicateMessage;
1189
+ }>;
1190
+ };
1191
+ export declare function isMlsBufferedFutureMessageError(error: unknown): error is CoreCryptoError<ErrorType.Mls> & {
1192
+ context: Extract<ErrorContext[ErrorType.Mls], {
1193
+ type: MlsErrorType.BufferedFutureMessage;
1194
+ }>;
1195
+ };
1196
+ export declare function isMlsWrongEpochError(error: unknown): error is CoreCryptoError<ErrorType.Mls> & {
1197
+ context: Extract<ErrorContext[ErrorType.Mls], {
1198
+ type: MlsErrorType.WrongEpoch;
1199
+ }>;
1200
+ };
1201
+ export declare function isMlsBufferedCommitError(error: unknown): error is CoreCryptoError<ErrorType.Mls> & {
1202
+ context: Extract<ErrorContext[ErrorType.Mls], {
1203
+ type: MlsErrorType.BufferedCommit;
1204
+ }>;
1205
+ };
1206
+ export declare function isMlsSelfCommitIgnoredError(error: unknown): error is CoreCryptoError<ErrorType.Mls> & {
1207
+ context: Extract<ErrorContext[ErrorType.Mls], {
1208
+ type: MlsErrorType.SelfCommitIgnored;
1209
+ }>;
1210
+ };
1211
+ export declare function isMlsUnmergedPendingGroupError(error: unknown): error is CoreCryptoError<ErrorType.Mls> & {
1212
+ context: Extract<ErrorContext[ErrorType.Mls], {
1213
+ type: MlsErrorType.UnmergedPendingGroup;
1214
+ }>;
1215
+ };
1216
+ export declare function isMlsStaleProposalError(error: unknown): error is CoreCryptoError<ErrorType.Mls> & {
1217
+ context: Extract<ErrorContext[ErrorType.Mls], {
1218
+ type: MlsErrorType.StaleProposal;
1219
+ }>;
1220
+ };
1221
+ export declare function isMlsStaleCommitError(error: unknown): error is CoreCryptoError<ErrorType.Mls> & {
1222
+ context: Extract<ErrorContext[ErrorType.Mls], {
1223
+ type: MlsErrorType.StaleCommit;
1224
+ }>;
1225
+ };
1226
+ export declare function isMlsOrphanWelcomeError(error: unknown): error is CoreCryptoError<ErrorType.Mls> & {
1227
+ context: Extract<ErrorContext[ErrorType.Mls], {
1228
+ type: MlsErrorType.OrphanWelcome;
1229
+ }>;
1230
+ };
1231
+ export declare function isMlsMessageRejectedError(error: unknown): error is CoreCryptoError<ErrorType.Mls> & {
1232
+ context: Extract<ErrorContext[ErrorType.Mls], {
1233
+ type: MlsErrorType.MessageRejected;
1234
+ }>;
1235
+ };
1236
+ export declare function isMlsOtherError(error: unknown): error is CoreCryptoError<ErrorType.Mls> & {
1237
+ context: Extract<ErrorContext[ErrorType.Mls], {
1238
+ type: MlsErrorType.Other;
1239
+ }>;
1240
+ };
1241
+ /**
1242
+ * Variants of core crypto proteus errors
1243
+ */
1244
+ export declare enum ProteusErrorType {
1245
+ SessionNotFound = "SessionNotFound",
1246
+ DuplicateMessage = "DuplicateMessage",
1247
+ RemoteIdentityChanged = "RemoteIdentityChanged",
1248
+ Other = "Other"
1249
+ }
1250
+ /**
1251
+ * Structured core crypto proteus error (embedded in a core crypto error)
1252
+ */
1253
+ export interface ProteusErrorContext {
1254
+ [ProteusErrorType.SessionNotFound]: {
1255
+ errorCode: number;
1256
+ };
1257
+ [ProteusErrorType.DuplicateMessage]: {
1258
+ errorCode: number;
1259
+ };
1260
+ [ProteusErrorType.RemoteIdentityChanged]: {
1261
+ errorCode: number;
1262
+ };
1263
+ [ProteusErrorType.Other]: {
1264
+ errorCode: number;
1265
+ };
1266
+ }
1267
+ export declare function isProteusError<E extends ProteusErrorType>(error: unknown, errorType: E): error is CoreCryptoError<ErrorType.Proteus> & {
1268
+ context: Extract<ErrorContext[ErrorType.Proteus], {
1269
+ type: E;
1270
+ }>;
1271
+ };
1272
+ export declare function isProteusSessionNotFoundError(error: unknown): error is CoreCryptoError<ErrorType.Proteus> & {
1273
+ context: Extract<ErrorContext[ErrorType.Proteus], {
1274
+ type: ProteusErrorType.SessionNotFound;
1275
+ }>;
1276
+ };
1277
+ export declare function isProteusDuplicateMessageError(error: unknown): error is CoreCryptoError<ErrorType.Proteus> & {
1278
+ context: Extract<ErrorContext[ErrorType.Proteus], {
1279
+ type: ProteusErrorType.DuplicateMessage;
1280
+ }>;
1281
+ };
1282
+ export declare function isProteusRemoteIdentityChangedError(error: unknown): error is CoreCryptoError<ErrorType.Proteus> & {
1283
+ context: Extract<ErrorContext[ErrorType.Proteus], {
1284
+ type: ProteusErrorType.RemoteIdentityChanged;
1285
+ }>;
1286
+ };
1287
+ export declare function isProteusOtherError(error: unknown): error is CoreCryptoError<ErrorType.Proteus> & {
1288
+ context: Extract<ErrorContext[ErrorType.Proteus], {
1289
+ type: ProteusErrorType.Other;
1290
+ }>;
1291
+ };
1047
1292
  /**
1048
1293
  * Alias for proposal reference. It is a byte array of size 16.
1049
1294
  */