@palbase/web 7.3.1 → 7.3.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/dist/internal.js CHANGED
@@ -6,8 +6,8 @@ import {
6
6
  createBoundClient,
7
7
  getRuntime,
8
8
  onConfigured
9
- } from "./chunk-RRHJV6YD.js";
10
- import "./chunk-53TN7KYR.js";
9
+ } from "./chunk-XF7NM6HF.js";
10
+ import "./chunk-43BGZCNU.js";
11
11
  import "./chunk-CFDU23TB.js";
12
12
  import "./chunk-PZ5AY32C.js";
13
13
  export {
@@ -81,8 +81,20 @@ function leadingZeroBits(hash) {
81
81
  }
82
82
  return bits;
83
83
  }
84
- async function solvePowChallenge(challenge, maxIterations = 1 << 24) {
84
+ var MAX_POW_DIFFICULTY = 24;
85
+ function powBudget(difficulty) {
86
+ return 8 * 2 ** difficulty;
87
+ }
88
+ async function solvePowChallenge(challenge, maxIterations = powBudget(challenge.difficulty), signal) {
89
+ if (challenge.difficulty > MAX_POW_DIFFICULTY) {
90
+ throw new Error(
91
+ `proof-of-work: refusing difficulty ${challenge.difficulty}; this client attempts at most ${MAX_POW_DIFFICULTY}, which is the highest a Palbase stack issues`
92
+ );
93
+ }
85
94
  for (let nonce = 0; nonce < maxIterations; nonce++) {
95
+ if ((nonce & 1023) === 0 && signal?.aborted) {
96
+ throw new DOMException("proof-of-work solve aborted", "AbortError");
97
+ }
86
98
  const digest = await crypto.subtle.digest("SHA-256", encoder.encode(challenge.prefix + nonce));
87
99
  if (leadingZeroBits(new Uint8Array(digest)) >= challenge.difficulty) {
88
100
  return {
@@ -252,7 +264,7 @@ var HttpClient = class _HttpClient {
252
264
  if (attempt < MAX_RETRIES - 1) {
253
265
  const backoff = INITIAL_BACKOFF_MS * 2 ** attempt;
254
266
  await this.delay(backoff);
255
- return this.executeWithRetry(method, path, options, attempt + 1, earned);
267
+ return this.executeWithRetry(method, path, options, attempt + 1);
256
268
  }
257
269
  throw new PalbaseError(
258
270
  "network_error",
@@ -288,7 +300,7 @@ var HttpClient = class _HttpClient {
288
300
  path,
289
301
  options,
290
302
  attempt,
291
- await solvePowChallenge(challenge)
303
+ await solvePowChallenge(challenge, void 0, options?.signal)
292
304
  );
293
305
  }
294
306
  }
@@ -9155,7 +9167,7 @@ function defaultSessionStorage(key) {
9155
9167
  }
9156
9168
 
9157
9169
  // src/version.ts
9158
- var VERSION = "7.3.1";
9170
+ var VERSION = "7.3.3";
9159
9171
 
9160
9172
  // src/runtime.ts
9161
9173
  function buildRuntime(config) {