@reclaimprotocol/attestor-core 5.0.1-beta.13 → 5.0.1-beta.16

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 (134) hide show
  1. package/lib/external-rpc/index.js +17321 -3
  2. package/lib/index.d.ts +1 -0
  3. package/lib/index.js +15391 -11
  4. package/lib/scripts/build-browser-debug.d.ts +1 -0
  5. package/package.json +1 -1
  6. package/lib/avs/abis/avsDirectoryABI.js +0 -343
  7. package/lib/avs/abis/delegationABI.js +0 -4
  8. package/lib/avs/abis/registryABI.js +0 -728
  9. package/lib/avs/client/create-claim-on-avs.js +0 -168
  10. package/lib/avs/config.js +0 -26
  11. package/lib/avs/contracts/ReclaimServiceManager.js +0 -0
  12. package/lib/avs/contracts/common.js +0 -0
  13. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1183
  14. package/lib/avs/contracts/factories/index.js +0 -4
  15. package/lib/avs/contracts/index.js +0 -6
  16. package/lib/avs/types/index.js +0 -0
  17. package/lib/avs/utils/contracts.js +0 -53
  18. package/lib/avs/utils/register.js +0 -74
  19. package/lib/avs/utils/tasks.js +0 -48
  20. package/lib/client/create-claim.js +0 -461
  21. package/lib/client/index.js +0 -3
  22. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -53
  23. package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -127
  24. package/lib/client/utils/attestor-pool.js +0 -24
  25. package/lib/client/utils/client-socket.js +0 -120
  26. package/lib/client/utils/message-handler.js +0 -97
  27. package/lib/config/index.js +0 -62
  28. package/lib/external-rpc/benchmark.js +0 -82
  29. package/lib/external-rpc/event-bus.js +0 -17
  30. package/lib/external-rpc/handle-incoming-msg.js +0 -241
  31. package/lib/external-rpc/jsc-polyfills/1.js +0 -80
  32. package/lib/external-rpc/jsc-polyfills/2.js +0 -15
  33. package/lib/external-rpc/jsc-polyfills/event.js +0 -19
  34. package/lib/external-rpc/jsc-polyfills/index.js +0 -2
  35. package/lib/external-rpc/jsc-polyfills/ws.js +0 -83
  36. package/lib/external-rpc/setup-browser.js +0 -33
  37. package/lib/external-rpc/setup-jsc.js +0 -22
  38. package/lib/external-rpc/types.js +0 -0
  39. package/lib/external-rpc/utils.js +0 -100
  40. package/lib/external-rpc/zk.js +0 -58
  41. package/lib/mechain/abis/governanceABI.js +0 -461
  42. package/lib/mechain/abis/taskABI.js +0 -512
  43. package/lib/mechain/client/create-claim-on-mechain.js +0 -33
  44. package/lib/mechain/client/index.js +0 -1
  45. package/lib/mechain/constants/index.js +0 -8
  46. package/lib/mechain/index.js +0 -2
  47. package/lib/mechain/types/index.js +0 -0
  48. package/lib/proto/api.js +0 -4250
  49. package/lib/proto/tee-bundle.js +0 -1296
  50. package/lib/providers/http/index.js +0 -640
  51. package/lib/providers/http/patch-parse5-tree.js +0 -34
  52. package/lib/providers/http/utils.js +0 -283
  53. package/lib/providers/index.js +0 -7
  54. package/lib/scripts/build-browser.js +0 -38
  55. package/lib/scripts/build-jsc.js +0 -47
  56. package/lib/scripts/build-lib.js +0 -47
  57. package/lib/scripts/check-avs-registration.js +0 -28
  58. package/lib/scripts/fallbacks/crypto.js +0 -4
  59. package/lib/scripts/fallbacks/empty.js +0 -4
  60. package/lib/scripts/fallbacks/re2.js +0 -7
  61. package/lib/scripts/fallbacks/snarkjs.js +0 -10
  62. package/lib/scripts/fallbacks/stwo.js +0 -159
  63. package/lib/scripts/generate-provider-types.js +0 -101
  64. package/lib/scripts/generate-receipt.js +0 -101
  65. package/lib/scripts/generate-toprf-keys.js +0 -24
  66. package/lib/scripts/jsc-cli-rpc.js +0 -35
  67. package/lib/scripts/register-avs-operator.js +0 -3
  68. package/lib/scripts/start-server.js +0 -11
  69. package/lib/scripts/update-avs-metadata.js +0 -20
  70. package/lib/scripts/utils.js +0 -10
  71. package/lib/scripts/whitelist-operator.js +0 -16
  72. package/lib/server/create-server.js +0 -105
  73. package/lib/server/handlers/claimTeeBundle.js +0 -232
  74. package/lib/server/handlers/claimTunnel.js +0 -80
  75. package/lib/server/handlers/completeClaimOnChain.js +0 -29
  76. package/lib/server/handlers/createClaimOnChain.js +0 -32
  77. package/lib/server/handlers/createTaskOnMechain.js +0 -57
  78. package/lib/server/handlers/createTunnel.js +0 -98
  79. package/lib/server/handlers/disconnectTunnel.js +0 -8
  80. package/lib/server/handlers/fetchCertificateBytes.js +0 -57
  81. package/lib/server/handlers/index.js +0 -25
  82. package/lib/server/handlers/init.js +0 -33
  83. package/lib/server/handlers/toprf.js +0 -19
  84. package/lib/server/index.js +0 -4
  85. package/lib/server/socket.js +0 -112
  86. package/lib/server/tunnels/make-tcp-tunnel.js +0 -202
  87. package/lib/server/utils/apm.js +0 -29
  88. package/lib/server/utils/assert-valid-claim-request.js +0 -354
  89. package/lib/server/utils/config-env.js +0 -4
  90. package/lib/server/utils/dns.js +0 -24
  91. package/lib/server/utils/gcp-attestation.js +0 -237
  92. package/lib/server/utils/generics.js +0 -45
  93. package/lib/server/utils/iso.js +0 -259
  94. package/lib/server/utils/keep-alive.js +0 -38
  95. package/lib/server/utils/nitro-attestation.js +0 -249
  96. package/lib/server/utils/oprf-raw.js +0 -61
  97. package/lib/server/utils/process-handshake.js +0 -233
  98. package/lib/server/utils/proxy-session.js +0 -6
  99. package/lib/server/utils/tee-oprf-mpc-verification.js +0 -86
  100. package/lib/server/utils/tee-oprf-verification.js +0 -151
  101. package/lib/server/utils/tee-transcript-reconstruction.js +0 -140
  102. package/lib/server/utils/tee-verification.js +0 -358
  103. package/lib/server/utils/validation.js +0 -45
  104. package/lib/types/bgp.js +0 -0
  105. package/lib/types/claims.js +0 -0
  106. package/lib/types/client.js +0 -0
  107. package/lib/types/general.js +0 -0
  108. package/lib/types/handlers.js +0 -0
  109. package/lib/types/index.js +0 -10
  110. package/lib/types/providers.gen.js +0 -16
  111. package/lib/types/providers.js +0 -0
  112. package/lib/types/rpc.js +0 -0
  113. package/lib/types/signatures.js +0 -0
  114. package/lib/types/tunnel.js +0 -0
  115. package/lib/types/zk.js +0 -0
  116. package/lib/utils/auth.js +0 -71
  117. package/lib/utils/b64-json.js +0 -17
  118. package/lib/utils/bgp-listener.js +0 -123
  119. package/lib/utils/claims.js +0 -89
  120. package/lib/utils/env.js +0 -19
  121. package/lib/utils/error.js +0 -54
  122. package/lib/utils/generics.js +0 -268
  123. package/lib/utils/http-parser.js +0 -201
  124. package/lib/utils/index.js +0 -13
  125. package/lib/utils/logger.js +0 -82
  126. package/lib/utils/prepare-packets.js +0 -69
  127. package/lib/utils/redactions.js +0 -135
  128. package/lib/utils/retries.js +0 -26
  129. package/lib/utils/signatures/eth.js +0 -31
  130. package/lib/utils/signatures/index.js +0 -12
  131. package/lib/utils/socket-base.js +0 -96
  132. package/lib/utils/tls.js +0 -58
  133. package/lib/utils/ws.js +0 -22
  134. package/lib/utils/zk.js +0 -625
@@ -1,168 +0,0 @@
1
- import { EventLog, hexlify, Wallet } from "ethers";
2
- import { CHAIN_CONFIGS, SELECTED_CHAIN_ID } from "#src/avs/config.js";
3
- import { initialiseContracts } from "#src/avs/utils/contracts.js";
4
- import { createNewClaimRequestOnChain, signClaimRequest } from "#src/avs/utils/tasks.js";
5
- import { createClaimOnAttestor as _createClaimOnAttestor, getAttestorClientFromPool } from "#src/client/index.js";
6
- import { AttestorError, canonicalStringify, getIdentifierFromClaimInfo, logger as LOGGER, unixTimestampSeconds } from "#src/utils/index.js";
7
- const EMPTY_CLAIM_USER_ID = hexlify(new Uint8Array(32));
8
- async function createClaimOnAvs({
9
- onStep,
10
- createClaimOnAttestor = _createClaimOnAttestor,
11
- chainId = SELECTED_CHAIN_ID,
12
- payer,
13
- ...opts
14
- }) {
15
- const {
16
- logger = LOGGER,
17
- ownerPrivateKey,
18
- name,
19
- params,
20
- context
21
- } = opts;
22
- const { contract, wallet, provider } = initialiseContracts(
23
- CHAIN_CONFIGS[chainId],
24
- ownerPrivateKey
25
- );
26
- logger.info(
27
- { owner: wallet.address, contract: await contract.getAddress() },
28
- "creating claim"
29
- );
30
- const arg = await requestClaimCreation();
31
- logger.info(
32
- {
33
- index: arg.taskIndex,
34
- operators: arg.task.operators.length
35
- },
36
- "task created, collecting claim signatures..."
37
- );
38
- onStep?.({ type: "taskCreated", data: arg });
39
- const responses = [];
40
- const timestampS = +arg.task.createdAt.toString();
41
- for (const op of arg.task.operators) {
42
- const res = await createClaimOnAttestor({
43
- ...opts,
44
- client: { url: op.url },
45
- timestampS,
46
- onStep: (step) => onStep?.({
47
- type: "attestorStep",
48
- data: {
49
- operatorAddress: op.addr,
50
- step
51
- }
52
- }),
53
- logger: logger.child({ operator: op.addr })
54
- });
55
- const signature = res.signatures?.claimSignature;
56
- if (!signature) {
57
- throw new Error("INTERNAL: Claim signature not generated");
58
- }
59
- const diff = getClaimRequestDifference(res.request?.data, res.claim);
60
- if (diff) {
61
- throw new AttestorError(
62
- "ERROR_INVALID_CLAIM",
63
- `Claim request does not match the claim res data: ${diff}`,
64
- {
65
- diff,
66
- request: res.request?.data?.[diff],
67
- claim: res.claim?.[diff]
68
- }
69
- );
70
- }
71
- responses.push(res);
72
- logger.info({ operator: op.addr }, "signature generated");
73
- onStep?.({
74
- type: "attestorDone",
75
- data: {
76
- task: arg,
77
- responsesDone: responses
78
- }
79
- });
80
- }
81
- const rslt = await completeTask();
82
- logger.info(
83
- { tx: rslt.txHash, task: arg.taskIndex },
84
- "claim submitted & validated"
85
- );
86
- return { ...rslt, claimData: responses[0].claim };
87
- async function requestClaimCreation() {
88
- const request = {
89
- provider: name,
90
- // blank for now -- till we figure out the right
91
- // algorithm for this
92
- claimUserId: EMPTY_CLAIM_USER_ID,
93
- claimHash: getIdentifierFromClaimInfo({
94
- provider: name,
95
- parameters: canonicalStringify(params),
96
- context: context ? canonicalStringify(context) : ""
97
- }),
98
- owner: wallet.address,
99
- requestedAt: unixTimestampSeconds()
100
- };
101
- if (!payer) {
102
- const payerWallet = new Wallet(ownerPrivateKey, provider);
103
- const { task } = await createNewClaimRequestOnChain({
104
- request,
105
- payer: payerWallet,
106
- owner: payerWallet,
107
- chainId
108
- });
109
- return task;
110
- }
111
- const requestSignature = await signClaimRequest(
112
- request,
113
- wallet,
114
- chainId
115
- );
116
- const client = getAttestorClientFromPool(payer.attestor);
117
- await client.waitForInit();
118
- const rslt2 = await client.rpc("createClaimOnChain", {
119
- chainId: +chainId,
120
- jsonCreateClaimRequest: JSON.stringify(request),
121
- requestSignature
122
- });
123
- return JSON.parse(rslt2.jsonTask);
124
- }
125
- async function completeTask() {
126
- const data = {
127
- task: arg.task,
128
- signatures: responses.map((res) => hexlify(res.signatures?.claimSignature))
129
- };
130
- if (!payer) {
131
- const tx = await contract.taskCompleted(data, arg.taskIndex);
132
- const rslt3 = await tx.wait();
133
- const logs = rslt3?.logs ?? [];
134
- const eventLogs = logs.filter((log) => log instanceof EventLog);
135
- const ev = eventLogs[0];
136
- return {
137
- object: ev?.args,
138
- txHash: rslt3.hash
139
- };
140
- }
141
- const client = getAttestorClientFromPool(payer.attestor);
142
- await client.waitForInit();
143
- const rslt2 = await client.rpc("completeClaimOnChain", {
144
- chainId: +chainId,
145
- taskIndex: Number(arg.taskIndex),
146
- completedTaskJson: JSON.stringify(data)
147
- });
148
- const object = JSON.parse(rslt2.taskCompletedObjectJson);
149
- return { object, txHash: rslt2.txHash };
150
- }
151
- }
152
- function getClaimRequestDifference(a, b) {
153
- if (a.provider !== b.provider) {
154
- return "provider";
155
- }
156
- if (a.context !== b.context) {
157
- return "context";
158
- }
159
- if (a.parameters !== b.parameters) {
160
- return "parameters";
161
- }
162
- if (a.timestampS !== b.timestampS) {
163
- return "timestampS";
164
- }
165
- }
166
- export {
167
- createClaimOnAvs
168
- };
package/lib/avs/config.js DELETED
@@ -1,26 +0,0 @@
1
- import { getEnvVariable } from "#src/utils/env.js";
2
- const CHAIN_CONFIGS = {
3
- "31337": {
4
- rpcUrl: "http://localhost:8545",
5
- contractAddress: "0x84eA74d481Ee0A5332c457a4d796187F6Ba67fEB",
6
- delegationManagerAddress: "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9",
7
- stakeRegistryAddress: "0x9E545E3C0baAB3E08CdfD552C960A1050f373042",
8
- avsDirectoryAddress: "0x5FC8d32690cc91D4c39d9d3abcBD16989F875707"
9
- },
10
- "17000": {
11
- rpcUrl: getEnvVariable("RPC_URL") || "https://rpc.holesky.ethpandaops.io",
12
- contractAddress: "0x0861afc305999bfD3028dB66145395BdD7299366",
13
- delegationManagerAddress: "0xA44151489861Fe9e3055d95adC98FbD462B948e7",
14
- stakeRegistryAddress: "0xDa11C9Da04Ab02C4AF9374B27A5E727944D3E1dD",
15
- avsDirectoryAddress: "0x055733000064333CaDDbC92763c58BF0192fFeBf"
16
- }
17
- };
18
- const PRIVATE_KEY = getEnvVariable("PRIVATE_KEY");
19
- const SELECTED_CHAIN_ID = getEnvVariable("CHAIN_ID");
20
- const RECLAIM_PUBLIC_URL = getEnvVariable("RECLAIM_PUBLIC_URL");
21
- export {
22
- CHAIN_CONFIGS,
23
- PRIVATE_KEY,
24
- RECLAIM_PUBLIC_URL,
25
- SELECTED_CHAIN_ID
26
- };
File without changes
File without changes