zeldhash-miner 0.2.1 → 0.2.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/index.js CHANGED
@@ -1,22 +1,22 @@
1
1
  var o = /* @__PURE__ */ ((s) => (s.INVALID_ADDRESS = "INVALID_ADDRESS", s.UNSUPPORTED_ADDRESS_TYPE = "UNSUPPORTED_ADDRESS_TYPE", s.INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS", s.NO_CHANGE_OUTPUT = "NO_CHANGE_OUTPUT", s.MULTIPLE_CHANGE_OUTPUTS = "MULTIPLE_CHANGE_OUTPUTS", s.INVALID_INPUT = "INVALID_INPUT", s.WEBGPU_NOT_AVAILABLE = "WEBGPU_NOT_AVAILABLE", s.WORKER_ERROR = "WORKER_ERROR", s.MINING_ABORTED = "MINING_ABORTED", s.DUST_OUTPUT = "DUST_OUTPUT", s))(o || {});
2
- const $ = (s) => s instanceof Error ? s.message : String(s);
3
- class A extends Error {
2
+ const P = (s) => s instanceof Error ? s.message : String(s);
3
+ class w extends Error {
4
4
  code;
5
5
  details;
6
- constructor(t, e, r) {
7
- super(e), this.name = "ZeldMinerError", this.code = t, this.details = r;
6
+ constructor(t, e, n) {
7
+ super(e), this.name = "ZeldMinerError", this.code = t, this.details = n;
8
8
  }
9
9
  }
10
- const M = (s, t = o.WORKER_ERROR, e) => {
11
- if (s instanceof A)
10
+ const v = (s, t = o.WORKER_ERROR, e) => {
11
+ if (s instanceof w)
12
12
  return s;
13
- const r = $(s);
14
- return new A(t, r, e);
15
- }, u = (s, t, e) => new A(s, t, e), k = (s) => {
13
+ const n = P(s);
14
+ return new w(t, n, e);
15
+ }, r = (s, t, e) => new w(s, t, e), X = (s) => {
16
16
  const t = BigInt(Number.MAX_SAFE_INTEGER);
17
17
  return s > t ? Number.MAX_SAFE_INTEGER : s < -t ? -Number.MAX_SAFE_INTEGER : Number(s);
18
18
  };
19
- class C {
19
+ class O {
20
20
  mode;
21
21
  batchSize;
22
22
  workerCount;
@@ -57,39 +57,39 @@ class C {
57
57
  this.listeners[t].delete(e);
58
58
  }
59
59
  emit(t, e) {
60
- this.listeners[t].forEach((r) => r(e));
60
+ this.listeners[t].forEach((n) => n(e));
61
+ }
62
+ resolveWorkerUrl() {
63
+ const t = typeof location < "u" && location.origin ? location.origin : typeof self < "u" && self.location?.origin ? self.location.origin : void 0;
64
+ return t ? `${t}/worker.js` : new URL("data:video/mp2t;base64,Ly8gQm9vdHN0cmFwOiBkZWZpbmUgYSBzZW5zaWJsZSBkZWZhdWx0IGZvciBXQVNNIGJhc2UgcGF0aCBpbiB3b3JrZXIgY29udGV4dC4KLy8gV29ya2VycyBkb24ndCBoYXZlIGB3aW5kb3dgLCBidXQgYHNlbGZgIHByb3ZpZGVzIGxvY2F0aW9uLiBUaGlzIG11c3QgcnVuCi8vIGJlZm9yZSBhbnkgaW1wb3J0IHRoYXQgY2FsbHMgcmVzb2x2ZVdhc21CYXNlKCkuCmlmICh0eXBlb2YgKGdsb2JhbFRoaXMgYXMgeyBfX1pFTERNSU5FUl9XQVNNX0JBU0VfXz86IHVua25vd24gfSkuX19aRUxETUlORVJfV0FTTV9CQVNFX18gPT09ICJ1bmRlZmluZWQiKSB7CiAgdHJ5IHsKICAgIGNvbnN0IG9yaWdpbiA9CiAgICAgIHR5cGVvZiBzZWxmICE9PSAidW5kZWZpbmVkIiAmJiAoc2VsZiBhcyB7IGxvY2F0aW9uPzogeyBvcmlnaW4/OiBzdHJpbmcgfSB9KS5sb2NhdGlvbj8ub3JpZ2luCiAgICAgICAgPyAoc2VsZiBhcyB7IGxvY2F0aW9uPzogeyBvcmlnaW4/OiBzdHJpbmcgfSB9KS5sb2NhdGlvbiEub3JpZ2luCiAgICAgICAgOiAiaHR0cDovL2xvY2FsaG9zdCI7CiAgICAoZ2xvYmFsVGhpcyBhcyB7IF9fWkVMRE1JTkVSX1dBU01fQkFTRV9fPzogc3RyaW5nIH0pLl9fWkVMRE1JTkVSX1dBU01fQkFTRV9fID0gbmV3IFVSTCgiL3dhc20vIiwgb3JpZ2luISkuaHJlZjsKICB9IGNhdGNoIHsKICAgIChnbG9iYWxUaGlzIGFzIHsgX19aRUxETUlORVJfV0FTTV9CQVNFX18/OiBzdHJpbmcgfSkuX19aRUxETUlORVJfV0FTTV9CQVNFX18gPSAiL3dhc20vIjsKICB9Cn0KCmltcG9ydCB0eXBlIHsKICBNaW5lUmVzdWx0LAogIFZhbGlkYXRpb25SZXN1bHQsCiAgV2FzbUV4cG9ydHMsCiAgV29ya2VyTWVzc2FnZSwKICBXb3JrZXJNb2RlLAogIFdvcmtlclRlbXBsYXRlLAogIFdvcmtlclJlc3BvbnNlLAp9IGZyb20gIi4vdHlwZXMiOwppbXBvcnQgeyBaZWxkTWluZXJFcnJvckNvZGUgfSBmcm9tICIuL3R5cGVzIjsKaW1wb3J0IHsgc3BsaXROb25jZVNlZ21lbnRzLCBzcGxpdE5vbmNlU2VnbWVudHNDYm9yIH0gZnJvbSAiLi9ub25jZSI7CmltcG9ydCB7IGxvYWRXYXNtIH0gZnJvbSAiLi93YXNtIjsKCnR5cGUgTWluZU1lc3NhZ2UgPSBFeHRyYWN0PFdvcmtlck1lc3NhZ2UsIHsgdHlwZTogIm1pbmUiIH0+OwoKY29uc3QgY3R4ID0gc2VsZiBhcyB1bmtub3duIGFzIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOwpjb25zdCB3b3JrZXJJZCA9CiAgKGN0eCBhcyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSAmIHsgbmFtZT86IHN0cmluZyB9KS5uYW1lID8/IHVuZGVmaW5lZDsKCmNvbnN0IGZvcm1hdEVycm9yID0gKGVycjogdW5rbm93bik6IHN0cmluZyA9PgogIGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKTsKCmxldCBjdXJyZW50TW9kZTogV29ya2VyTW9kZSA9ICJjcHUiOwpsZXQgbWluaW5nQWJvcnQ6IEFib3J0Q29udHJvbGxlciB8IG51bGwgPSBudWxsOwpsZXQgbWluaW5nUHJvbWlzZTogUHJvbWlzZTx2b2lkPiB8IG51bGwgPSBudWxsOwoKY29uc3QgcG9zdCA9IChtZXNzYWdlOiBXb3JrZXJSZXNwb25zZSk6IHZvaWQgPT4gewogIGN0eC5wb3N0TWVzc2FnZSh7IC4uLm1lc3NhZ2UsIHdvcmtlcklkIH0pOwp9OwoKY29uc3QgcG9zdEVycm9yID0gKAogIG1lc3NhZ2U6IHN0cmluZywKICBjb2RlOiBaZWxkTWluZXJFcnJvckNvZGUgPSBaZWxkTWluZXJFcnJvckNvZGUuV09SS0VSX0VSUk9SLAogIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPgopOiB2b2lkID0+IHsKICBwb3N0KHsgdHlwZTogImVycm9yIiwgbWVzc2FnZSwgY29kZSwgZGV0YWlscyB9KTsKfTsKCmNvbnN0IGlzVmFsaWRhdGlvblJlc3VsdCA9ICh2YWw6IHVua25vd24pOiB2YWwgaXMgVmFsaWRhdGlvblJlc3VsdCA9PgogIHR5cGVvZiB2YWwgPT09ICJvYmplY3QiICYmIHZhbCAhPT0gbnVsbCAmJiAib2siIGluICh2YWwgYXMgb2JqZWN0KTsKCmNvbnN0IGlzTWluZVJlc3VsdCA9ICgKICB2YWw6IHVua25vd24KKTogdmFsIGlzIHsgbm9uY2U6IGJpZ2ludDsgdHhpZDogc3RyaW5nIH0gPT4KICB0eXBlb2YgdmFsID09PSAib2JqZWN0IiAmJgogIHZhbCAhPT0gbnVsbCAmJgogICJub25jZSIgaW4gKHZhbCBhcyBvYmplY3QpICYmCiAgInR4aWQiIGluICh2YWwgYXMgb2JqZWN0KTsKCmNvbnN0IHNhZmVCaWdJbnRUb051bWJlciA9ICh2YWx1ZTogYmlnaW50KTogbnVtYmVyID0+IHsKICBjb25zdCBtYXggPSBCaWdJbnQoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpOwogIGlmICh2YWx1ZSA+IG1heCkgcmV0dXJuIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSOwogIGlmICh2YWx1ZSA8IC1tYXgpIHJldHVybiAtTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7CiAgcmV0dXJuIE51bWJlcih2YWx1ZSk7Cn07Cgp0eXBlIFRlbXBsYXRlQ2FjaGUgPSBNYXA8bnVtYmVyLCBXb3JrZXJUZW1wbGF0ZT47Cgpjb25zdCBjbG9uZVRlbXBsYXRlID0gKHRlbXBsYXRlOiBXb3JrZXJUZW1wbGF0ZSk6IFdvcmtlclRlbXBsYXRlID0+ICh7CiAgbm9uY2VMZW5ndGg6IHRlbXBsYXRlLm5vbmNlTGVuZ3RoLAogIHByZWZpeDogbmV3IFVpbnQ4QXJyYXkodGVtcGxhdGUucHJlZml4KSwKICBzdWZmaXg6IG5ldyBVaW50OEFycmF5KHRlbXBsYXRlLnN1ZmZpeCksCiAgdXNlQ2Jvck5vbmNlOiB0ZW1wbGF0ZS51c2VDYm9yTm9uY2UsCn0pOwoKY29uc3QgY2FjaGVUZW1wbGF0ZSA9IChjYWNoZTogVGVtcGxhdGVDYWNoZSwgdGVtcGxhdGU6IFdvcmtlclRlbXBsYXRlKTogdm9pZCA9PiB7CiAgY2FjaGUuc2V0KHRlbXBsYXRlLm5vbmNlTGVuZ3RoLCBjbG9uZVRlbXBsYXRlKHRlbXBsYXRlKSk7Cn07Cgpjb25zdCBlbnN1cmVUZW1wbGF0ZUZvclNlZ21lbnQgPSBhc3luYyAoCiAgY2FjaGU6IFRlbXBsYXRlQ2FjaGUsCiAgd2FzbTogV2FzbUV4cG9ydHMsCiAgcGFyYW1zOiB7CiAgICBpbnB1dHM6IE1pbmVNZXNzYWdlWyJpbnB1dHMiXTsKICAgIG91dHB1dHM6IE1pbmVNZXNzYWdlWyJvdXRwdXRzIl07CiAgICBzYXRzUGVyVmJ5dGU6IG51bWJlcjsKICAgIGRpc3RyaWJ1dGlvbj86IGJpZ2ludFtdOwogICAgdXNlQ2Jvck5vbmNlOiBib29sZWFuOwogIH0sCiAgc2VnbWVudDogeyBzdGFydDogYmlnaW50OyBzaXplOiBudW1iZXI7IG5vbmNlTGVuZ3RoOiBudW1iZXIgfSwKICBub3JtYWxpemVkTmV0d29yazogTWluZU1lc3NhZ2VbIm5ldHdvcmsiXQopOiBQcm9taXNlPFdvcmtlclRlbXBsYXRlPiA9PiB7CiAgY29uc3QgY2FjaGVkID0gY2FjaGUuZ2V0KHNlZ21lbnQubm9uY2VMZW5ndGgpOwogIGlmIChjYWNoZWQpIHsKICAgIHJldHVybiBjYWNoZWQ7CiAgfQoKICBjb25zdCB0ZW1wbGF0ZSA9IHdhc20uYnVpbGRfbWluaW5nX3RlbXBsYXRlKAogICAgcGFyYW1zLmlucHV0cywKICAgIHBhcmFtcy5vdXRwdXRzLAogICAgbm9ybWFsaXplZE5ldHdvcmssCiAgICBCaWdJbnQocGFyYW1zLnNhdHNQZXJWYnl0ZSksCiAgICBzZWdtZW50LnN0YXJ0LAogICAgc2VnbWVudC5zaXplLAogICAgcGFyYW1zLmRpc3RyaWJ1dGlvbiA/PyBudWxsCiAgKTsKCiAgY29uc3QgYnVpbHQ6IFdvcmtlclRlbXBsYXRlID0gewogICAgLi4udGVtcGxhdGUsCiAgICBub25jZUxlbmd0aDogc2VnbWVudC5ub25jZUxlbmd0aCwKICAgIHVzZUNib3JOb25jZTogdGVtcGxhdGUudXNlQ2Jvck5vbmNlID8/IHBhcmFtcy51c2VDYm9yTm9uY2UsCiAgfTsKCiAgY2FjaGVUZW1wbGF0ZShjYWNoZSwgYnVpbHQpOwogIHJldHVybiBidWlsdDsKfTsKCmNvbnN0IHJ1bkJhdGNoID0gYXN5bmMgKAogIHdhc206IFdhc21FeHBvcnRzLAogIG1vZGU6IFdvcmtlck1vZGUsCiAgcHJlZml4OiBVaW50OEFycmF5LAogIHN1ZmZpeDogVWludDhBcnJheSwKICBzdGFydE5vbmNlOiBiaWdpbnQsCiAgYmF0Y2hTaXplOiBudW1iZXIsCiAgdGFyZ2V0WmVyb3M6IG51bWJlciwKICB1c2VDYm9yTm9uY2U6IGJvb2xlYW4KKTogUHJvbWlzZTx1bmtub3duPiA9PiB7CiAgaWYgKG1vZGUgPT09ICJncHUiKSB7CiAgICBpZiAoIXdhc20ubWluZV9iYXRjaF9ncHUpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJHUFUgbWluaW5nIHJlcXVlc3RlZCBidXQgbWluZV9iYXRjaF9ncHUgaXMgdW5hdmFpbGFibGUiKTsKICAgIH0KICAgIHJldHVybiB3YXNtLm1pbmVfYmF0Y2hfZ3B1KAogICAgICBwcmVmaXgsCiAgICAgIHN1ZmZpeCwKICAgICAgc3RhcnROb25jZSwKICAgICAgYmF0Y2hTaXplLAogICAgICB0YXJnZXRaZXJvcywKICAgICAgdXNlQ2Jvck5vbmNlCiAgICApOwogIH0KCiAgcmV0dXJuIHdhc20ubWluZV9iYXRjaF93YXNtKAogICAgcHJlZml4LAogICAgc3VmZml4LAogICAgc3RhcnROb25jZSwKICAgIGJhdGNoU2l6ZSwKICAgIHRhcmdldFplcm9zLAogICAgdXNlQ2Jvck5vbmNlCiAgKTsKfTsKCmNvbnN0IG1pbmVMb29wID0gYXN5bmMgKG1zZzogTWluZU1lc3NhZ2UsIGFib3J0OiBBYm9ydENvbnRyb2xsZXIpOiBQcm9taXNlPHZvaWQ+ID0+IHsKICBsZXQgd2FzbTogV2FzbUV4cG9ydHM7CiAgdHJ5IHsKICAgIHdhc20gPSBhd2FpdCBsb2FkV2FzbSgpOwogICAgaWYgKGN1cnJlbnRNb2RlID09PSAiZ3B1IikgewogICAgICBpZiAoIXdhc20ubWluZV9iYXRjaF9ncHUpIHsKICAgICAgICBwb3N0RXJyb3IoCiAgICAgICAgICAiR1BVIG1pbmluZyByZXF1ZXN0ZWQgYnV0IG1pbmVfYmF0Y2hfZ3B1IGlzIHVuYXZhaWxhYmxlIiwKICAgICAgICAgIFplbGRNaW5lckVycm9yQ29kZS5XRUJHUFVfTk9UX0FWQUlMQUJMRQogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmICh3YXNtLmluaXRfZ3B1KSB7CiAgICAgICAgYXdhaXQgd2FzbS5pbml0X2dwdSgpOwogICAgICB9CiAgICB9CiAgfSBjYXRjaCAoZXJyKSB7CiAgICBjb25zdCBtZXNzYWdlID0gZm9ybWF0RXJyb3IoZXJyKTsKICAgIGNvbnN0IGNvZGUgPQogICAgICBjdXJyZW50TW9kZSA9PT0gImdwdSIKICAgICAgICA/IFplbGRNaW5lckVycm9yQ29kZS5XRUJHUFVfTk9UX0FWQUlMQUJMRQogICAgICAgIDogWmVsZE1pbmVyRXJyb3JDb2RlLldPUktFUl9FUlJPUjsKICAgIHBvc3RFcnJvcihgRmFpbGVkIHRvIGluaXRpYWxpemUgV0FTTTogJHttZXNzYWdlfWAsIGNvZGUpOwogICAgcmV0dXJuOwogIH0KCiAgY29uc3QgdGVtcGxhdGVDYWNoZTogVGVtcGxhdGVDYWNoZSA9IG5ldyBNYXAoKTsKICBjb25zdCB1c2VDYm9yTm9uY2UgPQogICAgbXNnLnRlbXBsYXRlLnVzZUNib3JOb25jZSA/PyBCb29sZWFuKG1zZy5kaXN0cmlidXRpb24gJiYgbXNnLmRpc3RyaWJ1dGlvbi5sZW5ndGggPiAwKTsKICBjYWNoZVRlbXBsYXRlKHRlbXBsYXRlQ2FjaGUsIHsgLi4ubXNnLnRlbXBsYXRlLCB1c2VDYm9yTm9uY2UgfSk7CgogIGNvbnN0IHN0cmlkZSA9IG1zZy5ub25jZVN0ZXAgPz8gQmlnSW50KG1zZy5iYXRjaFNpemUpOwogIGNvbnN0IG5vcm1hbGl6ZWROZXR3b3JrID0gbXNnLm5ldHdvcmsgPT09ICJzaWduZXQiID8gInRlc3RuZXQiIDogbXNnLm5ldHdvcms7CiAgbGV0IG5leHROb25jZSA9IG1zZy5zdGFydE5vbmNlOwogIGxldCBoYXNoZXNQcm9jZXNzZWQgPSAwbjsKICBjb25zdCBzdGFydGVkQXQgPSBwZXJmb3JtYW5jZS5ub3coKTsKCiAgd2hpbGUgKCFhYm9ydC5zaWduYWwuYWJvcnRlZCkgewogICAgY29uc3QgaXRlcmF0aW9uU3RhcnQgPSBuZXh0Tm9uY2U7CiAgICBsZXQgcmVtYWluaW5nID0gbXNnLmJhdGNoU2l6ZTsKICAgIGxldCBwcm9jZXNzZWRJbkl0ZXJhdGlvbiA9IDBuOwoKICAgIHdoaWxlIChyZW1haW5pbmcgPiAwICYmICFhYm9ydC5zaWduYWwuYWJvcnRlZCkgewogICAgICBjb25zdCBzZWdtZW50U3RhcnQgPSBpdGVyYXRpb25TdGFydCArIHByb2Nlc3NlZEluSXRlcmF0aW9uOwogICAgICBsZXQgc2VnbWVudDogeyBzdGFydDogYmlnaW50OyBzaXplOiBudW1iZXI7IG5vbmNlTGVuZ3RoOiBudW1iZXIgfTsKCiAgICAgIHRyeSB7CiAgICAgICAgY29uc3Qgc2VnbWVudHMgPSB1c2VDYm9yTm9uY2UKICAgICAgICAgID8gc3BsaXROb25jZVNlZ21lbnRzQ2JvcihzZWdtZW50U3RhcnQsIHJlbWFpbmluZykKICAgICAgICAgIDogc3BsaXROb25jZVNlZ21lbnRzKHNlZ21lbnRTdGFydCwgcmVtYWluaW5nKTsKICAgICAgICBzZWdtZW50ID0gc2VnbWVudHNbMF07CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIHBvc3RFcnJvcigKICAgICAgICAgIGBJbnZhbGlkIG5vbmNlIHJhbmdlOiAke2Zvcm1hdEVycm9yKGVycil9YCwKICAgICAgICAgIFplbGRNaW5lckVycm9yQ29kZS5JTlZBTElEX0lOUFVUCiAgICAgICAgKTsKICAgICAgICBhYm9ydC5hYm9ydCgpOwogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgbGV0IHRlbXBsYXRlOiBXb3JrZXJUZW1wbGF0ZTsKICAgICAgdHJ5IHsKICAgICAgICB0ZW1wbGF0ZSA9IGF3YWl0IGVuc3VyZVRlbXBsYXRlRm9yU2VnbWVudCgKICAgICAgICAgIHRlbXBsYXRlQ2FjaGUsCiAgICAgICAgICB3YXNtLAogICAgICAgICAgewogICAgICAgICAgICBpbnB1dHM6IG1zZy5pbnB1dHMsCiAgICAgICAgICAgIG91dHB1dHM6IG1zZy5vdXRwdXRzLAogICAgICAgICAgICBzYXRzUGVyVmJ5dGU6IG1zZy5zYXRzUGVyVmJ5dGUsCiAgICAgICAgICAgIGRpc3RyaWJ1dGlvbjogbXNnLmRpc3RyaWJ1dGlvbiwKICAgICAgICAgICAgdXNlQ2Jvck5vbmNlLAogICAgICAgICAgfSwKICAgICAgICAgIHNlZ21lbnQsCiAgICAgICAgICBub3JtYWxpemVkTmV0d29yawogICAgICAgICk7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIHBvc3RFcnJvcigKICAgICAgICAgIGBGYWlsZWQgdG8gYnVpbGQgbWluaW5nIHRlbXBsYXRlOiAke2Zvcm1hdEVycm9yKGVycil9YCwKICAgICAgICAgIFplbGRNaW5lckVycm9yQ29kZS5XT1JLRVJfRVJST1IKICAgICAgICApOwogICAgICAgIGFib3J0LmFib3J0KCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBsZXQgb3V0cHV0OiB1bmtub3duOwogICAgICBjb25zdCBiYXRjaFN0YXJ0ZWRBdCA9IHBlcmZvcm1hbmNlLm5vdygpOwogICAgICB0cnkgewogICAgICAgIG91dHB1dCA9IGF3YWl0IHJ1bkJhdGNoKAogICAgICAgICAgd2FzbSwKICAgICAgICAgIGN1cnJlbnRNb2RlLAogICAgICAgICAgdGVtcGxhdGUucHJlZml4LAogICAgICAgICAgdGVtcGxhdGUuc3VmZml4LAogICAgICAgICAgc2VnbWVudC5zdGFydCwKICAgICAgICAgIHNlZ21lbnQuc2l6ZSwKICAgICAgICAgIG1zZy50YXJnZXRaZXJvcywKICAgICAgICAgIHVzZUNib3JOb25jZQogICAgICAgICk7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBmb3JtYXRFcnJvcihlcnIpOwogICAgICAgIHBvc3RFcnJvcigKICAgICAgICAgIGBCYXRjaCBtaW5pbmcgZmFpbGVkOiAke21lc3NhZ2V9YCwKICAgICAgICAgIFplbGRNaW5lckVycm9yQ29kZS5XT1JLRVJfRVJST1IKICAgICAgICApOwogICAgICAgIGFib3J0LmFib3J0KCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBjb25zdCBiYXRjaER1cmF0aW9uTXMgPSBwZXJmb3JtYW5jZS5ub3coKSAtIGJhdGNoU3RhcnRlZEF0OwoKICAgICAgaWYgKGlzVmFsaWRhdGlvblJlc3VsdChvdXRwdXQpKSB7CiAgICAgICAgaWYgKCFvdXRwdXQub2spIHsKICAgICAgICAgIHBvc3RFcnJvcigKICAgICAgICAgICAgb3V0cHV0LmVycm9yID8/ICJWYWxpZGF0aW9uIGZhaWxlZCIsCiAgICAgICAgICAgIFplbGRNaW5lckVycm9yQ29kZS5JTlZBTElEX0lOUFVUCiAgICAgICAgICApOwogICAgICAgICAgYWJvcnQuYWJvcnQoKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoaXNNaW5lUmVzdWx0KG91dHB1dCkpIHsKICAgICAgICBjb25zdCBhdHRlbXB0c0JlZm9yZSA9IGhhc2hlc1Byb2Nlc3NlZCArIHByb2Nlc3NlZEluSXRlcmF0aW9uOwogICAgICAgIGNvbnN0IGF0dGVtcHRzSW5TZWdtZW50ID0gQmlnSW50KG91dHB1dC5ub25jZSkgLSBzZWdtZW50LnN0YXJ0ICsgMW47CiAgICAgICAgY29uc3QgdG90YWxBdHRlbXB0cyA9IGF0dGVtcHRzQmVmb3JlICsgYXR0ZW1wdHNJblNlZ21lbnQ7CiAgICAgICAgY29uc3QgZWxhcHNlZE1zID0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydGVkQXQ7CiAgICAgICAgY29uc3QgaGFzaFJhdGUgPQogICAgICAgICAgZWxhcHNlZE1zID4gMAogICAgICAgICAgICA/IHNhZmVCaWdJbnRUb051bWJlcih0b3RhbEF0dGVtcHRzKSAvIChlbGFwc2VkTXMgLyAxMDAwKQogICAgICAgICAgICA6IDA7CiAgICAgICAgY29uc3QgbGFzdE5vbmNlID0gc2VnbWVudC5zdGFydCArIGF0dGVtcHRzSW5TZWdtZW50IC0gMW47CgogICAgICAgIGNvbnN0IHJlc3VsdDogTWluZVJlc3VsdCA9IHsKICAgICAgICAgIHBzYnQ6ICIiLAogICAgICAgICAgdHhpZDogb3V0cHV0LnR4aWQsCiAgICAgICAgICBub25jZTogQmlnSW50KG91dHB1dC5ub25jZSksCiAgICAgICAgICBhdHRlbXB0czogdG90YWxBdHRlbXB0cywKICAgICAgICAgIGR1cmF0aW9uOiBlbGFwc2VkTXMsCiAgICAgICAgICBoYXNoUmF0ZSwKICAgICAgICB9OwoKICAgICAgICBwb3N0KHsKICAgICAgICAgIHR5cGU6ICJmb3VuZCIsCiAgICAgICAgICByZXN1bHQsCiAgICAgICAgICBoYXNoZXNQcm9jZXNzZWQ6IHRvdGFsQXR0ZW1wdHMsCiAgICAgICAgICBoYXNoUmF0ZSwKICAgICAgICAgIGxhc3ROb25jZSwKICAgICAgICB9KTsKICAgICAgICBhYm9ydC5hYm9ydCgpOwogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgaGFzaGVzUHJvY2Vzc2VkICs9IEJpZ0ludChzZWdtZW50LnNpemUpOwogICAgICBwcm9jZXNzZWRJbkl0ZXJhdGlvbiArPSBCaWdJbnQoc2VnbWVudC5zaXplKTsKICAgICAgcmVtYWluaW5nIC09IHNlZ21lbnQuc2l6ZTsKCiAgICAgIGNvbnN0IGhhc2hSYXRlID0KICAgICAgICBiYXRjaER1cmF0aW9uTXMgPiAwCiAgICAgICAgICA/IHNlZ21lbnQuc2l6ZSAvIChiYXRjaER1cmF0aW9uTXMgLyAxMDAwKQogICAgICAgICAgOiBzZWdtZW50LnNpemU7CiAgICAgIGNvbnN0IGxhc3ROb25jZSA9IHNlZ21lbnQuc3RhcnQgKyBCaWdJbnQoc2VnbWVudC5zaXplKSAtIDFuOwoKICAgICAgcG9zdCh7IHR5cGU6ICJwcm9ncmVzcyIsIGhhc2hlc1Byb2Nlc3NlZCwgaGFzaFJhdGUsIGxhc3ROb25jZSB9KTsKICAgIH0KCiAgICBpZiAoYWJvcnQuc2lnbmFsLmFib3J0ZWQpIHsKICAgICAgYnJlYWs7CiAgICB9CgogICAgY29uc3QgbGFzdE5vbmNlID0gaXRlcmF0aW9uU3RhcnQgKyBCaWdJbnQobXNnLmJhdGNoU2l6ZSkgLSAxbjsKICAgIHBvc3QoeyB0eXBlOiAiYmF0Y2hfY29tcGxldGUiLCBsYXN0Tm9uY2UgfSk7CgogICAgbmV4dE5vbmNlID0gaXRlcmF0aW9uU3RhcnQgKyBzdHJpZGU7CiAgfQp9OwoKY29uc3Qgc3RhcnRNaW5pbmcgPSAobXNnOiBNaW5lTWVzc2FnZSk6IHZvaWQgPT4gewogIGNvbnN0IGFib3J0ID0gbmV3IEFib3J0Q29udHJvbGxlcigpOwogIG1pbmluZ0Fib3J0Py5hYm9ydCgpOwogIG1pbmluZ0Fib3J0ID0gYWJvcnQ7CgogIGNvbnN0IHByb21pc2UgPSBtaW5lTG9vcChtc2csIGFib3J0KS5maW5hbGx5KCgpID0+IHsKICAgIGlmIChtaW5pbmdBYm9ydCA9PT0gYWJvcnQpIHsKICAgICAgbWluaW5nQWJvcnQgPSBudWxsOwogICAgfQogICAgaWYgKG1pbmluZ1Byb21pc2UgPT09IHByb21pc2UpIHsKICAgICAgbWluaW5nUHJvbWlzZSA9IG51bGw7CiAgICB9CiAgfSk7CgogIG1pbmluZ1Byb21pc2UgPSBwcm9taXNlOwp9OwoKY3R4LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQ6IE1lc3NhZ2VFdmVudDxXb3JrZXJNZXNzYWdlPikgPT4gewogIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhOwoKICBzd2l0Y2ggKGRhdGEudHlwZSkgewogICAgY2FzZSAiaW5pdCI6CiAgICAgIGN1cnJlbnRNb2RlID0gZGF0YS5tb2RlOwogICAgICBwb3N0KHsgdHlwZTogInJlYWR5IiB9KTsKICAgICAgYnJlYWs7CiAgICBjYXNlICJtaW5lIjoKICAgICAgc3RhcnRNaW5pbmcoZGF0YSk7CiAgICAgIGJyZWFrOwogICAgY2FzZSAic3RvcCI6CiAgICAgIG1pbmluZ0Fib3J0Py5hYm9ydCgpOwogICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgIHBvc3RFcnJvcigKICAgICAgICBgVW5rbm93biBtZXNzYWdlIHR5cGU6ICR7KGRhdGEgYXMgeyB0eXBlPzogc3RyaW5nIH0pLnR5cGV9YCwKICAgICAgICBaZWxkTWluZXJFcnJvckNvZGUuV09SS0VSX0VSUk9SCiAgICAgICk7CiAgfQp9KTsKCg==", import.meta.url).href;
61
65
  }
62
66
  async spawnWorkers() {
63
- const t = [];
64
- for (let e = 0; e < this.workerCount; e += 1) {
65
- const r = new Worker(new URL(
66
- /* @vite-ignore */
67
- "" + new URL("worker.js", import.meta.url).href,
68
- import.meta.url
69
- ), {
67
+ const t = [], e = this.resolveWorkerUrl();
68
+ for (let n = 0; n < this.workerCount; n += 1) {
69
+ const i = new Worker(e, {
70
70
  type: "module",
71
71
  /* @vite-ignore */
72
- name: `zeldminer-worker-${e}`
73
- }), n = {
74
- worker: r,
72
+ name: `zeldminer-worker-${n}`
73
+ }), g = {
74
+ worker: i,
75
75
  hashesProcessed: 0n,
76
76
  hashRate: 0,
77
77
  nextNonce: 0n,
78
78
  processedBase: 0n
79
79
  };
80
- this.workers.push(n), t.push(
81
- new Promise((a) => {
82
- const h = (c) => {
83
- c.data.type === "ready" && (r.removeEventListener("message", h), a());
80
+ this.workers.push(g), t.push(
81
+ new Promise((c) => {
82
+ const a = (A) => {
83
+ A.data.type === "ready" && (i.removeEventListener("message", a), c());
84
84
  };
85
- r.addEventListener("message", h);
85
+ i.addEventListener("message", a);
86
86
  })
87
- ), r.addEventListener(
87
+ ), i.addEventListener(
88
88
  "message",
89
- (a) => this.handleWorkerMessage(n, a.data)
89
+ (c) => this.handleWorkerMessage(g, c.data)
90
90
  );
91
- const i = { type: "init", mode: this.mode };
92
- r.postMessage(i);
91
+ const I = { type: "init", mode: this.mode };
92
+ i.postMessage(I);
93
93
  }
94
94
  await Promise.all(t), this.emit("ready", void 0);
95
95
  }
@@ -105,21 +105,21 @@ class C {
105
105
  break;
106
106
  case "found":
107
107
  t.hashesProcessed = t.processedBase + (e.hashesProcessed ?? t.hashesProcessed), t.hashRate = e.hashRate ?? t.hashRate, t.lastNonce = e.lastNonce ?? t.lastNonce;
108
- const r = this.workers.reduce(
109
- (h, c) => h + c.hashesProcessed,
108
+ const n = this.workers.reduce(
109
+ (c, a) => c + a.hashesProcessed,
110
110
  0n
111
- ), n = this.startedAt ? performance.now() - this.startedAt : 0, i = n > 0 ? k(r) / (n / 1e3) : 0, a = {
111
+ ), i = this.startedAt ? performance.now() - this.startedAt : 0, g = i > 0 ? X(n) / (i / 1e3) : 0, I = {
112
112
  ...e.result,
113
- attempts: r,
114
- duration: n,
115
- hashRate: i
113
+ attempts: n,
114
+ duration: i,
115
+ hashRate: g
116
116
  };
117
- this.running = !1, this.paused = !1, this.terminateWorkers(), this.cleanupExternalAbort(), this.emit("found", a);
117
+ this.running = !1, this.paused = !1, this.terminateWorkers(), this.cleanupExternalAbort(), this.emit("found", I);
118
118
  break;
119
119
  case "error":
120
120
  this.running = !1, this.paused = !1, this.terminateWorkers(), this.cleanupExternalAbort(), this.emit(
121
121
  "error",
122
- new A(
122
+ new w(
123
123
  e.code ?? o.WORKER_ERROR,
124
124
  e.message,
125
125
  {
@@ -134,14 +134,14 @@ class C {
134
134
  emitProgress() {
135
135
  if (!this.running) return;
136
136
  const t = this.workers.reduce(
137
- (i, a) => i + a.hashesProcessed,
137
+ (g, I) => g + I.hashesProcessed,
138
138
  0n
139
- ), e = this.startedAt ? performance.now() - this.startedAt : 0, r = e > 0 ? k(t) / (e / 1e3) : 0, n = {
139
+ ), e = this.startedAt ? performance.now() - this.startedAt : 0, n = e > 0 ? X(t) / (e / 1e3) : 0, i = {
140
140
  hashesProcessed: t,
141
- hashRate: r,
141
+ hashRate: n,
142
142
  elapsedMs: e
143
143
  };
144
- this.emit("progress", n);
144
+ this.emit("progress", i);
145
145
  }
146
146
  computeNextNonce(t) {
147
147
  const e = this.stride - BigInt(this.batchSize);
@@ -163,25 +163,25 @@ class C {
163
163
  async start(t) {
164
164
  if (await this.readyPromise, this.stopWorkers(), this.running = !0, this.paused = !1, this.startedAt = performance.now(), this.txInputs = t.inputs, this.txOutputs = t.outputs, this.txNetwork = t.network === "signet" ? "testnet" : t.network, this.satsPerVbyte = t.satsPerVbyte, this.template = t.template, this.targetZeros = t.targetZeros, this.startNonce = t.startNonce ?? 0n, this.txDistribution = t.distribution, this.externalAbort && this.externalAbort !== t.signal && this.cleanupExternalAbort(), t.signal && (this.externalAbort = t.signal, t.signal.addEventListener("abort", this.abortHandler, { once: !0 })), !this.template || !this.txInputs || !this.txOutputs || this.targetZeros === void 0 || this.satsPerVbyte === void 0 || !this.txNetwork)
165
165
  throw new Error("Mining parameters are missing");
166
- const e = this.txInputs, r = this.txOutputs, n = this.txNetwork, i = this.satsPerVbyte, a = this.template, h = this.targetZeros, c = this.txDistribution, p = this.stride;
167
- this.workers.forEach((l, d) => {
168
- l.processedBase = 0n, l.hashesProcessed = 0n, l.hashRate = 0, l.lastNonce = void 0;
169
- const m = this.startNonce + BigInt(d) * BigInt(this.batchSize);
170
- l.nextNonce = m;
171
- const w = {
166
+ const e = this.txInputs, n = this.txOutputs, i = this.txNetwork, g = this.satsPerVbyte, I = this.template, c = this.targetZeros, a = this.txDistribution, A = this.stride;
167
+ this.workers.forEach((C, l) => {
168
+ C.processedBase = 0n, C.hashesProcessed = 0n, C.hashRate = 0, C.lastNonce = void 0;
169
+ const u = this.startNonce + BigInt(l) * BigInt(this.batchSize);
170
+ C.nextNonce = u;
171
+ const h = {
172
172
  type: "mine",
173
173
  inputs: e,
174
- outputs: r,
175
- network: n,
176
- satsPerVbyte: i,
177
- template: a,
178
- startNonce: m,
174
+ outputs: n,
175
+ network: i,
176
+ satsPerVbyte: g,
177
+ template: I,
178
+ startNonce: u,
179
179
  batchSize: this.batchSize,
180
- targetZeros: h,
181
- nonceStep: p,
182
- distribution: c
180
+ targetZeros: c,
181
+ nonceStep: A,
182
+ distribution: a
183
183
  };
184
- l.worker.postMessage(w);
184
+ C.worker.postMessage(h);
185
185
  });
186
186
  }
187
187
  pause() {
@@ -191,77 +191,84 @@ class C {
191
191
  if (!this.paused || !this.template || !this.txInputs || !this.txOutputs || this.targetZeros === void 0 || this.satsPerVbyte === void 0 || !this.txNetwork)
192
192
  return;
193
193
  await this.readyPromise, this.running = !0, this.paused = !1, this.startedAt || (this.startedAt = performance.now());
194
- const t = this.txInputs, e = this.txOutputs, r = this.txNetwork, n = this.satsPerVbyte, i = this.template, a = this.targetZeros, h = this.txDistribution, c = this.stride;
195
- this.workers.forEach((p, l) => {
196
- p.processedBase = p.hashesProcessed, p.hashRate = 0;
197
- const d = p.nextNonce || this.startNonce + BigInt(l) * BigInt(this.batchSize), m = {
194
+ const t = this.txInputs, e = this.txOutputs, n = this.txNetwork, i = this.satsPerVbyte, g = this.template, I = this.targetZeros, c = this.txDistribution, a = this.stride;
195
+ this.workers.forEach((A, C) => {
196
+ A.processedBase = A.hashesProcessed, A.hashRate = 0;
197
+ const l = A.nextNonce || this.startNonce + BigInt(C) * BigInt(this.batchSize), u = {
198
198
  type: "mine",
199
199
  inputs: t,
200
200
  outputs: e,
201
- network: r,
202
- satsPerVbyte: n,
203
- template: i,
204
- startNonce: d,
201
+ network: n,
202
+ satsPerVbyte: i,
203
+ template: g,
204
+ startNonce: l,
205
205
  batchSize: this.batchSize,
206
- targetZeros: a,
207
- nonceStep: c,
208
- distribution: h
206
+ targetZeros: I,
207
+ nonceStep: a,
208
+ distribution: c
209
209
  };
210
- p.worker.postMessage(m);
210
+ A.worker.postMessage(u);
211
211
  });
212
212
  }
213
213
  stop() {
214
214
  !this.running && !this.paused || (this.running = !1, this.paused = !1, this.terminateWorkers(), this.cleanupExternalAbort(), this.emit("stopped", void 0));
215
215
  }
216
216
  }
217
- const q = {};
218
- let P = null, N = null, D = !1;
219
- const Z = () => {
220
- if (D) return;
221
- D = !0;
217
+ const L = {};
218
+ if (typeof globalThis.__ZELDMINER_WASM_BASE__ > "u")
219
+ try {
220
+ const s = typeof window < "u" && window.location?.origin ? window.location.origin : typeof self < "u" && self.location?.origin ? self.location.origin : "http://localhost";
221
+ globalThis.__ZELDMINER_WASM_BASE__ = new URL("/wasm/", s).href;
222
+ } catch {
223
+ globalThis.__ZELDMINER_WASM_BASE__ = "/wasm/";
224
+ }
225
+ let B = null, N = null, Y = !1;
226
+ const D = () => {
227
+ if (Y) return;
228
+ Y = !0;
222
229
  const s = globalThis.GPUAdapter?.prototype, t = s?.requestDevice;
223
- !s || typeof t != "function" || (s.requestDevice = function(r) {
224
- if (r?.requiredLimits && typeof this.limits == "object") {
225
- const n = r.requiredLimits, i = this.limits;
226
- for (const a of Object.keys(n))
227
- (!(a in i) || i[a] === void 0) && delete n[a];
230
+ !s || typeof t != "function" || (s.requestDevice = function(n) {
231
+ if (n?.requiredLimits && typeof this.limits == "object") {
232
+ const i = n.requiredLimits, g = this.limits;
233
+ for (const I of Object.keys(i))
234
+ (!(I in g) || g[I] === void 0) && delete i[I];
228
235
  }
229
- return t.call(this, r);
236
+ return t.call(this, n);
230
237
  });
231
- }, S = (s) => s.endsWith("/") ? s : `${s}/`, _ = (s) => {
238
+ }, R = (s) => s.endsWith("/") ? s : `${s}/`, p = (s) => {
232
239
  const t = s.trim();
233
- return t && (typeof window < "u" && typeof window.location?.origin == "string" ? S(new URL(t, window.location.origin).href) : S(new URL(t, import.meta.url).href));
234
- }, H = () => {
240
+ return t && (typeof window < "u" && typeof window.location?.origin == "string" ? R(new URL(t, window.location.origin).href) : R(new URL(t, import.meta.url).href));
241
+ }, Q = () => {
235
242
  const s = globalThis.__ZELDMINER_WASM_BASE__;
236
243
  if (typeof s == "string" && s.trim())
237
- return _(s);
238
- const t = q?.VITE_ZELDMINER_WASM_BASE;
244
+ return p(s);
245
+ const t = L?.VITE_ZELDMINER_WASM_BASE;
239
246
  if (typeof t == "string" && t.trim())
240
- return _(t);
247
+ return p(t);
241
248
  const e = "./";
242
- return e.trim() ? _(`${S(e.trim())}wasm/`) : _("/wasm/");
243
- }, W = H(), L = `${W}zeldhash_miner_wasm.js`, X = `${W}zeldhash_miner_wasm_bg.wasm`, v = (s) => s instanceof Error ? s.message : String(s), K = async () => {
244
- Z();
249
+ return e.trim() ? p(`${R(e.trim())}wasm/`) : p("/wasm/");
250
+ }, K = Q(), S = `${K}zeldhash_miner_wasm.js`, _ = `${K}zeldhash_miner_wasm_bg.wasm`, x = async (s) => (0, eval)("s => import(s)")(s), T = (s) => s instanceof Error ? s.message : String(s), j = async () => {
251
+ D();
245
252
  let s;
246
253
  try {
247
- s = await import(
254
+ s = await x(
248
255
  /* @vite-ignore */
249
- L
256
+ S
250
257
  );
251
- } catch (r) {
258
+ } catch (n) {
252
259
  throw new Error(
253
- `Failed to import WASM bundle (${L}). Did you run ./scripts/build-wasm.sh? (${v(r)})`
260
+ `Failed to import WASM bundle (${S}). Did you run ./scripts/build-wasm.sh? (${T(n)})`
254
261
  );
255
262
  }
256
263
  const t = s.default;
257
264
  if (typeof t != "function")
258
265
  throw new Error("WASM init function is missing from the bundle.");
259
266
  try {
260
- const r = new URL(X, import.meta.url);
261
- await t({ module_or_path: r });
262
- } catch (r) {
267
+ const n = new URL(_, import.meta.url);
268
+ await t({ module_or_path: n });
269
+ } catch (n) {
263
270
  throw new Error(
264
- `Failed to initialize WASM bundle: ${v(r)}`
271
+ `Failed to initialize WASM bundle: ${T(n)}`
265
272
  );
266
273
  }
267
274
  const e = s;
@@ -270,9 +277,9 @@ const Z = () => {
270
277
  } catch {
271
278
  }
272
279
  return e;
273
- }, j = async () => P || (N || (N = K().then((s) => (P = s, s)).catch((s) => {
280
+ }, M = async () => B || (N || (N = j().then((s) => (B = s, s)).catch((s) => {
274
281
  throw N = null, s;
275
- })), N), E = (1n << 64n) - 1n, z = (s) => {
282
+ })), N), W = (1n << 64n) - 1n, k = (s) => {
276
283
  if (s < 0n)
277
284
  throw new Error("nonce must be non-negative");
278
285
  if (s === 0n) return 1;
@@ -280,20 +287,20 @@ const Z = () => {
280
287
  for (; e > 0n; )
281
288
  t += 1, e >>= 8n;
282
289
  return t;
283
- }, F = (s) => {
290
+ }, z = (s) => {
284
291
  if (s < 0n)
285
292
  throw new Error("nonce must be non-negative");
286
293
  if (s <= 23n) return 1;
287
294
  if (s <= 0xffn) return 2;
288
295
  if (s <= 0xffffn) return 3;
289
296
  if (s <= 0xffffffffn) return 5;
290
- if (s <= E) return 9;
297
+ if (s <= W) return 9;
291
298
  throw new Error("nonce range exceeds u64");
292
- }, Y = (s) => {
299
+ }, $ = (s) => {
293
300
  if (!Number.isInteger(s) || s <= 0 || s > 8)
294
301
  throw new Error("nonceLength must be between 1 and 8");
295
302
  return (1n << BigInt(s * 8)) - 1n;
296
- }, J = (s) => {
303
+ }, q = (s) => {
297
304
  switch (s) {
298
305
  case 1:
299
306
  return 23n;
@@ -304,77 +311,77 @@ const Z = () => {
304
311
  case 5:
305
312
  return 0xffffffffn;
306
313
  case 9:
307
- return E;
314
+ return W;
308
315
  default:
309
316
  throw new Error("cbor nonceLength must be one of 1, 2, 3, 5, 9");
310
317
  }
311
- }, Q = (s, t) => {
318
+ }, tt = (s, t) => {
312
319
  if (s < 0n)
313
320
  throw new Error("startNonce must be non-negative");
314
321
  if (!Number.isInteger(t) || t <= 0)
315
322
  throw new Error("batchSize must be a positive integer");
316
323
  const e = s + BigInt(t - 1);
317
- if (e > E)
324
+ if (e > W)
318
325
  throw new Error("nonce range exceeds u64");
319
- const r = [];
320
- let n = s;
321
- for (; n <= e; ) {
322
- const i = z(n), a = Y(i), h = e < a ? e : a, c = h - n + 1n;
323
- if (c > BigInt(Number.MAX_SAFE_INTEGER))
326
+ const n = [];
327
+ let i = s;
328
+ for (; i <= e; ) {
329
+ const g = k(i), I = $(g), c = e < I ? e : I, a = c - i + 1n;
330
+ if (a > BigInt(Number.MAX_SAFE_INTEGER))
324
331
  throw new Error("segment size exceeds safe integer range");
325
- if (r.push({
326
- start: n,
327
- size: Number(c),
328
- nonceLength: i
329
- }), h === e)
332
+ if (n.push({
333
+ start: i,
334
+ size: Number(a),
335
+ nonceLength: g
336
+ }), c === e)
330
337
  break;
331
- n = h + 1n;
338
+ i = c + 1n;
332
339
  }
333
- return r;
334
- }, tt = (s, t) => {
340
+ return n;
341
+ }, et = (s, t) => {
335
342
  if (s < 0n)
336
343
  throw new Error("startNonce must be non-negative");
337
344
  if (!Number.isInteger(t) || t <= 0)
338
345
  throw new Error("batchSize must be a positive integer");
339
346
  const e = s + BigInt(t - 1);
340
- if (e > E)
347
+ if (e > W)
341
348
  throw new Error("nonce range exceeds u64");
342
- const r = [];
343
- let n = s;
344
- for (; n <= e; ) {
345
- const i = F(n), a = J(i), h = e < a ? e : a, c = h - n + 1n;
346
- if (c > BigInt(Number.MAX_SAFE_INTEGER))
349
+ const n = [];
350
+ let i = s;
351
+ for (; i <= e; ) {
352
+ const g = z(i), I = q(g), c = e < I ? e : I, a = c - i + 1n;
353
+ if (a > BigInt(Number.MAX_SAFE_INTEGER))
347
354
  throw new Error("segment size exceeds safe integer range");
348
- if (r.push({
349
- start: n,
350
- size: Number(c),
351
- nonceLength: i
352
- }), h === e)
355
+ if (n.push({
356
+ start: i,
357
+ size: Number(a),
358
+ nonceLength: g
359
+ }), c === e)
353
360
  break;
354
- n = h + 1n;
361
+ i = c + 1n;
355
362
  }
356
- return r;
357
- }, et = /^[0-9a-fA-F]{64}$/, st = /^[0-9a-fA-F]+$/, T = (1n << 64n) - 1n, rt = 4294967295, nt = (s) => s === "p2tr" ? 330 : s === "p2wpkh" ? 310 : 546, it = (s) => s instanceof Error ? s.message : String(s), x = (s, t) => t.some((e) => s.includes(e)), O = (s, t, e) => {
358
- const r = it(s), n = r.toLowerCase();
359
- throw x(n, ["insufficient funds", "insufficient_funds"]) ? u(
363
+ return n;
364
+ }, st = /^[0-9a-fA-F]{64}$/, nt = /^[0-9a-fA-F]+$/, G = (1n << 64n) - 1n, it = 4294967295, gt = (s) => s === "p2tr" ? 330 : s === "p2wpkh" ? 310 : 546, ot = (s) => s instanceof Error ? s.message : String(s), F = (s, t) => t.some((e) => s.includes(e)), J = (s, t, e) => {
365
+ const n = ot(s), i = n.toLowerCase();
366
+ throw F(i, ["insufficient funds", "insufficient_funds"]) ? r(
360
367
  o.INSUFFICIENT_FUNDS,
361
368
  "Insufficient funds for outputs and fee",
362
- { ...e, cause: r }
363
- ) : x(n, ["change would be dust", "output amount below dust limit", "dust"]) ? u(
369
+ { ...e, cause: n }
370
+ ) : F(i, ["change would be dust", "output amount below dust limit", "dust"]) ? r(
364
371
  o.DUST_OUTPUT,
365
372
  "Change would be dust",
366
- { ...e, cause: r }
367
- ) : M(s, o.WORKER_ERROR, {
373
+ { ...e, cause: n }
374
+ ) : v(s, o.WORKER_ERROR, {
368
375
  ...e,
369
376
  context: t
370
377
  });
371
- }, y = (s) => s === "signet" ? "testnet" : s;
372
- class ot {
378
+ }, V = (s) => s === "signet" ? "testnet" : s;
379
+ class It {
373
380
  network;
374
381
  satsPerVbyte;
375
382
  constructor(t, e) {
376
383
  if (!Number.isFinite(e) || e <= 0)
377
- throw u(
384
+ throw r(
378
385
  o.INVALID_INPUT,
379
386
  "satsPerVbyte must be a positive number",
380
387
  { field: "satsPerVbyte" }
@@ -382,38 +389,38 @@ class ot {
382
389
  this.network = t, this.satsPerVbyte = e;
383
390
  }
384
391
  async getWasm() {
385
- return j();
392
+ return M();
386
393
  }
387
- assertNonceRange(t, e, r) {
388
- if (t < 0n || t > T)
389
- throw u(
394
+ assertNonceRange(t, e, n) {
395
+ if (t < 0n || t > G)
396
+ throw r(
390
397
  o.INVALID_INPUT,
391
398
  "startNonce must be between 0 and 2^64 - 1",
392
399
  { startNonce: t }
393
400
  );
394
- if (!Number.isInteger(e) || e <= 0 || e > rt)
395
- throw u(
401
+ if (!Number.isInteger(e) || e <= 0 || e > it)
402
+ throw r(
396
403
  o.INVALID_INPUT,
397
404
  "batchSize must be a positive 32-bit integer",
398
405
  { batchSize: e }
399
406
  );
400
- const n = t + BigInt(e - 1);
401
- if (n > T)
402
- throw u(
407
+ const i = t + BigInt(e - 1);
408
+ if (i > G)
409
+ throw r(
403
410
  o.INVALID_INPUT,
404
411
  "nonce range exceeds u64",
405
412
  { startNonce: t, batchSize: e }
406
413
  );
407
- const i = r ? F : z, a = i(t), h = i(n);
408
- if (a !== h) {
409
- const c = r ? "CBOR length" : "byte-length";
410
- throw u(
414
+ const g = n ? z : k, I = g(t), c = g(i);
415
+ if (I !== c) {
416
+ const a = n ? "CBOR length" : "byte-length";
417
+ throw r(
411
418
  o.INVALID_INPUT,
412
- `nonce range crosses ${c} boundary; reduce batch size`,
419
+ `nonce range crosses ${a} boundary; reduce batch size`,
413
420
  { startNonce: t, batchSize: e }
414
421
  );
415
422
  }
416
- return a;
423
+ return I;
417
424
  }
418
425
  cloneInputs(t) {
419
426
  return t.map((e) => ({ ...e }));
@@ -423,54 +430,54 @@ class ot {
423
430
  }
424
431
  validateInputs(t) {
425
432
  if (!Array.isArray(t) || t.length === 0)
426
- throw u(
433
+ throw r(
427
434
  o.INVALID_INPUT,
428
435
  "At least one input is required"
429
436
  );
430
- t.forEach((e, r) => {
431
- if (!et.test(e.txid))
432
- throw u(
437
+ t.forEach((e, n) => {
438
+ if (!st.test(e.txid))
439
+ throw r(
433
440
  o.INVALID_INPUT,
434
- `inputs[${r}].txid must be a 64-character hex`,
435
- { index: r }
441
+ `inputs[${n}].txid must be a 64-character hex`,
442
+ { index: n }
436
443
  );
437
444
  if (!Number.isInteger(e.vout) || e.vout < 0)
438
- throw u(
445
+ throw r(
439
446
  o.INVALID_INPUT,
440
- `inputs[${r}].vout must be a non-negative integer`,
441
- { index: r }
447
+ `inputs[${n}].vout must be a non-negative integer`,
448
+ { index: n }
442
449
  );
443
450
  if (!Number.isInteger(e.amount) || e.amount <= 0)
444
- throw u(
451
+ throw r(
445
452
  o.INVALID_INPUT,
446
- `inputs[${r}].amount must be a positive integer`,
447
- { index: r }
453
+ `inputs[${n}].amount must be a positive integer`,
454
+ { index: n }
448
455
  );
449
- if (typeof e.scriptPubKey != "string" || e.scriptPubKey.length === 0 || e.scriptPubKey.length % 2 !== 0 || !st.test(e.scriptPubKey))
450
- throw u(
456
+ if (typeof e.scriptPubKey != "string" || e.scriptPubKey.length === 0 || e.scriptPubKey.length % 2 !== 0 || !nt.test(e.scriptPubKey))
457
+ throw r(
451
458
  o.INVALID_INPUT,
452
- `inputs[${r}].scriptPubKey must be valid hex`,
453
- { index: r }
459
+ `inputs[${n}].scriptPubKey must be valid hex`,
460
+ { index: n }
454
461
  );
455
462
  });
456
463
  }
457
- validateAddressResult(t, e, r) {
464
+ validateAddressResult(t, e, n) {
458
465
  if (!t.ok) {
459
- const n = t.error ?? "invalid address", a = n.toLowerCase().includes("unsupported") ? o.UNSUPPORTED_ADDRESS_TYPE : o.INVALID_ADDRESS;
460
- throw u(
461
- a,
462
- `outputs[${e}].address is invalid (${n})`,
466
+ const i = t.error ?? "invalid address", I = i.toLowerCase().includes("unsupported") ? o.UNSUPPORTED_ADDRESS_TYPE : o.INVALID_ADDRESS;
467
+ throw r(
468
+ I,
469
+ `outputs[${e}].address is invalid (${i})`,
463
470
  { index: e }
464
471
  );
465
472
  }
466
- if (t.network && t.network !== r && !(t.network === "testnet" && r === "signet"))
467
- throw u(
473
+ if (t.network && t.network !== n && !(t.network === "testnet" && n === "signet"))
474
+ throw r(
468
475
  o.INVALID_ADDRESS,
469
476
  `outputs[${e}].address network mismatch`,
470
477
  { index: e }
471
478
  );
472
479
  if (t.addressType && t.addressType !== "p2tr" && t.addressType !== "p2wpkh")
473
- throw u(
480
+ throw r(
474
481
  o.UNSUPPORTED_ADDRESS_TYPE,
475
482
  `outputs[${e}].address uses an unsupported type`,
476
483
  { index: e, addressType: t.addressType }
@@ -478,125 +485,125 @@ class ot {
478
485
  }
479
486
  async validateOutputs(t) {
480
487
  if (!Array.isArray(t) || t.length === 0)
481
- throw u(
488
+ throw r(
482
489
  o.INVALID_INPUT,
483
490
  "At least one output is required"
484
491
  );
485
- const e = t.filter((i) => i.change).length;
492
+ const e = t.filter((g) => g.change).length;
486
493
  if (e !== 1) {
487
- const i = e === 0 ? o.NO_CHANGE_OUTPUT : o.MULTIPLE_CHANGE_OUTPUTS;
488
- throw u(
489
- i,
494
+ const g = e === 0 ? o.NO_CHANGE_OUTPUT : o.MULTIPLE_CHANGE_OUTPUTS;
495
+ throw r(
496
+ g,
490
497
  "Exactly one change output is required",
491
498
  { changeCount: e }
492
499
  );
493
500
  }
494
- const r = await this.getWasm(), n = y(this.network);
495
- t.forEach((i, a) => {
496
- const h = r.validate_address(i.address, n);
497
- this.validateAddressResult(h, a, n);
498
- const c = nt(h.addressType);
499
- if (i.change) {
500
- if (i.amount !== void 0 && (!Number.isInteger(i.amount) || i.amount < 0))
501
- throw u(
501
+ const n = await this.getWasm(), i = V(this.network);
502
+ t.forEach((g, I) => {
503
+ const c = n.validate_address(g.address, i);
504
+ this.validateAddressResult(c, I, i);
505
+ const a = gt(c.addressType);
506
+ if (g.change) {
507
+ if (g.amount !== void 0 && (!Number.isInteger(g.amount) || g.amount < 0))
508
+ throw r(
502
509
  o.INVALID_INPUT,
503
- `outputs[${a}].amount must be a non-negative integer when provided`,
504
- { index: a }
510
+ `outputs[${I}].amount must be a non-negative integer when provided`,
511
+ { index: I }
505
512
  );
506
- } else if (!Number.isInteger(i.amount) || i.amount < c)
507
- throw u(
513
+ } else if (!Number.isInteger(g.amount) || g.amount < a)
514
+ throw r(
508
515
  o.DUST_OUTPUT,
509
- `outputs[${a}].amount must be at least ${c} sats`,
510
- { index: a, addressType: h.addressType }
516
+ `outputs[${I}].amount must be at least ${a} sats`,
517
+ { index: I, addressType: c.addressType }
511
518
  );
512
519
  });
513
520
  }
514
521
  validateDistribution(t, e) {
515
522
  if (e !== void 0) {
516
523
  if (!Array.isArray(e))
517
- throw u(
524
+ throw r(
518
525
  o.INVALID_INPUT,
519
526
  "distribution must be an array of bigint values"
520
527
  );
521
528
  if (e.length !== t.length)
522
- throw u(
529
+ throw r(
523
530
  o.INVALID_INPUT,
524
531
  "distribution length must match number of outputs",
525
532
  { expected: t.length, actual: e.length }
526
533
  );
527
- return e.map((r, n) => {
528
- if (typeof r != "bigint")
529
- throw u(
534
+ return e.map((n, i) => {
535
+ if (typeof n != "bigint")
536
+ throw r(
530
537
  o.INVALID_INPUT,
531
538
  "distribution values must be bigint",
532
- { index: n }
539
+ { index: i }
533
540
  );
534
- if (r < 0n)
535
- throw u(
541
+ if (n < 0n)
542
+ throw r(
536
543
  o.INVALID_INPUT,
537
544
  "distribution values must be non-negative",
538
- { index: n }
545
+ { index: i }
539
546
  );
540
- return r;
547
+ return n;
541
548
  });
542
549
  }
543
550
  }
544
551
  async buildMiningTemplate(t) {
545
- const { inputs: e, outputs: r, startNonce: n, batchSize: i, distribution: a } = t;
546
- this.validateInputs(e), await this.validateOutputs(r);
547
- const h = this.validateDistribution(r, a), c = Array.isArray(h), p = this.assertNonceRange(n, i, c), l = await this.getWasm();
552
+ const { inputs: e, outputs: n, startNonce: i, batchSize: g, distribution: I } = t;
553
+ this.validateInputs(e), await this.validateOutputs(n);
554
+ const c = this.validateDistribution(n, I), a = Array.isArray(c), A = this.assertNonceRange(i, g, a), C = await this.getWasm();
548
555
  try {
549
- const d = l.build_mining_template(
556
+ const l = C.build_mining_template(
550
557
  this.cloneInputs(e),
551
- this.cloneOutputs(r),
552
- y(this.network),
558
+ this.cloneOutputs(n),
559
+ V(this.network),
553
560
  BigInt(this.satsPerVbyte),
554
- n,
555
561
  i,
556
- h ?? null
562
+ g,
563
+ c ?? null
557
564
  );
558
- if (!d || !(d.prefix instanceof Uint8Array) || !(d.suffix instanceof Uint8Array))
559
- throw u(
565
+ if (!l || !(l.prefix instanceof Uint8Array) || !(l.suffix instanceof Uint8Array))
566
+ throw r(
560
567
  o.WORKER_ERROR,
561
568
  "WASM returned an invalid mining template"
562
569
  );
563
- const m = d.useCborNonce ?? c;
564
- return { ...d, nonceLength: p, useCborNonce: m };
565
- } catch (d) {
566
- throw O(d, "build_mining_template", {
567
- startNonce: n,
568
- batchSize: i,
569
- distribution: h
570
+ const u = l.useCborNonce ?? a;
571
+ return { ...l, nonceLength: A, useCborNonce: u };
572
+ } catch (l) {
573
+ throw J(l, "build_mining_template", {
574
+ startNonce: i,
575
+ batchSize: g,
576
+ distribution: c
570
577
  });
571
578
  }
572
579
  }
573
580
  async buildPsbt(t) {
574
- const { inputs: e, outputs: r, nonce: n, distribution: i } = t;
575
- this.validateInputs(e), await this.validateOutputs(r);
576
- const a = this.validateDistribution(r, i);
577
- if (n < 0n || n > T)
578
- throw u(
581
+ const { inputs: e, outputs: n, nonce: i, distribution: g } = t;
582
+ this.validateInputs(e), await this.validateOutputs(n);
583
+ const I = this.validateDistribution(n, g);
584
+ if (i < 0n || i > G)
585
+ throw r(
579
586
  o.INVALID_INPUT,
580
587
  "nonce must be between 0 and 2^64 - 1",
581
- { nonce: n }
588
+ { nonce: i }
582
589
  );
583
- const h = await this.getWasm();
590
+ const c = await this.getWasm();
584
591
  try {
585
- return h.build_psbt(
592
+ return c.build_psbt(
586
593
  this.cloneInputs(e),
587
- this.cloneOutputs(r),
588
- y(this.network),
594
+ this.cloneOutputs(n),
595
+ V(this.network),
589
596
  BigInt(this.satsPerVbyte),
590
- n,
591
- a ?? null
597
+ i,
598
+ I ?? null
592
599
  );
593
- } catch (c) {
594
- throw O(c, "build_psbt", { nonce: n, distribution: a });
600
+ } catch (a) {
601
+ throw J(a, "build_psbt", { nonce: i, distribution: I });
595
602
  }
596
603
  }
597
604
  }
598
- const V = 1, B = 32;
599
- class at {
605
+ const H = 1, U = 32;
606
+ class rt {
600
607
  options;
601
608
  builder;
602
609
  coordinator = null;
@@ -604,7 +611,7 @@ class at {
604
611
  state = "idle";
605
612
  stopRequested = !1;
606
613
  constructor(t) {
607
- this.options = this.validateOptions(t), this.builder = new ot(t.network, t.satsPerVbyte), this.listeners = {
614
+ this.options = this.validateOptions(t), this.builder = new It(t.network, t.satsPerVbyte), this.listeners = {
608
615
  progress: /* @__PURE__ */ new Set(),
609
616
  found: /* @__PURE__ */ new Set(),
610
617
  error: /* @__PURE__ */ new Set(),
@@ -618,23 +625,23 @@ class at {
618
625
  this.listeners[t].delete(e);
619
626
  }
620
627
  emit(t, e) {
621
- this.listeners[t].forEach((r) => r(e));
628
+ this.listeners[t].forEach((n) => n(e));
622
629
  }
623
630
  validateOptions(t) {
624
631
  if (!Number.isInteger(t.batchSize) || t.batchSize <= 0)
625
- throw u(
632
+ throw r(
626
633
  o.INVALID_INPUT,
627
634
  "batchSize must be a positive integer",
628
635
  { field: "batchSize" }
629
636
  );
630
637
  if (!Number.isInteger(t.workerThreads) || t.workerThreads <= 0)
631
- throw u(
638
+ throw r(
632
639
  o.INVALID_INPUT,
633
640
  "workerThreads must be a positive integer",
634
641
  { field: "workerThreads" }
635
642
  );
636
643
  if (!Number.isFinite(t.satsPerVbyte) || t.satsPerVbyte <= 0)
637
- throw u(
644
+ throw r(
638
645
  o.INVALID_INPUT,
639
646
  "satsPerVbyte must be a positive number",
640
647
  { field: "satsPerVbyte" }
@@ -651,106 +658,106 @@ class at {
651
658
  }
652
659
  async mineTransaction(t) {
653
660
  if (this.state === "running")
654
- throw u(
661
+ throw r(
655
662
  o.INVALID_INPUT,
656
663
  "Mining is already in progress"
657
664
  );
658
- if (!Number.isInteger(t.targetZeros) || t.targetZeros < V || t.targetZeros > B)
659
- throw u(
665
+ if (!Number.isInteger(t.targetZeros) || t.targetZeros < H || t.targetZeros > U)
666
+ throw r(
660
667
  o.INVALID_INPUT,
661
- `targetZeros must be an integer between ${V} and ${B}`,
668
+ `targetZeros must be an integer between ${H} and ${U}`,
662
669
  { targetZeros: t.targetZeros }
663
670
  );
664
- const e = t.startNonce ?? 0n, r = t.batchSize ?? this.options.batchSize;
665
- if (!Number.isInteger(r) || r <= 0)
666
- throw u(
671
+ const e = t.startNonce ?? 0n, n = t.batchSize ?? this.options.batchSize;
672
+ if (!Number.isInteger(n) || n <= 0)
673
+ throw r(
667
674
  o.INVALID_INPUT,
668
675
  "batchSize must be a positive integer",
669
- { batchSize: r }
676
+ { batchSize: n }
670
677
  );
671
678
  if (t.signal?.aborted)
672
- throw u(
679
+ throw r(
673
680
  o.MINING_ABORTED,
674
681
  "Abort signal already triggered"
675
682
  );
676
- const n = t.distribution, i = !!(n && n.length > 0);
677
- let a = r;
683
+ const i = t.distribution, g = !!(i && i.length > 0);
684
+ let I = n;
678
685
  try {
679
- const [d] = i ? tt(e, r) : Q(e, r);
680
- if (!d)
681
- throw u(
686
+ const [l] = g ? et(e, n) : tt(e, n);
687
+ if (!l)
688
+ throw r(
682
689
  o.INVALID_INPUT,
683
690
  "Failed to compute nonce segments",
684
- { startNonce: e, batchSize: r }
691
+ { startNonce: e, batchSize: n }
685
692
  );
686
- a = d.size;
687
- } catch (d) {
688
- throw u(
693
+ I = l.size;
694
+ } catch (l) {
695
+ throw r(
689
696
  o.INVALID_INPUT,
690
- d instanceof Error ? d.message : String(d),
691
- { startNonce: e, batchSize: r }
697
+ l instanceof Error ? l.message : String(l),
698
+ { startNonce: e, batchSize: n }
692
699
  );
693
700
  }
694
- const h = await this.selectBackend(), c = await this.builder.buildMiningTemplate({
701
+ const c = await this.selectBackend(), a = await this.builder.buildMiningTemplate({
695
702
  inputs: t.inputs,
696
703
  outputs: t.outputs,
697
704
  startNonce: e,
698
- batchSize: a,
699
- distribution: n
700
- }), p = this.options.network === "signet" ? "testnet" : this.options.network, l = new C({
701
- mode: h,
702
- batchSize: r,
705
+ batchSize: I,
706
+ distribution: i
707
+ }), A = this.options.network === "signet" ? "testnet" : this.options.network, C = new O({
708
+ mode: c,
709
+ batchSize: n,
703
710
  workerThreads: this.options.workerThreads
704
711
  });
705
- return this.coordinator = l, this.state = "running", this.stopRequested = !1, new Promise((d, m) => {
706
- let w = !1;
707
- const R = () => {
708
- this.clearCoordinatorHandlers(l, g), this.coordinator === l && (this.coordinator = null), this.state = "idle", this.stopRequested = !1;
709
- }, G = (f) => {
710
- w || (w = !0, R(), d(f));
711
- }, I = (f) => {
712
- if (w) return;
713
- w = !0;
714
- const b = M(f);
715
- R(), this.emit("error", b), m(b);
716
- }, g = {};
717
- g.progress = (f) => {
718
- this.emit("progress", f);
719
- }, g.found = async (f) => {
712
+ return this.coordinator = C, this.state = "running", this.stopRequested = !1, new Promise((l, u) => {
713
+ let h = !1;
714
+ const y = () => {
715
+ this.clearCoordinatorHandlers(C, b), this.coordinator === C && (this.coordinator = null), this.state = "idle", this.stopRequested = !1;
716
+ }, E = (d) => {
717
+ h || (h = !0, y(), l(d));
718
+ }, Z = (d) => {
719
+ if (h) return;
720
+ h = !0;
721
+ const m = v(d);
722
+ y(), this.emit("error", m), u(m);
723
+ }, b = {};
724
+ b.progress = (d) => {
725
+ this.emit("progress", d);
726
+ }, b.found = async (d) => {
720
727
  try {
721
- const b = await this.builder.buildPsbt({
728
+ const m = await this.builder.buildPsbt({
722
729
  inputs: t.inputs,
723
730
  outputs: t.outputs,
724
- nonce: f.nonce,
725
- distribution: n
726
- }), U = { ...f, psbt: b };
727
- this.emit("found", U), G(U);
728
- } catch (b) {
729
- I(b);
731
+ nonce: d.nonce,
732
+ distribution: i
733
+ }), f = { ...d, psbt: m };
734
+ this.emit("found", f), E(f);
735
+ } catch (m) {
736
+ Z(m);
730
737
  }
731
- }, g.error = (f) => {
732
- I(f);
733
- }, g.stopped = () => {
734
- if (w) return;
735
- const f = this.stopRequested ? u(
738
+ }, b.error = (d) => {
739
+ Z(d);
740
+ }, b.stopped = () => {
741
+ if (h) return;
742
+ const d = this.stopRequested ? r(
736
743
  o.MINING_ABORTED,
737
744
  "Mining stopped by caller"
738
- ) : u(
745
+ ) : r(
739
746
  o.MINING_ABORTED,
740
747
  "Mining halted"
741
748
  );
742
- this.emit("stopped", void 0), I(f);
743
- }, l.on("progress", g.progress), l.on("found", g.found), l.on("error", g.error), l.on("stopped", g.stopped), l.start({
749
+ this.emit("stopped", void 0), Z(d);
750
+ }, C.on("progress", b.progress), C.on("found", b.found), C.on("error", b.error), C.on("stopped", b.stopped), C.start({
744
751
  inputs: t.inputs,
745
752
  outputs: t.outputs,
746
- network: p,
753
+ network: A,
747
754
  satsPerVbyte: this.options.satsPerVbyte,
748
- template: c,
755
+ template: a,
749
756
  targetZeros: t.targetZeros,
750
757
  startNonce: e,
751
758
  signal: t.signal,
752
- distribution: n
753
- }).catch(I);
759
+ distribution: i
760
+ }).catch(Z);
754
761
  });
755
762
  }
756
763
  stop() {
@@ -764,12 +771,12 @@ class at {
764
771
  }
765
772
  }
766
773
  export {
767
- C as MiningCoordinator,
768
- ot as TransactionBuilder,
769
- at as ZeldMiner,
770
- A as ZeldMinerError,
774
+ O as MiningCoordinator,
775
+ It as TransactionBuilder,
776
+ rt as ZeldMiner,
777
+ w as ZeldMinerError,
771
778
  o as ZeldMinerErrorCode,
772
- u as createMinerError,
773
- M as toZeldMinerError
779
+ r as createMinerError,
780
+ v as toZeldMinerError
774
781
  };
775
782
  //# sourceMappingURL=index.js.map