UNPKG

@reclaimprotocol/attestor-core

Version:

<div> <div> <img src="https://raw.githubusercontent.com/reclaimprotocol/.github/main/assets/banners/Attestor-Core.png" /> </div> </div>

1,624 lines (1,621 loc) 271 kB
var __defProp = Object.defineProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; // src/index.ts import * as tls from "@reclaimprotocol/tls"; // src/client/utils/client-socket.ts import { encodeBase64 as encodeBase642 } from "ethers"; // src/proto/api.ts var api_exports = {}; __export(api_exports, { AttestorVersion: () => AttestorVersion, AuthenticatedUserData: () => AuthenticatedUserData, AuthenticationRequest: () => AuthenticationRequest, ClaimContext: () => ClaimContext, ClaimContext_ExtractedParametersEntry: () => ClaimContext_ExtractedParametersEntry, ClaimRequestData: () => ClaimRequestData, ClaimTeeBundleRequest: () => ClaimTeeBundleRequest, ClaimTeeBundleRequest_Signatures: () => ClaimTeeBundleRequest_Signatures, ClaimTeeBundleResponse: () => ClaimTeeBundleResponse, ClaimTeeBundleResponse_Signatures: () => ClaimTeeBundleResponse_Signatures, ClaimTunnelRequest: () => ClaimTunnelRequest, ClaimTunnelRequest_Signatures: () => ClaimTunnelRequest_Signatures, ClaimTunnelRequest_TranscriptMessage: () => ClaimTunnelRequest_TranscriptMessage, ClaimTunnelResponse: () => ClaimTunnelResponse, ClaimTunnelResponse_Signatures: () => ClaimTunnelResponse_Signatures, CompleteClaimOnAvsRequest: () => CompleteClaimOnAvsRequest, CompleteClaimOnAvsResponse: () => CompleteClaimOnAvsResponse, CreateTaskOnMechainRequest: () => CreateTaskOnMechainRequest, CreateTaskOnMechainResponse: () => CreateTaskOnMechainResponse, CreateTunnelRequest: () => CreateTunnelRequest, DataSlice: () => DataSlice, DisconnectTunnelRequest: () => DisconnectTunnelRequest, Empty: () => Empty, ErrorCode: () => ErrorCode, ErrorData: () => ErrorData, FetchCertificateBytesRequest: () => FetchCertificateBytesRequest, FetchCertificateBytesResponse: () => FetchCertificateBytesResponse, InitRequest: () => InitRequest, InitResponse: () => InitResponse, MessageReveal: () => MessageReveal, MessageReveal_MessageRevealDirect: () => MessageReveal_MessageRevealDirect, MessageReveal_MessageRevealZk: () => MessageReveal_MessageRevealZk, MessageReveal_OPRFRawMarker: () => MessageReveal_OPRFRawMarker, MessageReveal_TOPRFProof: () => MessageReveal_TOPRFProof, MessageReveal_ZKProof: () => MessageReveal_ZKProof, ProviderClaimData: () => ProviderClaimData, ProviderClaimInfo: () => ProviderClaimInfo, RPCMessage: () => RPCMessage, RPCMessages: () => RPCMessages, RequestClaimOnAvsRequest: () => RequestClaimOnAvsRequest, RequestClaimOnAvsResponse: () => RequestClaimOnAvsResponse, ServiceSignatureType: () => ServiceSignatureType, TOPRFPayload: () => TOPRFPayload, TOPRFRequest: () => TOPRFRequest, TOPRFResponse: () => TOPRFResponse, TranscriptMessageSenderType: () => TranscriptMessageSenderType, TunnelDisconnectEvent: () => TunnelDisconnectEvent, TunnelMessage: () => TunnelMessage, ZKProofEngine: () => ZKProofEngine, attestorVersionFromJSON: () => attestorVersionFromJSON, attestorVersionToJSON: () => attestorVersionToJSON, errorCodeFromJSON: () => errorCodeFromJSON, errorCodeToJSON: () => errorCodeToJSON, protobufPackage: () => protobufPackage, serviceSignatureTypeFromJSON: () => serviceSignatureTypeFromJSON, serviceSignatureTypeToJSON: () => serviceSignatureTypeToJSON, transcriptMessageSenderTypeFromJSON: () => transcriptMessageSenderTypeFromJSON, transcriptMessageSenderTypeToJSON: () => transcriptMessageSenderTypeToJSON, zKProofEngineFromJSON: () => zKProofEngineFromJSON, zKProofEngineToJSON: () => zKProofEngineToJSON }); import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; var protobufPackage = "reclaim_attestor"; var TranscriptMessageSenderType = { TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN: 0, TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT: 1, TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER: 2, UNRECOGNIZED: -1 }; function transcriptMessageSenderTypeFromJSON(object) { switch (object) { case 0: case "TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN": return TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN; case 1: case "TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT": return TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT; case 2: case "TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER": return TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER; case -1: case "UNRECOGNIZED": default: return TranscriptMessageSenderType.UNRECOGNIZED; } } function transcriptMessageSenderTypeToJSON(object) { switch (object) { case TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN: return "TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN"; case TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT: return "TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT"; case TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER: return "TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER"; case TranscriptMessageSenderType.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } var ServiceSignatureType = { SERVICE_SIGNATURE_TYPE_UNKNOWN: 0, /** * SERVICE_SIGNATURE_TYPE_ETH - ETH keys & signature * keys: secp256k1 * signature: ethereum flavor of ECDSA (https://goethereumbook.org/signature-generate/) */ SERVICE_SIGNATURE_TYPE_ETH: 1, UNRECOGNIZED: -1 }; function serviceSignatureTypeFromJSON(object) { switch (object) { case 0: case "SERVICE_SIGNATURE_TYPE_UNKNOWN": return ServiceSignatureType.SERVICE_SIGNATURE_TYPE_UNKNOWN; case 1: case "SERVICE_SIGNATURE_TYPE_ETH": return ServiceSignatureType.SERVICE_SIGNATURE_TYPE_ETH; case -1: case "UNRECOGNIZED": default: return ServiceSignatureType.UNRECOGNIZED; } } function serviceSignatureTypeToJSON(object) { switch (object) { case ServiceSignatureType.SERVICE_SIGNATURE_TYPE_UNKNOWN: return "SERVICE_SIGNATURE_TYPE_UNKNOWN"; case ServiceSignatureType.SERVICE_SIGNATURE_TYPE_ETH: return "SERVICE_SIGNATURE_TYPE_ETH"; case ServiceSignatureType.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } var AttestorVersion = { ATTESTOR_VERSION_UNKNOWN: 0, ATTESTOR_VERSION_1_0_0: 1, ATTESTOR_VERSION_1_1_0: 2, ATTESTOR_VERSION_2_0_0: 3, ATTESTOR_VERSION_2_0_1: 4, ATTESTOR_VERSION_3_0_0: 5, ATTESTOR_VERSION_3_1_0: 6, ATTESTOR_VERSION_3_2_0: 7, UNRECOGNIZED: -1 }; function attestorVersionFromJSON(object) { switch (object) { case 0: case "ATTESTOR_VERSION_UNKNOWN": return AttestorVersion.ATTESTOR_VERSION_UNKNOWN; case 1: case "ATTESTOR_VERSION_1_0_0": return AttestorVersion.ATTESTOR_VERSION_1_0_0; case 2: case "ATTESTOR_VERSION_1_1_0": return AttestorVersion.ATTESTOR_VERSION_1_1_0; case 3: case "ATTESTOR_VERSION_2_0_0": return AttestorVersion.ATTESTOR_VERSION_2_0_0; case 4: case "ATTESTOR_VERSION_2_0_1": return AttestorVersion.ATTESTOR_VERSION_2_0_1; case 5: case "ATTESTOR_VERSION_3_0_0": return AttestorVersion.ATTESTOR_VERSION_3_0_0; case 6: case "ATTESTOR_VERSION_3_1_0": return AttestorVersion.ATTESTOR_VERSION_3_1_0; case 7: case "ATTESTOR_VERSION_3_2_0": return AttestorVersion.ATTESTOR_VERSION_3_2_0; case -1: case "UNRECOGNIZED": default: return AttestorVersion.UNRECOGNIZED; } } function attestorVersionToJSON(object) { switch (object) { case AttestorVersion.ATTESTOR_VERSION_UNKNOWN: return "ATTESTOR_VERSION_UNKNOWN"; case AttestorVersion.ATTESTOR_VERSION_1_0_0: return "ATTESTOR_VERSION_1_0_0"; case AttestorVersion.ATTESTOR_VERSION_1_1_0: return "ATTESTOR_VERSION_1_1_0"; case AttestorVersion.ATTESTOR_VERSION_2_0_0: return "ATTESTOR_VERSION_2_0_0"; case AttestorVersion.ATTESTOR_VERSION_2_0_1: return "ATTESTOR_VERSION_2_0_1"; case AttestorVersion.ATTESTOR_VERSION_3_0_0: return "ATTESTOR_VERSION_3_0_0"; case AttestorVersion.ATTESTOR_VERSION_3_1_0: return "ATTESTOR_VERSION_3_1_0"; case AttestorVersion.ATTESTOR_VERSION_3_2_0: return "ATTESTOR_VERSION_3_2_0"; case AttestorVersion.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } var ErrorCode = { /** * ERROR_NO_ERROR - 0 should be treated as the absence of an error * should be used when gracefully closing the connection */ ERROR_NO_ERROR: 0, /** * ERROR_INTERNAL - internal error in the attestor -- all "Error/TypeError" * messages are mapped to this */ ERROR_INTERNAL: 1, /** ERROR_BAD_REQUEST - bad request from the client */ ERROR_BAD_REQUEST: 2, /** ERROR_NOT_FOUND - the item requested was not found */ ERROR_NOT_FOUND: 3, /** ERROR_PROXY_ERROR - error in the proxy */ ERROR_PROXY_ERROR: 4, /** * ERROR_INVALID_CLAIM - claim creation failed -- i.e. the transcript * did not result in a valid claim */ ERROR_INVALID_CLAIM: 5, /** ERROR_NETWORK_ERROR - any network error */ ERROR_NETWORK_ERROR: 6, /** ERROR_PAYMENT_REFUSED - attestor refused to pay the costs */ ERROR_PAYMENT_REFUSED: 7, /** * ERROR_BGP_ANNOUNCEMENT_OVERLAP - BGP announcement overlapped, potentially * compromising the claim's authenticity */ ERROR_BGP_ANNOUNCEMENT_OVERLAP: 8, /** ERROR_AUTHENTICATION_FAILED - authentication failed */ ERROR_AUTHENTICATION_FAILED: 9, /** ERROR_TIMEOUT - timed out waiting for the server to respond */ ERROR_TIMEOUT: 10, /** ERROR_TOPRF_OUT_OF_BOUNDS - toprf couldn't be computed, as it went out of bounds */ ERROR_TOPRF_OUT_OF_BOUNDS: 11, /** ERROR_CERTIFICATE_FETCH_FAILED - failed to fetch certificate bytes from the URL */ ERROR_CERTIFICATE_FETCH_FAILED: 12, UNRECOGNIZED: -1 }; function errorCodeFromJSON(object) { switch (object) { case 0: case "ERROR_NO_ERROR": return ErrorCode.ERROR_NO_ERROR; case 1: case "ERROR_INTERNAL": return ErrorCode.ERROR_INTERNAL; case 2: case "ERROR_BAD_REQUEST": return ErrorCode.ERROR_BAD_REQUEST; case 3: case "ERROR_NOT_FOUND": return ErrorCode.ERROR_NOT_FOUND; case 4: case "ERROR_PROXY_ERROR": return ErrorCode.ERROR_PROXY_ERROR; case 5: case "ERROR_INVALID_CLAIM": return ErrorCode.ERROR_INVALID_CLAIM; case 6: case "ERROR_NETWORK_ERROR": return ErrorCode.ERROR_NETWORK_ERROR; case 7: case "ERROR_PAYMENT_REFUSED": return ErrorCode.ERROR_PAYMENT_REFUSED; case 8: case "ERROR_BGP_ANNOUNCEMENT_OVERLAP": return ErrorCode.ERROR_BGP_ANNOUNCEMENT_OVERLAP; case 9: case "ERROR_AUTHENTICATION_FAILED": return ErrorCode.ERROR_AUTHENTICATION_FAILED; case 10: case "ERROR_TIMEOUT": return ErrorCode.ERROR_TIMEOUT; case 11: case "ERROR_TOPRF_OUT_OF_BOUNDS": return ErrorCode.ERROR_TOPRF_OUT_OF_BOUNDS; case 12: case "ERROR_CERTIFICATE_FETCH_FAILED": return ErrorCode.ERROR_CERTIFICATE_FETCH_FAILED; case -1: case "UNRECOGNIZED": default: return ErrorCode.UNRECOGNIZED; } } function errorCodeToJSON(object) { switch (object) { case ErrorCode.ERROR_NO_ERROR: return "ERROR_NO_ERROR"; case ErrorCode.ERROR_INTERNAL: return "ERROR_INTERNAL"; case ErrorCode.ERROR_BAD_REQUEST: return "ERROR_BAD_REQUEST"; case ErrorCode.ERROR_NOT_FOUND: return "ERROR_NOT_FOUND"; case ErrorCode.ERROR_PROXY_ERROR: return "ERROR_PROXY_ERROR"; case ErrorCode.ERROR_INVALID_CLAIM: return "ERROR_INVALID_CLAIM"; case ErrorCode.ERROR_NETWORK_ERROR: return "ERROR_NETWORK_ERROR"; case ErrorCode.ERROR_PAYMENT_REFUSED: return "ERROR_PAYMENT_REFUSED"; case ErrorCode.ERROR_BGP_ANNOUNCEMENT_OVERLAP: return "ERROR_BGP_ANNOUNCEMENT_OVERLAP"; case ErrorCode.ERROR_AUTHENTICATION_FAILED: return "ERROR_AUTHENTICATION_FAILED"; case ErrorCode.ERROR_TIMEOUT: return "ERROR_TIMEOUT"; case ErrorCode.ERROR_TOPRF_OUT_OF_BOUNDS: return "ERROR_TOPRF_OUT_OF_BOUNDS"; case ErrorCode.ERROR_CERTIFICATE_FETCH_FAILED: return "ERROR_CERTIFICATE_FETCH_FAILED"; case ErrorCode.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } var ZKProofEngine = { ZK_ENGINE_SNARKJS: 0, ZK_ENGINE_GNARK: 1, ZK_ENGINE_STWO: 2, UNRECOGNIZED: -1 }; function zKProofEngineFromJSON(object) { switch (object) { case 0: case "ZK_ENGINE_SNARKJS": return ZKProofEngine.ZK_ENGINE_SNARKJS; case 1: case "ZK_ENGINE_GNARK": return ZKProofEngine.ZK_ENGINE_GNARK; case 2: case "ZK_ENGINE_STWO": return ZKProofEngine.ZK_ENGINE_STWO; case -1: case "UNRECOGNIZED": default: return ZKProofEngine.UNRECOGNIZED; } } function zKProofEngineToJSON(object) { switch (object) { case ZKProofEngine.ZK_ENGINE_SNARKJS: return "ZK_ENGINE_SNARKJS"; case ZKProofEngine.ZK_ENGINE_GNARK: return "ZK_ENGINE_GNARK"; case ZKProofEngine.ZK_ENGINE_STWO: return "ZK_ENGINE_STWO"; case ZKProofEngine.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } function createBaseClaimContext() { return { extractedParameters: {}, providerHash: "" }; } var ClaimContext = { encode(message, writer = new BinaryWriter()) { globalThis.Object.entries(message.extractedParameters).forEach(([key, value]) => { ClaimContext_ExtractedParametersEntry.encode({ key, value }, writer.uint32(10).fork()).join(); }); if (message.providerHash !== "") { writer.uint32(18).string(message.providerHash); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseClaimContext(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } const entry1 = ClaimContext_ExtractedParametersEntry.decode(reader, reader.uint32()); if (entry1.value !== void 0) { message.extractedParameters[entry1.key] = entry1.value; } continue; } case 2: { if (tag !== 18) { break; } message.providerHash = reader.string(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { extractedParameters: isObject(object.extractedParameters) ? globalThis.Object.entries(object.extractedParameters).reduce( (acc, [key, value]) => { acc[key] = globalThis.String(value); return acc; }, {} ) : {}, providerHash: isSet(object.providerHash) ? globalThis.String(object.providerHash) : "" }; }, toJSON(message) { const obj = {}; if (message.extractedParameters) { const entries = globalThis.Object.entries(message.extractedParameters); if (entries.length > 0) { obj.extractedParameters = {}; entries.forEach(([k, v]) => { obj.extractedParameters[k] = v; }); } } if (message.providerHash !== "") { obj.providerHash = message.providerHash; } return obj; }, create(base) { return ClaimContext.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseClaimContext(); message.extractedParameters = globalThis.Object.entries(object.extractedParameters ?? {}).reduce((acc, [key, value]) => { if (value !== void 0) { acc[key] = globalThis.String(value); } return acc; }, {}); message.providerHash = object.providerHash ?? ""; return message; } }; function createBaseClaimContext_ExtractedParametersEntry() { return { key: "", value: "" }; } var ClaimContext_ExtractedParametersEntry = { encode(message, writer = new BinaryWriter()) { if (message.key !== "") { writer.uint32(10).string(message.key); } if (message.value !== "") { writer.uint32(18).string(message.value); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseClaimContext_ExtractedParametersEntry(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } message.key = reader.string(); continue; } case 2: { if (tag !== 18) { break; } message.value = reader.string(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { key: isSet(object.key) ? globalThis.String(object.key) : "", value: isSet(object.value) ? globalThis.String(object.value) : "" }; }, toJSON(message) { const obj = {}; if (message.key !== "") { obj.key = message.key; } if (message.value !== "") { obj.value = message.value; } return obj; }, create(base) { return ClaimContext_ExtractedParametersEntry.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseClaimContext_ExtractedParametersEntry(); message.key = object.key ?? ""; message.value = object.value ?? ""; return message; } }; function createBaseProviderClaimData() { return { provider: "", parameters: "", owner: "", timestampS: 0, context: "", identifier: "", epoch: 0 }; } var ProviderClaimData = { encode(message, writer = new BinaryWriter()) { if (message.provider !== "") { writer.uint32(10).string(message.provider); } if (message.parameters !== "") { writer.uint32(18).string(message.parameters); } if (message.owner !== "") { writer.uint32(26).string(message.owner); } if (message.timestampS !== 0) { writer.uint32(32).uint32(message.timestampS); } if (message.context !== "") { writer.uint32(50).string(message.context); } if (message.identifier !== "") { writer.uint32(66).string(message.identifier); } if (message.epoch !== 0) { writer.uint32(72).uint32(message.epoch); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseProviderClaimData(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } message.provider = reader.string(); continue; } case 2: { if (tag !== 18) { break; } message.parameters = reader.string(); continue; } case 3: { if (tag !== 26) { break; } message.owner = reader.string(); continue; } case 4: { if (tag !== 32) { break; } message.timestampS = reader.uint32(); continue; } case 6: { if (tag !== 50) { break; } message.context = reader.string(); continue; } case 8: { if (tag !== 66) { break; } message.identifier = reader.string(); continue; } case 9: { if (tag !== 72) { break; } message.epoch = reader.uint32(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { provider: isSet(object.provider) ? globalThis.String(object.provider) : "", parameters: isSet(object.parameters) ? globalThis.String(object.parameters) : "", owner: isSet(object.owner) ? globalThis.String(object.owner) : "", timestampS: isSet(object.timestampS) ? globalThis.Number(object.timestampS) : 0, context: isSet(object.context) ? globalThis.String(object.context) : "", identifier: isSet(object.identifier) ? globalThis.String(object.identifier) : "", epoch: isSet(object.epoch) ? globalThis.Number(object.epoch) : 0 }; }, toJSON(message) { const obj = {}; if (message.provider !== "") { obj.provider = message.provider; } if (message.parameters !== "") { obj.parameters = message.parameters; } if (message.owner !== "") { obj.owner = message.owner; } if (message.timestampS !== 0) { obj.timestampS = Math.round(message.timestampS); } if (message.context !== "") { obj.context = message.context; } if (message.identifier !== "") { obj.identifier = message.identifier; } if (message.epoch !== 0) { obj.epoch = Math.round(message.epoch); } return obj; }, create(base) { return ProviderClaimData.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseProviderClaimData(); message.provider = object.provider ?? ""; message.parameters = object.parameters ?? ""; message.owner = object.owner ?? ""; message.timestampS = object.timestampS ?? 0; message.context = object.context ?? ""; message.identifier = object.identifier ?? ""; message.epoch = object.epoch ?? 0; return message; } }; function createBaseProviderClaimInfo() { return { provider: "", parameters: "", context: "" }; } var ProviderClaimInfo = { encode(message, writer = new BinaryWriter()) { if (message.provider !== "") { writer.uint32(10).string(message.provider); } if (message.parameters !== "") { writer.uint32(18).string(message.parameters); } if (message.context !== "") { writer.uint32(50).string(message.context); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseProviderClaimInfo(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } message.provider = reader.string(); continue; } case 2: { if (tag !== 18) { break; } message.parameters = reader.string(); continue; } case 6: { if (tag !== 50) { break; } message.context = reader.string(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { provider: isSet(object.provider) ? globalThis.String(object.provider) : "", parameters: isSet(object.parameters) ? globalThis.String(object.parameters) : "", context: isSet(object.context) ? globalThis.String(object.context) : "" }; }, toJSON(message) { const obj = {}; if (message.provider !== "") { obj.provider = message.provider; } if (message.parameters !== "") { obj.parameters = message.parameters; } if (message.context !== "") { obj.context = message.context; } return obj; }, create(base) { return ProviderClaimInfo.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseProviderClaimInfo(); message.provider = object.provider ?? ""; message.parameters = object.parameters ?? ""; message.context = object.context ?? ""; return message; } }; function createBaseErrorData() { return { code: 0, message: "", data: "" }; } var ErrorData = { encode(message, writer = new BinaryWriter()) { if (message.code !== 0) { writer.uint32(8).int32(message.code); } if (message.message !== "") { writer.uint32(18).string(message.message); } if (message.data !== "") { writer.uint32(26).string(message.data); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseErrorData(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 8) { break; } message.code = reader.int32(); continue; } case 2: { if (tag !== 18) { break; } message.message = reader.string(); continue; } case 3: { if (tag !== 26) { break; } message.data = reader.string(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { code: isSet(object.code) ? errorCodeFromJSON(object.code) : 0, message: isSet(object.message) ? globalThis.String(object.message) : "", data: isSet(object.data) ? globalThis.String(object.data) : "" }; }, toJSON(message) { const obj = {}; if (message.code !== 0) { obj.code = errorCodeToJSON(message.code); } if (message.message !== "") { obj.message = message.message; } if (message.data !== "") { obj.data = message.data; } return obj; }, create(base) { return ErrorData.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseErrorData(); message.code = object.code ?? 0; message.message = object.message ?? ""; message.data = object.data ?? ""; return message; } }; function createBaseCreateTunnelRequest() { return { id: 0, host: "", port: 0, geoLocation: "", proxySessionId: "" }; } var CreateTunnelRequest = { encode(message, writer = new BinaryWriter()) { if (message.id !== 0) { writer.uint32(8).uint32(message.id); } if (message.host !== "") { writer.uint32(18).string(message.host); } if (message.port !== 0) { writer.uint32(24).uint32(message.port); } if (message.geoLocation !== "") { writer.uint32(34).string(message.geoLocation); } if (message.proxySessionId !== "") { writer.uint32(42).string(message.proxySessionId); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseCreateTunnelRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 8) { break; } message.id = reader.uint32(); continue; } case 2: { if (tag !== 18) { break; } message.host = reader.string(); continue; } case 3: { if (tag !== 24) { break; } message.port = reader.uint32(); continue; } case 4: { if (tag !== 34) { break; } message.geoLocation = reader.string(); continue; } case 5: { if (tag !== 42) { break; } message.proxySessionId = reader.string(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { id: isSet(object.id) ? globalThis.Number(object.id) : 0, host: isSet(object.host) ? globalThis.String(object.host) : "", port: isSet(object.port) ? globalThis.Number(object.port) : 0, geoLocation: isSet(object.geoLocation) ? globalThis.String(object.geoLocation) : "", proxySessionId: isSet(object.proxySessionId) ? globalThis.String(object.proxySessionId) : "" }; }, toJSON(message) { const obj = {}; if (message.id !== 0) { obj.id = Math.round(message.id); } if (message.host !== "") { obj.host = message.host; } if (message.port !== 0) { obj.port = Math.round(message.port); } if (message.geoLocation !== "") { obj.geoLocation = message.geoLocation; } if (message.proxySessionId !== "") { obj.proxySessionId = message.proxySessionId; } return obj; }, create(base) { return CreateTunnelRequest.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseCreateTunnelRequest(); message.id = object.id ?? 0; message.host = object.host ?? ""; message.port = object.port ?? 0; message.geoLocation = object.geoLocation ?? ""; message.proxySessionId = object.proxySessionId ?? ""; return message; } }; function createBaseFetchCertificateBytesRequest() { return { url: "" }; } var FetchCertificateBytesRequest = { encode(message, writer = new BinaryWriter()) { if (message.url !== "") { writer.uint32(10).string(message.url); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseFetchCertificateBytesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } message.url = reader.string(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { url: isSet(object.url) ? globalThis.String(object.url) : "" }; }, toJSON(message) { const obj = {}; if (message.url !== "") { obj.url = message.url; } return obj; }, create(base) { return FetchCertificateBytesRequest.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseFetchCertificateBytesRequest(); message.url = object.url ?? ""; return message; } }; function createBaseFetchCertificateBytesResponse() { return { bytes: new Uint8Array(0) }; } var FetchCertificateBytesResponse = { encode(message, writer = new BinaryWriter()) { if (message.bytes.length !== 0) { writer.uint32(10).bytes(message.bytes); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseFetchCertificateBytesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } message.bytes = reader.bytes(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { bytes: isSet(object.bytes) ? bytesFromBase64(object.bytes) : new Uint8Array(0) }; }, toJSON(message) { const obj = {}; if (message.bytes.length !== 0) { obj.bytes = base64FromBytes(message.bytes); } return obj; }, create(base) { return FetchCertificateBytesResponse.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseFetchCertificateBytesResponse(); message.bytes = object.bytes ?? new Uint8Array(0); return message; } }; function createBaseDisconnectTunnelRequest() { return { id: 0 }; } var DisconnectTunnelRequest = { encode(message, writer = new BinaryWriter()) { if (message.id !== 0) { writer.uint32(8).uint32(message.id); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseDisconnectTunnelRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 8) { break; } message.id = reader.uint32(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { id: isSet(object.id) ? globalThis.Number(object.id) : 0 }; }, toJSON(message) { const obj = {}; if (message.id !== 0) { obj.id = Math.round(message.id); } return obj; }, create(base) { return DisconnectTunnelRequest.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseDisconnectTunnelRequest(); message.id = object.id ?? 0; return message; } }; function createBaseEmpty() { return {}; } var Empty = { encode(_, writer = new BinaryWriter()) { return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseEmpty(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(_) { return {}; }, toJSON(_) { const obj = {}; return obj; }, create(base) { return Empty.fromPartial(base ?? {}); }, fromPartial(_) { const message = createBaseEmpty(); return message; } }; function createBaseTunnelMessage() { return { tunnelId: 0, message: new Uint8Array(0) }; } var TunnelMessage = { encode(message, writer = new BinaryWriter()) { if (message.tunnelId !== 0) { writer.uint32(8).uint32(message.tunnelId); } if (message.message.length !== 0) { writer.uint32(18).bytes(message.message); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseTunnelMessage(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 8) { break; } message.tunnelId = reader.uint32(); continue; } case 2: { if (tag !== 18) { break; } message.message = reader.bytes(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { tunnelId: isSet(object.tunnelId) ? globalThis.Number(object.tunnelId) : 0, message: isSet(object.message) ? bytesFromBase64(object.message) : new Uint8Array(0) }; }, toJSON(message) { const obj = {}; if (message.tunnelId !== 0) { obj.tunnelId = Math.round(message.tunnelId); } if (message.message.length !== 0) { obj.message = base64FromBytes(message.message); } return obj; }, create(base) { return TunnelMessage.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseTunnelMessage(); message.tunnelId = object.tunnelId ?? 0; message.message = object.message ?? new Uint8Array(0); return message; } }; function createBaseTunnelDisconnectEvent() { return { tunnelId: 0, error: void 0 }; } var TunnelDisconnectEvent = { encode(message, writer = new BinaryWriter()) { if (message.tunnelId !== 0) { writer.uint32(8).uint32(message.tunnelId); } if (message.error !== void 0) { ErrorData.encode(message.error, writer.uint32(18).fork()).join(); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseTunnelDisconnectEvent(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 8) { break; } message.tunnelId = reader.uint32(); continue; } case 2: { if (tag !== 18) { break; } message.error = ErrorData.decode(reader, reader.uint32()); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { tunnelId: isSet(object.tunnelId) ? globalThis.Number(object.tunnelId) : 0, error: isSet(object.error) ? ErrorData.fromJSON(object.error) : void 0 }; }, toJSON(message) { const obj = {}; if (message.tunnelId !== 0) { obj.tunnelId = Math.round(message.tunnelId); } if (message.error !== void 0) { obj.error = ErrorData.toJSON(message.error); } return obj; }, create(base) { return TunnelDisconnectEvent.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseTunnelDisconnectEvent(); message.tunnelId = object.tunnelId ?? 0; message.error = object.error !== void 0 && object.error !== null ? ErrorData.fromPartial(object.error) : void 0; return message; } }; function createBaseMessageReveal() { return { directReveal: void 0, zkReveal: void 0 }; } var MessageReveal = { encode(message, writer = new BinaryWriter()) { if (message.directReveal !== void 0) { MessageReveal_MessageRevealDirect.encode(message.directReveal, writer.uint32(10).fork()).join(); } if (message.zkReveal !== void 0) { MessageReveal_MessageRevealZk.encode(message.zkReveal, writer.uint32(18).fork()).join(); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseMessageReveal(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } message.directReveal = MessageReveal_MessageRevealDirect.decode(reader, reader.uint32()); continue; } case 2: { if (tag !== 18) { break; } message.zkReveal = MessageReveal_MessageRevealZk.decode(reader, reader.uint32()); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { directReveal: isSet(object.directReveal) ? MessageReveal_MessageRevealDirect.fromJSON(object.directReveal) : void 0, zkReveal: isSet(object.zkReveal) ? MessageReveal_MessageRevealZk.fromJSON(object.zkReveal) : void 0 }; }, toJSON(message) { const obj = {}; if (message.directReveal !== void 0) { obj.directReveal = MessageReveal_MessageRevealDirect.toJSON(message.directReveal); } if (message.zkReveal !== void 0) { obj.zkReveal = MessageReveal_MessageRevealZk.toJSON(message.zkReveal); } return obj; }, create(base) { return MessageReveal.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseMessageReveal(); message.directReveal = object.directReveal !== void 0 && object.directReveal !== null ? MessageReveal_MessageRevealDirect.fromPartial(object.directReveal) : void 0; message.zkReveal = object.zkReveal !== void 0 && object.zkReveal !== null ? MessageReveal_MessageRevealZk.fromPartial(object.zkReveal) : void 0; return message; } }; function createBaseMessageReveal_MessageRevealDirect() { return { key: new Uint8Array(0), iv: new Uint8Array(0), recordNumber: 0 }; } var MessageReveal_MessageRevealDirect = { encode(message, writer = new BinaryWriter()) { if (message.key.length !== 0) { writer.uint32(10).bytes(message.key); } if (message.iv.length !== 0) { writer.uint32(18).bytes(message.iv); } if (message.recordNumber !== 0) { writer.uint32(24).uint32(message.recordNumber); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseMessageReveal_MessageRevealDirect(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } message.key = reader.bytes(); continue; } case 2: { if (tag !== 18) { break; } message.iv = reader.bytes(); continue; } case 3: { if (tag !== 24) { break; } message.recordNumber = reader.uint32(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(0), iv: isSet(object.iv) ? bytesFromBase64(object.iv) : new Uint8Array(0), recordNumber: isSet(object.recordNumber) ? globalThis.Number(object.recordNumber) : 0 }; }, toJSON(message) { const obj = {}; if (message.key.length !== 0) { obj.key = base64FromBytes(message.key); } if (message.iv.length !== 0) { obj.iv = base64FromBytes(message.iv); } if (message.recordNumber !== 0) { obj.recordNumber = Math.round(message.recordNumber); } return obj; }, create(base) { return MessageReveal_MessageRevealDirect.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseMessageReveal_MessageRevealDirect(); message.key = object.key ?? new Uint8Array(0); message.iv = object.iv ?? new Uint8Array(0); message.recordNumber = object.recordNumber ?? 0; return message; } }; function createBaseMessageReveal_MessageRevealZk() { return { proofs: [], toprfs: [], oprfRawMarkers: [], overshotOprfRawLength: 0 }; } var MessageReveal_MessageRevealZk = { encode(message, writer = new BinaryWriter()) { for (const v of message.proofs) { MessageReveal_ZKProof.encode(v, writer.uint32(10).fork()).join(); } for (const v of message.toprfs) { MessageReveal_TOPRFProof.encode(v, writer.uint32(18).fork()).join(); } for (const v of message.oprfRawMarkers) { MessageReveal_OPRFRawMarker.encode(v, writer.uint32(26).fork()).join(); } if (message.overshotOprfRawLength !== 0) { writer.uint32(32).uint32(message.overshotOprfRawLength); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseMessageReveal_MessageRevealZk(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } message.proofs.push(MessageReveal_ZKProof.decode(reader, reader.uint32())); continue; } case 2: { if (tag !== 18) { break; } message.toprfs.push(MessageReveal_TOPRFProof.decode(reader, reader.uint32())); continue; } case 3: { if (tag !== 26) { break; } message.oprfRawMarkers.push(MessageReveal_OPRFRawMarker.decode(reader, reader.uint32())); continue; } case 4: { if (tag !== 32) { break; } message.overshotOprfRawLength = reader.uint32(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { proofs: globalThis.Array.isArray(object?.proofs) ? object.proofs.map((e) => MessageReveal_ZKProof.fromJSON(e)) : [], toprfs: globalThis.Array.isArray(object?.toprfs) ? object.toprfs.map((e) => MessageReveal_TOPRFProof.fromJSON(e)) : [], oprfRawMarkers: globalThis.Array.isArray(object?.oprfRawMarkers) ? object.oprfRawMarkers.map((e) => MessageReveal_OPRFRawMarker.fromJSON(e)) : [], overshotOprfRawLength: isSet(object.overshotOprfRawLength) ? globalThis.Number(object.overshotOprfRawLength) : 0 }; }, toJSON(message) { const obj = {}; if (message.proofs?.length) { obj.proofs = message.proofs.map((e) => MessageReveal_ZKProof.toJSON(e)); } if (message.toprfs?.length) { obj.toprfs = message.toprfs.map((e) => MessageReveal_TOPRFProof.toJSON(e)); } if (message.oprfRawMarkers?.length) { obj.oprfRawMarkers = message.oprfRawMarkers.map((e) => MessageReveal_OPRFRawMarker.toJSON(e)); } if (message.overshotOprfRawLength !== 0) { obj.overshotOprfRawLength = Math.round(message.overshotOprfRawLength); } return obj; }, create(base) { return MessageReveal_MessageRevealZk.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseMessageReveal_MessageRevealZk(); message.proofs = object.proofs?.map((e) => MessageReveal_ZKProof.fromPartial(e)) || []; message.toprfs = object.toprfs?.map((e) => MessageReveal_TOPRFProof.fromPartial(e)) || []; message.oprfRawMarkers = object.oprfRawMarkers?.map((e) => MessageReveal_OPRFRawMarker.fromPartial(e)) || []; message.overshotOprfRawLength = object.overshotOprfRawLength ?? 0; return message; } }; function createBaseMessageReveal_OPRFRawMarker() { return { dataLocation: void 0 }; } var MessageReveal_OPRFRawMarker = { encode(message, writer = new BinaryWriter()) { if (message.dataLocation !== void 0) { DataSlice.encode(message.dataLocation, writer.uint32(10).fork()).join(); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseMessageReveal_OPRFRawMarker(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } message.dataLocation = DataSlice.decode(reader, reader.uint32()); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { dataLocation: isSet(object.dataLocation) ? DataSlice.fromJSON(object.dataLocation) : void 0 }; }, toJSON(message) { const obj = {}; if (message.dataLocation !== void 0) { obj.dataLocation = DataSlice.toJSON(message.dataLocation); } return obj; }, create(base) { return MessageReveal_OPRFRawMarker.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseMessageReveal_OPRFRawMarker(); message.dataLocation = object.dataLocation !== void 0 && object.dataLocation !== null ? DataSlice.fromPartial(object.dataLocation) : void 0; return message; } }; function createBaseMessageReveal_ZKProof() { return { decryptedRedactedCiphertext: new Uint8Array(0), redactedPlaintext: new Uint8Array(0), startIdx: 0, proofData: new Uint8Array(0) }; } var MessageReveal_ZKProof = { encode(message, writer = new BinaryWriter()) { if (message.decryptedRedactedCiphertext.length !== 0) { writer.uint32(18).bytes(message.decryptedRedactedCiphertext); } if (message.redactedPlaintext.length !== 0) { writer.uint32(26).bytes(message.redactedPlaintext); } if (message.startIdx !== 0) { writer.uint32(32).uint32(message.startIdx); } if (message.proofData.length !== 0) { writer.uint32(42).bytes(message.proofData); } return writer; }, decode(input, length) { const reader = input instanceof BinaryReader ? input : new BinaryReader(input); const end = length === void 0 ? reader.len : reader.pos + length; const message = createBaseMessageReveal_ZKProof(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 2: { if (tag !== 18) { break; } message.decryptedRedactedCiphertext = reader.bytes(); continue; } case 3: { if (tag !== 26) { break; } message.redactedPlaintext = reader.bytes(); continue; } case 4: { if (tag !== 32) { break; } message.startIdx = reader.uint32(); continue; } ca