@reclaimprotocol/attestor-core 5.0.4 → 5.0.5

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 (122) hide show
  1. package/LICENSE +660 -660
  2. package/browser/resources/attestor-browser.min.mjs +31 -31
  3. package/lib/server/tee/acme-http-server.d.ts +13 -0
  4. package/lib/server/tee/attestation-generate.d.ts +29 -0
  5. package/lib/server/tee/bootstrap.d.ts +11 -0
  6. package/lib/server/tee/cert-manager.d.ts +24 -0
  7. package/lib/server/tee/cloud-logging.d.ts +23 -0
  8. package/lib/server/tee/secret-loader.d.ts +10 -0
  9. package/lib/server/tee/secret-manager.d.ts +3 -0
  10. package/lib/utils/gcp-attestation.d.ts +23 -0
  11. package/package.json +3 -3
  12. package/lib/avs/abis/avsDirectoryABI.js +0 -340
  13. package/lib/avs/abis/delegationABI.js +0 -1
  14. package/lib/avs/abis/registryABI.js +0 -725
  15. package/lib/avs/client/create-claim-on-avs.js +0 -138
  16. package/lib/avs/config.js +0 -20
  17. package/lib/avs/contracts/ReclaimServiceManager.js +0 -1
  18. package/lib/avs/contracts/common.js +0 -1
  19. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1169
  20. package/lib/avs/contracts/factories/index.js +0 -4
  21. package/lib/avs/contracts/index.js +0 -2
  22. package/lib/avs/types/index.js +0 -1
  23. package/lib/avs/utils/contracts.js +0 -33
  24. package/lib/avs/utils/register.js +0 -78
  25. package/lib/avs/utils/tasks.js +0 -40
  26. package/lib/client/create-claim.js +0 -433
  27. package/lib/client/index.js +0 -3
  28. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -51
  29. package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -131
  30. package/lib/client/utils/attestor-pool.js +0 -25
  31. package/lib/client/utils/client-socket.js +0 -98
  32. package/lib/client/utils/message-handler.js +0 -87
  33. package/lib/config/index.js +0 -44
  34. package/lib/external-rpc/benchmark.js +0 -69
  35. package/lib/external-rpc/event-bus.js +0 -14
  36. package/lib/external-rpc/handle-incoming-msg.js +0 -233
  37. package/lib/external-rpc/jsc-polyfills/1.js +0 -82
  38. package/lib/external-rpc/jsc-polyfills/2.js +0 -20
  39. package/lib/external-rpc/jsc-polyfills/event.js +0 -14
  40. package/lib/external-rpc/jsc-polyfills/index.js +0 -2
  41. package/lib/external-rpc/jsc-polyfills/ws.js +0 -81
  42. package/lib/external-rpc/setup-browser.js +0 -33
  43. package/lib/external-rpc/setup-jsc.js +0 -22
  44. package/lib/external-rpc/types.js +0 -1
  45. package/lib/external-rpc/utils.js +0 -100
  46. package/lib/external-rpc/zk.js +0 -63
  47. package/lib/mechain/abis/governanceABI.js +0 -458
  48. package/lib/mechain/abis/taskABI.js +0 -509
  49. package/lib/mechain/client/create-claim-on-mechain.js +0 -28
  50. package/lib/mechain/client/index.js +0 -1
  51. package/lib/mechain/constants/index.js +0 -3
  52. package/lib/mechain/index.js +0 -2
  53. package/lib/mechain/types/index.js +0 -1
  54. package/lib/proto/api.js +0 -4273
  55. package/lib/proto/tee-bundle.js +0 -1316
  56. package/lib/providers/http/index.js +0 -658
  57. package/lib/providers/http/patch-parse5-tree.js +0 -33
  58. package/lib/providers/http/utils.js +0 -324
  59. package/lib/providers/index.js +0 -4
  60. package/lib/scripts/fetch-ec2-metadata.d.ts +0 -1
  61. package/lib/server/create-server.js +0 -103
  62. package/lib/server/handlers/claimTeeBundle.js +0 -252
  63. package/lib/server/handlers/claimTunnel.js +0 -73
  64. package/lib/server/handlers/completeClaimOnChain.js +0 -22
  65. package/lib/server/handlers/createClaimOnChain.js +0 -26
  66. package/lib/server/handlers/createTaskOnMechain.js +0 -47
  67. package/lib/server/handlers/createTunnel.js +0 -93
  68. package/lib/server/handlers/disconnectTunnel.js +0 -5
  69. package/lib/server/handlers/fetchCertificateBytes.js +0 -41
  70. package/lib/server/handlers/index.js +0 -22
  71. package/lib/server/handlers/init.js +0 -32
  72. package/lib/server/handlers/toprf.js +0 -16
  73. package/lib/server/index.js +0 -4
  74. package/lib/server/socket.js +0 -109
  75. package/lib/server/tunnels/make-tcp-tunnel.js +0 -177
  76. package/lib/server/utils/apm.js +0 -36
  77. package/lib/server/utils/assert-valid-claim-request.js +0 -204
  78. package/lib/server/utils/config-env.js +0 -4
  79. package/lib/server/utils/dns.js +0 -18
  80. package/lib/server/utils/gcp-attestation.js +0 -289
  81. package/lib/server/utils/generics.js +0 -51
  82. package/lib/server/utils/iso.js +0 -256
  83. package/lib/server/utils/keep-alive.js +0 -38
  84. package/lib/server/utils/nitro-attestation.js +0 -325
  85. package/lib/server/utils/process-handshake.js +0 -215
  86. package/lib/server/utils/proxy-session.js +0 -6
  87. package/lib/server/utils/tee-oprf-mpc-verification.js +0 -90
  88. package/lib/server/utils/tee-oprf-verification.js +0 -174
  89. package/lib/server/utils/tee-transcript-reconstruction.js +0 -187
  90. package/lib/server/utils/tee-verification.js +0 -421
  91. package/lib/server/utils/validation.js +0 -38
  92. package/lib/types/bgp.js +0 -1
  93. package/lib/types/claims.js +0 -1
  94. package/lib/types/client.js +0 -1
  95. package/lib/types/general.js +0 -1
  96. package/lib/types/handlers.js +0 -1
  97. package/lib/types/index.js +0 -10
  98. package/lib/types/providers.gen.js +0 -10
  99. package/lib/types/providers.js +0 -1
  100. package/lib/types/rpc.js +0 -1
  101. package/lib/types/signatures.js +0 -1
  102. package/lib/types/tunnel.js +0 -1
  103. package/lib/types/zk.js +0 -1
  104. package/lib/utils/auth.js +0 -59
  105. package/lib/utils/b64-json.js +0 -17
  106. package/lib/utils/bgp-listener.js +0 -119
  107. package/lib/utils/claims.js +0 -99
  108. package/lib/utils/env.js +0 -15
  109. package/lib/utils/error.js +0 -50
  110. package/lib/utils/generics.js +0 -317
  111. package/lib/utils/http-parser.js +0 -246
  112. package/lib/utils/index.js +0 -13
  113. package/lib/utils/logger.js +0 -91
  114. package/lib/utils/prepare-packets.js +0 -62
  115. package/lib/utils/redactions.js +0 -148
  116. package/lib/utils/retries.js +0 -24
  117. package/lib/utils/signatures/eth.js +0 -29
  118. package/lib/utils/signatures/index.js +0 -7
  119. package/lib/utils/socket-base.js +0 -90
  120. package/lib/utils/tls.js +0 -58
  121. package/lib/utils/ws.js +0 -22
  122. package/lib/utils/zk.js +0 -577
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Ephemeral HTTP server that answers ACME HTTP-01 challenges. Started right
3
+ * before an order is placed and stopped as soon as the order is finalized,
4
+ * so the attestor does not keep port 80 bound during normal operation.
5
+ */
6
+ export declare class AcmeChallengeServer {
7
+ private readonly tokens;
8
+ private server?;
9
+ add(token: string, keyAuthorization: string): void;
10
+ remove(token: string): void;
11
+ start(port: number): Promise<void>;
12
+ stop(): Promise<void>;
13
+ }
@@ -0,0 +1,29 @@
1
+ import type { AttestationReport } from '#src/proto/tee-bundle.ts';
2
+ /**
3
+ * Requests a custom attestation token from the Confidential Space launcher
4
+ * over the unix domain socket. Mirrors reclaim-tee's shared/gcp_attestation.go.
5
+ */
6
+ export declare function generateAttestationJwt(nonces: string[]): Promise<Uint8Array>;
7
+ export interface AttestationContext {
8
+ attestorAddress: string;
9
+ tlsCertSha256Hex: () => string | undefined;
10
+ }
11
+ /**
12
+ * Starts the background attestation refresh loop. The first attestation is
13
+ * generated synchronously so getCachedAttestationJwt() is ready by the time
14
+ * the server begins handling claims.
15
+ */
16
+ export declare function startAttestationRefresh(ctx: AttestationContext): Promise<void>;
17
+ export declare function stopAttestationRefresh(): void;
18
+ /**
19
+ * Returns the currently-cached attestation JWT bytes, or undefined if no
20
+ * attestation has been generated yet or the cache has expired without a
21
+ * successful refresh.
22
+ */
23
+ export declare function getCachedAttestationJwt(): Uint8Array | undefined;
24
+ /**
25
+ * Returns an AttestationReport ready to embed in a claim response, or
26
+ * undefined when no attestation is available (i.e. attestor is not running
27
+ * inside a TEE, or the refresh loop has not produced one yet).
28
+ */
29
+ export declare function makeClaimAttestation(): AttestationReport | undefined;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Brings the attestor up in TEE mode:
3
+ * 1. Pull signing/OPRF secrets from GCP Secret Manager into process.env.
4
+ * 2. Load (or obtain via ACME) the TLS cert and start the renewal loop.
5
+ * 3. Start the attestation refresh loop, with the public key + cert hash
6
+ * as nonces.
7
+ *
8
+ * Must run before #src/server/index.ts is imported, since modules in that
9
+ * tree read PRIVATE_KEY at module load.
10
+ */
11
+ export declare function bootstrapTee(): Promise<void>;
@@ -0,0 +1,24 @@
1
+ import tls from 'tls';
2
+ export interface CertManagerConfig {
3
+ projectId: string;
4
+ domain: string;
5
+ email: string;
6
+ directoryUrl: string;
7
+ httpChallengePort: number;
8
+ }
9
+ export interface ActiveCertificate {
10
+ certPem: string;
11
+ keyPem: string;
12
+ notAfter: Date;
13
+ sha256Hex: string;
14
+ secureContext: tls.SecureContext;
15
+ }
16
+ /**
17
+ * Bootstraps the TLS certificate. Tries Secret Manager first; if absent or
18
+ * expiring within the renewal window, runs ACME against the configured
19
+ * directory URL and persists the result.
20
+ */
21
+ export declare function bootstrapCertificate(cfg: CertManagerConfig): Promise<ActiveCertificate>;
22
+ export declare function startRenewalLoop(cfg: CertManagerConfig): void;
23
+ export declare function stopRenewalLoop(): void;
24
+ export declare function getActiveCertificate(): ActiveCertificate | undefined;
@@ -0,0 +1,23 @@
1
+ import type { LogLevel } from '#src/types/index.ts';
2
+ interface CloudLoggingOptions {
3
+ projectId: string;
4
+ logName: string;
5
+ level?: LogLevel;
6
+ }
7
+ /**
8
+ * Replaces the default pino logger with one that forwards every log line
9
+ * to GCP Cloud Logging under the given log name. Idempotent.
10
+ *
11
+ * Probes the Cloud Logging client first by writing a no-op entry; if
12
+ * authentication or transport fails, leaves the default stdout logger in
13
+ * place rather than crashing the process. On Confidential Space VMs the
14
+ * launcher's `tee-container-log-redirect` ships stdout to Cloud Logging
15
+ * anyway, so the worst case is logs appear under
16
+ * `confidential-space-launcher` rather than the configured `logName`.
17
+ *
18
+ * We also install a process-wide `unhandledRejection` filter that
19
+ * swallows errors originating in `@google-cloud/logging`, since the SDK
20
+ * has internal lazy gRPC init that escapes our local `.catch()`.
21
+ */
22
+ export declare function installCloudLogging(opts: CloudLoggingOptions): void;
23
+ export {};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Fetches the attestor's signing key and OPRF key material from GCP
3
+ * Secret Manager and writes them into process.env, so that the rest of
4
+ * the server (which reads these via getEnvVariable at module load) sees
5
+ * them as if they had been set in the environment.
6
+ *
7
+ * Must be called before any module that reads PRIVATE_KEY / TOPRF_* is
8
+ * imported, otherwise the reads happen before the values are populated.
9
+ */
10
+ export declare function loadSecretsIntoEnv(projectId: string): Promise<void>;
@@ -0,0 +1,3 @@
1
+ export declare function accessLatestSecret(projectId: string, secretId: string): Promise<Uint8Array>;
2
+ export declare function createSecretIfNotExists(projectId: string, secretId: string): Promise<void>;
3
+ export declare function addSecretVersion(projectId: string, secretId: string, payload: Uint8Array): Promise<void>;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * GCP attestation validation utilities.
3
+ *
4
+ * Validates JWT attestation tokens from GCP Confidential Computing
5
+ * (Confidential Space). Browser-safe: uses `@peculiar/x509` for chain
6
+ * verification and `globalThis.crypto.subtle` for JWT signature
7
+ * verification. Both are available in Node 19+ and modern browsers.
8
+ */
9
+ import type { Logger } from '#src/types/general.ts';
10
+ export interface GcpValidationResult {
11
+ isValid: boolean;
12
+ errors: string[];
13
+ ethAddress?: Uint8Array;
14
+ userDataType?: string;
15
+ pcr0?: string;
16
+ envVars?: Record<string, string>;
17
+ }
18
+ export declare function validateGcpAttestationAndExtractKey(attestation: Uint8Array | string, logger?: Logger): Promise<GcpValidationResult>;
19
+ /**
20
+ * Extracts the container image digest from a previously-validated GCP
21
+ * attestation token. Re-validates the JWT before reading.
22
+ */
23
+ export declare function extractImageDigestFromGCPAttestation(token: Uint8Array | string, logger?: Logger): Promise<string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reclaimprotocol/attestor-core",
3
- "version": "5.0.4",
3
+ "version": "5.0.5",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "imports": {
@@ -105,9 +105,9 @@
105
105
  "parse5": "^8.0.0",
106
106
  "parse5-htmlparser2-tree-adapter": "^8.0.0",
107
107
  "pino": "^9.14.0",
108
- "re2": "^1.24.0",
108
+ "re2": "^1.23.3",
109
109
  "serve-static": "^1.16.3",
110
- "snarkjs": "git+https://github.com/reclaimprotocol/snarkjs.git",
110
+ "snarkjs": "^0.7.6",
111
111
  "ws": "^8.20.0",
112
112
  "xpath": "^0.0.34"
113
113
  },
@@ -1,340 +0,0 @@
1
- export const avsDirectoryABI = [
2
- {
3
- type: "constructor",
4
- inputs: [
5
- {
6
- name: "_delegation",
7
- type: "address",
8
- internalType: "contract IDelegationManager",
9
- },
10
- ],
11
- stateMutability: "nonpayable",
12
- },
13
- {
14
- type: "function",
15
- name: "DOMAIN_TYPEHASH",
16
- inputs: [],
17
- outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
18
- stateMutability: "view",
19
- },
20
- {
21
- type: "function",
22
- name: "OPERATOR_AVS_REGISTRATION_TYPEHASH",
23
- inputs: [],
24
- outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
25
- stateMutability: "view",
26
- },
27
- {
28
- type: "function",
29
- name: "avsOperatorStatus",
30
- inputs: [
31
- { name: "", type: "address", internalType: "address" },
32
- { name: "", type: "address", internalType: "address" },
33
- ],
34
- outputs: [
35
- {
36
- name: "",
37
- type: "uint8",
38
- internalType: "enum IAVSDirectory.OperatorAVSRegistrationStatus",
39
- },
40
- ],
41
- stateMutability: "view",
42
- },
43
- {
44
- type: "function",
45
- name: "calculateOperatorAVSRegistrationDigestHash",
46
- inputs: [
47
- { name: "operator", type: "address", internalType: "address" },
48
- { name: "avs", type: "address", internalType: "address" },
49
- { name: "salt", type: "bytes32", internalType: "bytes32" },
50
- { name: "expiry", type: "uint256", internalType: "uint256" },
51
- ],
52
- outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
53
- stateMutability: "view",
54
- },
55
- {
56
- type: "function",
57
- name: "cancelSalt",
58
- inputs: [{ name: "salt", type: "bytes32", internalType: "bytes32" }],
59
- outputs: [],
60
- stateMutability: "nonpayable",
61
- },
62
- {
63
- type: "function",
64
- name: "delegation",
65
- inputs: [],
66
- outputs: [
67
- {
68
- name: "",
69
- type: "address",
70
- internalType: "contract IDelegationManager",
71
- },
72
- ],
73
- stateMutability: "view",
74
- },
75
- {
76
- type: "function",
77
- name: "deregisterOperatorFromAVS",
78
- inputs: [{ name: "operator", type: "address", internalType: "address" }],
79
- outputs: [],
80
- stateMutability: "nonpayable",
81
- },
82
- {
83
- type: "function",
84
- name: "domainSeparator",
85
- inputs: [],
86
- outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
87
- stateMutability: "view",
88
- },
89
- {
90
- type: "function",
91
- name: "initialize",
92
- inputs: [
93
- { name: "initialOwner", type: "address", internalType: "address" },
94
- {
95
- name: "_pauserRegistry",
96
- type: "address",
97
- internalType: "contract IPauserRegistry",
98
- },
99
- { name: "initialPausedStatus", type: "uint256", internalType: "uint256" },
100
- ],
101
- outputs: [],
102
- stateMutability: "nonpayable",
103
- },
104
- {
105
- type: "function",
106
- name: "operatorSaltIsSpent",
107
- inputs: [
108
- { name: "", type: "address", internalType: "address" },
109
- { name: "", type: "bytes32", internalType: "bytes32" },
110
- ],
111
- outputs: [{ name: "", type: "bool", internalType: "bool" }],
112
- stateMutability: "view",
113
- },
114
- {
115
- type: "function",
116
- name: "owner",
117
- inputs: [],
118
- outputs: [{ name: "", type: "address", internalType: "address" }],
119
- stateMutability: "view",
120
- },
121
- {
122
- type: "function",
123
- name: "pause",
124
- inputs: [
125
- { name: "newPausedStatus", type: "uint256", internalType: "uint256" },
126
- ],
127
- outputs: [],
128
- stateMutability: "nonpayable",
129
- },
130
- {
131
- type: "function",
132
- name: "pauseAll",
133
- inputs: [],
134
- outputs: [],
135
- stateMutability: "nonpayable",
136
- },
137
- {
138
- type: "function",
139
- name: "paused",
140
- inputs: [{ name: "index", type: "uint8", internalType: "uint8" }],
141
- outputs: [{ name: "", type: "bool", internalType: "bool" }],
142
- stateMutability: "view",
143
- },
144
- {
145
- type: "function",
146
- name: "paused",
147
- inputs: [],
148
- outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
149
- stateMutability: "view",
150
- },
151
- {
152
- type: "function",
153
- name: "pauserRegistry",
154
- inputs: [],
155
- outputs: [
156
- { name: "", type: "address", internalType: "contract IPauserRegistry" },
157
- ],
158
- stateMutability: "view",
159
- },
160
- {
161
- type: "function",
162
- name: "registerOperatorToAVS",
163
- inputs: [
164
- { name: "operator", type: "address", internalType: "address" },
165
- {
166
- name: "operatorSignature",
167
- type: "tuple",
168
- internalType: "struct ISignatureUtils.SignatureWithSaltAndExpiry",
169
- components: [
170
- { name: "signature", type: "bytes", internalType: "bytes" },
171
- { name: "salt", type: "bytes32", internalType: "bytes32" },
172
- { name: "expiry", type: "uint256", internalType: "uint256" },
173
- ],
174
- },
175
- ],
176
- outputs: [],
177
- stateMutability: "nonpayable",
178
- },
179
- {
180
- type: "function",
181
- name: "renounceOwnership",
182
- inputs: [],
183
- outputs: [],
184
- stateMutability: "nonpayable",
185
- },
186
- {
187
- type: "function",
188
- name: "setPauserRegistry",
189
- inputs: [
190
- {
191
- name: "newPauserRegistry",
192
- type: "address",
193
- internalType: "contract IPauserRegistry",
194
- },
195
- ],
196
- outputs: [],
197
- stateMutability: "nonpayable",
198
- },
199
- {
200
- type: "function",
201
- name: "transferOwnership",
202
- inputs: [{ name: "newOwner", type: "address", internalType: "address" }],
203
- outputs: [],
204
- stateMutability: "nonpayable",
205
- },
206
- {
207
- type: "function",
208
- name: "unpause",
209
- inputs: [
210
- { name: "newPausedStatus", type: "uint256", internalType: "uint256" },
211
- ],
212
- outputs: [],
213
- stateMutability: "nonpayable",
214
- },
215
- {
216
- type: "function",
217
- name: "updateAVSMetadataURI",
218
- inputs: [{ name: "metadataURI", type: "string", internalType: "string" }],
219
- outputs: [],
220
- stateMutability: "nonpayable",
221
- },
222
- {
223
- type: "event",
224
- name: "AVSMetadataURIUpdated",
225
- inputs: [
226
- { name: "avs", type: "address", indexed: true, internalType: "address" },
227
- {
228
- name: "metadataURI",
229
- type: "string",
230
- indexed: false,
231
- internalType: "string",
232
- },
233
- ],
234
- anonymous: false,
235
- },
236
- {
237
- type: "event",
238
- name: "Initialized",
239
- inputs: [
240
- { name: "version", type: "uint8", indexed: false, internalType: "uint8" },
241
- ],
242
- anonymous: false,
243
- },
244
- {
245
- type: "event",
246
- name: "OperatorAVSRegistrationStatusUpdated",
247
- inputs: [
248
- {
249
- name: "operator",
250
- type: "address",
251
- indexed: true,
252
- internalType: "address",
253
- },
254
- { name: "avs", type: "address", indexed: true, internalType: "address" },
255
- {
256
- name: "status",
257
- type: "uint8",
258
- indexed: false,
259
- internalType: "enum IAVSDirectory.OperatorAVSRegistrationStatus",
260
- },
261
- ],
262
- anonymous: false,
263
- },
264
- {
265
- type: "event",
266
- name: "OwnershipTransferred",
267
- inputs: [
268
- {
269
- name: "previousOwner",
270
- type: "address",
271
- indexed: true,
272
- internalType: "address",
273
- },
274
- {
275
- name: "newOwner",
276
- type: "address",
277
- indexed: true,
278
- internalType: "address",
279
- },
280
- ],
281
- anonymous: false,
282
- },
283
- {
284
- type: "event",
285
- name: "Paused",
286
- inputs: [
287
- {
288
- name: "account",
289
- type: "address",
290
- indexed: true,
291
- internalType: "address",
292
- },
293
- {
294
- name: "newPausedStatus",
295
- type: "uint256",
296
- indexed: false,
297
- internalType: "uint256",
298
- },
299
- ],
300
- anonymous: false,
301
- },
302
- {
303
- type: "event",
304
- name: "PauserRegistrySet",
305
- inputs: [
306
- {
307
- name: "pauserRegistry",
308
- type: "address",
309
- indexed: false,
310
- internalType: "contract IPauserRegistry",
311
- },
312
- {
313
- name: "newPauserRegistry",
314
- type: "address",
315
- indexed: false,
316
- internalType: "contract IPauserRegistry",
317
- },
318
- ],
319
- anonymous: false,
320
- },
321
- {
322
- type: "event",
323
- name: "Unpaused",
324
- inputs: [
325
- {
326
- name: "account",
327
- type: "address",
328
- indexed: true,
329
- internalType: "address",
330
- },
331
- {
332
- name: "newPausedStatus",
333
- type: "uint256",
334
- indexed: false,
335
- internalType: "uint256",
336
- },
337
- ],
338
- anonymous: false,
339
- },
340
- ];
@@ -1 +0,0 @@
1
- export const delegationABI = [{ "type": "function", "name": "DELEGATION_APPROVAL_TYPEHASH", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "DOMAIN_TYPEHASH", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "STAKER_DELEGATION_TYPEHASH", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "beaconChainETHStrategy", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract IStrategy" }], "stateMutability": "view" }, { "type": "function", "name": "calculateCurrentStakerDelegationDigestHash", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "operator", "type": "address", "internalType": "address" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "calculateDelegationApprovalDigestHash", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "operator", "type": "address", "internalType": "address" }, { "name": "_delegationApprover", "type": "address", "internalType": "address" }, { "name": "approverSalt", "type": "bytes32", "internalType": "bytes32" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "calculateStakerDelegationDigestHash", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "_stakerNonce", "type": "uint256", "internalType": "uint256" }, { "name": "operator", "type": "address", "internalType": "address" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "calculateWithdrawalRoot", "inputs": [{ "name": "withdrawal", "type": "tuple", "internalType": "struct IDelegationManager.Withdrawal", "components": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "delegatedTo", "type": "address", "internalType": "address" }, { "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "startBlock", "type": "uint32", "internalType": "uint32" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }] }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "pure" }, { "type": "function", "name": "completeQueuedWithdrawal", "inputs": [{ "name": "withdrawal", "type": "tuple", "internalType": "struct IDelegationManager.Withdrawal", "components": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "delegatedTo", "type": "address", "internalType": "address" }, { "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "startBlock", "type": "uint32", "internalType": "uint32" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }] }, { "name": "tokens", "type": "address[]", "internalType": "contract IERC20[]" }, { "name": "middlewareTimesIndex", "type": "uint256", "internalType": "uint256" }, { "name": "receiveAsTokens", "type": "bool", "internalType": "bool" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "completeQueuedWithdrawals", "inputs": [{ "name": "withdrawals", "type": "tuple[]", "internalType": "struct IDelegationManager.Withdrawal[]", "components": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "delegatedTo", "type": "address", "internalType": "address" }, { "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "startBlock", "type": "uint32", "internalType": "uint32" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }] }, { "name": "tokens", "type": "address[][]", "internalType": "contract IERC20[][]" }, { "name": "middlewareTimesIndexes", "type": "uint256[]", "internalType": "uint256[]" }, { "name": "receiveAsTokens", "type": "bool[]", "internalType": "bool[]" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "cumulativeWithdrawalsQueued", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "decreaseDelegatedShares", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "strategy", "type": "address", "internalType": "contract IStrategy" }, { "name": "shares", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "delegateTo", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }, { "name": "approverSignatureAndExpiry", "type": "tuple", "internalType": "struct ISignatureUtils.SignatureWithExpiry", "components": [{ "name": "signature", "type": "bytes", "internalType": "bytes" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }] }, { "name": "approverSalt", "type": "bytes32", "internalType": "bytes32" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "delegateToBySignature", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "operator", "type": "address", "internalType": "address" }, { "name": "stakerSignatureAndExpiry", "type": "tuple", "internalType": "struct ISignatureUtils.SignatureWithExpiry", "components": [{ "name": "signature", "type": "bytes", "internalType": "bytes" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }] }, { "name": "approverSignatureAndExpiry", "type": "tuple", "internalType": "struct ISignatureUtils.SignatureWithExpiry", "components": [{ "name": "signature", "type": "bytes", "internalType": "bytes" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }] }, { "name": "approverSalt", "type": "bytes32", "internalType": "bytes32" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "delegatedTo", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "delegationApprover", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "delegationApproverSaltIsSpent", "inputs": [{ "name": "_delegationApprover", "type": "address", "internalType": "address" }, { "name": "salt", "type": "bytes32", "internalType": "bytes32" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "domainSeparator", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "earningsReceiver", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "getOperatorShares", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }], "outputs": [{ "name": "", "type": "uint256[]", "internalType": "uint256[]" }], "stateMutability": "view" }, { "type": "function", "name": "getWithdrawalDelay", "inputs": [{ "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "increaseDelegatedShares", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "strategy", "type": "address", "internalType": "contract IStrategy" }, { "name": "shares", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "isDelegated", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "isOperator", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "migrateQueuedWithdrawals", "inputs": [{ "name": "withdrawalsToQueue", "type": "tuple[]", "internalType": "struct IStrategyManager.DeprecatedStruct_QueuedWithdrawal[]", "components": [{ "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }, { "name": "staker", "type": "address", "internalType": "address" }, { "name": "withdrawerAndNonce", "type": "tuple", "internalType": "struct IStrategyManager.DeprecatedStruct_WithdrawerAndNonce", "components": [{ "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint96", "internalType": "uint96" }] }, { "name": "withdrawalStartBlock", "type": "uint32", "internalType": "uint32" }, { "name": "delegatedAddress", "type": "address", "internalType": "address" }] }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "minWithdrawalDelayBlocks", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "modifyOperatorDetails", "inputs": [{ "name": "newOperatorDetails", "type": "tuple", "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "operatorDetails", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }], "stateMutability": "view" }, { "type": "function", "name": "operatorShares", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }, { "name": "strategy", "type": "address", "internalType": "contract IStrategy" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "queueWithdrawals", "inputs": [{ "name": "queuedWithdrawalParams", "type": "tuple[]", "internalType": "struct IDelegationManager.QueuedWithdrawalParams[]", "components": [{ "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }, { "name": "withdrawer", "type": "address", "internalType": "address" }] }], "outputs": [{ "name": "", "type": "bytes32[]", "internalType": "bytes32[]" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "registerAsOperator", "inputs": [{ "name": "registeringOperatorDetails", "type": "tuple", "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }, { "name": "metadataURI", "type": "string", "internalType": "string" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "stakerNonce", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "stakerOptOutWindowBlocks", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "strategyWithdrawalDelayBlocks", "inputs": [{ "name": "strategy", "type": "address", "internalType": "contract IStrategy" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "undelegate", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "withdrawalRoot", "type": "bytes32[]", "internalType": "bytes32[]" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "updateOperatorMetadataURI", "inputs": [{ "name": "metadataURI", "type": "string", "internalType": "string" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "MinWithdrawalDelayBlocksSet", "inputs": [{ "name": "previousValue", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "newValue", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "OperatorDetailsModified", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "newOperatorDetails", "type": "tuple", "indexed": false, "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }], "anonymous": false }, { "type": "event", "name": "OperatorMetadataURIUpdated", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "metadataURI", "type": "string", "indexed": false, "internalType": "string" }], "anonymous": false }, { "type": "event", "name": "OperatorRegistered", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "operatorDetails", "type": "tuple", "indexed": false, "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }], "anonymous": false }, { "type": "event", "name": "OperatorSharesDecreased", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "staker", "type": "address", "indexed": false, "internalType": "address" }, { "name": "strategy", "type": "address", "indexed": false, "internalType": "contract IStrategy" }, { "name": "shares", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "OperatorSharesIncreased", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "staker", "type": "address", "indexed": false, "internalType": "address" }, { "name": "strategy", "type": "address", "indexed": false, "internalType": "contract IStrategy" }, { "name": "shares", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakerDelegated", "inputs": [{ "name": "staker", "type": "address", "indexed": true, "internalType": "address" }, { "name": "operator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StakerForceUndelegated", "inputs": [{ "name": "staker", "type": "address", "indexed": true, "internalType": "address" }, { "name": "operator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StakerUndelegated", "inputs": [{ "name": "staker", "type": "address", "indexed": true, "internalType": "address" }, { "name": "operator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StrategyWithdrawalDelayBlocksSet", "inputs": [{ "name": "strategy", "type": "address", "indexed": false, "internalType": "contract IStrategy" }, { "name": "previousValue", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "newValue", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "WithdrawalCompleted", "inputs": [{ "name": "withdrawalRoot", "type": "bytes32", "indexed": false, "internalType": "bytes32" }], "anonymous": false }, { "type": "event", "name": "WithdrawalMigrated", "inputs": [{ "name": "oldWithdrawalRoot", "type": "bytes32", "indexed": false, "internalType": "bytes32" }, { "name": "newWithdrawalRoot", "type": "bytes32", "indexed": false, "internalType": "bytes32" }], "anonymous": false }, { "type": "event", "name": "WithdrawalQueued", "inputs": [{ "name": "withdrawalRoot", "type": "bytes32", "indexed": false, "internalType": "bytes32" }, { "name": "withdrawal", "type": "tuple", "indexed": false, "internalType": "struct IDelegationManager.Withdrawal", "components": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "delegatedTo", "type": "address", "internalType": "address" }, { "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "startBlock", "type": "uint32", "internalType": "uint32" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }] }], "anonymous": false }];