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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/LICENSE +660 -660
  2. package/README.md +1 -2
  3. package/package.json +72 -60
  4. package/lib/avs/abis/avsDirectoryABI.d.ts +0 -60
  5. package/lib/avs/abis/avsDirectoryABI.js +0 -344
  6. package/lib/avs/abis/delegationABI.d.ts +0 -126
  7. package/lib/avs/abis/delegationABI.js +0 -5
  8. package/lib/avs/abis/registryABI.d.ts +0 -136
  9. package/lib/avs/abis/registryABI.js +0 -729
  10. package/lib/avs/client/create-claim-on-avs.d.ts +0 -12
  11. package/lib/avs/client/create-claim-on-avs.js +0 -147
  12. package/lib/avs/config.d.ts +0 -7
  13. package/lib/avs/config.js +0 -24
  14. package/lib/avs/contracts/ReclaimServiceManager.d.ts +0 -697
  15. package/lib/avs/contracts/ReclaimServiceManager.js +0 -3
  16. package/lib/avs/contracts/common.d.ts +0 -21
  17. package/lib/avs/contracts/common.js +0 -3
  18. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +0 -888
  19. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1174
  20. package/lib/avs/contracts/factories/index.d.ts +0 -1
  21. package/lib/avs/contracts/factories/index.js +0 -9
  22. package/lib/avs/contracts/index.d.ts +0 -3
  23. package/lib/avs/contracts/index.js +0 -40
  24. package/lib/avs/tests/test.operator.d.ts +0 -11
  25. package/lib/avs/tests/test.operator.js +0 -313
  26. package/lib/avs/tests/utils.d.ts +0 -2
  27. package/lib/avs/tests/utils.js +0 -50
  28. package/lib/avs/types/index.d.ts +0 -55
  29. package/lib/avs/types/index.js +0 -3
  30. package/lib/avs/utils/contracts.d.ts +0 -21
  31. package/lib/avs/utils/contracts.js +0 -38
  32. package/lib/avs/utils/register.d.ts +0 -27
  33. package/lib/avs/utils/register.js +0 -82
  34. package/lib/avs/utils/tasks.d.ts +0 -22
  35. package/lib/avs/utils/tasks.js +0 -45
  36. package/lib/client/create-claim.d.ts +0 -5
  37. package/lib/client/create-claim.js +0 -424
  38. package/lib/client/index.d.ts +0 -3
  39. package/lib/client/index.js +0 -20
  40. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +0 -16
  41. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -60
  42. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +0 -25
  43. package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -135
  44. package/lib/client/utils/attestor-pool.d.ts +0 -6
  45. package/lib/client/utils/attestor-pool.js +0 -28
  46. package/lib/client/utils/client-socket.d.ts +0 -11
  47. package/lib/client/utils/client-socket.js +0 -100
  48. package/lib/client/utils/message-handler.d.ts +0 -4
  49. package/lib/client/utils/message-handler.js +0 -94
  50. package/lib/config/index.d.ts +0 -28
  51. package/lib/config/index.js +0 -39
  52. package/lib/index.d.ts +0 -10
  53. package/lib/index.js +0 -50
  54. package/lib/mechain/abis/governanceABI.d.ts +0 -50
  55. package/lib/mechain/abis/governanceABI.js +0 -462
  56. package/lib/mechain/abis/taskABI.d.ts +0 -157
  57. package/lib/mechain/abis/taskABI.js +0 -513
  58. package/lib/mechain/client/create-claim-on-mechain.d.ts +0 -10
  59. package/lib/mechain/client/create-claim-on-mechain.js +0 -32
  60. package/lib/mechain/client/index.d.ts +0 -1
  61. package/lib/mechain/client/index.js +0 -18
  62. package/lib/mechain/constants/index.d.ts +0 -3
  63. package/lib/mechain/constants/index.js +0 -7
  64. package/lib/mechain/index.d.ts +0 -2
  65. package/lib/mechain/index.js +0 -19
  66. package/lib/mechain/types/index.d.ts +0 -23
  67. package/lib/mechain/types/index.js +0 -3
  68. package/lib/proto/api.d.ts +0 -508
  69. package/lib/proto/api.js +0 -3700
  70. package/lib/providers/http/index.d.ts +0 -3
  71. package/lib/providers/http/index.js +0 -613
  72. package/lib/providers/http/utils.d.ts +0 -74
  73. package/lib/providers/http/utils.js +0 -360
  74. package/lib/providers/index.d.ts +0 -4
  75. package/lib/providers/index.js +0 -11
  76. package/lib/scripts/check-avs-registration.d.ts +0 -1
  77. package/lib/scripts/check-avs-registration.js +0 -29
  78. package/lib/scripts/generate-provider-types.d.ts +0 -5
  79. package/lib/scripts/generate-provider-types.js +0 -82
  80. package/lib/scripts/generate-receipt.d.ts +0 -9
  81. package/lib/scripts/generate-receipt.js +0 -90
  82. package/lib/scripts/generate-toprf-keys.d.ts +0 -1
  83. package/lib/scripts/generate-toprf-keys.js +0 -23
  84. package/lib/scripts/register-avs-operator.d.ts +0 -1
  85. package/lib/scripts/register-avs-operator.js +0 -7
  86. package/lib/scripts/start-server.d.ts +0 -1
  87. package/lib/scripts/start-server.js +0 -13
  88. package/lib/scripts/update-avs-metadata.d.ts +0 -1
  89. package/lib/scripts/update-avs-metadata.js +0 -22
  90. package/lib/scripts/utils.d.ts +0 -1
  91. package/lib/scripts/utils.js +0 -11
  92. package/lib/scripts/verify-root-ca.d.ts +0 -1
  93. package/lib/scripts/verify-root-ca.js +0 -51
  94. package/lib/scripts/whitelist-operator.d.ts +0 -1
  95. package/lib/scripts/whitelist-operator.js +0 -18
  96. package/lib/server/create-server.d.ts +0 -7
  97. package/lib/server/create-server.js +0 -92
  98. package/lib/server/handlers/claimTunnel.d.ts +0 -2
  99. package/lib/server/handlers/claimTunnel.js +0 -78
  100. package/lib/server/handlers/completeClaimOnChain.d.ts +0 -2
  101. package/lib/server/handlers/completeClaimOnChain.js +0 -28
  102. package/lib/server/handlers/createClaimOnChain.d.ts +0 -2
  103. package/lib/server/handlers/createClaimOnChain.js +0 -31
  104. package/lib/server/handlers/createTaskOnMechain.d.ts +0 -2
  105. package/lib/server/handlers/createTaskOnMechain.js +0 -52
  106. package/lib/server/handlers/createTunnel.d.ts +0 -2
  107. package/lib/server/handlers/createTunnel.js +0 -101
  108. package/lib/server/handlers/disconnectTunnel.d.ts +0 -2
  109. package/lib/server/handlers/disconnectTunnel.js +0 -10
  110. package/lib/server/handlers/index.d.ts +0 -4
  111. package/lib/server/handlers/index.js +0 -22
  112. package/lib/server/handlers/init.d.ts +0 -2
  113. package/lib/server/handlers/init.js +0 -36
  114. package/lib/server/handlers/toprf.d.ts +0 -2
  115. package/lib/server/handlers/toprf.js +0 -21
  116. package/lib/server/index.d.ts +0 -4
  117. package/lib/server/index.js +0 -21
  118. package/lib/server/socket.d.ts +0 -13
  119. package/lib/server/socket.js +0 -114
  120. package/lib/server/tunnels/make-tcp-tunnel.d.ts +0 -20
  121. package/lib/server/tunnels/make-tcp-tunnel.js +0 -175
  122. package/lib/server/utils/apm.d.ts +0 -11
  123. package/lib/server/utils/apm.js +0 -43
  124. package/lib/server/utils/assert-valid-claim-request.d.ts +0 -30
  125. package/lib/server/utils/assert-valid-claim-request.js +0 -200
  126. package/lib/server/utils/config-env.d.ts +0 -1
  127. package/lib/server/utils/config-env.js +0 -7
  128. package/lib/server/utils/dns.d.ts +0 -1
  129. package/lib/server/utils/dns.js +0 -22
  130. package/lib/server/utils/generics.d.ts +0 -22
  131. package/lib/server/utils/generics.js +0 -59
  132. package/lib/server/utils/iso.d.ts +0 -1
  133. package/lib/server/utils/iso.js +0 -260
  134. package/lib/server/utils/keep-alive.d.ts +0 -7
  135. package/lib/server/utils/keep-alive.js +0 -42
  136. package/lib/server/utils/process-handshake.d.ts +0 -13
  137. package/lib/server/utils/process-handshake.js +0 -191
  138. package/lib/tests/describe-with-server.d.ts +0 -20
  139. package/lib/tests/describe-with-server.js +0 -64
  140. package/lib/tests/mock-provider-server.d.ts +0 -13
  141. package/lib/tests/mock-provider-server.js +0 -65
  142. package/lib/tests/mocks.d.ts +0 -4
  143. package/lib/tests/mocks.js +0 -23
  144. package/lib/tests/test.auth.d.ts +0 -1
  145. package/lib/tests/test.auth.js +0 -75
  146. package/lib/tests/test.bgp-listener.d.ts +0 -1
  147. package/lib/tests/test.bgp-listener.js +0 -169
  148. package/lib/tests/test.claim-creation.d.ts +0 -1
  149. package/lib/tests/test.claim-creation.js +0 -280
  150. package/lib/tests/test.http-parser.d.ts +0 -1
  151. package/lib/tests/test.http-parser.js +0 -120
  152. package/lib/tests/test.http-provider-utils.d.ts +0 -1
  153. package/lib/tests/test.http-provider-utils.js +0 -2416
  154. package/lib/tests/test.http-provider.d.ts +0 -1
  155. package/lib/tests/test.http-provider.js +0 -114
  156. package/lib/tests/test.rpc-communication.d.ts +0 -1
  157. package/lib/tests/test.rpc-communication.js +0 -64
  158. package/lib/tests/test.rpc-tunnel.d.ts +0 -1
  159. package/lib/tests/test.rpc-tunnel.js +0 -172
  160. package/lib/tests/test.signatures.d.ts +0 -1
  161. package/lib/tests/test.signatures.js +0 -24
  162. package/lib/tests/test.tcp-tunnel.d.ts +0 -1
  163. package/lib/tests/test.tcp-tunnel.js +0 -64
  164. package/lib/tests/test.zk.d.ts +0 -1
  165. package/lib/tests/test.zk.js +0 -337
  166. package/lib/tests/utils.d.ts +0 -18
  167. package/lib/tests/utils.js +0 -64
  168. package/lib/types/bgp.d.ts +0 -11
  169. package/lib/types/bgp.js +0 -3
  170. package/lib/types/claims.d.ts +0 -73
  171. package/lib/types/claims.js +0 -3
  172. package/lib/types/client.d.ts +0 -163
  173. package/lib/types/client.js +0 -3
  174. package/lib/types/general.d.ts +0 -51
  175. package/lib/types/general.js +0 -3
  176. package/lib/types/handlers.d.ts +0 -10
  177. package/lib/types/handlers.js +0 -3
  178. package/lib/types/index.d.ts +0 -10
  179. package/lib/types/index.js +0 -27
  180. package/lib/types/providers.d.ts +0 -150
  181. package/lib/types/providers.gen.d.ts +0 -429
  182. package/lib/types/providers.gen.js +0 -14
  183. package/lib/types/providers.js +0 -3
  184. package/lib/types/rpc.d.ts +0 -35
  185. package/lib/types/rpc.js +0 -3
  186. package/lib/types/signatures.d.ts +0 -28
  187. package/lib/types/signatures.js +0 -3
  188. package/lib/types/tunnel.d.ts +0 -18
  189. package/lib/types/tunnel.js +0 -3
  190. package/lib/types/zk.d.ts +0 -23
  191. package/lib/types/zk.js +0 -3
  192. package/lib/utils/atomic-operations.d.ts +0 -24
  193. package/lib/utils/atomic-operations.js +0 -65
  194. package/lib/utils/auth.d.ts +0 -7
  195. package/lib/utils/auth.js +0 -64
  196. package/lib/utils/b64-json.d.ts +0 -2
  197. package/lib/utils/b64-json.js +0 -23
  198. package/lib/utils/benchmark.d.ts +0 -1
  199. package/lib/utils/benchmark.js +0 -70
  200. package/lib/utils/bgp-listener.d.ts +0 -7
  201. package/lib/utils/bgp-listener.js +0 -126
  202. package/lib/utils/claims.d.ts +0 -33
  203. package/lib/utils/claims.js +0 -112
  204. package/lib/utils/connection-state-machine.d.ts +0 -43
  205. package/lib/utils/connection-state-machine.js +0 -129
  206. package/lib/utils/env.d.ts +0 -3
  207. package/lib/utils/env.js +0 -20
  208. package/lib/utils/error.d.ts +0 -27
  209. package/lib/utils/error.js +0 -43
  210. package/lib/utils/generics.d.ts +0 -112
  211. package/lib/utils/generics.js +0 -348
  212. package/lib/utils/http-parser.d.ts +0 -59
  213. package/lib/utils/http-parser.js +0 -252
  214. package/lib/utils/index.d.ts +0 -12
  215. package/lib/utils/index.js +0 -29
  216. package/lib/utils/logger.d.ts +0 -13
  217. package/lib/utils/logger.js +0 -100
  218. package/lib/utils/prepare-packets.d.ts +0 -16
  219. package/lib/utils/prepare-packets.js +0 -61
  220. package/lib/utils/redactions.d.ts +0 -54
  221. package/lib/utils/redactions.js +0 -148
  222. package/lib/utils/resource-monitor.d.ts +0 -61
  223. package/lib/utils/resource-monitor.js +0 -107
  224. package/lib/utils/retries.d.ts +0 -12
  225. package/lib/utils/retries.js +0 -28
  226. package/lib/utils/signatures/eth.d.ts +0 -2
  227. package/lib/utils/signatures/eth.js +0 -33
  228. package/lib/utils/signatures/index.d.ts +0 -5
  229. package/lib/utils/signatures/index.js +0 -11
  230. package/lib/utils/socket-base.d.ts +0 -22
  231. package/lib/utils/socket-base.js +0 -95
  232. package/lib/utils/tls.d.ts +0 -2
  233. package/lib/utils/tls.js +0 -32
  234. package/lib/utils/validation.d.ts +0 -2
  235. package/lib/utils/validation.js +0 -46
  236. package/lib/utils/ws.d.ts +0 -12
  237. package/lib/utils/ws.js +0 -38
  238. package/lib/utils/zk.d.ts +0 -55
  239. package/lib/utils/zk.js +0 -444
  240. package/lib/window-rpc/index.d.ts +0 -3
  241. package/lib/window-rpc/index.js +0 -20
  242. package/lib/window-rpc/setup-window-rpc.d.ts +0 -5
  243. package/lib/window-rpc/setup-window-rpc.js +0 -291
  244. package/lib/window-rpc/types.d.ts +0 -192
  245. package/lib/window-rpc/types.js +0 -3
  246. package/lib/window-rpc/utils.d.ts +0 -14
  247. package/lib/window-rpc/utils.js +0 -102
  248. package/lib/window-rpc/window-rpc-zk.d.ts +0 -15
  249. package/lib/window-rpc/window-rpc-zk.js +0 -85
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerOperator = registerOperator;
4
- const ethers_1 = require("ethers");
5
- const config_1 = require("../../avs/config");
6
- const contracts_1 = require("../../avs/utils/contracts");
7
- const utils_1 = require("../../utils");
8
- /**
9
- * Registers the operator on the chain, if required.
10
- * If already registered -- will just pass through
11
- */
12
- async function registerOperator({ logger = utils_1.logger, chainId = config_1.SELECTED_CHAIN_ID, wallet = (0, contracts_1.getContracts)(chainId).wallet, reclaimRpcUrl = config_1.RECLAIM_PUBLIC_URL } = {}) {
13
- const contracts = (0, contracts_1.getContracts)(chainId);
14
- const delegationManager = contracts.delegationManager
15
- .connect(wallet);
16
- const avsDirectory = contracts.avsDirectory
17
- .connect(wallet);
18
- const contract = contracts.contract
19
- .connect(wallet);
20
- const registryContract = contracts.registryContract
21
- .connect(wallet);
22
- const addr = await wallet.address;
23
- try {
24
- const tx1 = await delegationManager
25
- .registerAsOperator({
26
- earningsReceiver: addr,
27
- delegationApprover: '0x0000000000000000000000000000000000000000',
28
- stakerOptOutWindowBlocks: 0
29
- }, '');
30
- await tx1.wait();
31
- logger.info('operator registered on DM successfully');
32
- }
33
- catch (err) {
34
- if (!err.message.includes('operator has already registered')) {
35
- throw err;
36
- }
37
- logger.info('Operator already registered on EL');
38
- }
39
- const salt = ethers_1.ethers.utils.hexlify(ethers_1.ethers.utils.randomBytes(32));
40
- // Example expiry, 1 hour from now
41
- const expiry = Math.floor(Date.now() / 1000) + 3600;
42
- // Define the output structure
43
- const operatorSignature = {
44
- expiry: expiry,
45
- salt: salt,
46
- signature: ''
47
- };
48
- // Calculate the digest hash using the avsDirectory's method
49
- const digestHash = await avsDirectory
50
- .calculateOperatorAVSRegistrationDigestHash(addr, contract.address, salt, expiry);
51
- // Sign the digest hash with the operator's private key
52
- const signingKey = new ethers_1.ethers.utils.SigningKey(wallet.privateKey);
53
- const signature = signingKey.signDigest(digestHash);
54
- // Encode the signature in the required format
55
- operatorSignature.signature = ethers_1.ethers.utils.joinSignature(signature);
56
- logger.info('operator signature generated successfully');
57
- if (!(await registryContract.operatorRegistered(addr))) {
58
- const tx2 = await registryContract
59
- .registerOperatorWithSignature(addr, operatorSignature);
60
- await tx2.wait();
61
- logger.info('operator registered on AVS successfully');
62
- }
63
- else {
64
- logger.info('Operator already registered on AVS');
65
- }
66
- const existingMetadata = await contract.getMetadataForOperator(addr)
67
- .catch(err => {
68
- if (err.message.includes('Operator not found')) {
69
- return undefined;
70
- }
71
- throw err;
72
- });
73
- const metadata = { addr, url: reclaimRpcUrl };
74
- if ((existingMetadata === null || existingMetadata === void 0 ? void 0 : existingMetadata.addr) === metadata.addr
75
- && (existingMetadata === null || existingMetadata === void 0 ? void 0 : existingMetadata.url) === metadata.url) {
76
- logger.info('operator metadata already up to date');
77
- return;
78
- }
79
- await contract.updateOperatorMetadata(metadata);
80
- logger.info({ metadata }, 'operator metadata updated successfully');
81
- }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZzL3V0aWxzL3JlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNkJBLDRDQThGQztBQTNIRCxtQ0FBK0I7QUFDL0IsMkNBQXNFO0FBQ3RFLHVEQUFzRDtBQUN0RCxxQ0FBNEM7QUFzQjVDOzs7R0FHRztBQUNJLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxFQUN0QyxNQUFNLEdBQUcsY0FBTSxFQUNmLE9BQU8sR0FBRywwQkFBaUIsRUFDM0IsTUFBTSxHQUFHLElBQUEsd0JBQVksRUFBQyxPQUFPLENBQUMsQ0FBQyxNQUFPLEVBQ3RDLGFBQWEsR0FBRywyQkFBa0IsS0FDakIsRUFBRTtJQUNuQixNQUFNLFNBQVMsR0FBRyxJQUFBLHdCQUFZLEVBQUMsT0FBTyxDQUFDLENBQUE7SUFDdkMsTUFBTSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsaUJBQWlCO1NBQ25ELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNqQixNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsWUFBWTtTQUN6QyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDakIsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVE7U0FDakMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLGdCQUFnQjtTQUNqRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFakIsTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFBO0lBQ2pDLElBQUksQ0FBQztRQUNKLE1BQU0sR0FBRyxHQUFHLE1BQU0saUJBQWlCO2FBQ2pDLGtCQUFrQixDQUFDO1lBQ25CLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsa0JBQWtCLEVBQ2pCLDRDQUE0QztZQUM3Qyx3QkFBd0IsRUFBRSxDQUFDO1NBQzNCLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFD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
@@ -1,22 +0,0 @@
1
- import { ethers, type Wallet } from 'ethers';
2
- import type { IReclaimServiceManager, NewTaskCreatedEventObject } from '../../avs/contracts/ReclaimServiceManager';
3
- type CreateClaimWithoutOwner = Omit<IReclaimServiceManager.ClaimRequestStruct, 'owner'>;
4
- type CreateNewClaimRequestOnChainOpts = {
5
- request: CreateClaimWithoutOwner;
6
- payer: Wallet;
7
- chainId?: string;
8
- } & ({
9
- owner: Wallet;
10
- } | {
11
- /**
12
- * Address of the owner of the claim
13
- */
14
- owner: string;
15
- requestSignature?: string | Uint8Array;
16
- });
17
- export declare function createNewClaimRequestOnChain({ request, payer, chainId, ...rest }: CreateNewClaimRequestOnChainOpts): Promise<{
18
- task: NewTaskCreatedEventObject;
19
- tx: ethers.ContractReceipt;
20
- }>;
21
- export declare function signClaimRequest(request: IReclaimServiceManager.ClaimRequestStruct, owner: Wallet, chainId?: string): Promise<Uint8Array<ArrayBufferLike>>;
22
- export {};
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createNewClaimRequestOnChain = createNewClaimRequestOnChain;
4
- exports.signClaimRequest = signClaimRequest;
5
- const ethers_1 = require("ethers");
6
- const contracts_1 = require("../../avs/utils/contracts");
7
- async function createNewClaimRequestOnChain({ request, payer, chainId, ...rest }) {
8
- const contracts = (0, contracts_1.getContracts)(chainId);
9
- const contract = contracts.contract.connect(payer);
10
- const ownerAddress = typeof rest.owner === 'string'
11
- ? rest.owner
12
- : rest.owner.address;
13
- const fullRequest = {
14
- ...request,
15
- owner: ownerAddress
16
- };
17
- const signature = await getSignature();
18
- const task = await contract.createNewTask(fullRequest, signature || '0x00');
19
- const rslt = await task.wait();
20
- const events = rslt.events;
21
- // check task created event was emitted
22
- const ev = events === null || events === void 0 ? void 0 : events[0];
23
- const arg = ev === null || ev === void 0 ? void 0 : ev.args;
24
- return { task: arg, tx: rslt };
25
- function getSignature() {
26
- if (ownerAddress.toLowerCase() === payer.address.toLowerCase()) {
27
- return;
28
- }
29
- if ('requestSignature' in rest) {
30
- return rest.requestSignature;
31
- }
32
- if (typeof rest.owner !== 'object') {
33
- throw new Error('Owner wallet must be provided or'
34
- + ' requestSignature must be provided');
35
- }
36
- return signClaimRequest(fullRequest, rest.owner, chainId);
37
- }
38
- }
39
- async function signClaimRequest(request, owner, chainId) {
40
- const contract = (0, contracts_1.getContracts)(chainId).contract;
41
- const encoded = await contract.encodeClaimRequest(request);
42
- const strSig = await owner.signMessage(ethers_1.ethers.utils.arrayify(encoded));
43
- return ethers_1.ethers.utils.arrayify(strSig);
44
- }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZzL3V0aWxzL3Rhc2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBb0JBLG9FQTJDQztBQUVELDRDQVNDO0FBMUVELG1DQUE0QztBQUU1Qyx1REFBc0Q7QUFrQi9DLEtBQUssVUFBVSw0QkFBNEIsQ0FBQyxFQUNsRCxPQUFPLEVBQ1AsS0FBSyxFQUNMLE9BQU8sRUFDUCxHQUFHLElBQUksRUFDMkI7SUFDbEMsTUFBTSxTQUFTLEdBQUcsSUFBQSx3QkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2xELE1BQU0sWUFBWSxHQUFHLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRO1FBQ2xELENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztRQUNaLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQTtJQUNyQixNQUFNLFdBQVcsR0FBOEM7UUFDOUQsR0FBRyxPQUFPO1FBQ1YsS0FBSyxFQUFFLFlBQVk7S0FDbkIsQ0FBQTtJQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sWUFBWSxFQUFFLENBQUE7SUFDdEMsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxTQUFTLElBQUksTUFBTSxDQUFDLENBQUE7SUFDM0UsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUMxQix1Q0FBdUM7SUFDdkMsTUFBTSxFQUFFLEdBQUcsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3RCLE1BQU0sR0FBRyxHQUFHLEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxJQUE0QyxDQUFBO0lBRTVELE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUU5QixTQUFTLFlBQVk7UUFDcEIsSUFBRyxZQUFZLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQy9ELE9BQU07UUFDUCxDQUFDO1FBRUQsSUFBRyxrQkFBa0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQTtRQUM3QixDQUFDO1FBRUQsSUFBRyxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FDZCxrQ0FBa0M7a0JBQ2hDLG9DQUFvQyxDQUN0QyxDQUFBO1FBQ0YsQ0FBQztRQUVELE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDMUQsQ0FBQztBQUNGLENBQUM7QUFFTSxLQUFLLFVBQVUsZ0JBQWdCLENBQ3JDLE9BQWtELEVBQ2xELEtBQWEsRUFDYixPQUFnQjtJQUVoQixNQUFNLFFBQVEsR0FBRyxJQUFBLHdCQUFZLEVBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFBO0lBQy9DLE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzFELE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ3RFLE9BQU8sZUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDckMsQ0FBQyJ9
@@ -1,5 +0,0 @@
1
- import type { CreateClaimOnAttestorOpts, ProviderName } from '../types';
2
- /**
3
- * Create a claim on the attestor
4
- */
5
- export declare function createClaimOnAttestor<N extends ProviderName>({ logger: _logger, maxRetries, ...opts }: CreateClaimOnAttestorOpts<N>): Promise<import("../proto/api").ClaimTunnelResponse>;
@@ -1,424 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createClaimOnAttestor = createClaimOnAttestor;
4
- const tls_1 = require("@reclaimprotocol/tls");
5
- const make_rpc_tls_tunnel_1 = require("../client/tunnels/make-rpc-tls-tunnel");
6
- const attestor_pool_1 = require("../client/utils/attestor-pool");
7
- const config_1 = require("../config");
8
- const api_1 = require("../proto/api");
9
- const providers_1 = require("../providers");
10
- const utils_1 = require("../utils");
11
- const retries_1 = require("../utils/retries");
12
- const signatures_1 = require("../utils/signatures");
13
- const tls_2 = require("../utils/tls");
14
- /**
15
- * Create a claim on the attestor
16
- */
17
- function createClaimOnAttestor({ logger: _logger, maxRetries = 3, ...opts }) {
18
- const logger = _logger
19
- // if the client has already been initialised
20
- // and no logger is provided, use the client's logger
21
- // otherwise default to the global logger
22
- || ('logger' in opts.client ? opts.client.logger : utils_1.logger);
23
- return (0, retries_1.executeWithRetries)(attempt => (_createClaimOnAttestor({
24
- ...opts,
25
- logger: attempt
26
- ? logger.child({ attempt })
27
- : logger
28
- })), { maxRetries, logger, shouldRetry });
29
- }
30
- function shouldRetry(err) {
31
- var _a;
32
- if (err instanceof TypeError) {
33
- return false;
34
- }
35
- // possibly a network error, or the server
36
- // closed the connection before we received the full data
37
- if ((_a = err.message) === null || _a === void 0 ? void 0 : _a.includes('stream ended before')) {
38
- return true;
39
- }
40
- return err instanceof utils_1.AttestorError
41
- && err.code !== 'ERROR_INVALID_CLAIM'
42
- && err.code !== 'ERROR_BAD_REQUEST'
43
- && err.code !== 'ERROR_AUTHENTICATION_FAILED';
44
- }
45
- async function _createClaimOnAttestor({ name, params, secretParams, context, onStep, ownerPrivateKey, client: clientInit, logger = utils_1.logger, timestampS, updateProviderParams, updateParametersFromOprfData = true, ...zkOpts }) {
46
- const provider = providers_1.providers[name];
47
- const hostPort = (0, utils_1.getProviderValue)(params, provider.hostPort, secretParams);
48
- const geoLocation = (0, utils_1.getProviderValue)(params, provider.geoLocation, secretParams);
49
- const providerTlsOpts = (0, utils_1.getProviderValue)(params, provider.additionalClientOptions);
50
- const tlsOpts = { ...(0, tls_2.getDefaultTlsOptions)(), ...providerTlsOpts };
51
- const { zkEngine = 'snarkjs' } = zkOpts;
52
- let redactionMode = (0, utils_1.getProviderValue)(params, provider.writeRedactionMode);
53
- const [host, port] = hostPort.split(':');
54
- const resParser = (0, utils_1.makeHttpResponseParser)();
55
- let client;
56
- let lastMsgRevealed = false;
57
- const revealMap = new Map();
58
- onStep === null || onStep === void 0 ? void 0 : onStep({ name: 'connecting' });
59
- let endedHttpRequest;
60
- const createTunnelReq = {
61
- host,
62
- port: port ? +port : config_1.DEFAULT_HTTPS_PORT,
63
- geoLocation,
64
- id: (0, utils_1.generateTunnelId)()
65
- };
66
- logger = logger.child({ tunnelId: createTunnelReq.id });
67
- const authRequest = 'authRequest' in clientInit
68
- ? (typeof clientInit.authRequest === 'function'
69
- ? await clientInit.authRequest()
70
- : clientInit.authRequest)
71
- : undefined;
72
- const tunnel = await (0, make_rpc_tls_tunnel_1.makeRpcTlsTunnel)({
73
- tlsOpts,
74
- connect: (connectMsgs) => {
75
- let created = false;
76
- if ('metadata' in clientInit) {
77
- client = clientInit;
78
- }
79
- else {
80
- client = (0, attestor_pool_1.getAttestorClientFromPool)(clientInit.url, () => {
81
- created = true;
82
- return {
83
- authRequest: authRequest,
84
- initMessages: connectMsgs,
85
- logger
86
- };
87
- });
88
- }
89
- if (!created) {
90
- client
91
- .waitForInit()
92
- .then(() => client.sendMessage(...connectMsgs))
93
- .catch(err => {
94
- logger.error({ err }, 'error in sending init msgs');
95
- });
96
- }
97
- return client;
98
- },
99
- logger,
100
- request: createTunnelReq,
101
- onMessage(data) {
102
- logger.debug({ bytes: data.length }, 'recv data from server');
103
- resParser.onChunk(data);
104
- if (resParser.res.complete) {
105
- logger === null || logger === void 0 ? void 0 : logger.debug('got complete HTTP response from server');
106
- // wait a little bit to make sure the client has
107
- // finished writing the response
108
- setTimeout(() => {
109
- endedHttpRequest === null || endedHttpRequest === void 0 ? void 0 : endedHttpRequest();
110
- }, 100);
111
- }
112
- },
113
- onClose(err) {
114
- const level = err ? 'error' : 'debug';
115
- logger === null || logger === void 0 ? void 0 : logger[level]({ err }, 'tls session ended');
116
- endedHttpRequest === null || endedHttpRequest === void 0 ? void 0 : endedHttpRequest(err);
117
- try {
118
- resParser.streamEnded();
119
- }
120
- catch (_a) { }
121
- },
122
- });
123
- const { version: tlsVersion, cipherSuite } = tunnel.tls.getMetadata();
124
- if (tlsVersion === 'TLS1_2' && redactionMode !== 'zk') {
125
- redactionMode = 'zk';
126
- logger.info('TLS1.2 detected, defaulting to zk redaction mode');
127
- }
128
- const { redactions, data: requestStr } = provider.createRequest(
129
- // @ts-ignore
130
- secretParams, params, logger);
131
- const requestData = typeof requestStr === 'string'
132
- ? (0, tls_1.strToUint8Array)(requestStr)
133
- : requestStr;
134
- logger.debug({ redactions: redactions.length }, 'generated request');
135
- const waitForAllData = new Promise((resolve, reject) => {
136
- endedHttpRequest = err => (err ? reject(err) : resolve());
137
- });
138
- onStep === null || onStep === void 0 ? void 0 : onStep({ name: 'sending-request-data' });
139
- try {
140
- if (redactionMode === 'zk') {
141
- await writeRedactedZk();
142
- }
143
- else {
144
- await writeRedactedWithKeyUpdate();
145
- }
146
- logger.info('wrote request to server');
147
- }
148
- catch (err) {
149
- // wait for complete stream end when the session is closed
150
- // mid-write, as this means the server could not process
151
- // our request due to some error. Hope the stream end
152
- // error will be more descriptive
153
- logger.error({ err }, 'session errored during write, waiting for stream end');
154
- }
155
- onStep === null || onStep === void 0 ? void 0 : onStep({ name: 'waiting-for-response' });
156
- await waitForAllData;
157
- await tunnel.close();
158
- logger.info('session closed, processing response');
159
- // update the response selections
160
- if (updateProviderParams) {
161
- const { params: updatedParms, secretParams: updatedSecretParms } = await updateProviderParams(tunnel.transcript, tlsVersion !== null && tlsVersion !== void 0 ? tlsVersion : 'TLS1_2');
162
- params = { ...params, ...updatedParms };
163
- secretParams = { ...secretParams, ...updatedSecretParms };
164
- }
165
- const signatureAlg = signatures_1.SIGNATURES[client.metadata.signatureType];
166
- let serverIV;
167
- let clientIV;
168
- const [serverBlock] = getLastBlocks('server', 1);
169
- if (serverBlock && serverBlock.message.type === 'ciphertext') {
170
- serverIV = serverBlock.message.fixedIv;
171
- }
172
- const [clientBlock] = getLastBlocks('client', 1);
173
- if (clientBlock && clientBlock.message.type === 'ciphertext') {
174
- clientIV = clientBlock.message.fixedIv;
175
- }
176
- const transcript = await generateTranscript();
177
- // now that we have the full transcript, we need
178
- // to generate the ZK proofs & send them to the attestor
179
- // to verify & sign our claim
180
- const claimTunnelReq = api_1.ClaimTunnelRequest.create({
181
- request: createTunnelReq,
182
- data: {
183
- provider: name,
184
- parameters: (0, utils_1.canonicalStringify)(params),
185
- context: (0, utils_1.canonicalStringify)(context),
186
- timestampS: timestampS !== null && timestampS !== void 0 ? timestampS : (0, utils_1.unixTimestampSeconds)(),
187
- owner: getAddress(),
188
- },
189
- transcript: transcript,
190
- zkEngine: zkEngine === 'gnark'
191
- ? api_1.ZKProofEngine.ZK_ENGINE_GNARK
192
- : api_1.ZKProofEngine.ZK_ENGINE_SNARKJS,
193
- fixedServerIV: serverIV,
194
- fixedClientIV: clientIV,
195
- });
196
- onStep === null || onStep === void 0 ? void 0 : onStep({ name: 'waiting-for-verification' });
197
- const claimTunnelBytes = api_1.ClaimTunnelRequest
198
- .encode(claimTunnelReq).finish();
199
- const requestSignature = await signatureAlg
200
- .sign(claimTunnelBytes, ownerPrivateKey);
201
- claimTunnelReq.signatures = { requestSignature };
202
- const result = await client.rpc('claimTunnel', claimTunnelReq);
203
- logger.info({ success: !!result.claim }, 'recv claim response');
204
- return result;
205
- async function writeRedactedWithKeyUpdate() {
206
- var _a;
207
- let currentIndex = 0;
208
- for (const section of redactions) {
209
- const block = requestData
210
- .slice(currentIndex, section.fromIndex);
211
- if (block.length) {
212
- await writeWithReveal(block, true);
213
- }
214
- const redacted = requestData
215
- .slice(section.fromIndex, section.toIndex);
216
- await writeWithReveal(redacted, false);
217
- currentIndex = section.toIndex;
218
- }
219
- // write if redactions were there
220
- const lastBlockStart = ((_a = redactions === null || redactions === void 0 ? void 0 : redactions[redactions.length - 1]) === null || _a === void 0 ? void 0 : _a.toIndex) || 0;
221
- const block = requestData.slice(lastBlockStart);
222
- if (block.length) {
223
- await writeWithReveal(block, true);
224
- }
225
- }
226
- async function writeRedactedZk() {
227
- let blocksWritten = tunnel.transcript.length;
228
- await tunnel.tls.write(requestData);
229
- blocksWritten = tunnel.transcript.length - blocksWritten;
230
- setRevealOfLastSentBlocks({
231
- type: 'zk',
232
- redactedPlaintext: (0, utils_1.redactSlices)(requestData, redactions)
233
- }, blocksWritten);
234
- }
235
- /**
236
- * Write data to the tunnel, with the option to mark the packet
237
- * as revealable to the attestor or not
238
- */
239
- async function writeWithReveal(data, reveal) {
240
- // if the reveal state has changed, update the traffic keys
241
- // to not accidentally reveal a packet not meant to be revealed
242
- // and vice versa
243
- if (reveal !== lastMsgRevealed) {
244
- await tunnel.tls.updateTrafficKeys();
245
- }
246
- let blocksWritten = tunnel.transcript.length;
247
- await tunnel.write(data);
248
- blocksWritten = tunnel.transcript.length - blocksWritten;
249
- // now we mark the packet to be revealed to the attestor
250
- setRevealOfLastSentBlocks(reveal ? { type: 'complete' } : undefined, blocksWritten);
251
- lastMsgRevealed = reveal;
252
- }
253
- function setRevealOfLastSentBlocks(reveal, nBlocks = 1) {
254
- const lastBlocks = getLastBlocks('client', nBlocks);
255
- if (!lastBlocks.length) {
256
- return;
257
- }
258
- for (const block of lastBlocks) {
259
- setRevealOfMessage(block.message, reveal);
260
- }
261
- }
262
- function getLastBlocks(sender, nBlocks) {
263
- // set the correct index for the server blocks
264
- const lastBlocks = [];
265
- for (let i = tunnel.transcript.length - 1; i >= 0; i--) {
266
- const block = tunnel.transcript[i];
267
- if (block.sender === sender) {
268
- lastBlocks.push(block);
269
- if (lastBlocks.length === nBlocks) {
270
- break;
271
- }
272
- }
273
- }
274
- return lastBlocks;
275
- }
276
- /**
277
- * Generate transcript with reveal data for the attestor to verify
278
- */
279
- async function generateTranscript() {
280
- await addServerSideReveals();
281
- const startMs = Date.now();
282
- const revealedMessages = await (0, utils_1.preparePacketsForReveal)(tunnel.transcript, revealMap, {
283
- logger,
284
- cipherSuite: cipherSuite,
285
- onZkProgress(done, total) {
286
- const timeSinceStartMs = Date.now() - startMs;
287
- const timePerBlockMs = timeSinceStartMs / done;
288
- const timeLeftMs = timePerBlockMs * (total - done);
289
- onStep === null || onStep === void 0 ? void 0 : onStep({
290
- name: 'generating-zk-proofs',
291
- proofsDone: done,
292
- proofsTotal: total,
293
- approxTimeLeftS: Math.round(timeLeftMs / 1000),
294
- });
295
- },
296
- ...zkOpts,
297
- });
298
- return revealedMessages;
299
- }
300
- /**
301
- * Add reveals for server side blocks, using
302
- * the provider's redaction function if available.
303
- * Otherwise, opts to reveal all server side blocks.
304
- */
305
- async function addServerSideReveals() {
306
- const allPackets = tunnel.transcript;
307
- let serverPacketsToReveal = 'all';
308
- const packets = [];
309
- const serverBlocks = [];
310
- for (const b of allPackets) {
311
- if (b.message.type !== 'ciphertext'
312
- || !(0, utils_1.isApplicationData)(b.message, tlsVersion)) {
313
- continue;
314
- }
315
- const plaintext = tlsVersion === 'TLS1_3'
316
- ? b.message.plaintext.slice(0, -1)
317
- : b.message.plaintext;
318
- packets.push({
319
- message: plaintext,
320
- sender: b.sender
321
- });
322
- if (b.sender === 'server') {
323
- serverBlocks.push({
324
- plaintext: plaintext,
325
- message: b.message
326
- });
327
- }
328
- }
329
- if (provider.getResponseRedactions) {
330
- serverPacketsToReveal = await (0, utils_1.getBlocksToReveal)(serverBlocks, total => provider.getResponseRedactions({
331
- response: total,
332
- params,
333
- logger,
334
- ctx: config_1.PROVIDER_CTX
335
- }), performOprf);
336
- }
337
- const revealedPackets = packets
338
- .filter(p => p.sender === 'client');
339
- if (serverPacketsToReveal === 'all') {
340
- // reveal all server side blocks
341
- for (const { message, sender } of allPackets) {
342
- if (sender === 'server') {
343
- setRevealOfMessage(message, { type: 'complete' });
344
- }
345
- }
346
- revealedPackets.push(...packets.filter(p => p.sender === 'server'));
347
- }
348
- else {
349
- for (const { block, redactedPlaintext, toprfs } of serverPacketsToReveal) {
350
- setRevealOfMessage(block.message, {
351
- type: 'zk',
352
- redactedPlaintext,
353
- toprfs
354
- });
355
- revealedPackets.push({ sender: 'server', message: redactedPlaintext });
356
- if (updateParametersFromOprfData && toprfs) {
357
- let strParams = (0, utils_1.canonicalStringify)(params);
358
- for (const toprf of toprfs) {
359
- strParams = strParams.replaceAll((0, utils_1.uint8ArrayToStr)(toprf.plaintext), (0, utils_1.binaryHashToStr)(toprf.nullifier, toprf.dataLocation.length));
360
- }
361
- params = JSON.parse(strParams);
362
- }
363
- }
364
- }
365
- await provider.assertValidProviderReceipt({
366
- receipt: revealedPackets,
367
- params: {
368
- ...params,
369
- // provide secret params for proper
370
- // request body validation
371
- secretParams,
372
- },
373
- logger,
374
- ctx: config_1.PROVIDER_CTX
375
- });
376
- // reveal all handshake blocks
377
- // so the attestor can verify there was no
378
- // hanky-panky
379
- for (const p of allPackets) {
380
- if (p.message.type !== 'ciphertext') {
381
- continue;
382
- }
383
- // break the moment we hit the first
384
- // application data packet
385
- if ((0, utils_1.isApplicationData)(p.message, tlsVersion)) {
386
- break;
387
- }
388
- setRevealOfMessage(p.message, { type: 'complete' });
389
- }
390
- }
391
- async function performOprf(plaintext) {
392
- var _a;
393
- logger.info({ length: plaintext.length }, 'generating OPRF...');
394
- const oprfOperator = ((_a = zkOpts.oprfOperators) === null || _a === void 0 ? void 0 : _a['chacha20'])
395
- || (0, utils_1.makeDefaultOPRFOperator)('chacha20', zkEngine, logger);
396
- const reqData = await oprfOperator.generateOPRFRequestData(plaintext, config_1.TOPRF_DOMAIN_SEPARATOR, logger);
397
- const res = await client.rpc('toprf', {
398
- maskedData: reqData.maskedData,
399
- engine: (0, utils_1.getEngineProto)(zkEngine)
400
- });
401
- const nullifier = await oprfOperator.finaliseOPRF(client.initResponse.toprfPublicKey, reqData, [res]);
402
- const data = {
403
- nullifier,
404
- responses: [res],
405
- mask: reqData.mask,
406
- dataLocation: undefined,
407
- plaintext
408
- };
409
- return data;
410
- }
411
- function setRevealOfMessage(message, reveal) {
412
- if (reveal) {
413
- revealMap.set(message, reveal);
414
- return;
415
- }
416
- revealMap.delete(message);
417
- }
418
- function getAddress() {
419
- const { getAddress, getPublicKey } = signatureAlg;
420
- const pubKey = getPublicKey(ownerPrivateKey);
421
- return getAddress(pubKey);
422
- }
423
- }
424
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNsYWltLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9jcmVhdGUtY2xhaW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE0Q0Esc0RBcUJDO0FBakVELDhDQUF3RTtBQUN4RSxnRkFBeUU7QUFDekUsa0VBQTBFO0FBQzFFLHVDQUFxRjtBQUNyRix1Q0FBaUU7QUFDakUsNkNBQXlDO0FBU3pDLHFDQWlCa0I7QUFDbEIsK0NBQXNEO0FBQ3RELHFEQUFpRDtBQUNqRCx1Q0FBb0Q7QUFPcEQ7O0dBRUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FDcEMsRUFDQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQ1Y7SUFFL0IsTUFBTSxNQUFNLEdBQUcsT0FBTztRQUNyQiw2Q0FBNkM7UUFDN0MscURBQXFEO1FBQ3JELHlDQUF5QztXQUN0QyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBTSxDQUFDLENBQUE7SUFDM0QsT0FBTyxJQUFBLDRCQUFrQixFQUN4QixPQUFPLENBQUMsRUFBRSxDQUFDLENBQ1Ysc0JBQXNCLENBQUk7UUFDekIsR0FBRyxJQUFJO1FBQ1AsTUFBTSxFQUFFLE9BQU87WUFDZCxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxNQUFNO0tBQ1QsQ0FBQyxDQUNGLEVBQ0QsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUNuQyxDQUFBO0FBQ0YsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEdBQVU7O0lBQzlCLElBQUcsR0FBRyxZQUFZLFNBQVMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFBO0lBQ2IsQ0FBQztJQUVELDBDQUEwQztJQUMx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
@@ -1,3 +0,0 @@
1
- export * from './create-claim';
2
- export * from './utils/attestor-pool';
3
- export * from './utils/client-socket';
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./create-claim"), exports);
18
- __exportStar(require("./utils/attestor-pool"), exports);
19
- __exportStar(require("./utils/client-socket"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBOEI7QUFDOUIsd0RBQXFDO0FBQ3JDLHdEQUFxQyJ9