@bsv/wallet-toolbox-mobile 2.0.25-beta.1 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/src/Wallet.js +1 -1
- package/out/src/Wallet.js.map +1 -1
- package/out/src/index.mobile.d.ts +0 -1
- package/out/src/index.mobile.d.ts.map +1 -1
- package/out/src/index.mobile.js +0 -1
- package/out/src/index.mobile.js.map +1 -1
- package/out/src/mockchain/MockChainMigrations.d.ts +20 -0
- package/out/src/mockchain/MockChainMigrations.d.ts.map +1 -0
- package/out/src/mockchain/MockChainMigrations.js +67 -0
- package/out/src/mockchain/MockChainMigrations.js.map +1 -0
- package/out/src/mockchain/MockChainStorage.d.ts +58 -0
- package/out/src/mockchain/MockChainStorage.d.ts.map +1 -0
- package/out/src/mockchain/MockChainStorage.js +101 -0
- package/out/src/mockchain/MockChainStorage.js.map +1 -0
- package/out/src/mockchain/MockChainTracker.d.ts +28 -0
- package/out/src/mockchain/MockChainTracker.d.ts.map +1 -0
- package/out/src/mockchain/MockChainTracker.js +95 -0
- package/out/src/mockchain/MockChainTracker.js.map +1 -0
- package/out/src/mockchain/MockMiner.d.ts +16 -0
- package/out/src/mockchain/MockMiner.d.ts.map +1 -0
- package/out/src/mockchain/MockMiner.js +136 -0
- package/out/src/mockchain/MockMiner.js.map +1 -0
- package/out/src/mockchain/MockServices.d.ts +44 -0
- package/out/src/mockchain/MockServices.d.ts.map +1 -0
- package/out/src/mockchain/MockServices.js +504 -0
- package/out/src/mockchain/MockServices.js.map +1 -0
- package/out/src/mockchain/merkleTree.d.ts +13 -0
- package/out/src/mockchain/merkleTree.d.ts.map +1 -0
- package/out/src/mockchain/merkleTree.js +113 -0
- package/out/src/mockchain/merkleTree.js.map +1 -0
- package/out/src/monitor/Monitor.d.ts +3 -27
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js +7 -20
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/tasks/TaskMineBlock.d.ts +13 -0
- package/out/src/monitor/tasks/TaskMineBlock.d.ts.map +1 -0
- package/out/src/monitor/tasks/TaskMineBlock.js +29 -0
- package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -0
- package/out/src/sdk/types.d.ts +1 -1
- package/out/src/sdk/types.d.ts.map +1 -1
- package/out/src/services/Services.d.ts.map +1 -1
- package/out/src/services/Services.js +14 -4
- package/out/src/services/Services.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +20 -4
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +24 -6
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +8 -8
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +27 -21
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.js +14 -4
- package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
- package/out/src/services/providers/ARC.d.ts.map +1 -1
- package/out/src/services/providers/ARC.js +0 -1
- package/out/src/services/providers/ARC.js.map +1 -1
- package/out/src/services/providers/Bitails.d.ts.map +1 -1
- package/out/src/services/providers/Bitails.js +10 -1
- package/out/src/services/providers/Bitails.js.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.d.ts +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
- package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/WhatsOnChain.js +2 -0
- package/out/src/services/providers/WhatsOnChain.js.map +1 -1
- package/out/src/utility/utilityHelpers.d.ts +5 -0
- package/out/src/utility/utilityHelpers.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.js +24 -1
- package/out/src/utility/utilityHelpers.js.map +1 -1
- package/package.json +2 -2
- package/out/src/monitor/tasks/TaskArcSSE.d.ts +0 -27
- package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskArcSSE.js +0 -251
- package/out/src/monitor/tasks/TaskArcSSE.js.map +0 -1
- package/out/src/services/providers/ArcSSEClient.d.ts +0 -54
- package/out/src/services/providers/ArcSSEClient.d.ts.map +0 -1
- package/out/src/services/providers/ArcSSEClient.js +0 -96
- package/out/src/services/providers/ArcSSEClient.js.map +0 -1
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TaskArcadeSSE = void 0;
|
|
4
|
-
const sdk_1 = require("@bsv/sdk");
|
|
5
|
-
const types_1 = require("../../sdk/types");
|
|
6
|
-
const EntityProvenTxReq_1 = require("../../storage/schema/entities/EntityProvenTxReq");
|
|
7
|
-
const EntityProvenTx_1 = require("../../storage/schema/entities/EntityProvenTx");
|
|
8
|
-
const ArcSSEClient_1 = require("../../services/providers/ArcSSEClient");
|
|
9
|
-
const WalletMonitorTask_1 = require("./WalletMonitorTask");
|
|
10
|
-
/**
|
|
11
|
-
* Monitor task that receives transaction status updates from Arcade via SSE
|
|
12
|
-
* and processes them — including fetching merkle proofs directly from Arcade
|
|
13
|
-
* when transactions are MINED.
|
|
14
|
-
*/
|
|
15
|
-
class TaskArcadeSSE extends WalletMonitorTask_1.WalletMonitorTask {
|
|
16
|
-
constructor(monitor) {
|
|
17
|
-
super(monitor, TaskArcadeSSE.taskName);
|
|
18
|
-
this.sseClient = null;
|
|
19
|
-
this.pendingEvents = [];
|
|
20
|
-
}
|
|
21
|
-
async asyncSetup() {
|
|
22
|
-
var _a, _b;
|
|
23
|
-
const callbackToken = this.monitor.options.callbackToken;
|
|
24
|
-
if (!callbackToken) {
|
|
25
|
-
console.log('[TaskArcadeSSE] no callbackToken configured — SSE disabled');
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
const arcUrl = this.monitor.services.options.arcUrl;
|
|
29
|
-
if (!arcUrl) {
|
|
30
|
-
console.log('[TaskArcadeSSE] no arcUrl configured — SSE disabled');
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
const EventSourceClass = this.monitor.options.EventSourceClass;
|
|
34
|
-
if (!EventSourceClass) {
|
|
35
|
-
console.log('[TaskArcadeSSE] no EventSourceClass provided — SSE disabled');
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
let lastEventId;
|
|
39
|
-
try {
|
|
40
|
-
lastEventId = await ((_b = (_a = this.monitor.options).loadLastSSEEventId) === null || _b === void 0 ? void 0 : _b.call(_a));
|
|
41
|
-
console.log(`[TaskArcadeSSE] loaded persisted lastEventId: ${lastEventId !== null && lastEventId !== void 0 ? lastEventId : '(none)'}`);
|
|
42
|
-
}
|
|
43
|
-
catch (e) {
|
|
44
|
-
console.log(`[TaskArcadeSSE] failed to load lastEventId: ${e}`);
|
|
45
|
-
}
|
|
46
|
-
console.log(`[TaskArcadeSSE] setting up — arcUrl=${arcUrl} token=${callbackToken.substring(0, 8)}...`);
|
|
47
|
-
this.sseClient = new ArcSSEClient_1.ArcSSEClient({
|
|
48
|
-
baseUrl: arcUrl,
|
|
49
|
-
callbackToken,
|
|
50
|
-
lastEventId,
|
|
51
|
-
EventSourceClass,
|
|
52
|
-
onEvent: event => {
|
|
53
|
-
this.pendingEvents.push(event);
|
|
54
|
-
},
|
|
55
|
-
onError: (err) => {
|
|
56
|
-
console.log(`[TaskArcadeSSE] error: ${err.message}`);
|
|
57
|
-
},
|
|
58
|
-
onLastEventIdChanged: (id) => {
|
|
59
|
-
var _a, _b;
|
|
60
|
-
(_b = (_a = this.monitor.options).saveLastSSEEventId) === null || _b === void 0 ? void 0 : _b.call(_a, id).catch(e => {
|
|
61
|
-
console.log(`[TaskArcadeSSE] failed to persist lastEventId: ${e}`);
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
this.sseClient.connect();
|
|
66
|
-
}
|
|
67
|
-
trigger(_nowMsecsSinceEpoch) {
|
|
68
|
-
return { run: this.pendingEvents.length > 0 };
|
|
69
|
-
}
|
|
70
|
-
async runTask() {
|
|
71
|
-
const events = this.pendingEvents.splice(0);
|
|
72
|
-
if (events.length === 0)
|
|
73
|
-
return '';
|
|
74
|
-
let log = '';
|
|
75
|
-
for (const event of events) {
|
|
76
|
-
log += await this.processStatusEvent(event);
|
|
77
|
-
}
|
|
78
|
-
return log;
|
|
79
|
-
}
|
|
80
|
-
async fetchNow() {
|
|
81
|
-
if (!this.sseClient)
|
|
82
|
-
return 0;
|
|
83
|
-
return await this.sseClient.fetchEvents();
|
|
84
|
-
}
|
|
85
|
-
async processStatusEvent(event) {
|
|
86
|
-
let log = `SSE: txid=${event.txid} status=${event.txStatus}\n`;
|
|
87
|
-
const reqs = await this.storage.findProvenTxReqs({
|
|
88
|
-
partial: { txid: event.txid }
|
|
89
|
-
});
|
|
90
|
-
if (reqs.length === 0) {
|
|
91
|
-
log += ` No matching ProvenTxReq\n`;
|
|
92
|
-
return log;
|
|
93
|
-
}
|
|
94
|
-
for (const reqApi of reqs) {
|
|
95
|
-
const req = new EntityProvenTxReq_1.EntityProvenTxReq(reqApi);
|
|
96
|
-
if (types_1.ProvenTxReqTerminalStatus.includes(req.status)) {
|
|
97
|
-
log += ` req ${req.id} already terminal: ${req.status}\n`;
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
const note = {
|
|
101
|
-
when: new Date().toISOString(),
|
|
102
|
-
what: 'arcSSE',
|
|
103
|
-
arcStatus: event.txStatus
|
|
104
|
-
};
|
|
105
|
-
switch (event.txStatus) {
|
|
106
|
-
case 'SENT_TO_NETWORK':
|
|
107
|
-
case 'ACCEPTED_BY_NETWORK':
|
|
108
|
-
case 'SEEN_ON_NETWORK': {
|
|
109
|
-
if (['unsent', 'sending', 'callback'].includes(req.status)) {
|
|
110
|
-
req.status = 'unmined';
|
|
111
|
-
req.addHistoryNote(note);
|
|
112
|
-
await req.updateStorageDynamicProperties(this.storage);
|
|
113
|
-
const ids = req.notify.transactionIds;
|
|
114
|
-
if (ids) {
|
|
115
|
-
await this.storage.runAsStorageProvider(async (sp) => {
|
|
116
|
-
await sp.updateTransactionsStatus(ids, 'unproven');
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
log += ` req ${req.id} => unmined\n`;
|
|
120
|
-
}
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
case 'MINED': {
|
|
124
|
-
req.addHistoryNote(note);
|
|
125
|
-
await req.updateStorageDynamicProperties(this.storage);
|
|
126
|
-
// Fetch proof directly from Arcade and complete the transaction
|
|
127
|
-
log += await this.fetchProofFromArcade(req);
|
|
128
|
-
break;
|
|
129
|
-
}
|
|
130
|
-
case 'DOUBLE_SPEND_ATTEMPTED': {
|
|
131
|
-
req.status = 'doubleSpend';
|
|
132
|
-
req.addHistoryNote(note);
|
|
133
|
-
await req.updateStorageDynamicProperties(this.storage);
|
|
134
|
-
const ids = req.notify.transactionIds;
|
|
135
|
-
if (ids) {
|
|
136
|
-
await this.storage.runAsStorageProvider(async (sp) => {
|
|
137
|
-
await sp.updateTransactionsStatus(ids, 'failed');
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
log += ` req ${req.id} => doubleSpend\n`;
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
case 'REJECTED': {
|
|
144
|
-
req.status = 'invalid';
|
|
145
|
-
req.addHistoryNote(note);
|
|
146
|
-
await req.updateStorageDynamicProperties(this.storage);
|
|
147
|
-
const ids = req.notify.transactionIds;
|
|
148
|
-
if (ids) {
|
|
149
|
-
await this.storage.runAsStorageProvider(async (sp) => {
|
|
150
|
-
await sp.updateTransactionsStatus(ids, 'failed');
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
log += ` req ${req.id} => invalid\n`;
|
|
154
|
-
break;
|
|
155
|
-
}
|
|
156
|
-
default:
|
|
157
|
-
log += ` req ${req.id} unhandled status: ${event.txStatus}\n`;
|
|
158
|
-
break;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
this.monitor.callOnTransactionStatusChanged(event.txid, event.txStatus);
|
|
162
|
-
return log;
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Fetch the merklePath from Arcade's GET /tx/{txid} endpoint and
|
|
166
|
-
* create a ProvenTx record, completing the transaction.
|
|
167
|
-
*/
|
|
168
|
-
async fetchProofFromArcade(req) {
|
|
169
|
-
const arcUrl = this.monitor.services.options.arcUrl;
|
|
170
|
-
const txid = req.txid;
|
|
171
|
-
let log = ` req ${req.id} MINED — fetching proof from Arcade\n`;
|
|
172
|
-
try {
|
|
173
|
-
const response = await fetch(`${arcUrl}/tx/${txid}`);
|
|
174
|
-
if (!response.ok) {
|
|
175
|
-
log += ` Arcade GET /tx/${txid} returned ${response.status}\n`;
|
|
176
|
-
return log;
|
|
177
|
-
}
|
|
178
|
-
const data = await response.json();
|
|
179
|
-
console.log(`[TaskArcadeSSE] GET /tx/${txid}:`, JSON.stringify(data));
|
|
180
|
-
if (!data.merklePath) {
|
|
181
|
-
log += ` No merklePath in response (status=${data.txStatus})\n`;
|
|
182
|
-
return log;
|
|
183
|
-
}
|
|
184
|
-
// Parse the merklePath hex from Arcade
|
|
185
|
-
const merklePath = sdk_1.MerklePath.fromHex(data.merklePath);
|
|
186
|
-
const merkleRoot = merklePath.computeRoot(txid);
|
|
187
|
-
// Find the leaf to get the tx index
|
|
188
|
-
const leaf = merklePath.path[0].find(l => l.txid === true && l.hash === txid);
|
|
189
|
-
if (!leaf) {
|
|
190
|
-
log += ` merklePath does not contain leaf for txid\n`;
|
|
191
|
-
return log;
|
|
192
|
-
}
|
|
193
|
-
const blockHash = data.blockHash || '';
|
|
194
|
-
const height = data.blockHeight || merklePath.blockHeight;
|
|
195
|
-
// Create ProvenTx entity
|
|
196
|
-
const now = new Date();
|
|
197
|
-
const ptx = new EntityProvenTx_1.EntityProvenTx({
|
|
198
|
-
created_at: now,
|
|
199
|
-
updated_at: now,
|
|
200
|
-
provenTxId: 0,
|
|
201
|
-
txid,
|
|
202
|
-
height,
|
|
203
|
-
index: leaf.offset,
|
|
204
|
-
merklePath: merklePath.toBinary(),
|
|
205
|
-
rawTx: req.rawTx,
|
|
206
|
-
merkleRoot,
|
|
207
|
-
blockHash
|
|
208
|
-
});
|
|
209
|
-
// Persist via the same path as TaskCheckForProofs
|
|
210
|
-
await req.refreshFromStorage(this.storage);
|
|
211
|
-
const { provenTxReqId, status, attempts, history } = req.toApi();
|
|
212
|
-
const r = await this.storage.runAsStorageProvider(async (sp) => {
|
|
213
|
-
return await sp.updateProvenTxReqWithNewProvenTx({
|
|
214
|
-
provenTxReqId,
|
|
215
|
-
status,
|
|
216
|
-
txid,
|
|
217
|
-
attempts,
|
|
218
|
-
history,
|
|
219
|
-
index: leaf.offset,
|
|
220
|
-
height,
|
|
221
|
-
blockHash,
|
|
222
|
-
merklePath: merklePath.toBinary(),
|
|
223
|
-
merkleRoot
|
|
224
|
-
});
|
|
225
|
-
});
|
|
226
|
-
req.status = r.status;
|
|
227
|
-
req.apiHistory = r.history;
|
|
228
|
-
req.provenTxId = r.provenTxId;
|
|
229
|
-
req.notified = true;
|
|
230
|
-
this.monitor.callOnProvenTransaction({
|
|
231
|
-
txid,
|
|
232
|
-
txIndex: leaf.offset,
|
|
233
|
-
blockHeight: height,
|
|
234
|
-
blockHash,
|
|
235
|
-
merklePath: merklePath.toBinary(),
|
|
236
|
-
merkleRoot
|
|
237
|
-
});
|
|
238
|
-
log += ` proved at height ${height}, index ${leaf.offset} => ${r.status}\n`;
|
|
239
|
-
}
|
|
240
|
-
catch (err) {
|
|
241
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
242
|
-
log += ` error fetching proof: ${msg}\n`;
|
|
243
|
-
req.addHistoryNote({ when: new Date().toISOString(), what: 'arcProofError', error: msg });
|
|
244
|
-
await req.updateStorageDynamicProperties(this.storage);
|
|
245
|
-
}
|
|
246
|
-
return log;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
exports.TaskArcadeSSE = TaskArcadeSSE;
|
|
250
|
-
TaskArcadeSSE.taskName = 'ArcadeSSE';
|
|
251
|
-
//# sourceMappingURL=TaskArcSSE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TaskArcSSE.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskArcSSE.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Client for Arcade transaction status updates.
|
|
3
|
-
*
|
|
4
|
-
* Uses react-native-sse EventSource to connect to Arcade's
|
|
5
|
-
* `GET /events?callbackToken=<token>` endpoint for real-time
|
|
6
|
-
* status updates via SSE.
|
|
7
|
-
*
|
|
8
|
-
* Supports on-demand fetching via fetchEvents() for use on
|
|
9
|
-
* app open, balance refresh, transaction list view, etc.
|
|
10
|
-
* The EventSource stays connected between fetches for live updates.
|
|
11
|
-
*/
|
|
12
|
-
export interface ArcSSEEvent {
|
|
13
|
-
txid: string;
|
|
14
|
-
txStatus: string;
|
|
15
|
-
timestamp: string;
|
|
16
|
-
}
|
|
17
|
-
export interface ArcSSEClientOptions {
|
|
18
|
-
/** Base URL of the Arcade instance (e.g. "https://arcade-us-1.bsvb.tech") */
|
|
19
|
-
baseUrl: string;
|
|
20
|
-
/** Stable per-wallet token matching the X-CallbackToken sent on broadcast */
|
|
21
|
-
callbackToken: string;
|
|
22
|
-
/** Called for each status event received */
|
|
23
|
-
onEvent: (event: ArcSSEEvent) => void;
|
|
24
|
-
/** Called when a connection error occurs */
|
|
25
|
-
onError?: (error: Error) => void;
|
|
26
|
-
/** Initial lastEventId for catchup */
|
|
27
|
-
lastEventId?: string;
|
|
28
|
-
/** Called whenever lastEventId changes, for persistence to storage */
|
|
29
|
-
onLastEventIdChanged?: (lastEventId: string) => void;
|
|
30
|
-
/** The react-native-sse EventSource class — passed in to avoid import from wallet-toolbox */
|
|
31
|
-
EventSourceClass: any;
|
|
32
|
-
}
|
|
33
|
-
export declare class ArcSSEClient {
|
|
34
|
-
private readonly options;
|
|
35
|
-
private _lastEventId;
|
|
36
|
-
private es;
|
|
37
|
-
private readonly url;
|
|
38
|
-
private connected;
|
|
39
|
-
constructor(options: ArcSSEClientOptions);
|
|
40
|
-
get lastEventId(): string | undefined;
|
|
41
|
-
/**
|
|
42
|
-
* Open the SSE connection. Events will be dispatched via onEvent as they arrive.
|
|
43
|
-
*/
|
|
44
|
-
connect(): void;
|
|
45
|
-
/** Close the connection and clean up */
|
|
46
|
-
close(): void;
|
|
47
|
-
/**
|
|
48
|
-
* Ensure connection is open. If already connected, this is a no-op.
|
|
49
|
-
* If not connected, opens a new connection with catchup from lastEventId.
|
|
50
|
-
* Returns immediately — events arrive asynchronously via onEvent callback.
|
|
51
|
-
*/
|
|
52
|
-
fetchEvents(): Promise<number>;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=ArcSSEClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArcSSEClient.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/ArcSSEClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAA;IACrB,4CAA4C;IAC5C,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACrC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IACpD,6FAA6F;IAC7F,gBAAgB,EAAE,GAAG,CAAA;CACtB;AAED,qBAAa,YAAY;IAMX,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,SAAS,CAAQ;gBAEI,OAAO,EAAE,mBAAmB;IAMzD,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED;;OAEG;IACH,OAAO,IAAI,IAAI;IA+Cf,wCAAwC;IACxC,KAAK,IAAI,IAAI;IASb;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;CAQrC"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Client for Arcade transaction status updates.
|
|
4
|
-
*
|
|
5
|
-
* Uses react-native-sse EventSource to connect to Arcade's
|
|
6
|
-
* `GET /events?callbackToken=<token>` endpoint for real-time
|
|
7
|
-
* status updates via SSE.
|
|
8
|
-
*
|
|
9
|
-
* Supports on-demand fetching via fetchEvents() for use on
|
|
10
|
-
* app open, balance refresh, transaction list view, etc.
|
|
11
|
-
* The EventSource stays connected between fetches for live updates.
|
|
12
|
-
*/
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.ArcSSEClient = void 0;
|
|
15
|
-
const TAG = '[ArcSSE]';
|
|
16
|
-
class ArcSSEClient {
|
|
17
|
-
constructor(options) {
|
|
18
|
-
this.options = options;
|
|
19
|
-
this.es = null;
|
|
20
|
-
this.connected = false;
|
|
21
|
-
this._lastEventId = options.lastEventId;
|
|
22
|
-
const base = options.baseUrl.replace(/\/+$/, '');
|
|
23
|
-
this.url = `${base}/events?callbackToken=${encodeURIComponent(options.callbackToken)}`;
|
|
24
|
-
}
|
|
25
|
-
get lastEventId() {
|
|
26
|
-
return this._lastEventId;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Open the SSE connection. Events will be dispatched via onEvent as they arrive.
|
|
30
|
-
*/
|
|
31
|
-
connect() {
|
|
32
|
-
if (this.es) {
|
|
33
|
-
console.log(`${TAG} already connected`);
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
const ESClass = this.options.EventSourceClass;
|
|
37
|
-
const headers = {
|
|
38
|
-
'Last-Event-ID': this._lastEventId || '0'
|
|
39
|
-
};
|
|
40
|
-
console.log(`${TAG} connecting to ${this.url} (Last-Event-ID: ${headers['Last-Event-ID']})`);
|
|
41
|
-
this.es = new ESClass(this.url, {
|
|
42
|
-
headers,
|
|
43
|
-
debug: true,
|
|
44
|
-
pollingInterval: 0 // Don't auto-reconnect on close — we manage lifecycle
|
|
45
|
-
});
|
|
46
|
-
this.es.addEventListener('open', () => {
|
|
47
|
-
this.connected = true;
|
|
48
|
-
console.log(`${TAG} connected`);
|
|
49
|
-
});
|
|
50
|
-
this.es.addEventListener('status', (event) => {
|
|
51
|
-
var _a, _b;
|
|
52
|
-
try {
|
|
53
|
-
const data = JSON.parse(event.data);
|
|
54
|
-
console.log(`${TAG} event: txid=${data.txid} status=${data.txStatus}`);
|
|
55
|
-
if (event.lastEventId) {
|
|
56
|
-
this._lastEventId = event.lastEventId;
|
|
57
|
-
(_b = (_a = this.options).onLastEventIdChanged) === null || _b === void 0 ? void 0 : _b.call(_a, event.lastEventId);
|
|
58
|
-
}
|
|
59
|
-
this.options.onEvent(data);
|
|
60
|
-
}
|
|
61
|
-
catch (_c) {
|
|
62
|
-
console.log(`${TAG} malformed event: ${String(event.data).substring(0, 200)}`);
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
this.es.addEventListener('error', (event) => {
|
|
66
|
-
var _a, _b;
|
|
67
|
-
console.log(`${TAG} error:`, JSON.stringify(event));
|
|
68
|
-
this.connected = false;
|
|
69
|
-
(_b = (_a = this.options).onError) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(event.message || 'SSE error'));
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
/** Close the connection and clean up */
|
|
73
|
-
close() {
|
|
74
|
-
if (this.es) {
|
|
75
|
-
console.log(`${TAG} closing`);
|
|
76
|
-
this.es.close();
|
|
77
|
-
this.es = null;
|
|
78
|
-
this.connected = false;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Ensure connection is open. If already connected, this is a no-op.
|
|
83
|
-
* If not connected, opens a new connection with catchup from lastEventId.
|
|
84
|
-
* Returns immediately — events arrive asynchronously via onEvent callback.
|
|
85
|
-
*/
|
|
86
|
-
async fetchEvents() {
|
|
87
|
-
if (!this.es || !this.connected) {
|
|
88
|
-
this.close(); // Clean up any stale connection
|
|
89
|
-
this.connect();
|
|
90
|
-
}
|
|
91
|
-
// Events arrive asynchronously — return 0 since we can't know the count synchronously
|
|
92
|
-
return 0;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
exports.ArcSSEClient = ArcSSEClient;
|
|
96
|
-
//# sourceMappingURL=ArcSSEClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArcSSEClient.js","sourceRoot":"","sources":["../../../../../src/services/providers/ArcSSEClient.ts"],"names":[],"mappings":"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"}
|