@reclaimprotocol/attestor-core 4.0.3 → 5.0.1-beta.1

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.
Files changed (249) hide show
  1. package/LICENSE +660 -660
  2. package/README.md +1 -2
  3. package/package.json +72 -60
  4. package/lib/avs/abis/avsDirectoryABI.d.ts +0 -60
  5. package/lib/avs/abis/avsDirectoryABI.js +0 -344
  6. package/lib/avs/abis/delegationABI.d.ts +0 -126
  7. package/lib/avs/abis/delegationABI.js +0 -5
  8. package/lib/avs/abis/registryABI.d.ts +0 -136
  9. package/lib/avs/abis/registryABI.js +0 -729
  10. package/lib/avs/client/create-claim-on-avs.d.ts +0 -12
  11. package/lib/avs/client/create-claim-on-avs.js +0 -147
  12. package/lib/avs/config.d.ts +0 -7
  13. package/lib/avs/config.js +0 -24
  14. package/lib/avs/contracts/ReclaimServiceManager.d.ts +0 -697
  15. package/lib/avs/contracts/ReclaimServiceManager.js +0 -3
  16. package/lib/avs/contracts/common.d.ts +0 -21
  17. package/lib/avs/contracts/common.js +0 -3
  18. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +0 -888
  19. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1174
  20. package/lib/avs/contracts/factories/index.d.ts +0 -1
  21. package/lib/avs/contracts/factories/index.js +0 -9
  22. package/lib/avs/contracts/index.d.ts +0 -3
  23. package/lib/avs/contracts/index.js +0 -40
  24. package/lib/avs/tests/test.operator.d.ts +0 -11
  25. package/lib/avs/tests/test.operator.js +0 -313
  26. package/lib/avs/tests/utils.d.ts +0 -2
  27. package/lib/avs/tests/utils.js +0 -50
  28. package/lib/avs/types/index.d.ts +0 -55
  29. package/lib/avs/types/index.js +0 -3
  30. package/lib/avs/utils/contracts.d.ts +0 -21
  31. package/lib/avs/utils/contracts.js +0 -38
  32. package/lib/avs/utils/register.d.ts +0 -27
  33. package/lib/avs/utils/register.js +0 -82
  34. package/lib/avs/utils/tasks.d.ts +0 -22
  35. package/lib/avs/utils/tasks.js +0 -45
  36. package/lib/client/create-claim.d.ts +0 -5
  37. package/lib/client/create-claim.js +0 -424
  38. package/lib/client/index.d.ts +0 -3
  39. package/lib/client/index.js +0 -20
  40. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +0 -16
  41. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -60
  42. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +0 -25
  43. package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -135
  44. package/lib/client/utils/attestor-pool.d.ts +0 -6
  45. package/lib/client/utils/attestor-pool.js +0 -28
  46. package/lib/client/utils/client-socket.d.ts +0 -11
  47. package/lib/client/utils/client-socket.js +0 -100
  48. package/lib/client/utils/message-handler.d.ts +0 -4
  49. package/lib/client/utils/message-handler.js +0 -94
  50. package/lib/config/index.d.ts +0 -28
  51. package/lib/config/index.js +0 -39
  52. package/lib/index.d.ts +0 -10
  53. package/lib/index.js +0 -50
  54. package/lib/mechain/abis/governanceABI.d.ts +0 -50
  55. package/lib/mechain/abis/governanceABI.js +0 -462
  56. package/lib/mechain/abis/taskABI.d.ts +0 -157
  57. package/lib/mechain/abis/taskABI.js +0 -513
  58. package/lib/mechain/client/create-claim-on-mechain.d.ts +0 -10
  59. package/lib/mechain/client/create-claim-on-mechain.js +0 -32
  60. package/lib/mechain/client/index.d.ts +0 -1
  61. package/lib/mechain/client/index.js +0 -18
  62. package/lib/mechain/constants/index.d.ts +0 -3
  63. package/lib/mechain/constants/index.js +0 -7
  64. package/lib/mechain/index.d.ts +0 -2
  65. package/lib/mechain/index.js +0 -19
  66. package/lib/mechain/types/index.d.ts +0 -23
  67. package/lib/mechain/types/index.js +0 -3
  68. package/lib/proto/api.d.ts +0 -508
  69. package/lib/proto/api.js +0 -3700
  70. package/lib/providers/http/index.d.ts +0 -3
  71. package/lib/providers/http/index.js +0 -613
  72. package/lib/providers/http/utils.d.ts +0 -74
  73. package/lib/providers/http/utils.js +0 -360
  74. package/lib/providers/index.d.ts +0 -4
  75. package/lib/providers/index.js +0 -11
  76. package/lib/scripts/check-avs-registration.d.ts +0 -1
  77. package/lib/scripts/check-avs-registration.js +0 -29
  78. package/lib/scripts/generate-provider-types.d.ts +0 -5
  79. package/lib/scripts/generate-provider-types.js +0 -82
  80. package/lib/scripts/generate-receipt.d.ts +0 -9
  81. package/lib/scripts/generate-receipt.js +0 -90
  82. package/lib/scripts/generate-toprf-keys.d.ts +0 -1
  83. package/lib/scripts/generate-toprf-keys.js +0 -23
  84. package/lib/scripts/register-avs-operator.d.ts +0 -1
  85. package/lib/scripts/register-avs-operator.js +0 -7
  86. package/lib/scripts/start-server.d.ts +0 -1
  87. package/lib/scripts/start-server.js +0 -13
  88. package/lib/scripts/update-avs-metadata.d.ts +0 -1
  89. package/lib/scripts/update-avs-metadata.js +0 -22
  90. package/lib/scripts/utils.d.ts +0 -1
  91. package/lib/scripts/utils.js +0 -11
  92. package/lib/scripts/verify-root-ca.d.ts +0 -1
  93. package/lib/scripts/verify-root-ca.js +0 -51
  94. package/lib/scripts/whitelist-operator.d.ts +0 -1
  95. package/lib/scripts/whitelist-operator.js +0 -18
  96. package/lib/server/create-server.d.ts +0 -7
  97. package/lib/server/create-server.js +0 -92
  98. package/lib/server/handlers/claimTunnel.d.ts +0 -2
  99. package/lib/server/handlers/claimTunnel.js +0 -78
  100. package/lib/server/handlers/completeClaimOnChain.d.ts +0 -2
  101. package/lib/server/handlers/completeClaimOnChain.js +0 -28
  102. package/lib/server/handlers/createClaimOnChain.d.ts +0 -2
  103. package/lib/server/handlers/createClaimOnChain.js +0 -31
  104. package/lib/server/handlers/createTaskOnMechain.d.ts +0 -2
  105. package/lib/server/handlers/createTaskOnMechain.js +0 -52
  106. package/lib/server/handlers/createTunnel.d.ts +0 -2
  107. package/lib/server/handlers/createTunnel.js +0 -101
  108. package/lib/server/handlers/disconnectTunnel.d.ts +0 -2
  109. package/lib/server/handlers/disconnectTunnel.js +0 -10
  110. package/lib/server/handlers/index.d.ts +0 -4
  111. package/lib/server/handlers/index.js +0 -22
  112. package/lib/server/handlers/init.d.ts +0 -2
  113. package/lib/server/handlers/init.js +0 -36
  114. package/lib/server/handlers/toprf.d.ts +0 -2
  115. package/lib/server/handlers/toprf.js +0 -21
  116. package/lib/server/index.d.ts +0 -4
  117. package/lib/server/index.js +0 -21
  118. package/lib/server/socket.d.ts +0 -13
  119. package/lib/server/socket.js +0 -114
  120. package/lib/server/tunnels/make-tcp-tunnel.d.ts +0 -20
  121. package/lib/server/tunnels/make-tcp-tunnel.js +0 -175
  122. package/lib/server/utils/apm.d.ts +0 -11
  123. package/lib/server/utils/apm.js +0 -43
  124. package/lib/server/utils/assert-valid-claim-request.d.ts +0 -30
  125. package/lib/server/utils/assert-valid-claim-request.js +0 -200
  126. package/lib/server/utils/config-env.d.ts +0 -1
  127. package/lib/server/utils/config-env.js +0 -7
  128. package/lib/server/utils/dns.d.ts +0 -1
  129. package/lib/server/utils/dns.js +0 -22
  130. package/lib/server/utils/generics.d.ts +0 -22
  131. package/lib/server/utils/generics.js +0 -59
  132. package/lib/server/utils/iso.d.ts +0 -1
  133. package/lib/server/utils/iso.js +0 -260
  134. package/lib/server/utils/keep-alive.d.ts +0 -7
  135. package/lib/server/utils/keep-alive.js +0 -42
  136. package/lib/server/utils/process-handshake.d.ts +0 -13
  137. package/lib/server/utils/process-handshake.js +0 -191
  138. package/lib/tests/describe-with-server.d.ts +0 -20
  139. package/lib/tests/describe-with-server.js +0 -64
  140. package/lib/tests/mock-provider-server.d.ts +0 -13
  141. package/lib/tests/mock-provider-server.js +0 -65
  142. package/lib/tests/mocks.d.ts +0 -4
  143. package/lib/tests/mocks.js +0 -23
  144. package/lib/tests/test.auth.d.ts +0 -1
  145. package/lib/tests/test.auth.js +0 -75
  146. package/lib/tests/test.bgp-listener.d.ts +0 -1
  147. package/lib/tests/test.bgp-listener.js +0 -169
  148. package/lib/tests/test.claim-creation.d.ts +0 -1
  149. package/lib/tests/test.claim-creation.js +0 -280
  150. package/lib/tests/test.http-parser.d.ts +0 -1
  151. package/lib/tests/test.http-parser.js +0 -120
  152. package/lib/tests/test.http-provider-utils.d.ts +0 -1
  153. package/lib/tests/test.http-provider-utils.js +0 -2416
  154. package/lib/tests/test.http-provider.d.ts +0 -1
  155. package/lib/tests/test.http-provider.js +0 -114
  156. package/lib/tests/test.rpc-communication.d.ts +0 -1
  157. package/lib/tests/test.rpc-communication.js +0 -64
  158. package/lib/tests/test.rpc-tunnel.d.ts +0 -1
  159. package/lib/tests/test.rpc-tunnel.js +0 -172
  160. package/lib/tests/test.signatures.d.ts +0 -1
  161. package/lib/tests/test.signatures.js +0 -24
  162. package/lib/tests/test.tcp-tunnel.d.ts +0 -1
  163. package/lib/tests/test.tcp-tunnel.js +0 -64
  164. package/lib/tests/test.zk.d.ts +0 -1
  165. package/lib/tests/test.zk.js +0 -337
  166. package/lib/tests/utils.d.ts +0 -18
  167. package/lib/tests/utils.js +0 -64
  168. package/lib/types/bgp.d.ts +0 -11
  169. package/lib/types/bgp.js +0 -3
  170. package/lib/types/claims.d.ts +0 -73
  171. package/lib/types/claims.js +0 -3
  172. package/lib/types/client.d.ts +0 -163
  173. package/lib/types/client.js +0 -3
  174. package/lib/types/general.d.ts +0 -51
  175. package/lib/types/general.js +0 -3
  176. package/lib/types/handlers.d.ts +0 -10
  177. package/lib/types/handlers.js +0 -3
  178. package/lib/types/index.d.ts +0 -10
  179. package/lib/types/index.js +0 -27
  180. package/lib/types/providers.d.ts +0 -150
  181. package/lib/types/providers.gen.d.ts +0 -429
  182. package/lib/types/providers.gen.js +0 -14
  183. package/lib/types/providers.js +0 -3
  184. package/lib/types/rpc.d.ts +0 -35
  185. package/lib/types/rpc.js +0 -3
  186. package/lib/types/signatures.d.ts +0 -28
  187. package/lib/types/signatures.js +0 -3
  188. package/lib/types/tunnel.d.ts +0 -18
  189. package/lib/types/tunnel.js +0 -3
  190. package/lib/types/zk.d.ts +0 -23
  191. package/lib/types/zk.js +0 -3
  192. package/lib/utils/atomic-operations.d.ts +0 -24
  193. package/lib/utils/atomic-operations.js +0 -65
  194. package/lib/utils/auth.d.ts +0 -7
  195. package/lib/utils/auth.js +0 -64
  196. package/lib/utils/b64-json.d.ts +0 -2
  197. package/lib/utils/b64-json.js +0 -23
  198. package/lib/utils/benchmark.d.ts +0 -1
  199. package/lib/utils/benchmark.js +0 -70
  200. package/lib/utils/bgp-listener.d.ts +0 -7
  201. package/lib/utils/bgp-listener.js +0 -126
  202. package/lib/utils/claims.d.ts +0 -33
  203. package/lib/utils/claims.js +0 -112
  204. package/lib/utils/connection-state-machine.d.ts +0 -43
  205. package/lib/utils/connection-state-machine.js +0 -129
  206. package/lib/utils/env.d.ts +0 -3
  207. package/lib/utils/env.js +0 -20
  208. package/lib/utils/error.d.ts +0 -27
  209. package/lib/utils/error.js +0 -43
  210. package/lib/utils/generics.d.ts +0 -112
  211. package/lib/utils/generics.js +0 -348
  212. package/lib/utils/http-parser.d.ts +0 -59
  213. package/lib/utils/http-parser.js +0 -252
  214. package/lib/utils/index.d.ts +0 -12
  215. package/lib/utils/index.js +0 -29
  216. package/lib/utils/logger.d.ts +0 -13
  217. package/lib/utils/logger.js +0 -100
  218. package/lib/utils/prepare-packets.d.ts +0 -16
  219. package/lib/utils/prepare-packets.js +0 -61
  220. package/lib/utils/redactions.d.ts +0 -54
  221. package/lib/utils/redactions.js +0 -148
  222. package/lib/utils/resource-monitor.d.ts +0 -61
  223. package/lib/utils/resource-monitor.js +0 -107
  224. package/lib/utils/retries.d.ts +0 -12
  225. package/lib/utils/retries.js +0 -28
  226. package/lib/utils/signatures/eth.d.ts +0 -2
  227. package/lib/utils/signatures/eth.js +0 -33
  228. package/lib/utils/signatures/index.d.ts +0 -5
  229. package/lib/utils/signatures/index.js +0 -11
  230. package/lib/utils/socket-base.d.ts +0 -22
  231. package/lib/utils/socket-base.js +0 -95
  232. package/lib/utils/tls.d.ts +0 -2
  233. package/lib/utils/tls.js +0 -32
  234. package/lib/utils/validation.d.ts +0 -2
  235. package/lib/utils/validation.js +0 -46
  236. package/lib/utils/ws.d.ts +0 -12
  237. package/lib/utils/ws.js +0 -38
  238. package/lib/utils/zk.d.ts +0 -55
  239. package/lib/utils/zk.js +0 -444
  240. package/lib/window-rpc/index.d.ts +0 -3
  241. package/lib/window-rpc/index.js +0 -20
  242. package/lib/window-rpc/setup-window-rpc.d.ts +0 -5
  243. package/lib/window-rpc/setup-window-rpc.js +0 -291
  244. package/lib/window-rpc/types.d.ts +0 -192
  245. package/lib/window-rpc/types.js +0 -3
  246. package/lib/window-rpc/utils.d.ts +0 -14
  247. package/lib/window-rpc/utils.js +0 -102
  248. package/lib/window-rpc/window-rpc-zk.d.ts +0 -15
  249. package/lib/window-rpc/window-rpc-zk.js +0 -85
package/lib/proto/api.js DELETED
@@ -1,3700 +0,0 @@
1
- "use strict";
2
- // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
- // versions:
4
- // protoc-gen-ts_proto v2.5.0
5
- // protoc v3.21.12
6
- // source: api.proto
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.RPCMessages = exports.RPCMessage = exports.TOPRFResponse = exports.TOPRFRequest = exports.InitResponse = exports.InitRequest = exports.AuthenticationRequest = exports.AuthenticatedUserData = exports.CreateTaskOnMechainResponse = exports.CreateTaskOnMechainRequest = exports.CompleteClaimOnAvsResponse = exports.CompleteClaimOnAvsRequest = exports.RequestClaimOnAvsResponse = exports.RequestClaimOnAvsRequest = exports.ClaimTunnelResponse_Signatures = exports.ClaimTunnelResponse = exports.ClaimTunnelRequest_TranscriptMessage = exports.ClaimTunnelRequest_Signatures = exports.ClaimTunnelRequest = exports.ClaimRequestData = exports.DataSlice = exports.TOPRFPayload = exports.MessageReveal_ZKProof = exports.MessageReveal_MessageRevealZk = exports.MessageReveal_MessageRevealDirect = exports.MessageReveal = exports.TunnelDisconnectEvent = exports.TunnelMessage = exports.Empty = exports.DisconnectTunnelRequest = exports.CreateTunnelRequest = exports.ErrorData = exports.ProviderClaimInfo = exports.ProviderClaimData = exports.ClaimContext_ExtractedParametersEntry = exports.ClaimContext = exports.ZKProofEngine = exports.ErrorCode = exports.AttestorVersion = exports.ServiceSignatureType = exports.TranscriptMessageSenderType = exports.protobufPackage = void 0;
9
- exports.transcriptMessageSenderTypeFromJSON = transcriptMessageSenderTypeFromJSON;
10
- exports.transcriptMessageSenderTypeToJSON = transcriptMessageSenderTypeToJSON;
11
- exports.serviceSignatureTypeFromJSON = serviceSignatureTypeFromJSON;
12
- exports.serviceSignatureTypeToJSON = serviceSignatureTypeToJSON;
13
- exports.attestorVersionFromJSON = attestorVersionFromJSON;
14
- exports.attestorVersionToJSON = attestorVersionToJSON;
15
- exports.errorCodeFromJSON = errorCodeFromJSON;
16
- exports.errorCodeToJSON = errorCodeToJSON;
17
- exports.zKProofEngineFromJSON = zKProofEngineFromJSON;
18
- exports.zKProofEngineToJSON = zKProofEngineToJSON;
19
- /* eslint-disable */
20
- const wire_1 = require("@bufbuild/protobuf/wire");
21
- exports.protobufPackage = "reclaim_attestor";
22
- var TranscriptMessageSenderType;
23
- (function (TranscriptMessageSenderType) {
24
- TranscriptMessageSenderType[TranscriptMessageSenderType["TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN"] = 0] = "TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN";
25
- TranscriptMessageSenderType[TranscriptMessageSenderType["TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT"] = 1] = "TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT";
26
- TranscriptMessageSenderType[TranscriptMessageSenderType["TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER"] = 2] = "TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER";
27
- TranscriptMessageSenderType[TranscriptMessageSenderType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
28
- })(TranscriptMessageSenderType || (exports.TranscriptMessageSenderType = TranscriptMessageSenderType = {}));
29
- function transcriptMessageSenderTypeFromJSON(object) {
30
- switch (object) {
31
- case 0:
32
- case "TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN":
33
- return TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN;
34
- case 1:
35
- case "TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT":
36
- return TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT;
37
- case 2:
38
- case "TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER":
39
- return TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER;
40
- case -1:
41
- case "UNRECOGNIZED":
42
- default:
43
- return TranscriptMessageSenderType.UNRECOGNIZED;
44
- }
45
- }
46
- function transcriptMessageSenderTypeToJSON(object) {
47
- switch (object) {
48
- case TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN:
49
- return "TRANSCRIPT_MESSAGE_SENDER_TYPE_UNKNOWN";
50
- case TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT:
51
- return "TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT";
52
- case TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER:
53
- return "TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER";
54
- case TranscriptMessageSenderType.UNRECOGNIZED:
55
- default:
56
- return "UNRECOGNIZED";
57
- }
58
- }
59
- var ServiceSignatureType;
60
- (function (ServiceSignatureType) {
61
- ServiceSignatureType[ServiceSignatureType["SERVICE_SIGNATURE_TYPE_UNKNOWN"] = 0] = "SERVICE_SIGNATURE_TYPE_UNKNOWN";
62
- /**
63
- * SERVICE_SIGNATURE_TYPE_ETH - ETH keys & signature
64
- * keys: secp256k1
65
- * signature: ethereum flavor of ECDSA (https://goethereumbook.org/signature-generate/)
66
- */
67
- ServiceSignatureType[ServiceSignatureType["SERVICE_SIGNATURE_TYPE_ETH"] = 1] = "SERVICE_SIGNATURE_TYPE_ETH";
68
- ServiceSignatureType[ServiceSignatureType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
69
- })(ServiceSignatureType || (exports.ServiceSignatureType = ServiceSignatureType = {}));
70
- function serviceSignatureTypeFromJSON(object) {
71
- switch (object) {
72
- case 0:
73
- case "SERVICE_SIGNATURE_TYPE_UNKNOWN":
74
- return ServiceSignatureType.SERVICE_SIGNATURE_TYPE_UNKNOWN;
75
- case 1:
76
- case "SERVICE_SIGNATURE_TYPE_ETH":
77
- return ServiceSignatureType.SERVICE_SIGNATURE_TYPE_ETH;
78
- case -1:
79
- case "UNRECOGNIZED":
80
- default:
81
- return ServiceSignatureType.UNRECOGNIZED;
82
- }
83
- }
84
- function serviceSignatureTypeToJSON(object) {
85
- switch (object) {
86
- case ServiceSignatureType.SERVICE_SIGNATURE_TYPE_UNKNOWN:
87
- return "SERVICE_SIGNATURE_TYPE_UNKNOWN";
88
- case ServiceSignatureType.SERVICE_SIGNATURE_TYPE_ETH:
89
- return "SERVICE_SIGNATURE_TYPE_ETH";
90
- case ServiceSignatureType.UNRECOGNIZED:
91
- default:
92
- return "UNRECOGNIZED";
93
- }
94
- }
95
- var AttestorVersion;
96
- (function (AttestorVersion) {
97
- AttestorVersion[AttestorVersion["ATTESTOR_VERSION_UNKNOWN"] = 0] = "ATTESTOR_VERSION_UNKNOWN";
98
- AttestorVersion[AttestorVersion["ATTESTOR_VERSION_1_0_0"] = 1] = "ATTESTOR_VERSION_1_0_0";
99
- AttestorVersion[AttestorVersion["ATTESTOR_VERSION_1_1_0"] = 2] = "ATTESTOR_VERSION_1_1_0";
100
- AttestorVersion[AttestorVersion["ATTESTOR_VERSION_2_0_0"] = 3] = "ATTESTOR_VERSION_2_0_0";
101
- AttestorVersion[AttestorVersion["ATTESTOR_VERSION_2_0_1"] = 4] = "ATTESTOR_VERSION_2_0_1";
102
- AttestorVersion[AttestorVersion["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
103
- })(AttestorVersion || (exports.AttestorVersion = AttestorVersion = {}));
104
- function attestorVersionFromJSON(object) {
105
- switch (object) {
106
- case 0:
107
- case "ATTESTOR_VERSION_UNKNOWN":
108
- return AttestorVersion.ATTESTOR_VERSION_UNKNOWN;
109
- case 1:
110
- case "ATTESTOR_VERSION_1_0_0":
111
- return AttestorVersion.ATTESTOR_VERSION_1_0_0;
112
- case 2:
113
- case "ATTESTOR_VERSION_1_1_0":
114
- return AttestorVersion.ATTESTOR_VERSION_1_1_0;
115
- case 3:
116
- case "ATTESTOR_VERSION_2_0_0":
117
- return AttestorVersion.ATTESTOR_VERSION_2_0_0;
118
- case 4:
119
- case "ATTESTOR_VERSION_2_0_1":
120
- return AttestorVersion.ATTESTOR_VERSION_2_0_1;
121
- case -1:
122
- case "UNRECOGNIZED":
123
- default:
124
- return AttestorVersion.UNRECOGNIZED;
125
- }
126
- }
127
- function attestorVersionToJSON(object) {
128
- switch (object) {
129
- case AttestorVersion.ATTESTOR_VERSION_UNKNOWN:
130
- return "ATTESTOR_VERSION_UNKNOWN";
131
- case AttestorVersion.ATTESTOR_VERSION_1_0_0:
132
- return "ATTESTOR_VERSION_1_0_0";
133
- case AttestorVersion.ATTESTOR_VERSION_1_1_0:
134
- return "ATTESTOR_VERSION_1_1_0";
135
- case AttestorVersion.ATTESTOR_VERSION_2_0_0:
136
- return "ATTESTOR_VERSION_2_0_0";
137
- case AttestorVersion.ATTESTOR_VERSION_2_0_1:
138
- return "ATTESTOR_VERSION_2_0_1";
139
- case AttestorVersion.UNRECOGNIZED:
140
- default:
141
- return "UNRECOGNIZED";
142
- }
143
- }
144
- var ErrorCode;
145
- (function (ErrorCode) {
146
- /**
147
- * ERROR_NO_ERROR - 0 should be treated as the absence of an error
148
- * should be used when gracefully closing the connection
149
- */
150
- ErrorCode[ErrorCode["ERROR_NO_ERROR"] = 0] = "ERROR_NO_ERROR";
151
- /**
152
- * ERROR_INTERNAL - internal error in the attestor -- all "Error/TypeError"
153
- * messages are mapped to this
154
- */
155
- ErrorCode[ErrorCode["ERROR_INTERNAL"] = 1] = "ERROR_INTERNAL";
156
- /** ERROR_BAD_REQUEST - bad request from the client */
157
- ErrorCode[ErrorCode["ERROR_BAD_REQUEST"] = 2] = "ERROR_BAD_REQUEST";
158
- /** ERROR_NOT_FOUND - the item requested was not found */
159
- ErrorCode[ErrorCode["ERROR_NOT_FOUND"] = 3] = "ERROR_NOT_FOUND";
160
- /** ERROR_PROXY_ERROR - error in the proxy */
161
- ErrorCode[ErrorCode["ERROR_PROXY_ERROR"] = 4] = "ERROR_PROXY_ERROR";
162
- /**
163
- * ERROR_INVALID_CLAIM - claim creation failed -- i.e. the transcript
164
- * did not result in a valid claim
165
- */
166
- ErrorCode[ErrorCode["ERROR_INVALID_CLAIM"] = 5] = "ERROR_INVALID_CLAIM";
167
- /** ERROR_NETWORK_ERROR - any network error */
168
- ErrorCode[ErrorCode["ERROR_NETWORK_ERROR"] = 6] = "ERROR_NETWORK_ERROR";
169
- /** ERROR_PAYMENT_REFUSED - attestor refused to pay the costs */
170
- ErrorCode[ErrorCode["ERROR_PAYMENT_REFUSED"] = 7] = "ERROR_PAYMENT_REFUSED";
171
- /**
172
- * ERROR_BGP_ANNOUNCEMENT_OVERLAP - BGP announcement overlapped, potentially
173
- * compromising the claim's authenticity
174
- */
175
- ErrorCode[ErrorCode["ERROR_BGP_ANNOUNCEMENT_OVERLAP"] = 8] = "ERROR_BGP_ANNOUNCEMENT_OVERLAP";
176
- /** ERROR_AUTHENTICATION_FAILED - authentication failed */
177
- ErrorCode[ErrorCode["ERROR_AUTHENTICATION_FAILED"] = 9] = "ERROR_AUTHENTICATION_FAILED";
178
- /** ERROR_TIMEOUT - timed out waiting for the server to respond */
179
- ErrorCode[ErrorCode["ERROR_TIMEOUT"] = 10] = "ERROR_TIMEOUT";
180
- ErrorCode[ErrorCode["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
181
- })(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
182
- function errorCodeFromJSON(object) {
183
- switch (object) {
184
- case 0:
185
- case "ERROR_NO_ERROR":
186
- return ErrorCode.ERROR_NO_ERROR;
187
- case 1:
188
- case "ERROR_INTERNAL":
189
- return ErrorCode.ERROR_INTERNAL;
190
- case 2:
191
- case "ERROR_BAD_REQUEST":
192
- return ErrorCode.ERROR_BAD_REQUEST;
193
- case 3:
194
- case "ERROR_NOT_FOUND":
195
- return ErrorCode.ERROR_NOT_FOUND;
196
- case 4:
197
- case "ERROR_PROXY_ERROR":
198
- return ErrorCode.ERROR_PROXY_ERROR;
199
- case 5:
200
- case "ERROR_INVALID_CLAIM":
201
- return ErrorCode.ERROR_INVALID_CLAIM;
202
- case 6:
203
- case "ERROR_NETWORK_ERROR":
204
- return ErrorCode.ERROR_NETWORK_ERROR;
205
- case 7:
206
- case "ERROR_PAYMENT_REFUSED":
207
- return ErrorCode.ERROR_PAYMENT_REFUSED;
208
- case 8:
209
- case "ERROR_BGP_ANNOUNCEMENT_OVERLAP":
210
- return ErrorCode.ERROR_BGP_ANNOUNCEMENT_OVERLAP;
211
- case 9:
212
- case "ERROR_AUTHENTICATION_FAILED":
213
- return ErrorCode.ERROR_AUTHENTICATION_FAILED;
214
- case 10:
215
- case "ERROR_TIMEOUT":
216
- return ErrorCode.ERROR_TIMEOUT;
217
- case -1:
218
- case "UNRECOGNIZED":
219
- default:
220
- return ErrorCode.UNRECOGNIZED;
221
- }
222
- }
223
- function errorCodeToJSON(object) {
224
- switch (object) {
225
- case ErrorCode.ERROR_NO_ERROR:
226
- return "ERROR_NO_ERROR";
227
- case ErrorCode.ERROR_INTERNAL:
228
- return "ERROR_INTERNAL";
229
- case ErrorCode.ERROR_BAD_REQUEST:
230
- return "ERROR_BAD_REQUEST";
231
- case ErrorCode.ERROR_NOT_FOUND:
232
- return "ERROR_NOT_FOUND";
233
- case ErrorCode.ERROR_PROXY_ERROR:
234
- return "ERROR_PROXY_ERROR";
235
- case ErrorCode.ERROR_INVALID_CLAIM:
236
- return "ERROR_INVALID_CLAIM";
237
- case ErrorCode.ERROR_NETWORK_ERROR:
238
- return "ERROR_NETWORK_ERROR";
239
- case ErrorCode.ERROR_PAYMENT_REFUSED:
240
- return "ERROR_PAYMENT_REFUSED";
241
- case ErrorCode.ERROR_BGP_ANNOUNCEMENT_OVERLAP:
242
- return "ERROR_BGP_ANNOUNCEMENT_OVERLAP";
243
- case ErrorCode.ERROR_AUTHENTICATION_FAILED:
244
- return "ERROR_AUTHENTICATION_FAILED";
245
- case ErrorCode.ERROR_TIMEOUT:
246
- return "ERROR_TIMEOUT";
247
- case ErrorCode.UNRECOGNIZED:
248
- default:
249
- return "UNRECOGNIZED";
250
- }
251
- }
252
- var ZKProofEngine;
253
- (function (ZKProofEngine) {
254
- ZKProofEngine[ZKProofEngine["ZK_ENGINE_SNARKJS"] = 0] = "ZK_ENGINE_SNARKJS";
255
- ZKProofEngine[ZKProofEngine["ZK_ENGINE_GNARK"] = 1] = "ZK_ENGINE_GNARK";
256
- ZKProofEngine[ZKProofEngine["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
257
- })(ZKProofEngine || (exports.ZKProofEngine = ZKProofEngine = {}));
258
- function zKProofEngineFromJSON(object) {
259
- switch (object) {
260
- case 0:
261
- case "ZK_ENGINE_SNARKJS":
262
- return ZKProofEngine.ZK_ENGINE_SNARKJS;
263
- case 1:
264
- case "ZK_ENGINE_GNARK":
265
- return ZKProofEngine.ZK_ENGINE_GNARK;
266
- case -1:
267
- case "UNRECOGNIZED":
268
- default:
269
- return ZKProofEngine.UNRECOGNIZED;
270
- }
271
- }
272
- function zKProofEngineToJSON(object) {
273
- switch (object) {
274
- case ZKProofEngine.ZK_ENGINE_SNARKJS:
275
- return "ZK_ENGINE_SNARKJS";
276
- case ZKProofEngine.ZK_ENGINE_GNARK:
277
- return "ZK_ENGINE_GNARK";
278
- case ZKProofEngine.UNRECOGNIZED:
279
- default:
280
- return "UNRECOGNIZED";
281
- }
282
- }
283
- function createBaseClaimContext() {
284
- return { extractedParameters: {}, providerHash: "" };
285
- }
286
- exports.ClaimContext = {
287
- encode(message, writer = new wire_1.BinaryWriter()) {
288
- Object.entries(message.extractedParameters).forEach(([key, value]) => {
289
- exports.ClaimContext_ExtractedParametersEntry.encode({ key: key, value }, writer.uint32(10).fork()).join();
290
- });
291
- if (message.providerHash !== "") {
292
- writer.uint32(18).string(message.providerHash);
293
- }
294
- return writer;
295
- },
296
- decode(input, length) {
297
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
298
- let end = length === undefined ? reader.len : reader.pos + length;
299
- const message = createBaseClaimContext();
300
- while (reader.pos < end) {
301
- const tag = reader.uint32();
302
- switch (tag >>> 3) {
303
- case 1: {
304
- if (tag !== 10) {
305
- break;
306
- }
307
- const entry1 = exports.ClaimContext_ExtractedParametersEntry.decode(reader, reader.uint32());
308
- if (entry1.value !== undefined) {
309
- message.extractedParameters[entry1.key] = entry1.value;
310
- }
311
- continue;
312
- }
313
- case 2: {
314
- if (tag !== 18) {
315
- break;
316
- }
317
- message.providerHash = reader.string();
318
- continue;
319
- }
320
- }
321
- if ((tag & 7) === 4 || tag === 0) {
322
- break;
323
- }
324
- reader.skip(tag & 7);
325
- }
326
- return message;
327
- },
328
- fromJSON(object) {
329
- return {
330
- extractedParameters: isObject(object.extractedParameters)
331
- ? Object.entries(object.extractedParameters).reduce((acc, [key, value]) => {
332
- acc[key] = String(value);
333
- return acc;
334
- }, {})
335
- : {},
336
- providerHash: isSet(object.providerHash) ? globalThis.String(object.providerHash) : "",
337
- };
338
- },
339
- toJSON(message) {
340
- const obj = {};
341
- if (message.extractedParameters) {
342
- const entries = Object.entries(message.extractedParameters);
343
- if (entries.length > 0) {
344
- obj.extractedParameters = {};
345
- entries.forEach(([k, v]) => {
346
- obj.extractedParameters[k] = v;
347
- });
348
- }
349
- }
350
- if (message.providerHash !== "") {
351
- obj.providerHash = message.providerHash;
352
- }
353
- return obj;
354
- },
355
- create(base) {
356
- return exports.ClaimContext.fromPartial(base !== null && base !== void 0 ? base : {});
357
- },
358
- fromPartial(object) {
359
- var _a, _b;
360
- const message = createBaseClaimContext();
361
- message.extractedParameters = Object.entries((_a = object.extractedParameters) !== null && _a !== void 0 ? _a : {}).reduce((acc, [key, value]) => {
362
- if (value !== undefined) {
363
- acc[key] = globalThis.String(value);
364
- }
365
- return acc;
366
- }, {});
367
- message.providerHash = (_b = object.providerHash) !== null && _b !== void 0 ? _b : "";
368
- return message;
369
- },
370
- };
371
- function createBaseClaimContext_ExtractedParametersEntry() {
372
- return { key: "", value: "" };
373
- }
374
- exports.ClaimContext_ExtractedParametersEntry = {
375
- encode(message, writer = new wire_1.BinaryWriter()) {
376
- if (message.key !== "") {
377
- writer.uint32(10).string(message.key);
378
- }
379
- if (message.value !== "") {
380
- writer.uint32(18).string(message.value);
381
- }
382
- return writer;
383
- },
384
- decode(input, length) {
385
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
386
- let end = length === undefined ? reader.len : reader.pos + length;
387
- const message = createBaseClaimContext_ExtractedParametersEntry();
388
- while (reader.pos < end) {
389
- const tag = reader.uint32();
390
- switch (tag >>> 3) {
391
- case 1: {
392
- if (tag !== 10) {
393
- break;
394
- }
395
- message.key = reader.string();
396
- continue;
397
- }
398
- case 2: {
399
- if (tag !== 18) {
400
- break;
401
- }
402
- message.value = reader.string();
403
- continue;
404
- }
405
- }
406
- if ((tag & 7) === 4 || tag === 0) {
407
- break;
408
- }
409
- reader.skip(tag & 7);
410
- }
411
- return message;
412
- },
413
- fromJSON(object) {
414
- return {
415
- key: isSet(object.key) ? globalThis.String(object.key) : "",
416
- value: isSet(object.value) ? globalThis.String(object.value) : "",
417
- };
418
- },
419
- toJSON(message) {
420
- const obj = {};
421
- if (message.key !== "") {
422
- obj.key = message.key;
423
- }
424
- if (message.value !== "") {
425
- obj.value = message.value;
426
- }
427
- return obj;
428
- },
429
- create(base) {
430
- return exports.ClaimContext_ExtractedParametersEntry.fromPartial(base !== null && base !== void 0 ? base : {});
431
- },
432
- fromPartial(object) {
433
- var _a, _b;
434
- const message = createBaseClaimContext_ExtractedParametersEntry();
435
- message.key = (_a = object.key) !== null && _a !== void 0 ? _a : "";
436
- message.value = (_b = object.value) !== null && _b !== void 0 ? _b : "";
437
- return message;
438
- },
439
- };
440
- function createBaseProviderClaimData() {
441
- return { provider: "", parameters: "", owner: "", timestampS: 0, context: "", identifier: "", epoch: 0 };
442
- }
443
- exports.ProviderClaimData = {
444
- encode(message, writer = new wire_1.BinaryWriter()) {
445
- if (message.provider !== "") {
446
- writer.uint32(10).string(message.provider);
447
- }
448
- if (message.parameters !== "") {
449
- writer.uint32(18).string(message.parameters);
450
- }
451
- if (message.owner !== "") {
452
- writer.uint32(26).string(message.owner);
453
- }
454
- if (message.timestampS !== 0) {
455
- writer.uint32(32).uint32(message.timestampS);
456
- }
457
- if (message.context !== "") {
458
- writer.uint32(50).string(message.context);
459
- }
460
- if (message.identifier !== "") {
461
- writer.uint32(66).string(message.identifier);
462
- }
463
- if (message.epoch !== 0) {
464
- writer.uint32(72).uint32(message.epoch);
465
- }
466
- return writer;
467
- },
468
- decode(input, length) {
469
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
470
- let end = length === undefined ? reader.len : reader.pos + length;
471
- const message = createBaseProviderClaimData();
472
- while (reader.pos < end) {
473
- const tag = reader.uint32();
474
- switch (tag >>> 3) {
475
- case 1: {
476
- if (tag !== 10) {
477
- break;
478
- }
479
- message.provider = reader.string();
480
- continue;
481
- }
482
- case 2: {
483
- if (tag !== 18) {
484
- break;
485
- }
486
- message.parameters = reader.string();
487
- continue;
488
- }
489
- case 3: {
490
- if (tag !== 26) {
491
- break;
492
- }
493
- message.owner = reader.string();
494
- continue;
495
- }
496
- case 4: {
497
- if (tag !== 32) {
498
- break;
499
- }
500
- message.timestampS = reader.uint32();
501
- continue;
502
- }
503
- case 6: {
504
- if (tag !== 50) {
505
- break;
506
- }
507
- message.context = reader.string();
508
- continue;
509
- }
510
- case 8: {
511
- if (tag !== 66) {
512
- break;
513
- }
514
- message.identifier = reader.string();
515
- continue;
516
- }
517
- case 9: {
518
- if (tag !== 72) {
519
- break;
520
- }
521
- message.epoch = reader.uint32();
522
- continue;
523
- }
524
- }
525
- if ((tag & 7) === 4 || tag === 0) {
526
- break;
527
- }
528
- reader.skip(tag & 7);
529
- }
530
- return message;
531
- },
532
- fromJSON(object) {
533
- return {
534
- provider: isSet(object.provider) ? globalThis.String(object.provider) : "",
535
- parameters: isSet(object.parameters) ? globalThis.String(object.parameters) : "",
536
- owner: isSet(object.owner) ? globalThis.String(object.owner) : "",
537
- timestampS: isSet(object.timestampS) ? globalThis.Number(object.timestampS) : 0,
538
- context: isSet(object.context) ? globalThis.String(object.context) : "",
539
- identifier: isSet(object.identifier) ? globalThis.String(object.identifier) : "",
540
- epoch: isSet(object.epoch) ? globalThis.Number(object.epoch) : 0,
541
- };
542
- },
543
- toJSON(message) {
544
- const obj = {};
545
- if (message.provider !== "") {
546
- obj.provider = message.provider;
547
- }
548
- if (message.parameters !== "") {
549
- obj.parameters = message.parameters;
550
- }
551
- if (message.owner !== "") {
552
- obj.owner = message.owner;
553
- }
554
- if (message.timestampS !== 0) {
555
- obj.timestampS = Math.round(message.timestampS);
556
- }
557
- if (message.context !== "") {
558
- obj.context = message.context;
559
- }
560
- if (message.identifier !== "") {
561
- obj.identifier = message.identifier;
562
- }
563
- if (message.epoch !== 0) {
564
- obj.epoch = Math.round(message.epoch);
565
- }
566
- return obj;
567
- },
568
- create(base) {
569
- return exports.ProviderClaimData.fromPartial(base !== null && base !== void 0 ? base : {});
570
- },
571
- fromPartial(object) {
572
- var _a, _b, _c, _d, _e, _f, _g;
573
- const message = createBaseProviderClaimData();
574
- message.provider = (_a = object.provider) !== null && _a !== void 0 ? _a : "";
575
- message.parameters = (_b = object.parameters) !== null && _b !== void 0 ? _b : "";
576
- message.owner = (_c = object.owner) !== null && _c !== void 0 ? _c : "";
577
- message.timestampS = (_d = object.timestampS) !== null && _d !== void 0 ? _d : 0;
578
- message.context = (_e = object.context) !== null && _e !== void 0 ? _e : "";
579
- message.identifier = (_f = object.identifier) !== null && _f !== void 0 ? _f : "";
580
- message.epoch = (_g = object.epoch) !== null && _g !== void 0 ? _g : 0;
581
- return message;
582
- },
583
- };
584
- function createBaseProviderClaimInfo() {
585
- return { provider: "", parameters: "", context: "" };
586
- }
587
- exports.ProviderClaimInfo = {
588
- encode(message, writer = new wire_1.BinaryWriter()) {
589
- if (message.provider !== "") {
590
- writer.uint32(10).string(message.provider);
591
- }
592
- if (message.parameters !== "") {
593
- writer.uint32(18).string(message.parameters);
594
- }
595
- if (message.context !== "") {
596
- writer.uint32(50).string(message.context);
597
- }
598
- return writer;
599
- },
600
- decode(input, length) {
601
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
602
- let end = length === undefined ? reader.len : reader.pos + length;
603
- const message = createBaseProviderClaimInfo();
604
- while (reader.pos < end) {
605
- const tag = reader.uint32();
606
- switch (tag >>> 3) {
607
- case 1: {
608
- if (tag !== 10) {
609
- break;
610
- }
611
- message.provider = reader.string();
612
- continue;
613
- }
614
- case 2: {
615
- if (tag !== 18) {
616
- break;
617
- }
618
- message.parameters = reader.string();
619
- continue;
620
- }
621
- case 6: {
622
- if (tag !== 50) {
623
- break;
624
- }
625
- message.context = reader.string();
626
- continue;
627
- }
628
- }
629
- if ((tag & 7) === 4 || tag === 0) {
630
- break;
631
- }
632
- reader.skip(tag & 7);
633
- }
634
- return message;
635
- },
636
- fromJSON(object) {
637
- return {
638
- provider: isSet(object.provider) ? globalThis.String(object.provider) : "",
639
- parameters: isSet(object.parameters) ? globalThis.String(object.parameters) : "",
640
- context: isSet(object.context) ? globalThis.String(object.context) : "",
641
- };
642
- },
643
- toJSON(message) {
644
- const obj = {};
645
- if (message.provider !== "") {
646
- obj.provider = message.provider;
647
- }
648
- if (message.parameters !== "") {
649
- obj.parameters = message.parameters;
650
- }
651
- if (message.context !== "") {
652
- obj.context = message.context;
653
- }
654
- return obj;
655
- },
656
- create(base) {
657
- return exports.ProviderClaimInfo.fromPartial(base !== null && base !== void 0 ? base : {});
658
- },
659
- fromPartial(object) {
660
- var _a, _b, _c;
661
- const message = createBaseProviderClaimInfo();
662
- message.provider = (_a = object.provider) !== null && _a !== void 0 ? _a : "";
663
- message.parameters = (_b = object.parameters) !== null && _b !== void 0 ? _b : "";
664
- message.context = (_c = object.context) !== null && _c !== void 0 ? _c : "";
665
- return message;
666
- },
667
- };
668
- function createBaseErrorData() {
669
- return { code: 0, message: "", data: "" };
670
- }
671
- exports.ErrorData = {
672
- encode(message, writer = new wire_1.BinaryWriter()) {
673
- if (message.code !== 0) {
674
- writer.uint32(8).int32(message.code);
675
- }
676
- if (message.message !== "") {
677
- writer.uint32(18).string(message.message);
678
- }
679
- if (message.data !== "") {
680
- writer.uint32(26).string(message.data);
681
- }
682
- return writer;
683
- },
684
- decode(input, length) {
685
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
686
- let end = length === undefined ? reader.len : reader.pos + length;
687
- const message = createBaseErrorData();
688
- while (reader.pos < end) {
689
- const tag = reader.uint32();
690
- switch (tag >>> 3) {
691
- case 1: {
692
- if (tag !== 8) {
693
- break;
694
- }
695
- message.code = reader.int32();
696
- continue;
697
- }
698
- case 2: {
699
- if (tag !== 18) {
700
- break;
701
- }
702
- message.message = reader.string();
703
- continue;
704
- }
705
- case 3: {
706
- if (tag !== 26) {
707
- break;
708
- }
709
- message.data = reader.string();
710
- continue;
711
- }
712
- }
713
- if ((tag & 7) === 4 || tag === 0) {
714
- break;
715
- }
716
- reader.skip(tag & 7);
717
- }
718
- return message;
719
- },
720
- fromJSON(object) {
721
- return {
722
- code: isSet(object.code) ? errorCodeFromJSON(object.code) : 0,
723
- message: isSet(object.message) ? globalThis.String(object.message) : "",
724
- data: isSet(object.data) ? globalThis.String(object.data) : "",
725
- };
726
- },
727
- toJSON(message) {
728
- const obj = {};
729
- if (message.code !== 0) {
730
- obj.code = errorCodeToJSON(message.code);
731
- }
732
- if (message.message !== "") {
733
- obj.message = message.message;
734
- }
735
- if (message.data !== "") {
736
- obj.data = message.data;
737
- }
738
- return obj;
739
- },
740
- create(base) {
741
- return exports.ErrorData.fromPartial(base !== null && base !== void 0 ? base : {});
742
- },
743
- fromPartial(object) {
744
- var _a, _b, _c;
745
- const message = createBaseErrorData();
746
- message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0;
747
- message.message = (_b = object.message) !== null && _b !== void 0 ? _b : "";
748
- message.data = (_c = object.data) !== null && _c !== void 0 ? _c : "";
749
- return message;
750
- },
751
- };
752
- function createBaseCreateTunnelRequest() {
753
- return { id: 0, host: "", port: 0, geoLocation: "" };
754
- }
755
- exports.CreateTunnelRequest = {
756
- encode(message, writer = new wire_1.BinaryWriter()) {
757
- if (message.id !== 0) {
758
- writer.uint32(8).uint32(message.id);
759
- }
760
- if (message.host !== "") {
761
- writer.uint32(18).string(message.host);
762
- }
763
- if (message.port !== 0) {
764
- writer.uint32(24).uint32(message.port);
765
- }
766
- if (message.geoLocation !== "") {
767
- writer.uint32(34).string(message.geoLocation);
768
- }
769
- return writer;
770
- },
771
- decode(input, length) {
772
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
773
- let end = length === undefined ? reader.len : reader.pos + length;
774
- const message = createBaseCreateTunnelRequest();
775
- while (reader.pos < end) {
776
- const tag = reader.uint32();
777
- switch (tag >>> 3) {
778
- case 1: {
779
- if (tag !== 8) {
780
- break;
781
- }
782
- message.id = reader.uint32();
783
- continue;
784
- }
785
- case 2: {
786
- if (tag !== 18) {
787
- break;
788
- }
789
- message.host = reader.string();
790
- continue;
791
- }
792
- case 3: {
793
- if (tag !== 24) {
794
- break;
795
- }
796
- message.port = reader.uint32();
797
- continue;
798
- }
799
- case 4: {
800
- if (tag !== 34) {
801
- break;
802
- }
803
- message.geoLocation = reader.string();
804
- continue;
805
- }
806
- }
807
- if ((tag & 7) === 4 || tag === 0) {
808
- break;
809
- }
810
- reader.skip(tag & 7);
811
- }
812
- return message;
813
- },
814
- fromJSON(object) {
815
- return {
816
- id: isSet(object.id) ? globalThis.Number(object.id) : 0,
817
- host: isSet(object.host) ? globalThis.String(object.host) : "",
818
- port: isSet(object.port) ? globalThis.Number(object.port) : 0,
819
- geoLocation: isSet(object.geoLocation) ? globalThis.String(object.geoLocation) : "",
820
- };
821
- },
822
- toJSON(message) {
823
- const obj = {};
824
- if (message.id !== 0) {
825
- obj.id = Math.round(message.id);
826
- }
827
- if (message.host !== "") {
828
- obj.host = message.host;
829
- }
830
- if (message.port !== 0) {
831
- obj.port = Math.round(message.port);
832
- }
833
- if (message.geoLocation !== "") {
834
- obj.geoLocation = message.geoLocation;
835
- }
836
- return obj;
837
- },
838
- create(base) {
839
- return exports.CreateTunnelRequest.fromPartial(base !== null && base !== void 0 ? base : {});
840
- },
841
- fromPartial(object) {
842
- var _a, _b, _c, _d;
843
- const message = createBaseCreateTunnelRequest();
844
- message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0;
845
- message.host = (_b = object.host) !== null && _b !== void 0 ? _b : "";
846
- message.port = (_c = object.port) !== null && _c !== void 0 ? _c : 0;
847
- message.geoLocation = (_d = object.geoLocation) !== null && _d !== void 0 ? _d : "";
848
- return message;
849
- },
850
- };
851
- function createBaseDisconnectTunnelRequest() {
852
- return { id: 0 };
853
- }
854
- exports.DisconnectTunnelRequest = {
855
- encode(message, writer = new wire_1.BinaryWriter()) {
856
- if (message.id !== 0) {
857
- writer.uint32(8).uint32(message.id);
858
- }
859
- return writer;
860
- },
861
- decode(input, length) {
862
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
863
- let end = length === undefined ? reader.len : reader.pos + length;
864
- const message = createBaseDisconnectTunnelRequest();
865
- while (reader.pos < end) {
866
- const tag = reader.uint32();
867
- switch (tag >>> 3) {
868
- case 1: {
869
- if (tag !== 8) {
870
- break;
871
- }
872
- message.id = reader.uint32();
873
- continue;
874
- }
875
- }
876
- if ((tag & 7) === 4 || tag === 0) {
877
- break;
878
- }
879
- reader.skip(tag & 7);
880
- }
881
- return message;
882
- },
883
- fromJSON(object) {
884
- return { id: isSet(object.id) ? globalThis.Number(object.id) : 0 };
885
- },
886
- toJSON(message) {
887
- const obj = {};
888
- if (message.id !== 0) {
889
- obj.id = Math.round(message.id);
890
- }
891
- return obj;
892
- },
893
- create(base) {
894
- return exports.DisconnectTunnelRequest.fromPartial(base !== null && base !== void 0 ? base : {});
895
- },
896
- fromPartial(object) {
897
- var _a;
898
- const message = createBaseDisconnectTunnelRequest();
899
- message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0;
900
- return message;
901
- },
902
- };
903
- function createBaseEmpty() {
904
- return {};
905
- }
906
- exports.Empty = {
907
- encode(_, writer = new wire_1.BinaryWriter()) {
908
- return writer;
909
- },
910
- decode(input, length) {
911
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
912
- let end = length === undefined ? reader.len : reader.pos + length;
913
- const message = createBaseEmpty();
914
- while (reader.pos < end) {
915
- const tag = reader.uint32();
916
- switch (tag >>> 3) {
917
- }
918
- if ((tag & 7) === 4 || tag === 0) {
919
- break;
920
- }
921
- reader.skip(tag & 7);
922
- }
923
- return message;
924
- },
925
- fromJSON(_) {
926
- return {};
927
- },
928
- toJSON(_) {
929
- const obj = {};
930
- return obj;
931
- },
932
- create(base) {
933
- return exports.Empty.fromPartial(base !== null && base !== void 0 ? base : {});
934
- },
935
- fromPartial(_) {
936
- const message = createBaseEmpty();
937
- return message;
938
- },
939
- };
940
- function createBaseTunnelMessage() {
941
- return { tunnelId: 0, message: new Uint8Array(0) };
942
- }
943
- exports.TunnelMessage = {
944
- encode(message, writer = new wire_1.BinaryWriter()) {
945
- if (message.tunnelId !== 0) {
946
- writer.uint32(8).uint32(message.tunnelId);
947
- }
948
- if (message.message.length !== 0) {
949
- writer.uint32(18).bytes(message.message);
950
- }
951
- return writer;
952
- },
953
- decode(input, length) {
954
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
955
- let end = length === undefined ? reader.len : reader.pos + length;
956
- const message = createBaseTunnelMessage();
957
- while (reader.pos < end) {
958
- const tag = reader.uint32();
959
- switch (tag >>> 3) {
960
- case 1: {
961
- if (tag !== 8) {
962
- break;
963
- }
964
- message.tunnelId = reader.uint32();
965
- continue;
966
- }
967
- case 2: {
968
- if (tag !== 18) {
969
- break;
970
- }
971
- message.message = reader.bytes();
972
- continue;
973
- }
974
- }
975
- if ((tag & 7) === 4 || tag === 0) {
976
- break;
977
- }
978
- reader.skip(tag & 7);
979
- }
980
- return message;
981
- },
982
- fromJSON(object) {
983
- return {
984
- tunnelId: isSet(object.tunnelId) ? globalThis.Number(object.tunnelId) : 0,
985
- message: isSet(object.message) ? bytesFromBase64(object.message) : new Uint8Array(0),
986
- };
987
- },
988
- toJSON(message) {
989
- const obj = {};
990
- if (message.tunnelId !== 0) {
991
- obj.tunnelId = Math.round(message.tunnelId);
992
- }
993
- if (message.message.length !== 0) {
994
- obj.message = base64FromBytes(message.message);
995
- }
996
- return obj;
997
- },
998
- create(base) {
999
- return exports.TunnelMessage.fromPartial(base !== null && base !== void 0 ? base : {});
1000
- },
1001
- fromPartial(object) {
1002
- var _a, _b;
1003
- const message = createBaseTunnelMessage();
1004
- message.tunnelId = (_a = object.tunnelId) !== null && _a !== void 0 ? _a : 0;
1005
- message.message = (_b = object.message) !== null && _b !== void 0 ? _b : new Uint8Array(0);
1006
- return message;
1007
- },
1008
- };
1009
- function createBaseTunnelDisconnectEvent() {
1010
- return { tunnelId: 0, error: undefined };
1011
- }
1012
- exports.TunnelDisconnectEvent = {
1013
- encode(message, writer = new wire_1.BinaryWriter()) {
1014
- if (message.tunnelId !== 0) {
1015
- writer.uint32(8).uint32(message.tunnelId);
1016
- }
1017
- if (message.error !== undefined) {
1018
- exports.ErrorData.encode(message.error, writer.uint32(18).fork()).join();
1019
- }
1020
- return writer;
1021
- },
1022
- decode(input, length) {
1023
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1024
- let end = length === undefined ? reader.len : reader.pos + length;
1025
- const message = createBaseTunnelDisconnectEvent();
1026
- while (reader.pos < end) {
1027
- const tag = reader.uint32();
1028
- switch (tag >>> 3) {
1029
- case 1: {
1030
- if (tag !== 8) {
1031
- break;
1032
- }
1033
- message.tunnelId = reader.uint32();
1034
- continue;
1035
- }
1036
- case 2: {
1037
- if (tag !== 18) {
1038
- break;
1039
- }
1040
- message.error = exports.ErrorData.decode(reader, reader.uint32());
1041
- continue;
1042
- }
1043
- }
1044
- if ((tag & 7) === 4 || tag === 0) {
1045
- break;
1046
- }
1047
- reader.skip(tag & 7);
1048
- }
1049
- return message;
1050
- },
1051
- fromJSON(object) {
1052
- return {
1053
- tunnelId: isSet(object.tunnelId) ? globalThis.Number(object.tunnelId) : 0,
1054
- error: isSet(object.error) ? exports.ErrorData.fromJSON(object.error) : undefined,
1055
- };
1056
- },
1057
- toJSON(message) {
1058
- const obj = {};
1059
- if (message.tunnelId !== 0) {
1060
- obj.tunnelId = Math.round(message.tunnelId);
1061
- }
1062
- if (message.error !== undefined) {
1063
- obj.error = exports.ErrorData.toJSON(message.error);
1064
- }
1065
- return obj;
1066
- },
1067
- create(base) {
1068
- return exports.TunnelDisconnectEvent.fromPartial(base !== null && base !== void 0 ? base : {});
1069
- },
1070
- fromPartial(object) {
1071
- var _a;
1072
- const message = createBaseTunnelDisconnectEvent();
1073
- message.tunnelId = (_a = object.tunnelId) !== null && _a !== void 0 ? _a : 0;
1074
- message.error = (object.error !== undefined && object.error !== null)
1075
- ? exports.ErrorData.fromPartial(object.error)
1076
- : undefined;
1077
- return message;
1078
- },
1079
- };
1080
- function createBaseMessageReveal() {
1081
- return { directReveal: undefined, zkReveal: undefined };
1082
- }
1083
- exports.MessageReveal = {
1084
- encode(message, writer = new wire_1.BinaryWriter()) {
1085
- if (message.directReveal !== undefined) {
1086
- exports.MessageReveal_MessageRevealDirect.encode(message.directReveal, writer.uint32(10).fork()).join();
1087
- }
1088
- if (message.zkReveal !== undefined) {
1089
- exports.MessageReveal_MessageRevealZk.encode(message.zkReveal, writer.uint32(18).fork()).join();
1090
- }
1091
- return writer;
1092
- },
1093
- decode(input, length) {
1094
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1095
- let end = length === undefined ? reader.len : reader.pos + length;
1096
- const message = createBaseMessageReveal();
1097
- while (reader.pos < end) {
1098
- const tag = reader.uint32();
1099
- switch (tag >>> 3) {
1100
- case 1: {
1101
- if (tag !== 10) {
1102
- break;
1103
- }
1104
- message.directReveal = exports.MessageReveal_MessageRevealDirect.decode(reader, reader.uint32());
1105
- continue;
1106
- }
1107
- case 2: {
1108
- if (tag !== 18) {
1109
- break;
1110
- }
1111
- message.zkReveal = exports.MessageReveal_MessageRevealZk.decode(reader, reader.uint32());
1112
- continue;
1113
- }
1114
- }
1115
- if ((tag & 7) === 4 || tag === 0) {
1116
- break;
1117
- }
1118
- reader.skip(tag & 7);
1119
- }
1120
- return message;
1121
- },
1122
- fromJSON(object) {
1123
- return {
1124
- directReveal: isSet(object.directReveal)
1125
- ? exports.MessageReveal_MessageRevealDirect.fromJSON(object.directReveal)
1126
- : undefined,
1127
- zkReveal: isSet(object.zkReveal) ? exports.MessageReveal_MessageRevealZk.fromJSON(object.zkReveal) : undefined,
1128
- };
1129
- },
1130
- toJSON(message) {
1131
- const obj = {};
1132
- if (message.directReveal !== undefined) {
1133
- obj.directReveal = exports.MessageReveal_MessageRevealDirect.toJSON(message.directReveal);
1134
- }
1135
- if (message.zkReveal !== undefined) {
1136
- obj.zkReveal = exports.MessageReveal_MessageRevealZk.toJSON(message.zkReveal);
1137
- }
1138
- return obj;
1139
- },
1140
- create(base) {
1141
- return exports.MessageReveal.fromPartial(base !== null && base !== void 0 ? base : {});
1142
- },
1143
- fromPartial(object) {
1144
- const message = createBaseMessageReveal();
1145
- message.directReveal = (object.directReveal !== undefined && object.directReveal !== null)
1146
- ? exports.MessageReveal_MessageRevealDirect.fromPartial(object.directReveal)
1147
- : undefined;
1148
- message.zkReveal = (object.zkReveal !== undefined && object.zkReveal !== null)
1149
- ? exports.MessageReveal_MessageRevealZk.fromPartial(object.zkReveal)
1150
- : undefined;
1151
- return message;
1152
- },
1153
- };
1154
- function createBaseMessageReveal_MessageRevealDirect() {
1155
- return { key: new Uint8Array(0), iv: new Uint8Array(0), recordNumber: 0 };
1156
- }
1157
- exports.MessageReveal_MessageRevealDirect = {
1158
- encode(message, writer = new wire_1.BinaryWriter()) {
1159
- if (message.key.length !== 0) {
1160
- writer.uint32(10).bytes(message.key);
1161
- }
1162
- if (message.iv.length !== 0) {
1163
- writer.uint32(18).bytes(message.iv);
1164
- }
1165
- if (message.recordNumber !== 0) {
1166
- writer.uint32(24).uint32(message.recordNumber);
1167
- }
1168
- return writer;
1169
- },
1170
- decode(input, length) {
1171
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1172
- let end = length === undefined ? reader.len : reader.pos + length;
1173
- const message = createBaseMessageReveal_MessageRevealDirect();
1174
- while (reader.pos < end) {
1175
- const tag = reader.uint32();
1176
- switch (tag >>> 3) {
1177
- case 1: {
1178
- if (tag !== 10) {
1179
- break;
1180
- }
1181
- message.key = reader.bytes();
1182
- continue;
1183
- }
1184
- case 2: {
1185
- if (tag !== 18) {
1186
- break;
1187
- }
1188
- message.iv = reader.bytes();
1189
- continue;
1190
- }
1191
- case 3: {
1192
- if (tag !== 24) {
1193
- break;
1194
- }
1195
- message.recordNumber = reader.uint32();
1196
- continue;
1197
- }
1198
- }
1199
- if ((tag & 7) === 4 || tag === 0) {
1200
- break;
1201
- }
1202
- reader.skip(tag & 7);
1203
- }
1204
- return message;
1205
- },
1206
- fromJSON(object) {
1207
- return {
1208
- key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(0),
1209
- iv: isSet(object.iv) ? bytesFromBase64(object.iv) : new Uint8Array(0),
1210
- recordNumber: isSet(object.recordNumber) ? globalThis.Number(object.recordNumber) : 0,
1211
- };
1212
- },
1213
- toJSON(message) {
1214
- const obj = {};
1215
- if (message.key.length !== 0) {
1216
- obj.key = base64FromBytes(message.key);
1217
- }
1218
- if (message.iv.length !== 0) {
1219
- obj.iv = base64FromBytes(message.iv);
1220
- }
1221
- if (message.recordNumber !== 0) {
1222
- obj.recordNumber = Math.round(message.recordNumber);
1223
- }
1224
- return obj;
1225
- },
1226
- create(base) {
1227
- return exports.MessageReveal_MessageRevealDirect.fromPartial(base !== null && base !== void 0 ? base : {});
1228
- },
1229
- fromPartial(object) {
1230
- var _a, _b, _c;
1231
- const message = createBaseMessageReveal_MessageRevealDirect();
1232
- message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array(0);
1233
- message.iv = (_b = object.iv) !== null && _b !== void 0 ? _b : new Uint8Array(0);
1234
- message.recordNumber = (_c = object.recordNumber) !== null && _c !== void 0 ? _c : 0;
1235
- return message;
1236
- },
1237
- };
1238
- function createBaseMessageReveal_MessageRevealZk() {
1239
- return { proofs: [] };
1240
- }
1241
- exports.MessageReveal_MessageRevealZk = {
1242
- encode(message, writer = new wire_1.BinaryWriter()) {
1243
- for (const v of message.proofs) {
1244
- exports.MessageReveal_ZKProof.encode(v, writer.uint32(10).fork()).join();
1245
- }
1246
- return writer;
1247
- },
1248
- decode(input, length) {
1249
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1250
- let end = length === undefined ? reader.len : reader.pos + length;
1251
- const message = createBaseMessageReveal_MessageRevealZk();
1252
- while (reader.pos < end) {
1253
- const tag = reader.uint32();
1254
- switch (tag >>> 3) {
1255
- case 1: {
1256
- if (tag !== 10) {
1257
- break;
1258
- }
1259
- message.proofs.push(exports.MessageReveal_ZKProof.decode(reader, reader.uint32()));
1260
- continue;
1261
- }
1262
- }
1263
- if ((tag & 7) === 4 || tag === 0) {
1264
- break;
1265
- }
1266
- reader.skip(tag & 7);
1267
- }
1268
- return message;
1269
- },
1270
- fromJSON(object) {
1271
- return {
1272
- proofs: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.proofs)
1273
- ? object.proofs.map((e) => exports.MessageReveal_ZKProof.fromJSON(e))
1274
- : [],
1275
- };
1276
- },
1277
- toJSON(message) {
1278
- var _a;
1279
- const obj = {};
1280
- if ((_a = message.proofs) === null || _a === void 0 ? void 0 : _a.length) {
1281
- obj.proofs = message.proofs.map((e) => exports.MessageReveal_ZKProof.toJSON(e));
1282
- }
1283
- return obj;
1284
- },
1285
- create(base) {
1286
- return exports.MessageReveal_MessageRevealZk.fromPartial(base !== null && base !== void 0 ? base : {});
1287
- },
1288
- fromPartial(object) {
1289
- var _a;
1290
- const message = createBaseMessageReveal_MessageRevealZk();
1291
- message.proofs = ((_a = object.proofs) === null || _a === void 0 ? void 0 : _a.map((e) => exports.MessageReveal_ZKProof.fromPartial(e))) || [];
1292
- return message;
1293
- },
1294
- };
1295
- function createBaseMessageReveal_ZKProof() {
1296
- return {
1297
- proofJson: "",
1298
- decryptedRedactedCiphertext: new Uint8Array(0),
1299
- redactedPlaintext: new Uint8Array(0),
1300
- startIdx: 0,
1301
- proofData: new Uint8Array(0),
1302
- toprf: undefined,
1303
- };
1304
- }
1305
- exports.MessageReveal_ZKProof = {
1306
- encode(message, writer = new wire_1.BinaryWriter()) {
1307
- if (message.proofJson !== "") {
1308
- writer.uint32(10).string(message.proofJson);
1309
- }
1310
- if (message.decryptedRedactedCiphertext.length !== 0) {
1311
- writer.uint32(18).bytes(message.decryptedRedactedCiphertext);
1312
- }
1313
- if (message.redactedPlaintext.length !== 0) {
1314
- writer.uint32(26).bytes(message.redactedPlaintext);
1315
- }
1316
- if (message.startIdx !== 0) {
1317
- writer.uint32(32).uint32(message.startIdx);
1318
- }
1319
- if (message.proofData.length !== 0) {
1320
- writer.uint32(42).bytes(message.proofData);
1321
- }
1322
- if (message.toprf !== undefined) {
1323
- exports.TOPRFPayload.encode(message.toprf, writer.uint32(50).fork()).join();
1324
- }
1325
- return writer;
1326
- },
1327
- decode(input, length) {
1328
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1329
- let end = length === undefined ? reader.len : reader.pos + length;
1330
- const message = createBaseMessageReveal_ZKProof();
1331
- while (reader.pos < end) {
1332
- const tag = reader.uint32();
1333
- switch (tag >>> 3) {
1334
- case 1: {
1335
- if (tag !== 10) {
1336
- break;
1337
- }
1338
- message.proofJson = reader.string();
1339
- continue;
1340
- }
1341
- case 2: {
1342
- if (tag !== 18) {
1343
- break;
1344
- }
1345
- message.decryptedRedactedCiphertext = reader.bytes();
1346
- continue;
1347
- }
1348
- case 3: {
1349
- if (tag !== 26) {
1350
- break;
1351
- }
1352
- message.redactedPlaintext = reader.bytes();
1353
- continue;
1354
- }
1355
- case 4: {
1356
- if (tag !== 32) {
1357
- break;
1358
- }
1359
- message.startIdx = reader.uint32();
1360
- continue;
1361
- }
1362
- case 5: {
1363
- if (tag !== 42) {
1364
- break;
1365
- }
1366
- message.proofData = reader.bytes();
1367
- continue;
1368
- }
1369
- case 6: {
1370
- if (tag !== 50) {
1371
- break;
1372
- }
1373
- message.toprf = exports.TOPRFPayload.decode(reader, reader.uint32());
1374
- continue;
1375
- }
1376
- }
1377
- if ((tag & 7) === 4 || tag === 0) {
1378
- break;
1379
- }
1380
- reader.skip(tag & 7);
1381
- }
1382
- return message;
1383
- },
1384
- fromJSON(object) {
1385
- return {
1386
- proofJson: isSet(object.proofJson) ? globalThis.String(object.proofJson) : "",
1387
- decryptedRedactedCiphertext: isSet(object.decryptedRedactedCiphertext)
1388
- ? bytesFromBase64(object.decryptedRedactedCiphertext)
1389
- : new Uint8Array(0),
1390
- redactedPlaintext: isSet(object.redactedPlaintext)
1391
- ? bytesFromBase64(object.redactedPlaintext)
1392
- : new Uint8Array(0),
1393
- startIdx: isSet(object.startIdx) ? globalThis.Number(object.startIdx) : 0,
1394
- proofData: isSet(object.proofData) ? bytesFromBase64(object.proofData) : new Uint8Array(0),
1395
- toprf: isSet(object.toprf) ? exports.TOPRFPayload.fromJSON(object.toprf) : undefined,
1396
- };
1397
- },
1398
- toJSON(message) {
1399
- const obj = {};
1400
- if (message.proofJson !== "") {
1401
- obj.proofJson = message.proofJson;
1402
- }
1403
- if (message.decryptedRedactedCiphertext.length !== 0) {
1404
- obj.decryptedRedactedCiphertext = base64FromBytes(message.decryptedRedactedCiphertext);
1405
- }
1406
- if (message.redactedPlaintext.length !== 0) {
1407
- obj.redactedPlaintext = base64FromBytes(message.redactedPlaintext);
1408
- }
1409
- if (message.startIdx !== 0) {
1410
- obj.startIdx = Math.round(message.startIdx);
1411
- }
1412
- if (message.proofData.length !== 0) {
1413
- obj.proofData = base64FromBytes(message.proofData);
1414
- }
1415
- if (message.toprf !== undefined) {
1416
- obj.toprf = exports.TOPRFPayload.toJSON(message.toprf);
1417
- }
1418
- return obj;
1419
- },
1420
- create(base) {
1421
- return exports.MessageReveal_ZKProof.fromPartial(base !== null && base !== void 0 ? base : {});
1422
- },
1423
- fromPartial(object) {
1424
- var _a, _b, _c, _d, _e;
1425
- const message = createBaseMessageReveal_ZKProof();
1426
- message.proofJson = (_a = object.proofJson) !== null && _a !== void 0 ? _a : "";
1427
- message.decryptedRedactedCiphertext = (_b = object.decryptedRedactedCiphertext) !== null && _b !== void 0 ? _b : new Uint8Array(0);
1428
- message.redactedPlaintext = (_c = object.redactedPlaintext) !== null && _c !== void 0 ? _c : new Uint8Array(0);
1429
- message.startIdx = (_d = object.startIdx) !== null && _d !== void 0 ? _d : 0;
1430
- message.proofData = (_e = object.proofData) !== null && _e !== void 0 ? _e : new Uint8Array(0);
1431
- message.toprf = (object.toprf !== undefined && object.toprf !== null)
1432
- ? exports.TOPRFPayload.fromPartial(object.toprf)
1433
- : undefined;
1434
- return message;
1435
- },
1436
- };
1437
- function createBaseTOPRFPayload() {
1438
- return { dataLocation: undefined, nullifier: new Uint8Array(0), responses: [] };
1439
- }
1440
- exports.TOPRFPayload = {
1441
- encode(message, writer = new wire_1.BinaryWriter()) {
1442
- if (message.dataLocation !== undefined) {
1443
- exports.DataSlice.encode(message.dataLocation, writer.uint32(10).fork()).join();
1444
- }
1445
- if (message.nullifier.length !== 0) {
1446
- writer.uint32(18).bytes(message.nullifier);
1447
- }
1448
- for (const v of message.responses) {
1449
- exports.TOPRFResponse.encode(v, writer.uint32(26).fork()).join();
1450
- }
1451
- return writer;
1452
- },
1453
- decode(input, length) {
1454
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1455
- let end = length === undefined ? reader.len : reader.pos + length;
1456
- const message = createBaseTOPRFPayload();
1457
- while (reader.pos < end) {
1458
- const tag = reader.uint32();
1459
- switch (tag >>> 3) {
1460
- case 1: {
1461
- if (tag !== 10) {
1462
- break;
1463
- }
1464
- message.dataLocation = exports.DataSlice.decode(reader, reader.uint32());
1465
- continue;
1466
- }
1467
- case 2: {
1468
- if (tag !== 18) {
1469
- break;
1470
- }
1471
- message.nullifier = reader.bytes();
1472
- continue;
1473
- }
1474
- case 3: {
1475
- if (tag !== 26) {
1476
- break;
1477
- }
1478
- message.responses.push(exports.TOPRFResponse.decode(reader, reader.uint32()));
1479
- continue;
1480
- }
1481
- }
1482
- if ((tag & 7) === 4 || tag === 0) {
1483
- break;
1484
- }
1485
- reader.skip(tag & 7);
1486
- }
1487
- return message;
1488
- },
1489
- fromJSON(object) {
1490
- return {
1491
- dataLocation: isSet(object.dataLocation) ? exports.DataSlice.fromJSON(object.dataLocation) : undefined,
1492
- nullifier: isSet(object.nullifier) ? bytesFromBase64(object.nullifier) : new Uint8Array(0),
1493
- responses: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.responses)
1494
- ? object.responses.map((e) => exports.TOPRFResponse.fromJSON(e))
1495
- : [],
1496
- };
1497
- },
1498
- toJSON(message) {
1499
- var _a;
1500
- const obj = {};
1501
- if (message.dataLocation !== undefined) {
1502
- obj.dataLocation = exports.DataSlice.toJSON(message.dataLocation);
1503
- }
1504
- if (message.nullifier.length !== 0) {
1505
- obj.nullifier = base64FromBytes(message.nullifier);
1506
- }
1507
- if ((_a = message.responses) === null || _a === void 0 ? void 0 : _a.length) {
1508
- obj.responses = message.responses.map((e) => exports.TOPRFResponse.toJSON(e));
1509
- }
1510
- return obj;
1511
- },
1512
- create(base) {
1513
- return exports.TOPRFPayload.fromPartial(base !== null && base !== void 0 ? base : {});
1514
- },
1515
- fromPartial(object) {
1516
- var _a, _b;
1517
- const message = createBaseTOPRFPayload();
1518
- message.dataLocation = (object.dataLocation !== undefined && object.dataLocation !== null)
1519
- ? exports.DataSlice.fromPartial(object.dataLocation)
1520
- : undefined;
1521
- message.nullifier = (_a = object.nullifier) !== null && _a !== void 0 ? _a : new Uint8Array(0);
1522
- message.responses = ((_b = object.responses) === null || _b === void 0 ? void 0 : _b.map((e) => exports.TOPRFResponse.fromPartial(e))) || [];
1523
- return message;
1524
- },
1525
- };
1526
- function createBaseDataSlice() {
1527
- return { fromIndex: 0, length: 0 };
1528
- }
1529
- exports.DataSlice = {
1530
- encode(message, writer = new wire_1.BinaryWriter()) {
1531
- if (message.fromIndex !== 0) {
1532
- writer.uint32(8).uint32(message.fromIndex);
1533
- }
1534
- if (message.length !== 0) {
1535
- writer.uint32(16).uint32(message.length);
1536
- }
1537
- return writer;
1538
- },
1539
- decode(input, length) {
1540
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1541
- let end = length === undefined ? reader.len : reader.pos + length;
1542
- const message = createBaseDataSlice();
1543
- while (reader.pos < end) {
1544
- const tag = reader.uint32();
1545
- switch (tag >>> 3) {
1546
- case 1: {
1547
- if (tag !== 8) {
1548
- break;
1549
- }
1550
- message.fromIndex = reader.uint32();
1551
- continue;
1552
- }
1553
- case 2: {
1554
- if (tag !== 16) {
1555
- break;
1556
- }
1557
- message.length = reader.uint32();
1558
- continue;
1559
- }
1560
- }
1561
- if ((tag & 7) === 4 || tag === 0) {
1562
- break;
1563
- }
1564
- reader.skip(tag & 7);
1565
- }
1566
- return message;
1567
- },
1568
- fromJSON(object) {
1569
- return {
1570
- fromIndex: isSet(object.fromIndex) ? globalThis.Number(object.fromIndex) : 0,
1571
- length: isSet(object.length) ? globalThis.Number(object.length) : 0,
1572
- };
1573
- },
1574
- toJSON(message) {
1575
- const obj = {};
1576
- if (message.fromIndex !== 0) {
1577
- obj.fromIndex = Math.round(message.fromIndex);
1578
- }
1579
- if (message.length !== 0) {
1580
- obj.length = Math.round(message.length);
1581
- }
1582
- return obj;
1583
- },
1584
- create(base) {
1585
- return exports.DataSlice.fromPartial(base !== null && base !== void 0 ? base : {});
1586
- },
1587
- fromPartial(object) {
1588
- var _a, _b;
1589
- const message = createBaseDataSlice();
1590
- message.fromIndex = (_a = object.fromIndex) !== null && _a !== void 0 ? _a : 0;
1591
- message.length = (_b = object.length) !== null && _b !== void 0 ? _b : 0;
1592
- return message;
1593
- },
1594
- };
1595
- function createBaseClaimRequestData() {
1596
- return { provider: "", parameters: "", owner: "", timestampS: 0, context: "" };
1597
- }
1598
- exports.ClaimRequestData = {
1599
- encode(message, writer = new wire_1.BinaryWriter()) {
1600
- if (message.provider !== "") {
1601
- writer.uint32(10).string(message.provider);
1602
- }
1603
- if (message.parameters !== "") {
1604
- writer.uint32(18).string(message.parameters);
1605
- }
1606
- if (message.owner !== "") {
1607
- writer.uint32(26).string(message.owner);
1608
- }
1609
- if (message.timestampS !== 0) {
1610
- writer.uint32(32).uint32(message.timestampS);
1611
- }
1612
- if (message.context !== "") {
1613
- writer.uint32(42).string(message.context);
1614
- }
1615
- return writer;
1616
- },
1617
- decode(input, length) {
1618
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1619
- let end = length === undefined ? reader.len : reader.pos + length;
1620
- const message = createBaseClaimRequestData();
1621
- while (reader.pos < end) {
1622
- const tag = reader.uint32();
1623
- switch (tag >>> 3) {
1624
- case 1: {
1625
- if (tag !== 10) {
1626
- break;
1627
- }
1628
- message.provider = reader.string();
1629
- continue;
1630
- }
1631
- case 2: {
1632
- if (tag !== 18) {
1633
- break;
1634
- }
1635
- message.parameters = reader.string();
1636
- continue;
1637
- }
1638
- case 3: {
1639
- if (tag !== 26) {
1640
- break;
1641
- }
1642
- message.owner = reader.string();
1643
- continue;
1644
- }
1645
- case 4: {
1646
- if (tag !== 32) {
1647
- break;
1648
- }
1649
- message.timestampS = reader.uint32();
1650
- continue;
1651
- }
1652
- case 5: {
1653
- if (tag !== 42) {
1654
- break;
1655
- }
1656
- message.context = reader.string();
1657
- continue;
1658
- }
1659
- }
1660
- if ((tag & 7) === 4 || tag === 0) {
1661
- break;
1662
- }
1663
- reader.skip(tag & 7);
1664
- }
1665
- return message;
1666
- },
1667
- fromJSON(object) {
1668
- return {
1669
- provider: isSet(object.provider) ? globalThis.String(object.provider) : "",
1670
- parameters: isSet(object.parameters) ? globalThis.String(object.parameters) : "",
1671
- owner: isSet(object.owner) ? globalThis.String(object.owner) : "",
1672
- timestampS: isSet(object.timestampS) ? globalThis.Number(object.timestampS) : 0,
1673
- context: isSet(object.context) ? globalThis.String(object.context) : "",
1674
- };
1675
- },
1676
- toJSON(message) {
1677
- const obj = {};
1678
- if (message.provider !== "") {
1679
- obj.provider = message.provider;
1680
- }
1681
- if (message.parameters !== "") {
1682
- obj.parameters = message.parameters;
1683
- }
1684
- if (message.owner !== "") {
1685
- obj.owner = message.owner;
1686
- }
1687
- if (message.timestampS !== 0) {
1688
- obj.timestampS = Math.round(message.timestampS);
1689
- }
1690
- if (message.context !== "") {
1691
- obj.context = message.context;
1692
- }
1693
- return obj;
1694
- },
1695
- create(base) {
1696
- return exports.ClaimRequestData.fromPartial(base !== null && base !== void 0 ? base : {});
1697
- },
1698
- fromPartial(object) {
1699
- var _a, _b, _c, _d, _e;
1700
- const message = createBaseClaimRequestData();
1701
- message.provider = (_a = object.provider) !== null && _a !== void 0 ? _a : "";
1702
- message.parameters = (_b = object.parameters) !== null && _b !== void 0 ? _b : "";
1703
- message.owner = (_c = object.owner) !== null && _c !== void 0 ? _c : "";
1704
- message.timestampS = (_d = object.timestampS) !== null && _d !== void 0 ? _d : 0;
1705
- message.context = (_e = object.context) !== null && _e !== void 0 ? _e : "";
1706
- return message;
1707
- },
1708
- };
1709
- function createBaseClaimTunnelRequest() {
1710
- return {
1711
- request: undefined,
1712
- data: undefined,
1713
- transcript: [],
1714
- signatures: undefined,
1715
- zkEngine: 0,
1716
- fixedServerIV: new Uint8Array(0),
1717
- fixedClientIV: new Uint8Array(0),
1718
- };
1719
- }
1720
- exports.ClaimTunnelRequest = {
1721
- encode(message, writer = new wire_1.BinaryWriter()) {
1722
- if (message.request !== undefined) {
1723
- exports.CreateTunnelRequest.encode(message.request, writer.uint32(10).fork()).join();
1724
- }
1725
- if (message.data !== undefined) {
1726
- exports.ClaimRequestData.encode(message.data, writer.uint32(18).fork()).join();
1727
- }
1728
- for (const v of message.transcript) {
1729
- exports.ClaimTunnelRequest_TranscriptMessage.encode(v, writer.uint32(26).fork()).join();
1730
- }
1731
- if (message.signatures !== undefined) {
1732
- exports.ClaimTunnelRequest_Signatures.encode(message.signatures, writer.uint32(34).fork()).join();
1733
- }
1734
- if (message.zkEngine !== 0) {
1735
- writer.uint32(40).int32(message.zkEngine);
1736
- }
1737
- if (message.fixedServerIV.length !== 0) {
1738
- writer.uint32(50).bytes(message.fixedServerIV);
1739
- }
1740
- if (message.fixedClientIV.length !== 0) {
1741
- writer.uint32(58).bytes(message.fixedClientIV);
1742
- }
1743
- return writer;
1744
- },
1745
- decode(input, length) {
1746
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1747
- let end = length === undefined ? reader.len : reader.pos + length;
1748
- const message = createBaseClaimTunnelRequest();
1749
- while (reader.pos < end) {
1750
- const tag = reader.uint32();
1751
- switch (tag >>> 3) {
1752
- case 1: {
1753
- if (tag !== 10) {
1754
- break;
1755
- }
1756
- message.request = exports.CreateTunnelRequest.decode(reader, reader.uint32());
1757
- continue;
1758
- }
1759
- case 2: {
1760
- if (tag !== 18) {
1761
- break;
1762
- }
1763
- message.data = exports.ClaimRequestData.decode(reader, reader.uint32());
1764
- continue;
1765
- }
1766
- case 3: {
1767
- if (tag !== 26) {
1768
- break;
1769
- }
1770
- message.transcript.push(exports.ClaimTunnelRequest_TranscriptMessage.decode(reader, reader.uint32()));
1771
- continue;
1772
- }
1773
- case 4: {
1774
- if (tag !== 34) {
1775
- break;
1776
- }
1777
- message.signatures = exports.ClaimTunnelRequest_Signatures.decode(reader, reader.uint32());
1778
- continue;
1779
- }
1780
- case 5: {
1781
- if (tag !== 40) {
1782
- break;
1783
- }
1784
- message.zkEngine = reader.int32();
1785
- continue;
1786
- }
1787
- case 6: {
1788
- if (tag !== 50) {
1789
- break;
1790
- }
1791
- message.fixedServerIV = reader.bytes();
1792
- continue;
1793
- }
1794
- case 7: {
1795
- if (tag !== 58) {
1796
- break;
1797
- }
1798
- message.fixedClientIV = reader.bytes();
1799
- continue;
1800
- }
1801
- }
1802
- if ((tag & 7) === 4 || tag === 0) {
1803
- break;
1804
- }
1805
- reader.skip(tag & 7);
1806
- }
1807
- return message;
1808
- },
1809
- fromJSON(object) {
1810
- return {
1811
- request: isSet(object.request) ? exports.CreateTunnelRequest.fromJSON(object.request) : undefined,
1812
- data: isSet(object.data) ? exports.ClaimRequestData.fromJSON(object.data) : undefined,
1813
- transcript: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.transcript)
1814
- ? object.transcript.map((e) => exports.ClaimTunnelRequest_TranscriptMessage.fromJSON(e))
1815
- : [],
1816
- signatures: isSet(object.signatures) ? exports.ClaimTunnelRequest_Signatures.fromJSON(object.signatures) : undefined,
1817
- zkEngine: isSet(object.zkEngine) ? zKProofEngineFromJSON(object.zkEngine) : 0,
1818
- fixedServerIV: isSet(object.fixedServerIV) ? bytesFromBase64(object.fixedServerIV) : new Uint8Array(0),
1819
- fixedClientIV: isSet(object.fixedClientIV) ? bytesFromBase64(object.fixedClientIV) : new Uint8Array(0),
1820
- };
1821
- },
1822
- toJSON(message) {
1823
- var _a;
1824
- const obj = {};
1825
- if (message.request !== undefined) {
1826
- obj.request = exports.CreateTunnelRequest.toJSON(message.request);
1827
- }
1828
- if (message.data !== undefined) {
1829
- obj.data = exports.ClaimRequestData.toJSON(message.data);
1830
- }
1831
- if ((_a = message.transcript) === null || _a === void 0 ? void 0 : _a.length) {
1832
- obj.transcript = message.transcript.map((e) => exports.ClaimTunnelRequest_TranscriptMessage.toJSON(e));
1833
- }
1834
- if (message.signatures !== undefined) {
1835
- obj.signatures = exports.ClaimTunnelRequest_Signatures.toJSON(message.signatures);
1836
- }
1837
- if (message.zkEngine !== 0) {
1838
- obj.zkEngine = zKProofEngineToJSON(message.zkEngine);
1839
- }
1840
- if (message.fixedServerIV.length !== 0) {
1841
- obj.fixedServerIV = base64FromBytes(message.fixedServerIV);
1842
- }
1843
- if (message.fixedClientIV.length !== 0) {
1844
- obj.fixedClientIV = base64FromBytes(message.fixedClientIV);
1845
- }
1846
- return obj;
1847
- },
1848
- create(base) {
1849
- return exports.ClaimTunnelRequest.fromPartial(base !== null && base !== void 0 ? base : {});
1850
- },
1851
- fromPartial(object) {
1852
- var _a, _b, _c, _d;
1853
- const message = createBaseClaimTunnelRequest();
1854
- message.request = (object.request !== undefined && object.request !== null)
1855
- ? exports.CreateTunnelRequest.fromPartial(object.request)
1856
- : undefined;
1857
- message.data = (object.data !== undefined && object.data !== null)
1858
- ? exports.ClaimRequestData.fromPartial(object.data)
1859
- : undefined;
1860
- message.transcript = ((_a = object.transcript) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ClaimTunnelRequest_TranscriptMessage.fromPartial(e))) || [];
1861
- message.signatures = (object.signatures !== undefined && object.signatures !== null)
1862
- ? exports.ClaimTunnelRequest_Signatures.fromPartial(object.signatures)
1863
- : undefined;
1864
- message.zkEngine = (_b = object.zkEngine) !== null && _b !== void 0 ? _b : 0;
1865
- message.fixedServerIV = (_c = object.fixedServerIV) !== null && _c !== void 0 ? _c : new Uint8Array(0);
1866
- message.fixedClientIV = (_d = object.fixedClientIV) !== null && _d !== void 0 ? _d : new Uint8Array(0);
1867
- return message;
1868
- },
1869
- };
1870
- function createBaseClaimTunnelRequest_Signatures() {
1871
- return { requestSignature: new Uint8Array(0) };
1872
- }
1873
- exports.ClaimTunnelRequest_Signatures = {
1874
- encode(message, writer = new wire_1.BinaryWriter()) {
1875
- if (message.requestSignature.length !== 0) {
1876
- writer.uint32(10).bytes(message.requestSignature);
1877
- }
1878
- return writer;
1879
- },
1880
- decode(input, length) {
1881
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1882
- let end = length === undefined ? reader.len : reader.pos + length;
1883
- const message = createBaseClaimTunnelRequest_Signatures();
1884
- while (reader.pos < end) {
1885
- const tag = reader.uint32();
1886
- switch (tag >>> 3) {
1887
- case 1: {
1888
- if (tag !== 10) {
1889
- break;
1890
- }
1891
- message.requestSignature = reader.bytes();
1892
- continue;
1893
- }
1894
- }
1895
- if ((tag & 7) === 4 || tag === 0) {
1896
- break;
1897
- }
1898
- reader.skip(tag & 7);
1899
- }
1900
- return message;
1901
- },
1902
- fromJSON(object) {
1903
- return {
1904
- requestSignature: isSet(object.requestSignature) ? bytesFromBase64(object.requestSignature) : new Uint8Array(0),
1905
- };
1906
- },
1907
- toJSON(message) {
1908
- const obj = {};
1909
- if (message.requestSignature.length !== 0) {
1910
- obj.requestSignature = base64FromBytes(message.requestSignature);
1911
- }
1912
- return obj;
1913
- },
1914
- create(base) {
1915
- return exports.ClaimTunnelRequest_Signatures.fromPartial(base !== null && base !== void 0 ? base : {});
1916
- },
1917
- fromPartial(object) {
1918
- var _a;
1919
- const message = createBaseClaimTunnelRequest_Signatures();
1920
- message.requestSignature = (_a = object.requestSignature) !== null && _a !== void 0 ? _a : new Uint8Array(0);
1921
- return message;
1922
- },
1923
- };
1924
- function createBaseClaimTunnelRequest_TranscriptMessage() {
1925
- return { sender: 0, message: new Uint8Array(0), reveal: undefined };
1926
- }
1927
- exports.ClaimTunnelRequest_TranscriptMessage = {
1928
- encode(message, writer = new wire_1.BinaryWriter()) {
1929
- if (message.sender !== 0) {
1930
- writer.uint32(8).int32(message.sender);
1931
- }
1932
- if (message.message.length !== 0) {
1933
- writer.uint32(18).bytes(message.message);
1934
- }
1935
- if (message.reveal !== undefined) {
1936
- exports.MessageReveal.encode(message.reveal, writer.uint32(26).fork()).join();
1937
- }
1938
- return writer;
1939
- },
1940
- decode(input, length) {
1941
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1942
- let end = length === undefined ? reader.len : reader.pos + length;
1943
- const message = createBaseClaimTunnelRequest_TranscriptMessage();
1944
- while (reader.pos < end) {
1945
- const tag = reader.uint32();
1946
- switch (tag >>> 3) {
1947
- case 1: {
1948
- if (tag !== 8) {
1949
- break;
1950
- }
1951
- message.sender = reader.int32();
1952
- continue;
1953
- }
1954
- case 2: {
1955
- if (tag !== 18) {
1956
- break;
1957
- }
1958
- message.message = reader.bytes();
1959
- continue;
1960
- }
1961
- case 3: {
1962
- if (tag !== 26) {
1963
- break;
1964
- }
1965
- message.reveal = exports.MessageReveal.decode(reader, reader.uint32());
1966
- continue;
1967
- }
1968
- }
1969
- if ((tag & 7) === 4 || tag === 0) {
1970
- break;
1971
- }
1972
- reader.skip(tag & 7);
1973
- }
1974
- return message;
1975
- },
1976
- fromJSON(object) {
1977
- return {
1978
- sender: isSet(object.sender) ? transcriptMessageSenderTypeFromJSON(object.sender) : 0,
1979
- message: isSet(object.message) ? bytesFromBase64(object.message) : new Uint8Array(0),
1980
- reveal: isSet(object.reveal) ? exports.MessageReveal.fromJSON(object.reveal) : undefined,
1981
- };
1982
- },
1983
- toJSON(message) {
1984
- const obj = {};
1985
- if (message.sender !== 0) {
1986
- obj.sender = transcriptMessageSenderTypeToJSON(message.sender);
1987
- }
1988
- if (message.message.length !== 0) {
1989
- obj.message = base64FromBytes(message.message);
1990
- }
1991
- if (message.reveal !== undefined) {
1992
- obj.reveal = exports.MessageReveal.toJSON(message.reveal);
1993
- }
1994
- return obj;
1995
- },
1996
- create(base) {
1997
- return exports.ClaimTunnelRequest_TranscriptMessage.fromPartial(base !== null && base !== void 0 ? base : {});
1998
- },
1999
- fromPartial(object) {
2000
- var _a, _b;
2001
- const message = createBaseClaimTunnelRequest_TranscriptMessage();
2002
- message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : 0;
2003
- message.message = (_b = object.message) !== null && _b !== void 0 ? _b : new Uint8Array(0);
2004
- message.reveal = (object.reveal !== undefined && object.reveal !== null)
2005
- ? exports.MessageReveal.fromPartial(object.reveal)
2006
- : undefined;
2007
- return message;
2008
- },
2009
- };
2010
- function createBaseClaimTunnelResponse() {
2011
- return { request: undefined, claim: undefined, error: undefined, signatures: undefined };
2012
- }
2013
- exports.ClaimTunnelResponse = {
2014
- encode(message, writer = new wire_1.BinaryWriter()) {
2015
- if (message.request !== undefined) {
2016
- exports.ClaimTunnelRequest.encode(message.request, writer.uint32(10).fork()).join();
2017
- }
2018
- if (message.claim !== undefined) {
2019
- exports.ProviderClaimData.encode(message.claim, writer.uint32(18).fork()).join();
2020
- }
2021
- if (message.error !== undefined) {
2022
- exports.ErrorData.encode(message.error, writer.uint32(26).fork()).join();
2023
- }
2024
- if (message.signatures !== undefined) {
2025
- exports.ClaimTunnelResponse_Signatures.encode(message.signatures, writer.uint32(34).fork()).join();
2026
- }
2027
- return writer;
2028
- },
2029
- decode(input, length) {
2030
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2031
- let end = length === undefined ? reader.len : reader.pos + length;
2032
- const message = createBaseClaimTunnelResponse();
2033
- while (reader.pos < end) {
2034
- const tag = reader.uint32();
2035
- switch (tag >>> 3) {
2036
- case 1: {
2037
- if (tag !== 10) {
2038
- break;
2039
- }
2040
- message.request = exports.ClaimTunnelRequest.decode(reader, reader.uint32());
2041
- continue;
2042
- }
2043
- case 2: {
2044
- if (tag !== 18) {
2045
- break;
2046
- }
2047
- message.claim = exports.ProviderClaimData.decode(reader, reader.uint32());
2048
- continue;
2049
- }
2050
- case 3: {
2051
- if (tag !== 26) {
2052
- break;
2053
- }
2054
- message.error = exports.ErrorData.decode(reader, reader.uint32());
2055
- continue;
2056
- }
2057
- case 4: {
2058
- if (tag !== 34) {
2059
- break;
2060
- }
2061
- message.signatures = exports.ClaimTunnelResponse_Signatures.decode(reader, reader.uint32());
2062
- continue;
2063
- }
2064
- }
2065
- if ((tag & 7) === 4 || tag === 0) {
2066
- break;
2067
- }
2068
- reader.skip(tag & 7);
2069
- }
2070
- return message;
2071
- },
2072
- fromJSON(object) {
2073
- return {
2074
- request: isSet(object.request) ? exports.ClaimTunnelRequest.fromJSON(object.request) : undefined,
2075
- claim: isSet(object.claim) ? exports.ProviderClaimData.fromJSON(object.claim) : undefined,
2076
- error: isSet(object.error) ? exports.ErrorData.fromJSON(object.error) : undefined,
2077
- signatures: isSet(object.signatures) ? exports.ClaimTunnelResponse_Signatures.fromJSON(object.signatures) : undefined,
2078
- };
2079
- },
2080
- toJSON(message) {
2081
- const obj = {};
2082
- if (message.request !== undefined) {
2083
- obj.request = exports.ClaimTunnelRequest.toJSON(message.request);
2084
- }
2085
- if (message.claim !== undefined) {
2086
- obj.claim = exports.ProviderClaimData.toJSON(message.claim);
2087
- }
2088
- if (message.error !== undefined) {
2089
- obj.error = exports.ErrorData.toJSON(message.error);
2090
- }
2091
- if (message.signatures !== undefined) {
2092
- obj.signatures = exports.ClaimTunnelResponse_Signatures.toJSON(message.signatures);
2093
- }
2094
- return obj;
2095
- },
2096
- create(base) {
2097
- return exports.ClaimTunnelResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2098
- },
2099
- fromPartial(object) {
2100
- const message = createBaseClaimTunnelResponse();
2101
- message.request = (object.request !== undefined && object.request !== null)
2102
- ? exports.ClaimTunnelRequest.fromPartial(object.request)
2103
- : undefined;
2104
- message.claim = (object.claim !== undefined && object.claim !== null)
2105
- ? exports.ProviderClaimData.fromPartial(object.claim)
2106
- : undefined;
2107
- message.error = (object.error !== undefined && object.error !== null)
2108
- ? exports.ErrorData.fromPartial(object.error)
2109
- : undefined;
2110
- message.signatures = (object.signatures !== undefined && object.signatures !== null)
2111
- ? exports.ClaimTunnelResponse_Signatures.fromPartial(object.signatures)
2112
- : undefined;
2113
- return message;
2114
- },
2115
- };
2116
- function createBaseClaimTunnelResponse_Signatures() {
2117
- return { attestorAddress: "", claimSignature: new Uint8Array(0), resultSignature: new Uint8Array(0) };
2118
- }
2119
- exports.ClaimTunnelResponse_Signatures = {
2120
- encode(message, writer = new wire_1.BinaryWriter()) {
2121
- if (message.attestorAddress !== "") {
2122
- writer.uint32(10).string(message.attestorAddress);
2123
- }
2124
- if (message.claimSignature.length !== 0) {
2125
- writer.uint32(18).bytes(message.claimSignature);
2126
- }
2127
- if (message.resultSignature.length !== 0) {
2128
- writer.uint32(26).bytes(message.resultSignature);
2129
- }
2130
- return writer;
2131
- },
2132
- decode(input, length) {
2133
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2134
- let end = length === undefined ? reader.len : reader.pos + length;
2135
- const message = createBaseClaimTunnelResponse_Signatures();
2136
- while (reader.pos < end) {
2137
- const tag = reader.uint32();
2138
- switch (tag >>> 3) {
2139
- case 1: {
2140
- if (tag !== 10) {
2141
- break;
2142
- }
2143
- message.attestorAddress = reader.string();
2144
- continue;
2145
- }
2146
- case 2: {
2147
- if (tag !== 18) {
2148
- break;
2149
- }
2150
- message.claimSignature = reader.bytes();
2151
- continue;
2152
- }
2153
- case 3: {
2154
- if (tag !== 26) {
2155
- break;
2156
- }
2157
- message.resultSignature = reader.bytes();
2158
- continue;
2159
- }
2160
- }
2161
- if ((tag & 7) === 4 || tag === 0) {
2162
- break;
2163
- }
2164
- reader.skip(tag & 7);
2165
- }
2166
- return message;
2167
- },
2168
- fromJSON(object) {
2169
- return {
2170
- attestorAddress: isSet(object.attestorAddress) ? globalThis.String(object.attestorAddress) : "",
2171
- claimSignature: isSet(object.claimSignature) ? bytesFromBase64(object.claimSignature) : new Uint8Array(0),
2172
- resultSignature: isSet(object.resultSignature) ? bytesFromBase64(object.resultSignature) : new Uint8Array(0),
2173
- };
2174
- },
2175
- toJSON(message) {
2176
- const obj = {};
2177
- if (message.attestorAddress !== "") {
2178
- obj.attestorAddress = message.attestorAddress;
2179
- }
2180
- if (message.claimSignature.length !== 0) {
2181
- obj.claimSignature = base64FromBytes(message.claimSignature);
2182
- }
2183
- if (message.resultSignature.length !== 0) {
2184
- obj.resultSignature = base64FromBytes(message.resultSignature);
2185
- }
2186
- return obj;
2187
- },
2188
- create(base) {
2189
- return exports.ClaimTunnelResponse_Signatures.fromPartial(base !== null && base !== void 0 ? base : {});
2190
- },
2191
- fromPartial(object) {
2192
- var _a, _b, _c;
2193
- const message = createBaseClaimTunnelResponse_Signatures();
2194
- message.attestorAddress = (_a = object.attestorAddress) !== null && _a !== void 0 ? _a : "";
2195
- message.claimSignature = (_b = object.claimSignature) !== null && _b !== void 0 ? _b : new Uint8Array(0);
2196
- message.resultSignature = (_c = object.resultSignature) !== null && _c !== void 0 ? _c : new Uint8Array(0);
2197
- return message;
2198
- },
2199
- };
2200
- function createBaseRequestClaimOnAvsRequest() {
2201
- return { chainId: 0, jsonCreateClaimRequest: "", requestSignature: new Uint8Array(0) };
2202
- }
2203
- exports.RequestClaimOnAvsRequest = {
2204
- encode(message, writer = new wire_1.BinaryWriter()) {
2205
- if (message.chainId !== 0) {
2206
- writer.uint32(8).uint32(message.chainId);
2207
- }
2208
- if (message.jsonCreateClaimRequest !== "") {
2209
- writer.uint32(18).string(message.jsonCreateClaimRequest);
2210
- }
2211
- if (message.requestSignature.length !== 0) {
2212
- writer.uint32(26).bytes(message.requestSignature);
2213
- }
2214
- return writer;
2215
- },
2216
- decode(input, length) {
2217
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2218
- let end = length === undefined ? reader.len : reader.pos + length;
2219
- const message = createBaseRequestClaimOnAvsRequest();
2220
- while (reader.pos < end) {
2221
- const tag = reader.uint32();
2222
- switch (tag >>> 3) {
2223
- case 1: {
2224
- if (tag !== 8) {
2225
- break;
2226
- }
2227
- message.chainId = reader.uint32();
2228
- continue;
2229
- }
2230
- case 2: {
2231
- if (tag !== 18) {
2232
- break;
2233
- }
2234
- message.jsonCreateClaimRequest = reader.string();
2235
- continue;
2236
- }
2237
- case 3: {
2238
- if (tag !== 26) {
2239
- break;
2240
- }
2241
- message.requestSignature = reader.bytes();
2242
- continue;
2243
- }
2244
- }
2245
- if ((tag & 7) === 4 || tag === 0) {
2246
- break;
2247
- }
2248
- reader.skip(tag & 7);
2249
- }
2250
- return message;
2251
- },
2252
- fromJSON(object) {
2253
- return {
2254
- chainId: isSet(object.chainId) ? globalThis.Number(object.chainId) : 0,
2255
- jsonCreateClaimRequest: isSet(object.jsonCreateClaimRequest)
2256
- ? globalThis.String(object.jsonCreateClaimRequest)
2257
- : "",
2258
- requestSignature: isSet(object.requestSignature) ? bytesFromBase64(object.requestSignature) : new Uint8Array(0),
2259
- };
2260
- },
2261
- toJSON(message) {
2262
- const obj = {};
2263
- if (message.chainId !== 0) {
2264
- obj.chainId = Math.round(message.chainId);
2265
- }
2266
- if (message.jsonCreateClaimRequest !== "") {
2267
- obj.jsonCreateClaimRequest = message.jsonCreateClaimRequest;
2268
- }
2269
- if (message.requestSignature.length !== 0) {
2270
- obj.requestSignature = base64FromBytes(message.requestSignature);
2271
- }
2272
- return obj;
2273
- },
2274
- create(base) {
2275
- return exports.RequestClaimOnAvsRequest.fromPartial(base !== null && base !== void 0 ? base : {});
2276
- },
2277
- fromPartial(object) {
2278
- var _a, _b, _c;
2279
- const message = createBaseRequestClaimOnAvsRequest();
2280
- message.chainId = (_a = object.chainId) !== null && _a !== void 0 ? _a : 0;
2281
- message.jsonCreateClaimRequest = (_b = object.jsonCreateClaimRequest) !== null && _b !== void 0 ? _b : "";
2282
- message.requestSignature = (_c = object.requestSignature) !== null && _c !== void 0 ? _c : new Uint8Array(0);
2283
- return message;
2284
- },
2285
- };
2286
- function createBaseRequestClaimOnAvsResponse() {
2287
- return { txHash: "", taskIndex: 0, jsonTask: "" };
2288
- }
2289
- exports.RequestClaimOnAvsResponse = {
2290
- encode(message, writer = new wire_1.BinaryWriter()) {
2291
- if (message.txHash !== "") {
2292
- writer.uint32(10).string(message.txHash);
2293
- }
2294
- if (message.taskIndex !== 0) {
2295
- writer.uint32(16).uint32(message.taskIndex);
2296
- }
2297
- if (message.jsonTask !== "") {
2298
- writer.uint32(26).string(message.jsonTask);
2299
- }
2300
- return writer;
2301
- },
2302
- decode(input, length) {
2303
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2304
- let end = length === undefined ? reader.len : reader.pos + length;
2305
- const message = createBaseRequestClaimOnAvsResponse();
2306
- while (reader.pos < end) {
2307
- const tag = reader.uint32();
2308
- switch (tag >>> 3) {
2309
- case 1: {
2310
- if (tag !== 10) {
2311
- break;
2312
- }
2313
- message.txHash = reader.string();
2314
- continue;
2315
- }
2316
- case 2: {
2317
- if (tag !== 16) {
2318
- break;
2319
- }
2320
- message.taskIndex = reader.uint32();
2321
- continue;
2322
- }
2323
- case 3: {
2324
- if (tag !== 26) {
2325
- break;
2326
- }
2327
- message.jsonTask = reader.string();
2328
- continue;
2329
- }
2330
- }
2331
- if ((tag & 7) === 4 || tag === 0) {
2332
- break;
2333
- }
2334
- reader.skip(tag & 7);
2335
- }
2336
- return message;
2337
- },
2338
- fromJSON(object) {
2339
- return {
2340
- txHash: isSet(object.txHash) ? globalThis.String(object.txHash) : "",
2341
- taskIndex: isSet(object.taskIndex) ? globalThis.Number(object.taskIndex) : 0,
2342
- jsonTask: isSet(object.jsonTask) ? globalThis.String(object.jsonTask) : "",
2343
- };
2344
- },
2345
- toJSON(message) {
2346
- const obj = {};
2347
- if (message.txHash !== "") {
2348
- obj.txHash = message.txHash;
2349
- }
2350
- if (message.taskIndex !== 0) {
2351
- obj.taskIndex = Math.round(message.taskIndex);
2352
- }
2353
- if (message.jsonTask !== "") {
2354
- obj.jsonTask = message.jsonTask;
2355
- }
2356
- return obj;
2357
- },
2358
- create(base) {
2359
- return exports.RequestClaimOnAvsResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2360
- },
2361
- fromPartial(object) {
2362
- var _a, _b, _c;
2363
- const message = createBaseRequestClaimOnAvsResponse();
2364
- message.txHash = (_a = object.txHash) !== null && _a !== void 0 ? _a : "";
2365
- message.taskIndex = (_b = object.taskIndex) !== null && _b !== void 0 ? _b : 0;
2366
- message.jsonTask = (_c = object.jsonTask) !== null && _c !== void 0 ? _c : "";
2367
- return message;
2368
- },
2369
- };
2370
- function createBaseCompleteClaimOnAvsRequest() {
2371
- return { chainId: 0, taskIndex: 0, completedTaskJson: "" };
2372
- }
2373
- exports.CompleteClaimOnAvsRequest = {
2374
- encode(message, writer = new wire_1.BinaryWriter()) {
2375
- if (message.chainId !== 0) {
2376
- writer.uint32(8).uint32(message.chainId);
2377
- }
2378
- if (message.taskIndex !== 0) {
2379
- writer.uint32(16).uint32(message.taskIndex);
2380
- }
2381
- if (message.completedTaskJson !== "") {
2382
- writer.uint32(26).string(message.completedTaskJson);
2383
- }
2384
- return writer;
2385
- },
2386
- decode(input, length) {
2387
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2388
- let end = length === undefined ? reader.len : reader.pos + length;
2389
- const message = createBaseCompleteClaimOnAvsRequest();
2390
- while (reader.pos < end) {
2391
- const tag = reader.uint32();
2392
- switch (tag >>> 3) {
2393
- case 1: {
2394
- if (tag !== 8) {
2395
- break;
2396
- }
2397
- message.chainId = reader.uint32();
2398
- continue;
2399
- }
2400
- case 2: {
2401
- if (tag !== 16) {
2402
- break;
2403
- }
2404
- message.taskIndex = reader.uint32();
2405
- continue;
2406
- }
2407
- case 3: {
2408
- if (tag !== 26) {
2409
- break;
2410
- }
2411
- message.completedTaskJson = reader.string();
2412
- continue;
2413
- }
2414
- }
2415
- if ((tag & 7) === 4 || tag === 0) {
2416
- break;
2417
- }
2418
- reader.skip(tag & 7);
2419
- }
2420
- return message;
2421
- },
2422
- fromJSON(object) {
2423
- return {
2424
- chainId: isSet(object.chainId) ? globalThis.Number(object.chainId) : 0,
2425
- taskIndex: isSet(object.taskIndex) ? globalThis.Number(object.taskIndex) : 0,
2426
- completedTaskJson: isSet(object.completedTaskJson) ? globalThis.String(object.completedTaskJson) : "",
2427
- };
2428
- },
2429
- toJSON(message) {
2430
- const obj = {};
2431
- if (message.chainId !== 0) {
2432
- obj.chainId = Math.round(message.chainId);
2433
- }
2434
- if (message.taskIndex !== 0) {
2435
- obj.taskIndex = Math.round(message.taskIndex);
2436
- }
2437
- if (message.completedTaskJson !== "") {
2438
- obj.completedTaskJson = message.completedTaskJson;
2439
- }
2440
- return obj;
2441
- },
2442
- create(base) {
2443
- return exports.CompleteClaimOnAvsRequest.fromPartial(base !== null && base !== void 0 ? base : {});
2444
- },
2445
- fromPartial(object) {
2446
- var _a, _b, _c;
2447
- const message = createBaseCompleteClaimOnAvsRequest();
2448
- message.chainId = (_a = object.chainId) !== null && _a !== void 0 ? _a : 0;
2449
- message.taskIndex = (_b = object.taskIndex) !== null && _b !== void 0 ? _b : 0;
2450
- message.completedTaskJson = (_c = object.completedTaskJson) !== null && _c !== void 0 ? _c : "";
2451
- return message;
2452
- },
2453
- };
2454
- function createBaseCompleteClaimOnAvsResponse() {
2455
- return { txHash: "", taskCompletedObjectJson: "" };
2456
- }
2457
- exports.CompleteClaimOnAvsResponse = {
2458
- encode(message, writer = new wire_1.BinaryWriter()) {
2459
- if (message.txHash !== "") {
2460
- writer.uint32(10).string(message.txHash);
2461
- }
2462
- if (message.taskCompletedObjectJson !== "") {
2463
- writer.uint32(18).string(message.taskCompletedObjectJson);
2464
- }
2465
- return writer;
2466
- },
2467
- decode(input, length) {
2468
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2469
- let end = length === undefined ? reader.len : reader.pos + length;
2470
- const message = createBaseCompleteClaimOnAvsResponse();
2471
- while (reader.pos < end) {
2472
- const tag = reader.uint32();
2473
- switch (tag >>> 3) {
2474
- case 1: {
2475
- if (tag !== 10) {
2476
- break;
2477
- }
2478
- message.txHash = reader.string();
2479
- continue;
2480
- }
2481
- case 2: {
2482
- if (tag !== 18) {
2483
- break;
2484
- }
2485
- message.taskCompletedObjectJson = reader.string();
2486
- continue;
2487
- }
2488
- }
2489
- if ((tag & 7) === 4 || tag === 0) {
2490
- break;
2491
- }
2492
- reader.skip(tag & 7);
2493
- }
2494
- return message;
2495
- },
2496
- fromJSON(object) {
2497
- return {
2498
- txHash: isSet(object.txHash) ? globalThis.String(object.txHash) : "",
2499
- taskCompletedObjectJson: isSet(object.taskCompletedObjectJson)
2500
- ? globalThis.String(object.taskCompletedObjectJson)
2501
- : "",
2502
- };
2503
- },
2504
- toJSON(message) {
2505
- const obj = {};
2506
- if (message.txHash !== "") {
2507
- obj.txHash = message.txHash;
2508
- }
2509
- if (message.taskCompletedObjectJson !== "") {
2510
- obj.taskCompletedObjectJson = message.taskCompletedObjectJson;
2511
- }
2512
- return obj;
2513
- },
2514
- create(base) {
2515
- return exports.CompleteClaimOnAvsResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2516
- },
2517
- fromPartial(object) {
2518
- var _a, _b;
2519
- const message = createBaseCompleteClaimOnAvsResponse();
2520
- message.txHash = (_a = object.txHash) !== null && _a !== void 0 ? _a : "";
2521
- message.taskCompletedObjectJson = (_b = object.taskCompletedObjectJson) !== null && _b !== void 0 ? _b : "";
2522
- return message;
2523
- },
2524
- };
2525
- function createBaseCreateTaskOnMechainRequest() {
2526
- return { timestamp: 0 };
2527
- }
2528
- exports.CreateTaskOnMechainRequest = {
2529
- encode(message, writer = new wire_1.BinaryWriter()) {
2530
- if (message.timestamp !== 0) {
2531
- writer.uint32(8).uint32(message.timestamp);
2532
- }
2533
- return writer;
2534
- },
2535
- decode(input, length) {
2536
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2537
- let end = length === undefined ? reader.len : reader.pos + length;
2538
- const message = createBaseCreateTaskOnMechainRequest();
2539
- while (reader.pos < end) {
2540
- const tag = reader.uint32();
2541
- switch (tag >>> 3) {
2542
- case 1: {
2543
- if (tag !== 8) {
2544
- break;
2545
- }
2546
- message.timestamp = reader.uint32();
2547
- continue;
2548
- }
2549
- }
2550
- if ((tag & 7) === 4 || tag === 0) {
2551
- break;
2552
- }
2553
- reader.skip(tag & 7);
2554
- }
2555
- return message;
2556
- },
2557
- fromJSON(object) {
2558
- return { timestamp: isSet(object.timestamp) ? globalThis.Number(object.timestamp) : 0 };
2559
- },
2560
- toJSON(message) {
2561
- const obj = {};
2562
- if (message.timestamp !== 0) {
2563
- obj.timestamp = Math.round(message.timestamp);
2564
- }
2565
- return obj;
2566
- },
2567
- create(base) {
2568
- return exports.CreateTaskOnMechainRequest.fromPartial(base !== null && base !== void 0 ? base : {});
2569
- },
2570
- fromPartial(object) {
2571
- var _a;
2572
- const message = createBaseCreateTaskOnMechainRequest();
2573
- message.timestamp = (_a = object.timestamp) !== null && _a !== void 0 ? _a : 0;
2574
- return message;
2575
- },
2576
- };
2577
- function createBaseCreateTaskOnMechainResponse() {
2578
- return { taskId: 0, requiredAttestors: 0, hosts: [] };
2579
- }
2580
- exports.CreateTaskOnMechainResponse = {
2581
- encode(message, writer = new wire_1.BinaryWriter()) {
2582
- if (message.taskId !== 0) {
2583
- writer.uint32(8).uint32(message.taskId);
2584
- }
2585
- if (message.requiredAttestors !== 0) {
2586
- writer.uint32(16).uint32(message.requiredAttestors);
2587
- }
2588
- for (const v of message.hosts) {
2589
- writer.uint32(26).string(v);
2590
- }
2591
- return writer;
2592
- },
2593
- decode(input, length) {
2594
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2595
- let end = length === undefined ? reader.len : reader.pos + length;
2596
- const message = createBaseCreateTaskOnMechainResponse();
2597
- while (reader.pos < end) {
2598
- const tag = reader.uint32();
2599
- switch (tag >>> 3) {
2600
- case 1: {
2601
- if (tag !== 8) {
2602
- break;
2603
- }
2604
- message.taskId = reader.uint32();
2605
- continue;
2606
- }
2607
- case 2: {
2608
- if (tag !== 16) {
2609
- break;
2610
- }
2611
- message.requiredAttestors = reader.uint32();
2612
- continue;
2613
- }
2614
- case 3: {
2615
- if (tag !== 26) {
2616
- break;
2617
- }
2618
- message.hosts.push(reader.string());
2619
- continue;
2620
- }
2621
- }
2622
- if ((tag & 7) === 4 || tag === 0) {
2623
- break;
2624
- }
2625
- reader.skip(tag & 7);
2626
- }
2627
- return message;
2628
- },
2629
- fromJSON(object) {
2630
- return {
2631
- taskId: isSet(object.taskId) ? globalThis.Number(object.taskId) : 0,
2632
- requiredAttestors: isSet(object.requiredAttestors) ? globalThis.Number(object.requiredAttestors) : 0,
2633
- hosts: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.hosts) ? object.hosts.map((e) => globalThis.String(e)) : [],
2634
- };
2635
- },
2636
- toJSON(message) {
2637
- var _a;
2638
- const obj = {};
2639
- if (message.taskId !== 0) {
2640
- obj.taskId = Math.round(message.taskId);
2641
- }
2642
- if (message.requiredAttestors !== 0) {
2643
- obj.requiredAttestors = Math.round(message.requiredAttestors);
2644
- }
2645
- if ((_a = message.hosts) === null || _a === void 0 ? void 0 : _a.length) {
2646
- obj.hosts = message.hosts;
2647
- }
2648
- return obj;
2649
- },
2650
- create(base) {
2651
- return exports.CreateTaskOnMechainResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2652
- },
2653
- fromPartial(object) {
2654
- var _a, _b, _c;
2655
- const message = createBaseCreateTaskOnMechainResponse();
2656
- message.taskId = (_a = object.taskId) !== null && _a !== void 0 ? _a : 0;
2657
- message.requiredAttestors = (_b = object.requiredAttestors) !== null && _b !== void 0 ? _b : 0;
2658
- message.hosts = ((_c = object.hosts) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];
2659
- return message;
2660
- },
2661
- };
2662
- function createBaseAuthenticatedUserData() {
2663
- return { id: "", createdAt: 0, expiresAt: 0, hostWhitelist: [] };
2664
- }
2665
- exports.AuthenticatedUserData = {
2666
- encode(message, writer = new wire_1.BinaryWriter()) {
2667
- if (message.id !== "") {
2668
- writer.uint32(10).string(message.id);
2669
- }
2670
- if (message.createdAt !== 0) {
2671
- writer.uint32(16).uint32(message.createdAt);
2672
- }
2673
- if (message.expiresAt !== 0) {
2674
- writer.uint32(24).uint32(message.expiresAt);
2675
- }
2676
- for (const v of message.hostWhitelist) {
2677
- writer.uint32(34).string(v);
2678
- }
2679
- return writer;
2680
- },
2681
- decode(input, length) {
2682
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2683
- let end = length === undefined ? reader.len : reader.pos + length;
2684
- const message = createBaseAuthenticatedUserData();
2685
- while (reader.pos < end) {
2686
- const tag = reader.uint32();
2687
- switch (tag >>> 3) {
2688
- case 1: {
2689
- if (tag !== 10) {
2690
- break;
2691
- }
2692
- message.id = reader.string();
2693
- continue;
2694
- }
2695
- case 2: {
2696
- if (tag !== 16) {
2697
- break;
2698
- }
2699
- message.createdAt = reader.uint32();
2700
- continue;
2701
- }
2702
- case 3: {
2703
- if (tag !== 24) {
2704
- break;
2705
- }
2706
- message.expiresAt = reader.uint32();
2707
- continue;
2708
- }
2709
- case 4: {
2710
- if (tag !== 34) {
2711
- break;
2712
- }
2713
- message.hostWhitelist.push(reader.string());
2714
- continue;
2715
- }
2716
- }
2717
- if ((tag & 7) === 4 || tag === 0) {
2718
- break;
2719
- }
2720
- reader.skip(tag & 7);
2721
- }
2722
- return message;
2723
- },
2724
- fromJSON(object) {
2725
- return {
2726
- id: isSet(object.id) ? globalThis.String(object.id) : "",
2727
- createdAt: isSet(object.createdAt) ? globalThis.Number(object.createdAt) : 0,
2728
- expiresAt: isSet(object.expiresAt) ? globalThis.Number(object.expiresAt) : 0,
2729
- hostWhitelist: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.hostWhitelist)
2730
- ? object.hostWhitelist.map((e) => globalThis.String(e))
2731
- : [],
2732
- };
2733
- },
2734
- toJSON(message) {
2735
- var _a;
2736
- const obj = {};
2737
- if (message.id !== "") {
2738
- obj.id = message.id;
2739
- }
2740
- if (message.createdAt !== 0) {
2741
- obj.createdAt = Math.round(message.createdAt);
2742
- }
2743
- if (message.expiresAt !== 0) {
2744
- obj.expiresAt = Math.round(message.expiresAt);
2745
- }
2746
- if ((_a = message.hostWhitelist) === null || _a === void 0 ? void 0 : _a.length) {
2747
- obj.hostWhitelist = message.hostWhitelist;
2748
- }
2749
- return obj;
2750
- },
2751
- create(base) {
2752
- return exports.AuthenticatedUserData.fromPartial(base !== null && base !== void 0 ? base : {});
2753
- },
2754
- fromPartial(object) {
2755
- var _a, _b, _c, _d;
2756
- const message = createBaseAuthenticatedUserData();
2757
- message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
2758
- message.createdAt = (_b = object.createdAt) !== null && _b !== void 0 ? _b : 0;
2759
- message.expiresAt = (_c = object.expiresAt) !== null && _c !== void 0 ? _c : 0;
2760
- message.hostWhitelist = ((_d = object.hostWhitelist) === null || _d === void 0 ? void 0 : _d.map((e) => e)) || [];
2761
- return message;
2762
- },
2763
- };
2764
- function createBaseAuthenticationRequest() {
2765
- return { data: undefined, signature: new Uint8Array(0) };
2766
- }
2767
- exports.AuthenticationRequest = {
2768
- encode(message, writer = new wire_1.BinaryWriter()) {
2769
- if (message.data !== undefined) {
2770
- exports.AuthenticatedUserData.encode(message.data, writer.uint32(10).fork()).join();
2771
- }
2772
- if (message.signature.length !== 0) {
2773
- writer.uint32(18).bytes(message.signature);
2774
- }
2775
- return writer;
2776
- },
2777
- decode(input, length) {
2778
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2779
- let end = length === undefined ? reader.len : reader.pos + length;
2780
- const message = createBaseAuthenticationRequest();
2781
- while (reader.pos < end) {
2782
- const tag = reader.uint32();
2783
- switch (tag >>> 3) {
2784
- case 1: {
2785
- if (tag !== 10) {
2786
- break;
2787
- }
2788
- message.data = exports.AuthenticatedUserData.decode(reader, reader.uint32());
2789
- continue;
2790
- }
2791
- case 2: {
2792
- if (tag !== 18) {
2793
- break;
2794
- }
2795
- message.signature = reader.bytes();
2796
- continue;
2797
- }
2798
- }
2799
- if ((tag & 7) === 4 || tag === 0) {
2800
- break;
2801
- }
2802
- reader.skip(tag & 7);
2803
- }
2804
- return message;
2805
- },
2806
- fromJSON(object) {
2807
- return {
2808
- data: isSet(object.data) ? exports.AuthenticatedUserData.fromJSON(object.data) : undefined,
2809
- signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array(0),
2810
- };
2811
- },
2812
- toJSON(message) {
2813
- const obj = {};
2814
- if (message.data !== undefined) {
2815
- obj.data = exports.AuthenticatedUserData.toJSON(message.data);
2816
- }
2817
- if (message.signature.length !== 0) {
2818
- obj.signature = base64FromBytes(message.signature);
2819
- }
2820
- return obj;
2821
- },
2822
- create(base) {
2823
- return exports.AuthenticationRequest.fromPartial(base !== null && base !== void 0 ? base : {});
2824
- },
2825
- fromPartial(object) {
2826
- var _a;
2827
- const message = createBaseAuthenticationRequest();
2828
- message.data = (object.data !== undefined && object.data !== null)
2829
- ? exports.AuthenticatedUserData.fromPartial(object.data)
2830
- : undefined;
2831
- message.signature = (_a = object.signature) !== null && _a !== void 0 ? _a : new Uint8Array(0);
2832
- return message;
2833
- },
2834
- };
2835
- function createBaseInitRequest() {
2836
- return { clientVersion: 0, signatureType: 0, auth: undefined };
2837
- }
2838
- exports.InitRequest = {
2839
- encode(message, writer = new wire_1.BinaryWriter()) {
2840
- if (message.clientVersion !== 0) {
2841
- writer.uint32(16).int32(message.clientVersion);
2842
- }
2843
- if (message.signatureType !== 0) {
2844
- writer.uint32(24).int32(message.signatureType);
2845
- }
2846
- if (message.auth !== undefined) {
2847
- exports.AuthenticationRequest.encode(message.auth, writer.uint32(34).fork()).join();
2848
- }
2849
- return writer;
2850
- },
2851
- decode(input, length) {
2852
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2853
- let end = length === undefined ? reader.len : reader.pos + length;
2854
- const message = createBaseInitRequest();
2855
- while (reader.pos < end) {
2856
- const tag = reader.uint32();
2857
- switch (tag >>> 3) {
2858
- case 2: {
2859
- if (tag !== 16) {
2860
- break;
2861
- }
2862
- message.clientVersion = reader.int32();
2863
- continue;
2864
- }
2865
- case 3: {
2866
- if (tag !== 24) {
2867
- break;
2868
- }
2869
- message.signatureType = reader.int32();
2870
- continue;
2871
- }
2872
- case 4: {
2873
- if (tag !== 34) {
2874
- break;
2875
- }
2876
- message.auth = exports.AuthenticationRequest.decode(reader, reader.uint32());
2877
- continue;
2878
- }
2879
- }
2880
- if ((tag & 7) === 4 || tag === 0) {
2881
- break;
2882
- }
2883
- reader.skip(tag & 7);
2884
- }
2885
- return message;
2886
- },
2887
- fromJSON(object) {
2888
- return {
2889
- clientVersion: isSet(object.clientVersion) ? attestorVersionFromJSON(object.clientVersion) : 0,
2890
- signatureType: isSet(object.signatureType) ? serviceSignatureTypeFromJSON(object.signatureType) : 0,
2891
- auth: isSet(object.auth) ? exports.AuthenticationRequest.fromJSON(object.auth) : undefined,
2892
- };
2893
- },
2894
- toJSON(message) {
2895
- const obj = {};
2896
- if (message.clientVersion !== 0) {
2897
- obj.clientVersion = attestorVersionToJSON(message.clientVersion);
2898
- }
2899
- if (message.signatureType !== 0) {
2900
- obj.signatureType = serviceSignatureTypeToJSON(message.signatureType);
2901
- }
2902
- if (message.auth !== undefined) {
2903
- obj.auth = exports.AuthenticationRequest.toJSON(message.auth);
2904
- }
2905
- return obj;
2906
- },
2907
- create(base) {
2908
- return exports.InitRequest.fromPartial(base !== null && base !== void 0 ? base : {});
2909
- },
2910
- fromPartial(object) {
2911
- var _a, _b;
2912
- const message = createBaseInitRequest();
2913
- message.clientVersion = (_a = object.clientVersion) !== null && _a !== void 0 ? _a : 0;
2914
- message.signatureType = (_b = object.signatureType) !== null && _b !== void 0 ? _b : 0;
2915
- message.auth = (object.auth !== undefined && object.auth !== null)
2916
- ? exports.AuthenticationRequest.fromPartial(object.auth)
2917
- : undefined;
2918
- return message;
2919
- },
2920
- };
2921
- function createBaseInitResponse() {
2922
- return { toprfPublicKey: new Uint8Array(0) };
2923
- }
2924
- exports.InitResponse = {
2925
- encode(message, writer = new wire_1.BinaryWriter()) {
2926
- if (message.toprfPublicKey.length !== 0) {
2927
- writer.uint32(10).bytes(message.toprfPublicKey);
2928
- }
2929
- return writer;
2930
- },
2931
- decode(input, length) {
2932
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2933
- let end = length === undefined ? reader.len : reader.pos + length;
2934
- const message = createBaseInitResponse();
2935
- while (reader.pos < end) {
2936
- const tag = reader.uint32();
2937
- switch (tag >>> 3) {
2938
- case 1: {
2939
- if (tag !== 10) {
2940
- break;
2941
- }
2942
- message.toprfPublicKey = reader.bytes();
2943
- continue;
2944
- }
2945
- }
2946
- if ((tag & 7) === 4 || tag === 0) {
2947
- break;
2948
- }
2949
- reader.skip(tag & 7);
2950
- }
2951
- return message;
2952
- },
2953
- fromJSON(object) {
2954
- return {
2955
- toprfPublicKey: isSet(object.toprfPublicKey) ? bytesFromBase64(object.toprfPublicKey) : new Uint8Array(0),
2956
- };
2957
- },
2958
- toJSON(message) {
2959
- const obj = {};
2960
- if (message.toprfPublicKey.length !== 0) {
2961
- obj.toprfPublicKey = base64FromBytes(message.toprfPublicKey);
2962
- }
2963
- return obj;
2964
- },
2965
- create(base) {
2966
- return exports.InitResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2967
- },
2968
- fromPartial(object) {
2969
- var _a;
2970
- const message = createBaseInitResponse();
2971
- message.toprfPublicKey = (_a = object.toprfPublicKey) !== null && _a !== void 0 ? _a : new Uint8Array(0);
2972
- return message;
2973
- },
2974
- };
2975
- function createBaseTOPRFRequest() {
2976
- return { maskedData: new Uint8Array(0), engine: 0 };
2977
- }
2978
- exports.TOPRFRequest = {
2979
- encode(message, writer = new wire_1.BinaryWriter()) {
2980
- if (message.maskedData.length !== 0) {
2981
- writer.uint32(10).bytes(message.maskedData);
2982
- }
2983
- if (message.engine !== 0) {
2984
- writer.uint32(16).int32(message.engine);
2985
- }
2986
- return writer;
2987
- },
2988
- decode(input, length) {
2989
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2990
- let end = length === undefined ? reader.len : reader.pos + length;
2991
- const message = createBaseTOPRFRequest();
2992
- while (reader.pos < end) {
2993
- const tag = reader.uint32();
2994
- switch (tag >>> 3) {
2995
- case 1: {
2996
- if (tag !== 10) {
2997
- break;
2998
- }
2999
- message.maskedData = reader.bytes();
3000
- continue;
3001
- }
3002
- case 2: {
3003
- if (tag !== 16) {
3004
- break;
3005
- }
3006
- message.engine = reader.int32();
3007
- continue;
3008
- }
3009
- }
3010
- if ((tag & 7) === 4 || tag === 0) {
3011
- break;
3012
- }
3013
- reader.skip(tag & 7);
3014
- }
3015
- return message;
3016
- },
3017
- fromJSON(object) {
3018
- return {
3019
- maskedData: isSet(object.maskedData) ? bytesFromBase64(object.maskedData) : new Uint8Array(0),
3020
- engine: isSet(object.engine) ? zKProofEngineFromJSON(object.engine) : 0,
3021
- };
3022
- },
3023
- toJSON(message) {
3024
- const obj = {};
3025
- if (message.maskedData.length !== 0) {
3026
- obj.maskedData = base64FromBytes(message.maskedData);
3027
- }
3028
- if (message.engine !== 0) {
3029
- obj.engine = zKProofEngineToJSON(message.engine);
3030
- }
3031
- return obj;
3032
- },
3033
- create(base) {
3034
- return exports.TOPRFRequest.fromPartial(base !== null && base !== void 0 ? base : {});
3035
- },
3036
- fromPartial(object) {
3037
- var _a, _b;
3038
- const message = createBaseTOPRFRequest();
3039
- message.maskedData = (_a = object.maskedData) !== null && _a !== void 0 ? _a : new Uint8Array(0);
3040
- message.engine = (_b = object.engine) !== null && _b !== void 0 ? _b : 0;
3041
- return message;
3042
- },
3043
- };
3044
- function createBaseTOPRFResponse() {
3045
- return {
3046
- publicKeyShare: new Uint8Array(0),
3047
- evaluated: new Uint8Array(0),
3048
- c: new Uint8Array(0),
3049
- r: new Uint8Array(0),
3050
- };
3051
- }
3052
- exports.TOPRFResponse = {
3053
- encode(message, writer = new wire_1.BinaryWriter()) {
3054
- if (message.publicKeyShare.length !== 0) {
3055
- writer.uint32(10).bytes(message.publicKeyShare);
3056
- }
3057
- if (message.evaluated.length !== 0) {
3058
- writer.uint32(18).bytes(message.evaluated);
3059
- }
3060
- if (message.c.length !== 0) {
3061
- writer.uint32(26).bytes(message.c);
3062
- }
3063
- if (message.r.length !== 0) {
3064
- writer.uint32(34).bytes(message.r);
3065
- }
3066
- return writer;
3067
- },
3068
- decode(input, length) {
3069
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
3070
- let end = length === undefined ? reader.len : reader.pos + length;
3071
- const message = createBaseTOPRFResponse();
3072
- while (reader.pos < end) {
3073
- const tag = reader.uint32();
3074
- switch (tag >>> 3) {
3075
- case 1: {
3076
- if (tag !== 10) {
3077
- break;
3078
- }
3079
- message.publicKeyShare = reader.bytes();
3080
- continue;
3081
- }
3082
- case 2: {
3083
- if (tag !== 18) {
3084
- break;
3085
- }
3086
- message.evaluated = reader.bytes();
3087
- continue;
3088
- }
3089
- case 3: {
3090
- if (tag !== 26) {
3091
- break;
3092
- }
3093
- message.c = reader.bytes();
3094
- continue;
3095
- }
3096
- case 4: {
3097
- if (tag !== 34) {
3098
- break;
3099
- }
3100
- message.r = reader.bytes();
3101
- continue;
3102
- }
3103
- }
3104
- if ((tag & 7) === 4 || tag === 0) {
3105
- break;
3106
- }
3107
- reader.skip(tag & 7);
3108
- }
3109
- return message;
3110
- },
3111
- fromJSON(object) {
3112
- return {
3113
- publicKeyShare: isSet(object.publicKeyShare) ? bytesFromBase64(object.publicKeyShare) : new Uint8Array(0),
3114
- evaluated: isSet(object.evaluated) ? bytesFromBase64(object.evaluated) : new Uint8Array(0),
3115
- c: isSet(object.c) ? bytesFromBase64(object.c) : new Uint8Array(0),
3116
- r: isSet(object.r) ? bytesFromBase64(object.r) : new Uint8Array(0),
3117
- };
3118
- },
3119
- toJSON(message) {
3120
- const obj = {};
3121
- if (message.publicKeyShare.length !== 0) {
3122
- obj.publicKeyShare = base64FromBytes(message.publicKeyShare);
3123
- }
3124
- if (message.evaluated.length !== 0) {
3125
- obj.evaluated = base64FromBytes(message.evaluated);
3126
- }
3127
- if (message.c.length !== 0) {
3128
- obj.c = base64FromBytes(message.c);
3129
- }
3130
- if (message.r.length !== 0) {
3131
- obj.r = base64FromBytes(message.r);
3132
- }
3133
- return obj;
3134
- },
3135
- create(base) {
3136
- return exports.TOPRFResponse.fromPartial(base !== null && base !== void 0 ? base : {});
3137
- },
3138
- fromPartial(object) {
3139
- var _a, _b, _c, _d;
3140
- const message = createBaseTOPRFResponse();
3141
- message.publicKeyShare = (_a = object.publicKeyShare) !== null && _a !== void 0 ? _a : new Uint8Array(0);
3142
- message.evaluated = (_b = object.evaluated) !== null && _b !== void 0 ? _b : new Uint8Array(0);
3143
- message.c = (_c = object.c) !== null && _c !== void 0 ? _c : new Uint8Array(0);
3144
- message.r = (_d = object.r) !== null && _d !== void 0 ? _d : new Uint8Array(0);
3145
- return message;
3146
- },
3147
- };
3148
- function createBaseRPCMessage() {
3149
- return {
3150
- id: 0,
3151
- initRequest: undefined,
3152
- initResponse: undefined,
3153
- connectionTerminationAlert: undefined,
3154
- requestError: undefined,
3155
- createTunnelRequest: undefined,
3156
- createTunnelResponse: undefined,
3157
- disconnectTunnelRequest: undefined,
3158
- disconnectTunnelResponse: undefined,
3159
- tunnelMessage: undefined,
3160
- tunnelDisconnectEvent: undefined,
3161
- claimTunnelRequest: undefined,
3162
- claimTunnelResponse: undefined,
3163
- createClaimOnChainRequest: undefined,
3164
- createClaimOnChainResponse: undefined,
3165
- completeClaimOnChainRequest: undefined,
3166
- completeClaimOnChainResponse: undefined,
3167
- toprfRequest: undefined,
3168
- toprfResponse: undefined,
3169
- createTaskOnMechainRequest: undefined,
3170
- createTaskOnMechainResponse: undefined,
3171
- };
3172
- }
3173
- exports.RPCMessage = {
3174
- encode(message, writer = new wire_1.BinaryWriter()) {
3175
- if (message.id !== 0) {
3176
- writer.uint32(8).uint64(message.id);
3177
- }
3178
- if (message.initRequest !== undefined) {
3179
- exports.InitRequest.encode(message.initRequest, writer.uint32(18).fork()).join();
3180
- }
3181
- if (message.initResponse !== undefined) {
3182
- exports.InitResponse.encode(message.initResponse, writer.uint32(26).fork()).join();
3183
- }
3184
- if (message.connectionTerminationAlert !== undefined) {
3185
- exports.ErrorData.encode(message.connectionTerminationAlert, writer.uint32(34).fork()).join();
3186
- }
3187
- if (message.requestError !== undefined) {
3188
- exports.ErrorData.encode(message.requestError, writer.uint32(42).fork()).join();
3189
- }
3190
- if (message.createTunnelRequest !== undefined) {
3191
- exports.CreateTunnelRequest.encode(message.createTunnelRequest, writer.uint32(50).fork()).join();
3192
- }
3193
- if (message.createTunnelResponse !== undefined) {
3194
- exports.Empty.encode(message.createTunnelResponse, writer.uint32(58).fork()).join();
3195
- }
3196
- if (message.disconnectTunnelRequest !== undefined) {
3197
- exports.DisconnectTunnelRequest.encode(message.disconnectTunnelRequest, writer.uint32(66).fork()).join();
3198
- }
3199
- if (message.disconnectTunnelResponse !== undefined) {
3200
- exports.Empty.encode(message.disconnectTunnelResponse, writer.uint32(74).fork()).join();
3201
- }
3202
- if (message.tunnelMessage !== undefined) {
3203
- exports.TunnelMessage.encode(message.tunnelMessage, writer.uint32(82).fork()).join();
3204
- }
3205
- if (message.tunnelDisconnectEvent !== undefined) {
3206
- exports.TunnelDisconnectEvent.encode(message.tunnelDisconnectEvent, writer.uint32(90).fork()).join();
3207
- }
3208
- if (message.claimTunnelRequest !== undefined) {
3209
- exports.ClaimTunnelRequest.encode(message.claimTunnelRequest, writer.uint32(98).fork()).join();
3210
- }
3211
- if (message.claimTunnelResponse !== undefined) {
3212
- exports.ClaimTunnelResponse.encode(message.claimTunnelResponse, writer.uint32(106).fork()).join();
3213
- }
3214
- if (message.createClaimOnChainRequest !== undefined) {
3215
- exports.RequestClaimOnAvsRequest.encode(message.createClaimOnChainRequest, writer.uint32(114).fork()).join();
3216
- }
3217
- if (message.createClaimOnChainResponse !== undefined) {
3218
- exports.RequestClaimOnAvsResponse.encode(message.createClaimOnChainResponse, writer.uint32(122).fork()).join();
3219
- }
3220
- if (message.completeClaimOnChainRequest !== undefined) {
3221
- exports.CompleteClaimOnAvsRequest.encode(message.completeClaimOnChainRequest, writer.uint32(130).fork()).join();
3222
- }
3223
- if (message.completeClaimOnChainResponse !== undefined) {
3224
- exports.CompleteClaimOnAvsResponse.encode(message.completeClaimOnChainResponse, writer.uint32(138).fork()).join();
3225
- }
3226
- if (message.toprfRequest !== undefined) {
3227
- exports.TOPRFRequest.encode(message.toprfRequest, writer.uint32(146).fork()).join();
3228
- }
3229
- if (message.toprfResponse !== undefined) {
3230
- exports.TOPRFResponse.encode(message.toprfResponse, writer.uint32(154).fork()).join();
3231
- }
3232
- if (message.createTaskOnMechainRequest !== undefined) {
3233
- exports.CreateTaskOnMechainRequest.encode(message.createTaskOnMechainRequest, writer.uint32(162).fork()).join();
3234
- }
3235
- if (message.createTaskOnMechainResponse !== undefined) {
3236
- exports.CreateTaskOnMechainResponse.encode(message.createTaskOnMechainResponse, writer.uint32(170).fork()).join();
3237
- }
3238
- return writer;
3239
- },
3240
- decode(input, length) {
3241
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
3242
- let end = length === undefined ? reader.len : reader.pos + length;
3243
- const message = createBaseRPCMessage();
3244
- while (reader.pos < end) {
3245
- const tag = reader.uint32();
3246
- switch (tag >>> 3) {
3247
- case 1: {
3248
- if (tag !== 8) {
3249
- break;
3250
- }
3251
- message.id = longToNumber(reader.uint64());
3252
- continue;
3253
- }
3254
- case 2: {
3255
- if (tag !== 18) {
3256
- break;
3257
- }
3258
- message.initRequest = exports.InitRequest.decode(reader, reader.uint32());
3259
- continue;
3260
- }
3261
- case 3: {
3262
- if (tag !== 26) {
3263
- break;
3264
- }
3265
- message.initResponse = exports.InitResponse.decode(reader, reader.uint32());
3266
- continue;
3267
- }
3268
- case 4: {
3269
- if (tag !== 34) {
3270
- break;
3271
- }
3272
- message.connectionTerminationAlert = exports.ErrorData.decode(reader, reader.uint32());
3273
- continue;
3274
- }
3275
- case 5: {
3276
- if (tag !== 42) {
3277
- break;
3278
- }
3279
- message.requestError = exports.ErrorData.decode(reader, reader.uint32());
3280
- continue;
3281
- }
3282
- case 6: {
3283
- if (tag !== 50) {
3284
- break;
3285
- }
3286
- message.createTunnelRequest = exports.CreateTunnelRequest.decode(reader, reader.uint32());
3287
- continue;
3288
- }
3289
- case 7: {
3290
- if (tag !== 58) {
3291
- break;
3292
- }
3293
- message.createTunnelResponse = exports.Empty.decode(reader, reader.uint32());
3294
- continue;
3295
- }
3296
- case 8: {
3297
- if (tag !== 66) {
3298
- break;
3299
- }
3300
- message.disconnectTunnelRequest = exports.DisconnectTunnelRequest.decode(reader, reader.uint32());
3301
- continue;
3302
- }
3303
- case 9: {
3304
- if (tag !== 74) {
3305
- break;
3306
- }
3307
- message.disconnectTunnelResponse = exports.Empty.decode(reader, reader.uint32());
3308
- continue;
3309
- }
3310
- case 10: {
3311
- if (tag !== 82) {
3312
- break;
3313
- }
3314
- message.tunnelMessage = exports.TunnelMessage.decode(reader, reader.uint32());
3315
- continue;
3316
- }
3317
- case 11: {
3318
- if (tag !== 90) {
3319
- break;
3320
- }
3321
- message.tunnelDisconnectEvent = exports.TunnelDisconnectEvent.decode(reader, reader.uint32());
3322
- continue;
3323
- }
3324
- case 12: {
3325
- if (tag !== 98) {
3326
- break;
3327
- }
3328
- message.claimTunnelRequest = exports.ClaimTunnelRequest.decode(reader, reader.uint32());
3329
- continue;
3330
- }
3331
- case 13: {
3332
- if (tag !== 106) {
3333
- break;
3334
- }
3335
- message.claimTunnelResponse = exports.ClaimTunnelResponse.decode(reader, reader.uint32());
3336
- continue;
3337
- }
3338
- case 14: {
3339
- if (tag !== 114) {
3340
- break;
3341
- }
3342
- message.createClaimOnChainRequest = exports.RequestClaimOnAvsRequest.decode(reader, reader.uint32());
3343
- continue;
3344
- }
3345
- case 15: {
3346
- if (tag !== 122) {
3347
- break;
3348
- }
3349
- message.createClaimOnChainResponse = exports.RequestClaimOnAvsResponse.decode(reader, reader.uint32());
3350
- continue;
3351
- }
3352
- case 16: {
3353
- if (tag !== 130) {
3354
- break;
3355
- }
3356
- message.completeClaimOnChainRequest = exports.CompleteClaimOnAvsRequest.decode(reader, reader.uint32());
3357
- continue;
3358
- }
3359
- case 17: {
3360
- if (tag !== 138) {
3361
- break;
3362
- }
3363
- message.completeClaimOnChainResponse = exports.CompleteClaimOnAvsResponse.decode(reader, reader.uint32());
3364
- continue;
3365
- }
3366
- case 18: {
3367
- if (tag !== 146) {
3368
- break;
3369
- }
3370
- message.toprfRequest = exports.TOPRFRequest.decode(reader, reader.uint32());
3371
- continue;
3372
- }
3373
- case 19: {
3374
- if (tag !== 154) {
3375
- break;
3376
- }
3377
- message.toprfResponse = exports.TOPRFResponse.decode(reader, reader.uint32());
3378
- continue;
3379
- }
3380
- case 20: {
3381
- if (tag !== 162) {
3382
- break;
3383
- }
3384
- message.createTaskOnMechainRequest = exports.CreateTaskOnMechainRequest.decode(reader, reader.uint32());
3385
- continue;
3386
- }
3387
- case 21: {
3388
- if (tag !== 170) {
3389
- break;
3390
- }
3391
- message.createTaskOnMechainResponse = exports.CreateTaskOnMechainResponse.decode(reader, reader.uint32());
3392
- continue;
3393
- }
3394
- }
3395
- if ((tag & 7) === 4 || tag === 0) {
3396
- break;
3397
- }
3398
- reader.skip(tag & 7);
3399
- }
3400
- return message;
3401
- },
3402
- fromJSON(object) {
3403
- return {
3404
- id: isSet(object.id) ? globalThis.Number(object.id) : 0,
3405
- initRequest: isSet(object.initRequest) ? exports.InitRequest.fromJSON(object.initRequest) : undefined,
3406
- initResponse: isSet(object.initResponse) ? exports.InitResponse.fromJSON(object.initResponse) : undefined,
3407
- connectionTerminationAlert: isSet(object.connectionTerminationAlert)
3408
- ? exports.ErrorData.fromJSON(object.connectionTerminationAlert)
3409
- : undefined,
3410
- requestError: isSet(object.requestError) ? exports.ErrorData.fromJSON(object.requestError) : undefined,
3411
- createTunnelRequest: isSet(object.createTunnelRequest)
3412
- ? exports.CreateTunnelRequest.fromJSON(object.createTunnelRequest)
3413
- : undefined,
3414
- createTunnelResponse: isSet(object.createTunnelResponse)
3415
- ? exports.Empty.fromJSON(object.createTunnelResponse)
3416
- : undefined,
3417
- disconnectTunnelRequest: isSet(object.disconnectTunnelRequest)
3418
- ? exports.DisconnectTunnelRequest.fromJSON(object.disconnectTunnelRequest)
3419
- : undefined,
3420
- disconnectTunnelResponse: isSet(object.disconnectTunnelResponse)
3421
- ? exports.Empty.fromJSON(object.disconnectTunnelResponse)
3422
- : undefined,
3423
- tunnelMessage: isSet(object.tunnelMessage) ? exports.TunnelMessage.fromJSON(object.tunnelMessage) : undefined,
3424
- tunnelDisconnectEvent: isSet(object.tunnelDisconnectEvent)
3425
- ? exports.TunnelDisconnectEvent.fromJSON(object.tunnelDisconnectEvent)
3426
- : undefined,
3427
- claimTunnelRequest: isSet(object.claimTunnelRequest)
3428
- ? exports.ClaimTunnelRequest.fromJSON(object.claimTunnelRequest)
3429
- : undefined,
3430
- claimTunnelResponse: isSet(object.claimTunnelResponse)
3431
- ? exports.ClaimTunnelResponse.fromJSON(object.claimTunnelResponse)
3432
- : undefined,
3433
- createClaimOnChainRequest: isSet(object.createClaimOnChainRequest)
3434
- ? exports.RequestClaimOnAvsRequest.fromJSON(object.createClaimOnChainRequest)
3435
- : undefined,
3436
- createClaimOnChainResponse: isSet(object.createClaimOnChainResponse)
3437
- ? exports.RequestClaimOnAvsResponse.fromJSON(object.createClaimOnChainResponse)
3438
- : undefined,
3439
- completeClaimOnChainRequest: isSet(object.completeClaimOnChainRequest)
3440
- ? exports.CompleteClaimOnAvsRequest.fromJSON(object.completeClaimOnChainRequest)
3441
- : undefined,
3442
- completeClaimOnChainResponse: isSet(object.completeClaimOnChainResponse)
3443
- ? exports.CompleteClaimOnAvsResponse.fromJSON(object.completeClaimOnChainResponse)
3444
- : undefined,
3445
- toprfRequest: isSet(object.toprfRequest) ? exports.TOPRFRequest.fromJSON(object.toprfRequest) : undefined,
3446
- toprfResponse: isSet(object.toprfResponse) ? exports.TOPRFResponse.fromJSON(object.toprfResponse) : undefined,
3447
- createTaskOnMechainRequest: isSet(object.createTaskOnMechainRequest)
3448
- ? exports.CreateTaskOnMechainRequest.fromJSON(object.createTaskOnMechainRequest)
3449
- : undefined,
3450
- createTaskOnMechainResponse: isSet(object.createTaskOnMechainResponse)
3451
- ? exports.CreateTaskOnMechainResponse.fromJSON(object.createTaskOnMechainResponse)
3452
- : undefined,
3453
- };
3454
- },
3455
- toJSON(message) {
3456
- const obj = {};
3457
- if (message.id !== 0) {
3458
- obj.id = Math.round(message.id);
3459
- }
3460
- if (message.initRequest !== undefined) {
3461
- obj.initRequest = exports.InitRequest.toJSON(message.initRequest);
3462
- }
3463
- if (message.initResponse !== undefined) {
3464
- obj.initResponse = exports.InitResponse.toJSON(message.initResponse);
3465
- }
3466
- if (message.connectionTerminationAlert !== undefined) {
3467
- obj.connectionTerminationAlert = exports.ErrorData.toJSON(message.connectionTerminationAlert);
3468
- }
3469
- if (message.requestError !== undefined) {
3470
- obj.requestError = exports.ErrorData.toJSON(message.requestError);
3471
- }
3472
- if (message.createTunnelRequest !== undefined) {
3473
- obj.createTunnelRequest = exports.CreateTunnelRequest.toJSON(message.createTunnelRequest);
3474
- }
3475
- if (message.createTunnelResponse !== undefined) {
3476
- obj.createTunnelResponse = exports.Empty.toJSON(message.createTunnelResponse);
3477
- }
3478
- if (message.disconnectTunnelRequest !== undefined) {
3479
- obj.disconnectTunnelRequest = exports.DisconnectTunnelRequest.toJSON(message.disconnectTunnelRequest);
3480
- }
3481
- if (message.disconnectTunnelResponse !== undefined) {
3482
- obj.disconnectTunnelResponse = exports.Empty.toJSON(message.disconnectTunnelResponse);
3483
- }
3484
- if (message.tunnelMessage !== undefined) {
3485
- obj.tunnelMessage = exports.TunnelMessage.toJSON(message.tunnelMessage);
3486
- }
3487
- if (message.tunnelDisconnectEvent !== undefined) {
3488
- obj.tunnelDisconnectEvent = exports.TunnelDisconnectEvent.toJSON(message.tunnelDisconnectEvent);
3489
- }
3490
- if (message.claimTunnelRequest !== undefined) {
3491
- obj.claimTunnelRequest = exports.ClaimTunnelRequest.toJSON(message.claimTunnelRequest);
3492
- }
3493
- if (message.claimTunnelResponse !== undefined) {
3494
- obj.claimTunnelResponse = exports.ClaimTunnelResponse.toJSON(message.claimTunnelResponse);
3495
- }
3496
- if (message.createClaimOnChainRequest !== undefined) {
3497
- obj.createClaimOnChainRequest = exports.RequestClaimOnAvsRequest.toJSON(message.createClaimOnChainRequest);
3498
- }
3499
- if (message.createClaimOnChainResponse !== undefined) {
3500
- obj.createClaimOnChainResponse = exports.RequestClaimOnAvsResponse.toJSON(message.createClaimOnChainResponse);
3501
- }
3502
- if (message.completeClaimOnChainRequest !== undefined) {
3503
- obj.completeClaimOnChainRequest = exports.CompleteClaimOnAvsRequest.toJSON(message.completeClaimOnChainRequest);
3504
- }
3505
- if (message.completeClaimOnChainResponse !== undefined) {
3506
- obj.completeClaimOnChainResponse = exports.CompleteClaimOnAvsResponse.toJSON(message.completeClaimOnChainResponse);
3507
- }
3508
- if (message.toprfRequest !== undefined) {
3509
- obj.toprfRequest = exports.TOPRFRequest.toJSON(message.toprfRequest);
3510
- }
3511
- if (message.toprfResponse !== undefined) {
3512
- obj.toprfResponse = exports.TOPRFResponse.toJSON(message.toprfResponse);
3513
- }
3514
- if (message.createTaskOnMechainRequest !== undefined) {
3515
- obj.createTaskOnMechainRequest = exports.CreateTaskOnMechainRequest.toJSON(message.createTaskOnMechainRequest);
3516
- }
3517
- if (message.createTaskOnMechainResponse !== undefined) {
3518
- obj.createTaskOnMechainResponse = exports.CreateTaskOnMechainResponse.toJSON(message.createTaskOnMechainResponse);
3519
- }
3520
- return obj;
3521
- },
3522
- create(base) {
3523
- return exports.RPCMessage.fromPartial(base !== null && base !== void 0 ? base : {});
3524
- },
3525
- fromPartial(object) {
3526
- var _a;
3527
- const message = createBaseRPCMessage();
3528
- message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0;
3529
- message.initRequest = (object.initRequest !== undefined && object.initRequest !== null)
3530
- ? exports.InitRequest.fromPartial(object.initRequest)
3531
- : undefined;
3532
- message.initResponse = (object.initResponse !== undefined && object.initResponse !== null)
3533
- ? exports.InitResponse.fromPartial(object.initResponse)
3534
- : undefined;
3535
- message.connectionTerminationAlert =
3536
- (object.connectionTerminationAlert !== undefined && object.connectionTerminationAlert !== null)
3537
- ? exports.ErrorData.fromPartial(object.connectionTerminationAlert)
3538
- : undefined;
3539
- message.requestError = (object.requestError !== undefined && object.requestError !== null)
3540
- ? exports.ErrorData.fromPartial(object.requestError)
3541
- : undefined;
3542
- message.createTunnelRequest = (object.createTunnelRequest !== undefined && object.createTunnelRequest !== null)
3543
- ? exports.CreateTunnelRequest.fromPartial(object.createTunnelRequest)
3544
- : undefined;
3545
- message.createTunnelResponse = (object.createTunnelResponse !== undefined && object.createTunnelResponse !== null)
3546
- ? exports.Empty.fromPartial(object.createTunnelResponse)
3547
- : undefined;
3548
- message.disconnectTunnelRequest =
3549
- (object.disconnectTunnelRequest !== undefined && object.disconnectTunnelRequest !== null)
3550
- ? exports.DisconnectTunnelRequest.fromPartial(object.disconnectTunnelRequest)
3551
- : undefined;
3552
- message.disconnectTunnelResponse =
3553
- (object.disconnectTunnelResponse !== undefined && object.disconnectTunnelResponse !== null)
3554
- ? exports.Empty.fromPartial(object.disconnectTunnelResponse)
3555
- : undefined;
3556
- message.tunnelMessage = (object.tunnelMessage !== undefined && object.tunnelMessage !== null)
3557
- ? exports.TunnelMessage.fromPartial(object.tunnelMessage)
3558
- : undefined;
3559
- message.tunnelDisconnectEvent =
3560
- (object.tunnelDisconnectEvent !== undefined && object.tunnelDisconnectEvent !== null)
3561
- ? exports.TunnelDisconnectEvent.fromPartial(object.tunnelDisconnectEvent)
3562
- : undefined;
3563
- message.claimTunnelRequest = (object.claimTunnelRequest !== undefined && object.claimTunnelRequest !== null)
3564
- ? exports.ClaimTunnelRequest.fromPartial(object.claimTunnelRequest)
3565
- : undefined;
3566
- message.claimTunnelResponse = (object.claimTunnelResponse !== undefined && object.claimTunnelResponse !== null)
3567
- ? exports.ClaimTunnelResponse.fromPartial(object.claimTunnelResponse)
3568
- : undefined;
3569
- message.createClaimOnChainRequest =
3570
- (object.createClaimOnChainRequest !== undefined && object.createClaimOnChainRequest !== null)
3571
- ? exports.RequestClaimOnAvsRequest.fromPartial(object.createClaimOnChainRequest)
3572
- : undefined;
3573
- message.createClaimOnChainResponse =
3574
- (object.createClaimOnChainResponse !== undefined && object.createClaimOnChainResponse !== null)
3575
- ? exports.RequestClaimOnAvsResponse.fromPartial(object.createClaimOnChainResponse)
3576
- : undefined;
3577
- message.completeClaimOnChainRequest =
3578
- (object.completeClaimOnChainRequest !== undefined && object.completeClaimOnChainRequest !== null)
3579
- ? exports.CompleteClaimOnAvsRequest.fromPartial(object.completeClaimOnChainRequest)
3580
- : undefined;
3581
- message.completeClaimOnChainResponse =
3582
- (object.completeClaimOnChainResponse !== undefined && object.completeClaimOnChainResponse !== null)
3583
- ? exports.CompleteClaimOnAvsResponse.fromPartial(object.completeClaimOnChainResponse)
3584
- : undefined;
3585
- message.toprfRequest = (object.toprfRequest !== undefined && object.toprfRequest !== null)
3586
- ? exports.TOPRFRequest.fromPartial(object.toprfRequest)
3587
- : undefined;
3588
- message.toprfResponse = (object.toprfResponse !== undefined && object.toprfResponse !== null)
3589
- ? exports.TOPRFResponse.fromPartial(object.toprfResponse)
3590
- : undefined;
3591
- message.createTaskOnMechainRequest =
3592
- (object.createTaskOnMechainRequest !== undefined && object.createTaskOnMechainRequest !== null)
3593
- ? exports.CreateTaskOnMechainRequest.fromPartial(object.createTaskOnMechainRequest)
3594
- : undefined;
3595
- message.createTaskOnMechainResponse =
3596
- (object.createTaskOnMechainResponse !== undefined && object.createTaskOnMechainResponse !== null)
3597
- ? exports.CreateTaskOnMechainResponse.fromPartial(object.createTaskOnMechainResponse)
3598
- : undefined;
3599
- return message;
3600
- },
3601
- };
3602
- function createBaseRPCMessages() {
3603
- return { messages: [] };
3604
- }
3605
- exports.RPCMessages = {
3606
- encode(message, writer = new wire_1.BinaryWriter()) {
3607
- for (const v of message.messages) {
3608
- exports.RPCMessage.encode(v, writer.uint32(10).fork()).join();
3609
- }
3610
- return writer;
3611
- },
3612
- decode(input, length) {
3613
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
3614
- let end = length === undefined ? reader.len : reader.pos + length;
3615
- const message = createBaseRPCMessages();
3616
- while (reader.pos < end) {
3617
- const tag = reader.uint32();
3618
- switch (tag >>> 3) {
3619
- case 1: {
3620
- if (tag !== 10) {
3621
- break;
3622
- }
3623
- message.messages.push(exports.RPCMessage.decode(reader, reader.uint32()));
3624
- continue;
3625
- }
3626
- }
3627
- if ((tag & 7) === 4 || tag === 0) {
3628
- break;
3629
- }
3630
- reader.skip(tag & 7);
3631
- }
3632
- return message;
3633
- },
3634
- fromJSON(object) {
3635
- return {
3636
- messages: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.messages)
3637
- ? object.messages.map((e) => exports.RPCMessage.fromJSON(e))
3638
- : [],
3639
- };
3640
- },
3641
- toJSON(message) {
3642
- var _a;
3643
- const obj = {};
3644
- if ((_a = message.messages) === null || _a === void 0 ? void 0 : _a.length) {
3645
- obj.messages = message.messages.map((e) => exports.RPCMessage.toJSON(e));
3646
- }
3647
- return obj;
3648
- },
3649
- create(base) {
3650
- return exports.RPCMessages.fromPartial(base !== null && base !== void 0 ? base : {});
3651
- },
3652
- fromPartial(object) {
3653
- var _a;
3654
- const message = createBaseRPCMessages();
3655
- message.messages = ((_a = object.messages) === null || _a === void 0 ? void 0 : _a.map((e) => exports.RPCMessage.fromPartial(e))) || [];
3656
- return message;
3657
- },
3658
- };
3659
- function bytesFromBase64(b64) {
3660
- if (globalThis.Buffer) {
3661
- return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
3662
- }
3663
- else {
3664
- const bin = globalThis.atob(b64);
3665
- const arr = new Uint8Array(bin.length);
3666
- for (let i = 0; i < bin.length; ++i) {
3667
- arr[i] = bin.charCodeAt(i);
3668
- }
3669
- return arr;
3670
- }
3671
- }
3672
- function base64FromBytes(arr) {
3673
- if (globalThis.Buffer) {
3674
- return globalThis.Buffer.from(arr).toString("base64");
3675
- }
3676
- else {
3677
- const bin = [];
3678
- arr.forEach((byte) => {
3679
- bin.push(globalThis.String.fromCharCode(byte));
3680
- });
3681
- return globalThis.btoa(bin.join(""));
3682
- }
3683
- }
3684
- function longToNumber(int64) {
3685
- const num = globalThis.Number(int64.toString());
3686
- if (num > globalThis.Number.MAX_SAFE_INTEGER) {
3687
- throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
3688
- }
3689
- if (num < globalThis.Number.MIN_SAFE_INTEGER) {
3690
- throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
3691
- }
3692
- return num;
3693
- }
3694
- function isObject(value) {
3695
- return typeof value === "object" && value !== null;
3696
- }
3697
- function isSet(value) {
3698
- return value !== null && value !== undefined;
3699
- }
3700
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3RvL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0RBQXNEO0FBQ3RELFlBQVk7QUFDWixnQ0FBZ0M7QUFDaEMsa0NBQWtDO0FBQ2xDLG9CQUFvQjs7O0FBY3BCLGtGQWdCQztBQUVELDhFQVlDO0FBYUQsb0VBYUM7QUFFRCxnRUFVQztBQVdELDBEQXNCQztBQUVELHNEQWdCQztBQXdDRCw4Q0F3Q0M7QUFFRCwwQ0E0QkM7QUFRRCxzREFhQztBQUVELGtEQVVDO0FBbFJELG9CQUFvQjtBQUNwQixrREFBcUU7QUFFeEQsUUFBQSxlQUFlLEdBQUcsa0JBQWtCLENBQUM7QUFFbEQsSUFBWSwyQkFLWDtBQUxELFdBQVksMkJBQTJCO0lBQ3JDLGlKQUEwQyxDQUFBO0lBQzFDLCtJQUF5QyxDQUFBO0lBQ3pDLCtJQUF5QyxDQUFBO0lBQ3pDLDhGQUFpQixDQUFBO0FBQ25CLENBQUMsRUFMVywyQkFBMkIsMkNBQTNCLDJCQUEyQixRQUt0QztBQUVELFNBQWdCLG1DQUFtQyxDQUFDLE1BQVc7SUFDN0QsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyx3Q0FBd0M7WUFDM0MsT0FBTywyQkFBMkIsQ0FBQyxzQ0FBc0MsQ0FBQztRQUM1RSxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssdUNBQXVDO1lBQzFDLE9BQU8sMkJBQTJCLENBQUMscUNBQXFDLENBQUM7UUFDM0UsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLHVDQUF1QztZQUMxQyxPQUFPLDJCQUEyQixDQUFDLHFDQUFxQyxDQUFDO1FBQzNFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDUixLQUFLLGNBQWMsQ0FBQztRQUNwQjtZQUNFLE9BQU8sMkJBQTJCLENBQUMsWUFBWSxDQUFDO0lBQ3BELENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsaUNBQWlDLENBQUMsTUFBbUM7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