@reclaimprotocol/attestor-core 3.0.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 (204) hide show
  1. package/README.md +39 -0
  2. package/lib/avs/abis/avsDirectoryABI.d.ts +60 -0
  3. package/lib/avs/abis/avsDirectoryABI.js +344 -0
  4. package/lib/avs/abis/delegationABI.d.ts +126 -0
  5. package/lib/avs/abis/delegationABI.js +5 -0
  6. package/lib/avs/abis/registryABI.d.ts +136 -0
  7. package/lib/avs/abis/registryABI.js +729 -0
  8. package/lib/avs/client/create-claim-on-avs.d.ts +10 -0
  9. package/lib/avs/client/create-claim-on-avs.js +147 -0
  10. package/lib/avs/config.d.ts +7 -0
  11. package/lib/avs/config.js +24 -0
  12. package/lib/avs/contracts/ReclaimServiceManager.d.ts +697 -0
  13. package/lib/avs/contracts/ReclaimServiceManager.js +3 -0
  14. package/lib/avs/contracts/common.d.ts +21 -0
  15. package/lib/avs/contracts/common.js +3 -0
  16. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +888 -0
  17. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +1174 -0
  18. package/lib/avs/contracts/factories/index.d.ts +1 -0
  19. package/lib/avs/contracts/factories/index.js +9 -0
  20. package/lib/avs/contracts/index.d.ts +3 -0
  21. package/lib/avs/contracts/index.js +30 -0
  22. package/lib/avs/tests/test.operator.d.ts +11 -0
  23. package/lib/avs/tests/test.operator.js +313 -0
  24. package/lib/avs/tests/utils.d.ts +2 -0
  25. package/lib/avs/tests/utils.js +50 -0
  26. package/lib/avs/types/index.d.ts +55 -0
  27. package/lib/avs/types/index.js +3 -0
  28. package/lib/avs/utils/contracts.d.ts +21 -0
  29. package/lib/avs/utils/contracts.js +38 -0
  30. package/lib/avs/utils/register.d.ts +27 -0
  31. package/lib/avs/utils/register.js +76 -0
  32. package/lib/avs/utils/tasks.d.ts +22 -0
  33. package/lib/avs/utils/tasks.js +45 -0
  34. package/lib/client/create-claim.d.ts +5 -0
  35. package/lib/client/create-claim.js +357 -0
  36. package/lib/client/index.d.ts +3 -0
  37. package/lib/client/index.js +20 -0
  38. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +16 -0
  39. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +60 -0
  40. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +25 -0
  41. package/lib/client/tunnels/make-rpc-tls-tunnel.js +135 -0
  42. package/lib/client/utils/attestor-pool.d.ts +6 -0
  43. package/lib/client/utils/attestor-pool.js +28 -0
  44. package/lib/client/utils/client-socket.d.ts +9 -0
  45. package/lib/client/utils/client-socket.js +77 -0
  46. package/lib/client/utils/message-handler.d.ts +4 -0
  47. package/lib/client/utils/message-handler.js +93 -0
  48. package/lib/config/index.d.ts +23 -0
  49. package/lib/config/index.js +35 -0
  50. package/lib/index.d.ts +9 -0
  51. package/lib/index.js +39 -0
  52. package/lib/proto/api.d.ts +414 -0
  53. package/lib/proto/api.js +2756 -0
  54. package/lib/providers/http/index.d.ts +3 -0
  55. package/lib/providers/http/index.js +472 -0
  56. package/lib/providers/http/utils.d.ts +44 -0
  57. package/lib/providers/http/utils.js +302 -0
  58. package/lib/providers/index.d.ts +4 -0
  59. package/lib/providers/index.js +11 -0
  60. package/lib/scripts/check-avs-registration.d.ts +1 -0
  61. package/lib/scripts/check-avs-registration.js +28 -0
  62. package/lib/scripts/generate-provider-types.d.ts +5 -0
  63. package/lib/scripts/generate-provider-types.js +82 -0
  64. package/lib/scripts/generate-receipt.d.ts +9 -0
  65. package/lib/scripts/generate-receipt.js +93 -0
  66. package/lib/scripts/register-avs-operator.d.ts +1 -0
  67. package/lib/scripts/register-avs-operator.js +6 -0
  68. package/lib/scripts/start-server.d.ts +1 -0
  69. package/lib/scripts/start-server.js +6 -0
  70. package/lib/scripts/verify-root-ca.d.ts +1 -0
  71. package/lib/scripts/verify-root-ca.js +51 -0
  72. package/lib/server/create-server.d.ts +7 -0
  73. package/lib/server/create-server.js +85 -0
  74. package/lib/server/handlers/claimTunnel.d.ts +2 -0
  75. package/lib/server/handlers/claimTunnel.js +55 -0
  76. package/lib/server/handlers/completeClaimOnChain.d.ts +2 -0
  77. package/lib/server/handlers/completeClaimOnChain.js +28 -0
  78. package/lib/server/handlers/createClaimOnChain.d.ts +2 -0
  79. package/lib/server/handlers/createClaimOnChain.js +31 -0
  80. package/lib/server/handlers/createTunnel.d.ts +2 -0
  81. package/lib/server/handlers/createTunnel.js +65 -0
  82. package/lib/server/handlers/disconnectTunnel.d.ts +2 -0
  83. package/lib/server/handlers/disconnectTunnel.js +10 -0
  84. package/lib/server/handlers/index.d.ts +4 -0
  85. package/lib/server/handlers/index.js +18 -0
  86. package/lib/server/handlers/init.d.ts +2 -0
  87. package/lib/server/handlers/init.js +21 -0
  88. package/lib/server/index.d.ts +4 -0
  89. package/lib/server/index.js +21 -0
  90. package/lib/server/socket.d.ts +11 -0
  91. package/lib/server/socket.js +95 -0
  92. package/lib/server/tunnels/make-tcp-tunnel.d.ts +20 -0
  93. package/lib/server/tunnels/make-tcp-tunnel.js +182 -0
  94. package/lib/server/utils/apm.d.ts +11 -0
  95. package/lib/server/utils/apm.js +39 -0
  96. package/lib/server/utils/assert-valid-claim-request.d.ts +29 -0
  97. package/lib/server/utils/assert-valid-claim-request.js +189 -0
  98. package/lib/server/utils/config-env.d.ts +1 -0
  99. package/lib/server/utils/config-env.js +7 -0
  100. package/lib/server/utils/generics.d.ts +22 -0
  101. package/lib/server/utils/generics.js +59 -0
  102. package/lib/server/utils/iso.d.ts +1 -0
  103. package/lib/server/utils/iso.js +260 -0
  104. package/lib/server/utils/keep-alive.d.ts +7 -0
  105. package/lib/server/utils/keep-alive.js +42 -0
  106. package/lib/server/utils/process-handshake.d.ts +13 -0
  107. package/lib/server/utils/process-handshake.js +179 -0
  108. package/lib/server/utils/verify-server-certificates.d.ts +7 -0
  109. package/lib/server/utils/verify-server-certificates.js +102 -0
  110. package/lib/tests/describe-with-server.d.ts +21 -0
  111. package/lib/tests/describe-with-server.js +67 -0
  112. package/lib/tests/mock-provider-server.d.ts +13 -0
  113. package/lib/tests/mock-provider-server.js +65 -0
  114. package/lib/tests/mocks.d.ts +4 -0
  115. package/lib/tests/mocks.js +23 -0
  116. package/lib/tests/test.claim-creation.d.ts +1 -0
  117. package/lib/tests/test.claim-creation.js +187 -0
  118. package/lib/tests/test.http-parser.d.ts +1 -0
  119. package/lib/tests/test.http-parser.js +118 -0
  120. package/lib/tests/test.http-provider-utils.d.ts +1 -0
  121. package/lib/tests/test.http-provider-utils.js +1932 -0
  122. package/lib/tests/test.http-provider.d.ts +1 -0
  123. package/lib/tests/test.http-provider.js +43 -0
  124. package/lib/tests/test.rpc-communication.d.ts +1 -0
  125. package/lib/tests/test.rpc-communication.js +64 -0
  126. package/lib/tests/test.rpc-tunnel.d.ts +1 -0
  127. package/lib/tests/test.rpc-tunnel.js +168 -0
  128. package/lib/tests/test.signatures.d.ts +1 -0
  129. package/lib/tests/test.signatures.js +24 -0
  130. package/lib/tests/test.tcp-tunnel.d.ts +1 -0
  131. package/lib/tests/test.tcp-tunnel.js +64 -0
  132. package/lib/tests/test.zk.d.ts +1 -0
  133. package/lib/tests/test.zk.js +169 -0
  134. package/lib/tests/utils.d.ts +12 -0
  135. package/lib/tests/utils.js +49 -0
  136. package/lib/types/claims.d.ts +64 -0
  137. package/lib/types/claims.js +3 -0
  138. package/lib/types/client.d.ts +136 -0
  139. package/lib/types/client.js +3 -0
  140. package/lib/types/general.d.ts +39 -0
  141. package/lib/types/general.js +3 -0
  142. package/lib/types/handlers.d.ts +10 -0
  143. package/lib/types/handlers.js +3 -0
  144. package/lib/types/index.d.ts +9 -0
  145. package/lib/types/index.js +26 -0
  146. package/lib/types/providers.d.ts +135 -0
  147. package/lib/types/providers.gen.d.ts +414 -0
  148. package/lib/types/providers.gen.js +14 -0
  149. package/lib/types/providers.js +3 -0
  150. package/lib/types/rpc.d.ts +35 -0
  151. package/lib/types/rpc.js +3 -0
  152. package/lib/types/signatures.d.ts +28 -0
  153. package/lib/types/signatures.js +3 -0
  154. package/lib/types/tunnel.d.ts +18 -0
  155. package/lib/types/tunnel.js +3 -0
  156. package/lib/types/zk.d.ts +16 -0
  157. package/lib/types/zk.js +3 -0
  158. package/lib/utils/benchmark.d.ts +1 -0
  159. package/lib/utils/benchmark.js +70 -0
  160. package/lib/utils/claims.d.ts +33 -0
  161. package/lib/utils/claims.js +112 -0
  162. package/lib/utils/env.d.ts +3 -0
  163. package/lib/utils/env.js +20 -0
  164. package/lib/utils/error.d.ts +27 -0
  165. package/lib/utils/error.js +43 -0
  166. package/lib/utils/generics.d.ts +112 -0
  167. package/lib/utils/generics.js +348 -0
  168. package/lib/utils/http-parser.d.ts +55 -0
  169. package/lib/utils/http-parser.js +249 -0
  170. package/lib/utils/index.d.ts +10 -0
  171. package/lib/utils/index.js +27 -0
  172. package/lib/utils/logger.d.ts +13 -0
  173. package/lib/utils/logger.js +100 -0
  174. package/lib/utils/prepare-packets.d.ts +16 -0
  175. package/lib/utils/prepare-packets.js +61 -0
  176. package/lib/utils/redactions.d.ts +41 -0
  177. package/lib/utils/redactions.js +111 -0
  178. package/lib/utils/retries.d.ts +12 -0
  179. package/lib/utils/retries.js +28 -0
  180. package/lib/utils/signatures/eth.d.ts +2 -0
  181. package/lib/utils/signatures/eth.js +33 -0
  182. package/lib/utils/signatures/index.d.ts +5 -0
  183. package/lib/utils/signatures/index.js +11 -0
  184. package/lib/utils/socket-base.d.ts +21 -0
  185. package/lib/utils/socket-base.js +89 -0
  186. package/lib/utils/tls.d.ts +2 -0
  187. package/lib/utils/tls.js +32 -0
  188. package/lib/utils/validation.d.ts +2 -0
  189. package/lib/utils/validation.js +46 -0
  190. package/lib/utils/ws.d.ts +12 -0
  191. package/lib/utils/ws.js +21 -0
  192. package/lib/utils/zk.d.ts +50 -0
  193. package/lib/utils/zk.js +282 -0
  194. package/lib/window-rpc/index.d.ts +3 -0
  195. package/lib/window-rpc/index.js +20 -0
  196. package/lib/window-rpc/setup-window-rpc.d.ts +5 -0
  197. package/lib/window-rpc/setup-window-rpc.js +239 -0
  198. package/lib/window-rpc/types.d.ts +184 -0
  199. package/lib/window-rpc/types.js +3 -0
  200. package/lib/window-rpc/utils.d.ts +13 -0
  201. package/lib/window-rpc/utils.js +76 -0
  202. package/lib/window-rpc/window-rpc-zk.d.ts +11 -0
  203. package/lib/window-rpc/window-rpc-zk.js +72 -0
  204. package/package.json +117 -0
@@ -0,0 +1,2756 @@
1
+ "use strict";
2
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
+ // versions:
4
+ // protoc-gen-ts_proto v2.2.0
5
+ // protoc v5.27.3
6
+ // source: api.proto
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.RPCMessages = exports.RPCMessage = exports.InitRequest = exports.CompleteClaimOnAvsResponse = exports.CompleteClaimOnAvsRequest = exports.RequestClaimOnAvsResponse = exports.RequestClaimOnAvsRequest = exports.ClaimTunnelResponse_Signatures = exports.ClaimTunnelResponse = exports.ClaimTunnelRequest_TranscriptMessage = exports.ClaimTunnelRequest_Signatures = exports.ClaimTunnelRequest = exports.ClaimRequestData = 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["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
102
+ })(AttestorVersion || (exports.AttestorVersion = AttestorVersion = {}));
103
+ function attestorVersionFromJSON(object) {
104
+ switch (object) {
105
+ case 0:
106
+ case "ATTESTOR_VERSION_UNKNOWN":
107
+ return AttestorVersion.ATTESTOR_VERSION_UNKNOWN;
108
+ case 1:
109
+ case "ATTESTOR_VERSION_1_0_0":
110
+ return AttestorVersion.ATTESTOR_VERSION_1_0_0;
111
+ case 2:
112
+ case "ATTESTOR_VERSION_1_1_0":
113
+ return AttestorVersion.ATTESTOR_VERSION_1_1_0;
114
+ case 3:
115
+ case "ATTESTOR_VERSION_2_0_0":
116
+ return AttestorVersion.ATTESTOR_VERSION_2_0_0;
117
+ case -1:
118
+ case "UNRECOGNIZED":
119
+ default:
120
+ return AttestorVersion.UNRECOGNIZED;
121
+ }
122
+ }
123
+ function attestorVersionToJSON(object) {
124
+ switch (object) {
125
+ case AttestorVersion.ATTESTOR_VERSION_UNKNOWN:
126
+ return "ATTESTOR_VERSION_UNKNOWN";
127
+ case AttestorVersion.ATTESTOR_VERSION_1_0_0:
128
+ return "ATTESTOR_VERSION_1_0_0";
129
+ case AttestorVersion.ATTESTOR_VERSION_1_1_0:
130
+ return "ATTESTOR_VERSION_1_1_0";
131
+ case AttestorVersion.ATTESTOR_VERSION_2_0_0:
132
+ return "ATTESTOR_VERSION_2_0_0";
133
+ case AttestorVersion.UNRECOGNIZED:
134
+ default:
135
+ return "UNRECOGNIZED";
136
+ }
137
+ }
138
+ var ErrorCode;
139
+ (function (ErrorCode) {
140
+ /**
141
+ * ERROR_NO_ERROR - 0 should be treated as the absence of an error
142
+ * should be used when gracefully closing the connection
143
+ */
144
+ ErrorCode[ErrorCode["ERROR_NO_ERROR"] = 0] = "ERROR_NO_ERROR";
145
+ /**
146
+ * ERROR_INTERNAL - internal error in the attestor -- all "Error/TypeError"
147
+ * messages are mapped to this
148
+ */
149
+ ErrorCode[ErrorCode["ERROR_INTERNAL"] = 1] = "ERROR_INTERNAL";
150
+ /** ERROR_BAD_REQUEST - bad request from the client */
151
+ ErrorCode[ErrorCode["ERROR_BAD_REQUEST"] = 2] = "ERROR_BAD_REQUEST";
152
+ /** ERROR_NOT_FOUND - the item requested was not found */
153
+ ErrorCode[ErrorCode["ERROR_NOT_FOUND"] = 3] = "ERROR_NOT_FOUND";
154
+ /** ERROR_PROXY_ERROR - error in the proxy */
155
+ ErrorCode[ErrorCode["ERROR_PROXY_ERROR"] = 4] = "ERROR_PROXY_ERROR";
156
+ /**
157
+ * ERROR_INVALID_CLAIM - claim creation failed -- i.e. the transcript
158
+ * did not result in a valid claim
159
+ */
160
+ ErrorCode[ErrorCode["ERROR_INVALID_CLAIM"] = 5] = "ERROR_INVALID_CLAIM";
161
+ /** ERROR_NETWORK_ERROR - any network error */
162
+ ErrorCode[ErrorCode["ERROR_NETWORK_ERROR"] = 6] = "ERROR_NETWORK_ERROR";
163
+ /** ERROR_PAYMENT_REFUSED - attestor refused to pay the costs */
164
+ ErrorCode[ErrorCode["ERROR_PAYMENT_REFUSED"] = 7] = "ERROR_PAYMENT_REFUSED";
165
+ ErrorCode[ErrorCode["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
166
+ })(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
167
+ function errorCodeFromJSON(object) {
168
+ switch (object) {
169
+ case 0:
170
+ case "ERROR_NO_ERROR":
171
+ return ErrorCode.ERROR_NO_ERROR;
172
+ case 1:
173
+ case "ERROR_INTERNAL":
174
+ return ErrorCode.ERROR_INTERNAL;
175
+ case 2:
176
+ case "ERROR_BAD_REQUEST":
177
+ return ErrorCode.ERROR_BAD_REQUEST;
178
+ case 3:
179
+ case "ERROR_NOT_FOUND":
180
+ return ErrorCode.ERROR_NOT_FOUND;
181
+ case 4:
182
+ case "ERROR_PROXY_ERROR":
183
+ return ErrorCode.ERROR_PROXY_ERROR;
184
+ case 5:
185
+ case "ERROR_INVALID_CLAIM":
186
+ return ErrorCode.ERROR_INVALID_CLAIM;
187
+ case 6:
188
+ case "ERROR_NETWORK_ERROR":
189
+ return ErrorCode.ERROR_NETWORK_ERROR;
190
+ case 7:
191
+ case "ERROR_PAYMENT_REFUSED":
192
+ return ErrorCode.ERROR_PAYMENT_REFUSED;
193
+ case -1:
194
+ case "UNRECOGNIZED":
195
+ default:
196
+ return ErrorCode.UNRECOGNIZED;
197
+ }
198
+ }
199
+ function errorCodeToJSON(object) {
200
+ switch (object) {
201
+ case ErrorCode.ERROR_NO_ERROR:
202
+ return "ERROR_NO_ERROR";
203
+ case ErrorCode.ERROR_INTERNAL:
204
+ return "ERROR_INTERNAL";
205
+ case ErrorCode.ERROR_BAD_REQUEST:
206
+ return "ERROR_BAD_REQUEST";
207
+ case ErrorCode.ERROR_NOT_FOUND:
208
+ return "ERROR_NOT_FOUND";
209
+ case ErrorCode.ERROR_PROXY_ERROR:
210
+ return "ERROR_PROXY_ERROR";
211
+ case ErrorCode.ERROR_INVALID_CLAIM:
212
+ return "ERROR_INVALID_CLAIM";
213
+ case ErrorCode.ERROR_NETWORK_ERROR:
214
+ return "ERROR_NETWORK_ERROR";
215
+ case ErrorCode.ERROR_PAYMENT_REFUSED:
216
+ return "ERROR_PAYMENT_REFUSED";
217
+ case ErrorCode.UNRECOGNIZED:
218
+ default:
219
+ return "UNRECOGNIZED";
220
+ }
221
+ }
222
+ var ZKProofEngine;
223
+ (function (ZKProofEngine) {
224
+ ZKProofEngine[ZKProofEngine["ZK_ENGINE_SNARKJS"] = 0] = "ZK_ENGINE_SNARKJS";
225
+ ZKProofEngine[ZKProofEngine["ZK_ENGINE_GNARK"] = 1] = "ZK_ENGINE_GNARK";
226
+ ZKProofEngine[ZKProofEngine["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
227
+ })(ZKProofEngine || (exports.ZKProofEngine = ZKProofEngine = {}));
228
+ function zKProofEngineFromJSON(object) {
229
+ switch (object) {
230
+ case 0:
231
+ case "ZK_ENGINE_SNARKJS":
232
+ return ZKProofEngine.ZK_ENGINE_SNARKJS;
233
+ case 1:
234
+ case "ZK_ENGINE_GNARK":
235
+ return ZKProofEngine.ZK_ENGINE_GNARK;
236
+ case -1:
237
+ case "UNRECOGNIZED":
238
+ default:
239
+ return ZKProofEngine.UNRECOGNIZED;
240
+ }
241
+ }
242
+ function zKProofEngineToJSON(object) {
243
+ switch (object) {
244
+ case ZKProofEngine.ZK_ENGINE_SNARKJS:
245
+ return "ZK_ENGINE_SNARKJS";
246
+ case ZKProofEngine.ZK_ENGINE_GNARK:
247
+ return "ZK_ENGINE_GNARK";
248
+ case ZKProofEngine.UNRECOGNIZED:
249
+ default:
250
+ return "UNRECOGNIZED";
251
+ }
252
+ }
253
+ function createBaseClaimContext() {
254
+ return { extractedParameters: {}, providerHash: "" };
255
+ }
256
+ exports.ClaimContext = {
257
+ encode(message, writer = new wire_1.BinaryWriter()) {
258
+ Object.entries(message.extractedParameters).forEach(([key, value]) => {
259
+ exports.ClaimContext_ExtractedParametersEntry.encode({ key: key, value }, writer.uint32(10).fork()).join();
260
+ });
261
+ if (message.providerHash !== "") {
262
+ writer.uint32(18).string(message.providerHash);
263
+ }
264
+ return writer;
265
+ },
266
+ decode(input, length) {
267
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
268
+ let end = length === undefined ? reader.len : reader.pos + length;
269
+ const message = createBaseClaimContext();
270
+ while (reader.pos < end) {
271
+ const tag = reader.uint32();
272
+ switch (tag >>> 3) {
273
+ case 1:
274
+ if (tag !== 10) {
275
+ break;
276
+ }
277
+ const entry1 = exports.ClaimContext_ExtractedParametersEntry.decode(reader, reader.uint32());
278
+ if (entry1.value !== undefined) {
279
+ message.extractedParameters[entry1.key] = entry1.value;
280
+ }
281
+ continue;
282
+ case 2:
283
+ if (tag !== 18) {
284
+ break;
285
+ }
286
+ message.providerHash = reader.string();
287
+ continue;
288
+ }
289
+ if ((tag & 7) === 4 || tag === 0) {
290
+ break;
291
+ }
292
+ reader.skip(tag & 7);
293
+ }
294
+ return message;
295
+ },
296
+ fromJSON(object) {
297
+ return {
298
+ extractedParameters: isObject(object.extractedParameters)
299
+ ? Object.entries(object.extractedParameters).reduce((acc, [key, value]) => {
300
+ acc[key] = String(value);
301
+ return acc;
302
+ }, {})
303
+ : {},
304
+ providerHash: isSet(object.providerHash) ? globalThis.String(object.providerHash) : "",
305
+ };
306
+ },
307
+ toJSON(message) {
308
+ const obj = {};
309
+ if (message.extractedParameters) {
310
+ const entries = Object.entries(message.extractedParameters);
311
+ if (entries.length > 0) {
312
+ obj.extractedParameters = {};
313
+ entries.forEach(([k, v]) => {
314
+ obj.extractedParameters[k] = v;
315
+ });
316
+ }
317
+ }
318
+ if (message.providerHash !== "") {
319
+ obj.providerHash = message.providerHash;
320
+ }
321
+ return obj;
322
+ },
323
+ create(base) {
324
+ return exports.ClaimContext.fromPartial(base !== null && base !== void 0 ? base : {});
325
+ },
326
+ fromPartial(object) {
327
+ var _a, _b;
328
+ const message = createBaseClaimContext();
329
+ message.extractedParameters = Object.entries((_a = object.extractedParameters) !== null && _a !== void 0 ? _a : {}).reduce((acc, [key, value]) => {
330
+ if (value !== undefined) {
331
+ acc[key] = globalThis.String(value);
332
+ }
333
+ return acc;
334
+ }, {});
335
+ message.providerHash = (_b = object.providerHash) !== null && _b !== void 0 ? _b : "";
336
+ return message;
337
+ },
338
+ };
339
+ function createBaseClaimContext_ExtractedParametersEntry() {
340
+ return { key: "", value: "" };
341
+ }
342
+ exports.ClaimContext_ExtractedParametersEntry = {
343
+ encode(message, writer = new wire_1.BinaryWriter()) {
344
+ if (message.key !== "") {
345
+ writer.uint32(10).string(message.key);
346
+ }
347
+ if (message.value !== "") {
348
+ writer.uint32(18).string(message.value);
349
+ }
350
+ return writer;
351
+ },
352
+ decode(input, length) {
353
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
354
+ let end = length === undefined ? reader.len : reader.pos + length;
355
+ const message = createBaseClaimContext_ExtractedParametersEntry();
356
+ while (reader.pos < end) {
357
+ const tag = reader.uint32();
358
+ switch (tag >>> 3) {
359
+ case 1:
360
+ if (tag !== 10) {
361
+ break;
362
+ }
363
+ message.key = reader.string();
364
+ continue;
365
+ case 2:
366
+ if (tag !== 18) {
367
+ break;
368
+ }
369
+ message.value = reader.string();
370
+ continue;
371
+ }
372
+ if ((tag & 7) === 4 || tag === 0) {
373
+ break;
374
+ }
375
+ reader.skip(tag & 7);
376
+ }
377
+ return message;
378
+ },
379
+ fromJSON(object) {
380
+ return {
381
+ key: isSet(object.key) ? globalThis.String(object.key) : "",
382
+ value: isSet(object.value) ? globalThis.String(object.value) : "",
383
+ };
384
+ },
385
+ toJSON(message) {
386
+ const obj = {};
387
+ if (message.key !== "") {
388
+ obj.key = message.key;
389
+ }
390
+ if (message.value !== "") {
391
+ obj.value = message.value;
392
+ }
393
+ return obj;
394
+ },
395
+ create(base) {
396
+ return exports.ClaimContext_ExtractedParametersEntry.fromPartial(base !== null && base !== void 0 ? base : {});
397
+ },
398
+ fromPartial(object) {
399
+ var _a, _b;
400
+ const message = createBaseClaimContext_ExtractedParametersEntry();
401
+ message.key = (_a = object.key) !== null && _a !== void 0 ? _a : "";
402
+ message.value = (_b = object.value) !== null && _b !== void 0 ? _b : "";
403
+ return message;
404
+ },
405
+ };
406
+ function createBaseProviderClaimData() {
407
+ return { provider: "", parameters: "", owner: "", timestampS: 0, context: "", identifier: "", epoch: 0 };
408
+ }
409
+ exports.ProviderClaimData = {
410
+ encode(message, writer = new wire_1.BinaryWriter()) {
411
+ if (message.provider !== "") {
412
+ writer.uint32(10).string(message.provider);
413
+ }
414
+ if (message.parameters !== "") {
415
+ writer.uint32(18).string(message.parameters);
416
+ }
417
+ if (message.owner !== "") {
418
+ writer.uint32(26).string(message.owner);
419
+ }
420
+ if (message.timestampS !== 0) {
421
+ writer.uint32(32).uint32(message.timestampS);
422
+ }
423
+ if (message.context !== "") {
424
+ writer.uint32(50).string(message.context);
425
+ }
426
+ if (message.identifier !== "") {
427
+ writer.uint32(66).string(message.identifier);
428
+ }
429
+ if (message.epoch !== 0) {
430
+ writer.uint32(72).uint32(message.epoch);
431
+ }
432
+ return writer;
433
+ },
434
+ decode(input, length) {
435
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
436
+ let end = length === undefined ? reader.len : reader.pos + length;
437
+ const message = createBaseProviderClaimData();
438
+ while (reader.pos < end) {
439
+ const tag = reader.uint32();
440
+ switch (tag >>> 3) {
441
+ case 1:
442
+ if (tag !== 10) {
443
+ break;
444
+ }
445
+ message.provider = reader.string();
446
+ continue;
447
+ case 2:
448
+ if (tag !== 18) {
449
+ break;
450
+ }
451
+ message.parameters = reader.string();
452
+ continue;
453
+ case 3:
454
+ if (tag !== 26) {
455
+ break;
456
+ }
457
+ message.owner = reader.string();
458
+ continue;
459
+ case 4:
460
+ if (tag !== 32) {
461
+ break;
462
+ }
463
+ message.timestampS = reader.uint32();
464
+ continue;
465
+ case 6:
466
+ if (tag !== 50) {
467
+ break;
468
+ }
469
+ message.context = reader.string();
470
+ continue;
471
+ case 8:
472
+ if (tag !== 66) {
473
+ break;
474
+ }
475
+ message.identifier = reader.string();
476
+ continue;
477
+ case 9:
478
+ if (tag !== 72) {
479
+ break;
480
+ }
481
+ message.epoch = reader.uint32();
482
+ continue;
483
+ }
484
+ if ((tag & 7) === 4 || tag === 0) {
485
+ break;
486
+ }
487
+ reader.skip(tag & 7);
488
+ }
489
+ return message;
490
+ },
491
+ fromJSON(object) {
492
+ return {
493
+ provider: isSet(object.provider) ? globalThis.String(object.provider) : "",
494
+ parameters: isSet(object.parameters) ? globalThis.String(object.parameters) : "",
495
+ owner: isSet(object.owner) ? globalThis.String(object.owner) : "",
496
+ timestampS: isSet(object.timestampS) ? globalThis.Number(object.timestampS) : 0,
497
+ context: isSet(object.context) ? globalThis.String(object.context) : "",
498
+ identifier: isSet(object.identifier) ? globalThis.String(object.identifier) : "",
499
+ epoch: isSet(object.epoch) ? globalThis.Number(object.epoch) : 0,
500
+ };
501
+ },
502
+ toJSON(message) {
503
+ const obj = {};
504
+ if (message.provider !== "") {
505
+ obj.provider = message.provider;
506
+ }
507
+ if (message.parameters !== "") {
508
+ obj.parameters = message.parameters;
509
+ }
510
+ if (message.owner !== "") {
511
+ obj.owner = message.owner;
512
+ }
513
+ if (message.timestampS !== 0) {
514
+ obj.timestampS = Math.round(message.timestampS);
515
+ }
516
+ if (message.context !== "") {
517
+ obj.context = message.context;
518
+ }
519
+ if (message.identifier !== "") {
520
+ obj.identifier = message.identifier;
521
+ }
522
+ if (message.epoch !== 0) {
523
+ obj.epoch = Math.round(message.epoch);
524
+ }
525
+ return obj;
526
+ },
527
+ create(base) {
528
+ return exports.ProviderClaimData.fromPartial(base !== null && base !== void 0 ? base : {});
529
+ },
530
+ fromPartial(object) {
531
+ var _a, _b, _c, _d, _e, _f, _g;
532
+ const message = createBaseProviderClaimData();
533
+ message.provider = (_a = object.provider) !== null && _a !== void 0 ? _a : "";
534
+ message.parameters = (_b = object.parameters) !== null && _b !== void 0 ? _b : "";
535
+ message.owner = (_c = object.owner) !== null && _c !== void 0 ? _c : "";
536
+ message.timestampS = (_d = object.timestampS) !== null && _d !== void 0 ? _d : 0;
537
+ message.context = (_e = object.context) !== null && _e !== void 0 ? _e : "";
538
+ message.identifier = (_f = object.identifier) !== null && _f !== void 0 ? _f : "";
539
+ message.epoch = (_g = object.epoch) !== null && _g !== void 0 ? _g : 0;
540
+ return message;
541
+ },
542
+ };
543
+ function createBaseProviderClaimInfo() {
544
+ return { provider: "", parameters: "", context: "" };
545
+ }
546
+ exports.ProviderClaimInfo = {
547
+ encode(message, writer = new wire_1.BinaryWriter()) {
548
+ if (message.provider !== "") {
549
+ writer.uint32(10).string(message.provider);
550
+ }
551
+ if (message.parameters !== "") {
552
+ writer.uint32(18).string(message.parameters);
553
+ }
554
+ if (message.context !== "") {
555
+ writer.uint32(50).string(message.context);
556
+ }
557
+ return writer;
558
+ },
559
+ decode(input, length) {
560
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
561
+ let end = length === undefined ? reader.len : reader.pos + length;
562
+ const message = createBaseProviderClaimInfo();
563
+ while (reader.pos < end) {
564
+ const tag = reader.uint32();
565
+ switch (tag >>> 3) {
566
+ case 1:
567
+ if (tag !== 10) {
568
+ break;
569
+ }
570
+ message.provider = reader.string();
571
+ continue;
572
+ case 2:
573
+ if (tag !== 18) {
574
+ break;
575
+ }
576
+ message.parameters = reader.string();
577
+ continue;
578
+ case 6:
579
+ if (tag !== 50) {
580
+ break;
581
+ }
582
+ message.context = reader.string();
583
+ continue;
584
+ }
585
+ if ((tag & 7) === 4 || tag === 0) {
586
+ break;
587
+ }
588
+ reader.skip(tag & 7);
589
+ }
590
+ return message;
591
+ },
592
+ fromJSON(object) {
593
+ return {
594
+ provider: isSet(object.provider) ? globalThis.String(object.provider) : "",
595
+ parameters: isSet(object.parameters) ? globalThis.String(object.parameters) : "",
596
+ context: isSet(object.context) ? globalThis.String(object.context) : "",
597
+ };
598
+ },
599
+ toJSON(message) {
600
+ const obj = {};
601
+ if (message.provider !== "") {
602
+ obj.provider = message.provider;
603
+ }
604
+ if (message.parameters !== "") {
605
+ obj.parameters = message.parameters;
606
+ }
607
+ if (message.context !== "") {
608
+ obj.context = message.context;
609
+ }
610
+ return obj;
611
+ },
612
+ create(base) {
613
+ return exports.ProviderClaimInfo.fromPartial(base !== null && base !== void 0 ? base : {});
614
+ },
615
+ fromPartial(object) {
616
+ var _a, _b, _c;
617
+ const message = createBaseProviderClaimInfo();
618
+ message.provider = (_a = object.provider) !== null && _a !== void 0 ? _a : "";
619
+ message.parameters = (_b = object.parameters) !== null && _b !== void 0 ? _b : "";
620
+ message.context = (_c = object.context) !== null && _c !== void 0 ? _c : "";
621
+ return message;
622
+ },
623
+ };
624
+ function createBaseErrorData() {
625
+ return { code: 0, message: "", data: "" };
626
+ }
627
+ exports.ErrorData = {
628
+ encode(message, writer = new wire_1.BinaryWriter()) {
629
+ if (message.code !== 0) {
630
+ writer.uint32(8).int32(message.code);
631
+ }
632
+ if (message.message !== "") {
633
+ writer.uint32(18).string(message.message);
634
+ }
635
+ if (message.data !== "") {
636
+ writer.uint32(26).string(message.data);
637
+ }
638
+ return writer;
639
+ },
640
+ decode(input, length) {
641
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
642
+ let end = length === undefined ? reader.len : reader.pos + length;
643
+ const message = createBaseErrorData();
644
+ while (reader.pos < end) {
645
+ const tag = reader.uint32();
646
+ switch (tag >>> 3) {
647
+ case 1:
648
+ if (tag !== 8) {
649
+ break;
650
+ }
651
+ message.code = reader.int32();
652
+ continue;
653
+ case 2:
654
+ if (tag !== 18) {
655
+ break;
656
+ }
657
+ message.message = reader.string();
658
+ continue;
659
+ case 3:
660
+ if (tag !== 26) {
661
+ break;
662
+ }
663
+ message.data = reader.string();
664
+ continue;
665
+ }
666
+ if ((tag & 7) === 4 || tag === 0) {
667
+ break;
668
+ }
669
+ reader.skip(tag & 7);
670
+ }
671
+ return message;
672
+ },
673
+ fromJSON(object) {
674
+ return {
675
+ code: isSet(object.code) ? errorCodeFromJSON(object.code) : 0,
676
+ message: isSet(object.message) ? globalThis.String(object.message) : "",
677
+ data: isSet(object.data) ? globalThis.String(object.data) : "",
678
+ };
679
+ },
680
+ toJSON(message) {
681
+ const obj = {};
682
+ if (message.code !== 0) {
683
+ obj.code = errorCodeToJSON(message.code);
684
+ }
685
+ if (message.message !== "") {
686
+ obj.message = message.message;
687
+ }
688
+ if (message.data !== "") {
689
+ obj.data = message.data;
690
+ }
691
+ return obj;
692
+ },
693
+ create(base) {
694
+ return exports.ErrorData.fromPartial(base !== null && base !== void 0 ? base : {});
695
+ },
696
+ fromPartial(object) {
697
+ var _a, _b, _c;
698
+ const message = createBaseErrorData();
699
+ message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0;
700
+ message.message = (_b = object.message) !== null && _b !== void 0 ? _b : "";
701
+ message.data = (_c = object.data) !== null && _c !== void 0 ? _c : "";
702
+ return message;
703
+ },
704
+ };
705
+ function createBaseCreateTunnelRequest() {
706
+ return { id: 0, host: "", port: 0, geoLocation: "" };
707
+ }
708
+ exports.CreateTunnelRequest = {
709
+ encode(message, writer = new wire_1.BinaryWriter()) {
710
+ if (message.id !== 0) {
711
+ writer.uint32(8).uint32(message.id);
712
+ }
713
+ if (message.host !== "") {
714
+ writer.uint32(18).string(message.host);
715
+ }
716
+ if (message.port !== 0) {
717
+ writer.uint32(24).uint32(message.port);
718
+ }
719
+ if (message.geoLocation !== "") {
720
+ writer.uint32(34).string(message.geoLocation);
721
+ }
722
+ return writer;
723
+ },
724
+ decode(input, length) {
725
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
726
+ let end = length === undefined ? reader.len : reader.pos + length;
727
+ const message = createBaseCreateTunnelRequest();
728
+ while (reader.pos < end) {
729
+ const tag = reader.uint32();
730
+ switch (tag >>> 3) {
731
+ case 1:
732
+ if (tag !== 8) {
733
+ break;
734
+ }
735
+ message.id = reader.uint32();
736
+ continue;
737
+ case 2:
738
+ if (tag !== 18) {
739
+ break;
740
+ }
741
+ message.host = reader.string();
742
+ continue;
743
+ case 3:
744
+ if (tag !== 24) {
745
+ break;
746
+ }
747
+ message.port = reader.uint32();
748
+ continue;
749
+ case 4:
750
+ if (tag !== 34) {
751
+ break;
752
+ }
753
+ message.geoLocation = reader.string();
754
+ continue;
755
+ }
756
+ if ((tag & 7) === 4 || tag === 0) {
757
+ break;
758
+ }
759
+ reader.skip(tag & 7);
760
+ }
761
+ return message;
762
+ },
763
+ fromJSON(object) {
764
+ return {
765
+ id: isSet(object.id) ? globalThis.Number(object.id) : 0,
766
+ host: isSet(object.host) ? globalThis.String(object.host) : "",
767
+ port: isSet(object.port) ? globalThis.Number(object.port) : 0,
768
+ geoLocation: isSet(object.geoLocation) ? globalThis.String(object.geoLocation) : "",
769
+ };
770
+ },
771
+ toJSON(message) {
772
+ const obj = {};
773
+ if (message.id !== 0) {
774
+ obj.id = Math.round(message.id);
775
+ }
776
+ if (message.host !== "") {
777
+ obj.host = message.host;
778
+ }
779
+ if (message.port !== 0) {
780
+ obj.port = Math.round(message.port);
781
+ }
782
+ if (message.geoLocation !== "") {
783
+ obj.geoLocation = message.geoLocation;
784
+ }
785
+ return obj;
786
+ },
787
+ create(base) {
788
+ return exports.CreateTunnelRequest.fromPartial(base !== null && base !== void 0 ? base : {});
789
+ },
790
+ fromPartial(object) {
791
+ var _a, _b, _c, _d;
792
+ const message = createBaseCreateTunnelRequest();
793
+ message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0;
794
+ message.host = (_b = object.host) !== null && _b !== void 0 ? _b : "";
795
+ message.port = (_c = object.port) !== null && _c !== void 0 ? _c : 0;
796
+ message.geoLocation = (_d = object.geoLocation) !== null && _d !== void 0 ? _d : "";
797
+ return message;
798
+ },
799
+ };
800
+ function createBaseDisconnectTunnelRequest() {
801
+ return { id: 0 };
802
+ }
803
+ exports.DisconnectTunnelRequest = {
804
+ encode(message, writer = new wire_1.BinaryWriter()) {
805
+ if (message.id !== 0) {
806
+ writer.uint32(8).uint32(message.id);
807
+ }
808
+ return writer;
809
+ },
810
+ decode(input, length) {
811
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
812
+ let end = length === undefined ? reader.len : reader.pos + length;
813
+ const message = createBaseDisconnectTunnelRequest();
814
+ while (reader.pos < end) {
815
+ const tag = reader.uint32();
816
+ switch (tag >>> 3) {
817
+ case 1:
818
+ if (tag !== 8) {
819
+ break;
820
+ }
821
+ message.id = reader.uint32();
822
+ continue;
823
+ }
824
+ if ((tag & 7) === 4 || tag === 0) {
825
+ break;
826
+ }
827
+ reader.skip(tag & 7);
828
+ }
829
+ return message;
830
+ },
831
+ fromJSON(object) {
832
+ return { id: isSet(object.id) ? globalThis.Number(object.id) : 0 };
833
+ },
834
+ toJSON(message) {
835
+ const obj = {};
836
+ if (message.id !== 0) {
837
+ obj.id = Math.round(message.id);
838
+ }
839
+ return obj;
840
+ },
841
+ create(base) {
842
+ return exports.DisconnectTunnelRequest.fromPartial(base !== null && base !== void 0 ? base : {});
843
+ },
844
+ fromPartial(object) {
845
+ var _a;
846
+ const message = createBaseDisconnectTunnelRequest();
847
+ message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0;
848
+ return message;
849
+ },
850
+ };
851
+ function createBaseEmpty() {
852
+ return {};
853
+ }
854
+ exports.Empty = {
855
+ encode(_, writer = new wire_1.BinaryWriter()) {
856
+ return writer;
857
+ },
858
+ decode(input, length) {
859
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
860
+ let end = length === undefined ? reader.len : reader.pos + length;
861
+ const message = createBaseEmpty();
862
+ while (reader.pos < end) {
863
+ const tag = reader.uint32();
864
+ switch (tag >>> 3) {
865
+ }
866
+ if ((tag & 7) === 4 || tag === 0) {
867
+ break;
868
+ }
869
+ reader.skip(tag & 7);
870
+ }
871
+ return message;
872
+ },
873
+ fromJSON(_) {
874
+ return {};
875
+ },
876
+ toJSON(_) {
877
+ const obj = {};
878
+ return obj;
879
+ },
880
+ create(base) {
881
+ return exports.Empty.fromPartial(base !== null && base !== void 0 ? base : {});
882
+ },
883
+ fromPartial(_) {
884
+ const message = createBaseEmpty();
885
+ return message;
886
+ },
887
+ };
888
+ function createBaseTunnelMessage() {
889
+ return { tunnelId: 0, message: new Uint8Array(0) };
890
+ }
891
+ exports.TunnelMessage = {
892
+ encode(message, writer = new wire_1.BinaryWriter()) {
893
+ if (message.tunnelId !== 0) {
894
+ writer.uint32(8).uint32(message.tunnelId);
895
+ }
896
+ if (message.message.length !== 0) {
897
+ writer.uint32(18).bytes(message.message);
898
+ }
899
+ return writer;
900
+ },
901
+ decode(input, length) {
902
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
903
+ let end = length === undefined ? reader.len : reader.pos + length;
904
+ const message = createBaseTunnelMessage();
905
+ while (reader.pos < end) {
906
+ const tag = reader.uint32();
907
+ switch (tag >>> 3) {
908
+ case 1:
909
+ if (tag !== 8) {
910
+ break;
911
+ }
912
+ message.tunnelId = reader.uint32();
913
+ continue;
914
+ case 2:
915
+ if (tag !== 18) {
916
+ break;
917
+ }
918
+ message.message = reader.bytes();
919
+ continue;
920
+ }
921
+ if ((tag & 7) === 4 || tag === 0) {
922
+ break;
923
+ }
924
+ reader.skip(tag & 7);
925
+ }
926
+ return message;
927
+ },
928
+ fromJSON(object) {
929
+ return {
930
+ tunnelId: isSet(object.tunnelId) ? globalThis.Number(object.tunnelId) : 0,
931
+ message: isSet(object.message) ? bytesFromBase64(object.message) : new Uint8Array(0),
932
+ };
933
+ },
934
+ toJSON(message) {
935
+ const obj = {};
936
+ if (message.tunnelId !== 0) {
937
+ obj.tunnelId = Math.round(message.tunnelId);
938
+ }
939
+ if (message.message.length !== 0) {
940
+ obj.message = base64FromBytes(message.message);
941
+ }
942
+ return obj;
943
+ },
944
+ create(base) {
945
+ return exports.TunnelMessage.fromPartial(base !== null && base !== void 0 ? base : {});
946
+ },
947
+ fromPartial(object) {
948
+ var _a, _b;
949
+ const message = createBaseTunnelMessage();
950
+ message.tunnelId = (_a = object.tunnelId) !== null && _a !== void 0 ? _a : 0;
951
+ message.message = (_b = object.message) !== null && _b !== void 0 ? _b : new Uint8Array(0);
952
+ return message;
953
+ },
954
+ };
955
+ function createBaseTunnelDisconnectEvent() {
956
+ return { tunnelId: 0, error: undefined };
957
+ }
958
+ exports.TunnelDisconnectEvent = {
959
+ encode(message, writer = new wire_1.BinaryWriter()) {
960
+ if (message.tunnelId !== 0) {
961
+ writer.uint32(8).uint32(message.tunnelId);
962
+ }
963
+ if (message.error !== undefined) {
964
+ exports.ErrorData.encode(message.error, writer.uint32(18).fork()).join();
965
+ }
966
+ return writer;
967
+ },
968
+ decode(input, length) {
969
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
970
+ let end = length === undefined ? reader.len : reader.pos + length;
971
+ const message = createBaseTunnelDisconnectEvent();
972
+ while (reader.pos < end) {
973
+ const tag = reader.uint32();
974
+ switch (tag >>> 3) {
975
+ case 1:
976
+ if (tag !== 8) {
977
+ break;
978
+ }
979
+ message.tunnelId = reader.uint32();
980
+ continue;
981
+ case 2:
982
+ if (tag !== 18) {
983
+ break;
984
+ }
985
+ message.error = exports.ErrorData.decode(reader, reader.uint32());
986
+ continue;
987
+ }
988
+ if ((tag & 7) === 4 || tag === 0) {
989
+ break;
990
+ }
991
+ reader.skip(tag & 7);
992
+ }
993
+ return message;
994
+ },
995
+ fromJSON(object) {
996
+ return {
997
+ tunnelId: isSet(object.tunnelId) ? globalThis.Number(object.tunnelId) : 0,
998
+ error: isSet(object.error) ? exports.ErrorData.fromJSON(object.error) : undefined,
999
+ };
1000
+ },
1001
+ toJSON(message) {
1002
+ const obj = {};
1003
+ if (message.tunnelId !== 0) {
1004
+ obj.tunnelId = Math.round(message.tunnelId);
1005
+ }
1006
+ if (message.error !== undefined) {
1007
+ obj.error = exports.ErrorData.toJSON(message.error);
1008
+ }
1009
+ return obj;
1010
+ },
1011
+ create(base) {
1012
+ return exports.TunnelDisconnectEvent.fromPartial(base !== null && base !== void 0 ? base : {});
1013
+ },
1014
+ fromPartial(object) {
1015
+ var _a;
1016
+ const message = createBaseTunnelDisconnectEvent();
1017
+ message.tunnelId = (_a = object.tunnelId) !== null && _a !== void 0 ? _a : 0;
1018
+ message.error = (object.error !== undefined && object.error !== null)
1019
+ ? exports.ErrorData.fromPartial(object.error)
1020
+ : undefined;
1021
+ return message;
1022
+ },
1023
+ };
1024
+ function createBaseMessageReveal() {
1025
+ return { directReveal: undefined, zkReveal: undefined };
1026
+ }
1027
+ exports.MessageReveal = {
1028
+ encode(message, writer = new wire_1.BinaryWriter()) {
1029
+ if (message.directReveal !== undefined) {
1030
+ exports.MessageReveal_MessageRevealDirect.encode(message.directReveal, writer.uint32(10).fork()).join();
1031
+ }
1032
+ if (message.zkReveal !== undefined) {
1033
+ exports.MessageReveal_MessageRevealZk.encode(message.zkReveal, writer.uint32(18).fork()).join();
1034
+ }
1035
+ return writer;
1036
+ },
1037
+ decode(input, length) {
1038
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1039
+ let end = length === undefined ? reader.len : reader.pos + length;
1040
+ const message = createBaseMessageReveal();
1041
+ while (reader.pos < end) {
1042
+ const tag = reader.uint32();
1043
+ switch (tag >>> 3) {
1044
+ case 1:
1045
+ if (tag !== 10) {
1046
+ break;
1047
+ }
1048
+ message.directReveal = exports.MessageReveal_MessageRevealDirect.decode(reader, reader.uint32());
1049
+ continue;
1050
+ case 2:
1051
+ if (tag !== 18) {
1052
+ break;
1053
+ }
1054
+ message.zkReveal = exports.MessageReveal_MessageRevealZk.decode(reader, reader.uint32());
1055
+ continue;
1056
+ }
1057
+ if ((tag & 7) === 4 || tag === 0) {
1058
+ break;
1059
+ }
1060
+ reader.skip(tag & 7);
1061
+ }
1062
+ return message;
1063
+ },
1064
+ fromJSON(object) {
1065
+ return {
1066
+ directReveal: isSet(object.directReveal)
1067
+ ? exports.MessageReveal_MessageRevealDirect.fromJSON(object.directReveal)
1068
+ : undefined,
1069
+ zkReveal: isSet(object.zkReveal) ? exports.MessageReveal_MessageRevealZk.fromJSON(object.zkReveal) : undefined,
1070
+ };
1071
+ },
1072
+ toJSON(message) {
1073
+ const obj = {};
1074
+ if (message.directReveal !== undefined) {
1075
+ obj.directReveal = exports.MessageReveal_MessageRevealDirect.toJSON(message.directReveal);
1076
+ }
1077
+ if (message.zkReveal !== undefined) {
1078
+ obj.zkReveal = exports.MessageReveal_MessageRevealZk.toJSON(message.zkReveal);
1079
+ }
1080
+ return obj;
1081
+ },
1082
+ create(base) {
1083
+ return exports.MessageReveal.fromPartial(base !== null && base !== void 0 ? base : {});
1084
+ },
1085
+ fromPartial(object) {
1086
+ const message = createBaseMessageReveal();
1087
+ message.directReveal = (object.directReveal !== undefined && object.directReveal !== null)
1088
+ ? exports.MessageReveal_MessageRevealDirect.fromPartial(object.directReveal)
1089
+ : undefined;
1090
+ message.zkReveal = (object.zkReveal !== undefined && object.zkReveal !== null)
1091
+ ? exports.MessageReveal_MessageRevealZk.fromPartial(object.zkReveal)
1092
+ : undefined;
1093
+ return message;
1094
+ },
1095
+ };
1096
+ function createBaseMessageReveal_MessageRevealDirect() {
1097
+ return { key: new Uint8Array(0), iv: new Uint8Array(0), recordNumber: 0 };
1098
+ }
1099
+ exports.MessageReveal_MessageRevealDirect = {
1100
+ encode(message, writer = new wire_1.BinaryWriter()) {
1101
+ if (message.key.length !== 0) {
1102
+ writer.uint32(10).bytes(message.key);
1103
+ }
1104
+ if (message.iv.length !== 0) {
1105
+ writer.uint32(18).bytes(message.iv);
1106
+ }
1107
+ if (message.recordNumber !== 0) {
1108
+ writer.uint32(24).uint32(message.recordNumber);
1109
+ }
1110
+ return writer;
1111
+ },
1112
+ decode(input, length) {
1113
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1114
+ let end = length === undefined ? reader.len : reader.pos + length;
1115
+ const message = createBaseMessageReveal_MessageRevealDirect();
1116
+ while (reader.pos < end) {
1117
+ const tag = reader.uint32();
1118
+ switch (tag >>> 3) {
1119
+ case 1:
1120
+ if (tag !== 10) {
1121
+ break;
1122
+ }
1123
+ message.key = reader.bytes();
1124
+ continue;
1125
+ case 2:
1126
+ if (tag !== 18) {
1127
+ break;
1128
+ }
1129
+ message.iv = reader.bytes();
1130
+ continue;
1131
+ case 3:
1132
+ if (tag !== 24) {
1133
+ break;
1134
+ }
1135
+ message.recordNumber = reader.uint32();
1136
+ continue;
1137
+ }
1138
+ if ((tag & 7) === 4 || tag === 0) {
1139
+ break;
1140
+ }
1141
+ reader.skip(tag & 7);
1142
+ }
1143
+ return message;
1144
+ },
1145
+ fromJSON(object) {
1146
+ return {
1147
+ key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(0),
1148
+ iv: isSet(object.iv) ? bytesFromBase64(object.iv) : new Uint8Array(0),
1149
+ recordNumber: isSet(object.recordNumber) ? globalThis.Number(object.recordNumber) : 0,
1150
+ };
1151
+ },
1152
+ toJSON(message) {
1153
+ const obj = {};
1154
+ if (message.key.length !== 0) {
1155
+ obj.key = base64FromBytes(message.key);
1156
+ }
1157
+ if (message.iv.length !== 0) {
1158
+ obj.iv = base64FromBytes(message.iv);
1159
+ }
1160
+ if (message.recordNumber !== 0) {
1161
+ obj.recordNumber = Math.round(message.recordNumber);
1162
+ }
1163
+ return obj;
1164
+ },
1165
+ create(base) {
1166
+ return exports.MessageReveal_MessageRevealDirect.fromPartial(base !== null && base !== void 0 ? base : {});
1167
+ },
1168
+ fromPartial(object) {
1169
+ var _a, _b, _c;
1170
+ const message = createBaseMessageReveal_MessageRevealDirect();
1171
+ message.key = (_a = object.key) !== null && _a !== void 0 ? _a : new Uint8Array(0);
1172
+ message.iv = (_b = object.iv) !== null && _b !== void 0 ? _b : new Uint8Array(0);
1173
+ message.recordNumber = (_c = object.recordNumber) !== null && _c !== void 0 ? _c : 0;
1174
+ return message;
1175
+ },
1176
+ };
1177
+ function createBaseMessageReveal_MessageRevealZk() {
1178
+ return { proofs: [] };
1179
+ }
1180
+ exports.MessageReveal_MessageRevealZk = {
1181
+ encode(message, writer = new wire_1.BinaryWriter()) {
1182
+ for (const v of message.proofs) {
1183
+ exports.MessageReveal_ZKProof.encode(v, writer.uint32(10).fork()).join();
1184
+ }
1185
+ return writer;
1186
+ },
1187
+ decode(input, length) {
1188
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1189
+ let end = length === undefined ? reader.len : reader.pos + length;
1190
+ const message = createBaseMessageReveal_MessageRevealZk();
1191
+ while (reader.pos < end) {
1192
+ const tag = reader.uint32();
1193
+ switch (tag >>> 3) {
1194
+ case 1:
1195
+ if (tag !== 10) {
1196
+ break;
1197
+ }
1198
+ message.proofs.push(exports.MessageReveal_ZKProof.decode(reader, reader.uint32()));
1199
+ continue;
1200
+ }
1201
+ if ((tag & 7) === 4 || tag === 0) {
1202
+ break;
1203
+ }
1204
+ reader.skip(tag & 7);
1205
+ }
1206
+ return message;
1207
+ },
1208
+ fromJSON(object) {
1209
+ return {
1210
+ proofs: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.proofs)
1211
+ ? object.proofs.map((e) => exports.MessageReveal_ZKProof.fromJSON(e))
1212
+ : [],
1213
+ };
1214
+ },
1215
+ toJSON(message) {
1216
+ var _a;
1217
+ const obj = {};
1218
+ if ((_a = message.proofs) === null || _a === void 0 ? void 0 : _a.length) {
1219
+ obj.proofs = message.proofs.map((e) => exports.MessageReveal_ZKProof.toJSON(e));
1220
+ }
1221
+ return obj;
1222
+ },
1223
+ create(base) {
1224
+ return exports.MessageReveal_MessageRevealZk.fromPartial(base !== null && base !== void 0 ? base : {});
1225
+ },
1226
+ fromPartial(object) {
1227
+ var _a;
1228
+ const message = createBaseMessageReveal_MessageRevealZk();
1229
+ message.proofs = ((_a = object.proofs) === null || _a === void 0 ? void 0 : _a.map((e) => exports.MessageReveal_ZKProof.fromPartial(e))) || [];
1230
+ return message;
1231
+ },
1232
+ };
1233
+ function createBaseMessageReveal_ZKProof() {
1234
+ return {
1235
+ proofJson: "",
1236
+ decryptedRedactedCiphertext: new Uint8Array(0),
1237
+ redactedPlaintext: new Uint8Array(0),
1238
+ startIdx: 0,
1239
+ };
1240
+ }
1241
+ exports.MessageReveal_ZKProof = {
1242
+ encode(message, writer = new wire_1.BinaryWriter()) {
1243
+ if (message.proofJson !== "") {
1244
+ writer.uint32(10).string(message.proofJson);
1245
+ }
1246
+ if (message.decryptedRedactedCiphertext.length !== 0) {
1247
+ writer.uint32(18).bytes(message.decryptedRedactedCiphertext);
1248
+ }
1249
+ if (message.redactedPlaintext.length !== 0) {
1250
+ writer.uint32(26).bytes(message.redactedPlaintext);
1251
+ }
1252
+ if (message.startIdx !== 0) {
1253
+ writer.uint32(32).uint32(message.startIdx);
1254
+ }
1255
+ return writer;
1256
+ },
1257
+ decode(input, length) {
1258
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1259
+ let end = length === undefined ? reader.len : reader.pos + length;
1260
+ const message = createBaseMessageReveal_ZKProof();
1261
+ while (reader.pos < end) {
1262
+ const tag = reader.uint32();
1263
+ switch (tag >>> 3) {
1264
+ case 1:
1265
+ if (tag !== 10) {
1266
+ break;
1267
+ }
1268
+ message.proofJson = reader.string();
1269
+ continue;
1270
+ case 2:
1271
+ if (tag !== 18) {
1272
+ break;
1273
+ }
1274
+ message.decryptedRedactedCiphertext = reader.bytes();
1275
+ continue;
1276
+ case 3:
1277
+ if (tag !== 26) {
1278
+ break;
1279
+ }
1280
+ message.redactedPlaintext = reader.bytes();
1281
+ continue;
1282
+ case 4:
1283
+ if (tag !== 32) {
1284
+ break;
1285
+ }
1286
+ message.startIdx = reader.uint32();
1287
+ continue;
1288
+ }
1289
+ if ((tag & 7) === 4 || tag === 0) {
1290
+ break;
1291
+ }
1292
+ reader.skip(tag & 7);
1293
+ }
1294
+ return message;
1295
+ },
1296
+ fromJSON(object) {
1297
+ return {
1298
+ proofJson: isSet(object.proofJson) ? globalThis.String(object.proofJson) : "",
1299
+ decryptedRedactedCiphertext: isSet(object.decryptedRedactedCiphertext)
1300
+ ? bytesFromBase64(object.decryptedRedactedCiphertext)
1301
+ : new Uint8Array(0),
1302
+ redactedPlaintext: isSet(object.redactedPlaintext)
1303
+ ? bytesFromBase64(object.redactedPlaintext)
1304
+ : new Uint8Array(0),
1305
+ startIdx: isSet(object.startIdx) ? globalThis.Number(object.startIdx) : 0,
1306
+ };
1307
+ },
1308
+ toJSON(message) {
1309
+ const obj = {};
1310
+ if (message.proofJson !== "") {
1311
+ obj.proofJson = message.proofJson;
1312
+ }
1313
+ if (message.decryptedRedactedCiphertext.length !== 0) {
1314
+ obj.decryptedRedactedCiphertext = base64FromBytes(message.decryptedRedactedCiphertext);
1315
+ }
1316
+ if (message.redactedPlaintext.length !== 0) {
1317
+ obj.redactedPlaintext = base64FromBytes(message.redactedPlaintext);
1318
+ }
1319
+ if (message.startIdx !== 0) {
1320
+ obj.startIdx = Math.round(message.startIdx);
1321
+ }
1322
+ return obj;
1323
+ },
1324
+ create(base) {
1325
+ return exports.MessageReveal_ZKProof.fromPartial(base !== null && base !== void 0 ? base : {});
1326
+ },
1327
+ fromPartial(object) {
1328
+ var _a, _b, _c, _d;
1329
+ const message = createBaseMessageReveal_ZKProof();
1330
+ message.proofJson = (_a = object.proofJson) !== null && _a !== void 0 ? _a : "";
1331
+ message.decryptedRedactedCiphertext = (_b = object.decryptedRedactedCiphertext) !== null && _b !== void 0 ? _b : new Uint8Array(0);
1332
+ message.redactedPlaintext = (_c = object.redactedPlaintext) !== null && _c !== void 0 ? _c : new Uint8Array(0);
1333
+ message.startIdx = (_d = object.startIdx) !== null && _d !== void 0 ? _d : 0;
1334
+ return message;
1335
+ },
1336
+ };
1337
+ function createBaseClaimRequestData() {
1338
+ return { provider: "", parameters: "", owner: "", timestampS: 0, context: "" };
1339
+ }
1340
+ exports.ClaimRequestData = {
1341
+ encode(message, writer = new wire_1.BinaryWriter()) {
1342
+ if (message.provider !== "") {
1343
+ writer.uint32(10).string(message.provider);
1344
+ }
1345
+ if (message.parameters !== "") {
1346
+ writer.uint32(18).string(message.parameters);
1347
+ }
1348
+ if (message.owner !== "") {
1349
+ writer.uint32(26).string(message.owner);
1350
+ }
1351
+ if (message.timestampS !== 0) {
1352
+ writer.uint32(32).uint32(message.timestampS);
1353
+ }
1354
+ if (message.context !== "") {
1355
+ writer.uint32(42).string(message.context);
1356
+ }
1357
+ return writer;
1358
+ },
1359
+ decode(input, length) {
1360
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1361
+ let end = length === undefined ? reader.len : reader.pos + length;
1362
+ const message = createBaseClaimRequestData();
1363
+ while (reader.pos < end) {
1364
+ const tag = reader.uint32();
1365
+ switch (tag >>> 3) {
1366
+ case 1:
1367
+ if (tag !== 10) {
1368
+ break;
1369
+ }
1370
+ message.provider = reader.string();
1371
+ continue;
1372
+ case 2:
1373
+ if (tag !== 18) {
1374
+ break;
1375
+ }
1376
+ message.parameters = reader.string();
1377
+ continue;
1378
+ case 3:
1379
+ if (tag !== 26) {
1380
+ break;
1381
+ }
1382
+ message.owner = reader.string();
1383
+ continue;
1384
+ case 4:
1385
+ if (tag !== 32) {
1386
+ break;
1387
+ }
1388
+ message.timestampS = reader.uint32();
1389
+ continue;
1390
+ case 5:
1391
+ if (tag !== 42) {
1392
+ break;
1393
+ }
1394
+ message.context = reader.string();
1395
+ continue;
1396
+ }
1397
+ if ((tag & 7) === 4 || tag === 0) {
1398
+ break;
1399
+ }
1400
+ reader.skip(tag & 7);
1401
+ }
1402
+ return message;
1403
+ },
1404
+ fromJSON(object) {
1405
+ return {
1406
+ provider: isSet(object.provider) ? globalThis.String(object.provider) : "",
1407
+ parameters: isSet(object.parameters) ? globalThis.String(object.parameters) : "",
1408
+ owner: isSet(object.owner) ? globalThis.String(object.owner) : "",
1409
+ timestampS: isSet(object.timestampS) ? globalThis.Number(object.timestampS) : 0,
1410
+ context: isSet(object.context) ? globalThis.String(object.context) : "",
1411
+ };
1412
+ },
1413
+ toJSON(message) {
1414
+ const obj = {};
1415
+ if (message.provider !== "") {
1416
+ obj.provider = message.provider;
1417
+ }
1418
+ if (message.parameters !== "") {
1419
+ obj.parameters = message.parameters;
1420
+ }
1421
+ if (message.owner !== "") {
1422
+ obj.owner = message.owner;
1423
+ }
1424
+ if (message.timestampS !== 0) {
1425
+ obj.timestampS = Math.round(message.timestampS);
1426
+ }
1427
+ if (message.context !== "") {
1428
+ obj.context = message.context;
1429
+ }
1430
+ return obj;
1431
+ },
1432
+ create(base) {
1433
+ return exports.ClaimRequestData.fromPartial(base !== null && base !== void 0 ? base : {});
1434
+ },
1435
+ fromPartial(object) {
1436
+ var _a, _b, _c, _d, _e;
1437
+ const message = createBaseClaimRequestData();
1438
+ message.provider = (_a = object.provider) !== null && _a !== void 0 ? _a : "";
1439
+ message.parameters = (_b = object.parameters) !== null && _b !== void 0 ? _b : "";
1440
+ message.owner = (_c = object.owner) !== null && _c !== void 0 ? _c : "";
1441
+ message.timestampS = (_d = object.timestampS) !== null && _d !== void 0 ? _d : 0;
1442
+ message.context = (_e = object.context) !== null && _e !== void 0 ? _e : "";
1443
+ return message;
1444
+ },
1445
+ };
1446
+ function createBaseClaimTunnelRequest() {
1447
+ return {
1448
+ request: undefined,
1449
+ data: undefined,
1450
+ transcript: [],
1451
+ signatures: undefined,
1452
+ zkEngine: 0,
1453
+ fixedServerIV: new Uint8Array(0),
1454
+ fixedClientIV: new Uint8Array(0),
1455
+ };
1456
+ }
1457
+ exports.ClaimTunnelRequest = {
1458
+ encode(message, writer = new wire_1.BinaryWriter()) {
1459
+ if (message.request !== undefined) {
1460
+ exports.CreateTunnelRequest.encode(message.request, writer.uint32(10).fork()).join();
1461
+ }
1462
+ if (message.data !== undefined) {
1463
+ exports.ClaimRequestData.encode(message.data, writer.uint32(18).fork()).join();
1464
+ }
1465
+ for (const v of message.transcript) {
1466
+ exports.ClaimTunnelRequest_TranscriptMessage.encode(v, writer.uint32(26).fork()).join();
1467
+ }
1468
+ if (message.signatures !== undefined) {
1469
+ exports.ClaimTunnelRequest_Signatures.encode(message.signatures, writer.uint32(34).fork()).join();
1470
+ }
1471
+ if (message.zkEngine !== 0) {
1472
+ writer.uint32(40).int32(message.zkEngine);
1473
+ }
1474
+ if (message.fixedServerIV.length !== 0) {
1475
+ writer.uint32(50).bytes(message.fixedServerIV);
1476
+ }
1477
+ if (message.fixedClientIV.length !== 0) {
1478
+ writer.uint32(58).bytes(message.fixedClientIV);
1479
+ }
1480
+ return writer;
1481
+ },
1482
+ decode(input, length) {
1483
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1484
+ let end = length === undefined ? reader.len : reader.pos + length;
1485
+ const message = createBaseClaimTunnelRequest();
1486
+ while (reader.pos < end) {
1487
+ const tag = reader.uint32();
1488
+ switch (tag >>> 3) {
1489
+ case 1:
1490
+ if (tag !== 10) {
1491
+ break;
1492
+ }
1493
+ message.request = exports.CreateTunnelRequest.decode(reader, reader.uint32());
1494
+ continue;
1495
+ case 2:
1496
+ if (tag !== 18) {
1497
+ break;
1498
+ }
1499
+ message.data = exports.ClaimRequestData.decode(reader, reader.uint32());
1500
+ continue;
1501
+ case 3:
1502
+ if (tag !== 26) {
1503
+ break;
1504
+ }
1505
+ message.transcript.push(exports.ClaimTunnelRequest_TranscriptMessage.decode(reader, reader.uint32()));
1506
+ continue;
1507
+ case 4:
1508
+ if (tag !== 34) {
1509
+ break;
1510
+ }
1511
+ message.signatures = exports.ClaimTunnelRequest_Signatures.decode(reader, reader.uint32());
1512
+ continue;
1513
+ case 5:
1514
+ if (tag !== 40) {
1515
+ break;
1516
+ }
1517
+ message.zkEngine = reader.int32();
1518
+ continue;
1519
+ case 6:
1520
+ if (tag !== 50) {
1521
+ break;
1522
+ }
1523
+ message.fixedServerIV = reader.bytes();
1524
+ continue;
1525
+ case 7:
1526
+ if (tag !== 58) {
1527
+ break;
1528
+ }
1529
+ message.fixedClientIV = reader.bytes();
1530
+ continue;
1531
+ }
1532
+ if ((tag & 7) === 4 || tag === 0) {
1533
+ break;
1534
+ }
1535
+ reader.skip(tag & 7);
1536
+ }
1537
+ return message;
1538
+ },
1539
+ fromJSON(object) {
1540
+ return {
1541
+ request: isSet(object.request) ? exports.CreateTunnelRequest.fromJSON(object.request) : undefined,
1542
+ data: isSet(object.data) ? exports.ClaimRequestData.fromJSON(object.data) : undefined,
1543
+ transcript: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.transcript)
1544
+ ? object.transcript.map((e) => exports.ClaimTunnelRequest_TranscriptMessage.fromJSON(e))
1545
+ : [],
1546
+ signatures: isSet(object.signatures) ? exports.ClaimTunnelRequest_Signatures.fromJSON(object.signatures) : undefined,
1547
+ zkEngine: isSet(object.zkEngine) ? zKProofEngineFromJSON(object.zkEngine) : 0,
1548
+ fixedServerIV: isSet(object.fixedServerIV) ? bytesFromBase64(object.fixedServerIV) : new Uint8Array(0),
1549
+ fixedClientIV: isSet(object.fixedClientIV) ? bytesFromBase64(object.fixedClientIV) : new Uint8Array(0),
1550
+ };
1551
+ },
1552
+ toJSON(message) {
1553
+ var _a;
1554
+ const obj = {};
1555
+ if (message.request !== undefined) {
1556
+ obj.request = exports.CreateTunnelRequest.toJSON(message.request);
1557
+ }
1558
+ if (message.data !== undefined) {
1559
+ obj.data = exports.ClaimRequestData.toJSON(message.data);
1560
+ }
1561
+ if ((_a = message.transcript) === null || _a === void 0 ? void 0 : _a.length) {
1562
+ obj.transcript = message.transcript.map((e) => exports.ClaimTunnelRequest_TranscriptMessage.toJSON(e));
1563
+ }
1564
+ if (message.signatures !== undefined) {
1565
+ obj.signatures = exports.ClaimTunnelRequest_Signatures.toJSON(message.signatures);
1566
+ }
1567
+ if (message.zkEngine !== 0) {
1568
+ obj.zkEngine = zKProofEngineToJSON(message.zkEngine);
1569
+ }
1570
+ if (message.fixedServerIV.length !== 0) {
1571
+ obj.fixedServerIV = base64FromBytes(message.fixedServerIV);
1572
+ }
1573
+ if (message.fixedClientIV.length !== 0) {
1574
+ obj.fixedClientIV = base64FromBytes(message.fixedClientIV);
1575
+ }
1576
+ return obj;
1577
+ },
1578
+ create(base) {
1579
+ return exports.ClaimTunnelRequest.fromPartial(base !== null && base !== void 0 ? base : {});
1580
+ },
1581
+ fromPartial(object) {
1582
+ var _a, _b, _c, _d;
1583
+ const message = createBaseClaimTunnelRequest();
1584
+ message.request = (object.request !== undefined && object.request !== null)
1585
+ ? exports.CreateTunnelRequest.fromPartial(object.request)
1586
+ : undefined;
1587
+ message.data = (object.data !== undefined && object.data !== null)
1588
+ ? exports.ClaimRequestData.fromPartial(object.data)
1589
+ : undefined;
1590
+ message.transcript = ((_a = object.transcript) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ClaimTunnelRequest_TranscriptMessage.fromPartial(e))) || [];
1591
+ message.signatures = (object.signatures !== undefined && object.signatures !== null)
1592
+ ? exports.ClaimTunnelRequest_Signatures.fromPartial(object.signatures)
1593
+ : undefined;
1594
+ message.zkEngine = (_b = object.zkEngine) !== null && _b !== void 0 ? _b : 0;
1595
+ message.fixedServerIV = (_c = object.fixedServerIV) !== null && _c !== void 0 ? _c : new Uint8Array(0);
1596
+ message.fixedClientIV = (_d = object.fixedClientIV) !== null && _d !== void 0 ? _d : new Uint8Array(0);
1597
+ return message;
1598
+ },
1599
+ };
1600
+ function createBaseClaimTunnelRequest_Signatures() {
1601
+ return { requestSignature: new Uint8Array(0) };
1602
+ }
1603
+ exports.ClaimTunnelRequest_Signatures = {
1604
+ encode(message, writer = new wire_1.BinaryWriter()) {
1605
+ if (message.requestSignature.length !== 0) {
1606
+ writer.uint32(10).bytes(message.requestSignature);
1607
+ }
1608
+ return writer;
1609
+ },
1610
+ decode(input, length) {
1611
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1612
+ let end = length === undefined ? reader.len : reader.pos + length;
1613
+ const message = createBaseClaimTunnelRequest_Signatures();
1614
+ while (reader.pos < end) {
1615
+ const tag = reader.uint32();
1616
+ switch (tag >>> 3) {
1617
+ case 1:
1618
+ if (tag !== 10) {
1619
+ break;
1620
+ }
1621
+ message.requestSignature = reader.bytes();
1622
+ continue;
1623
+ }
1624
+ if ((tag & 7) === 4 || tag === 0) {
1625
+ break;
1626
+ }
1627
+ reader.skip(tag & 7);
1628
+ }
1629
+ return message;
1630
+ },
1631
+ fromJSON(object) {
1632
+ return {
1633
+ requestSignature: isSet(object.requestSignature) ? bytesFromBase64(object.requestSignature) : new Uint8Array(0),
1634
+ };
1635
+ },
1636
+ toJSON(message) {
1637
+ const obj = {};
1638
+ if (message.requestSignature.length !== 0) {
1639
+ obj.requestSignature = base64FromBytes(message.requestSignature);
1640
+ }
1641
+ return obj;
1642
+ },
1643
+ create(base) {
1644
+ return exports.ClaimTunnelRequest_Signatures.fromPartial(base !== null && base !== void 0 ? base : {});
1645
+ },
1646
+ fromPartial(object) {
1647
+ var _a;
1648
+ const message = createBaseClaimTunnelRequest_Signatures();
1649
+ message.requestSignature = (_a = object.requestSignature) !== null && _a !== void 0 ? _a : new Uint8Array(0);
1650
+ return message;
1651
+ },
1652
+ };
1653
+ function createBaseClaimTunnelRequest_TranscriptMessage() {
1654
+ return { sender: 0, message: new Uint8Array(0), reveal: undefined };
1655
+ }
1656
+ exports.ClaimTunnelRequest_TranscriptMessage = {
1657
+ encode(message, writer = new wire_1.BinaryWriter()) {
1658
+ if (message.sender !== 0) {
1659
+ writer.uint32(8).int32(message.sender);
1660
+ }
1661
+ if (message.message.length !== 0) {
1662
+ writer.uint32(18).bytes(message.message);
1663
+ }
1664
+ if (message.reveal !== undefined) {
1665
+ exports.MessageReveal.encode(message.reveal, writer.uint32(26).fork()).join();
1666
+ }
1667
+ return writer;
1668
+ },
1669
+ decode(input, length) {
1670
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1671
+ let end = length === undefined ? reader.len : reader.pos + length;
1672
+ const message = createBaseClaimTunnelRequest_TranscriptMessage();
1673
+ while (reader.pos < end) {
1674
+ const tag = reader.uint32();
1675
+ switch (tag >>> 3) {
1676
+ case 1:
1677
+ if (tag !== 8) {
1678
+ break;
1679
+ }
1680
+ message.sender = reader.int32();
1681
+ continue;
1682
+ case 2:
1683
+ if (tag !== 18) {
1684
+ break;
1685
+ }
1686
+ message.message = reader.bytes();
1687
+ continue;
1688
+ case 3:
1689
+ if (tag !== 26) {
1690
+ break;
1691
+ }
1692
+ message.reveal = exports.MessageReveal.decode(reader, reader.uint32());
1693
+ continue;
1694
+ }
1695
+ if ((tag & 7) === 4 || tag === 0) {
1696
+ break;
1697
+ }
1698
+ reader.skip(tag & 7);
1699
+ }
1700
+ return message;
1701
+ },
1702
+ fromJSON(object) {
1703
+ return {
1704
+ sender: isSet(object.sender) ? transcriptMessageSenderTypeFromJSON(object.sender) : 0,
1705
+ message: isSet(object.message) ? bytesFromBase64(object.message) : new Uint8Array(0),
1706
+ reveal: isSet(object.reveal) ? exports.MessageReveal.fromJSON(object.reveal) : undefined,
1707
+ };
1708
+ },
1709
+ toJSON(message) {
1710
+ const obj = {};
1711
+ if (message.sender !== 0) {
1712
+ obj.sender = transcriptMessageSenderTypeToJSON(message.sender);
1713
+ }
1714
+ if (message.message.length !== 0) {
1715
+ obj.message = base64FromBytes(message.message);
1716
+ }
1717
+ if (message.reveal !== undefined) {
1718
+ obj.reveal = exports.MessageReveal.toJSON(message.reveal);
1719
+ }
1720
+ return obj;
1721
+ },
1722
+ create(base) {
1723
+ return exports.ClaimTunnelRequest_TranscriptMessage.fromPartial(base !== null && base !== void 0 ? base : {});
1724
+ },
1725
+ fromPartial(object) {
1726
+ var _a, _b;
1727
+ const message = createBaseClaimTunnelRequest_TranscriptMessage();
1728
+ message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : 0;
1729
+ message.message = (_b = object.message) !== null && _b !== void 0 ? _b : new Uint8Array(0);
1730
+ message.reveal = (object.reveal !== undefined && object.reveal !== null)
1731
+ ? exports.MessageReveal.fromPartial(object.reveal)
1732
+ : undefined;
1733
+ return message;
1734
+ },
1735
+ };
1736
+ function createBaseClaimTunnelResponse() {
1737
+ return { request: undefined, claim: undefined, error: undefined, signatures: undefined };
1738
+ }
1739
+ exports.ClaimTunnelResponse = {
1740
+ encode(message, writer = new wire_1.BinaryWriter()) {
1741
+ if (message.request !== undefined) {
1742
+ exports.ClaimTunnelRequest.encode(message.request, writer.uint32(10).fork()).join();
1743
+ }
1744
+ if (message.claim !== undefined) {
1745
+ exports.ProviderClaimData.encode(message.claim, writer.uint32(18).fork()).join();
1746
+ }
1747
+ if (message.error !== undefined) {
1748
+ exports.ErrorData.encode(message.error, writer.uint32(26).fork()).join();
1749
+ }
1750
+ if (message.signatures !== undefined) {
1751
+ exports.ClaimTunnelResponse_Signatures.encode(message.signatures, writer.uint32(34).fork()).join();
1752
+ }
1753
+ return writer;
1754
+ },
1755
+ decode(input, length) {
1756
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1757
+ let end = length === undefined ? reader.len : reader.pos + length;
1758
+ const message = createBaseClaimTunnelResponse();
1759
+ while (reader.pos < end) {
1760
+ const tag = reader.uint32();
1761
+ switch (tag >>> 3) {
1762
+ case 1:
1763
+ if (tag !== 10) {
1764
+ break;
1765
+ }
1766
+ message.request = exports.ClaimTunnelRequest.decode(reader, reader.uint32());
1767
+ continue;
1768
+ case 2:
1769
+ if (tag !== 18) {
1770
+ break;
1771
+ }
1772
+ message.claim = exports.ProviderClaimData.decode(reader, reader.uint32());
1773
+ continue;
1774
+ case 3:
1775
+ if (tag !== 26) {
1776
+ break;
1777
+ }
1778
+ message.error = exports.ErrorData.decode(reader, reader.uint32());
1779
+ continue;
1780
+ case 4:
1781
+ if (tag !== 34) {
1782
+ break;
1783
+ }
1784
+ message.signatures = exports.ClaimTunnelResponse_Signatures.decode(reader, reader.uint32());
1785
+ continue;
1786
+ }
1787
+ if ((tag & 7) === 4 || tag === 0) {
1788
+ break;
1789
+ }
1790
+ reader.skip(tag & 7);
1791
+ }
1792
+ return message;
1793
+ },
1794
+ fromJSON(object) {
1795
+ return {
1796
+ request: isSet(object.request) ? exports.ClaimTunnelRequest.fromJSON(object.request) : undefined,
1797
+ claim: isSet(object.claim) ? exports.ProviderClaimData.fromJSON(object.claim) : undefined,
1798
+ error: isSet(object.error) ? exports.ErrorData.fromJSON(object.error) : undefined,
1799
+ signatures: isSet(object.signatures) ? exports.ClaimTunnelResponse_Signatures.fromJSON(object.signatures) : undefined,
1800
+ };
1801
+ },
1802
+ toJSON(message) {
1803
+ const obj = {};
1804
+ if (message.request !== undefined) {
1805
+ obj.request = exports.ClaimTunnelRequest.toJSON(message.request);
1806
+ }
1807
+ if (message.claim !== undefined) {
1808
+ obj.claim = exports.ProviderClaimData.toJSON(message.claim);
1809
+ }
1810
+ if (message.error !== undefined) {
1811
+ obj.error = exports.ErrorData.toJSON(message.error);
1812
+ }
1813
+ if (message.signatures !== undefined) {
1814
+ obj.signatures = exports.ClaimTunnelResponse_Signatures.toJSON(message.signatures);
1815
+ }
1816
+ return obj;
1817
+ },
1818
+ create(base) {
1819
+ return exports.ClaimTunnelResponse.fromPartial(base !== null && base !== void 0 ? base : {});
1820
+ },
1821
+ fromPartial(object) {
1822
+ const message = createBaseClaimTunnelResponse();
1823
+ message.request = (object.request !== undefined && object.request !== null)
1824
+ ? exports.ClaimTunnelRequest.fromPartial(object.request)
1825
+ : undefined;
1826
+ message.claim = (object.claim !== undefined && object.claim !== null)
1827
+ ? exports.ProviderClaimData.fromPartial(object.claim)
1828
+ : undefined;
1829
+ message.error = (object.error !== undefined && object.error !== null)
1830
+ ? exports.ErrorData.fromPartial(object.error)
1831
+ : undefined;
1832
+ message.signatures = (object.signatures !== undefined && object.signatures !== null)
1833
+ ? exports.ClaimTunnelResponse_Signatures.fromPartial(object.signatures)
1834
+ : undefined;
1835
+ return message;
1836
+ },
1837
+ };
1838
+ function createBaseClaimTunnelResponse_Signatures() {
1839
+ return { attestorAddress: "", claimSignature: new Uint8Array(0), resultSignature: new Uint8Array(0) };
1840
+ }
1841
+ exports.ClaimTunnelResponse_Signatures = {
1842
+ encode(message, writer = new wire_1.BinaryWriter()) {
1843
+ if (message.attestorAddress !== "") {
1844
+ writer.uint32(10).string(message.attestorAddress);
1845
+ }
1846
+ if (message.claimSignature.length !== 0) {
1847
+ writer.uint32(18).bytes(message.claimSignature);
1848
+ }
1849
+ if (message.resultSignature.length !== 0) {
1850
+ writer.uint32(26).bytes(message.resultSignature);
1851
+ }
1852
+ return writer;
1853
+ },
1854
+ decode(input, length) {
1855
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1856
+ let end = length === undefined ? reader.len : reader.pos + length;
1857
+ const message = createBaseClaimTunnelResponse_Signatures();
1858
+ while (reader.pos < end) {
1859
+ const tag = reader.uint32();
1860
+ switch (tag >>> 3) {
1861
+ case 1:
1862
+ if (tag !== 10) {
1863
+ break;
1864
+ }
1865
+ message.attestorAddress = reader.string();
1866
+ continue;
1867
+ case 2:
1868
+ if (tag !== 18) {
1869
+ break;
1870
+ }
1871
+ message.claimSignature = reader.bytes();
1872
+ continue;
1873
+ case 3:
1874
+ if (tag !== 26) {
1875
+ break;
1876
+ }
1877
+ message.resultSignature = reader.bytes();
1878
+ continue;
1879
+ }
1880
+ if ((tag & 7) === 4 || tag === 0) {
1881
+ break;
1882
+ }
1883
+ reader.skip(tag & 7);
1884
+ }
1885
+ return message;
1886
+ },
1887
+ fromJSON(object) {
1888
+ return {
1889
+ attestorAddress: isSet(object.attestorAddress) ? globalThis.String(object.attestorAddress) : "",
1890
+ claimSignature: isSet(object.claimSignature) ? bytesFromBase64(object.claimSignature) : new Uint8Array(0),
1891
+ resultSignature: isSet(object.resultSignature) ? bytesFromBase64(object.resultSignature) : new Uint8Array(0),
1892
+ };
1893
+ },
1894
+ toJSON(message) {
1895
+ const obj = {};
1896
+ if (message.attestorAddress !== "") {
1897
+ obj.attestorAddress = message.attestorAddress;
1898
+ }
1899
+ if (message.claimSignature.length !== 0) {
1900
+ obj.claimSignature = base64FromBytes(message.claimSignature);
1901
+ }
1902
+ if (message.resultSignature.length !== 0) {
1903
+ obj.resultSignature = base64FromBytes(message.resultSignature);
1904
+ }
1905
+ return obj;
1906
+ },
1907
+ create(base) {
1908
+ return exports.ClaimTunnelResponse_Signatures.fromPartial(base !== null && base !== void 0 ? base : {});
1909
+ },
1910
+ fromPartial(object) {
1911
+ var _a, _b, _c;
1912
+ const message = createBaseClaimTunnelResponse_Signatures();
1913
+ message.attestorAddress = (_a = object.attestorAddress) !== null && _a !== void 0 ? _a : "";
1914
+ message.claimSignature = (_b = object.claimSignature) !== null && _b !== void 0 ? _b : new Uint8Array(0);
1915
+ message.resultSignature = (_c = object.resultSignature) !== null && _c !== void 0 ? _c : new Uint8Array(0);
1916
+ return message;
1917
+ },
1918
+ };
1919
+ function createBaseRequestClaimOnAvsRequest() {
1920
+ return { chainId: 0, jsonCreateClaimRequest: "", requestSignature: new Uint8Array(0) };
1921
+ }
1922
+ exports.RequestClaimOnAvsRequest = {
1923
+ encode(message, writer = new wire_1.BinaryWriter()) {
1924
+ if (message.chainId !== 0) {
1925
+ writer.uint32(8).uint32(message.chainId);
1926
+ }
1927
+ if (message.jsonCreateClaimRequest !== "") {
1928
+ writer.uint32(18).string(message.jsonCreateClaimRequest);
1929
+ }
1930
+ if (message.requestSignature.length !== 0) {
1931
+ writer.uint32(26).bytes(message.requestSignature);
1932
+ }
1933
+ return writer;
1934
+ },
1935
+ decode(input, length) {
1936
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1937
+ let end = length === undefined ? reader.len : reader.pos + length;
1938
+ const message = createBaseRequestClaimOnAvsRequest();
1939
+ while (reader.pos < end) {
1940
+ const tag = reader.uint32();
1941
+ switch (tag >>> 3) {
1942
+ case 1:
1943
+ if (tag !== 8) {
1944
+ break;
1945
+ }
1946
+ message.chainId = reader.uint32();
1947
+ continue;
1948
+ case 2:
1949
+ if (tag !== 18) {
1950
+ break;
1951
+ }
1952
+ message.jsonCreateClaimRequest = reader.string();
1953
+ continue;
1954
+ case 3:
1955
+ if (tag !== 26) {
1956
+ break;
1957
+ }
1958
+ message.requestSignature = reader.bytes();
1959
+ continue;
1960
+ }
1961
+ if ((tag & 7) === 4 || tag === 0) {
1962
+ break;
1963
+ }
1964
+ reader.skip(tag & 7);
1965
+ }
1966
+ return message;
1967
+ },
1968
+ fromJSON(object) {
1969
+ return {
1970
+ chainId: isSet(object.chainId) ? globalThis.Number(object.chainId) : 0,
1971
+ jsonCreateClaimRequest: isSet(object.jsonCreateClaimRequest)
1972
+ ? globalThis.String(object.jsonCreateClaimRequest)
1973
+ : "",
1974
+ requestSignature: isSet(object.requestSignature) ? bytesFromBase64(object.requestSignature) : new Uint8Array(0),
1975
+ };
1976
+ },
1977
+ toJSON(message) {
1978
+ const obj = {};
1979
+ if (message.chainId !== 0) {
1980
+ obj.chainId = Math.round(message.chainId);
1981
+ }
1982
+ if (message.jsonCreateClaimRequest !== "") {
1983
+ obj.jsonCreateClaimRequest = message.jsonCreateClaimRequest;
1984
+ }
1985
+ if (message.requestSignature.length !== 0) {
1986
+ obj.requestSignature = base64FromBytes(message.requestSignature);
1987
+ }
1988
+ return obj;
1989
+ },
1990
+ create(base) {
1991
+ return exports.RequestClaimOnAvsRequest.fromPartial(base !== null && base !== void 0 ? base : {});
1992
+ },
1993
+ fromPartial(object) {
1994
+ var _a, _b, _c;
1995
+ const message = createBaseRequestClaimOnAvsRequest();
1996
+ message.chainId = (_a = object.chainId) !== null && _a !== void 0 ? _a : 0;
1997
+ message.jsonCreateClaimRequest = (_b = object.jsonCreateClaimRequest) !== null && _b !== void 0 ? _b : "";
1998
+ message.requestSignature = (_c = object.requestSignature) !== null && _c !== void 0 ? _c : new Uint8Array(0);
1999
+ return message;
2000
+ },
2001
+ };
2002
+ function createBaseRequestClaimOnAvsResponse() {
2003
+ return { txHash: "", taskIndex: 0, jsonTask: "" };
2004
+ }
2005
+ exports.RequestClaimOnAvsResponse = {
2006
+ encode(message, writer = new wire_1.BinaryWriter()) {
2007
+ if (message.txHash !== "") {
2008
+ writer.uint32(10).string(message.txHash);
2009
+ }
2010
+ if (message.taskIndex !== 0) {
2011
+ writer.uint32(16).uint32(message.taskIndex);
2012
+ }
2013
+ if (message.jsonTask !== "") {
2014
+ writer.uint32(26).string(message.jsonTask);
2015
+ }
2016
+ return writer;
2017
+ },
2018
+ decode(input, length) {
2019
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2020
+ let end = length === undefined ? reader.len : reader.pos + length;
2021
+ const message = createBaseRequestClaimOnAvsResponse();
2022
+ while (reader.pos < end) {
2023
+ const tag = reader.uint32();
2024
+ switch (tag >>> 3) {
2025
+ case 1:
2026
+ if (tag !== 10) {
2027
+ break;
2028
+ }
2029
+ message.txHash = reader.string();
2030
+ continue;
2031
+ case 2:
2032
+ if (tag !== 16) {
2033
+ break;
2034
+ }
2035
+ message.taskIndex = reader.uint32();
2036
+ continue;
2037
+ case 3:
2038
+ if (tag !== 26) {
2039
+ break;
2040
+ }
2041
+ message.jsonTask = reader.string();
2042
+ continue;
2043
+ }
2044
+ if ((tag & 7) === 4 || tag === 0) {
2045
+ break;
2046
+ }
2047
+ reader.skip(tag & 7);
2048
+ }
2049
+ return message;
2050
+ },
2051
+ fromJSON(object) {
2052
+ return {
2053
+ txHash: isSet(object.txHash) ? globalThis.String(object.txHash) : "",
2054
+ taskIndex: isSet(object.taskIndex) ? globalThis.Number(object.taskIndex) : 0,
2055
+ jsonTask: isSet(object.jsonTask) ? globalThis.String(object.jsonTask) : "",
2056
+ };
2057
+ },
2058
+ toJSON(message) {
2059
+ const obj = {};
2060
+ if (message.txHash !== "") {
2061
+ obj.txHash = message.txHash;
2062
+ }
2063
+ if (message.taskIndex !== 0) {
2064
+ obj.taskIndex = Math.round(message.taskIndex);
2065
+ }
2066
+ if (message.jsonTask !== "") {
2067
+ obj.jsonTask = message.jsonTask;
2068
+ }
2069
+ return obj;
2070
+ },
2071
+ create(base) {
2072
+ return exports.RequestClaimOnAvsResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2073
+ },
2074
+ fromPartial(object) {
2075
+ var _a, _b, _c;
2076
+ const message = createBaseRequestClaimOnAvsResponse();
2077
+ message.txHash = (_a = object.txHash) !== null && _a !== void 0 ? _a : "";
2078
+ message.taskIndex = (_b = object.taskIndex) !== null && _b !== void 0 ? _b : 0;
2079
+ message.jsonTask = (_c = object.jsonTask) !== null && _c !== void 0 ? _c : "";
2080
+ return message;
2081
+ },
2082
+ };
2083
+ function createBaseCompleteClaimOnAvsRequest() {
2084
+ return { chainId: 0, taskIndex: 0, completedTaskJson: "" };
2085
+ }
2086
+ exports.CompleteClaimOnAvsRequest = {
2087
+ encode(message, writer = new wire_1.BinaryWriter()) {
2088
+ if (message.chainId !== 0) {
2089
+ writer.uint32(8).uint32(message.chainId);
2090
+ }
2091
+ if (message.taskIndex !== 0) {
2092
+ writer.uint32(16).uint32(message.taskIndex);
2093
+ }
2094
+ if (message.completedTaskJson !== "") {
2095
+ writer.uint32(26).string(message.completedTaskJson);
2096
+ }
2097
+ return writer;
2098
+ },
2099
+ decode(input, length) {
2100
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2101
+ let end = length === undefined ? reader.len : reader.pos + length;
2102
+ const message = createBaseCompleteClaimOnAvsRequest();
2103
+ while (reader.pos < end) {
2104
+ const tag = reader.uint32();
2105
+ switch (tag >>> 3) {
2106
+ case 1:
2107
+ if (tag !== 8) {
2108
+ break;
2109
+ }
2110
+ message.chainId = reader.uint32();
2111
+ continue;
2112
+ case 2:
2113
+ if (tag !== 16) {
2114
+ break;
2115
+ }
2116
+ message.taskIndex = reader.uint32();
2117
+ continue;
2118
+ case 3:
2119
+ if (tag !== 26) {
2120
+ break;
2121
+ }
2122
+ message.completedTaskJson = reader.string();
2123
+ continue;
2124
+ }
2125
+ if ((tag & 7) === 4 || tag === 0) {
2126
+ break;
2127
+ }
2128
+ reader.skip(tag & 7);
2129
+ }
2130
+ return message;
2131
+ },
2132
+ fromJSON(object) {
2133
+ return {
2134
+ chainId: isSet(object.chainId) ? globalThis.Number(object.chainId) : 0,
2135
+ taskIndex: isSet(object.taskIndex) ? globalThis.Number(object.taskIndex) : 0,
2136
+ completedTaskJson: isSet(object.completedTaskJson) ? globalThis.String(object.completedTaskJson) : "",
2137
+ };
2138
+ },
2139
+ toJSON(message) {
2140
+ const obj = {};
2141
+ if (message.chainId !== 0) {
2142
+ obj.chainId = Math.round(message.chainId);
2143
+ }
2144
+ if (message.taskIndex !== 0) {
2145
+ obj.taskIndex = Math.round(message.taskIndex);
2146
+ }
2147
+ if (message.completedTaskJson !== "") {
2148
+ obj.completedTaskJson = message.completedTaskJson;
2149
+ }
2150
+ return obj;
2151
+ },
2152
+ create(base) {
2153
+ return exports.CompleteClaimOnAvsRequest.fromPartial(base !== null && base !== void 0 ? base : {});
2154
+ },
2155
+ fromPartial(object) {
2156
+ var _a, _b, _c;
2157
+ const message = createBaseCompleteClaimOnAvsRequest();
2158
+ message.chainId = (_a = object.chainId) !== null && _a !== void 0 ? _a : 0;
2159
+ message.taskIndex = (_b = object.taskIndex) !== null && _b !== void 0 ? _b : 0;
2160
+ message.completedTaskJson = (_c = object.completedTaskJson) !== null && _c !== void 0 ? _c : "";
2161
+ return message;
2162
+ },
2163
+ };
2164
+ function createBaseCompleteClaimOnAvsResponse() {
2165
+ return { txHash: "", taskCompletedObjectJson: "" };
2166
+ }
2167
+ exports.CompleteClaimOnAvsResponse = {
2168
+ encode(message, writer = new wire_1.BinaryWriter()) {
2169
+ if (message.txHash !== "") {
2170
+ writer.uint32(10).string(message.txHash);
2171
+ }
2172
+ if (message.taskCompletedObjectJson !== "") {
2173
+ writer.uint32(18).string(message.taskCompletedObjectJson);
2174
+ }
2175
+ return writer;
2176
+ },
2177
+ decode(input, length) {
2178
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2179
+ let end = length === undefined ? reader.len : reader.pos + length;
2180
+ const message = createBaseCompleteClaimOnAvsResponse();
2181
+ while (reader.pos < end) {
2182
+ const tag = reader.uint32();
2183
+ switch (tag >>> 3) {
2184
+ case 1:
2185
+ if (tag !== 10) {
2186
+ break;
2187
+ }
2188
+ message.txHash = reader.string();
2189
+ continue;
2190
+ case 2:
2191
+ if (tag !== 18) {
2192
+ break;
2193
+ }
2194
+ message.taskCompletedObjectJson = reader.string();
2195
+ continue;
2196
+ }
2197
+ if ((tag & 7) === 4 || tag === 0) {
2198
+ break;
2199
+ }
2200
+ reader.skip(tag & 7);
2201
+ }
2202
+ return message;
2203
+ },
2204
+ fromJSON(object) {
2205
+ return {
2206
+ txHash: isSet(object.txHash) ? globalThis.String(object.txHash) : "",
2207
+ taskCompletedObjectJson: isSet(object.taskCompletedObjectJson)
2208
+ ? globalThis.String(object.taskCompletedObjectJson)
2209
+ : "",
2210
+ };
2211
+ },
2212
+ toJSON(message) {
2213
+ const obj = {};
2214
+ if (message.txHash !== "") {
2215
+ obj.txHash = message.txHash;
2216
+ }
2217
+ if (message.taskCompletedObjectJson !== "") {
2218
+ obj.taskCompletedObjectJson = message.taskCompletedObjectJson;
2219
+ }
2220
+ return obj;
2221
+ },
2222
+ create(base) {
2223
+ return exports.CompleteClaimOnAvsResponse.fromPartial(base !== null && base !== void 0 ? base : {});
2224
+ },
2225
+ fromPartial(object) {
2226
+ var _a, _b;
2227
+ const message = createBaseCompleteClaimOnAvsResponse();
2228
+ message.txHash = (_a = object.txHash) !== null && _a !== void 0 ? _a : "";
2229
+ message.taskCompletedObjectJson = (_b = object.taskCompletedObjectJson) !== null && _b !== void 0 ? _b : "";
2230
+ return message;
2231
+ },
2232
+ };
2233
+ function createBaseInitRequest() {
2234
+ return { clientVersion: 0, signatureType: 0 };
2235
+ }
2236
+ exports.InitRequest = {
2237
+ encode(message, writer = new wire_1.BinaryWriter()) {
2238
+ if (message.clientVersion !== 0) {
2239
+ writer.uint32(16).int32(message.clientVersion);
2240
+ }
2241
+ if (message.signatureType !== 0) {
2242
+ writer.uint32(24).int32(message.signatureType);
2243
+ }
2244
+ return writer;
2245
+ },
2246
+ decode(input, length) {
2247
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2248
+ let end = length === undefined ? reader.len : reader.pos + length;
2249
+ const message = createBaseInitRequest();
2250
+ while (reader.pos < end) {
2251
+ const tag = reader.uint32();
2252
+ switch (tag >>> 3) {
2253
+ case 2:
2254
+ if (tag !== 16) {
2255
+ break;
2256
+ }
2257
+ message.clientVersion = reader.int32();
2258
+ continue;
2259
+ case 3:
2260
+ if (tag !== 24) {
2261
+ break;
2262
+ }
2263
+ message.signatureType = reader.int32();
2264
+ continue;
2265
+ }
2266
+ if ((tag & 7) === 4 || tag === 0) {
2267
+ break;
2268
+ }
2269
+ reader.skip(tag & 7);
2270
+ }
2271
+ return message;
2272
+ },
2273
+ fromJSON(object) {
2274
+ return {
2275
+ clientVersion: isSet(object.clientVersion) ? attestorVersionFromJSON(object.clientVersion) : 0,
2276
+ signatureType: isSet(object.signatureType) ? serviceSignatureTypeFromJSON(object.signatureType) : 0,
2277
+ };
2278
+ },
2279
+ toJSON(message) {
2280
+ const obj = {};
2281
+ if (message.clientVersion !== 0) {
2282
+ obj.clientVersion = attestorVersionToJSON(message.clientVersion);
2283
+ }
2284
+ if (message.signatureType !== 0) {
2285
+ obj.signatureType = serviceSignatureTypeToJSON(message.signatureType);
2286
+ }
2287
+ return obj;
2288
+ },
2289
+ create(base) {
2290
+ return exports.InitRequest.fromPartial(base !== null && base !== void 0 ? base : {});
2291
+ },
2292
+ fromPartial(object) {
2293
+ var _a, _b;
2294
+ const message = createBaseInitRequest();
2295
+ message.clientVersion = (_a = object.clientVersion) !== null && _a !== void 0 ? _a : 0;
2296
+ message.signatureType = (_b = object.signatureType) !== null && _b !== void 0 ? _b : 0;
2297
+ return message;
2298
+ },
2299
+ };
2300
+ function createBaseRPCMessage() {
2301
+ return {
2302
+ id: 0,
2303
+ initRequest: undefined,
2304
+ initResponse: undefined,
2305
+ connectionTerminationAlert: undefined,
2306
+ requestError: undefined,
2307
+ createTunnelRequest: undefined,
2308
+ createTunnelResponse: undefined,
2309
+ disconnectTunnelRequest: undefined,
2310
+ disconnectTunnelResponse: undefined,
2311
+ tunnelMessage: undefined,
2312
+ tunnelDisconnectEvent: undefined,
2313
+ claimTunnelRequest: undefined,
2314
+ claimTunnelResponse: undefined,
2315
+ createClaimOnChainRequest: undefined,
2316
+ createClaimOnChainResponse: undefined,
2317
+ completeClaimOnChainRequest: undefined,
2318
+ completeClaimOnChainResponse: undefined,
2319
+ };
2320
+ }
2321
+ exports.RPCMessage = {
2322
+ encode(message, writer = new wire_1.BinaryWriter()) {
2323
+ if (message.id !== 0) {
2324
+ writer.uint32(8).uint64(message.id);
2325
+ }
2326
+ if (message.initRequest !== undefined) {
2327
+ exports.InitRequest.encode(message.initRequest, writer.uint32(18).fork()).join();
2328
+ }
2329
+ if (message.initResponse !== undefined) {
2330
+ exports.Empty.encode(message.initResponse, writer.uint32(26).fork()).join();
2331
+ }
2332
+ if (message.connectionTerminationAlert !== undefined) {
2333
+ exports.ErrorData.encode(message.connectionTerminationAlert, writer.uint32(34).fork()).join();
2334
+ }
2335
+ if (message.requestError !== undefined) {
2336
+ exports.ErrorData.encode(message.requestError, writer.uint32(42).fork()).join();
2337
+ }
2338
+ if (message.createTunnelRequest !== undefined) {
2339
+ exports.CreateTunnelRequest.encode(message.createTunnelRequest, writer.uint32(50).fork()).join();
2340
+ }
2341
+ if (message.createTunnelResponse !== undefined) {
2342
+ exports.Empty.encode(message.createTunnelResponse, writer.uint32(58).fork()).join();
2343
+ }
2344
+ if (message.disconnectTunnelRequest !== undefined) {
2345
+ exports.DisconnectTunnelRequest.encode(message.disconnectTunnelRequest, writer.uint32(66).fork()).join();
2346
+ }
2347
+ if (message.disconnectTunnelResponse !== undefined) {
2348
+ exports.Empty.encode(message.disconnectTunnelResponse, writer.uint32(74).fork()).join();
2349
+ }
2350
+ if (message.tunnelMessage !== undefined) {
2351
+ exports.TunnelMessage.encode(message.tunnelMessage, writer.uint32(82).fork()).join();
2352
+ }
2353
+ if (message.tunnelDisconnectEvent !== undefined) {
2354
+ exports.TunnelDisconnectEvent.encode(message.tunnelDisconnectEvent, writer.uint32(90).fork()).join();
2355
+ }
2356
+ if (message.claimTunnelRequest !== undefined) {
2357
+ exports.ClaimTunnelRequest.encode(message.claimTunnelRequest, writer.uint32(98).fork()).join();
2358
+ }
2359
+ if (message.claimTunnelResponse !== undefined) {
2360
+ exports.ClaimTunnelResponse.encode(message.claimTunnelResponse, writer.uint32(106).fork()).join();
2361
+ }
2362
+ if (message.createClaimOnChainRequest !== undefined) {
2363
+ exports.RequestClaimOnAvsRequest.encode(message.createClaimOnChainRequest, writer.uint32(114).fork()).join();
2364
+ }
2365
+ if (message.createClaimOnChainResponse !== undefined) {
2366
+ exports.RequestClaimOnAvsResponse.encode(message.createClaimOnChainResponse, writer.uint32(122).fork()).join();
2367
+ }
2368
+ if (message.completeClaimOnChainRequest !== undefined) {
2369
+ exports.CompleteClaimOnAvsRequest.encode(message.completeClaimOnChainRequest, writer.uint32(130).fork()).join();
2370
+ }
2371
+ if (message.completeClaimOnChainResponse !== undefined) {
2372
+ exports.CompleteClaimOnAvsResponse.encode(message.completeClaimOnChainResponse, writer.uint32(138).fork()).join();
2373
+ }
2374
+ return writer;
2375
+ },
2376
+ decode(input, length) {
2377
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2378
+ let end = length === undefined ? reader.len : reader.pos + length;
2379
+ const message = createBaseRPCMessage();
2380
+ while (reader.pos < end) {
2381
+ const tag = reader.uint32();
2382
+ switch (tag >>> 3) {
2383
+ case 1:
2384
+ if (tag !== 8) {
2385
+ break;
2386
+ }
2387
+ message.id = longToNumber(reader.uint64());
2388
+ continue;
2389
+ case 2:
2390
+ if (tag !== 18) {
2391
+ break;
2392
+ }
2393
+ message.initRequest = exports.InitRequest.decode(reader, reader.uint32());
2394
+ continue;
2395
+ case 3:
2396
+ if (tag !== 26) {
2397
+ break;
2398
+ }
2399
+ message.initResponse = exports.Empty.decode(reader, reader.uint32());
2400
+ continue;
2401
+ case 4:
2402
+ if (tag !== 34) {
2403
+ break;
2404
+ }
2405
+ message.connectionTerminationAlert = exports.ErrorData.decode(reader, reader.uint32());
2406
+ continue;
2407
+ case 5:
2408
+ if (tag !== 42) {
2409
+ break;
2410
+ }
2411
+ message.requestError = exports.ErrorData.decode(reader, reader.uint32());
2412
+ continue;
2413
+ case 6:
2414
+ if (tag !== 50) {
2415
+ break;
2416
+ }
2417
+ message.createTunnelRequest = exports.CreateTunnelRequest.decode(reader, reader.uint32());
2418
+ continue;
2419
+ case 7:
2420
+ if (tag !== 58) {
2421
+ break;
2422
+ }
2423
+ message.createTunnelResponse = exports.Empty.decode(reader, reader.uint32());
2424
+ continue;
2425
+ case 8:
2426
+ if (tag !== 66) {
2427
+ break;
2428
+ }
2429
+ message.disconnectTunnelRequest = exports.DisconnectTunnelRequest.decode(reader, reader.uint32());
2430
+ continue;
2431
+ case 9:
2432
+ if (tag !== 74) {
2433
+ break;
2434
+ }
2435
+ message.disconnectTunnelResponse = exports.Empty.decode(reader, reader.uint32());
2436
+ continue;
2437
+ case 10:
2438
+ if (tag !== 82) {
2439
+ break;
2440
+ }
2441
+ message.tunnelMessage = exports.TunnelMessage.decode(reader, reader.uint32());
2442
+ continue;
2443
+ case 11:
2444
+ if (tag !== 90) {
2445
+ break;
2446
+ }
2447
+ message.tunnelDisconnectEvent = exports.TunnelDisconnectEvent.decode(reader, reader.uint32());
2448
+ continue;
2449
+ case 12:
2450
+ if (tag !== 98) {
2451
+ break;
2452
+ }
2453
+ message.claimTunnelRequest = exports.ClaimTunnelRequest.decode(reader, reader.uint32());
2454
+ continue;
2455
+ case 13:
2456
+ if (tag !== 106) {
2457
+ break;
2458
+ }
2459
+ message.claimTunnelResponse = exports.ClaimTunnelResponse.decode(reader, reader.uint32());
2460
+ continue;
2461
+ case 14:
2462
+ if (tag !== 114) {
2463
+ break;
2464
+ }
2465
+ message.createClaimOnChainRequest = exports.RequestClaimOnAvsRequest.decode(reader, reader.uint32());
2466
+ continue;
2467
+ case 15:
2468
+ if (tag !== 122) {
2469
+ break;
2470
+ }
2471
+ message.createClaimOnChainResponse = exports.RequestClaimOnAvsResponse.decode(reader, reader.uint32());
2472
+ continue;
2473
+ case 16:
2474
+ if (tag !== 130) {
2475
+ break;
2476
+ }
2477
+ message.completeClaimOnChainRequest = exports.CompleteClaimOnAvsRequest.decode(reader, reader.uint32());
2478
+ continue;
2479
+ case 17:
2480
+ if (tag !== 138) {
2481
+ break;
2482
+ }
2483
+ message.completeClaimOnChainResponse = exports.CompleteClaimOnAvsResponse.decode(reader, reader.uint32());
2484
+ continue;
2485
+ }
2486
+ if ((tag & 7) === 4 || tag === 0) {
2487
+ break;
2488
+ }
2489
+ reader.skip(tag & 7);
2490
+ }
2491
+ return message;
2492
+ },
2493
+ fromJSON(object) {
2494
+ return {
2495
+ id: isSet(object.id) ? globalThis.Number(object.id) : 0,
2496
+ initRequest: isSet(object.initRequest) ? exports.InitRequest.fromJSON(object.initRequest) : undefined,
2497
+ initResponse: isSet(object.initResponse) ? exports.Empty.fromJSON(object.initResponse) : undefined,
2498
+ connectionTerminationAlert: isSet(object.connectionTerminationAlert)
2499
+ ? exports.ErrorData.fromJSON(object.connectionTerminationAlert)
2500
+ : undefined,
2501
+ requestError: isSet(object.requestError) ? exports.ErrorData.fromJSON(object.requestError) : undefined,
2502
+ createTunnelRequest: isSet(object.createTunnelRequest)
2503
+ ? exports.CreateTunnelRequest.fromJSON(object.createTunnelRequest)
2504
+ : undefined,
2505
+ createTunnelResponse: isSet(object.createTunnelResponse)
2506
+ ? exports.Empty.fromJSON(object.createTunnelResponse)
2507
+ : undefined,
2508
+ disconnectTunnelRequest: isSet(object.disconnectTunnelRequest)
2509
+ ? exports.DisconnectTunnelRequest.fromJSON(object.disconnectTunnelRequest)
2510
+ : undefined,
2511
+ disconnectTunnelResponse: isSet(object.disconnectTunnelResponse)
2512
+ ? exports.Empty.fromJSON(object.disconnectTunnelResponse)
2513
+ : undefined,
2514
+ tunnelMessage: isSet(object.tunnelMessage) ? exports.TunnelMessage.fromJSON(object.tunnelMessage) : undefined,
2515
+ tunnelDisconnectEvent: isSet(object.tunnelDisconnectEvent)
2516
+ ? exports.TunnelDisconnectEvent.fromJSON(object.tunnelDisconnectEvent)
2517
+ : undefined,
2518
+ claimTunnelRequest: isSet(object.claimTunnelRequest)
2519
+ ? exports.ClaimTunnelRequest.fromJSON(object.claimTunnelRequest)
2520
+ : undefined,
2521
+ claimTunnelResponse: isSet(object.claimTunnelResponse)
2522
+ ? exports.ClaimTunnelResponse.fromJSON(object.claimTunnelResponse)
2523
+ : undefined,
2524
+ createClaimOnChainRequest: isSet(object.createClaimOnChainRequest)
2525
+ ? exports.RequestClaimOnAvsRequest.fromJSON(object.createClaimOnChainRequest)
2526
+ : undefined,
2527
+ createClaimOnChainResponse: isSet(object.createClaimOnChainResponse)
2528
+ ? exports.RequestClaimOnAvsResponse.fromJSON(object.createClaimOnChainResponse)
2529
+ : undefined,
2530
+ completeClaimOnChainRequest: isSet(object.completeClaimOnChainRequest)
2531
+ ? exports.CompleteClaimOnAvsRequest.fromJSON(object.completeClaimOnChainRequest)
2532
+ : undefined,
2533
+ completeClaimOnChainResponse: isSet(object.completeClaimOnChainResponse)
2534
+ ? exports.CompleteClaimOnAvsResponse.fromJSON(object.completeClaimOnChainResponse)
2535
+ : undefined,
2536
+ };
2537
+ },
2538
+ toJSON(message) {
2539
+ const obj = {};
2540
+ if (message.id !== 0) {
2541
+ obj.id = Math.round(message.id);
2542
+ }
2543
+ if (message.initRequest !== undefined) {
2544
+ obj.initRequest = exports.InitRequest.toJSON(message.initRequest);
2545
+ }
2546
+ if (message.initResponse !== undefined) {
2547
+ obj.initResponse = exports.Empty.toJSON(message.initResponse);
2548
+ }
2549
+ if (message.connectionTerminationAlert !== undefined) {
2550
+ obj.connectionTerminationAlert = exports.ErrorData.toJSON(message.connectionTerminationAlert);
2551
+ }
2552
+ if (message.requestError !== undefined) {
2553
+ obj.requestError = exports.ErrorData.toJSON(message.requestError);
2554
+ }
2555
+ if (message.createTunnelRequest !== undefined) {
2556
+ obj.createTunnelRequest = exports.CreateTunnelRequest.toJSON(message.createTunnelRequest);
2557
+ }
2558
+ if (message.createTunnelResponse !== undefined) {
2559
+ obj.createTunnelResponse = exports.Empty.toJSON(message.createTunnelResponse);
2560
+ }
2561
+ if (message.disconnectTunnelRequest !== undefined) {
2562
+ obj.disconnectTunnelRequest = exports.DisconnectTunnelRequest.toJSON(message.disconnectTunnelRequest);
2563
+ }
2564
+ if (message.disconnectTunnelResponse !== undefined) {
2565
+ obj.disconnectTunnelResponse = exports.Empty.toJSON(message.disconnectTunnelResponse);
2566
+ }
2567
+ if (message.tunnelMessage !== undefined) {
2568
+ obj.tunnelMessage = exports.TunnelMessage.toJSON(message.tunnelMessage);
2569
+ }
2570
+ if (message.tunnelDisconnectEvent !== undefined) {
2571
+ obj.tunnelDisconnectEvent = exports.TunnelDisconnectEvent.toJSON(message.tunnelDisconnectEvent);
2572
+ }
2573
+ if (message.claimTunnelRequest !== undefined) {
2574
+ obj.claimTunnelRequest = exports.ClaimTunnelRequest.toJSON(message.claimTunnelRequest);
2575
+ }
2576
+ if (message.claimTunnelResponse !== undefined) {
2577
+ obj.claimTunnelResponse = exports.ClaimTunnelResponse.toJSON(message.claimTunnelResponse);
2578
+ }
2579
+ if (message.createClaimOnChainRequest !== undefined) {
2580
+ obj.createClaimOnChainRequest = exports.RequestClaimOnAvsRequest.toJSON(message.createClaimOnChainRequest);
2581
+ }
2582
+ if (message.createClaimOnChainResponse !== undefined) {
2583
+ obj.createClaimOnChainResponse = exports.RequestClaimOnAvsResponse.toJSON(message.createClaimOnChainResponse);
2584
+ }
2585
+ if (message.completeClaimOnChainRequest !== undefined) {
2586
+ obj.completeClaimOnChainRequest = exports.CompleteClaimOnAvsRequest.toJSON(message.completeClaimOnChainRequest);
2587
+ }
2588
+ if (message.completeClaimOnChainResponse !== undefined) {
2589
+ obj.completeClaimOnChainResponse = exports.CompleteClaimOnAvsResponse.toJSON(message.completeClaimOnChainResponse);
2590
+ }
2591
+ return obj;
2592
+ },
2593
+ create(base) {
2594
+ return exports.RPCMessage.fromPartial(base !== null && base !== void 0 ? base : {});
2595
+ },
2596
+ fromPartial(object) {
2597
+ var _a;
2598
+ const message = createBaseRPCMessage();
2599
+ message.id = (_a = object.id) !== null && _a !== void 0 ? _a : 0;
2600
+ message.initRequest = (object.initRequest !== undefined && object.initRequest !== null)
2601
+ ? exports.InitRequest.fromPartial(object.initRequest)
2602
+ : undefined;
2603
+ message.initResponse = (object.initResponse !== undefined && object.initResponse !== null)
2604
+ ? exports.Empty.fromPartial(object.initResponse)
2605
+ : undefined;
2606
+ message.connectionTerminationAlert =
2607
+ (object.connectionTerminationAlert !== undefined && object.connectionTerminationAlert !== null)
2608
+ ? exports.ErrorData.fromPartial(object.connectionTerminationAlert)
2609
+ : undefined;
2610
+ message.requestError = (object.requestError !== undefined && object.requestError !== null)
2611
+ ? exports.ErrorData.fromPartial(object.requestError)
2612
+ : undefined;
2613
+ message.createTunnelRequest = (object.createTunnelRequest !== undefined && object.createTunnelRequest !== null)
2614
+ ? exports.CreateTunnelRequest.fromPartial(object.createTunnelRequest)
2615
+ : undefined;
2616
+ message.createTunnelResponse = (object.createTunnelResponse !== undefined && object.createTunnelResponse !== null)
2617
+ ? exports.Empty.fromPartial(object.createTunnelResponse)
2618
+ : undefined;
2619
+ message.disconnectTunnelRequest =
2620
+ (object.disconnectTunnelRequest !== undefined && object.disconnectTunnelRequest !== null)
2621
+ ? exports.DisconnectTunnelRequest.fromPartial(object.disconnectTunnelRequest)
2622
+ : undefined;
2623
+ message.disconnectTunnelResponse =
2624
+ (object.disconnectTunnelResponse !== undefined && object.disconnectTunnelResponse !== null)
2625
+ ? exports.Empty.fromPartial(object.disconnectTunnelResponse)
2626
+ : undefined;
2627
+ message.tunnelMessage = (object.tunnelMessage !== undefined && object.tunnelMessage !== null)
2628
+ ? exports.TunnelMessage.fromPartial(object.tunnelMessage)
2629
+ : undefined;
2630
+ message.tunnelDisconnectEvent =
2631
+ (object.tunnelDisconnectEvent !== undefined && object.tunnelDisconnectEvent !== null)
2632
+ ? exports.TunnelDisconnectEvent.fromPartial(object.tunnelDisconnectEvent)
2633
+ : undefined;
2634
+ message.claimTunnelRequest = (object.claimTunnelRequest !== undefined && object.claimTunnelRequest !== null)
2635
+ ? exports.ClaimTunnelRequest.fromPartial(object.claimTunnelRequest)
2636
+ : undefined;
2637
+ message.claimTunnelResponse = (object.claimTunnelResponse !== undefined && object.claimTunnelResponse !== null)
2638
+ ? exports.ClaimTunnelResponse.fromPartial(object.claimTunnelResponse)
2639
+ : undefined;
2640
+ message.createClaimOnChainRequest =
2641
+ (object.createClaimOnChainRequest !== undefined && object.createClaimOnChainRequest !== null)
2642
+ ? exports.RequestClaimOnAvsRequest.fromPartial(object.createClaimOnChainRequest)
2643
+ : undefined;
2644
+ message.createClaimOnChainResponse =
2645
+ (object.createClaimOnChainResponse !== undefined && object.createClaimOnChainResponse !== null)
2646
+ ? exports.RequestClaimOnAvsResponse.fromPartial(object.createClaimOnChainResponse)
2647
+ : undefined;
2648
+ message.completeClaimOnChainRequest =
2649
+ (object.completeClaimOnChainRequest !== undefined && object.completeClaimOnChainRequest !== null)
2650
+ ? exports.CompleteClaimOnAvsRequest.fromPartial(object.completeClaimOnChainRequest)
2651
+ : undefined;
2652
+ message.completeClaimOnChainResponse =
2653
+ (object.completeClaimOnChainResponse !== undefined && object.completeClaimOnChainResponse !== null)
2654
+ ? exports.CompleteClaimOnAvsResponse.fromPartial(object.completeClaimOnChainResponse)
2655
+ : undefined;
2656
+ return message;
2657
+ },
2658
+ };
2659
+ function createBaseRPCMessages() {
2660
+ return { messages: [] };
2661
+ }
2662
+ exports.RPCMessages = {
2663
+ encode(message, writer = new wire_1.BinaryWriter()) {
2664
+ for (const v of message.messages) {
2665
+ exports.RPCMessage.encode(v, writer.uint32(10).fork()).join();
2666
+ }
2667
+ return writer;
2668
+ },
2669
+ decode(input, length) {
2670
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2671
+ let end = length === undefined ? reader.len : reader.pos + length;
2672
+ const message = createBaseRPCMessages();
2673
+ while (reader.pos < end) {
2674
+ const tag = reader.uint32();
2675
+ switch (tag >>> 3) {
2676
+ case 1:
2677
+ if (tag !== 10) {
2678
+ break;
2679
+ }
2680
+ message.messages.push(exports.RPCMessage.decode(reader, reader.uint32()));
2681
+ continue;
2682
+ }
2683
+ if ((tag & 7) === 4 || tag === 0) {
2684
+ break;
2685
+ }
2686
+ reader.skip(tag & 7);
2687
+ }
2688
+ return message;
2689
+ },
2690
+ fromJSON(object) {
2691
+ return {
2692
+ messages: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.messages)
2693
+ ? object.messages.map((e) => exports.RPCMessage.fromJSON(e))
2694
+ : [],
2695
+ };
2696
+ },
2697
+ toJSON(message) {
2698
+ var _a;
2699
+ const obj = {};
2700
+ if ((_a = message.messages) === null || _a === void 0 ? void 0 : _a.length) {
2701
+ obj.messages = message.messages.map((e) => exports.RPCMessage.toJSON(e));
2702
+ }
2703
+ return obj;
2704
+ },
2705
+ create(base) {
2706
+ return exports.RPCMessages.fromPartial(base !== null && base !== void 0 ? base : {});
2707
+ },
2708
+ fromPartial(object) {
2709
+ var _a;
2710
+ const message = createBaseRPCMessages();
2711
+ message.messages = ((_a = object.messages) === null || _a === void 0 ? void 0 : _a.map((e) => exports.RPCMessage.fromPartial(e))) || [];
2712
+ return message;
2713
+ },
2714
+ };
2715
+ function bytesFromBase64(b64) {
2716
+ if (globalThis.Buffer) {
2717
+ return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
2718
+ }
2719
+ else {
2720
+ const bin = globalThis.atob(b64);
2721
+ const arr = new Uint8Array(bin.length);
2722
+ for (let i = 0; i < bin.length; ++i) {
2723
+ arr[i] = bin.charCodeAt(i);
2724
+ }
2725
+ return arr;
2726
+ }
2727
+ }
2728
+ function base64FromBytes(arr) {
2729
+ if (globalThis.Buffer) {
2730
+ return globalThis.Buffer.from(arr).toString("base64");
2731
+ }
2732
+ else {
2733
+ const bin = [];
2734
+ arr.forEach((byte) => {
2735
+ bin.push(globalThis.String.fromCharCode(byte));
2736
+ });
2737
+ return globalThis.btoa(bin.join(""));
2738
+ }
2739
+ }
2740
+ function longToNumber(int64) {
2741
+ const num = globalThis.Number(int64.toString());
2742
+ if (num > globalThis.Number.MAX_SAFE_INTEGER) {
2743
+ throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
2744
+ }
2745
+ if (num < globalThis.Number.MIN_SAFE_INTEGER) {
2746
+ throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
2747
+ }
2748
+ return num;
2749
+ }
2750
+ function isObject(value) {
2751
+ return typeof value === "object" && value !== null;
2752
+ }
2753
+ function isSet(value) {
2754
+ return value !== null && value !== undefined;
2755
+ }
2756
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3RvL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0RBQXNEO0FBQ3RELFlBQVk7QUFDWixnQ0FBZ0M7QUFDaEMsaUNBQWlDO0FBQ2pDLG9CQUFvQjs7O0FBY3BCLGtGQWdCQztBQUVELDhFQVlDO0FBYUQsb0VBYUM7QUFFRCxnRUFVQztBQVVELDBEQW1CQztBQUVELHNEQWNDO0FBK0JELDhDQStCQztBQUVELDBDQXNCQztBQVFELHNEQWFDO0FBRUQsa0RBVUM7QUFwUEQsb0JBQW9CO0FBQ3BCLGtEQUFxRTtBQUV4RCxRQUFBLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQztBQUVsRCxJQUFZLDJCQUtYO0FBTEQsV0FBWSwyQkFBMkI7SUFDckMsaUpBQTBDLENBQUE7SUFDMUMsK0lBQXlDLENBQUE7SUFDekMsK0lBQXlDLENBQUE7SUFDekMsOEZBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLDJCQUEyQiwyQ0FBM0IsMkJBQTJCLFFBS3RDO0FBRUQsU0FBZ0IsbUNBQW1DLENBQUMsTUFBVztJQUM3RCxRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQ2YsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLHdDQUF3QztZQUMzQyxPQUFPLDJCQUEyQixDQUFDLHNDQUFzQyxDQUFDO1FBQzVFLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyx1Q0FBdUM7WUFDMUMsT0FBTywyQkFBMkIsQ0FBQyxxQ0FBcUMsQ0FBQztRQUMzRSxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssdUNBQXVDO1lBQzFDLE9BQU8sMkJBQTJCLENBQUMscUNBQXFDLENBQUM7UUFDM0UsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNSLEtBQUssY0FBYyxDQUFDO1FBQ3BCO1lBQ0UsT0FBTywyQkFBMkIsQ0FBQyxZQUFZLENBQUM7SUFDcEQsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFnQixpQ0FBaUMsQ0FBQyxNQUFtQztJ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QUssRUFBRSxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFD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