@openzeppelin/guardian-operator-client 0.14.3
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.
- package/README.md +91 -0
- package/dist/http.d.ts +29 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +306 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/server-types.d.ts +50 -0
- package/dist/server-types.d.ts.map +1 -0
- package/dist/server-types.js +2 -0
- package/dist/server-types.js.map +1 -0
- package/dist/types.d.ts +60 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +39 -0
package/README.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# @openzeppelin/guardian-operator-client
|
|
2
|
+
|
|
3
|
+
TypeScript HTTP client for Guardian operator dashboard endpoints.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @openzeppelin/guardian-operator-client
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { GuardianOperatorHttpClient } from '@openzeppelin/guardian-operator-client';
|
|
15
|
+
|
|
16
|
+
const client = new GuardianOperatorHttpClient({
|
|
17
|
+
baseUrl: 'http://localhost:3000',
|
|
18
|
+
credentials: 'include',
|
|
19
|
+
});
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
### Request A Challenge
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
const challenge = await client.challenge('0x...');
|
|
28
|
+
console.log(challenge.challenge.signingDigest);
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Verify A Signed Challenge
|
|
32
|
+
|
|
33
|
+
The package does not talk to wallets or sign challenges. Callers provide the
|
|
34
|
+
commitment and signature.
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
const verified = await client.verify({
|
|
38
|
+
commitment: '0x...',
|
|
39
|
+
signature: '0x...',
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
console.log(verified.operatorId);
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### List Accounts
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
const response = await client.listAccounts();
|
|
49
|
+
console.log(response.totalCount);
|
|
50
|
+
console.log(response.accounts[0]?.accountId);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Fetch One Account
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
const response = await client.getAccount('0x...');
|
|
57
|
+
console.log(response.account.authorizedSignerIds);
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Logout
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
await client.logout();
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Cookie Transport
|
|
67
|
+
|
|
68
|
+
The Guardian operator session is cookie-based. This package does not manage a
|
|
69
|
+
cookie jar. Configure `credentials` or a custom `fetch` implementation
|
|
70
|
+
appropriate for your runtime.
|
|
71
|
+
|
|
72
|
+
## Error Handling
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
import {
|
|
76
|
+
GuardianOperatorContractError,
|
|
77
|
+
GuardianOperatorHttpError,
|
|
78
|
+
} from '@openzeppelin/guardian-operator-client';
|
|
79
|
+
|
|
80
|
+
try {
|
|
81
|
+
await client.listAccounts();
|
|
82
|
+
} catch (error) {
|
|
83
|
+
if (error instanceof GuardianOperatorHttpError) {
|
|
84
|
+
console.error(error.status, error.data?.error);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (error instanceof GuardianOperatorContractError) {
|
|
88
|
+
console.error(error.message);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
package/dist/http.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { DashboardAccountResponse, DashboardAccountsResponse, GuardianOperatorHttpClientOptions, GuardianOperatorHttpErrorData, LogoutOperatorResponse, OperatorChallengeResponse, VerifyOperatorRequest, VerifyOperatorResponse } from './types.js';
|
|
2
|
+
export declare class GuardianOperatorHttpError extends Error {
|
|
3
|
+
readonly status: number;
|
|
4
|
+
readonly statusText: string;
|
|
5
|
+
readonly body: string;
|
|
6
|
+
readonly data: GuardianOperatorHttpErrorData | null;
|
|
7
|
+
readonly retryAfterSecs?: number;
|
|
8
|
+
constructor(status: number, statusText: string, body: string, data: GuardianOperatorHttpErrorData | null);
|
|
9
|
+
}
|
|
10
|
+
export declare class GuardianOperatorContractError extends Error {
|
|
11
|
+
readonly context: string;
|
|
12
|
+
constructor(context: string, message: string);
|
|
13
|
+
}
|
|
14
|
+
export declare class GuardianOperatorHttpClient {
|
|
15
|
+
private readonly baseUrl;
|
|
16
|
+
private readonly fetchImpl;
|
|
17
|
+
private readonly credentials?;
|
|
18
|
+
private readonly defaultHeaders;
|
|
19
|
+
constructor(baseUrl: string);
|
|
20
|
+
constructor(options: GuardianOperatorHttpClientOptions);
|
|
21
|
+
challenge(commitment: string): Promise<OperatorChallengeResponse>;
|
|
22
|
+
verify(request: VerifyOperatorRequest): Promise<VerifyOperatorResponse>;
|
|
23
|
+
logout(): Promise<LogoutOperatorResponse>;
|
|
24
|
+
listAccounts(): Promise<DashboardAccountsResponse>;
|
|
25
|
+
getAccount(accountId: string): Promise<DashboardAccountResponse>;
|
|
26
|
+
private request;
|
|
27
|
+
private toHttpError;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,wBAAwB,EAExB,yBAAyB,EAEzB,iCAAiC,EACjC,6BAA6B,EAC7B,sBAAsB,EAEtB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,qBAAa,yBAA0B,SAAQ,KAAK;aAIhC,MAAM,EAAE,MAAM;aACd,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,6BAA6B,GAAG,IAAI;IAN5D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;gBAGf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,6BAA6B,GAAG,IAAI;CAU7D;AAED,qBAAa,6BAA8B,SAAQ,KAAK;aAEpC,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM,EAC/B,OAAO,EAAE,MAAM;CAKlB;AAED,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;gBAE7B,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,iCAAiC;IAahD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAMjE,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAcvE,MAAM,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAQzC,YAAY,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAQlD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;YASxD,OAAO;YA4BP,WAAW;CAU1B"}
|
package/dist/http.js
ADDED
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
export class GuardianOperatorHttpError extends Error {
|
|
2
|
+
status;
|
|
3
|
+
statusText;
|
|
4
|
+
body;
|
|
5
|
+
data;
|
|
6
|
+
retryAfterSecs;
|
|
7
|
+
constructor(status, statusText, body, data) {
|
|
8
|
+
super(`Guardian operator HTTP error ${status}: ${statusText}${data ? ` - ${data.error}` : body ? ` - ${body}` : ''}`);
|
|
9
|
+
this.status = status;
|
|
10
|
+
this.statusText = statusText;
|
|
11
|
+
this.body = body;
|
|
12
|
+
this.data = data;
|
|
13
|
+
this.name = 'GuardianOperatorHttpError';
|
|
14
|
+
this.retryAfterSecs = data?.retryAfterSecs;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class GuardianOperatorContractError extends Error {
|
|
18
|
+
context;
|
|
19
|
+
constructor(context, message) {
|
|
20
|
+
super(`${context}: ${message}`);
|
|
21
|
+
this.context = context;
|
|
22
|
+
this.name = 'GuardianOperatorContractError';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class GuardianOperatorHttpClient {
|
|
26
|
+
baseUrl;
|
|
27
|
+
fetchImpl;
|
|
28
|
+
credentials;
|
|
29
|
+
defaultHeaders;
|
|
30
|
+
constructor(baseUrlOrOptions) {
|
|
31
|
+
const options = typeof baseUrlOrOptions === 'string'
|
|
32
|
+
? { baseUrl: baseUrlOrOptions }
|
|
33
|
+
: baseUrlOrOptions;
|
|
34
|
+
this.baseUrl = normalizeBaseUrl(options.baseUrl);
|
|
35
|
+
this.fetchImpl = resolveFetch(options.fetch);
|
|
36
|
+
this.credentials = options.credentials;
|
|
37
|
+
this.defaultHeaders = new Headers(options.headers);
|
|
38
|
+
}
|
|
39
|
+
async challenge(commitment) {
|
|
40
|
+
const url = new URL('auth/challenge', this.baseUrl);
|
|
41
|
+
url.searchParams.set('commitment', commitment);
|
|
42
|
+
return this.request(url, { method: 'GET' }, parseChallengeResponse);
|
|
43
|
+
}
|
|
44
|
+
async verify(request) {
|
|
45
|
+
return this.request(new URL('auth/verify', this.baseUrl), {
|
|
46
|
+
method: 'POST',
|
|
47
|
+
body: JSON.stringify({
|
|
48
|
+
commitment: request.commitment,
|
|
49
|
+
signature: request.signature,
|
|
50
|
+
}),
|
|
51
|
+
}, parseVerifyResponse);
|
|
52
|
+
}
|
|
53
|
+
async logout() {
|
|
54
|
+
return this.request(new URL('auth/logout', this.baseUrl), { method: 'POST' }, parseLogoutResponse);
|
|
55
|
+
}
|
|
56
|
+
async listAccounts() {
|
|
57
|
+
return this.request(new URL('dashboard/accounts', this.baseUrl), { method: 'GET' }, parseAccountsResponse);
|
|
58
|
+
}
|
|
59
|
+
async getAccount(accountId) {
|
|
60
|
+
const encodedAccountId = encodeURIComponent(accountId);
|
|
61
|
+
return this.request(new URL(`dashboard/accounts/${encodedAccountId}`, this.baseUrl), { method: 'GET' }, parseAccountResponse);
|
|
62
|
+
}
|
|
63
|
+
async request(url, init, parse) {
|
|
64
|
+
const response = await this.fetchImpl(url.toString(), {
|
|
65
|
+
...init,
|
|
66
|
+
credentials: init.credentials ?? this.credentials,
|
|
67
|
+
headers: buildHeaders(this.defaultHeaders, init),
|
|
68
|
+
});
|
|
69
|
+
if (!response.ok) {
|
|
70
|
+
throw await this.toHttpError(response);
|
|
71
|
+
}
|
|
72
|
+
let payload;
|
|
73
|
+
try {
|
|
74
|
+
payload = await response.json();
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
throw new GuardianOperatorContractError(url.pathname, `expected JSON response: ${String(error)}`);
|
|
78
|
+
}
|
|
79
|
+
return parse(payload);
|
|
80
|
+
}
|
|
81
|
+
async toHttpError(response) {
|
|
82
|
+
const body = await response.text();
|
|
83
|
+
const data = tryParseErrorData(body);
|
|
84
|
+
return new GuardianOperatorHttpError(response.status, response.statusText, body, data);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function normalizeBaseUrl(baseUrl) {
|
|
88
|
+
const normalized = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
|
|
89
|
+
try {
|
|
90
|
+
return new URL(normalized);
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
const documentBase = currentDocumentBase();
|
|
94
|
+
if (!documentBase) {
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
return new URL(normalized, documentBase);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function currentDocumentBase() {
|
|
101
|
+
const location = globalThis.location;
|
|
102
|
+
if (!location) {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
if (typeof location.href === 'string' && location.href.length > 0) {
|
|
106
|
+
return location.href;
|
|
107
|
+
}
|
|
108
|
+
if (typeof location.origin === 'string' && location.origin.length > 0) {
|
|
109
|
+
return `${location.origin}/`;
|
|
110
|
+
}
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
function resolveFetch(fetchImpl) {
|
|
114
|
+
if (fetchImpl) {
|
|
115
|
+
return ((input, init) => fetchImpl(input, init));
|
|
116
|
+
}
|
|
117
|
+
const globalFetch = globalThis.fetch;
|
|
118
|
+
if (!globalFetch) {
|
|
119
|
+
throw new Error('Fetch API is not available');
|
|
120
|
+
}
|
|
121
|
+
return globalFetch.bind(globalThis);
|
|
122
|
+
}
|
|
123
|
+
function buildHeaders(defaultHeaders, init) {
|
|
124
|
+
const headers = new Headers(defaultHeaders);
|
|
125
|
+
headers.set('Accept', 'application/json');
|
|
126
|
+
if (init.body !== undefined && !headers.has('Content-Type')) {
|
|
127
|
+
headers.set('Content-Type', 'application/json');
|
|
128
|
+
}
|
|
129
|
+
const requestHeaders = new Headers(init.headers);
|
|
130
|
+
requestHeaders.forEach((value, key) => {
|
|
131
|
+
headers.set(key, value);
|
|
132
|
+
});
|
|
133
|
+
return headers;
|
|
134
|
+
}
|
|
135
|
+
function tryParseErrorData(body) {
|
|
136
|
+
if (!body) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
try {
|
|
140
|
+
return parseErrorResponse(JSON.parse(body));
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
function parseChallengeResponse(value) {
|
|
147
|
+
const record = asRecord(value, 'challenge response');
|
|
148
|
+
return {
|
|
149
|
+
success: requireSuccess(record, 'challenge response'),
|
|
150
|
+
challenge: parseChallenge(requireField(record, 'challenge', 'challenge response')),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
function parseChallenge(value) {
|
|
154
|
+
const record = asRecord(value, 'challenge');
|
|
155
|
+
return {
|
|
156
|
+
domain: requireString(record, 'domain', 'challenge'),
|
|
157
|
+
commitment: requireString(record, 'commitment', 'challenge'),
|
|
158
|
+
nonce: requireString(record, 'nonce', 'challenge'),
|
|
159
|
+
expiresAt: requireString(record, 'expires_at', 'challenge'),
|
|
160
|
+
signingDigest: requireString(record, 'signing_digest', 'challenge'),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
function parseVerifyResponse(value) {
|
|
164
|
+
const record = asRecord(value, 'verify response');
|
|
165
|
+
return {
|
|
166
|
+
success: requireSuccess(record, 'verify response'),
|
|
167
|
+
operatorId: requireString(record, 'operator_id', 'verify response'),
|
|
168
|
+
expiresAt: requireString(record, 'expires_at', 'verify response'),
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
function parseLogoutResponse(value) {
|
|
172
|
+
const record = asRecord(value, 'logout response');
|
|
173
|
+
return {
|
|
174
|
+
success: requireSuccess(record, 'logout response'),
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
function parseAccountsResponse(value) {
|
|
178
|
+
const record = asRecord(value, 'accounts response');
|
|
179
|
+
return {
|
|
180
|
+
success: requireSuccess(record, 'accounts response'),
|
|
181
|
+
totalCount: requireInteger(record, 'total_count', 'accounts response'),
|
|
182
|
+
accounts: requireArray(record, 'accounts', 'accounts response').map((entry, index) => parseAccountSummary(entry, `accounts[${index}]`)),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
function parseAccountResponse(value) {
|
|
186
|
+
const record = asRecord(value, 'account response');
|
|
187
|
+
return {
|
|
188
|
+
success: requireSuccess(record, 'account response'),
|
|
189
|
+
account: parseAccountDetail(requireField(record, 'account', 'account response'), 'account'),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
function parseAccountSummary(value, context) {
|
|
193
|
+
const record = asRecord(value, context);
|
|
194
|
+
return {
|
|
195
|
+
accountId: requireString(record, 'account_id', context),
|
|
196
|
+
authScheme: requireString(record, 'auth_scheme', context),
|
|
197
|
+
authorizedSignerCount: requireInteger(record, 'authorized_signer_count', context),
|
|
198
|
+
hasPendingCandidate: requireBoolean(record, 'has_pending_candidate', context),
|
|
199
|
+
currentCommitment: requireNullableString(record, 'current_commitment', context),
|
|
200
|
+
stateStatus: parseStateStatus(requireString(record, 'state_status', context), `${context}.state_status`),
|
|
201
|
+
createdAt: requireString(record, 'created_at', context),
|
|
202
|
+
updatedAt: requireString(record, 'updated_at', context),
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
function parseAccountDetail(value, context) {
|
|
206
|
+
const summary = parseAccountSummary(value, context);
|
|
207
|
+
const record = asRecord(value, context);
|
|
208
|
+
return {
|
|
209
|
+
...summary,
|
|
210
|
+
authorizedSignerIds: requireStringArray(record, 'authorized_signer_ids', context),
|
|
211
|
+
stateCreatedAt: requireNullableString(record, 'state_created_at', context),
|
|
212
|
+
stateUpdatedAt: requireNullableString(record, 'state_updated_at', context),
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
function parseErrorResponse(value) {
|
|
216
|
+
const record = asRecord(value, 'error response');
|
|
217
|
+
const success = requireBoolean(record, 'success', 'error response');
|
|
218
|
+
if (success) {
|
|
219
|
+
throw new GuardianOperatorContractError('error response', 'expected success to be false');
|
|
220
|
+
}
|
|
221
|
+
const retryAfterValue = record.retry_after_secs;
|
|
222
|
+
let retryAfterSecs;
|
|
223
|
+
if (retryAfterValue !== undefined) {
|
|
224
|
+
if (typeof retryAfterValue !== 'number' || !Number.isInteger(retryAfterValue)) {
|
|
225
|
+
throw new GuardianOperatorContractError('error response', 'retry_after_secs must be an integer when present');
|
|
226
|
+
}
|
|
227
|
+
retryAfterSecs = retryAfterValue;
|
|
228
|
+
}
|
|
229
|
+
return {
|
|
230
|
+
success: false,
|
|
231
|
+
error: requireString(record, 'error', 'error response'),
|
|
232
|
+
retryAfterSecs,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
function parseStateStatus(value, context) {
|
|
236
|
+
if (value === 'available' || value === 'unavailable') {
|
|
237
|
+
return value;
|
|
238
|
+
}
|
|
239
|
+
throw new GuardianOperatorContractError(context, `expected state_status to be "available" or "unavailable", got ${JSON.stringify(value)}`);
|
|
240
|
+
}
|
|
241
|
+
function asRecord(value, context) {
|
|
242
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value)) {
|
|
243
|
+
throw new GuardianOperatorContractError(context, 'expected an object');
|
|
244
|
+
}
|
|
245
|
+
return value;
|
|
246
|
+
}
|
|
247
|
+
function requireField(record, key, context) {
|
|
248
|
+
if (!(key in record)) {
|
|
249
|
+
throw new GuardianOperatorContractError(context, `missing required field "${key}"`);
|
|
250
|
+
}
|
|
251
|
+
return record[key];
|
|
252
|
+
}
|
|
253
|
+
function requireString(record, key, context) {
|
|
254
|
+
const value = requireField(record, key, context);
|
|
255
|
+
if (typeof value !== 'string') {
|
|
256
|
+
throw new GuardianOperatorContractError(context, `field "${key}" must be a string`);
|
|
257
|
+
}
|
|
258
|
+
return value;
|
|
259
|
+
}
|
|
260
|
+
function requireNullableString(record, key, context) {
|
|
261
|
+
const value = requireField(record, key, context);
|
|
262
|
+
if (value === null) {
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
if (typeof value !== 'string') {
|
|
266
|
+
throw new GuardianOperatorContractError(context, `field "${key}" must be a string or null`);
|
|
267
|
+
}
|
|
268
|
+
return value;
|
|
269
|
+
}
|
|
270
|
+
function requireBoolean(record, key, context) {
|
|
271
|
+
const value = requireField(record, key, context);
|
|
272
|
+
if (typeof value !== 'boolean') {
|
|
273
|
+
throw new GuardianOperatorContractError(context, `field "${key}" must be a boolean`);
|
|
274
|
+
}
|
|
275
|
+
return value;
|
|
276
|
+
}
|
|
277
|
+
function requireSuccess(record, context) {
|
|
278
|
+
const value = requireBoolean(record, 'success', context);
|
|
279
|
+
if (!value) {
|
|
280
|
+
throw new GuardianOperatorContractError(context, 'expected success to be true');
|
|
281
|
+
}
|
|
282
|
+
return true;
|
|
283
|
+
}
|
|
284
|
+
function requireInteger(record, key, context) {
|
|
285
|
+
const value = requireField(record, key, context);
|
|
286
|
+
if (typeof value !== 'number' || !Number.isInteger(value)) {
|
|
287
|
+
throw new GuardianOperatorContractError(context, `field "${key}" must be an integer`);
|
|
288
|
+
}
|
|
289
|
+
return value;
|
|
290
|
+
}
|
|
291
|
+
function requireArray(record, key, context) {
|
|
292
|
+
const value = requireField(record, key, context);
|
|
293
|
+
if (!Array.isArray(value)) {
|
|
294
|
+
throw new GuardianOperatorContractError(context, `field "${key}" must be an array`);
|
|
295
|
+
}
|
|
296
|
+
return value;
|
|
297
|
+
}
|
|
298
|
+
function requireStringArray(record, key, context) {
|
|
299
|
+
return requireArray(record, key, context).map((entry, index) => {
|
|
300
|
+
if (typeof entry !== 'string') {
|
|
301
|
+
throw new GuardianOperatorContractError(context, `field "${key}" entry ${index} must be a string`);
|
|
302
|
+
}
|
|
303
|
+
return entry;
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=http.js.map
|
package/dist/http.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { GuardianOperatorContractError, GuardianOperatorHttpClient, GuardianOperatorHttpError, } from './http.js';
|
|
2
|
+
export type { DashboardAccountDetail, DashboardAccountResponse, DashboardAccountsResponse, DashboardAccountStateStatus, DashboardAccountSummary, GuardianOperatorHttpClientOptions, GuardianOperatorHttpErrorData, LogoutOperatorResponse, OperatorChallenge, OperatorChallengeResponse, VerifyOperatorRequest, VerifyOperatorResponse, } from './types.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,iCAAiC,EACjC,6BAA6B,EAC7B,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export interface GuardianOperatorChallengeView {
|
|
2
|
+
domain: string;
|
|
3
|
+
commitment: string;
|
|
4
|
+
nonce: string;
|
|
5
|
+
expires_at: string;
|
|
6
|
+
signing_digest: string;
|
|
7
|
+
}
|
|
8
|
+
export interface GuardianOperatorChallengeResponse {
|
|
9
|
+
success: boolean;
|
|
10
|
+
challenge: GuardianOperatorChallengeView;
|
|
11
|
+
}
|
|
12
|
+
export interface GuardianVerifyOperatorResponse {
|
|
13
|
+
success: boolean;
|
|
14
|
+
operator_id: string;
|
|
15
|
+
expires_at: string;
|
|
16
|
+
}
|
|
17
|
+
export interface GuardianLogoutOperatorResponse {
|
|
18
|
+
success: boolean;
|
|
19
|
+
}
|
|
20
|
+
export type GuardianDashboardAccountStateStatus = 'available' | 'unavailable';
|
|
21
|
+
export interface GuardianDashboardAccountSummary {
|
|
22
|
+
account_id: string;
|
|
23
|
+
auth_scheme: string;
|
|
24
|
+
authorized_signer_count: number;
|
|
25
|
+
has_pending_candidate: boolean;
|
|
26
|
+
current_commitment: string | null;
|
|
27
|
+
state_status: GuardianDashboardAccountStateStatus;
|
|
28
|
+
created_at: string;
|
|
29
|
+
updated_at: string;
|
|
30
|
+
}
|
|
31
|
+
export interface GuardianDashboardAccountDetail extends GuardianDashboardAccountSummary {
|
|
32
|
+
authorized_signer_ids: string[];
|
|
33
|
+
state_created_at: string | null;
|
|
34
|
+
state_updated_at: string | null;
|
|
35
|
+
}
|
|
36
|
+
export interface GuardianDashboardAccountsResponse {
|
|
37
|
+
success: boolean;
|
|
38
|
+
total_count: number;
|
|
39
|
+
accounts: GuardianDashboardAccountSummary[];
|
|
40
|
+
}
|
|
41
|
+
export interface GuardianDashboardAccountResponse {
|
|
42
|
+
success: boolean;
|
|
43
|
+
account: GuardianDashboardAccountDetail;
|
|
44
|
+
}
|
|
45
|
+
export interface GuardianErrorResponse {
|
|
46
|
+
success: boolean;
|
|
47
|
+
error: string;
|
|
48
|
+
retry_after_secs?: number;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=server-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-types.d.ts","sourceRoot":"","sources":["../src/server-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,6BAA6B,CAAC;CAC1C;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,mCAAmC,GAAG,WAAW,GAAG,aAAa,CAAC;AAE9E,MAAM,WAAW,+BAA+B;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB,EAAE,MAAM,CAAC;IAChC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,mCAAmC,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,8BAA+B,SAAQ,+BAA+B;IACrF,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,+BAA+B,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,8BAA8B,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-types.js","sourceRoot":"","sources":["../src/server-types.ts"],"names":[],"mappings":""}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export type DashboardAccountStateStatus = 'available' | 'unavailable';
|
|
2
|
+
export interface GuardianOperatorHttpErrorData {
|
|
3
|
+
success: false;
|
|
4
|
+
error: string;
|
|
5
|
+
retryAfterSecs?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface GuardianOperatorHttpClientOptions {
|
|
8
|
+
baseUrl: string;
|
|
9
|
+
fetch?: typeof fetch;
|
|
10
|
+
credentials?: RequestCredentials;
|
|
11
|
+
headers?: HeadersInit;
|
|
12
|
+
}
|
|
13
|
+
export interface OperatorChallenge {
|
|
14
|
+
domain: string;
|
|
15
|
+
commitment: string;
|
|
16
|
+
nonce: string;
|
|
17
|
+
expiresAt: string;
|
|
18
|
+
signingDigest: string;
|
|
19
|
+
}
|
|
20
|
+
export interface OperatorChallengeResponse {
|
|
21
|
+
success: true;
|
|
22
|
+
challenge: OperatorChallenge;
|
|
23
|
+
}
|
|
24
|
+
export interface VerifyOperatorRequest {
|
|
25
|
+
commitment: string;
|
|
26
|
+
signature: string;
|
|
27
|
+
}
|
|
28
|
+
export interface VerifyOperatorResponse {
|
|
29
|
+
success: true;
|
|
30
|
+
operatorId: string;
|
|
31
|
+
expiresAt: string;
|
|
32
|
+
}
|
|
33
|
+
export interface LogoutOperatorResponse {
|
|
34
|
+
success: true;
|
|
35
|
+
}
|
|
36
|
+
export interface DashboardAccountSummary {
|
|
37
|
+
accountId: string;
|
|
38
|
+
authScheme: string;
|
|
39
|
+
authorizedSignerCount: number;
|
|
40
|
+
hasPendingCandidate: boolean;
|
|
41
|
+
currentCommitment: string | null;
|
|
42
|
+
stateStatus: DashboardAccountStateStatus;
|
|
43
|
+
createdAt: string;
|
|
44
|
+
updatedAt: string;
|
|
45
|
+
}
|
|
46
|
+
export interface DashboardAccountDetail extends DashboardAccountSummary {
|
|
47
|
+
authorizedSignerIds: string[];
|
|
48
|
+
stateCreatedAt: string | null;
|
|
49
|
+
stateUpdatedAt: string | null;
|
|
50
|
+
}
|
|
51
|
+
export interface DashboardAccountsResponse {
|
|
52
|
+
success: true;
|
|
53
|
+
totalCount: number;
|
|
54
|
+
accounts: DashboardAccountSummary[];
|
|
55
|
+
}
|
|
56
|
+
export interface DashboardAccountResponse {
|
|
57
|
+
success: true;
|
|
58
|
+
account: DashboardAccountDetail;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,2BAA2B,GAAG,WAAW,GAAG,aAAa,CAAC;AAEtE,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,2BAA2B,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,uBAAuB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,sBAAsB,CAAC;CACjC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openzeppelin/guardian-operator-client",
|
|
3
|
+
"version": "0.14.3",
|
|
4
|
+
"description": "TypeScript HTTP client for Guardian operator dashboard endpoints",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"dev": "tsc --watch",
|
|
21
|
+
"typecheck": "tsc --noEmit",
|
|
22
|
+
"clean": "rm -rf dist",
|
|
23
|
+
"prepack": "npm run clean && npm run build",
|
|
24
|
+
"test": "vitest run",
|
|
25
|
+
"test:watch": "vitest"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"typescript": "^5.7.2",
|
|
33
|
+
"vitest": "^2.1.8"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=18"
|
|
37
|
+
},
|
|
38
|
+
"license": "MIT"
|
|
39
|
+
}
|