@reclaimprotocol/attestor-core 5.0.1-beta.2 → 5.0.1-beta.21

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 (131) hide show
  1. package/browser/resources/attestor-browser.min.mjs +4512 -0
  2. package/lib/external-rpc/index.js +10399 -3
  3. package/lib/index.js +8323 -10
  4. package/package.json +9 -4
  5. package/lib/avs/abis/avsDirectoryABI.js +0 -343
  6. package/lib/avs/abis/delegationABI.js +0 -4
  7. package/lib/avs/abis/registryABI.js +0 -728
  8. package/lib/avs/client/create-claim-on-avs.js +0 -168
  9. package/lib/avs/config.js +0 -26
  10. package/lib/avs/contracts/ReclaimServiceManager.js +0 -0
  11. package/lib/avs/contracts/common.js +0 -0
  12. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1183
  13. package/lib/avs/contracts/factories/index.js +0 -4
  14. package/lib/avs/contracts/index.js +0 -6
  15. package/lib/avs/types/index.js +0 -0
  16. package/lib/avs/utils/contracts.js +0 -53
  17. package/lib/avs/utils/register.js +0 -74
  18. package/lib/avs/utils/tasks.js +0 -48
  19. package/lib/client/create-claim.js +0 -461
  20. package/lib/client/index.js +0 -3
  21. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -53
  22. package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -127
  23. package/lib/client/utils/attestor-pool.js +0 -24
  24. package/lib/client/utils/client-socket.js +0 -120
  25. package/lib/client/utils/message-handler.js +0 -97
  26. package/lib/config/index.js +0 -62
  27. package/lib/external-rpc/benchmark.js +0 -82
  28. package/lib/external-rpc/event-bus.js +0 -17
  29. package/lib/external-rpc/global.d.js +0 -0
  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/check-avs-registration.js +0 -28
  55. package/lib/scripts/fallbacks/crypto.js +0 -4
  56. package/lib/scripts/fallbacks/empty.js +0 -4
  57. package/lib/scripts/fallbacks/re2.js +0 -7
  58. package/lib/scripts/fallbacks/snarkjs.js +0 -10
  59. package/lib/scripts/fallbacks/stwo.js +0 -159
  60. package/lib/scripts/generate-provider-types.js +0 -101
  61. package/lib/scripts/generate-receipt.js +0 -101
  62. package/lib/scripts/generate-toprf-keys.js +0 -24
  63. package/lib/scripts/jsc-cli-rpc.js +0 -35
  64. package/lib/scripts/register-avs-operator.js +0 -3
  65. package/lib/scripts/start-server.js +0 -11
  66. package/lib/scripts/update-avs-metadata.js +0 -20
  67. package/lib/scripts/utils.js +0 -10
  68. package/lib/scripts/whitelist-operator.js +0 -16
  69. package/lib/server/create-server.js +0 -105
  70. package/lib/server/handlers/claimTeeBundle.js +0 -232
  71. package/lib/server/handlers/claimTunnel.js +0 -80
  72. package/lib/server/handlers/completeClaimOnChain.js +0 -29
  73. package/lib/server/handlers/createClaimOnChain.js +0 -32
  74. package/lib/server/handlers/createTaskOnMechain.js +0 -57
  75. package/lib/server/handlers/createTunnel.js +0 -98
  76. package/lib/server/handlers/disconnectTunnel.js +0 -8
  77. package/lib/server/handlers/fetchCertificateBytes.js +0 -57
  78. package/lib/server/handlers/index.js +0 -25
  79. package/lib/server/handlers/init.js +0 -33
  80. package/lib/server/handlers/toprf.js +0 -19
  81. package/lib/server/index.js +0 -4
  82. package/lib/server/socket.js +0 -112
  83. package/lib/server/tunnels/make-tcp-tunnel.js +0 -202
  84. package/lib/server/utils/apm.js +0 -29
  85. package/lib/server/utils/assert-valid-claim-request.js +0 -354
  86. package/lib/server/utils/config-env.js +0 -4
  87. package/lib/server/utils/dns.js +0 -24
  88. package/lib/server/utils/gcp-attestation.js +0 -237
  89. package/lib/server/utils/generics.js +0 -45
  90. package/lib/server/utils/iso.js +0 -259
  91. package/lib/server/utils/keep-alive.js +0 -38
  92. package/lib/server/utils/nitro-attestation.js +0 -249
  93. package/lib/server/utils/oprf-raw.js +0 -61
  94. package/lib/server/utils/process-handshake.js +0 -233
  95. package/lib/server/utils/proxy-session.js +0 -6
  96. package/lib/server/utils/tee-oprf-mpc-verification.js +0 -86
  97. package/lib/server/utils/tee-oprf-verification.js +0 -151
  98. package/lib/server/utils/tee-transcript-reconstruction.js +0 -140
  99. package/lib/server/utils/tee-verification.js +0 -358
  100. package/lib/server/utils/validation.js +0 -45
  101. package/lib/types/bgp.js +0 -0
  102. package/lib/types/claims.js +0 -0
  103. package/lib/types/client.js +0 -0
  104. package/lib/types/general.js +0 -0
  105. package/lib/types/handlers.js +0 -0
  106. package/lib/types/index.js +0 -10
  107. package/lib/types/providers.gen.js +0 -16
  108. package/lib/types/providers.js +0 -0
  109. package/lib/types/rpc.js +0 -0
  110. package/lib/types/signatures.js +0 -0
  111. package/lib/types/tunnel.js +0 -0
  112. package/lib/types/zk.js +0 -0
  113. package/lib/utils/auth.js +0 -71
  114. package/lib/utils/b64-json.js +0 -17
  115. package/lib/utils/bgp-listener.js +0 -123
  116. package/lib/utils/claims.js +0 -89
  117. package/lib/utils/env.js +0 -19
  118. package/lib/utils/error.js +0 -54
  119. package/lib/utils/generics.js +0 -268
  120. package/lib/utils/http-parser.js +0 -201
  121. package/lib/utils/index.js +0 -13
  122. package/lib/utils/logger.js +0 -82
  123. package/lib/utils/prepare-packets.js +0 -69
  124. package/lib/utils/redactions.js +0 -135
  125. package/lib/utils/retries.js +0 -26
  126. package/lib/utils/signatures/eth.js +0 -31
  127. package/lib/utils/signatures/index.js +0 -12
  128. package/lib/utils/socket-base.js +0 -96
  129. package/lib/utils/tls.js +0 -58
  130. package/lib/utils/ws.js +0 -22
  131. 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 "../../avs/config.js";
3
- import { initialiseContracts } from "../../avs/utils/contracts.js";
4
- import { createNewClaimRequestOnChain, signClaimRequest } from "../../avs/utils/tasks.js";
5
- import { createClaimOnAttestor as _createClaimOnAttestor, getAttestorClientFromPool } from "../../client/index.js";
6
- import { AttestorError, canonicalStringify, getIdentifierFromClaimInfo, logger as LOGGER, unixTimestampSeconds } from "../../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 "../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