@openzeppelin/guardian-client 0.19.0-rc.1 → 0.19.0-rc.2

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 (42) hide show
  1. package/README.md +61 -4
  2. package/dist/conversion.d.ts +8 -2
  3. package/dist/conversion.d.ts.map +1 -1
  4. package/dist/conversion.js +34 -1
  5. package/dist/conversion.js.map +1 -1
  6. package/dist/error-codes.d.ts +1 -1
  7. package/dist/error-codes.d.ts.map +1 -1
  8. package/dist/error-codes.js +2 -0
  9. package/dist/error-codes.js.map +1 -1
  10. package/dist/http.d.ts +24 -1
  11. package/dist/http.d.ts.map +1 -1
  12. package/dist/http.js +74 -20
  13. package/dist/http.js.map +1 -1
  14. package/dist/index.d.ts +2 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +1 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/request-envelope.d.ts +2 -2
  19. package/dist/request-envelope.d.ts.map +1 -1
  20. package/dist/request-envelope.js +2 -2
  21. package/dist/request-envelope.js.map +1 -1
  22. package/dist/server-types.d.ts +13 -0
  23. package/dist/server-types.d.ts.map +1 -1
  24. package/dist/session-request.d.ts +104 -0
  25. package/dist/session-request.d.ts.map +1 -0
  26. package/dist/session-request.js +164 -0
  27. package/dist/session-request.js.map +1 -0
  28. package/dist/types.d.ts +76 -4
  29. package/dist/types.d.ts.map +1 -1
  30. package/package.json +1 -1
  31. package/src/conversion.test.ts +17 -0
  32. package/src/conversion.ts +42 -1
  33. package/src/error-codes.ts +2 -0
  34. package/src/http.test.ts +328 -11
  35. package/src/http.ts +97 -23
  36. package/src/index.ts +16 -0
  37. package/src/request-envelope.test.ts +4 -4
  38. package/src/request-envelope.ts +2 -2
  39. package/src/server-types.ts +15 -0
  40. package/src/session-request.test.ts +178 -0
  41. package/src/session-request.ts +191 -0
  42. package/src/types.ts +79 -3
package/README.md CHANGED
@@ -66,7 +66,7 @@ await client.revokeSession(); // session-key-signed logout; back to the wallet
66
66
  await client.revokeAllSessions(); // wallet-signed: ends every session of the signer
67
67
  ```
68
68
 
69
- The delegated signer signs reads (`getState`, `getCanonicalNonce`, `getDelta`,
69
+ The delegated signer signs reads (`getState`, `getCanonicalNonce`, `getStateTail`, `getDelta`,
70
70
  `getDeltaSince`, `getDeltaHistory`), proposal reads and proposal create/sign
71
71
  (`getDeltaProposals`, `getDeltaProposal`, `pushDeltaProposal`,
72
72
  `signDeltaProposal`), execution requests and status reads
@@ -76,6 +76,17 @@ including `configure`, `abandonCandidate`, account lookup and
76
76
  `revokeAllSessions`; the server rejects session credentials there with
77
77
  `wallet_signature_required`, as an older Guardian does for `pushDelta`.
78
78
 
79
+ Session requests carry `x-auth-format: session-v2`. A `SessionRequestSigner`
80
+ receives the route's `SessionOperation` as the first argument of
81
+ `signRequest(operation, accountId, timestamp, payload)` and signs
82
+ `sessionRequestEnvelope(SessionTransport.Http, operation, requestWord)` (62
83
+ bytes, P-256 over SHA-256), where `requestWord` is the 32-byte
84
+ `AuthRequestMessage` word a wallet would sign. `createSession` throws
85
+ `UnsupportedAuthVersionError` when the Guardian does not report
86
+ `requestAuthVersion: 2`, and requests in the old format are answered with
87
+ `unsupported_auth_version`; neither ends the session or falls back to the
88
+ wallet.
89
+
79
90
  A session is used only while the wallet that granted it
80
91
  (`session.signerCommitment`) is the client's signer. It is dropped 30 seconds
81
92
  before it expires (`expired`), or as soon as Guardian answers
@@ -150,15 +161,56 @@ if (!inSync) {
150
161
  }
151
162
  ```
152
163
 
164
+ ### Get the Queue Tail
165
+
166
+ With `GUARDIAN_MAX_PENDING_CANDIDATES_PER_ACCOUNT` above 1 on the server, a new
167
+ delta or proposal must build on the tail of the account's candidate queue
168
+ (issue #517), which `getState` does not serve. `getStateTail` returns it, shaped
169
+ as `getState` returns a state, with the queued candidates that lead there,
170
+ oldest first (`GET /state/tail`). With nothing queued it is the canonical
171
+ state and `queue` is empty. The tail is not on chain until the queued
172
+ candidates land: check that the chain sits at the canonical state or a queued
173
+ `newCommitment` before building on it, and expect to resync if one never
174
+ lands. `acceptsSubmissions` is false while the queue would refuse anything
175
+ built on the tail with `conflict_pending_delta` (a full queue, which at the
176
+ default depth of 1 is any queue; a tail that changes the signers or the
177
+ guardian key; a candidate a server before 0.19.0 queued under another label):
178
+ wait for the queue to drain instead. Do not import the tail into a
179
+ miden-client store, which cannot roll it back if a queued candidate never
180
+ lands; see
181
+ [Queue tail for cosigners](../../docs/MIDEN_COMPATIBILITY.md#queue-tail-for-cosigners-0190)
182
+ for how to check it. Each read replays the queue on the server, so read it
183
+ before building and poll `getCanonicalNonce`. A server before 0.19.0 answers
184
+ 404.
185
+
186
+ ```typescript
187
+ const { state, queue, acceptsSubmissions } = await client.getStateTail(accountId);
188
+ if (!acceptsSubmissions) {
189
+ // anything built on the tail would be refused: wait for the queue to drain
190
+ }
191
+ // build the next transaction on `state`, then propose it on that base:
192
+ await client.pushDeltaProposal({
193
+ accountId,
194
+ nonce: tailAccountNonce + 1, // the nonce of the account in `state.stateJson`, plus one
195
+ deltaPayload: { txSummary, signatures: [], metadata, baseCommitment: state.commitment },
196
+ });
197
+ ```
198
+
199
+ `deltaPayload.baseCommitment` names the state a proposal's summary was built
200
+ on. When it is present, GUARDIAN 0.19.0 and later record the proposal only if
201
+ that state is the queue tail (the canonical state when nothing is queued),
202
+ refusing a base another queued candidate claimed with `conflict_pending_delta`
203
+ and any other with `commitment_mismatch`; earlier servers store it and ignore
204
+ it. Without it, the proposal is judged by its nonce alone.
205
+
153
206
  ### Abandon a Stuck Candidate
154
207
 
155
208
  If an approved transaction died client-side after guardian approval, its
156
209
  candidate keeps the account locked: new proposals and deltas answer
157
210
  `409 conflict_pending_delta` while the account's candidate queue (one
158
211
  candidate by default) is full, when they build on the state that candidate
159
- already claimed, or when their nonce does not extend the queue (a proposal's
160
- must be the newest queued candidate's plus one), and any candidate queued
161
- behind it can never land. Record an
212
+ already claimed, or when their nonce does not exceed the newest queued
213
+ candidate's, and any candidate queued behind it can never land. Record an
162
214
  abandon intent and poll for the resolution:
163
215
 
164
216
  ```typescript
@@ -279,6 +331,11 @@ const result = await client.pushDelta({
279
331
  });
280
332
  ```
281
333
 
334
+ `nonce` is the account nonce the transaction leaves the account at: the
335
+ current account nonce plus one (`1` above, for an account at nonce 0). A
336
+ proposal carries the nonce its delta will be pushed with. Guardian 0.19.0
337
+ and later refuse any other label with `invalid_delta`.
338
+
282
339
  ### Execute a Proposal Through Guardian
283
340
 
284
341
  A proposal pushed with a `transactionRequest` (a Guardian-executable proposal) can be proved,
@@ -1,11 +1,12 @@
1
- import type { CanonicalNonce, CosignerSignature, ConfigureRequest, ConfigureResponse, CreateSessionRequest, CreateSessionResponse, DeltaObject, DeltaProposalRequest, DeltaStatus, ExecutionDelta, HistoryEntry, HistoryPage, LookupResponse, ProposalSignature, ProposalMetadata, SignProposalRequest, StateObject } from './types.js';
2
- import type { ServerCanonicalNonceResponse, ServerCosignerSignature, ServerConfigureRequest, ServerConfigureResponse, ServerCreateSessionRequest, ServerCreateSessionResponse, ServerDeltaObject, ServerDeltaProposalRequest, ServerDeltaStatus, ServerExecutionDelta, ServerHistoryEntry, ServerHistoryPage, ServerLookupResponse, ServerProposalSignature, ServerProposalMetadata, ServerSignProposalRequest, ServerStateObject } from './server-types.js';
1
+ import type { CanonicalNonce, CosignerSignature, ConfigureRequest, ConfigureResponse, CreateSessionRequest, CreateSessionResponse, DeltaObject, DeltaProposalRequest, DeltaStatus, ExecutionDelta, HistoryEntry, HistoryPage, LookupResponse, ProposalSignature, ProposalMetadata, SignProposalRequest, StateObject, StateTail } from './types.js';
2
+ import type { ServerCanonicalNonceResponse, ServerCosignerSignature, ServerConfigureRequest, ServerConfigureResponse, ServerCreateSessionRequest, ServerCreateSessionResponse, ServerDeltaObject, ServerDeltaProposalRequest, ServerDeltaStatus, ServerExecutionDelta, ServerHistoryEntry, ServerHistoryPage, ServerLookupResponse, ServerProposalSignature, ServerProposalMetadata, ServerSignProposalRequest, ServerStateObject, ServerStateTail } from './server-types.js';
3
3
  export declare function fromServerSignature(signature: ServerProposalSignature): ProposalSignature;
4
4
  export declare function fromServerCosignerSignature(server: ServerCosignerSignature): CosignerSignature;
5
5
  export declare function fromServerDeltaStatus(server: ServerDeltaStatus): DeltaStatus;
6
6
  export declare function fromServerProposalMetadata(server: ServerProposalMetadata): ProposalMetadata;
7
7
  export declare function fromServerDeltaObject(server: ServerDeltaObject): DeltaObject;
8
8
  export declare function fromServerStateObject(server: ServerStateObject): StateObject;
9
+ export declare function fromServerStateTail(server: ServerStateTail): StateTail;
9
10
  export declare function fromServerCanonicalNonce(server: ServerCanonicalNonceResponse): CanonicalNonce;
10
11
  export declare function fromServerConfigureResponse(server: ServerConfigureResponse): ConfigureResponse;
11
12
  export declare function fromServerLookupResponse(server: ServerLookupResponse): LookupResponse;
@@ -15,6 +16,11 @@ export declare function toServerDeltaStatus(status: DeltaStatus): ServerDeltaSta
15
16
  export declare function toServerProposalMetadata(meta: ProposalMetadata): ServerProposalMetadata;
16
17
  export declare function toServerConfigureRequest(req: ConfigureRequest): ServerConfigureRequest;
17
18
  export declare function toServerCreateSessionRequest(req: CreateSessionRequest): ServerCreateSessionRequest;
19
+ /**
20
+ * Throws `UnsupportedAuthVersionError` unless the server reports the
21
+ * session request version this client signs: such a server would refuse
22
+ * every session request.
23
+ */
18
24
  export declare function fromServerCreateSessionResponse(server: ServerCreateSessionResponse): CreateSessionResponse;
19
25
  export declare function toServerDeltaProposalRequest(req: DeltaProposalRequest): ServerDeltaProposalRequest;
20
26
  export declare function toServerSignProposalRequest(req: SignProposalRequest): ServerSignProposalRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,YAAY,EAEZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAElB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAkC3B,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,uBAAuB,GAAG,iBAAiB,CAUzF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAM9F;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAkB5E;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAwB3F;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAwB5E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAS5E;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,4BAA4B,GAAG,cAAc,CAS7F;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAO9F;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAOrF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,uBAAuB,CAUjF;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,iBAAiB,GAAG,uBAAuB,CAMzF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAkB1E;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG,sBAAsB,CAwBvF;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,sBAAsB,CAMtF;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,oBAAoB,GAAG,0BAA0B,CAgBlG;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,2BAA2B,GAClC,qBAAqB,CAEvB;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,oBAAoB,GAAG,0BAA0B,CAgBlG;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,mBAAmB,GAAG,yBAAyB,CAM/F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,oBAAoB,CAUlF;AAiBD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAU/E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAK5E"}
1
+ {"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,YAAY,EAEZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,SAAS,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAElB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAkC3B,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,uBAAuB,GAAG,iBAAiB,CAUzF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAM9F;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAkB5E;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAwB3F;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAwB5E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAS5E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAoBtE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,4BAA4B,GAAG,cAAc,CAS7F;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAO9F;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAOrF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,uBAAuB,CAUjF;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,iBAAiB,GAAG,uBAAuB,CAMzF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAkB1E;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG,sBAAsB,CAwBvF;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,sBAAsB,CAMtF;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,oBAAoB,GAAG,0BAA0B,CAgBlG;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,2BAA2B,GAClC,qBAAqB,CAOvB;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,oBAAoB,GAAG,0BAA0B,CAmBlG;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,mBAAmB,GAAG,yBAAyB,CAM/F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,oBAAoB,CAUlF;AAiBD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAU/E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAK5E"}
@@ -1,3 +1,4 @@
1
+ import { SESSION_REQUEST_VERSION, assertSupportedSessionPolicy, } from './session-request.js';
1
2
  import { decodeTransactionRequestEnvelope } from './request-envelope.js';
2
3
  function extractDeltaPayload(payload) {
3
4
  const txSummary = 'tx_summary' in payload ? payload.tx_summary : { data: payload.data };
@@ -102,6 +103,25 @@ export function fromServerStateObject(server) {
102
103
  authScheme: server.auth_scheme,
103
104
  };
104
105
  }
106
+ export function fromServerStateTail(server) {
107
+ if (typeof server.accepts_submissions !== 'boolean') {
108
+ throw new Error(`Invalid accepts_submissions from server: ${String(server.accepts_submissions)}`);
109
+ }
110
+ return {
111
+ state: fromServerStateObject(server.state),
112
+ acceptsSubmissions: server.accepts_submissions,
113
+ queue: server.queue.map((candidate) => {
114
+ if (!Number.isSafeInteger(candidate.nonce) || candidate.nonce < 0) {
115
+ throw new Error(`Invalid queued candidate nonce from server: ${String(candidate.nonce)}`);
116
+ }
117
+ return {
118
+ nonce: candidate.nonce,
119
+ prevCommitment: candidate.prev_commitment,
120
+ newCommitment: candidate.new_commitment,
121
+ };
122
+ }),
123
+ };
124
+ }
105
125
  export function fromServerCanonicalNonce(server) {
106
126
  if (!Number.isSafeInteger(server.nonce) || server.nonce < 0) {
107
127
  throw new Error(`Invalid canonical nonce from server: ${String(server.nonce)}`);
@@ -214,8 +234,18 @@ export function toServerCreateSessionRequest(req) {
214
234
  },
215
235
  };
216
236
  }
237
+ /**
238
+ * Throws `UnsupportedAuthVersionError` unless the server reports the
239
+ * session request version this client signs: such a server would refuse
240
+ * every session request.
241
+ */
217
242
  export function fromServerCreateSessionResponse(server) {
218
- return { signerCommitment: server.signer_commitment, expiresAt: server.expires_at };
243
+ assertSupportedSessionPolicy({ requestAuthVersion: server.request_auth_version });
244
+ return {
245
+ signerCommitment: server.signer_commitment,
246
+ expiresAt: server.expires_at,
247
+ requestAuthVersion: SESSION_REQUEST_VERSION,
248
+ };
219
249
  }
220
250
  export function toServerDeltaProposalRequest(req) {
221
251
  return {
@@ -231,6 +261,9 @@ export function toServerDeltaProposalRequest(req) {
231
261
  ...(req.deltaPayload.transactionRequest
232
262
  ? { transaction_request: req.deltaPayload.transactionRequest }
233
263
  : {}),
264
+ ...(req.deltaPayload.baseCommitment !== undefined
265
+ ? { base_commitment: req.deltaPayload.baseCommitment }
266
+ : {}),
234
267
  },
235
268
  };
236
269
  }
@@ -1 +1 @@
1
- {"version":3,"file":"conversion.js","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversion.js","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * `WIRE_ALIASES`) are normalized to snake_case here so the union has one consistent shape; use
7
7
  * {@link normalizeGuardianErrorCode} at the wire boundary.
8
8
  */
9
- export declare const GUARDIAN_ERROR_CODES: readonly ["account_already_exists", "account_data_unavailable", "account_not_found", "account_paused", "account_released", "account_request_capacity_exceeded", "authentication_failed", "authentication_replay", "authorization_failed", "candidate_landed", "commitment_mismatch", "configuration_error", "conflict_pending_delta", "conflict_pending_proposal", "data_unavailable", "delta_not_found", "execution_busy", "execution_conflict", "execution_not_found", "insufficient_operator_permission", "insufficient_signatures", "invalid_account_id", "invalid_commitment", "invalid_cursor", "invalid_delta", "invalid_evm_proposal", "invalid_input", "invalid_limit", "invalid_network_config", "invalid_proposal_signature", "invalid_status_filter", "invalid_timestamp", "network_error", "pending_proposals_limit", "proposal_already_signed", "proposal_executes_locally", "proposal_missing_transaction_request", "proposal_not_found", "proposal_not_ready", "proposal_request_too_large", "proving_unavailable", "rate_limit_exceeded", "rpc_unavailable", "rpc_validation_failed", "session_expired", "session_revoked", "signature_scheme_not_allowed", "signer_not_authorized", "signing_error", "state_not_found", "state_not_on_chain", "storage_error", "unsupported_evm_chain", "unsupported_for_network", "wallet_signature_required"];
9
+ export declare const GUARDIAN_ERROR_CODES: readonly ["account_already_exists", "account_data_unavailable", "account_not_found", "account_paused", "account_released", "account_request_capacity_exceeded", "authentication_failed", "authentication_replay", "authorization_failed", "candidate_landed", "commitment_mismatch", "configuration_error", "conflict_pending_delta", "conflict_pending_proposal", "data_unavailable", "delta_not_found", "execution_busy", "execution_conflict", "execution_not_found", "insufficient_operator_permission", "insufficient_signatures", "invalid_account_id", "invalid_commitment", "invalid_cursor", "invalid_delta", "invalid_evm_proposal", "invalid_input", "invalid_limit", "invalid_network_config", "invalid_proposal_signature", "invalid_status_filter", "invalid_timestamp", "network_error", "pending_proposals_limit", "proposal_already_signed", "proposal_executes_locally", "proposal_missing_transaction_request", "proposal_not_found", "proposal_not_ready", "proposal_request_too_large", "proving_unavailable", "rate_limit_exceeded", "rpc_unavailable", "rpc_validation_failed", "session_expired", "session_revoked", "signature_scheme_not_allowed", "signer_not_authorized", "signing_error", "state_not_found", "state_not_on_chain", "storage_error", "timestamp_out_of_window", "unsupported_evm_chain", "unsupported_auth_version", "unsupported_for_network", "wallet_signature_required"];
10
10
  /**
11
11
  * A stable Guardian error code, compiler-checked: comparing against a
12
12
  * non-member literal is a type error, and `switch` statements can be
@@ -1 +1 @@
1
- {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,myCAwDvB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAwBtE,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAIhF"}
1
+ {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,01CA0DvB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAwBtE,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAIhF"}
@@ -59,7 +59,9 @@ export const GUARDIAN_ERROR_CODES = [
59
59
  'state_not_found',
60
60
  'state_not_on_chain',
61
61
  'storage_error',
62
+ 'timestamp_out_of_window',
62
63
  'unsupported_evm_chain',
64
+ 'unsupported_auth_version',
63
65
  'unsupported_for_network',
64
66
  'wallet_signature_required',
65
67
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,wBAAwB;IACxB,0BAA0B;IAC1B,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,mCAAmC;IACnC,uBAAuB;IACvB,uBAAuB;IACvB,sBAAsB;IACtB,kBAAkB;IAClB,qBAAqB;IACrB,qBAAqB;IACrB,wBAAwB;IACxB,2BAA2B;IAC3B,kBAAkB;IAClB,iBAAiB;IACjB,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;IACrB,kCAAkC;IAClC,yBAAyB;IACzB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,eAAe;IACf,sBAAsB;IACtB,eAAe;IACf,eAAe;IACf,wBAAwB;IACxB,4BAA4B;IAC5B,uBAAuB;IACvB,mBAAmB;IACnB,eAAe;IACf,yBAAyB;IACzB,yBAAyB;IACzB,2BAA2B;IAC3B,sCAAsC;IACtC,oBAAoB;IACpB,oBAAoB;IACpB,4BAA4B;IAC5B,qBAAqB;IACrB,qBAAqB;IACrB,iBAAiB;IACjB,uBAAuB;IACvB,iBAAiB;IACjB,iBAAiB;IACjB,8BAA8B;IAC9B,uBAAuB;IACvB,eAAe;IACf,iBAAiB;IACjB,oBAAoB;IACpB,eAAe;IACf,uBAAuB;IACvB,yBAAyB;IACzB,2BAA2B;CACnB,CAAC;AAUX,MAAM,QAAQ,GAAwB,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAEpE;;;GAGG;AACH,MAAM,YAAY,GAAgD;IAChE,uBAAuB,EAAE,gBAAgB;IACzC,yBAAyB,EAAE,kBAAkB;IAC7C,yCAAyC,EAAE,kCAAkC;IAC7E,yBAAyB,EAAE,kBAAkB;IAC7C,4BAA4B,EAAE,qBAAqB;IACnD,6CAA6C,EAAE,sCAAsC;IACrF,kCAAkC,EAAE,2BAA2B;IAC/D,2BAA2B,EAAE,oBAAoB;IACjD,2BAA2B,EAAE,oBAAoB;IACjD,uBAAuB,EAAE,gBAAgB;IACzC,4BAA4B,EAAE,qBAAqB;IACnD,mCAAmC,EAAE,4BAA4B;IACjE,0CAA0C,EAAE,mCAAmC;CAChF,CAAC;AAEF,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAW;IACpD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC1C,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,wBAAwB;IACxB,0BAA0B;IAC1B,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,mCAAmC;IACnC,uBAAuB;IACvB,uBAAuB;IACvB,sBAAsB;IACtB,kBAAkB;IAClB,qBAAqB;IACrB,qBAAqB;IACrB,wBAAwB;IACxB,2BAA2B;IAC3B,kBAAkB;IAClB,iBAAiB;IACjB,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;IACrB,kCAAkC;IAClC,yBAAyB;IACzB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,eAAe;IACf,sBAAsB;IACtB,eAAe;IACf,eAAe;IACf,wBAAwB;IACxB,4BAA4B;IAC5B,uBAAuB;IACvB,mBAAmB;IACnB,eAAe;IACf,yBAAyB;IACzB,yBAAyB;IACzB,2BAA2B;IAC3B,sCAAsC;IACtC,oBAAoB;IACpB,oBAAoB;IACpB,4BAA4B;IAC5B,qBAAqB;IACrB,qBAAqB;IACrB,iBAAiB;IACjB,uBAAuB;IACvB,iBAAiB;IACjB,iBAAiB;IACjB,8BAA8B;IAC9B,uBAAuB;IACvB,eAAe;IACf,iBAAiB;IACjB,oBAAoB;IACpB,eAAe;IACf,yBAAyB;IACzB,uBAAuB;IACvB,0BAA0B;IAC1B,yBAAyB;IACzB,2BAA2B;CACnB,CAAC;AAUX,MAAM,QAAQ,GAAwB,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAEpE;;;GAGG;AACH,MAAM,YAAY,GAAgD;IAChE,uBAAuB,EAAE,gBAAgB;IACzC,yBAAyB,EAAE,kBAAkB;IAC7C,yCAAyC,EAAE,kCAAkC;IAC7E,yBAAyB,EAAE,kBAAkB;IAC7C,4BAA4B,EAAE,qBAAqB;IACnD,6CAA6C,EAAE,sCAAsC;IACrF,kCAAkC,EAAE,2BAA2B;IAC/D,2BAA2B,EAAE,oBAAoB;IACjD,2BAA2B,EAAE,oBAAoB;IACjD,uBAAuB,EAAE,gBAAgB;IACzC,4BAA4B,EAAE,qBAAqB;IACnD,mCAAmC,EAAE,4BAA4B;IACjE,0CAA0C,EAAE,mCAAmC;CAChF,CAAC;AAEF,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAW;IACpD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC1C,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC"}
package/dist/http.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type GuardianErrorCode } from './error-codes.js';
2
- import type { AbandonCandidateResponse, AbandonStatus, ConfigureRequest, ConfigureResponse, CreateSessionRequest, CreateSessionResponse, DeltaObject, DeltaProposalRequest, DeltaProposalResponse, ExecutionDelta, HistoryOptions, HistoryPage, LookupResponse, PubkeyResponse, PushDeltaResponse, SessionRequestSigner, SignProposalRequest, SignatureScheme, Signer, StateObject, StatusResponse, CanonicalNonce } from './types.js';
2
+ import type { AbandonCandidateResponse, AbandonStatus, ConfigureRequest, ConfigureResponse, CreateSessionRequest, CreateSessionResponse, DeltaObject, DeltaProposalRequest, DeltaProposalResponse, ExecutionDelta, HistoryOptions, HistoryPage, LookupResponse, PubkeyResponse, PushDeltaResponse, SessionRequestSigner, SignProposalRequest, SignatureScheme, Signer, StateObject, StateTail, StatusResponse, CanonicalNonce } from './types.js';
3
3
  import type { ProposalExecution } from './execution.js';
4
4
  /**
5
5
  * Structured machine-readable side-data on a GUARDIAN error
@@ -158,6 +158,21 @@ export declare class GuardianHttpClient {
158
158
  getStatus(): Promise<StatusResponse>;
159
159
  configure(request: ConfigureRequest): Promise<ConfigureResponse>;
160
160
  getState(accountId: string): Promise<StateObject>;
161
+ /**
162
+ * The queue tail (`GET /state/tail`, issue #517): the state a new delta or
163
+ * proposal must build on, and the queued candidates that lead to it. With
164
+ * nothing queued it is the canonical state and `queue` is empty. Otherwise
165
+ * it is not on chain until the queued candidates land, and if one never
166
+ * does, the tail is abandoned with it. `acceptsSubmissions` is false while
167
+ * the queue would refuse anything built on the tail with
168
+ * `conflict_pending_delta` (a full queue, which at the default depth of 1 is
169
+ * any queue; a tail that changes the signers or the guardian key; a
170
+ * candidate a server before 0.19.0 queued under another label): wait for
171
+ * the queue to drain instead of building. Each read replays the queue on the
172
+ * server, so read it before building on the account; poll
173
+ * `getCanonicalNonce` instead. A server before 0.19.0 answers 404.
174
+ */
175
+ getStateTail(accountId: string): Promise<StateTail>;
161
176
  /**
162
177
  * Nonce and commitment of the latest canonical state, without the state
163
178
  * blob (`GET /state/nonce`). A client can skip `getState` when the
@@ -261,6 +276,14 @@ export declare class GuardianHttpClient {
261
276
  private fetchLookupAuthenticated;
262
277
  private fetchAuthenticated;
263
278
  private fetchSigned;
279
+ /**
280
+ * Signs with `session` (the wallet when null) and retries replay
281
+ * rejections. Returns null, without sending, once `session` is no longer
282
+ * this client's session: a session write only ever signs within the write
283
+ * turn of the session it holds, and the caller starts over with the
284
+ * current one.
285
+ */
286
+ private sendSigned;
264
287
  private walletAuthHeaders;
265
288
  }
266
289
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EAEjB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,MAAM,EACN,WAAW,EACX,cAAc,EACd,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,gBAAgB,CAAC;AAmCxB;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B;AAED,mFAAmF;AACnF,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AA+ErD;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;aAmCxB,MAAM,EAAE,MAAM;aACd,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,MAAM;IApC9B;;;;;;;;;OASG;IACH,SAAgB,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC/C;;;;;OAKG;IACH,SAAgB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAClC;;;;;;OAMG;IACH,SAAgB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAS;gBAG7B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EAC5B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBlC;;;;;OAKG;IACH,WAAW,IAAI,OAAO;IAItB;;;;OAIG;IACH,cAAc,IAAI,MAAM,GAAG,SAAS;CAGrC;AA6CD;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,aAAa,CAAK;gBAEd,OAAO,EAAE,MAAM;IAI3B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAOrB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;;;OAMG;IACH,UAAU,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI;IAItD;;;;;OAKG;IACH,UAAU,IAAI,oBAAoB,GAAG,IAAI;IAkBzC;;;OAGG;IACH,OAAO,CAAC,UAAU;IAUlB,gEAAgE;IAC1D,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQlF;;;;OAIG;IACG,aAAa,CAAC,OAAO,GAAE,oBAAoB,GAAG,IAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAe1F;;;;;;;OAOG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAwB1C;;;;OAIG;IACG,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAU5D,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAuBpC,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWhE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAUvD;;;;;;OAMG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAUnE;;;;;;OAMG;IACG,4BAA4B,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU/E,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAU5D,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAU7E,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAatF;;;;;;;;OAQG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAY7F,kDAAkD;IAC5C,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IASlG,2FAA2F;IACrF,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAU/E;;;;;;;;;;;;;;;;;OAiBG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC;IAqBpC;;;;;;;;;;;;;;;;;OAiBG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAuC3F,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAU3E;;;;;;;;OAQG;IACG,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0B5D,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiBhE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiB/E;;;;;;;OAOG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;YAmB9E,KAAK;IAuBnB;;;;;OAKG;YACW,wBAAwB;YA4BxB,kBAAkB;YAUlB,WAAW;YAwDX,iBAAiB;CAahC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/http.js CHANGED
@@ -1,7 +1,8 @@
1
+ import { SESSION_REQUEST_AUTH_FORMAT, SessionOperation, isSessionWrite, } from './session-request.js';
1
2
  import { normalizeGuardianErrorCode, } from './error-codes.js';
2
3
  import { RequestAuthPayload } from './auth-request.js';
3
4
  import { fromServerExecution, fromServerExecutionCapability } from './execution.js';
4
- import { fromServerCanonicalNonce, fromServerConfigureResponse, fromServerCreateSessionResponse, fromServerDeltaObject, fromServerHistoryPage, fromServerLookupResponse, fromServerStateObject, toServerConfigureRequest, toServerCreateSessionRequest, toServerDeltaProposalRequest, toServerExecutionDelta, toServerSignProposalRequest, } from './conversion.js';
5
+ import { fromServerCanonicalNonce, fromServerConfigureResponse, fromServerCreateSessionResponse, fromServerDeltaObject, fromServerHistoryPage, fromServerLookupResponse, fromServerStateObject, fromServerStateTail, toServerConfigureRequest, toServerCreateSessionRequest, toServerDeltaProposalRequest, toServerExecutionDelta, toServerSignProposalRequest, } from './conversion.js';
5
6
  function localExecutionReason(value) {
6
7
  switch (value) {
7
8
  case 'switch_guardian':
@@ -160,6 +161,8 @@ function parseRetryAfterSeconds(header) {
160
161
  * reaches the server already expired; requests then fall back to the wallet.
161
162
  */
162
163
  const SESSION_EXPIRY_MARGIN_MS = 30_000;
164
+ /** Replay rejections a request is re-signed and resent for. */
165
+ const REPLAY_RETRIES = 2;
163
166
  /** Codes that end a session-signed request's session for good. */
164
167
  const SESSION_END_REASONS = {
165
168
  session_expired: 'expired',
@@ -333,6 +336,9 @@ export class GuardianHttpClient {
333
336
  ? {
334
337
  sessions: {
335
338
  maxTtlSeconds: data.sessions.max_ttl_seconds,
339
+ ...(data.sessions.request_auth_version === undefined
340
+ ? {}
341
+ : { requestAuthVersion: data.sessions.request_auth_version }),
336
342
  },
337
343
  }
338
344
  : {}),
@@ -353,10 +359,33 @@ export class GuardianHttpClient {
353
359
  const params = new URLSearchParams(requestQuery);
354
360
  const response = await this.fetchAuthenticated(`/state?${params}`, {
355
361
  method: 'GET',
356
- }, accountId, requestQuery, 'session');
362
+ }, accountId, requestQuery, SessionOperation.GetState);
357
363
  const server = (await response.json());
358
364
  return fromServerStateObject(server);
359
365
  }
366
+ /**
367
+ * The queue tail (`GET /state/tail`, issue #517): the state a new delta or
368
+ * proposal must build on, and the queued candidates that lead to it. With
369
+ * nothing queued it is the canonical state and `queue` is empty. Otherwise
370
+ * it is not on chain until the queued candidates land, and if one never
371
+ * does, the tail is abandoned with it. `acceptsSubmissions` is false while
372
+ * the queue would refuse anything built on the tail with
373
+ * `conflict_pending_delta` (a full queue, which at the default depth of 1 is
374
+ * any queue; a tail that changes the signers or the guardian key; a
375
+ * candidate a server before 0.19.0 queued under another label): wait for
376
+ * the queue to drain instead of building. Each read replays the queue on the
377
+ * server, so read it before building on the account; poll
378
+ * `getCanonicalNonce` instead. A server before 0.19.0 answers 404.
379
+ */
380
+ async getStateTail(accountId) {
381
+ const requestQuery = { account_id: accountId };
382
+ const params = new URLSearchParams(requestQuery);
383
+ const response = await this.fetchAuthenticated(`/state/tail?${params}`, {
384
+ method: 'GET',
385
+ }, accountId, requestQuery, SessionOperation.GetStateTail);
386
+ const server = (await response.json());
387
+ return fromServerStateTail(server);
388
+ }
360
389
  /**
361
390
  * Nonce and commitment of the latest canonical state, without the state
362
391
  * blob (`GET /state/nonce`). A client can skip `getState` when the
@@ -369,7 +398,7 @@ export class GuardianHttpClient {
369
398
  const params = new URLSearchParams(requestQuery);
370
399
  const response = await this.fetchAuthenticated(`/state/nonce?${params}`, {
371
400
  method: 'GET',
372
- }, accountId, requestQuery, 'session');
401
+ }, accountId, requestQuery, SessionOperation.GetCanonicalNonce);
373
402
  const server = (await response.json());
374
403
  return fromServerCanonicalNonce(server);
375
404
  }
@@ -390,7 +419,7 @@ export class GuardianHttpClient {
390
419
  const params = new URLSearchParams(requestQuery);
391
420
  const response = await this.fetchAuthenticated(`/delta/proposal?${params}`, {
392
421
  method: 'GET',
393
- }, accountId, requestQuery, 'session');
422
+ }, accountId, requestQuery, SessionOperation.GetDeltaProposals);
394
423
  const data = (await response.json());
395
424
  return data.proposals.map(fromServerDeltaObject);
396
425
  }
@@ -399,7 +428,7 @@ export class GuardianHttpClient {
399
428
  const params = new URLSearchParams(requestQuery);
400
429
  const response = await this.fetchAuthenticated(`/delta/proposal/single?${params}`, {
401
430
  method: 'GET',
402
- }, accountId, requestQuery, 'session');
431
+ }, accountId, requestQuery, SessionOperation.GetDeltaProposal);
403
432
  const data = (await response.json());
404
433
  return fromServerDeltaObject(data);
405
434
  }
@@ -408,7 +437,7 @@ export class GuardianHttpClient {
408
437
  const response = await this.fetchAuthenticated('/delta/proposal', {
409
438
  method: 'POST',
410
439
  body: JSON.stringify(serverRequest),
411
- }, request.accountId, serverRequest, 'session');
440
+ }, request.accountId, serverRequest, SessionOperation.PushDeltaProposal);
412
441
  const server = (await response.json());
413
442
  return {
414
443
  delta: fromServerDeltaObject(server.delta),
@@ -432,7 +461,7 @@ export class GuardianHttpClient {
432
461
  const response = await this.fetchSigned('/delta/proposal/execution', {
433
462
  method: 'POST',
434
463
  body: JSON.stringify(serverRequest),
435
- }, accountId, RequestAuthPayload.forOperation('ExecuteDeltaProposal', serverRequest), 'session');
464
+ }, accountId, RequestAuthPayload.forOperation('ExecuteDeltaProposal', serverRequest), SessionOperation.ExecuteDeltaProposal);
436
465
  return fromServerExecution((await response.json()));
437
466
  }
438
467
  /** The latest execution attempt of a proposal. */
@@ -441,7 +470,7 @@ export class GuardianHttpClient {
441
470
  const params = new URLSearchParams(requestQuery);
442
471
  const response = await this.fetchAuthenticated(`/delta/proposal/execution?${params}`, {
443
472
  method: 'GET',
444
- }, accountId, requestQuery, 'session');
473
+ }, accountId, requestQuery, SessionOperation.GetDeltaProposalExecution);
445
474
  return fromServerExecution((await response.json()));
446
475
  }
447
476
  /** The account's in-flight execution, or `null`. A finished execution is not in flight. */
@@ -450,7 +479,7 @@ export class GuardianHttpClient {
450
479
  const params = new URLSearchParams(requestQuery);
451
480
  const response = await this.fetchAuthenticated(`/delta/execution/current?${params}`, {
452
481
  method: 'GET',
453
- }, accountId, requestQuery, 'session');
482
+ }, accountId, requestQuery, SessionOperation.GetCurrentExecution);
454
483
  const server = (await response.json());
455
484
  return server.execution === null ? null : fromServerExecution(server.execution);
456
485
  }
@@ -553,7 +582,7 @@ export class GuardianHttpClient {
553
582
  const response = await this.fetchAuthenticated('/delta/proposal', {
554
583
  method: 'PUT',
555
584
  body: JSON.stringify(serverRequest),
556
- }, request.accountId, serverRequest, 'session');
585
+ }, request.accountId, serverRequest, SessionOperation.SignDeltaProposal);
557
586
  const server = (await response.json());
558
587
  return fromServerDeltaObject(server);
559
588
  }
@@ -569,7 +598,7 @@ export class GuardianHttpClient {
569
598
  async pushDelta(delta) {
570
599
  const serverDelta = toServerExecutionDelta(delta);
571
600
  const init = { method: 'POST', body: JSON.stringify(serverDelta) };
572
- const response = await this.fetchAuthenticated('/delta', init, delta.accountId, serverDelta, 'session').catch((err) => {
601
+ const response = await this.fetchAuthenticated('/delta', init, delta.accountId, serverDelta, SessionOperation.PushDelta).catch((err) => {
573
602
  if (err instanceof GuardianHttpError && err.code === 'wallet_signature_required') {
574
603
  return this.fetchAuthenticated('/delta', init, delta.accountId, serverDelta, 'wallet');
575
604
  }
@@ -597,7 +626,7 @@ export class GuardianHttpClient {
597
626
  const params = new URLSearchParams(requestQuery);
598
627
  const response = await this.fetchAuthenticated(`/delta?${params}`, {
599
628
  method: 'GET',
600
- }, accountId, requestPayload, 'session');
629
+ }, accountId, requestPayload, SessionOperation.GetDelta);
601
630
  const server = (await response.json());
602
631
  return fromServerDeltaObject(server);
603
632
  }
@@ -613,7 +642,7 @@ export class GuardianHttpClient {
613
642
  const params = new URLSearchParams(requestQuery);
614
643
  const response = await this.fetchAuthenticated(`/delta/since?${params}`, {
615
644
  method: 'GET',
616
- }, accountId, requestPayload, 'session');
645
+ }, accountId, requestPayload, SessionOperation.GetDeltaSince);
617
646
  const server = (await response.json());
618
647
  return fromServerDeltaObject(server);
619
648
  }
@@ -639,7 +668,7 @@ export class GuardianHttpClient {
639
668
  const params = new URLSearchParams(requestPayload);
640
669
  const response = await this.fetchAuthenticated(`/delta/history?${params}`, {
641
670
  method: 'GET',
642
- }, accountId, requestPayload, 'session');
671
+ }, accountId, requestPayload, SessionOperation.GetDeltaHistory);
643
672
  const server = (await response.json());
644
673
  return fromServerHistoryPage(server);
645
674
  }
@@ -686,12 +715,37 @@ export class GuardianHttpClient {
686
715
  async fetchAuthenticated(path, init, accountId, requestPayload, mode = 'wallet') {
687
716
  return this.fetchSigned(path, init, accountId, RequestAuthPayload.fromRequest(requestPayload), mode);
688
717
  }
689
- async fetchSigned(path, init, accountId, authPayload, mode, retries = 2) {
690
- const timestamp = this.nextTimestamp();
691
- const session = mode === 'session' ? this.getSession() : null;
692
- const headers = session
693
- ? authHeaders(session.publicKey, await session.signRequest(accountId, timestamp, authPayload), timestamp, 'session')
718
+ async fetchSigned(path, init, accountId, authPayload, mode) {
719
+ for (;;) {
720
+ const session = mode === 'wallet' ? null : this.getSession();
721
+ const response = session && mode !== 'wallet' && isSessionWrite(mode)
722
+ ? await session.writeSequencer.run(accountId, () => this.sendSigned(path, init, accountId, authPayload, mode, session))
723
+ : await this.sendSigned(path, init, accountId, authPayload, mode, session);
724
+ if (response) {
725
+ return response;
726
+ }
727
+ }
728
+ }
729
+ /**
730
+ * Signs with `session` (the wallet when null) and retries replay
731
+ * rejections. Returns null, without sending, once `session` is no longer
732
+ * this client's session: a session write only ever signs within the write
733
+ * turn of the session it holds, and the caller starts over with the
734
+ * current one.
735
+ */
736
+ async sendSigned(path, init, accountId, authPayload, mode, session, retries = REPLAY_RETRIES) {
737
+ if (session && this.getSession() !== session) {
738
+ return null;
739
+ }
740
+ const timestamp = session
741
+ ? await session.nextTimestamp(accountId, retries < REPLAY_RETRIES)
742
+ : this.nextTimestamp();
743
+ const headers = session && mode !== 'wallet'
744
+ ? authHeaders(session.publicKey, await session.signRequest(mode, accountId, timestamp, authPayload), timestamp, SESSION_REQUEST_AUTH_FORMAT)
694
745
  : await this.walletAuthHeaders(accountId, timestamp, authPayload);
746
+ if (session && this.getSession() !== session) {
747
+ return null;
748
+ }
695
749
  try {
696
750
  return await this.fetch(path, {
697
751
  ...init,
@@ -722,7 +776,7 @@ export class GuardianHttpClient {
722
776
  err instanceof GuardianHttpError &&
723
777
  err.code === 'authentication_replay') {
724
778
  await new Promise((resolve) => setTimeout(resolve, 50));
725
- return this.fetchSigned(path, init, accountId, authPayload, mode, retries - 1);
779
+ return this.sendSigned(path, init, accountId, authPayload, mode, session, retries - 1);
726
780
  }
727
781
  throw err;
728
782
  }