@bsv/wallet-toolbox-mobile 2.3.2 → 2.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.
Files changed (55) hide show
  1. package/out/src/monitor/Monitor.d.ts +3 -4
  2. package/out/src/monitor/Monitor.d.ts.map +1 -1
  3. package/out/src/monitor/Monitor.js +1 -1
  4. package/out/src/monitor/Monitor.js.map +1 -1
  5. package/out/src/monitor/tasks/TaskArcSSE.d.ts +5 -3
  6. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  7. package/out/src/monitor/tasks/TaskArcSSE.js +42 -55
  8. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  9. package/out/src/sdk/WalletServices.interfaces.d.ts +23 -1
  10. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  11. package/out/src/services/Services.d.ts +3 -0
  12. package/out/src/services/Services.d.ts.map +1 -1
  13. package/out/src/services/Services.js +20 -1
  14. package/out/src/services/Services.js.map +1 -1
  15. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +2 -0
  16. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  17. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +29 -1
  18. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  19. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +52 -0
  20. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -0
  21. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +228 -0
  22. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -0
  23. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +24 -0
  24. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -0
  25. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +55 -0
  26. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -0
  27. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +13 -0
  28. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
  29. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +45 -7
  30. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  31. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +2 -0
  32. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
  33. package/out/src/services/chaintracker/chaintracks/index.mobile.js +2 -0
  34. package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
  35. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +8 -0
  36. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  37. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +53 -10
  38. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  39. package/out/src/services/createDefaultWalletServicesOptions.d.ts +19 -1
  40. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  41. package/out/src/services/createDefaultWalletServicesOptions.js +49 -2
  42. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  43. package/out/src/services/providers/ARC.d.ts +4 -0
  44. package/out/src/services/providers/ARC.d.ts.map +1 -1
  45. package/out/src/services/providers/ARC.js +65 -4
  46. package/out/src/services/providers/ARC.js.map +1 -1
  47. package/out/src/services/providers/ArcSSEClient.d.ts +1 -0
  48. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  49. package/out/src/services/providers/ArcSSEClient.js +12 -9
  50. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  51. package/out/src/services/providers/Arcade.d.ts +72 -0
  52. package/out/src/services/providers/Arcade.d.ts.map +1 -0
  53. package/out/src/services/providers/Arcade.js +299 -0
  54. package/out/src/services/providers/Arcade.js.map +1 -0
  55. package/package.json +1 -1
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LiveIngestorChaintracksSSE = void 0;
4
+ const LiveIngestorBase_1 = require("./LiveIngestorBase");
5
+ /**
6
+ * Adapts a remote Chaintracks event stream, such as Arcade/go-chaintracks
7
+ * `/chaintracks/v2/tip/stream`, into the local Chaintracks live-ingestor API.
8
+ */
9
+ class LiveIngestorChaintracksSSE extends LiveIngestorBase_1.LiveIngestorBase {
10
+ options;
11
+ static createLiveIngestorChaintracksSSEOptions(chain, chaintracks) {
12
+ return {
13
+ ...LiveIngestorBase_1.LiveIngestorBase.createLiveIngestorBaseOptions(chain),
14
+ chaintracks
15
+ };
16
+ }
17
+ subscriptionId;
18
+ stopped = false;
19
+ resolveStopped;
20
+ constructor(options) {
21
+ super(options);
22
+ this.options = options;
23
+ }
24
+ async getHeaderByHash(hash) {
25
+ return await this.options.chaintracks.findHeaderForBlockHash(hash);
26
+ }
27
+ async startListening(liveHeaders) {
28
+ this.stopped = false;
29
+ this.subscriptionId = await this.options.chaintracks.subscribeHeaders(header => {
30
+ if (!this.stopped)
31
+ liveHeaders.push(header);
32
+ });
33
+ await new Promise(resolve => {
34
+ this.resolveStopped = resolve;
35
+ if (this.stopped)
36
+ resolve();
37
+ });
38
+ }
39
+ stopListening() {
40
+ this.stopped = true;
41
+ const subscriptionId = this.subscriptionId;
42
+ this.subscriptionId = undefined;
43
+ if (subscriptionId != null) {
44
+ this.options.chaintracks.unsubscribe(subscriptionId).catch(e => {
45
+ this.log(`LiveIngestorChaintracksSSE unsubscribe failed: ${e}`);
46
+ });
47
+ }
48
+ this.resolveStopped?.();
49
+ }
50
+ async shutdown() {
51
+ this.stopListening();
52
+ }
53
+ }
54
+ exports.LiveIngestorChaintracksSSE = LiveIngestorChaintracksSSE;
55
+ //# sourceMappingURL=LiveIngestorChaintracksSSE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveIngestorChaintracksSSE.js","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.ts"],"names":[],"mappings":";;;AAGA,yDAA8E;AAM9E;;;GAGG;AACH,MAAa,0BAA2B,SAAQ,mCAAgB;IAehC;IAd9B,MAAM,CAAC,uCAAuC,CAC5C,KAAY,EACZ,WAAiC;QAEjC,OAAO;YACL,GAAG,mCAAgB,CAAC,6BAA6B,CAAC,KAAK,CAAC;YACxD,WAAW;SACZ,CAAA;IACH,CAAC;IAEO,cAAc,CAAS;IACvB,OAAO,GAAG,KAAK,CAAA;IACf,cAAc,CAAa;IAEnC,YAA8B,OAA0C;QACtE,KAAK,CAAC,OAAO,CAAC,CAAA;QADc,YAAO,GAAP,OAAO,CAAmC;IAExE,CAAC;IAED,KAAK,CAAC,eAAe,CAAE,IAAY;QACjC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,cAAc,CAAE,WAA0B;QAC9C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;YAC7E,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAChC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;YAC7B,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAA;QAC7B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,aAAa;QACX,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QAC1C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;QAC/B,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC7D,IAAI,CAAC,GAAG,CAAC,kDAAkD,CAAC,EAAE,CAAC,CAAA;YACjE,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,EAAE,CAAA;IACzB,CAAC;IAEQ,KAAK,CAAC,QAAQ;QACrB,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;CACF;AAjDD,gEAiDC"}
@@ -33,6 +33,14 @@ export interface LiveIngestorWhatsOnChainOptions extends LiveIngestorBaseOptions
33
33
  * How long chainInfo is considered still valid before updating (msecs).
34
34
  */
35
35
  chainInfoMsecs: number;
36
+ /**
37
+ * Initial delay before retrying a failed polling request.
38
+ */
39
+ retryWait?: number;
40
+ /**
41
+ * Maximum delay before retrying repeated failed polling requests.
42
+ */
43
+ retryWaitMax?: number;
36
44
  }
37
45
  /**
38
46
  * Reports new headers by polling periodically.
@@ -40,11 +48,16 @@ export interface LiveIngestorWhatsOnChainOptions extends LiveIngestorBaseOptions
40
48
  export declare class LiveIngestorWhatsOnChainPoll extends LiveIngestorBase {
41
49
  static createLiveIngestorWhatsOnChainOptions(chain: Chain): LiveIngestorWhatsOnChainOptions;
42
50
  idleWait: number;
51
+ retryWait: number;
52
+ retryWaitMax: number;
43
53
  woc: WhatsOnChainServices;
44
54
  done: boolean;
45
55
  constructor(options: LiveIngestorWhatsOnChainOptions);
46
56
  getHeaderByHash(hash: string): Promise<BlockHeader | undefined>;
47
57
  startListening(liveHeaders: BlockHeader[]): Promise<void>;
58
+ private getRetryWaitMsecs;
59
+ private errorMessage;
60
+ private waitUnlessStopped;
48
61
  stopListening(): void;
49
62
  shutdown(): Promise<void>;
50
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LiveIngestorWhatsOnChainPoll.d.ts","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC9E,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAG5B,MAAM,wBAAwB,CAAA;AAE/B,MAAM,WAAW,+BAAgC,SAAQ,uBAAuB,EAAE,2BAA2B;IAC3G;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B;;OAEG;IACH,KAAK,EAAE,KAAK,CAAA;IACZ;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,gBAAgB;IAChE,MAAM,CAAC,qCAAqC,CAAE,KAAK,EAAE,KAAK,GAAG,+BAA+B;IAS5F,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,oBAAoB,CAAA;IACzB,IAAI,EAAE,OAAO,CAAQ;gBAER,OAAO,EAAE,+BAA+B;IAM/C,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAKhE,cAAc,CAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBhE,aAAa,IAAK,IAAI;IAIP,QAAQ,IAAK,OAAO,CAAC,IAAI,CAAC;CAG1C"}
1
+ {"version":3,"file":"LiveIngestorWhatsOnChainPoll.d.ts","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC9E,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAG5B,MAAM,wBAAwB,CAAA;AAG/B,MAAM,WAAW,+BAAgC,SAAQ,uBAAuB,EAAE,2BAA2B;IAC3G;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B;;OAEG;IACH,KAAK,EAAE,KAAK,CAAA;IACZ;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,gBAAgB;IAChE,MAAM,CAAC,qCAAqC,CAAE,KAAK,EAAE,KAAK,GAAG,+BAA+B;IAW5F,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,GAAG,EAAE,oBAAoB,CAAA;IACzB,IAAI,EAAE,OAAO,CAAQ;gBAER,OAAO,EAAE,+BAA+B;IAQ/C,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAKhE,cAAc,CAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgChE,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,YAAY;YAMN,iBAAiB;IAS/B,aAAa,IAAK,IAAI;IAIP,QAAQ,IAAK,OAAO,CAAC,IAAI,CAAC;CAG1C"}
@@ -4,6 +4,7 @@ exports.LiveIngestorWhatsOnChainPoll = void 0;
4
4
  const utilityHelpers_1 = require("../../../../utility/utilityHelpers");
5
5
  const LiveIngestorBase_1 = require("./LiveIngestorBase");
6
6
  const WhatsOnChainServices_1 = require("./WhatsOnChainServices");
7
+ const ChaintracksFetch_1 = require("../util/ChaintracksFetch");
7
8
  /**
8
9
  * Reports new headers by polling periodically.
9
10
  */
@@ -12,16 +13,22 @@ class LiveIngestorWhatsOnChainPoll extends LiveIngestorBase_1.LiveIngestorBase {
12
13
  const options = {
13
14
  ...WhatsOnChainServices_1.WhatsOnChainServices.createWhatsOnChainServicesOptions(chain),
14
15
  ...LiveIngestorBase_1.LiveIngestorBase.createLiveIngestorBaseOptions(chain),
15
- idleWait: 100000
16
+ idleWait: 100000,
17
+ retryWait: 5000,
18
+ retryWaitMax: 120000
16
19
  };
17
20
  return options;
18
21
  }
19
22
  idleWait;
23
+ retryWait;
24
+ retryWaitMax;
20
25
  woc;
21
26
  done = false;
22
27
  constructor(options) {
23
28
  super(options);
24
- this.idleWait = options.idleWait || 100000;
29
+ this.idleWait = options.idleWait ?? 100000;
30
+ this.retryWait = options.retryWait ?? 5000;
31
+ this.retryWaitMax = options.retryWaitMax ?? 120000;
25
32
  this.woc = new WhatsOnChainServices_1.WhatsOnChainServices(options);
26
33
  }
27
34
  async getHeaderByHash(hash) {
@@ -31,21 +38,52 @@ class LiveIngestorWhatsOnChainPoll extends LiveIngestorBase_1.LiveIngestorBase {
31
38
  async startListening(liveHeaders) {
32
39
  this.done = false;
33
40
  let lastHeaders = [];
41
+ let failureCount = 0;
34
42
  while (!this.done) {
35
- const headers = await this.woc.getHeaders();
43
+ let headers;
44
+ try {
45
+ headers = await this.woc.getHeaders();
46
+ failureCount = 0;
47
+ }
48
+ catch (error) {
49
+ failureCount++;
50
+ const retryMsecs = this.getRetryWaitMsecs(error, failureCount);
51
+ this.log(`LiveIngestorWhatsOnChainPoll getHeaders failed attempt=${failureCount} retryMsecs=${retryMsecs} error=${this.errorMessage(error)}`);
52
+ await this.waitUnlessStopped(retryMsecs);
53
+ continue;
54
+ }
36
55
  const newHeaders = headers.filter(h => !lastHeaders.some(lh => lh.hash === h.hash));
37
56
  for (const h of newHeaders) {
38
57
  const bh = (0, WhatsOnChainServices_1.wocGetHeadersHeaderToBlockHeader)(h);
39
58
  liveHeaders.unshift(bh);
40
59
  }
41
60
  lastHeaders = headers;
42
- for (let sec = 0; sec < 60 && !this.done; sec++) {
43
- // Only wait a second at a time so we notice `done` sooner...
44
- await (0, utilityHelpers_1.wait)(1000);
45
- }
61
+ await this.waitUnlessStopped(60 * 1000);
46
62
  }
47
63
  this.log('LiveIngestorWhatsOnChainPoll stopped');
48
64
  }
65
+ getRetryWaitMsecs(error, failureCount) {
66
+ if (error instanceof ChaintracksFetch_1.ChaintracksFetchError && error.retryAfterMsecs != null) {
67
+ return Math.min(Math.max(error.retryAfterMsecs, 0), this.retryWaitMax);
68
+ }
69
+ const multiplier = Math.min(2 ** (failureCount - 1), 16);
70
+ return Math.min(this.retryWait * multiplier, this.retryWaitMax);
71
+ }
72
+ errorMessage(error) {
73
+ if (error instanceof ChaintracksFetch_1.ChaintracksFetchError)
74
+ return `${error.status} ${error.statusText}: ${error.message}`;
75
+ if (error instanceof Error)
76
+ return error.message;
77
+ return String(error);
78
+ }
79
+ async waitUnlessStopped(msecs) {
80
+ let remaining = msecs;
81
+ while (remaining > 0 && !this.done) {
82
+ const chunk = Math.min(1000, remaining);
83
+ await (0, utilityHelpers_1.wait)(chunk);
84
+ remaining -= chunk;
85
+ }
86
+ }
49
87
  stopListening() {
50
88
  this.done = true;
51
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LiveIngestorWhatsOnChainPoll.js","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.ts"],"names":[],"mappings":";;;AACA,uEAAyD;AACzD,yDAA8E;AAC9E,iEAK+B;AAoC/B;;GAEG;AACH,MAAa,4BAA6B,SAAQ,mCAAgB;IAChE,MAAM,CAAC,qCAAqC,CAAE,KAAY;QACxD,MAAM,OAAO,GAAoC;YAC/C,GAAG,2CAAoB,CAAC,iCAAiC,CAAC,KAAK,CAAC;YAChE,GAAG,mCAAgB,CAAC,6BAA6B,CAAC,KAAK,CAAC;YACxD,QAAQ,EAAE,MAAM;SACjB,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,QAAQ,CAAQ;IAChB,GAAG,CAAsB;IACzB,IAAI,GAAY,KAAK,CAAA;IAErB,YAAa,OAAwC;QACnD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAA;QAC1C,IAAI,CAAC,GAAG,GAAG,IAAI,2CAAoB,CAAC,OAAO,CAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,eAAe,CAAE,IAAY;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACnD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,cAAc,CAAE,WAA0B;QAC9C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACjB,IAAI,WAAW,GAA0B,EAAE,CAAA;QAE3C,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;YAE3C,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAEnF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,MAAM,EAAE,GAAG,IAAA,uDAAgC,EAAC,CAAC,CAAC,CAAA;gBAC9C,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACzB,CAAC;YAED,WAAW,GAAG,OAAO,CAAA;YAErB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;gBAChD,6DAA6D;gBAC7D,MAAM,IAAA,qBAAI,EAAC,IAAI,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAA;IAClD,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEQ,KAAK,CAAC,QAAQ;QACrB,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;CACF;AAxDD,oEAwDC"}
1
+ {"version":3,"file":"LiveIngestorWhatsOnChainPoll.js","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.ts"],"names":[],"mappings":"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"}
@@ -9,12 +9,14 @@ export * from './Api/LiveIngestorApi';
9
9
  export * from './Api/BlockHeaderApi';
10
10
  export * from './Chaintracks';
11
11
  export * from './ChaintracksServiceClient';
12
+ export * from './GoChaintracksServiceClient';
12
13
  export * from './Ingest/BulkIngestorBase';
13
14
  export * from './Ingest/LiveIngestorBase';
14
15
  export * from './Ingest/BulkIngestorCDN';
15
16
  export * from './Ingest/BulkIngestorCDNBabbage';
16
17
  export * from './Ingest/BulkIngestorWhatsOnChainCdn';
17
18
  export * from './Ingest/LiveIngestorWhatsOnChainPoll';
19
+ export * from './Ingest/LiveIngestorChaintracksSSE';
18
20
  export * from './Ingest/WhatsOnChainServices';
19
21
  export * from './Storage/BulkStorageBase';
20
22
  export * from './Storage/ChaintracksStorageBase';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mobile.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/index.mobile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,eAAe,CAAA;AAC7B,cAAc,4BAA4B,CAAA;AAE1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AAEzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sCAAsC,CAAA;AACpD,cAAc,uCAAuC,CAAA;AACrD,cAAc,+BAA+B,CAAA;AAE7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,kCAAkC,CAAA;AAChD,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAE/C,cAAc,uCAAuC,CAAA;AACrD,cAAc,yBAAyB,CAAA;AAEvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.mobile.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/index.mobile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,eAAe,CAAA;AAC7B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAE5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AAEzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sCAAsC,CAAA;AACpD,cAAc,uCAAuC,CAAA;AACrD,cAAc,qCAAqC,CAAA;AACnD,cAAc,+BAA+B,CAAA;AAE7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,kCAAkC,CAAA;AAChD,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAE/C,cAAc,uCAAuC,CAAA;AACrD,cAAc,yBAAyB,CAAA;AAEvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA"}
@@ -47,12 +47,14 @@ __exportStar(require("./Api/LiveIngestorApi"), exports);
47
47
  __exportStar(require("./Api/BlockHeaderApi"), exports);
48
48
  __exportStar(require("./Chaintracks"), exports);
49
49
  __exportStar(require("./ChaintracksServiceClient"), exports);
50
+ __exportStar(require("./GoChaintracksServiceClient"), exports);
50
51
  __exportStar(require("./Ingest/BulkIngestorBase"), exports);
51
52
  __exportStar(require("./Ingest/LiveIngestorBase"), exports);
52
53
  __exportStar(require("./Ingest/BulkIngestorCDN"), exports);
53
54
  __exportStar(require("./Ingest/BulkIngestorCDNBabbage"), exports);
54
55
  __exportStar(require("./Ingest/BulkIngestorWhatsOnChainCdn"), exports);
55
56
  __exportStar(require("./Ingest/LiveIngestorWhatsOnChainPoll"), exports);
57
+ __exportStar(require("./Ingest/LiveIngestorChaintracksSSE"), exports);
56
58
  __exportStar(require("./Ingest/WhatsOnChainServices"), exports);
57
59
  __exportStar(require("./Storage/BulkStorageBase"), exports);
58
60
  __exportStar(require("./Storage/ChaintracksStorageBase"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.mobile.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/index.mobile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uDAAoC;AACpC,yDAAsC;AACtC,4DAAyC;AACzC,8DAA2C;AAC3C,uDAAoC;AACpC,wDAAqC;AACrC,wDAAqC;AACrC,uDAAoC;AAEpC,gDAA6B;AAC7B,6DAA0C;AAE1C,4DAAyC;AACzC,4DAAyC;AAEzC,2DAAwC;AACxC,kEAA+C;AAC/C,uEAAoD;AACpD,wEAAqD;AACrD,gEAA6C;AAE7C,4DAAyC;AACzC,mEAAgD;AAChD,mEAAgD;AAChD,kEAA+C;AAE/C,wEAAqD;AACrD,0DAAuC;AAEvC,yDAAsC;AACtC,qDAAkC;AAClC,6DAA0C;AAC1C,0DAAuC;AAEvC,qEAAoD"}
1
+ {"version":3,"file":"index.mobile.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/index.mobile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uDAAoC;AACpC,yDAAsC;AACtC,4DAAyC;AACzC,8DAA2C;AAC3C,uDAAoC;AACpC,wDAAqC;AACrC,wDAAqC;AACrC,uDAAoC;AAEpC,gDAA6B;AAC7B,6DAA0C;AAC1C,+DAA4C;AAE5C,4DAAyC;AACzC,4DAAyC;AAEzC,2DAAwC;AACxC,kEAA+C;AAC/C,uEAAoD;AACpD,wEAAqD;AACrD,sEAAmD;AACnD,gEAA6C;AAE7C,4DAAyC;AACzC,mEAAgD;AAChD,mEAAgD;AAChD,kEAA+C;AAE/C,wEAAqD;AACrD,0DAAuC;AAEvC,yDAAsC;AACtC,qDAAkC;AAClC,6DAA0C;AAC1C,0DAAuC;AAEvC,qEAAoD"}
@@ -1,5 +1,13 @@
1
1
  import { HttpClient } from '@bsv/sdk';
2
2
  import { ChaintracksFetchApi } from '../Api/ChaintracksFetchApi';
3
+ export declare class ChaintracksFetchError extends Error {
4
+ readonly url: string;
5
+ readonly status: number;
6
+ readonly statusText: string;
7
+ readonly retryAfterMsecs?: number | undefined;
8
+ constructor(message: string, url: string, status: number, statusText: string, retryAfterMsecs?: number | undefined);
9
+ get retryable(): boolean;
10
+ }
3
11
  /**
4
12
  * This class implements the ChaintracksFetchApi
5
13
  * using the @bsv/sdk `defaultHttpClient`.
@@ -1 +1 @@
1
- {"version":3,"file":"ChaintracksFetch.d.ts","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,UAAU,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAGhE;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,UAAU,EAAE,UAAU,CAAsB;IAEtC,QAAQ,CAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAwB3C,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAuB3C,QAAQ,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;CAQpD"}
1
+ {"version":3,"file":"ChaintracksFetch.d.ts","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,UAAU,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAMhE,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,MAAM;aACd,UAAU,EAAE,MAAM;aAClB,eAAe,CAAC,EAAE,MAAM;gBAJxC,OAAO,EAAE,MAAM,EACC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,YAAA;IAM1C,IAAI,SAAS,IAAK,OAAO,CAExB;CACF;AAqCD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,UAAU,EAAE,UAAU,CAAsB;IAEtC,QAAQ,CAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoB3C,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAoB3C,QAAQ,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;CAQpD"}
@@ -1,8 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChaintracksFetch = void 0;
3
+ exports.ChaintracksFetch = exports.ChaintracksFetchError = void 0;
4
4
  const sdk_1 = require("@bsv/sdk");
5
5
  const utilityHelpers_1 = require("../../../../utility/utilityHelpers");
6
+ const MAX_RETRIES = 3;
7
+ const DEFAULT_RETRY_MSECS = 1000;
8
+ class ChaintracksFetchError extends Error {
9
+ url;
10
+ status;
11
+ statusText;
12
+ retryAfterMsecs;
13
+ constructor(message, url, status, statusText, retryAfterMsecs) {
14
+ super(message);
15
+ this.url = url;
16
+ this.status = status;
17
+ this.statusText = statusText;
18
+ this.retryAfterMsecs = retryAfterMsecs;
19
+ this.name = 'ChaintracksFetchError';
20
+ }
21
+ get retryable() {
22
+ return isRetryableHttpStatus(this.status);
23
+ }
24
+ }
25
+ exports.ChaintracksFetchError = ChaintracksFetchError;
26
+ function isRetryableHttpStatus(status) {
27
+ return status === 408 || status === 429 || status >= 500;
28
+ }
29
+ function retryAfterMsecs(response) {
30
+ const retryAfter = response.headers.get('retry-after');
31
+ if (retryAfter == null || retryAfter === '')
32
+ return undefined;
33
+ const seconds = Number(retryAfter);
34
+ if (Number.isFinite(seconds) && seconds >= 0)
35
+ return seconds * 1000;
36
+ const dateMsecs = Date.parse(retryAfter);
37
+ if (!Number.isFinite(dateMsecs))
38
+ return undefined;
39
+ return Math.max(0, dateMsecs - Date.now());
40
+ }
41
+ function retryWaitMsecs(retry, retryAfter) {
42
+ return Math.min(retryAfter ?? DEFAULT_RETRY_MSECS * (retry + 1), 2 * 60 * 1000);
43
+ }
44
+ async function waitIfRetryable(response, retry) {
45
+ if (!isRetryableHttpStatus(response.status) || retry >= MAX_RETRIES)
46
+ return false;
47
+ await (0, utilityHelpers_1.wait)(retryWaitMsecs(retry, retryAfterMsecs(response)));
48
+ return true;
49
+ }
50
+ function fetchError(url, response, kind) {
51
+ const retryAfter = retryAfterMsecs(response);
52
+ return new ChaintracksFetchError(`Failed to ${kind} from ${url}: ${response.status} ${response.statusText}`, url, response.status, response.statusText, retryAfter);
53
+ }
6
54
  /**
7
55
  * This class implements the ChaintracksFetchApi
8
56
  * using the @bsv/sdk `defaultHttpClient`.
@@ -18,12 +66,9 @@ class ChaintracksFetch {
18
66
  }
19
67
  });
20
68
  if (!response.ok) {
21
- if (response.statusText === 'Too Many Requests' && retry < 3) {
22
- // WhatsOnChain rate limits requests, so backoff and retry
23
- await (0, utilityHelpers_1.wait)(1000 * (retry + 1));
69
+ if (await waitIfRetryable(response, retry))
24
70
  continue;
25
- }
26
- throw new Error(`Failed to download from ${url}: ${response.statusText}`);
71
+ throw fetchError(url, response, 'download');
27
72
  }
28
73
  const data = await response.arrayBuffer();
29
74
  return new Uint8Array(data);
@@ -40,11 +85,9 @@ class ChaintracksFetch {
40
85
  for (let retry = 0;; retry++) {
41
86
  const response = await fetch(url, requestJsonOptions);
42
87
  if (!response.ok) {
43
- if (response.statusText === 'Too Many Requests' && retry < 3) {
44
- await (0, utilityHelpers_1.wait)(1000 * (retry + 1));
88
+ if (await waitIfRetryable(response, retry))
45
89
  continue;
46
- }
47
- throw new Error(`Failed to fetch JSON from ${url}: ${response.statusText}`);
90
+ throw fetchError(url, response, 'fetch JSON');
48
91
  }
49
92
  json = (await response.json());
50
93
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"ChaintracksFetch.js","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts"],"names":[],"mappings":";;;AAAA,kCAAwD;AAExD,uEAAyD;AAEzD;;;GAGG;AACH,MAAa,gBAAgB;IAC3B,UAAU,GAAe,IAAA,uBAAiB,GAAE,CAAA;IAE5C,KAAK,CAAC,QAAQ,CAAE,GAAW;QACzB,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,EAAE,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,cAAc,EAAE,0BAA0B;iBAC3C;aACF,CAAC,CAAA;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,QAAQ,CAAC,UAAU,KAAK,mBAAmB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBAC7D,0DAA0D;oBAC1D,MAAM,IAAA,qBAAI,EAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;oBAC9B,SAAQ;gBACV,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;YAC3E,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAA;YAEzC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAI,GAAW;QAC5B,MAAM,kBAAkB,GAAG;YACzB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;aAC3B;SACF,CAAA;QACD,IAAI,IAAO,CAAA;QACX,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,EAAE,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;YACrD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,QAAQ,CAAC,UAAU,KAAK,mBAAmB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBAC7D,MAAM,IAAA,qBAAI,EAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;oBAC9B,SAAQ;gBACV,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;YAC7E,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;YACnC,MAAK;QACP,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAE,OAAe,EAAE,OAAe;QACxC,gEAAgE;QAChE,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,GAAG,CAAA;QAC1C,iDAAiD;QACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC1C,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;IACvB,CAAC;CACF;AA1DD,4CA0DC"}
1
+ {"version":3,"file":"ChaintracksFetch.js","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,25 @@
1
1
  import { Chain } from '../sdk/types';
2
2
  import { WalletServicesOptions } from '../sdk/WalletServices.interfaces';
3
3
  import { ChaintracksClientApi } from './chaintracker/chaintracks/Api/ChaintracksClientApi';
4
- export declare function createDefaultWalletServicesOptions(chain: Chain, arcCallbackUrl?: string, arcCallbackToken?: string, taalArcApiKey?: string, gorillaPoolArcApiKey?: string, bitailsApiKey?: string, deploymentId?: string, chaintracks?: ChaintracksClientApi): WalletServicesOptions;
4
+ export declare function createDefaultWalletServicesOptions(chain: Chain, arcCallbackUrl?: string, arcCallbackToken?: string, taalArcApiKey?: string, gorillaPoolArcApiKey?: string, bitailsApiKey?: string, deploymentId?: string, chaintracks?: ChaintracksClientApi,
5
+ /**
6
+ * Optional Arcade endpoint. When provided (or when a default exists for the chain via
7
+ * `arcadeDefaultUrl`), Arcade is registered as the primary broadcaster ahead of ARC.
8
+ * Pass an empty string to explicitly disable the per-chain default.
9
+ */
10
+ arcadeUrl?: string,
11
+ /** Server-level API key (Bearer) for the Arcade endpoint, if it requires auth. */
12
+ arcadeApiKey?: string,
13
+ /**
14
+ * Stable SSE callback token. Must match the Monitor's `callbackToken` so Arcade routes
15
+ * each broadcast transaction's status events to this wallet's `/events` subscription.
16
+ */
17
+ arcadeCallbackToken?: string): WalletServicesOptions;
18
+ /**
19
+ * Default Arcade (bsv-blockchain/arcade) endpoint per chain.
20
+ * Returns undefined when no public default is known for the chain (e.g. testnet not yet deployed).
21
+ */
22
+ export declare function arcadeDefaultUrl(chain: Chain): string | undefined;
5
23
  export declare function arcDefaultUrl(chain: Chain): string;
6
24
  export declare function arcGorillaPoolUrl(chain: Chain): string | undefined;
7
25
  //# sourceMappingURL=createDefaultWalletServicesOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createDefaultWalletServicesOptions.d.ts","sourceRoot":"","sources":["../../../../src/services/createDefaultWalletServicesOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAA;AAG1F,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,KAAK,EACZ,cAAc,CAAC,EAAE,MAAM,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,aAAa,CAAC,EAAE,MAAM,EACtB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,aAAa,CAAC,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,oBAAoB,GACjC,qBAAqB,CA+DvB;AAED,wBAAgB,aAAa,CAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAWnD;AAED,wBAAgB,iBAAiB,CAAE,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAEnE"}
1
+ {"version":3,"file":"createDefaultWalletServicesOptions.d.ts","sourceRoot":"","sources":["../../../../src/services/createDefaultWalletServicesOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAA;AAG1F,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,KAAK,EACZ,cAAc,CAAC,EAAE,MAAM,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,aAAa,CAAC,EAAE,MAAM,EACtB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,aAAa,CAAC,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,oBAAoB;AAClC;;;;GAIG;AACH,SAAS,CAAC,EAAE,MAAM;AAClB,kFAAkF;AAClF,YAAY,CAAC,EAAE,MAAM;AACrB;;;GAGG;AACH,mBAAmB,CAAC,EAAE,MAAM,GAC3B,qBAAqB,CAiFvB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAE,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAYlE;AAED,wBAAgB,aAAa,CAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAWnD;AAED,wBAAgB,iBAAiB,CAAE,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAEnE"}
@@ -1,18 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createDefaultWalletServicesOptions = createDefaultWalletServicesOptions;
4
+ exports.arcadeDefaultUrl = arcadeDefaultUrl;
4
5
  exports.arcDefaultUrl = arcDefaultUrl;
5
6
  exports.arcGorillaPoolUrl = arcGorillaPoolUrl;
6
7
  const utilityHelpers_1 = require("../utility/utilityHelpers");
7
8
  const ChaintracksServiceClient_1 = require("./chaintracker/chaintracks/ChaintracksServiceClient");
8
- function createDefaultWalletServicesOptions(chain, arcCallbackUrl, arcCallbackToken, taalArcApiKey, gorillaPoolArcApiKey, bitailsApiKey, deploymentId, chaintracks) {
9
+ function createDefaultWalletServicesOptions(chain, arcCallbackUrl, arcCallbackToken, taalArcApiKey, gorillaPoolArcApiKey, bitailsApiKey, deploymentId, chaintracks,
10
+ /**
11
+ * Optional Arcade endpoint. When provided (or when a default exists for the chain via
12
+ * `arcadeDefaultUrl`), Arcade is registered as the primary broadcaster ahead of ARC.
13
+ * Pass an empty string to explicitly disable the per-chain default.
14
+ */
15
+ arcadeUrl,
16
+ /** Server-level API key (Bearer) for the Arcade endpoint, if it requires auth. */
17
+ arcadeApiKey,
18
+ /**
19
+ * Stable SSE callback token. Must match the Monitor's `callbackToken` so Arcade routes
20
+ * each broadcast transaction's status events to this wallet's `/events` subscription.
21
+ */
22
+ arcadeCallbackToken) {
9
23
  if (chain === 'mock') {
10
24
  throw new Error('createDefaultWalletServicesOptions does not support \'mock\' chain. Use MockServices directly.');
11
25
  }
12
26
  deploymentId ||= `wallet-toolbox-${(0, utilityHelpers_1.randomBytesHex)(16)}`;
13
27
  // const chaintracksUrl = `https://npm-registry.babbage.systems:${chain === 'main' ? 8084 : 8083}`
14
28
  const chaintracksUrl = chain === 'ttn'
15
- ? 'https://arcade-v2-ttn-us-1.bsvblockchain.tech/chaintracks/'
29
+ ? 'https://arcade-v2-ttn-us-1.bsvblockchain.tech/chaintracks/v1'
16
30
  : `https://${chain}net-chaintracks.babbage.systems`;
17
31
  // The mainnet endpoint is always used since these are fiat exchange rates,
18
32
  // independent of the chain being used.
@@ -62,8 +76,41 @@ function createDefaultWalletServicesOptions(chain, arcCallbackUrl, arcCallbackTo
62
76
  },
63
77
  bitailsApiKey
64
78
  };
79
+ // Arcade (bsv-blockchain/arcade) primary broadcaster.
80
+ // Opt-in: enabled only when an explicit `arcadeUrl` is provided. Callers can pass
81
+ // `arcadeDefaultUrl(chain)` to use the known per-chain endpoint. Kept opt-in (rather
82
+ // than defaulted on) so existing consumers' broadcaster set is unchanged until the
83
+ // Arcade path has been validated end-to-end; flipping the default is a one-line change.
84
+ const resolvedArcadeUrl = arcadeUrl;
85
+ if (resolvedArcadeUrl != null && resolvedArcadeUrl !== '') {
86
+ o.arcadeUrl = resolvedArcadeUrl;
87
+ o.arcadeConfig = {
88
+ apiKey: arcadeApiKey ?? undefined,
89
+ deploymentId,
90
+ // SSE (pull) flow: token scopes the /events subscription; no webhook callbackUrl
91
+ // (Arcade rejects private/loopback URLs). Must match Monitor.options.callbackToken.
92
+ callbackToken: arcadeCallbackToken ?? arcCallbackToken ?? undefined
93
+ };
94
+ }
65
95
  return o;
66
96
  }
97
+ /**
98
+ * Default Arcade (bsv-blockchain/arcade) endpoint per chain.
99
+ * Returns undefined when no public default is known for the chain (e.g. testnet not yet deployed).
100
+ */
101
+ function arcadeDefaultUrl(chain) {
102
+ switch (chain) {
103
+ case 'main':
104
+ return 'https://arcade-v2-us-1.bsvblockchain.tech';
105
+ case 'ttn':
106
+ return 'https://arcade-v2-ttn-us-1.bsvblockchain.tech';
107
+ case 'test':
108
+ // No public testnet Arcade endpoint deployed yet.
109
+ return undefined;
110
+ case 'mock':
111
+ return undefined;
112
+ }
113
+ }
67
114
  function arcDefaultUrl(chain) {
68
115
  switch (chain) {
69
116
  case 'main':
@@ -1 +1 @@
1
- {"version":3,"file":"createDefaultWalletServicesOptions.js","sourceRoot":"","sources":["../../../../src/services/createDefaultWalletServicesOptions.ts"],"names":[],"mappings":";;AAMA,gFAwEC;AAED,sCAWC;AAED,8CAEC;AA7FD,8DAA0D;AAE1D,kGAA8F;AAE9F,SAAgB,kCAAkC,CAChD,KAAY,EACZ,cAAuB,EACvB,gBAAyB,EACzB,aAAsB,EACtB,oBAA6B,EAC7B,aAAsB,EACtB,YAAqB,EACrB,WAAkC;IAElC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAA;IACnH,CAAC;IAED,YAAY,KAAK,kBAAkB,IAAA,+BAAc,EAAC,EAAE,CAAC,EAAE,CAAA;IAEvD,kGAAkG;IAClG,MAAM,cAAc,GAClB,KAAK,KAAK,KAAK;QACb,CAAC,CAAC,4DAA4D;QAC9D,CAAC,CAAC,WAAW,KAAK,iCAAiC,CAAA;IACvD,2EAA2E;IAC3E,uCAAuC;IACvC,MAAM,+BAA+B,GAAG,kEAAkE,CAAA;IAE1G,WAAW,KAAK,IAAI,mDAAwB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IAEnE,MAAM,CAAC,GAA0B;QAC/B,KAAK;QACL,UAAU,EAAE,SAAS;QACrB,eAAe,EAAE;YACf,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;YACjC,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,KAAK;SACZ;QACD,cAAc,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,aAAa;QAC7C,iBAAiB,EAAE;YACjB,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;YACjC,IAAI,EAAE,KAAK;YACX,KAAK,EAAE;gBACL,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,MAAM;gBACX,GAAG,EAAE,MAAM;aACZ;YACD,cAAc,EAAE;gBACd,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;gBAC3B,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;gBAC3B,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;aAC5B;SACF;QACD,eAAe,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,WAAW;QACjD,mBAAmB,EAAE,IAAI,EAAE,oEAAoE;QAC/F,mBAAmB,EAAE,SAAS;QAC9B,+BAA+B;QAC/B,WAAW;QACX,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;QAC5B,SAAS,EAAE;YACT,MAAM,EAAE,aAAa,IAAI,SAAS;YAClC,YAAY;YACZ,WAAW,EAAE,cAAc,IAAI,SAAS;YACxC,aAAa,EAAE,gBAAgB,IAAI,SAAS;SAC7C;QACD,iBAAiB,EAAE,iBAAiB,CAAC,KAAK,CAAC;QAC3C,oBAAoB,EAAE;YACpB,MAAM,EAAE,oBAAoB,IAAI,SAAS;YACzC,YAAY;YACZ,WAAW,EAAE,cAAc,IAAI,SAAS;YACxC,aAAa,EAAE,gBAAgB,IAAI,SAAS;SAC7C;QACD,aAAa;KACd,CAAA;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAgB,aAAa,CAAE,KAAY;IACzC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO,sBAAsB,CAAA;QAC/B,KAAK,MAAM;YACT,OAAO,2BAA2B,CAAA;QACpC,KAAK,KAAK;YACR,OAAO,gDAAgD,CAAA;QACzD,KAAK,MAAM;YACT,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAE,KAAY;IAC7C,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,SAAS,CAAA;AACpE,CAAC"}
1
+ {"version":3,"file":"createDefaultWalletServicesOptions.js","sourceRoot":"","sources":["../../../../src/services/createDefaultWalletServicesOptions.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,10 @@ export interface ArcConfig {
15
15
  /** additional headers to be attached to all tx submissions. */
16
16
  headers?: Record<string, string>;
17
17
  }
18
+ export declare function isArcAcceptedTxStatus(txStatus: string | undefined): boolean;
19
+ export declare function isArcDoubleSpendTxStatus(txStatus: string | undefined): boolean;
20
+ export declare function isArcInvalidTxStatus(txStatus: string | undefined): boolean;
21
+ export declare function isArcServiceErrorStatus(status: number | undefined, detail?: string): boolean;
18
22
  /**
19
23
  * Represents an ARC transaction broadcaster.
20
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ARC.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/ARC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAIJ,SAAS,EACT,UAAU,EAIX,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAA4B,MAAM,qCAAqC,CAAA;AAKnH,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,0HAA0H;IAC1H,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,+HAA+H;IAC/H,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAMD;;GAEG;AACH,qBAAa,GAAG;IACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IAEvC;;;;;OAKG;gBACU,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM;IAC3D;;;;;OAKG;gBACU,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAuBxD;;OAEG;IACH,OAAO,CAAC,cAAc;IA2BtB;;;;;;;;;;;;OAYG;IACG,SAAS,CAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuGlF;;;;;;;;;OASG;IACG,QAAQ,CAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAmErE;;;;OAIG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAU3D;AASD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,IAAI,GAAG,MAAM,EAAE,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB"}
1
+ {"version":3,"file":"ARC.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/ARC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAIJ,SAAS,EACT,UAAU,EAIX,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAA4B,MAAM,qCAAqC,CAAA;AAKnH,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,0HAA0H;IAC1H,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,+HAA+H;IAC/H,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AA4BD,wBAAgB,qBAAqB,CAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE5E;AAED,wBAAgB,wBAAwB,CAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE/E;AAED,wBAAgB,oBAAoB,CAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE3E;AAED,wBAAgB,uBAAuB,CAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAY7F;AAED;;GAEG;AACH,qBAAa,GAAG;IACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IAEvC;;;;;OAKG;gBACU,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM;IAC3D;;;;;OAKG;gBACU,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAuBxD;;OAEG;IACH,OAAO,CAAC,cAAc;IA2BtB;;;;;;;;;;;;OAYG;IACG,SAAS,CAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA4GlF;;;;;;;;;OASG;IACG,QAAQ,CAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAyErE;;;;OAIG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAU3D;AASD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,IAAI,GAAG,MAAM,EAAE,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB"}