@ledgerhq/coin-framework 6.19.0 → 6.20.0

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.
@@ -1,7 +1,7 @@
1
1
  import bippath from "bip32-path";
2
2
  import isEqual from "lodash/isEqual";
3
3
  import { BigNumber } from "bignumber.js";
4
- import { Observable, from } from "rxjs";
4
+ import { Observable, Subject, defaultIfEmpty, from, isObservable, lastValueFrom, map, of, takeLast, takeUntil, } from "rxjs";
5
5
  import { log } from "@ledgerhq/logs";
6
6
  import { WrongDeviceForAccount } from "@ledgerhq/errors";
7
7
  import { getSeedIdentifierDerivation, getDerivationModesForCurrency, getDerivationScheme, runDerivationScheme, isIterableDerivationMode, derivationModeSupportsIndex, getMandatoryEmptyAccountSkip, getDerivationModeStartsAt, } from "../derivation";
@@ -11,6 +11,20 @@ import { shouldRetainPendingOperation } from "../account/pending";
11
11
  import { shouldShowNewAccount } from "../account/support";
12
12
  import { UnsupportedDerivation } from "../errors";
13
13
  import getAddressWrapper from "./getAddressWrapper";
14
+ /**
15
+ * Normalizes a Promise or Observable to an Observable.
16
+ * This helper function allows the framework to handle both Promise-based
17
+ * and Observable-based getAccountShape implementations uniformly.
18
+ *
19
+ * @param value - Either a Promise or Observable
20
+ * @returns An Observable
21
+ */
22
+ function normalizeToObservable(value) {
23
+ if (isObservable(value)) {
24
+ return value;
25
+ }
26
+ return from(value);
27
+ }
14
28
  // compare that two dates are roughly the same date in order to update the case it would have drastically changed
15
29
  const sameDate = (a, b) => Math.abs(a.getTime() - b.getTime()) < 1000 * 60 * 30;
16
30
  // an operation is relatively immutable, however we saw that sometimes it can temporarily change due to reorg,..
@@ -97,6 +111,8 @@ const getCustomDataFromAccountId = (accountId) => {
97
111
  }
98
112
  };
99
113
  export const makeSync = ({ getAccountShape, postSync = (_, a) => a, shouldMergeOps = true, }) => (initial, syncConfig) => new Observable((o) => {
114
+ let innerSub = null;
115
+ let cancelled = false;
100
116
  async function main() {
101
117
  const customData = getCustomDataFromAccountId(initial.id);
102
118
  const accountId = encodeAccountId({
@@ -110,7 +126,7 @@ export const makeSync = ({ getAccountShape, postSync = (_, a) => a, shouldMergeO
110
126
  const needClear = initial.id !== accountId;
111
127
  try {
112
128
  const freshAddressPath = getSeedIdentifierDerivation(initial.currency, initial.derivationMode);
113
- const shape = await getAccountShape({
129
+ const shapeResult = getAccountShape({
114
130
  currency: initial.currency,
115
131
  index: initial.index,
116
132
  address: initial.freshAddress,
@@ -118,9 +134,10 @@ export const makeSync = ({ getAccountShape, postSync = (_, a) => a, shouldMergeO
118
134
  derivationMode: initial.derivationMode,
119
135
  initialAccount: needClear ? clearAccount(initial) : initial,
120
136
  }, syncConfig);
121
- const updater = (acc) => {
137
+ const shape$ = normalizeToObservable(shapeResult);
138
+ const updater = (shape) => (acc) => {
122
139
  let a = acc; // a is a immutable version of Account, based on acc
123
- if (needClear) {
140
+ if (needClear && acc.id !== accountId) {
124
141
  a = clearAccount(acc);
125
142
  }
126
143
  // FIXME reconsider doing mergeOps here. work is redundant for impl like eth
@@ -144,14 +161,36 @@ export const makeSync = ({ getAccountShape, postSync = (_, a) => a, shouldMergeO
144
161
  }
145
162
  return a;
146
163
  };
147
- o.next(updater);
148
- o.complete();
164
+ const observer = {
165
+ next: shape => {
166
+ if (!cancelled)
167
+ o.next(updater(shape));
168
+ },
169
+ complete: () => {
170
+ if (!cancelled)
171
+ o.complete();
172
+ },
173
+ error: e => {
174
+ if (!cancelled)
175
+ o.error(e);
176
+ },
177
+ };
178
+ innerSub = shape$.subscribe(observer);
179
+ if (cancelled) {
180
+ innerSub.unsubscribe();
181
+ return;
182
+ }
149
183
  }
150
184
  catch (e) {
151
- o.error(e);
185
+ if (!cancelled)
186
+ o.error(e);
152
187
  }
153
188
  }
154
189
  main();
190
+ return () => {
191
+ cancelled = true;
192
+ innerSub?.unsubscribe();
193
+ };
155
194
  });
156
195
  const defaultIterateResultBuilder = (getAddressFn) => () => Promise.resolve(async ({ index, derivationsCache, derivationScheme, derivationMode, currency, deviceId, }) => {
157
196
  const freshAddressPath = runDerivationScheme(derivationScheme, currency, {
@@ -168,20 +207,23 @@ const defaultIterateResultBuilder = (getAddressFn) => () => Promise.resolve(asyn
168
207
  }
169
208
  return res;
170
209
  });
171
- export const makeScanAccounts = ({ getAccountShape, buildIterateResult, getAddressFn, postSync = (_, a) => a, }) => ({ currency, deviceId, syncConfig, scheme }) => new Observable((o) => {
210
+ export const makeScanAccounts = ({ getAccountShape, buildIterateResult, getAddressFn, postSync = (_, a) => a, }) => ({ currency, deviceId, syncConfig, scheme }) => new Observable((outerObs) => {
172
211
  if (buildIterateResult === undefined) {
173
212
  buildIterateResult = defaultIterateResultBuilder(getAddressFn);
174
213
  }
175
214
  let finished = false;
215
+ const teardown$ = new Subject();
176
216
  const unsubscribe = () => {
217
+ teardown$.next();
218
+ teardown$.complete();
177
219
  finished = true;
178
220
  };
179
221
  const derivationsCache = {};
180
- async function stepAccount(index, res, derivationMode, seedIdentifier) {
222
+ function stepAccount(index, res, derivationMode, seedIdentifier) {
181
223
  if (finished)
182
- return;
224
+ return of(null);
183
225
  const { address, path: freshAddressPath, ...rest } = res;
184
- const accountShape = await getAccountShape({
226
+ const accountShapeResult = getAccountShape({
185
227
  currency,
186
228
  index,
187
229
  address,
@@ -190,70 +232,62 @@ export const makeScanAccounts = ({ getAccountShape, buildIterateResult, getAddre
190
232
  rest,
191
233
  deviceId,
192
234
  }, syncConfig);
193
- if (finished)
194
- return;
195
- const freshAddress = address;
196
- const operations = accountShape.operations || [];
197
- const operationsCount = accountShape.operationsCount || operations.length;
198
- const creationDate = operations.length > 0 ? operations[operations.length - 1].date : new Date();
199
- const balance = accountShape.balance || new BigNumber(0);
200
- const spendableBalance = accountShape.spendableBalance || new BigNumber(0);
201
- if (!accountShape.id)
202
- throw new Error("account ID must be provided");
203
- if (balance.isNaN())
204
- throw new Error("invalid balance NaN");
205
- const initialAccount = {
206
- type: "Account",
207
- id: accountShape.id,
208
- seedIdentifier,
209
- freshAddress,
210
- freshAddressPath,
211
- derivationMode,
212
- used: false,
213
- index,
214
- currency,
215
- operationsCount,
216
- operations: [],
217
- swapHistory: [],
218
- pendingOperations: [],
219
- lastSyncDate: new Date(),
220
- creationDate,
221
- // overrides
222
- balance,
223
- spendableBalance,
224
- blockHeight: 0,
225
- balanceHistoryCache: emptyHistoryCache,
226
- };
227
- let account = { ...initialAccount, ...accountShape };
228
- if (account.balanceHistoryCache === emptyHistoryCache) {
229
- account.balanceHistoryCache = generateHistoryFromOperations(account);
230
- }
231
- if (accountShape.used === undefined) {
232
- account.used = !isAccountEmpty(account);
233
- }
234
- // Bitcoin needs to compute the freshAddressPath itself,
235
- // so we update it afterwards
236
- if (account?.freshAddressPath) {
237
- res.address = account.freshAddress;
238
- derivationsCache[account.freshAddressPath] = res;
239
- }
240
- // Temporary: we're going to remove transformations in postSync that should be done in getAccountShape
241
- // Using the generic doesn't resolve correctly
242
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
243
- account = postSync(initialAccount, account);
244
- log("scanAccounts", "derivationsCache", res);
245
- log("scanAccounts", `scanning ${currency.id} at ${freshAddressPath}: ${res.address} resulted of ${account ? `Account with ${account.operations.length} txs` : "no account"}`);
246
- if (!account)
247
- return;
248
- const showNewAccount = shouldShowNewAccount(currency, derivationMode);
249
- if (account.used || showNewAccount) {
250
- log("debug", `Emit 'discovered' event for a new account found. AccountUsed: ${account.used} - showNewAccount: ${showNewAccount}`);
251
- o.next({
252
- type: "discovered",
253
- account,
254
- });
235
+ const accountShape$ = normalizeToObservable(accountShapeResult);
236
+ function accountShapePipe(accountShape) {
237
+ const freshAddress = address;
238
+ const operations = accountShape.operations || [];
239
+ const operationsCount = accountShape.operationsCount || operations.length;
240
+ const creationDate = operations.length > 0 ? operations[operations.length - 1].date : new Date();
241
+ const balance = accountShape.balance || new BigNumber(0);
242
+ const spendableBalance = accountShape.spendableBalance || new BigNumber(0);
243
+ if (!accountShape.id)
244
+ throw new Error("account ID must be provided");
245
+ if (balance.isNaN())
246
+ throw new Error("invalid balance NaN");
247
+ const initialAccount = {
248
+ type: "Account",
249
+ id: accountShape.id,
250
+ seedIdentifier,
251
+ freshAddress,
252
+ freshAddressPath,
253
+ derivationMode,
254
+ used: false,
255
+ index,
256
+ currency,
257
+ operationsCount,
258
+ operations: [],
259
+ swapHistory: [],
260
+ pendingOperations: [],
261
+ lastSyncDate: new Date(),
262
+ creationDate,
263
+ // overrides
264
+ balance,
265
+ spendableBalance,
266
+ blockHeight: 0,
267
+ balanceHistoryCache: emptyHistoryCache,
268
+ };
269
+ let account = { ...initialAccount, ...accountShape };
270
+ if (account.balanceHistoryCache === emptyHistoryCache) {
271
+ account.balanceHistoryCache = generateHistoryFromOperations(account);
272
+ }
273
+ if (accountShape.used === undefined) {
274
+ account.used = !isAccountEmpty(account);
275
+ }
276
+ // Bitcoin needs to compute the freshAddressPath itself,
277
+ // so we update it afterwards
278
+ if (account?.freshAddressPath) {
279
+ res.address = account.freshAddress;
280
+ derivationsCache[account.freshAddressPath] = res;
281
+ }
282
+ // Temporary: we're going to remove transformations in postSync that should be done in getAccountShape
283
+ // Using the generic doesn't resolve correctly
284
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
285
+ account = postSync(initialAccount, account);
286
+ log("scanAccounts", "derivationsCache", res);
287
+ log("scanAccounts", `scanning ${currency.id} at ${freshAddressPath}: ${res.address} resulted of ${account ? `Account with ${account.operations.length} txs` : "no account"}`);
288
+ return account;
255
289
  }
256
- return account;
290
+ return accountShape$.pipe(takeUntil(teardown$), map(accountShapePipe));
257
291
  }
258
292
  async function main() {
259
293
  try {
@@ -322,18 +356,36 @@ export const makeScanAccounts = ({ getAccountShape, buildIterateResult, getAddre
322
356
  });
323
357
  if (!res)
324
358
  break;
325
- const account = await stepAccount(index, res, derivationMode, seedIdentifier);
326
- if (account && !account.used) {
327
- if (emptyCount >= mandatoryEmptyAccountSkip)
328
- break;
329
- emptyCount++;
359
+ const account$ = stepAccount(index, res, derivationMode, seedIdentifier);
360
+ const account = await lastValueFrom(account$.pipe(takeLast(1), defaultIfEmpty(null)));
361
+ if (finished) {
362
+ log("debug", `new account scanning process has been finished`);
363
+ break;
364
+ }
365
+ if (account) {
366
+ const showNewAccount = shouldShowNewAccount(currency, derivationMode);
367
+ if (account.used || showNewAccount) {
368
+ log("debug", `Emit 'discovered' event for a new account found. AccountUsed: ${account.used} - showNewAccount: ${showNewAccount}`);
369
+ outerObs.next({
370
+ type: "discovered",
371
+ account,
372
+ });
373
+ }
374
+ if (!account.used) {
375
+ if (emptyCount >= mandatoryEmptyAccountSkip) {
376
+ break; // stop scanning indices for this derivation mode only
377
+ }
378
+ emptyCount++;
379
+ }
330
380
  }
331
381
  }
332
382
  }
333
- o.complete();
383
+ if (!finished) {
384
+ outerObs.complete();
385
+ }
334
386
  }
335
387
  catch (e) {
336
- o.error(e);
388
+ outerObs.error(e);
337
389
  }
338
390
  }
339
391
  main();
@@ -1 +1 @@
1
- {"version":3,"file":"jsHelpers.js","sourceRoot":"","sources":["../../src/bridge/jsHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAY,IAAI,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,iBAAmC,MAAM,qBAAqB,CAAC;AA6DtE,iHAAiH;AACjH,MAAM,QAAQ,GAAG,CAAC,CAAO,EAAE,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AAE5F,gHAAgH;AAChH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAY,EAAE,CAAY,EAAW,EAAE,CAC5D,CAAC,KAAK,CAAC;IACP,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,kCAAkC;QAClD,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;QAClD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;QAC5D,CAAC,CAAC,aAAa,EAAE,MAAM,KAAK,CAAC,CAAC,aAAa,EAAE,MAAM;QACnD,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACxB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;QAC/B,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC;QAC7B,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAEzC,mEAAmE;AACnE,MAAM,UAAU,QAAQ,CACtB,QAAqB,EAAE,yDAAyD;AAChF,UAAuB;IAGvB,uBAAuB;IACvB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,8BAA8B;IAC9B,MAAM,WAAW,GAA8B,EAAE,CAAC;IAElD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,gFAAgF;IAChF,IAAI,MAAM,GAAG,UAAU;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAChE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvD,8DAA8D;IAC9D,MAAM,SAAS,GAA8B,EAAE,CAAC;IAChD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAClB,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAElC,uDAAuD;IACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACzC,4DAA4D;IAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,8BAA8B;IAC9B,MAAM,GAAG,GAAgB,EAAE,CAAC;IAE5B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,gDAAgD;QAChD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAe,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAmB,EAAE,OAAmB,EAAc,EAAE;IAChF,6BAA6B;IAC7B,MAAM,YAAY,GAA6B,EAAE,CAAC;IAClD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAClB,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,2CAA2C;QAC3C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClB,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC/C,0BAA0B;YAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,uEAAuE;QACvE,OAAO,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,8DAA8D;IAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAAC,SAAiB,EAAsB,EAAE;IAC3E,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GACnB,CAME,EACA,eAAe,EACf,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EACtB,cAAc,GAAG,IAAI,GAKtB,EAAwC,EAAE,CAC3C,CAAC,OAAO,EAAE,UAAU,EAAiC,EAAE,CACrD,IAAI,UAAU,CAAC,CAAC,CAA0B,EAAE,EAAE;IAC5C,KAAK,UAAU,IAAI;QACjB,MAAM,UAAU,GAAG,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,eAAe,CAAC;YAChC,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC/B,aAAa,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,YAAY;YACnD,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,2BAA2B,CAClD,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,cAAgC,CACzC,CAAC;YAEF,MAAM,KAAK,GAAG,MAAM,eAAe,CACjC;gBACE,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,YAAY;gBAC7B,cAAc,EAAE,gBAAgB;gBAChC,cAAc,EAAE,OAAO,CAAC,cAAgC;gBACxD,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;aAC5D,EACD,UAAU,CACX,CAAC;YAEF,MAAM,OAAO,GAAG,CAAC,GAAM,EAAK,EAAE;gBAC5B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,oDAAoD;gBAEjE,IAAI,SAAS,EAAE,CAAC;oBACd,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;gBAED,4EAA4E;gBAC5E,MAAM,UAAU,GAAG,cAAc;oBAC/B,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;oBAChD,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;gBAE3B,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE;oBACd,GAAG,CAAC;oBACJ,EAAE,EAAE,SAAS;oBACb,gBAAgB,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO;oBAC5C,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,UAAU,CAAC,MAAM;oBAC3D,YAAY,EAAE,IAAI,IAAI,EAAE;oBACxB,YAAY,EACV,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;oBAC7E,GAAG,KAAK;oBACR,UAAU;oBACV,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CACjD,4BAA4B,CAAC,CAAC,EAAE,EAAE,CAAC,CACpC;iBACF,CAAC,CAAC;gBAEH,CAAC,GAAG,kCAAkC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAE/C,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACZ,CAAC,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC;gBAED,OAAO,CAAC,CAAC;YACX,CAAC,CAAC;YAEF,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC;AACT,CAAC,CAAC,CAAC;AAEP,MAAM,2BAA2B,GAAG,CAAC,YAA0B,EAAE,EAAE,CAAC,GAAG,EAAE,CACvE,OAAO,CAAC,OAAO,CACb,KAAK,EAAE,EACL,KAAK,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,QAAQ,GAQT,EAA0B,EAAE;IAC3B,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,EAAE;QACvE,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IACH,IAAI,GAAG,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;YACpD,QAAQ;YACR,IAAI,EAAE,gBAAgB;YACtB,cAAc;SACf,CAAC,CAAC;QACH,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;IAC3C,CAAC;IACD,OAAO,GAAa,CAAC;AACvB,CAAC,CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAC3B,CAA8B,EAC5B,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAMvB,EAAkC,EAAE,CACrC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAgC,EAAE,CAC3E,IAAI,UAAU,CAAC,CAAC,CAAqD,EAAE,EAAE;IACvE,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,kBAAkB,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAA2B,EAAE,CAAC;IAEpD,KAAK,UAAU,WAAW,CACxB,KAAa,EACb,GAAW,EACX,cAA8B,EAC9B,cAAsB;QAEtB,IAAI,QAAQ;YAAE,OAAO;QAErB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;QAEzD,MAAM,YAAY,GAAqB,MAAM,eAAe,CAC1D;YACE,QAAQ;YACR,KAAK;YACL,OAAO;YACP,cAAc,EAAE,gBAAgB;YAChC,cAAc;YACd,IAAI;YACJ,QAAQ;SACT,EACD,UAAU,CACX,CAAC;QACF,IAAI,QAAQ;YAAE,OAAO;QAErB,MAAM,YAAY,GAAG,OAAO,CAAC;QAC7B,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC;QACjD,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,UAAU,CAAC,MAAM,CAAC;QAC1E,MAAM,YAAY,GAChB,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9E,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACrE,IAAI,OAAO,CAAC,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC5D,MAAM,cAAc,GAAY;YAC9B,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,YAAY,CAAC,EAAE;YACnB,cAAc;YACd,YAAY;YACZ,gBAAgB;YAChB,cAAc;YACd,IAAI,EAAE,KAAK;YACX,KAAK;YACL,QAAQ;YACR,eAAe;YACf,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,EAAE;YACf,iBAAiB,EAAE,EAAE;YACrB,YAAY,EAAE,IAAI,IAAI,EAAE;YACxB,YAAY;YACZ,YAAY;YACZ,OAAO;YACP,gBAAgB;YAChB,WAAW,EAAE,CAAC;YACd,mBAAmB,EAAE,iBAAiB;SACvC,CAAC;QACF,IAAI,OAAO,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,YAAY,EAAE,CAAC;QAErD,IAAI,OAAO,CAAC,mBAAmB,KAAK,iBAAiB,EAAE,CAAC;YACtD,OAAO,CAAC,mBAAmB,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,wDAAwD;QACxD,6BAA6B;QAC7B,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;YAC9B,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;YACnC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;QACnD,CAAC;QAED,sGAAsG;QACtG,8CAA8C;QAC9C,yEAAyE;QACzE,OAAO,GAAG,QAAQ,CAAC,cAA8B,EAAE,OAAuB,CAAC,CAAC;QAE5E,GAAG,CAAC,cAAc,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;QAE7C,GAAG,CACD,cAAc,EACd,YAAY,QAAQ,CAAC,EAAE,OAAO,gBAAgB,KAAK,GAAG,CAAC,OAAO,gBAC5D,OAAO,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,UAAU,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,YAC9D,EAAE,CACH,CAAC;QAEF,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAEtE,IAAI,OAAO,CAAC,IAAI,IAAI,cAAc,EAAE,CAAC;YACnC,GAAG,CACD,OAAO,EACP,iEAAiE,OAAO,CAAC,IAAI,sBAAsB,cAAc,EAAE,CACpH,CAAC;YACF,CAAC,CAAC,IAAI,CAAC;gBACL,IAAI,EAAE,YAAY;gBAClB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,IAAI,CAAC;YACH,IAAI,eAAe,GAAqB,EAAE,CAAC;YAC3C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC5C,eAAe,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,eAAe,GAAG,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YAED,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;gBAC7C,IAAI,QAAQ;oBAAE,MAAM;gBACpB,MAAM,IAAI,GAAG,2BAA2B,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACnE,GAAG,CAAC,cAAc,EAAE,YAAY,QAAQ,CAAC,EAAE,sBAAsB,cAAc,EAAE,CAAC,CAAC;gBACnF,IAAI,MAAM,GAAW,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAE5C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACH,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE;4BACpC,QAAQ;4BACR,IAAI;4BACJ,cAAc;yBACf,CAAC,CAAC;wBAEH,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;oBAClC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,IAAI,CAAC,YAAY,qBAAqB,EAAE,CAAC;4BACvC,GAAG,CAAC,cAAc,EAAE,wBAAwB,GAAG,cAAc,CAAC,CAAC;4BAC/D,SAAS;wBACX,CAAC;wBACD,MAAM,CAAC,CAAC;oBACV,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,MAAM;oBAAE,SAAS;gBAEtB,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC;gBACxC,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,MAAM,yBAAyB,GAAG,4BAA4B,CAAC,cAAc,CAAC,CAAC;gBAC/E,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;oBAC3C,cAAc;oBACd,QAAQ;iBACT,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM,QAAQ,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;gBAE3D,GAAG,CACD,OAAO,EACP,6DAA6D,yBAAyB,gBAAgB,QAAQ,cAAc,MAAM,EAAE,CACrI,CAAC;gBAEF,MAAM,aAAa,GAAG,MAAM,kBAAmB,CAAC;oBAC9C,MAAM;oBACN,cAAc;oBACd,gBAAgB;iBACjB,CAAC,CAAC;gBAEH,KAAK,IAAI,KAAK,GAAG,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;oBACnD,GAAG,CAAC,OAAO,EAAE,uCAAuC,KAAK,EAAE,CAAC,CAAC;oBAE7D,IAAI,QAAQ,EAAE,CAAC;wBACb,GAAG,CAAC,OAAO,EAAE,gDAAgD,CAAC,CAAC;wBAC/D,MAAM;oBACR,CAAC;oBAED,IAAI,CAAC,2BAA2B,CAAC,cAAc,EAAE,KAAK,CAAC;wBAAE,SAAS;oBAElE,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC;wBAC9B,KAAK;wBACL,gBAAgB;wBAChB,cAAc;wBACd,gBAAgB;wBAChB,QAAQ;wBACR,QAAQ;qBACT,CAAC,CAAC;oBAEH,IAAI,CAAC,GAAG;wBAAE,MAAM;oBAEhB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;oBAE9E,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBAC7B,IAAI,UAAU,IAAI,yBAAyB;4BAAE,MAAM;wBACnD,UAAU,EAAE,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;YAED,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC;IACP,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC,CAAC;AAEP,MAAM,UAAU,wBAAwB,CACtC,YAA0B,EAC1B,EACE,sBAAsB,MAGpB,EAAE;IAEN,OAAO,CACL,OAAU,EACV,EACE,MAAM,EACN,QAAQ,EACR,IAAI,GAML,EACD,EAAE;QACF,MAAM,GAAG,GAAG;YACV,MAAM;YACN,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,gBAAgB;YACtC,GAAG,CAAC,sBAAsB,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;SAC/D,CAAC;QACF,OAAO,IAAI,CACT,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACnC,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;YAE5C,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;gBAC3C,MAAM,IAAI,qBAAqB,EAAE,CAAC;YACpC,CAAC;YAED,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAA8B,CAAI,EAAE,KAAiB;IACpF,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IACnC,OAAO,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAgB;IAC7D,OAAO,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;IAChC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"jsHelpers.js","sourceRoot":"","sources":["../../src/bridge/jsHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,UAAU,EAEV,OAAO,EACP,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,GAAG,EACH,EAAE,EACF,QAAQ,EACR,SAAS,GACV,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,iBAAmC,MAAM,qBAAqB,CAAC;AAiEtE;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAI,KAAiC;IACjE,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,KAAsB,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC,KAAmB,CAAC,CAAC;AACnC,CAAC;AAED,iHAAiH;AACjH,MAAM,QAAQ,GAAG,CAAC,CAAO,EAAE,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AAE5F,gHAAgH;AAChH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAY,EAAE,CAAY,EAAW,EAAE,CAC5D,CAAC,KAAK,CAAC;IACP,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,kCAAkC;QAClD,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;QAClD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;QAC5D,CAAC,CAAC,aAAa,EAAE,MAAM,KAAK,CAAC,CAAC,aAAa,EAAE,MAAM;QACnD,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACxB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;QAC/B,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC;QAC7B,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAEzC,mEAAmE;AACnE,MAAM,UAAU,QAAQ,CACtB,QAAqB,EAAE,yDAAyD;AAChF,UAAuB;IAGvB,uBAAuB;IACvB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,8BAA8B;IAC9B,MAAM,WAAW,GAA8B,EAAE,CAAC;IAElD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,gFAAgF;IAChF,IAAI,MAAM,GAAG,UAAU;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAChE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvD,8DAA8D;IAC9D,MAAM,SAAS,GAA8B,EAAE,CAAC;IAChD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAClB,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAElC,uDAAuD;IACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACzC,4DAA4D;IAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,8BAA8B;IAC9B,MAAM,GAAG,GAAgB,EAAE,CAAC;IAE5B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,gDAAgD;QAChD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAe,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAmB,EAAE,OAAmB,EAAc,EAAE;IAChF,6BAA6B;IAC7B,MAAM,YAAY,GAA6B,EAAE,CAAC;IAClD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAClB,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,2CAA2C;QAC3C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClB,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC/C,0BAA0B;YAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,uEAAuE;QACvE,OAAO,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,8DAA8D;IAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAAC,SAAiB,EAAsB,EAAE;IAC3E,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GACnB,CAME,EACA,eAAe,EACf,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EACtB,cAAc,GAAG,IAAI,GAKtB,EAAwC,EAAE,CAC3C,CAAC,OAAU,EAAE,UAAsB,EAAiC,EAAE,CACpE,IAAI,UAAU,CAAC,CAAC,CAA8B,EAAE,EAAE;IAChD,IAAI,QAAQ,GAAuC,IAAI,CAAC;IACxD,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,KAAK,UAAU,IAAI;QACjB,MAAM,UAAU,GAAG,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,eAAe,CAAC;YAChC,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC/B,aAAa,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,YAAY;YACnD,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,2BAA2B,CAClD,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,cAAgC,CACzC,CAAC;YAEF,MAAM,WAAW,GAAG,eAAe,CACjC;gBACE,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,YAAY;gBAC7B,cAAc,EAAE,gBAAgB;gBAChC,cAAc,EAAE,OAAO,CAAC,cAAgC;gBACxD,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;aAC5D,EACD,UAAU,CACX,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAElD,MAAM,OAAO,GACX,CAAC,KAAiB,EAAE,EAAE,CACtB,CAAC,GAAM,EAAK,EAAE;gBACZ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,oDAAoD;gBAEjE,IAAI,SAAS,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;oBACtC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;gBAED,4EAA4E;gBAC5E,MAAM,UAAU,GAAG,cAAc;oBAC/B,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;oBAChD,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;gBAE3B,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE;oBACd,GAAG,CAAC;oBACJ,EAAE,EAAE,SAAS;oBACb,gBAAgB,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO;oBAC5C,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,UAAU,CAAC,MAAM;oBAC3D,YAAY,EAAE,IAAI,IAAI,EAAE;oBACxB,YAAY,EACV,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;oBAC7E,GAAG,KAAK;oBACR,UAAU;oBACV,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CACjD,4BAA4B,CAAC,CAAC,EAAE,EAAE,CAAC,CACpC;iBACF,CAAC,CAAC;gBAEH,CAAC,GAAG,kCAAkC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAE/C,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACZ,CAAC,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC;gBAED,OAAO,CAAC,CAAC;YACX,CAAC,CAAC;YAEJ,MAAM,QAAQ,GAAyB;gBACrC,IAAI,EAAE,KAAK,CAAC,EAAE;oBACZ,IAAI,CAAC,SAAS;wBAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzC,CAAC;gBACD,QAAQ,EAAE,GAAG,EAAE;oBACb,IAAI,CAAC,SAAS;wBAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC/B,CAAC;gBACD,KAAK,EAAE,CAAC,CAAC,EAAE;oBACT,IAAI,CAAC,SAAS;wBAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;aACF,CAAC;YAEF,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,SAAS;gBAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC;IACP,OAAO,GAAG,EAAE;QACV,SAAS,GAAG,IAAI,CAAC;QACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEP,MAAM,2BAA2B,GAAG,CAAC,YAA0B,EAAE,EAAE,CAAC,GAAG,EAAE,CACvE,OAAO,CAAC,OAAO,CACb,KAAK,EAAE,EACL,KAAK,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,QAAQ,GAQT,EAA0B,EAAE;IAC3B,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,QAAQ,EAAE;QACvE,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IACH,IAAI,GAAG,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;YACpD,QAAQ;YACR,IAAI,EAAE,gBAAgB;YACtB,cAAc;SACf,CAAC,CAAC;QACH,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;IAC3C,CAAC;IACD,OAAO,GAAa,CAAC;AACvB,CAAC,CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAC3B,CAA8B,EAC5B,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAMvB,EAAkC,EAAE,CACrC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAgC,EAAE,CAC3E,IAAI,UAAU,CAAC,CAAC,QAA4D,EAAE,EAAE;IAC9E,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,kBAAkB,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;IAEtC,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,SAAS,CAAC,QAAQ,EAAE,CAAC;QACrB,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAA2B,EAAE,CAAC;IAEpD,SAAS,WAAW,CAClB,KAAa,EACb,GAAW,EACX,cAA8B,EAC9B,cAAsB;QAEtB,IAAI,QAAQ;YAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAE9B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;QAEzD,MAAM,kBAAkB,GAAG,eAAe,CACxC;YACE,QAAQ;YACR,KAAK;YACL,OAAO;YACP,cAAc,EAAE,gBAAgB;YAChC,cAAc;YACd,IAAI;YACJ,QAAQ;SACT,EACD,UAAU,CACX,CAAC;QAEF,MAAM,aAAa,GACjB,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;QAE5C,SAAS,gBAAgB,CAAC,YAA8B;YACtD,MAAM,YAAY,GAAG,OAAO,CAAC;YAC7B,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC;YACjD,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,UAAU,CAAC,MAAM,CAAC;YAC1E,MAAM,YAAY,GAChB,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YAC9E,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,YAAY,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,KAAK,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC5D,MAAM,cAAc,GAAY;gBAC9B,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,YAAY,CAAC,EAAE;gBACnB,cAAc;gBACd,YAAY;gBACZ,gBAAgB;gBAChB,cAAc;gBACd,IAAI,EAAE,KAAK;gBACX,KAAK;gBACL,QAAQ;gBACR,eAAe;gBACf,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,EAAE;gBACf,iBAAiB,EAAE,EAAE;gBACrB,YAAY,EAAE,IAAI,IAAI,EAAE;gBACxB,YAAY;gBACZ,YAAY;gBACZ,OAAO;gBACP,gBAAgB;gBAChB,WAAW,EAAE,CAAC;gBACd,mBAAmB,EAAE,iBAAiB;aACvC,CAAC;YACF,IAAI,OAAO,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,YAAY,EAAE,CAAC;YAErD,IAAI,OAAO,CAAC,mBAAmB,KAAK,iBAAiB,EAAE,CAAC;gBACtD,OAAO,CAAC,mBAAmB,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;YACvE,CAAC;YAED,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YAED,wDAAwD;YACxD,6BAA6B;YAC7B,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBAC9B,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;gBACnC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;YACnD,CAAC;YAED,sGAAsG;YACtG,8CAA8C;YAC9C,yEAAyE;YACzE,OAAO,GAAG,QAAQ,CAAC,cAA8B,EAAE,OAAuB,CAAC,CAAC;YAE5E,GAAG,CAAC,cAAc,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;YAE7C,GAAG,CACD,cAAc,EACd,YAAY,QAAQ,CAAC,EAAE,OAAO,gBAAgB,KAAK,GAAG,CAAC,OAAO,gBAC5D,OAAO,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,UAAU,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,YAC9D,EAAE,CACH,CAAC;YAEF,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,IAAI,CAAC;YACH,IAAI,eAAe,GAAqB,EAAE,CAAC;YAC3C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC5C,eAAe,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,eAAe,GAAG,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YAED,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;gBAC7C,IAAI,QAAQ;oBAAE,MAAM;gBACpB,MAAM,IAAI,GAAG,2BAA2B,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACnE,GAAG,CAAC,cAAc,EAAE,YAAY,QAAQ,CAAC,EAAE,sBAAsB,cAAc,EAAE,CAAC,CAAC;gBACnF,IAAI,MAAM,GAAW,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAE5C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACH,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE;4BACpC,QAAQ;4BACR,IAAI;4BACJ,cAAc;yBACf,CAAC,CAAC;wBAEH,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;oBAClC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,IAAI,CAAC,YAAY,qBAAqB,EAAE,CAAC;4BACvC,GAAG,CAAC,cAAc,EAAE,wBAAwB,GAAG,cAAc,CAAC,CAAC;4BAC/D,SAAS;wBACX,CAAC;wBACD,MAAM,CAAC,CAAC;oBACV,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,MAAM;oBAAE,SAAS;gBAEtB,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC;gBACxC,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,MAAM,yBAAyB,GAAG,4BAA4B,CAAC,cAAc,CAAC,CAAC;gBAC/E,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;oBAC3C,cAAc;oBACd,QAAQ;iBACT,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM,QAAQ,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;gBAE3D,GAAG,CACD,OAAO,EACP,6DAA6D,yBAAyB,gBAAgB,QAAQ,cAAc,MAAM,EAAE,CACrI,CAAC;gBAEF,MAAM,aAAa,GAAG,MAAM,kBAAmB,CAAC;oBAC9C,MAAM;oBACN,cAAc;oBACd,gBAAgB;iBACjB,CAAC,CAAC;gBAEH,KAAK,IAAI,KAAK,GAAG,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;oBACnD,GAAG,CAAC,OAAO,EAAE,uCAAuC,KAAK,EAAE,CAAC,CAAC;oBAE7D,IAAI,QAAQ,EAAE,CAAC;wBACb,GAAG,CAAC,OAAO,EAAE,gDAAgD,CAAC,CAAC;wBAC/D,MAAM;oBACR,CAAC;oBAED,IAAI,CAAC,2BAA2B,CAAC,cAAc,EAAE,KAAK,CAAC;wBAAE,SAAS;oBAElE,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC;wBAC9B,KAAK;wBACL,gBAAgB;wBAChB,cAAc;wBACd,gBAAgB;wBAChB,QAAQ;wBACR,QAAQ;qBACT,CAAC,CAAC;oBAEH,IAAI,CAAC,GAAG;wBAAE,MAAM;oBAEhB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;oBACzE,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAEtF,IAAI,QAAQ,EAAE,CAAC;wBACb,GAAG,CAAC,OAAO,EAAE,gDAAgD,CAAC,CAAC;wBAC/D,MAAM;oBACR,CAAC;oBACD,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;wBAEtE,IAAI,OAAO,CAAC,IAAI,IAAI,cAAc,EAAE,CAAC;4BACnC,GAAG,CACD,OAAO,EACP,iEAAiE,OAAO,CAAC,IAAI,sBAAsB,cAAc,EAAE,CACpH,CAAC;4BACF,QAAQ,CAAC,IAAI,CAAC;gCACZ,IAAI,EAAE,YAAY;gCAClB,OAAO;6BACR,CAAC,CAAC;wBACL,CAAC;wBAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;4BAClB,IAAI,UAAU,IAAI,yBAAyB,EAAE,CAAC;gCAC5C,MAAM,CAAC,sDAAsD;4BAC/D,CAAC;4BACD,UAAU,EAAE,CAAC;wBACf,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC;IACP,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC,CAAC;AAEP,MAAM,UAAU,wBAAwB,CACtC,YAA0B,EAC1B,EACE,sBAAsB,MAGpB,EAAE;IAEN,OAAO,CACL,OAAU,EACV,EACE,MAAM,EACN,QAAQ,EACR,IAAI,GAML,EACD,EAAE;QACF,MAAM,GAAG,GAAG;YACV,MAAM;YACN,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,gBAAgB;YACtC,GAAG,CAAC,sBAAsB,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;SAC/D,CAAC;QACF,OAAO,IAAI,CACT,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACnC,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;YAE5C,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;gBAC3C,MAAM,IAAI,qBAAqB,EAAE,CAAC;YACpC,CAAC;YAED,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAA8B,CAAI,EAAE,KAAiB;IACpF,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IACnC,OAAO,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAgB;IAC7D,OAAO,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;IAChC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -34,5 +34,11 @@ export declare const isAddressPoisoningOperation: (operation: Operation, account
34
34
  * @returns true if the nonce corresponds to the oldest pending operation
35
35
  */
36
36
  export declare const isOldestPendingOperation: (account: Account, nonce: BigNumber) => boolean;
37
+ /**
38
+ * @param account The account of the transaction to edit
39
+ * @param date The date of the transaction to edit
40
+ * @returns true if the date corresponds to the oldest pending operation
41
+ */
42
+ export declare const isOldestBitcoinPendingOperation: (account: Account, date: Date) => boolean;
37
43
  export {};
38
44
  //# sourceMappingURL=operation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../src/operation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAe,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAazF,wBAAgB,sBAAsB,CACpC,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAC9C,WAAW,EAAE,MAAM,GAClB,SAAS,GAAG,IAAI,GAAG,SAAS,CAyC9B;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAOA;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,MAAM,CAER;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAQA;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAiCpF;AAED,wBAAgB,oCAAoC,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,EAAE,CAmB/E;AAED,eAAO,MAAM,wBAAwB,UAOpC,CAAC;AACF,eAAO,MAAM,yBAAyB,UAkBrC,CAAC;AACF,eAAO,MAAM,2BAA2B,UAoBvC,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CASjE;AAED,wBAAgB,qCAAqC,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CAK9E;AAED,eAAO,MAAM,8BAA8B,GAAI,WAAW,SAAS,EAAE,SAAS,OAAO,KAAG,MACX,CAAC;AAE9E,eAAO,MAAM,yCAAyC,GACpD,WAAW,SAAS,EACpB,SAAS,OAAO,KACf,MAGK,CAAC;AAET,eAAO,MAAM,oBAAoB,GAC/B,WAAW,SAAS,EACpB,SAAS,OAAO,EAChB,iBAAiB,MAAM,KACtB,OAGQ,CAAC;AAEZ,KAAK,6BAA6B,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,WAAW,SAAS,EACpB,SAAS,WAAW,EACpB,UAAU,6BAA6B,KACtC,OAeF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,SAAS,OAAO,EAAE,OAAO,SAAS,KAAG,OAiB7E,CAAC"}
1
+ {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../src/operation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAe,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAazF,wBAAgB,sBAAsB,CACpC,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAC9C,WAAW,EAAE,MAAM,GAClB,SAAS,GAAG,IAAI,GAAG,SAAS,CAyC9B;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAOA;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,MAAM,CAER;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAQA;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAiCpF;AAED,wBAAgB,oCAAoC,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,EAAE,CAmB/E;AAED,eAAO,MAAM,wBAAwB,UAOpC,CAAC;AACF,eAAO,MAAM,yBAAyB,UAkBrC,CAAC;AACF,eAAO,MAAM,2BAA2B,UAoBvC,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CASjE;AAED,wBAAgB,qCAAqC,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CAK9E;AAED,eAAO,MAAM,8BAA8B,GAAI,WAAW,SAAS,EAAE,SAAS,OAAO,KAAG,MACX,CAAC;AAE9E,eAAO,MAAM,yCAAyC,GACpD,WAAW,SAAS,EACpB,SAAS,OAAO,KACf,MAGK,CAAC;AAET,eAAO,MAAM,oBAAoB,GAC/B,WAAW,SAAS,EACpB,SAAS,OAAO,EAChB,iBAAiB,MAAM,KACtB,OAGQ,CAAC;AAEZ,KAAK,6BAA6B,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,WAAW,SAAS,EACpB,SAAS,WAAW,EACpB,UAAU,6BAA6B,KACtC,OAeF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,SAAS,OAAO,EAAE,OAAO,SAAS,KAAG,OAiB7E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,GAAI,SAAS,OAAO,EAAE,MAAM,IAAI,KAAG,OAqB9E,CAAC"}
@@ -209,11 +209,38 @@ export const isOldestPendingOperation = (account, nonce) => {
209
209
  */
210
210
  return !account.pendingOperations.some(pendingOp => {
211
211
  /**
212
- * the pending operation must have a transactionSequenceNumberat this stage
212
+ * the pending operation must have a transactionSequenceNumber at this stage
213
213
  * since it should have previously been broadcasted
214
214
  */
215
215
  invariant(pendingOp.transactionSequenceNumber !== undefined, "transactionSequenceNumber required");
216
216
  return pendingOp.transactionSequenceNumber < nonce;
217
217
  });
218
218
  };
219
+ /**
220
+ * @param account The account of the transaction to edit
221
+ * @param date The date of the transaction to edit
222
+ * @returns true if the date corresponds to the oldest pending operation
223
+ */
224
+ export const isOldestBitcoinPendingOperation = (account, date) => {
225
+ /**
226
+ * The selected pending operation is the oldest if there is no pending
227
+ * operation with a lower date
228
+ */
229
+ if (account.pendingOperations.length === 0) {
230
+ return !account.operations.some(operation => {
231
+ if (!operation.blockHeight) {
232
+ return operation.date.getTime() < date.getTime();
233
+ }
234
+ return false;
235
+ });
236
+ }
237
+ return !account.pendingOperations.some(pendingOp => {
238
+ /**
239
+ * the pending operation must have a date at this stage
240
+ * since it should have previously been broadcasted
241
+ */
242
+ invariant(pendingOp.date !== undefined, "date required");
243
+ return pendingOp.date.getTime() < date.getTime();
244
+ });
245
+ };
219
246
  //# sourceMappingURL=operation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"operation.js","sourceRoot":"","sources":["../src/operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation.js","sourceRoot":"","sources":["../src/operation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/coin-framework",
3
- "version": "6.19.0",
3
+ "version": "6.20.0",
4
4
  "description": "Ledger framework for Coin integration",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -94,20 +94,20 @@
94
94
  "prando": "^6.0.1",
95
95
  "rxjs": "7.8.2",
96
96
  "uuid": "11.1.0",
97
- "@ledgerhq/cryptoassets": "^13.41.0",
98
- "@ledgerhq/devices": "8.11.0",
99
- "@ledgerhq/errors": "^6.30.0",
97
+ "@ledgerhq/cryptoassets": "^13.42.0",
98
+ "@ledgerhq/devices": "8.12.0",
99
+ "@ledgerhq/errors": "^6.31.0",
100
100
  "@ledgerhq/live-config": "^3.6.0",
101
- "@ledgerhq/live-env": "^2.29.0",
102
- "@ledgerhq/live-currency-format": "^0.5.0",
103
- "@ledgerhq/live-network": "^2.4.0",
104
- "@ledgerhq/logs": "^6.15.0",
105
- "@ledgerhq/types-cryptoassets": "^7.34.0",
106
- "@ledgerhq/types-live": "^6.100.0"
101
+ "@ledgerhq/live-env": "^2.30.0",
102
+ "@ledgerhq/live-currency-format": "^0.6.0",
103
+ "@ledgerhq/live-network": "^2.4.1",
104
+ "@ledgerhq/logs": "^6.16.0",
105
+ "@ledgerhq/types-cryptoassets": "^7.35.0",
106
+ "@ledgerhq/types-live": "^6.101.0"
107
107
  },
108
108
  "devDependencies": {
109
109
  "@types/imurmurhash": "^0.1.4",
110
- "@types/node": "22.19.13",
110
+ "@types/node": "24.12.0",
111
111
  "@types/invariant": "^2.2.2",
112
112
  "@types/jest": "30.0.0",
113
113
  "@types/lodash": "^4.14.191",
@@ -117,16 +117,16 @@
117
117
  "timemachine": "^0.3.2",
118
118
  "@swc/jest": "0.2.39",
119
119
  "@swc/core": "1.15.11",
120
- "@ledgerhq/hw-transport-node-speculos": "^6.32.0",
121
- "@ledgerhq/live-dmk-speculos": "^0.8.0"
120
+ "@ledgerhq/hw-transport-node-speculos": "^6.33.0",
121
+ "@ledgerhq/live-dmk-speculos": "^0.8.1"
122
122
  },
123
123
  "scripts": {
124
124
  "clean": "rm -rf lib lib-es",
125
- "build": "tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es",
125
+ "build": "tsc --project tsconfig.build.json && tsc --project tsconfig.build.json -m esnext --moduleResolution bundler --outDir lib-es",
126
126
  "coverage": "jest --coverage",
127
127
  "prewatch": "pnpm build",
128
- "watch": "tsc --watch",
129
- "watch:es": "tsc --watch -m esnext --moduleResolution bundler --outDir lib-es",
128
+ "watch": "tsc --watch --project tsconfig.build.json",
129
+ "watch:es": "tsc --watch --project tsconfig.build.json -m esnext --moduleResolution bundler --outDir lib-es",
130
130
  "doc": "documentation readme src/** --section=API --pe ts --re ts --re d.ts",
131
131
  "lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts,.tsx --cache",
132
132
  "lint:fix": "pnpm lint --fix",
package/src/api/types.ts CHANGED
@@ -1,5 +1,22 @@
1
- import type { CryptoCurrency, TokenCurrency } from "@ledgerhq/types-cryptoassets";
2
- import { BroadcastConfig, Operation as LiveOperation } from "@ledgerhq/types-live";
1
+ import type { TokenCurrency } from "@ledgerhq/types-cryptoassets";
2
+ import type { Operation as LiveOperation } from "@ledgerhq/types-live";
3
+
4
+ // NOTE: from types-live
5
+ export type BroadcastConfig = {
6
+ mevProtected: boolean;
7
+ sponsored?: boolean;
8
+ source?: TransactionSource;
9
+ };
10
+
11
+ /**
12
+ * TransactionSource identifies the origin of a transaction
13
+ */
14
+ export type TransactionSource = {
15
+ // Type of the transaction source
16
+ type: "dApp" | "live-app" | "coin-module" | "swap";
17
+ // Name/identifier of the source (e.g., manifestId, provider name)
18
+ name: string;
19
+ };
3
20
 
4
21
  export type BlockInfo = {
5
22
  height: number;
@@ -60,7 +77,6 @@ export type Operation<MemoType extends Memo = MemoNotSupported> = {
60
77
  * This can include things like status, error messages, swap info, etc.
61
78
  */
62
79
  details?: Record<string, unknown>;
63
- assetInfo?: AssetInfo;
64
80
  tx: {
65
81
  hash: string; // transaction hash
66
82
  block: BlockInfo; // block metadata, empty string for block hash if not available directly and no reorg possible
@@ -126,7 +142,7 @@ export type BlockTransaction = {
126
142
  fees: bigint;
127
143
 
128
144
  /** The address that paid for this transaction's fees. */
129
- feesPayer: string;
145
+ feesPayer?: string;
130
146
  };
131
147
 
132
148
  /** An operation belonging to a {@link BlockTransaction}. */
@@ -468,7 +484,7 @@ export type AccountInfo = {
468
484
  };
469
485
 
470
486
  export type AddressValidationCurrencyParameters = {
471
- currency: CryptoCurrency;
487
+ currencyId: string;
472
488
  networkId: number;
473
489
  };
474
490
 
@@ -676,6 +692,40 @@ export type AlpacaApi<
676
692
  * @throws if the transaction is rejected by the network (e.g., invalid signature, insufficient funds)
677
693
  */
678
694
  broadcast: (tx: string, broadcastConfig?: BroadcastConfig) => Promise<string>;
695
+
696
+ /**
697
+ * Validate a transaction intent.
698
+ *
699
+ * @param transactionIntent the transaction intent describing what the user wants to do
700
+ * @param balances current balances of the intent sender
701
+ * @param customFees optional custom fees to use instead of the default estimation
702
+ * @returns additional values the intent has been validated with, and optional errors/warnings
703
+ */
704
+ validateIntent: (
705
+ transactionIntent: TransactionIntent<MemoType, TxDataType>,
706
+ balances: Balance[],
707
+ customFees?: FeeEstimation,
708
+ ) => Promise<TransactionValidation>;
709
+
710
+ /**
711
+ * Get the next sequence number (nonce) for an address
712
+ *
713
+ * @param address the account address
714
+ * @returns the next usable sequence number
715
+ */
716
+ getNextSequence: (address: string) => Promise<bigint>;
717
+
718
+ /**
719
+ * Validate whether an address is well-formed for the blockchain.
720
+ *
721
+ * @param address the address to validate
722
+ * @param parameters currency-specific validation parameters
723
+ * @returns `true` if the address is valid, `false` otherwise
724
+ */
725
+ validateAddress: (
726
+ address: string,
727
+ parameters: Partial<AddressValidationCurrencyParameters>,
728
+ ) => Promise<boolean>;
679
729
  };
680
730
 
681
731
  export type ChainSpecificRules = {
@@ -685,24 +735,16 @@ export type ChainSpecificRules = {
685
735
  };
686
736
  };
687
737
 
688
- export type BridgeApi<
689
- MemoType extends Memo = MemoNotSupported,
690
- TxDataType extends TxData = TxDataNotSupported,
691
- > = {
692
- validateIntent: (
693
- transactionIntent: TransactionIntent<MemoType, TxDataType>,
694
- balances: Balance[],
695
- customFees?: FeeEstimation,
696
- ) => Promise<TransactionValidation>;
697
- getSequence: (address: string) => Promise<bigint>;
738
+ export type BridgeApi = {
698
739
  getChainSpecificRules?: () => ChainSpecificRules;
699
740
  getTokenFromAsset?: (asset: AssetInfo) => Promise<TokenCurrency | undefined>;
700
741
  getAssetFromToken?: (token: TokenCurrency, owner: string) => AssetInfo;
701
742
  computeIntentType?: (transaction: Record<string, unknown>) => string;
702
743
  refreshOperations?: (operations: LiveOperation[]) => Promise<LiveOperation[]>;
744
+ validateTransaction?: (signature: string) => Promise<{ error: Error | undefined }>;
703
745
  };
704
746
 
705
747
  export type Api<
706
748
  MemoType extends Memo = MemoNotSupported,
707
749
  TxDataType extends TxData = TxDataNotSupported,
708
- > = AlpacaApi<MemoType, TxDataType> & BridgeApi<MemoType, TxDataType>;
750
+ > = AlpacaApi<MemoType, TxDataType> & BridgeApi;